From 6e4317caa9deb74d0c6db8c9c29cf02cd914073b Mon Sep 17 00:00:00 2001 From: Thomas Leonard Date: Sat, 29 Nov 2014 12:31:21 +0000 Subject: [PATCH] Moved to https://github.com/rox-desktop/rox-filer --- .gitignore | 4 - 0compile.properties | 7 - Choices/MIME-types/application_postscript | 2 - Choices/MIME-types/text | 2 - Choices/MIME-types/text_html | 13 - README | 1 + README-es | 105 - README.md | 46 - ROX-Filer.xml | 46 - ROX-Filer/.DirIcon | Bin 3884 -> 0 bytes ROX-Filer/AppInfo.xml | 101 - ROX-Filer/AppRun | 66 - ROX-Filer/Help/COPYING | 340 -- ROX-Filer/Help/Changes | 5237 ------------------- ROX-Filer/Help/README | 65 - ROX-Filer/Help/README-es | 66 - ROX-Filer/Help/TODO | 135 - ROX-Filer/Messages/README | 10 - ROX-Filer/Options.xml | 331 -- ROX-Filer/ROX/MIME/application-msword.png | Bin 1593 -> 0 bytes ROX-Filer/ROX/MIME/application-pdf.png | Bin 3445 -> 0 bytes ROX-Filer/ROX/MIME/application-pgp.png | Bin 2952 -> 0 bytes ROX-Filer/ROX/MIME/application-postscript.png | Bin 2608 -> 0 bytes ROX-Filer/ROX/MIME/application-vnd.ms-access.png | Bin 1640 -> 0 bytes ROX-Filer/ROX/MIME/application-vnd.ms-excel.png | Bin 2620 -> 0 bytes ROX-Filer/ROX/MIME/application-vnd.ms-office.png | Bin 2290 -> 0 bytes .../ROX/MIME/application-vnd.ms-powerpoint.png | Bin 1681 -> 0 bytes .../ROX/MIME/application-vnd.rn-realmedia.png | Bin 3307 -> 0 bytes .../MIME/application-vnd.stardivision.writer.png | Bin 2207 -> 0 bytes .../ROX/MIME/application-vnd.sun.xml.calc.png | Bin 1723 -> 0 bytes .../MIME/application-vnd.sun.xml.calc.template.png | Bin 2736 -> 0 bytes .../ROX/MIME/application-vnd.sun.xml.draw.png | Bin 1797 -> 0 bytes .../MIME/application-vnd.sun.xml.draw.template.png | Bin 2793 -> 0 bytes .../ROX/MIME/application-vnd.sun.xml.impress.png | Bin 1622 -> 0 bytes .../application-vnd.sun.xml.impress.template.png | Bin 2634 -> 0 bytes .../application-vnd.sun.xml.impress.template2.png | Bin 2634 -> 0 bytes .../MIME/application-vnd.sun.xml.writer.global.png | Bin 1185 -> 0 bytes .../ROX/MIME/application-vnd.sun.xml.writer.png | Bin 1561 -> 0 bytes .../application-vnd.sun.xml.writer.template.png | Bin 2656 -> 0 bytes ROX-Filer/ROX/MIME/application-x-abiword.png | Bin 2732 -> 0 bytes .../ROX/MIME/application-x-bzip-compressed-tar.png | Bin 3309 -> 0 bytes ROX-Filer/ROX/MIME/application-x-bzip.png | Bin 4328 -> 0 bytes .../ROX/MIME/application-x-compressed-tar.png | Bin 3309 -> 0 bytes ROX-Filer/ROX/MIME/application-x-core.png | Bin 2471 -> 0 bytes ROX-Filer/ROX/MIME/application-x-deb.png | Bin 3262 -> 0 bytes ROX-Filer/ROX/MIME/application-x-dia-diagram.png | Bin 2094 -> 0 bytes ROX-Filer/ROX/MIME/application-x-dvi.png | Bin 2766 -> 0 bytes ROX-Filer/ROX/MIME/application-x-executable.png | Bin 3002 -> 0 bytes ROX-Filer/ROX/MIME/application-x-font-afm.png | Bin 1694 -> 0 bytes .../ROX/MIME/application-x-font-linux-psf.png | Bin 1294 -> 0 bytes ROX-Filer/ROX/MIME/application-x-font-pcf.png | Bin 1294 -> 0 bytes ROX-Filer/ROX/MIME/application-x-font-speedo.png | Bin 1927 -> 0 bytes ROX-Filer/ROX/MIME/application-x-font-ttf.png | Bin 2279 -> 0 bytes ROX-Filer/ROX/MIME/application-x-font.png | Bin 454 -> 0 bytes ROX-Filer/ROX/MIME/application-x-generic.png | Bin 948 -> 0 bytes ROX-Filer/ROX/MIME/application-x-glade.png | Bin 3224 -> 0 bytes ROX-Filer/ROX/MIME/application-x-gnumeric.png | Bin 2417 -> 0 bytes ROX-Filer/ROX/MIME/application-x-gzip.png | Bin 3494 -> 0 bytes ROX-Filer/ROX/MIME/application-x-gzpostscript.png | Bin 2557 -> 0 bytes ROX-Filer/ROX/MIME/application-x-jar.png | Bin 3172 -> 0 bytes ROX-Filer/ROX/MIME/application-x-java-archive.png | 1 - ROX-Filer/ROX/MIME/application-x-java.png | Bin 4034 -> 0 bytes ROX-Filer/ROX/MIME/application-x-lyx.png | Bin 3970 -> 0 bytes ROX-Filer/ROX/MIME/application-x-object.png | Bin 3541 -> 0 bytes ROX-Filer/ROX/MIME/application-x-perl.png | Bin 4308 -> 0 bytes ROX-Filer/ROX/MIME/application-x-rpm.png | Bin 3408 -> 0 bytes ROX-Filer/ROX/MIME/application-x-sharedlib.png | Bin 1933 -> 0 bytes ROX-Filer/ROX/MIME/application-x-shellscript.png | Bin 2291 -> 0 bytes ROX-Filer/ROX/MIME/application-x-tar.png | Bin 2779 -> 0 bytes ROX-Filer/ROX/MIME/application-x-texmacs.png | Bin 2905 -> 0 bytes ROX-Filer/ROX/MIME/application-x-trash.png | Bin 2974 -> 0 bytes .../MIME/application-x-troff-man-compressed.png | Bin 2181 -> 0 bytes ROX-Filer/ROX/MIME/application-x-troff-man.png | Bin 2181 -> 0 bytes ROX-Filer/ROX/MIME/application-x-troff.png | Bin 2181 -> 0 bytes ROX-Filer/ROX/MIME/application-xhtml+xml.png | Bin 4945 -> 0 bytes ROX-Filer/ROX/MIME/application-xml.png | Bin 2286 -> 0 bytes ROX-Filer/ROX/MIME/application-zip.png | Bin 3056 -> 0 bytes ROX-Filer/ROX/MIME/audio-midi.png | Bin 2716 -> 0 bytes ROX-Filer/ROX/MIME/audio-mpeg.png | Bin 2970 -> 0 bytes ROX-Filer/ROX/MIME/audio-x-generic.png | Bin 2921 -> 0 bytes ROX-Filer/ROX/MIME/audio-x-mod.png | Bin 3295 -> 0 bytes ROX-Filer/ROX/MIME/audio-x-mp3.png | Bin 3433 -> 0 bytes ROX-Filer/ROX/MIME/audio-x-pn-realaudio.png | Bin 2443 -> 0 bytes ROX-Filer/ROX/MIME/audio-x-wav.png | Bin 2996 -> 0 bytes ROX-Filer/ROX/MIME/image-gif.png | Bin 7814 -> 0 bytes ROX-Filer/ROX/MIME/image-jpeg.png | Bin 7814 -> 0 bytes ROX-Filer/ROX/MIME/image-x-generic.png | Bin 7280 -> 0 bytes ROX-Filer/ROX/MIME/image-x-xpixmap.png | Bin 7858 -> 0 bytes ROX-Filer/ROX/MIME/inode-blockdevice.png | Bin 3660 -> 0 bytes ROX-Filer/ROX/MIME/inode-chardevice.png | Bin 2130 -> 0 bytes ROX-Filer/ROX/MIME/inode-core.png | Bin 2471 -> 0 bytes ROX-Filer/ROX/MIME/inode-directory.png | Bin 1983 -> 0 bytes ROX-Filer/ROX/MIME/inode-fifo.png | Bin 2692 -> 0 bytes ROX-Filer/ROX/MIME/inode-mount-point.png | Bin 2245 -> 0 bytes ROX-Filer/ROX/MIME/inode-socket.png | Bin 1557 -> 0 bytes ROX-Filer/ROX/MIME/message-x-generic.png | Bin 983 -> 0 bytes ROX-Filer/ROX/MIME/text-html.png | Bin 4945 -> 0 bytes ROX-Filer/ROX/MIME/text-x-c++src.png | Bin 1567 -> 0 bytes ROX-Filer/ROX/MIME/text-x-copying.png | Bin 3812 -> 0 bytes ROX-Filer/ROX/MIME/text-x-csrc.png | Bin 1528 -> 0 bytes ROX-Filer/ROX/MIME/text-x-diff.png | Bin 2842 -> 0 bytes ROX-Filer/ROX/MIME/text-x-generic.png | Bin 2822 -> 0 bytes ROX-Filer/ROX/MIME/text-x-java.png | Bin 3916 -> 0 bytes ROX-Filer/ROX/MIME/text-x-makefile.png | Bin 4557 -> 0 bytes ROX-Filer/ROX/MIME/text-x-python.png | Bin 4730 -> 0 bytes ROX-Filer/ROX/MIME/text-x-tcl.png | Bin 2926 -> 0 bytes ROX-Filer/ROX/MIME/text-x-tex.png | Bin 2420 -> 0 bytes ROX-Filer/ROX/MIME/text-xml.png | Bin 2286 -> 0 bytes ROX-Filer/ROX/MIME/video-mpeg.png | Bin 384 -> 0 bytes ROX-Filer/ROX/MIME/video-quicktime.png | Bin 2574 -> 0 bytes ROX-Filer/ROX/MIME/video-x-generic.png | Bin 4272 -> 0 bytes ROX-Filer/ROX/index.theme | 10 - ROX-Filer/Templates.ui | 638 --- ROX-Filer/images/application.png | Bin 2864 -> 0 bytes ROX-Filer/images/dirs.png | Bin 780 -> 0 bytes ROX-Filer/images/iconified.png | Bin 807 -> 0 bytes ROX-Filer/images/rox-mount.png | Bin 378 -> 0 bytes ROX-Filer/images/rox-mounted.png | Bin 648 -> 0 bytes ROX-Filer/images/rox-select.png | Bin 696 -> 0 bytes ROX-Filer/images/rox-show-details.png | Bin 688 -> 0 bytes ROX-Filer/images/rox-show-hidden.png | Bin 1178 -> 0 bytes ROX-Filer/images/rox-symlink.png | 1 - ROX-Filer/images/rox-xattr.png | Bin 289 -> 0 bytes ROX-Filer/images/symlink.png | Bin 183 -> 0 bytes ROX-Filer/src/Docs/Makefile | 18 - ROX-Filer/src/Docs/Manual-fr.xml | 4002 --------------- ROX-Filer/src/Docs/Manual-it.xml | 3481 ------------- ROX-Filer/src/Docs/Manual.xml | 3537 ------------- ROX-Filer/src/Docs/to_html.xsl | 91 - ROX-Filer/src/Docs/to_html_alt.xsl | 89 - ROX-Filer/src/Docs/to_man.xsl | 119 - ROX-Filer/src/Makefile | 15 - ROX-Filer/src/Makefile.in | 71 - ROX-Filer/src/abox.c | 689 --- ROX-Filer/src/abox.h | 88 - ROX-Filer/src/action.c | 2497 --------- ROX-Filer/src/action.h | 27 - ROX-Filer/src/appinfo.c | 85 - ROX-Filer/src/appinfo.h | 16 - ROX-Filer/src/appmenu.c | 426 -- ROX-Filer/src/appmenu.h | 17 - ROX-Filer/src/bind.c | 112 - ROX-Filer/src/bind.h | 42 - ROX-Filer/src/bookmarks.c | 852 ---- ROX-Filer/src/bookmarks.h | 14 - ROX-Filer/src/build | 29 - ROX-Filer/src/bulk_rename.c | 567 --- ROX-Filer/src/bulk_rename.h | 15 - ROX-Filer/src/cell_icon.c | 352 -- ROX-Filer/src/cell_icon.h | 11 - ROX-Filer/src/choices.c | 446 -- ROX-Filer/src/choices.h | 19 - ROX-Filer/src/collection.c | 1860 ------- ROX-Filer/src/collection.h | 167 - ROX-Filer/src/config.h.in | 82 - ROX-Filer/src/configure.in | 195 - ROX-Filer/src/dir.c | 1179 ----- ROX-Filer/src/dir.h | 115 - ROX-Filer/src/diritem.c | 356 -- ROX-Filer/src/diritem.h | 63 - ROX-Filer/src/display.c | 907 ---- ROX-Filer/src/display.h | 87 - ROX-Filer/src/dnd.c | 1414 ------ ROX-Filer/src/dnd.h | 74 - ROX-Filer/src/dropbox.c | 293 -- ROX-Filer/src/dropbox.h | 21 - ROX-Filer/src/filer.c | 3649 -------------- ROX-Filer/src/filer.h | 182 - ROX-Filer/src/find.c | 1005 ---- ROX-Filer/src/find.h | 25 - ROX-Filer/src/fscache.c | 423 -- ROX-Filer/src/fscache.h | 44 - ROX-Filer/src/global.h | 191 - ROX-Filer/src/gtksavebox.c | 709 --- ROX-Filer/src/gtksavebox.h | 92 - ROX-Filer/src/gui_support.c | 1748 ------- ROX-Filer/src/gui_support.h | 105 - ROX-Filer/src/i18n.c | 169 - ROX-Filer/src/i18n.h | 12 - ROX-Filer/src/icon.c | 1428 ------ ROX-Filer/src/icon.h | 68 - ROX-Filer/src/infobox.c | 1105 ---- ROX-Filer/src/infobox.h | 12 - ROX-Filer/src/log.c | 183 - ROX-Filer/src/log.h | 13 - ROX-Filer/src/main.c | 1032 ---- ROX-Filer/src/main.h | 41 - ROX-Filer/src/makedist | 48 - ROX-Filer/src/menu.c | 2093 -------- ROX-Filer/src/menu.h | 44 - ROX-Filer/src/minibuffer.c | 1139 ----- ROX-Filer/src/minibuffer.h | 17 - ROX-Filer/src/modechange.c | 311 -- ROX-Filer/src/modechange.h | 42 - ROX-Filer/src/mount.c | 401 -- ROX-Filer/src/mount.h | 33 - ROX-Filer/src/my_vfs.h | 68 - ROX-Filer/src/options.c | 1809 ------- ROX-Filer/src/options.h | 44 - ROX-Filer/src/panel.c | 2926 ----------- ROX-Filer/src/panel.h | 65 - ROX-Filer/src/pinboard.c | 2897 ----------- ROX-Filer/src/pinboard.h | 43 - ROX-Filer/src/pixmaps.c | 1192 ----- ROX-Filer/src/pixmaps.h | 75 - ROX-Filer/src/po/cs.po | 4821 ------------------ ROX-Filer/src/po/da.po | 5286 ------------------- ROX-Filer/src/po/de.po | 4784 ------------------ ROX-Filer/src/po/dist | 9 - ROX-Filer/src/po/es.po | 4469 ---------------- ROX-Filer/src/po/et_EE.po | 4481 ----------------- ROX-Filer/src/po/eu.po | 4780 ------------------ ROX-Filer/src/po/fi.po | 4761 ------------------ ROX-Filer/src/po/fr.po | 4958 ------------------ ROX-Filer/src/po/gl.po | 4467 ---------------- ROX-Filer/src/po/hu.po | 4591 ----------------- ROX-Filer/src/po/it.po | 4889 ------------------ ROX-Filer/src/po/ja.po | 4928 ------------------ ROX-Filer/src/po/make-mo | 22 - ROX-Filer/src/po/nl.po | 4731 ----------------- ROX-Filer/src/po/no.po | 5237 ------------------- ROX-Filer/src/po/pl.po | 4612 ----------------- ROX-Filer/src/po/pt_BR.po | 4619 ----------------- ROX-Filer/src/po/pt_PT.po | 4650 ----------------- ROX-Filer/src/po/ro.po | 4769 ------------------ ROX-Filer/src/po/ru.po | 5026 ------------------ ROX-Filer/src/po/sv.po | 5313 -------------------- ROX-Filer/src/po/tips.py | 39 - ROX-Filer/src/po/uk.po | 4827 ------------------ ROX-Filer/src/po/update-po | 35 - ROX-Filer/src/po/vi.po | 4944 ------------------ ROX-Filer/src/po/zh_CN.po | 4616 ----------------- ROX-Filer/src/po/zh_TW.po | 4620 ----------------- ROX-Filer/src/remote.c | 1303 ----- ROX-Filer/src/remote.h | 14 - ROX-Filer/src/run.c | 796 --- ROX-Filer/src/run.h | 26 - ROX-Filer/src/sc.c | 411 -- ROX-Filer/src/sc.h | 46 - ROX-Filer/src/session.c | 169 - ROX-Filer/src/session.h | 17 - ROX-Filer/src/support.c | 1765 ------- ROX-Filer/src/support.h | 75 - ROX-Filer/src/tasklist.c | 1106 ---- ROX-Filer/src/tasklist.h | 12 - ROX-Filer/src/toolbar.c | 875 ---- ROX-Filer/src/toolbar.h | 26 - ROX-Filer/src/type.c | 1488 ------ ROX-Filer/src/type.h | 65 - ROX-Filer/src/usericons.c | 640 --- ROX-Filer/src/usericons.h | 18 - ROX-Filer/src/view_collection.c | 1605 ------ ROX-Filer/src/view_collection.h | 19 - ROX-Filer/src/view_details.c | 1948 ------- ROX-Filer/src/view_details.h | 57 - ROX-Filer/src/view_iface.c | 414 -- ROX-Filer/src/view_iface.h | 147 - ROX-Filer/src/wrapped.c | 205 - ROX-Filer/src/wrapped.h | 31 - ROX-Filer/src/xdgmime.c | 888 ---- ROX-Filer/src/xdgmime.h | 133 - ROX-Filer/src/xdgmimealias.c | 184 - ROX-Filer/src/xdgmimealias.h | 51 - ROX-Filer/src/xdgmimecache.c | 1069 ---- ROX-Filer/src/xdgmimecache.h | 81 - ROX-Filer/src/xdgmimeglob.c | 691 --- ROX-Filer/src/xdgmimeglob.h | 70 - ROX-Filer/src/xdgmimeint.c | 206 - ROX-Filer/src/xdgmimeint.h | 78 - ROX-Filer/src/xdgmimemagic.c | 813 --- ROX-Filer/src/xdgmimemagic.h | 57 - ROX-Filer/src/xdgmimeparent.c | 219 - ROX-Filer/src/xdgmimeparent.h | 51 - ROX-Filer/src/xml.c | 215 - ROX-Filer/src/xml.h | 26 - ROX-Filer/src/xtypes.c | 339 -- ROX-Filer/src/xtypes.h | 32 - ROX-Filer/style.css | 107 - ROX-Filer/subclasses | 5 - rox.xml | 6 - 280 files changed, 1 insertion(+), 191132 deletions(-) delete mode 100644 .gitignore delete mode 100644 0compile.properties delete mode 100755 Choices/MIME-types/application_postscript delete mode 100755 Choices/MIME-types/text delete mode 100755 Choices/MIME-types/text_html create mode 100644 README delete mode 100644 README-es delete mode 100644 README.md delete mode 100644 ROX-Filer.xml delete mode 100644 ROX-Filer/.DirIcon delete mode 100644 ROX-Filer/AppInfo.xml delete mode 100755 ROX-Filer/AppRun delete mode 100644 ROX-Filer/Help/COPYING delete mode 100644 ROX-Filer/Help/Changes delete mode 100644 ROX-Filer/Help/README delete mode 100644 ROX-Filer/Help/README-es delete mode 100644 ROX-Filer/Help/TODO delete mode 100644 ROX-Filer/Messages/README delete mode 100644 ROX-Filer/Options.xml delete mode 100644 ROX-Filer/ROX/MIME/application-msword.png delete mode 100644 ROX-Filer/ROX/MIME/application-pdf.png delete mode 100644 ROX-Filer/ROX/MIME/application-pgp.png delete mode 100644 ROX-Filer/ROX/MIME/application-postscript.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.ms-access.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.ms-excel.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.ms-office.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.ms-powerpoint.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.rn-realmedia.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.stardivision.writer.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.calc.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.calc.template.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.draw.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.draw.template.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.impress.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.impress.template.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.impress.template2.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.global.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.png delete mode 100644 ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.template.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-abiword.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-bzip-compressed-tar.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-bzip.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-compressed-tar.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-core.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-deb.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-dia-diagram.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-dvi.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-executable.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font-afm.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font-linux-psf.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font-pcf.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font-speedo.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font-ttf.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-font.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-generic.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-glade.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-gnumeric.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-gzip.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-gzpostscript.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-jar.png delete mode 120000 ROX-Filer/ROX/MIME/application-x-java-archive.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-java.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-lyx.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-object.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-perl.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-rpm.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-sharedlib.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-shellscript.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-tar.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-texmacs.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-trash.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-troff-man-compressed.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-troff-man.png delete mode 100644 ROX-Filer/ROX/MIME/application-x-troff.png delete mode 100644 ROX-Filer/ROX/MIME/application-xhtml+xml.png delete mode 100644 ROX-Filer/ROX/MIME/application-xml.png delete mode 100644 ROX-Filer/ROX/MIME/application-zip.png delete mode 100644 ROX-Filer/ROX/MIME/audio-midi.png delete mode 100644 ROX-Filer/ROX/MIME/audio-mpeg.png delete mode 100644 ROX-Filer/ROX/MIME/audio-x-generic.png delete mode 100644 ROX-Filer/ROX/MIME/audio-x-mod.png delete mode 100644 ROX-Filer/ROX/MIME/audio-x-mp3.png delete mode 100644 ROX-Filer/ROX/MIME/audio-x-pn-realaudio.png delete mode 100644 ROX-Filer/ROX/MIME/audio-x-wav.png delete mode 100644 ROX-Filer/ROX/MIME/image-gif.png delete mode 100644 ROX-Filer/ROX/MIME/image-jpeg.png delete mode 100644 ROX-Filer/ROX/MIME/image-x-generic.png delete mode 100644 ROX-Filer/ROX/MIME/image-x-xpixmap.png delete mode 100644 ROX-Filer/ROX/MIME/inode-blockdevice.png delete mode 100644 ROX-Filer/ROX/MIME/inode-chardevice.png delete mode 100644 ROX-Filer/ROX/MIME/inode-core.png delete mode 100644 ROX-Filer/ROX/MIME/inode-directory.png delete mode 100644 ROX-Filer/ROX/MIME/inode-fifo.png delete mode 100644 ROX-Filer/ROX/MIME/inode-mount-point.png delete mode 100644 ROX-Filer/ROX/MIME/inode-socket.png delete mode 100644 ROX-Filer/ROX/MIME/message-x-generic.png delete mode 100644 ROX-Filer/ROX/MIME/text-html.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-c++src.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-copying.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-csrc.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-diff.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-generic.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-java.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-makefile.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-python.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-tcl.png delete mode 100644 ROX-Filer/ROX/MIME/text-x-tex.png delete mode 100644 ROX-Filer/ROX/MIME/text-xml.png delete mode 100644 ROX-Filer/ROX/MIME/video-mpeg.png delete mode 100644 ROX-Filer/ROX/MIME/video-quicktime.png delete mode 100644 ROX-Filer/ROX/MIME/video-x-generic.png delete mode 100644 ROX-Filer/ROX/index.theme delete mode 100644 ROX-Filer/Templates.ui delete mode 100644 ROX-Filer/images/application.png delete mode 100644 ROX-Filer/images/dirs.png delete mode 100644 ROX-Filer/images/iconified.png delete mode 100644 ROX-Filer/images/rox-mount.png delete mode 100644 ROX-Filer/images/rox-mounted.png delete mode 100644 ROX-Filer/images/rox-select.png delete mode 100644 ROX-Filer/images/rox-show-details.png delete mode 100644 ROX-Filer/images/rox-show-hidden.png delete mode 120000 ROX-Filer/images/rox-symlink.png delete mode 100644 ROX-Filer/images/rox-xattr.png delete mode 100644 ROX-Filer/images/symlink.png delete mode 100644 ROX-Filer/src/Docs/Makefile delete mode 100644 ROX-Filer/src/Docs/Manual-fr.xml delete mode 100644 ROX-Filer/src/Docs/Manual-it.xml delete mode 100644 ROX-Filer/src/Docs/Manual.xml delete mode 100644 ROX-Filer/src/Docs/to_html.xsl delete mode 100644 ROX-Filer/src/Docs/to_html_alt.xsl delete mode 100644 ROX-Filer/src/Docs/to_man.xsl delete mode 100644 ROX-Filer/src/Makefile delete mode 100644 ROX-Filer/src/Makefile.in delete mode 100644 ROX-Filer/src/abox.c delete mode 100644 ROX-Filer/src/abox.h delete mode 100644 ROX-Filer/src/action.c delete mode 100644 ROX-Filer/src/action.h delete mode 100644 ROX-Filer/src/appinfo.c delete mode 100644 ROX-Filer/src/appinfo.h delete mode 100644 ROX-Filer/src/appmenu.c delete mode 100644 ROX-Filer/src/appmenu.h delete mode 100644 ROX-Filer/src/bind.c delete mode 100644 ROX-Filer/src/bind.h delete mode 100644 ROX-Filer/src/bookmarks.c delete mode 100644 ROX-Filer/src/bookmarks.h delete mode 100755 ROX-Filer/src/build delete mode 100644 ROX-Filer/src/bulk_rename.c delete mode 100644 ROX-Filer/src/bulk_rename.h delete mode 100644 ROX-Filer/src/cell_icon.c delete mode 100644 ROX-Filer/src/cell_icon.h delete mode 100644 ROX-Filer/src/choices.c delete mode 100644 ROX-Filer/src/choices.h delete mode 100644 ROX-Filer/src/collection.c delete mode 100644 ROX-Filer/src/collection.h delete mode 100644 ROX-Filer/src/config.h.in delete mode 100644 ROX-Filer/src/configure.in delete mode 100644 ROX-Filer/src/dir.c delete mode 100644 ROX-Filer/src/dir.h delete mode 100644 ROX-Filer/src/diritem.c delete mode 100644 ROX-Filer/src/diritem.h delete mode 100644 ROX-Filer/src/display.c delete mode 100644 ROX-Filer/src/display.h delete mode 100644 ROX-Filer/src/dnd.c delete mode 100644 ROX-Filer/src/dnd.h delete mode 100644 ROX-Filer/src/dropbox.c delete mode 100644 ROX-Filer/src/dropbox.h delete mode 100644 ROX-Filer/src/filer.c delete mode 100644 ROX-Filer/src/filer.h delete mode 100644 ROX-Filer/src/find.c delete mode 100644 ROX-Filer/src/find.h delete mode 100644 ROX-Filer/src/fscache.c delete mode 100644 ROX-Filer/src/fscache.h delete mode 100644 ROX-Filer/src/global.h delete mode 100644 ROX-Filer/src/gtksavebox.c delete mode 100644 ROX-Filer/src/gtksavebox.h delete mode 100644 ROX-Filer/src/gui_support.c delete mode 100644 ROX-Filer/src/gui_support.h delete mode 100644 ROX-Filer/src/i18n.c delete mode 100644 ROX-Filer/src/i18n.h delete mode 100644 ROX-Filer/src/icon.c delete mode 100644 ROX-Filer/src/icon.h delete mode 100644 ROX-Filer/src/infobox.c delete mode 100644 ROX-Filer/src/infobox.h delete mode 100644 ROX-Filer/src/log.c delete mode 100644 ROX-Filer/src/log.h delete mode 100644 ROX-Filer/src/main.c delete mode 100644 ROX-Filer/src/main.h delete mode 100755 ROX-Filer/src/makedist delete mode 100644 ROX-Filer/src/menu.c delete mode 100644 ROX-Filer/src/menu.h delete mode 100644 ROX-Filer/src/minibuffer.c delete mode 100644 ROX-Filer/src/minibuffer.h delete mode 100644 ROX-Filer/src/modechange.c delete mode 100644 ROX-Filer/src/modechange.h delete mode 100644 ROX-Filer/src/mount.c delete mode 100644 ROX-Filer/src/mount.h delete mode 100644 ROX-Filer/src/my_vfs.h delete mode 100644 ROX-Filer/src/options.c delete mode 100644 ROX-Filer/src/options.h delete mode 100644 ROX-Filer/src/panel.c delete mode 100644 ROX-Filer/src/panel.h delete mode 100644 ROX-Filer/src/pinboard.c delete mode 100644 ROX-Filer/src/pinboard.h delete mode 100644 ROX-Filer/src/pixmaps.c delete mode 100644 ROX-Filer/src/pixmaps.h delete mode 100644 ROX-Filer/src/po/cs.po delete mode 100644 ROX-Filer/src/po/da.po delete mode 100644 ROX-Filer/src/po/de.po delete mode 100755 ROX-Filer/src/po/dist delete mode 100644 ROX-Filer/src/po/es.po delete mode 100644 ROX-Filer/src/po/et_EE.po delete mode 100644 ROX-Filer/src/po/eu.po delete mode 100644 ROX-Filer/src/po/fi.po delete mode 100644 ROX-Filer/src/po/fr.po delete mode 100644 ROX-Filer/src/po/gl.po delete mode 100644 ROX-Filer/src/po/hu.po delete mode 100644 ROX-Filer/src/po/it.po delete mode 100644 ROX-Filer/src/po/ja.po delete mode 100755 ROX-Filer/src/po/make-mo delete mode 100644 ROX-Filer/src/po/nl.po delete mode 100644 ROX-Filer/src/po/no.po delete mode 100644 ROX-Filer/src/po/pl.po delete mode 100644 ROX-Filer/src/po/pt_BR.po delete mode 100644 ROX-Filer/src/po/pt_PT.po delete mode 100644 ROX-Filer/src/po/ro.po delete mode 100644 ROX-Filer/src/po/ru.po delete mode 100644 ROX-Filer/src/po/sv.po delete mode 100644 ROX-Filer/src/po/tips.py delete mode 100644 ROX-Filer/src/po/uk.po delete mode 100755 ROX-Filer/src/po/update-po delete mode 100644 ROX-Filer/src/po/vi.po delete mode 100644 ROX-Filer/src/po/zh_CN.po delete mode 100644 ROX-Filer/src/po/zh_TW.po delete mode 100644 ROX-Filer/src/remote.c delete mode 100644 ROX-Filer/src/remote.h delete mode 100644 ROX-Filer/src/run.c delete mode 100644 ROX-Filer/src/run.h delete mode 100644 ROX-Filer/src/sc.c delete mode 100644 ROX-Filer/src/sc.h delete mode 100644 ROX-Filer/src/session.c delete mode 100644 ROX-Filer/src/session.h delete mode 100644 ROX-Filer/src/support.c delete mode 100644 ROX-Filer/src/support.h delete mode 100644 ROX-Filer/src/tasklist.c delete mode 100644 ROX-Filer/src/tasklist.h delete mode 100644 ROX-Filer/src/toolbar.c delete mode 100644 ROX-Filer/src/toolbar.h delete mode 100644 ROX-Filer/src/type.c delete mode 100644 ROX-Filer/src/type.h delete mode 100644 ROX-Filer/src/usericons.c delete mode 100644 ROX-Filer/src/usericons.h delete mode 100644 ROX-Filer/src/view_collection.c delete mode 100644 ROX-Filer/src/view_collection.h delete mode 100644 ROX-Filer/src/view_details.c delete mode 100644 ROX-Filer/src/view_details.h delete mode 100644 ROX-Filer/src/view_iface.c delete mode 100644 ROX-Filer/src/view_iface.h delete mode 100644 ROX-Filer/src/wrapped.c delete mode 100644 ROX-Filer/src/wrapped.h delete mode 100644 ROX-Filer/src/xdgmime.c delete mode 100644 ROX-Filer/src/xdgmime.h delete mode 100644 ROX-Filer/src/xdgmimealias.c delete mode 100644 ROX-Filer/src/xdgmimealias.h delete mode 100644 ROX-Filer/src/xdgmimecache.c delete mode 100644 ROX-Filer/src/xdgmimecache.h delete mode 100644 ROX-Filer/src/xdgmimeglob.c delete mode 100644 ROX-Filer/src/xdgmimeglob.h delete mode 100644 ROX-Filer/src/xdgmimeint.c delete mode 100644 ROX-Filer/src/xdgmimeint.h delete mode 100644 ROX-Filer/src/xdgmimemagic.c delete mode 100644 ROX-Filer/src/xdgmimemagic.h delete mode 100644 ROX-Filer/src/xdgmimeparent.c delete mode 100644 ROX-Filer/src/xdgmimeparent.h delete mode 100644 ROX-Filer/src/xml.c delete mode 100644 ROX-Filer/src/xml.h delete mode 100644 ROX-Filer/src/xtypes.c delete mode 100644 ROX-Filer/src/xtypes.h delete mode 100644 ROX-Filer/style.css delete mode 100644 ROX-Filer/subclasses delete mode 100644 rox.xml diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 02cdff81..00000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore emacs backup files -*~ -# and the generated manual page -rox.1 diff --git a/0compile.properties b/0compile.properties deleted file mode 100644 index 2ea77fa7..00000000 --- a/0compile.properties +++ /dev/null @@ -1,7 +0,0 @@ -[compile] -interface = ROX-Filer.xml -metadir = 0install -download-base-url = -version-modifier = -selections = - diff --git a/Choices/MIME-types/application_postscript b/Choices/MIME-types/application_postscript deleted file mode 100755 index e7928e1d..00000000 --- a/Choices/MIME-types/application_postscript +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec gv "$@" diff --git a/Choices/MIME-types/text b/Choices/MIME-types/text deleted file mode 100755 index c29853dc..00000000 --- a/Choices/MIME-types/text +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -exec xterm -e vi "$@" diff --git a/Choices/MIME-types/text_html b/Choices/MIME-types/text_html deleted file mode 100755 index 1787ae3e..00000000 --- a/Choices/MIME-types/text_html +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -for app in firefox mozilla-firefox firebird mozilla-firebird galeon mozilla netscape skipstone dillo konqueror amaya; do - if [ -x "`which $app`" ]; then exec "$app" "$@"; fi -done - -for app in w3m lynx links vim vi; do - if [ -x "`which $app`" ]; then exec xterm -e "$app" "$@"; fi -done - -echo "Can't find any web browser installed... last try..." >&2 - -exec netscape "$@" diff --git a/README b/README new file mode 100644 index 00000000..dedea088 --- /dev/null +++ b/README @@ -0,0 +1 @@ +Moved to https://github.com/rox-desktop/rox-filer diff --git a/README-es b/README-es deleted file mode 100644 index c4220bcd..00000000 --- a/README-es +++ /dev/null @@ -1,105 +0,0 @@ - ROX-Filer - Un explorador estilo RISC OS para X - por Thomas Leonard - - - -Inicio rápido -~~~~~~~~~~~~~ -Tipea ésto ($ es el prompt del shell): - - $ ./install.sh - -y sigue las instrucciones en pantalla. Si quieres compilar como -usuario normal e instalar como root deberías hacer ésto: - - $ ROX-Filer/AppRun --compile - $ su - [ ingresa clave de root ] - $ ./install.sh - - -notas sobre CVS -~~~~~~~~~~~~~~~ -Si obtuviste ésto a partir de CVS entonces necesitarás que 'autoconf' -esté instalado antes que puedas compilar (los snapshots en el sitio -FTP no requieren ésto). - -También tendrás que ejecutar 'make' en el directorio -'ROX-Filer/src/Docs' para obtener el manual creado en 'ROX-Filer/Help' - y también ejecutar 'dist' en 'ROX-Filer/src/po' para obtener las -traducciones. - -Puedes encontrar instrucciones para obtener rox mediante CVS en: - - http://sourceforge.net/cvs/?group_id=7023 - -Una vez tengas una versión de rox de CVS puedes actualizarlo con - - $ cvs -z3 update - -desde dentro del directorio 'rox'. - -Finalmente, recuerda que la versión CVS es el código más reciente de -desarrollo. No ha sido probado lo suficiente. Puede tener fallos. -Incluso puede no compilar. ¡Has sido advertido! (pero por favor informa -cualquier fallo que encuentres) - - -ROX-Filer -~~~~~~~~~ -Puedes encontrar ayuda del ROX-Filer en el directorio ROX-Filer/Help. - - -Archivos -~~~~~~~~ - -Se usan dos lugares para los archivos de configuración del manejo -MIME: - -/MIME-info/* - Contiene las reglas para adivinar el tipo de un archivo a - partir de su nombre. Muchos programas vienen con archivos - llamados '.mime' que contienen reglas adicionales. - Coloca esos archivos en el directorio MIME-info también. - -/MIME-types/* - Contiene programas o enlaces simbólicos que serán ejecutados. - Por ejemplo: - - $ rox imagen.gif - es como hacer - $ /MIME-types/image_gif imagen.gif - o, si no es hallado, - $ /MIME-types/image imagen.gif - -En ambos casos, son todos los directorios en tu variable de -entorno CHOICESPATH, la cual por defecto tiene el valor: - - ~/Choices:/usr/local/share/Choices:/usr/share/Choices - -El directorio más a la izquierda es explorado primero, seguido de los -otros en orden. Si la cadena comienza con `:' entonces no estará -permitido guardar y ningún programa intentará guardar una -configuración en él. Por más detalles, consulta: - - - - -Condiciones -~~~~~~~~~~~ -Éste programa es software libre; puedes redistribuirlo y/o modificarlo -bajo las condiciones de la Licencia Pública General GNU como fue -publicada por la Fundación por el Software Libre; ya sea la versión 2 -de la Licencia, o (a tu elección) cualquier versión posterior. - -Este programa es distribuído con la esperanza de que sea útil -pero SIN GARANTIA ALGUNA; incluso sin la garantía implícita de -MERCANTIBILIDAD O APTITUD PARA UN PROPOSITO PARTICULAR. Consulta -la Licencia Pública General GNU por más detalles. - -Deberías haber recibido una copia de la Licencia Pública General GNU -junto con éste programa; si no es así, escribe a la Free Software Foundation, -Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Por favor informame cualquier fallo, . diff --git a/README.md b/README.md deleted file mode 100644 index 69b28958..00000000 --- a/README.md +++ /dev/null @@ -1,46 +0,0 @@ -ROX-Filer -========= -A RISC OS-like filer for X -by Thomas Leonard - - - -Quick start ------------ -If you downloaded a source or binary tarball directly, type this ($ is the -shell prompt): - - $ ./ROX-Filer/AppRun - -This will compile the filer (if necessary) and then run it. - -However, it is more common to use Zero Install or a distribution package. To -get the filer using Zero Install, do: - -$ 0alias rox http://rox.sourceforge.net/2005/interfaces/ROX-Filer -$ rox - - -ROX-Filer ---------- -Documentation for ROX-Filer can be found in the directory ROX-Filer/Help. - - -Conditions ----------- -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Please report any bugs to the [rox-devel mailing list](http://rox.sourceforge.net/desktop/lists). diff --git a/ROX-Filer.xml b/ROX-Filer.xml deleted file mode 100644 index 4cfab2ac..00000000 --- a/ROX-Filer.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - ROX-Filer - fast and powerful file manager - - ROX-Filer is a fast and powerful graphical file manager. It has full drag-and-drop support and background file operations, and is highly configurable. It can also act as a pinboard, allowing you to pin frequently used files to the desktop background. - - - - - cd ROX-Filer/src/Docs/ && make - cd ROX-Filer/src/po/ && ./dist - cd ROX-Filer/src/ && autoconf && rm -fr autom4te.cache - sed -i "s/<Version>.*<\/Version>$/<Version>$RELEASE_VERSION<\/Version>/" ROX-Filer/AppInfo.xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ROX-Filer/.DirIcon b/ROX-Filer/.DirIcon deleted file mode 100644 index 26ca7b403fe9d21d36e50592a38fda958aecaec1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3884 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 - - A graphical file manager - Ein grafischer Dateimanager - Egy grafikus fájlkezelő - Een grafisch bestandsbeheerprogramma - Un gestor de archivos gráafico - Un gestionnaire de fichiers graphique - File manager grafico - Graficzny manager plików - 文件管理员 - 檔案管理員 - Xestor gráafico de arquivos - - File manager - 2.11 - Thomas Leonard and others - GNU General Public License - http://rox.sourceforge.net - - - Gestor de Archivos - Thomas Leonard y otros - Licencia Pública General GNU - - - - Dateimanager - Thomas Leonard und andere - - - Gestionnaire de fichiers - Thomas Leonard et autres - - - - - Fájlkezelés - - Thomas Leonard és mások - - - - - gestione file - - Thomas Leonard e altri - - - - - Manager plików - Thomas Leonard i inni - - - 文件管理员 - - - - - - - 檔案管理員 - - - - - - - Xestor de arquivos - Thomas Leonard e outros - Licencia Pública Xeral GNU - http://rox.sourceforge.net - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ROX-Filer/AppRun b/ROX-Filer/AppRun deleted file mode 100755 index 063ba6b1..00000000 --- a/ROX-Filer/AppRun +++ /dev/null @@ -1,66 +0,0 @@ -#!/bin/sh - -PROG=ROX-Filer - -APP_DIR=`dirname "$0"` -APP_DIR=`cd "$APP_DIR";pwd`; export APP_DIR - -DEBUGGER="" - -if [ "x$MAKE" = x ]; then - MAKE=make export MAKE -fi - -case $1 in - --debug) shift ; - if [ "$#" = 0 ] ; then - DEBUGGER="gdb --args" ; DEBUG_OPTIONS="-n --g-fatal-warnings" - else - DEBUGGER="gdb" - fi ;; - --valgrind) shift ; DEBUGGER="valgrind --num-callers=8";; - --massif) shift ; DEBUGGER="valgrind --tool=massif --alloc-fn=g_malloc --alloc-fn=g_realloc --alloc-fn=g_malloc0 --alloc-fn=g_try_malloc --alloc-fn=g_mem_chunk_alloc";; - --calltree) shift ; DEBUGGER="calltree";; - --leaks) shift ; DEBUGGER="valgrind --num-callers=8 --leak-check=yes";; - --compile) - shift - if [ ! -d "$APP_DIR/src" ] ; then - echo "ERROR from $0:" >&2 - echo "Cannot compile - source code is missing!" >&2 - exit 1 - fi - echo "Compiling $APP_DIR... please wait..." >&2 - if [ ! -x "$APP_DIR/src/configure" ]; then - echo "No 'configure' script! Trying to run autoconf..." - (cd "$APP_DIR/src"; autoconf) - fi - BUILDDIR="$APP_DIR/build" - [ ! -d "$BUILDDIR" ] && mkdir "$BUILDDIR" - rm -f "$BUILDDIR/config.cache" - rm -f "$APP_DIR/src/config.h" # (for upgrading) - cd "$BUILDDIR" && "$APP_DIR/src/configure" "$@" \ - && $MAKE clean && $MAKE && echo Done >&2 && exit 0 - echo Compile failed >&2 - echo Press Return... >&2 - read WAIT - exit 1 -esac - -BIN="$APP_DIR/$PROG" - -if [ -x "$BIN" ]; then - exec $DEBUGGER "$BIN" $DEBUG_OPTIONS "$@" -else - echo "ERROR from $0:" >&2 - echo "I cannot find an executable binary." >&2 - echo "Trying to compile..." >&2 - if [ -n "$DISPLAY" ]; then - xterm -e "$0" --compile - else - "$0" --compile - fi - if [ -x "$BIN" ]; then - exec "$BIN" "$@" - fi - exit 1 -fi diff --git a/ROX-Filer/Help/COPYING b/ROX-Filer/Help/COPYING deleted file mode 100644 index 60549be5..00000000 --- a/ROX-Filer/Help/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) 19yy - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/ROX-Filer/Help/Changes b/ROX-Filer/Help/Changes deleted file mode 100644 index abb287d8..00000000 --- a/ROX-Filer/Help/Changes +++ /dev/null @@ -1,5237 +0,0 @@ - ROX-Filer - A RISC OS-like filer for X - by Thomas Leonard - -* Note: you don't need to update file this when committing a change. Just add a -* log message with the commit and I'll update this file only when making a new -* release. - -Release 2.11 (2011-10-09) - -- Converted from Glade to GtkBuilder. - -- Fixed typo in German translation (Alek). - -- "build" script runs autoconf and build the documentation if necessary. This - is needed for Git checkouts. - -- Don't lower panel when the pointer moves over an applet. Reported by mark76 - on IRC. - -- Centre the pinboard image correctly if larger than the screen (Mohamed Amine - IL Idrissi). Patch sent to Ubuntu anonymously and forwarded; see Ubuntu bug - #615490. - -- Depend on 0compile 0.19.1. Fixes bug using distribution-provided pkg-config. - -- Added build dependency on pkg-config. - -- Bugfix: unselect item when menu is closed. We used to listen for - "unmap_event", but this is no longer emitted in recent versions of GTK. - Switched to using "selection-done" instead. Closes #2925212 (reported by - Barry Kauler). - -- Added button to options window to create the 'rox' start up script (Stephen - Watson). - -- Updated Italian translation (Yuri). - -- Updated Brazilian Portuguese translation (Sérgio Cipolla). - -- Updated Spanish and Galician translations (Antonio Sánchez). The - how-to-change-permissions explanation had a mistake that made the help window - appear blank. - -- Updated Spanish translation (Antonio Sánchez and Luis Felipe Abad). - -- Turn the error on invalid line breaks in uri_list_to_glist into a warning - (Stephen Watson). Firefox 3.5 upto and including 3.5.2 gets it wrong, but we - don't want to stop drops working until they fix it. - -- Eliminated the duplicated code between pixmap_background_thumb() and - pixmap_try_thumb(). pixmap_background_thumb() now calls pixmap_try_thumb() to - get from memory or load from cache (Stephen Watson). - -- Added option to place panels under the control of the _NET_WORKAREA property - (Stephen Watson). Note it only checks the work area at the point it creates - the panel. - -- Fix bug in XDG MIME magic: if two matches at the same priority returned - exactly the same type, it was considered a conflict (Stephen Watson). - -- Newer versions of GTK+ issue warnings if a spin button has a non-zero page - size (Stephen Watson). - -- If a file has a thumbnail, display it in the infobox (Stephen Watson). - -Release 2.10 (2009-07-18) - -- Added "Don't ask..." to may_offer_unmount() (Tony Houghton). - -- Update japanese trancslation (heroaki_TANAKA) - -- Applied Bernard Jungen's patch and suggestion (Tony Houghton): - - _() i18n wrappers for new infobox buttons. - - Don't save learnt mount points with default of "ASK". - - Use GPOINTER_TO_INT(NULL) instead of assuming 0. - -- New options in mount point Properties dialog (Tony Houghton): - What action to take when all a mount point's windows are closed. - -- Left align permissions labels in Properties (Tony Houghton). - -Release 2.9 (2009-05-10) - -- ROX-Filer didn't compile without inotify support. dnotify_fd_to_dir - got renamed in 71061457fee9e95d65c53f2bdcc400bc4ac502c0, but not - everywhere. - -- Removed separate source feed. For historical reasons, ROX-Filer had a - somewhat confused build system. The main feed claimed it to be a - binary that worked on any architecture (because it compiled itself if - the binary was missing), while a separate "source" feed provided the - build dependencies. Now it has just a single feed, asserting that - this is source code. Compiling it generates a binary release, - including a binary feed. Also, there is a new 0compile.properties - file so you can easily compile it with "0compile build". Clicking on - the source's AppRun when there is no binary compiles it as before - (without using Zero Install). - -- Don't use "cp -u" in build script; doesn't work on FreeBSD. - -- Updated Chinese translations (Babyfai Cheung) - -- Support back-references when bulk renaming (Rogutės). Back - references from \0 to \9 can be used in the "With:" field of the bulk - renaming dialog. Every back-reference is replaced by a captured - substring from the "Replace:" field. As a side effect, \0, \1, ..., \9 - become special characters and they must be escaped with an additional - backslash (e.g. \\3). - -- Update panels correctly when the screen size changes (Tony Houghton) - -- Support "Show per workspace" pinboard option when the window manager - is using viewports instead of desktops. This is needed for things like - compiz (Stephen Watson). - -- Make more terms become translatable in log.c (Babyfai Cheung). - -- Fix detection of *BSD systems for large file support. Third attempt. - Instead of including huge autoconf files, restore the uname call that - was accidentally removed in 462ae76daefc4f536f474982b4452e640ea48350. - -- Use inotify to monitor directories when available, in preference to - dnotify (Stephen Watson). - -- Handle desktop files that have a blank Path (Stephen Watson). - -- Handle the case where there is nothing following the version number - when checking the gcc --version output (Stephen Watson). - -- Improve detection of GCC version (Stephen Watson). - -- Plug memory leak looking for local apps (Stephen Watson). - -- Fix getting $APPDIRPATH when finding apps (Stephen Watson). - -- Added Galician to AppInfo.xml (Maria). - -- Update Spanish translation and add new Galego translation (Maria). - This is from the GALPon MiniNo project, a Debian distribution for old - computers. - -- Don't lose selection when starting a drag with Ctrl. If we drag from - an unselected item, we normally unselect any other items. However, if - we're also holding down Ctrl it's probably unselected only because we - mis-interpreted the click as toggle-selected, so just re-select it in - that case (reported by Kacper Wysocki). - -- Launch buttons in the options dialog now look for a locally installed - app when 0launch isn't available (Stephen Watson). - -- Creating a new file from a template works when the template is a - symlink (Bernard Jungen). It now creates a copy of the symlink's - target, not a copy of the symlink. However, if the template target is - a directory containing symlinks, those are copied as they are. - -- Make the symlink box remember the "relative" setting between - invocations (Bernard Jungen). - -- Updated Japanese translation (TANAKA hiroaki). - -- Remove very old code for /uri filesystem. - -- Change the way emblems are drawn on icons (Stephen Watson). The - emblem images are no longer MaskedPixmaps but are fetched from stock - when needed. This allows the theming mechanism to work on them. - There may be an overhead due to repeated calls to - gtk_style_lookup_icon_set and gtk_icon_set_render_icon. - -- Updated Italian translation (Yuri Bongiorno) - -- Added missing release notes to Changes file. For versions 2.7.1 and - 2.8. - - -Release 2.8 (2008-05-17) - -- Add a "keep panel on top" option (Tony Houghton) - On compiz-fusion 0.7.4, the panels come off the screen; I think it's - compiz's fault. This is a work-around (reported by Lucas Hazel). - -- Support "Path" key in .desktop files (Stephen Watson) - Reported by Mildred in http://sourceforge.net/tracker/index.php?func=detail&aid=19 - 36189&group_id=7023&atid=107023 - -- Updated Vietnamese translation (Anh Tuan). - -- Renamed icons to use new freedesktop.org scheme. -- Use correct name for coredump icon (Stephen Watson). - -- Don't crash trying to display invalid timestamps. localtime() can - return NULL if the input is out-of-range. - -- MIME magic lookup now returns text/plain for certain unknown file - types (Stephen Watson). Restored the code, lost in the update to the - newer XDG MIME code, which checks unknown files to see if they are - text. - -- Updated Russian translation (Nikita E. Shalaev). - -- Fix validity error in French manual XML (Stephen Watson) - -- Italian translation update (Yuri Bongiorno). - -- Typo in panel options (Vincent Lefèvre). - -- Updated Italian translation (Yuri Bongiorno). - -- Updated French manual translation (Arnaud Calvo). - - -Release 2.7.1 - -- Don't try to copy install.sh when building binary release. - -- Give choice of using 0launch when building. 'make' gives the old - behaviour. 'make with0launch' gets the headers using 0launch. - -- Updated Chinese Translations (BabyfaiCheung) - -- Fixed segfault on startup due to missing import. Recent versions of - GTK import time.h for us, but older ones didn't, leading to a segfault - in log_info_paths. - -- Running 'make' in the src directory now uses 0launch to find the - headers. This ensures that doing a normal build uses the same headers - that 0compile will use, hopefully detecting problems earlier (e.g. use - of a function from a newer GTK than the one we want to support). Note - that 'AppRun --compile' is unaffected. - -- Fixed check to ensure that the ROX theme is available. Before, we - just checked that the postscript icon could be found, but now we - fallback to the GNOME theme so that always succeeds. Also, if the - theme exists but is a broken link then we fix it automatically rather - than popping up a box telling the user to fix it. - -- Fix: Set the output codeset to UTF-8 (Andras Mohari). This should fix - the problems in non-UTF-8 locales. - -- Ensure the Glade templates go in the binary release. Reported by - Lennon Cook. - -- Fix checking for gcc version (Stephen Watson). - -- Don't use -fno-stack-protector unless we are using GCC 4.1 or later - (Stephen Watson). Should probably also check for GLIBC as well. - -- Fix typo in the save display settings window (Stephen Watson). - (Reported by Vincent Lefèvre) - -- Fixed typo in label. Reported by Vincent Lefèvre. - -- Updated README. Was *very* out-of-date (reported by Vincent Lefevre). - -- Removed install script. I haven't run this thing for years. There are - plenty of better ways of adding the filer to your system (using a - package, Zero Install, running it in-place, etc). Also added Glade to - the requirements in the manual, and updated the instructions there. - -- Remove unnecessary argument in the unmount message (Adam Sampson). - -- Only set -fno-stack-protector when using GCC. - - -Release 2.7 (2007-11-29) - - -NEW FEATURES - -- New panel configuration GUI (Tony Houghton): - - Created new Panel Options dialog in Templates.glade. - - Changing panel side is now in the dialog. - - Created new panel menu item. - - Implemented Remove Panel menu item. - - Pinboard menu has "Add panel" submenu. - - Added panel_side_to_{translated_}name. - - Options are stored with each panel. - - Use new panels config file to decide which panels to create with -S (Tony - Houghton) . - - Fixed some problems and cleaned up some things in my new Panel Options - code spotted by Thomas Leonard (Tony Houghton). - - Got rid of panel options from main Options dialog (Tony Houghton). - No longer warn about options without widgets. - -- Added a log viewer (Thomas Leonard). - On the Window menu there is now a "Show Log" item which opens a window - displaying a log of recent actions. Currently, only actions involving - an action window are logged. The action is logged when you request the - action (so it might not have actually been performed). The log window - was created using Glade, and this therefore adds a Glade dependency - on ROX-Filer, along with some support code to use it. - - Make the log window close when the Close button is clicked (Stephen Watson) - -- Added automatic placement and updating to PinboardAdd RPC (Dennis - Tomas). - -- Try to find icons in ROX and gnome themes if not in configured - theme (Tony Houghton). - - -CHANGES - -- Use text/base theme colours for the Collection widget, - not fg/bg. (Andras Mohari) This provides a good default for the - Collection widget, and is consistent with other widgets (GtkEntry, - GtkTreeView...). - - Setting the colours in .gtkrc-2.0 is unnecessary now (unless someone - wants to override theme colours, of course). - -- Updated xdgmime* files from CVS source (retrieved 2007-08-18) - (Stephen Watson). - -- Making new ROX-Filer releases is now handled by 0release (Thomas - Leonard). - - -TRANSLATIONS - -- Switched completely to standard gettext (Thomas Leonard). - We used to use our own implementation of the gettext functions so that - the user could switch langauges on the fly. However, that doesn't work - with Glade and it wasn't very useful anyway, so it has all been - removed. - - One visible change is that e.g. "LANG=fr rox -n" no longer works. You - have to use the full string (e.g. "LANG=fr_FR.utf8 rox -n"). - -- Added preliminary support for Glade translations (Andras Mohari, as - suggested by Lennon Cook). We check for the presence of libintl.h - and use the bindtextdomain() call to tell Glade where to find its - catalogs. - - Build failed on Solaris, because libintl wasn't linked in (Stephen - Watson). - -- Updated Hungarian translation (Andras Mohari). - -- Updated Chinese translation (Babyfai Cheung). - - -BUG FIXES - -- In the Properties box, the text in the "Contents Indicate" part of the - box can now be selected and pasted (Thomas Leonard). - -- Made uniconify from pinboard work properly with metacity (Tony - Houghton): _NET_ACTIVE_WINDOW message now has timestamp and source - field is set to 2 (pretend we're a pager). - - When uniconifying, set "requestor's currently active window" - to zero to be on the safe side (Thomas Leonard). - -- Arrow keys didn't work in details view (Thomas Leonard; reported by - Dennis Nezic and others). - GTK likes to select rows as you move over them. Since we don't want - that, ROX-Filer marks the rows as unselectable. However, newer GTK - versions refuse to move the cursor at all if the selection behaviour - is disabled. - -- Don't print CRITICAL message if there is no fstab available, - for Mac OS X (Stephen Watson, suggested by Anders F Björklund). - -- Make it clearer what the "Save Display Settings" does (Stephen - Watson). - -- Combined adding of release event with motion event for pinboard icons - (Tony Houghton). Doesn't seem necessary to add release event - explicitly, but best be on safe side. - -- Fixed build problem on GTK 2.6: GTK_STOCK_INFO doesn't exist - (Thomas Leonard; reported by Stephen Watson). - -- Escape special characters when opening the shell minibuffer (Thomas Leonard). - If you click on files while the shell minibuffer is open then the names are - escaped, but if you open it with a file under the cursor then the name wasn't - escaped (reported by Nils-Erik Svangård). - -- Fix occasional core dump with multiple magic matches (Stephen - Watson). - -- Use the directory icon for mount points if the icon theme has no icon - for mount points (Andras Mohari). - -- Use pathdup() in diritem_restart(), not readlink_dup(), to ensure that - we get the full pathname and not a path relative to the filer's - working directory (Stephen Watson). - -- Fixed crash when running a .desktop file in terminal (Dennis Tomas). - -- Strip .xpm or .svg extensions from Icon entry in .desktop files - (Dennis Tomas). - -- When clicking on toolbar buttons, don't crash if gtk_get_current_event - returns NULL (Thomas Leonard). This is the case when ATK is used. - -- Need to use unsigned char when reading the header of an Exif file to - avoid problems on some hardware (Stephen Watson, reported by Musus - Umbra). - - -Release 2.6.1 (2007-06-10) - -SESSION MANAGER CHANGES - -- When run with -S, restart with -S too rather than expanding the current - panels and pinboard on the command-line (Thomas Leonard). - -- If the filer was started with -S, ask the session manager to automatically - restart it if it crashes (Thomas Leonard). - -- If 0launch is available, use that as the session restart command when using a - session manager. Without this, restoring a session would always reload the - same version of ROX-Filer that was used when you saved it, not the current - version (Thomas Leonard). - -BUILDING - -- Shouldn't use == in /bin/sh scripts, that's a bashism (Stephen Watson). - -- Don't abort the build if we can't create debugging symbols (Thomas Leonard, - reported through 0compile as bug#1678076). - -OTHER CHANGES - -- Reduced panel border width to 1 pixel (Tony Houghton). - -- For JPEG files in Exif format attempt to read an embedded thumbnail first - (Stephen Watson). - -- Bugfix: The Thumb::Size tag is optional in the thumbnail spec (reported by - Jochen Seidel). - -TRANSLATIONS - -- Updated French manual translation (Arnaud Calvo). - -- Updated Chinese translations (Babyfai Cheung). - - -Release 2.6 (2007-02-25) - -CHANGES - -- If a .desktop file says "Terminal=true" then run the program in a terminal - (Thomas Leonard, reported by Frank McCormick). Note: this is currently - hard-coded to use xterm. - -- Option to display xattr indicator now independant of xattr support option - -- The symlink and xattr emblems are now loaded from stock items and therefore - themeable. Made clear that setting type on directories sets the contents, not - the directory. inode/* types excluded from the list of types available for - setting (Stephen Watson). - -- Added "Fit" backdrop image scaling mode (Peter Hyman). Like "Scale", this - scales the image without distorting it, but it will make it larger than the - screen if necessary to avoid a border. - -- New MIME type for Jar archives. - -- Lookup URI handlers by scheme in choices (Stephen Watson) - -- Added -U option for parsing filenames in URL form (Stephen Watson). - -- Added a new SOAP method, RunURI, and made the -U option use that. In addition - error returns from SOAP methods implicitly invoked (not via -R) are printed - as simple messages rather than the XML data (Stephen Watson). - -- Add eject button to the unmount/don't unmount dialog (Stephen Watson). - -- Mount and unmount commands can have additional parameters, eject command can - also be changed in the same way (Jim Ramsay, Stephen Watson). - -- Menu option to control whether directories are filtered by name along with - other files (Janek Kozicki and Andras Mohari). - - -BUG FIXES - -- Don't try to thumbnail zero-byte files. They're either empty, or special and - may cause us to hang (Thomas Leonard; reported by Barry Kauler). - -- Always use the default RTL setting to render filenames, even if they start - with a character that suggests the opposite. Fixes a positioning problem - (Thomas Leonard; reported by Alexander McLeay). - -- Use $MAKE to run make, for *BSD users - -- Don't display a warning about deprecated options; it just confuses people - (Thomas Leonard; reported by Peter). - -- When moving the cursor down on the last row of a collection in vertical mode, - move to the start of the next column (Thomas Leonard). - -- When reporting an invalid MIME type, include the type's name in the error - message (Thomas Leonard). - -- Fix bug when checking for escape characters in command string (Stephen Watson). - - -COMPILATION - -- Removed code to set location of pkg-config files. No longer needed, since the - discovery of ${pcfiledir} (suggested by Stephen Watson). - -- Made ROX-Filer-src.xml use the gtk-2.4 build environment, rather than - depending on all the headers directly. The build environment sets up a - temporary directory with some symlinks, which means you can compile without - having any version of the GTK headers installed at all. Before, an existing - -dev installation was required (but only to get the major version number of - the library!). - - -TRANSLATIONS - -- Updated French translation (Vincent Lefèvre). - -- Updated Hungarian translation (amohari). - -- Updated Italian translation (deslar). - -- Updated Russian translation (Nikita E. Shalaev). - -- Updated Ukrainian translation (Yury Bulka). - -- Updated Vietnamese translation (Anhtuan). - - -Release 2.5 (2006-07-07) - -New features: - -- Allow pinboard and panel icons to be locked (Dennis Tomas, suggested - by Abrolag). - -- Display extra information in properties box for desktop files (Stephen - Watson). - -- Allow setting icons in the AppInfo.xml file (Dennis Tomas). Example: - - - ... - - -- Added SetIcon and UnsetIcon SOAP calls (Jonatan Liljedahl). With this - you can have your volume manager (like ivman) set icons for the - mounted media that represents what type of media it is (cdr, cdrw, usb - stick, etc). - -- Right-clicking on the Show/hide button now turns thumbnails on and off - (Peter Federighi). - -- Added options to change the "mount" and "umount" commands (Thomas - Leonard). This may be useful for using programs such as "pmount" and - "pumount" (which allow mounting removable media without an fstab - entry, or encrypted filesystems). - -- Added a 'Manage Thumbnails' link to the Options box (Thomas Leonard). - If 0launch isn't available, tell the user the URL of the program we - were trying to run so they can get it themselves. Tell users about - right-click behaviour in a tooltip (Thomas Leonard). - - -Changes: - -- Removed separator from icon properties dialog box (Thomas Leonard). - -- Updated Word MIME type for new MIME database (Keith Warno). - -- When the handler for a MIME type is a symlink to a program, run the - program using the target of the symlink rather than the link itself so - that programs like gvim see the right name and behave correctly - (Thomas Leonard, reported by Keith Warno). - -- Use full URI, not local path, for DocBook stylesheet (Pär Forsling). - -- When setting or clearing a globicon, redraw pinboard and panel icons - too (Dennis Tomas). - -- When loading MIME icons from the current theme only get the pathname - from GTK, but actually load it through our own cache (Thomas Leonard). - GTK was loading a new copy of the image each time! - -- Changed name of save settings menu option to be more explicit (Stephen - Watson). - -- In many .desktop files there is no "%F" or similar parameter to the - "Exec" entry, although the application can open files. Work around - this problem by adding the arguments to the end of the command in this - case (Dennis Tomas). - -- Added Zero Install source interface (Thomas Leonard). Run this with - 0launch to compile against the GTK and GLib 2.4 headers (which will be - downloaded automatically). This produces a binary that runs with these - older versions, as well as with all later releases. Note that this has - been somewhat superceded by the GTK-2.4 compatibility environment: - - http://0install.net/2006/interfaces/GTK-2.4.xml - -- New type for XML files; "application/" rather than "text/" to match - freedesktop.org updates (Thomas Leonard). - -- Moved test for a hidden file into its own function. Allows us to - define additional tests as to whether a file is hidden, rather than - just the first character of the file name (Stephen Watson). - -- Updated source file headers by removing the Id line, updating the - year and clarifying the copyrights (Thomas Leonard). - -- The monospace font for the list view is now configurable via a - ViewDetails::mono-font gtkrc entry (Stephen Watson). - -- When iconfiying a window, try to find space on the pinboard of the - current screen first (Tony Houghton). - -- Updated the help text for rox --help (Andras Mohari). - -- Use a monospace font for the size and permissions columsn in the list - view (Andras Mohari). - - -Bug fixes: - -- When a panel icon's image changed, the display didn't update (Thomas - Leonard, reported by Dennis Tomas). - -- Any line in a .desktop file would be ignored if there was a blank line - directly before it (Dennis Tomas). - -- Escape " characters when generating translations for the Options.xml - file (Andras Mohari). - -- When reading the output from 'du' for the Properties box, set the - channel's encoding to NULL to avoid errors with non-UTF-8 filenames - (Andras Mohari). - -- When running ROX-Filer for the first time ever, don't tell users that - the Choices directory has been migrated unless they already had one. - Also, don't bother creating symlinks to the new locations in this - case. Other applications have had a while to catch up to the new - system, and the message is rather confusing to new users (Thomas - Leonard). - - -Translations: - -- Updated Chinese Translations (Babyfai Cheung). - -- Updated French manual translation (Arnaud Calvo). - -- Updated French translation (Vincent Lefèvre). - -- Updated Hungarian translation and converted to UTF-8 (Andras Mohari). - -- Updated Italian translation (Yuri Bongiorno). - -- Updated Russian translation (Nikita E. Shalaev). - -- Added Ukrainian translation (Yourko). - -- Added Vietnamese translation (Xomhau Newnick). - -- Updated instructions for creating a translation (reported by Yourko). - -- Make sure all the help message is translatable (Stephen Watson, - reported by Andras Mohari). - - - -30-Dec-2005 (Release 2.4.1) -~~~~~~~~~~~ -Updated Estonian translation (Teet Tärno). - -29-Dec-2005 -~~~~~~~~~~~ -Some .desktop files put ".png" after the icon name, which prevents the icon -from being found. Ignore it (Thomass Leonard; reported by Peter). - -28-Dec-2005 -~~~~~~~~~~~ -Updated Hungarian translation (Andras Mohari). - -27-Dec-2005 -~~~~~~~~~~~ -If we can't find libc.so.6 for xattr support, try libc.so in case we only have -uClib (Lucas Correia Villa Real). - -18-Dec-2005 -~~~~~~~~~~~ -Allow .desktop files to be used as run actions (Thomas Leonard). - -17-Dec-2005 -~~~~~~~~~~~ -Bugfix: New detail crashes cleanice theme (reported by Andras Mohari; reported - as CleanIce bug #1383457). Try another value... - -16-Dec-2005 -~~~~~~~~~~~ -Highlight icons using the theme's preferred colour instead of always using -blue (Andras Mohari). -Bugfix: Don't set style detail to "base" when highlighting items in a - Collection, as it confuses GTK's lighthouseblue theme engine - (Thomas Leonard). - -15-Dec-2005 -~~~~~~~~~~~ -Bugfix: Changing the display style crashes the filer with GTK >= 2.8.9 because - it sends a selection changed event before the view has finished - initialising (Thomas Leonard; reported by Tobias Kieslich). -Removed some done entries from the TODO file (Stephen Watson). - -13-Dec-2005 (Release 2.4) -~~~~~~~~~~~ -Updated Chinese translations (Babyfai Cheung). - -11-Dec-2005 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Make Path optional in PanelRemove SOAP call, allowing removal of items based -only on their label (Jonatan Liljedahl). -Bugfix: The install script failed to compile ROX-Filer on Debian systems, due - to a bug in recent versions of xterm (Vincent Lefèvre). Added a - workaround. -Bugfix: On 64-bit systems communication between ROX-Filer processes didn't - work, because GDK uses sizeof(long) bytes (not always 4 bytes) to store - a 32 bit property (Lucas Hazel). - -29-Nov-2005 -~~~~~~~~~~~ -Removed 'Open AVFS' from menu. It doesn't do anything on most systems, and you -can always add it with 'Customise menu...' if you want it (Thomas Leonard). -Better support for old GNOME themes with GNOME-specific MIME names (Dennis -Tomas). - -21-Nov-2005 -~~~~~~~~~~~ -Bugfix: Let -R work again (Stephen Watson). - -12-Nov-2005 -~~~~~~~~~~~ -Added initial support for .desktop files (Thomas Leonard). They are now shown -as executable, with the appropriate icons, and clicking on them runs the -application. -Bugfix: If stdin wasn't set when ROX-Filer was started it could get used for - the X connection, before ROX-Filer got around to replacing it with - /dev/null (Thomas Leonard). - -28-Oct-2005 -~~~~~~~~~~~ -Added Hungarian translation for the section in AppInfo.xml -(Andras Mohari). - -25-Oct-2005 -~~~~~~~~~~~ -Updated Japanese translation (Hiroaki Tanaka). - -22-Oct-2005 -~~~~~~~~~~~ -In details mode, clicking on an item while the keyboard focus is visible -moves the focus to the item clicked on (suggested by Anthony DiSante). - -19-Oct-2005 -~~~~~~~~~~~ -Updated Hungarian translation (Andras Mohari). - -18-Oct-2005 -~~~~~~~~~~~ -Updated Estonian translation (Teet Tärno). -Bugfix: An (extremely unlikely to occur) error message was missing some - arguments (Thomas Leonard; spotted by Andras Mohari). - -17-Oct-2005 -~~~~~~~~~~~ -Updated it.po and Manual-it.xml (Yuri Bongiorno) - -02-Oct-2005 -~~~~~~~~~~~ -Make all option menus into the options box wide enough for the widest item -to avoid resizing when the item is changed (Andras Mohari). - -15-Sep-2005 -~~~~~~~~~~~ -Only require shared-mime-database 0.14, not 0.16. Add the missing subclasses -manually (Thomas Leonard). - -13-Sep-2005 -~~~~~~~~~~~ -Allow some labels used to display file names to wrap over more than one line, -improving display of very long file names (Stephen Watson). -Show progress bar from start when an action is on more than one item -(Stephen Watson). - -08-Sep-2005 -~~~~~~~~~~~ -Bugfix: The refresh feature was accidentally broken during the upgrade to the - new MIME system (Thomas Leonard; reported by Frantisek Fuka). - -04-Sep-2005 -~~~~~~~~~~~ -Bugfix: If you editing the target of a symlink in the properties box, and then - unfocussed the entry when the symlink no longer existed, the filer - would crash trying to display the error message. Added work-around - (Thomas Leonard; reported as GTK bug #315229). - -27-Aug-2005 -~~~~~~~~~~~ -When using 'From LANG', check for translations with and with the territory -part (seventh guardian). Also do this when loading the manual or finding -a summary in AppInfo.xml (Thomas Leonard). - -22-Aug-2005 -~~~~~~~~~~~ -Marked some titlebar flags as translatable (reported by seventh guardian). - -17-Aug-2005 -~~~~~~~~~~~ -Updated install.sh with the current shared-mime-info URL (Stephen Watson). - -16-Aug-2005 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Bugfix: Fix typo in the Solaris xattr implementation (Stephen Watson). - -15-Aug-2005 -~~~~~~~~~~~ -Bugfix: When doing Tab completion, part of the code was still case sensitive, - causing it to sometimes fail to notice multiple matched (Keith Warno; - reported by Tristan McLeay). - -14-Aug-2005 -~~~~~~~~~~~ -Added ROX-Filer.xml file, giving details of the current version. This can be -used to register a CVS version of the filer with the injector easily (Thomas -Leonard). -Renamed 'Xterm Here' to 'Terminal Here' (suggested by seventh guardian). - -13-Aug-2005 -~~~~~~~~~~~ -Removed GNOME-VFS from --version output; we never use it now (Thomas Leonard). -Failure to create a usable default icon theme can be due to a broken link, so -inform the user and show ~/.icons (Stephen Watson). -Extended attribute support more general, not just types (Stephen Watson). - -12-Aug-2005 -~~~~~~~~~~~ -Updated Polish translation (Wit Wiliński). -Added Portuguese (for Portugal) translation (Renato Caldas). - -09-Aug-2005 (Release 2.3) -~~~~~~~~~~~ -Opening the menu with the menu key had broken. Also fixed a few minor leaks -(Thomas Leonard). - -06-Aug-2005 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Fixed memory leak in new SOAP RPC calls (Thomas Leonard). -Provide alternate to_html.xsl file for different location of Docbook -stylesheets (Stephen Watson). -GTK bug #152151 also causes BadDrawable errors so ignore them as well -(Stephen Watson). - -04-Aug-2005 -~~~~~~~~~~~ -Bugfix: Ultimate++ could crash the filer when its window was iconified - (Guido Schimmels). - -01-Aug-2005 -~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -31-Jul-2005 -~~~~~~~~~~~ -Added a button for configuring video thumbnails (with Stephen Watson's -VideoThumbnail application) to the Options window (Thomas Leonard). -Manual updates. -Right-clicking on a launcher button shows available versions (Thomas Leonard). -Bugfix: Added some missing gdk_event_free() calls (Thomas Leonard). -Bugfix: In vertical ordering mode, the blank space after all the items - acted as if there were icons there (reported by Arnaud Calvo). - -30-Jul-2005 -~~~~~~~~~~~ -Don't abort on BadWindow errors. GTK bug #152151 is still not fixed after -nearly a year, so give up trying to fix it and just ignore it (Thomas Leonard). -Don't show Help menu item for applications with no Help subdirectory (Thomas -Leonard). - -29-Jul-2005 -~~~~~~~~~~~ -Added option to only show iconified windows belonging to the current workspace -(Tom Morton). -Added option to allow vertical ordering when laying out the icon view -(Piotr Zielinski). - -28-Jul-2005 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -27-Jul-2005 -~~~~~~~~~~~ -Renamed Python MIME icon to keep up with freedesktop.org's current thinking in -the endless text vs application war (Thomas Leonard). - -26-Jul-2005 -~~~~~~~~~~~ -Removed custom platform detection (which was designed to allow a single -copy of ROX-Filer to contain binaries for multiple platforms). Let the -packaging system deal with it (Thomas Leonard). - -25-Jul-2005 -~~~~~~~~~~~ -Check for shared-mime-info 0.16 when building (Stephen Watson). - -24-Jul-2005 -~~~~~~~~~~~ -An executable text file of unknown type is marked as executable if its name -doesn't contain a '.'. This is so that 'readme.txt' on a filesystem with -all execute bits set is seen as text, but a shell script with no extension -or interpreter header still shows up as an executable on Solaris (Thomas -Leonard; requested by Stephen Watson). - -23-Jul-2005 -~~~~~~~~~~~ -Added icon for messages/* MIME types (Thomas Leonard). -Improvements for file type guessing (Thomas Leonard): -- When getting the type for a symlink, we need the absolute path now that we - check file contents. -- Also check for extended attributes for the symlink target. -- Removed all of our code for guessing types from file names, since it - duplicates the new xdgmime code. -- Files with control characters are now considered to be binary, even - though they may be valid UTF-8. -- Executable files of unknown type are now marked as executable, not - octet-stream. -- When complaining that there is no run action for an executable type, - give the user a hint about setting the execute permission. -- Refreshing the MIME system also refreshes xdgmime. -- Added MIME rules to say that Python, PERL and Ruby are executable, as - old versions of the MIME database don't have these rules (reported by - Stephen Watson). - - -22-Jul-2005 -~~~~~~~~~~~ -At install time, add a rule to the MIME database that shell scripts are -executable, as the defaults are missing this (Thomas Leonard; reported by -Stephen Watson). -In the properties box, don't say that the run action is executable just -because the MIME type is executable. The execute bit must be set too -(Thomas Leonard). - -21-Jul-2005 -~~~~~~~~~~~ -Replaced the text the Options box telling people to download and run -MIME-Editor with a button that actually does it (Thomas Leonard). - -17-Jul-2005 -~~~~~~~~~~~ -Bugfix: Opening a new filer window with a key press warped the pointer - to the top-left of the screen (Matthew Weier O'Phinney and Thomas - Leonard). - -16-Jul-2005 -~~~~~~~~~~~ -Detect GCC 4 and disable pointer signedness warnings (Thomas Leonard). -Mark files as executable if their MIME type is a subclass of -application/x-executable (Thomas Leonard). -Removed the option for choosing panel side for -S, since we can use the new -method of choosing the panel side indead (Thomas Leonard). -Split Mount SOAP operation into separate Mount and Unmount operations -(Thomas Leonard). -Bugfix: The path entry buffer didn't work in /, due to recent changes - (Thomas Leonard). -Bugfix: Clicking on a directory which was mounted but shown as unmounted, - due to the display being out-of-date, tried to unmount it. - (Thomas Leonard, reported by Mephistopheles Jones as bug #1007402). - -15-Jul-2005 -~~~~~~~~~~~ -Copied xdgmime library into the filer, so we don't need gnomevfs just -to do MIME guessing from file contents (Guido Schimmels). - -26-Jun-2005 -~~~~~~~~~~~ -Renamed the 'ROX Session' section in options to 'Desktop' as it could be -used by any session manager (Stephen Watson). - -25-Jun-2005 -~~~~~~~~~~~ -Panel side is now stored with the panel file, and is reused on start-up if -you use --border in place of the old --top, --bottom, --left and --right -(which still work). The panel menu has a new 'Panel Options...' choice to let -you change which edge to use (Thomas Leonard). - -11-Jun-2005 -~~~~~~~~~~~ -Updated Chinese translation (Babyfai Cheung). - -09-Jun-2005 -~~~~~~~~~~~ -Removed AC_PATH_X, which stopped configure working on Mac OS X (Thomas Leonard; -reported by Tristan McLeay). We already had AC_PATH_XTRA anyway. - -07-Jun-2005 -~~~~~~~~~~~ -Add Basque transation (Piarres Beobide). - -Entering ~ as the first character in the Goto: entry goes to the users -home directory (Stephen Watson, suggested by james). -Install script now installs MIME run actions into $XDG_CONFIG_HOME -(Stephen Watson). - -20-May-2005 -~~~~~~~~~~~ -Change the way that ROX-Session runs ROX-Filer. It now uses the -S option to -open the default Panel and Pinboard, with the configuration of panel and -pinboard in ROX-Filer options (Stephen Watson). -Fixed error in tooltip in bulk rename box (Vincent Lefèvre). - -13-May-2005 -~~~~~~~~~~~ -Type changes for 64-bit compatibility (Tony Houghton). - -Tests whether dnotify_wakeup_flag is set instead of dnotify_wakeup which is a -function address (Tony Houghton). - -08-May-2005 -~~~~~~~~~~~ -Selecting an entry from the bookmarks menu can open a new window, depending -on the mouse button used and the 'New window on button 1' setting -(Stephen Watson). - -03-May-2005 -~~~~~~~~~~~ -World-writable directories can't be app dirs (Thomas Leonard). - -02-May-2005 -~~~~~~~~~~~ -Updated Chinese translation (Babyfai Cheung). -Fixed missing argument in remote.c (Pär Forsling). - -01-May-2005 -~~~~~~~~~~~ -When using the drag-and-drop menu, give the choice of creating relative or -absolute symlinks. For Ctrl-Shift-Drag, always make relative links rather -than absolute ones (Thomas Leonard; requested by Peter Prohaska). - -28-Apr-2005 -~~~~~~~~~~~ -If we can't find getopt_long, try looking in libgnugetopt (Stephen Watson). - -26-Apr-2005 -~~~~~~~~~~~ -Bugfix: Broke get_xdg_data_dirs while writing choices_list_xdg_dirs (Stephen - Watson, reported by Pär Forsling). -Bugfix: Don't try to move directories that aren't there, but make symbolic - links for them anyway (Stephen Watson, reported by Thomas Leonard). -Old choices_find_path_load/save now static, use new XDG functions exclusively -(Stephen Watson). - -25-Apr-2005 -~~~~~~~~~~~ -Change over from CHOICESPATH to XDG_CONFIG_HOME and XDG_CONFIG_DIRS (Stephen -Watson). - -21-Apr-2005 -~~~~~~~~~~~ -Try to cope with BadWindow errors (Thomas Leonard; suggested by Kacper Wysock). - -17-Apr-2005 -~~~~~~~~~~~ -Bugfix: Replacing an existing display settings would erase all the other - existing settings (Stephen Watson, reported by Henrik Jacobsson). - -16-Apr-2005 -~~~~~~~~~~~ -Bugfix: Expired thumbnails were not being purged from the memory cache - because of a reference counting issue (Stephen Watson). - -14-Apr-2005 -~~~~~~~~~~~ -Updated Danish translation (Christian Storgaard). - -28-Mar-2005 -~~~~~~~~~~~ -Simplify code to set minibuffer text to red on error (Dennis). Also set -background to white, in case a theme's colour clashes with red (Thomas -Leonard). -Make tab completion in the minibuffer case insensitive (Jonatan Liljedahl). - -23-Mar-2005 -~~~~~~~~~~~ -Option in list view to show the full MIME-Type comment rather than -just "File" (Stephen Watson). - -12-Mar-2005 -~~~~~~~~~~~ -When building the SendTo menu, allow nested subdirectories more than one -level deep (Jonatan Liljedahl). -Add 'Customise Menu...' to New submenu (Thomas Leonard, suggested by Jesse -Wagner). -Can specify panel item arguments and short cut when adding via SOAP -call (m0n5t3r). -Also for pinboard items (and fixed bugs related to pinboard_add_with_args) -(Stephen Watson). - -28-Feb-2005 -~~~~~~~~~~~ -Bugfix: Progress bar for count operation didn't finish when the count did - (Stephen Watson, reported by Alexander Wagner). - -24-Feb-2005 -~~~~~~~~~~~ -Look out for new line character when reading EA MIME type under Solaris -(Stephen Watson). - -13-Feb-2005 -~~~~~~~~~~~ -Added Estonian translation (Teet Tärno). - -12-Feb-2005 -~~~~~~~~~~~ -Removed copy of GTK icon theme system. We now depend on GTK 2.4, which -includes it (Thomas Leonard). -Renamed 'Before' and 'After' in the bulk rename box to 'Old name' and -'New name', as they were causing problems for translators (reported by -Yuri Bongiorno). -Bugfix: The help for the "Set Type..." box wasn't translated (reported - by Yuri Bongiorno). - -09-Feb-2005 -~~~~~~~~~~~ -Defer re-generating a thumbnail until 5 seconds after the timestamp on -the old one (Stephen Watson). -Bugfix: A file could be added many times to the thumbnail queue, causing - the progress bar to behave strangely (Stephen Watson). -More changes for installing onto NFS mounted directory (Stephen Watson). - -31-Jan-2005 -~~~~~~~~~~~ -Fixed a compiler warning by removing an unnecessary extra tooltips object -(Andreas Jochens). - -30-Jan-2005 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -29-Jan-2005 (Release 2.2.0) -~~~~~~~~~~~ -Added Finnish translation (Jari Rahkonen). -Updated Dutch translation (Jan Wagemakers). - -24-Jan-2005 -~~~~~~~~~~~ -Bugfix: More crashes due to Japanese characters; last patch didn't fix all - the problems (Thomas Leonard; reported by Lewis Denizen). - -23-Jan-2005 (Release 2.1.6) -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Bugfix: Japanese digit characters crashed the filer, because some code thought - they were digits, and anothers thought they weren't (Thomas Leonard; - reported by Lewis Denizen). - -22-Jan-2005 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -21-Jan-2005 -~~~~~~~~~~~ -Bugfix: If, when building, objcopy exits with an error then don't strip - the binary (Stephen Watson). - -20-Jan-2005 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -18-Jan-2005 -~~~~~~~~~~~ -Bugfix: Don't show the permissions in the properties window for - symbolic links as they don't behave as you might expect - (Stephen Watson, reported by Max Power). - -16-Jan-2005 -~~~~~~~~~~~ -Fixed some spelling errors and made some messages easier to translate -(Vincent Lefèvre). - -15-Jan-2005 (Release 2.1.5) -~~~~~~~~~~~ -Bugfix: An extra arrow had appeared in the Find box (Thomas Leonard). -Bugfix: We were inconsistent about when filenames were escaped. Eg, creating - a directory called "a%20b" actually created "a b" (Thomas Leonard). -Bugfix: Panel icons with no label displayed an empty tooltip (Thomas Leonard). -Bugfix: Selecting a pinboard icon only redrew the text path (Thomas Leonard). - -13-Jan-2005 -~~~~~~~~~~~ -Updated Japanese translation (Hiroaki Tanaka). - -12-Jan-2005 -~~~~~~~~~~~ -Slight change to install script for when the installation directory is -on an NFS mount (Stephen Watson). - -10-Jan-2005 -~~~~~~~~~~~ -Can now disable use of extended attributes (Stephen Watson). - -08-Jan-2005 -~~~~~~~~~~~ -Allow renaming multiple files at once. This opens the Bulk Rename window, -which allows manual editing of the names, as well as regular-expression -based transformations (Thomas Leonard). - -Rename buttons in Set Run Action box so that they make sense (Thomas Leonard; -reported by Jonatan Liljedahl). - -Bugfix: Filer would crash when the screen was resized if there was no - pinboard (Thomas Leonard). -Bugfix: Xinerama support had broken panel repositioning in response to - XRANDR screen resizing events (Thomas Leonard). - -03-Jan-2005 -~~~~~~~~~~~ -Set the name for filer windows to 'rox-filer'. This allows theming the fonts -just for ROX-Filer (Lucas Hazel). - -23-Dec-2004 -~~~~~~~~~~~ -If an item has extended attributes, report that before checking whether they -are supported (Thomas Leonard). -Updated Chinese translation (Babyfai Cheung). -Bugfix: Pressing Escape now closes the Properties box (reported by Arnaud - Calvo). - -09-Dec-2004 -~~~~~~~~~~~ -Bugfix: Test for presence of extended attributes on Solaris gave wrong - answer when they were not supported (Stephen Watson). - -08-Dec-2004 -~~~~~~~~~~~ -The icons for mount point and symbolic link are now side-by-side, not -one on top of the other, and a new icon is used to mark files with -extended attributes (Stephen Watson). - -27-Nov-2004 -~~~~~~~~~~~ -Bugfix: Use gtk_selection_data_set_text instead of gtk_selection_data_set when - pasting filenames so that other applications know the string is UTF-8 - (Thomas Leonard; reported by Dennis). - -27-Nov-2004 -~~~~~~~~~~~ -Better extended attribute detection under Solaris (Stephen Watson). - -25-Nov-2004 -~~~~~~~~~~~ -More extended attribute support. The "Set Type..." menu item should be -disabled if not supported by the system or FS (Stephen Watson). - -24-Nov-2004 -~~~~~~~~~~~ -Method of scaling pinboard images is now an option, as the default could -produce poor results on some systems (Stephen Watson). - -22-Nov-2004 -~~~~~~~~~~~ -Updated it.po and Manual-it.xml (Yuri Bongiorno) - -19-Nov-2004 -~~~~~~~~~~~ -Bugfix: Dragging a lasso box above the top of the window in details mode - selected all the items outside the box (Thomas Leonard; reported by - Anthony DiSante). - -12-Nov-2004 -~~~~~~~~~~~ -Only show executable files in green if clicking would actually run them, not -just because they have the execute bit set (Thomas Leonard). - -11-Nov-2004 -~~~~~~~~~~~ -Much faster thumbnail generation (Ken Hayber, reported by Anthony DiSante). - -08-Nov-2004 -~~~~~~~~~~~ -When closing a filer window showing a directory under a user-mounted -mount-point, offer to unmount the device if no other filer window also shows -that mount point (requested by Tony Houghton and others). Also do this check -when changing to a parent directory. -Scale iconified window icons on the pinboard down to normal size (Ken Hayber). - -08-Nov-2004 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -07-Nov-2004 -~~~~~~~~~~~ -Work on the action box, including a progress bar (Stephen Watson). - -24-Oct-2004 -~~~~~~~~~~~ -Added PinboardRemove() SOAP call (Stephen Watson). - -20-Oct-2004 (Release 2.1.4) -~~~~~~~~~~~ -Added Portuguese translation (Rodrigo Cesar Herefeld). - -16-Oct-2004 -~~~~~~~~~~~ -Some improvements to saved display settings (Takuo Yonezawa and Stephen -Watson). -Updated Spanish translation (Marcelo Ramos). - -15-Oct-2004 -~~~~~~~~~~~ -Allow multiple arguments for executable pinboard and panel icons (Thomas -Leonard). -Updated it.po and Manual-it (Yuri Bongiorno). - -12-Oct-2004 -~~~~~~~~~~~ -Use a higher quality setting when scaling the backdrop image (Ken Hayber). - -06-Oct-2004 -~~~~~~~~~~~ -Added PanelRemove() SOAP call (Sabin Iacob). -Bugfix: Mounting a directory that was accessed through a symlinked directory - used the symbolic path, confusing the mount command (Thomas Leonard; - reported by Anthony DiSante). - -29-Sep-2004 -~~~~~~~~~~~ -Force panel to not take focus when using GTK 2.4 (Thomas Leonard). - -28-Sep-2004 -~~~~~~~~~~~ -Minimum width of toolbar now an option (requested by Matthew Weier O'Phinney). - -21-Sep-2004 -~~~~~~~~~~~ -Only examine items that are actually displayed, not all items in a directory. -Saves checking hidden files, which typically speeds up opening the home -directory. Removed an unnecessary extra scan when opening a directory -with the default filter setting. Removed the double scan when clicking Refresh -and two windows show the same directory (Thomas Leonard). - -20-Sep-2004 -~~~~~~~~~~~ -Added option to make panels have the type _NET_WM_WINDOW_TYPE_DOCK (Tony -Houghton). Metacity needs this. - -17-Sep-2004 -~~~~~~~~~~~ -If we can't guess a file's type from its name or extended attribute, try -looking at its contents too, if we have gnomevfs 2.8.0 or later available -(Thomas Leonard). - -11-Sep-2004 -~~~~~~~~~~~ -Panel and pinboard icons can now have a single argument set for them. -If you need more than one argument, consider creating a wrapper -(Stephen Watson). - -09-Sep-2004 -~~~~~~~~~~~ -Added --massif option for profiling memory usage (Thomas Leonard). -Warn about missing libsm in configure.in (reported by fedewico). - -06-Sep-2004 -~~~~~~~~~~~ -When resizing a window, only warp the pointer as much as necessary to keep -it inside the window (Thomas Leonard). - -02-Sep-2004 -~~~~~~~~~~~ -Ensure that a panel applet's properties are set before starting the applet -(reported by Tony Houghton). - -01-Sep-2004 -~~~~~~~~~~~ -Fixed panel menu positioning for multiple monitors with different resolutions -(Tony Houghton). -Use _NET_WM_STATE_BELOW to raise and lower the panel (Tony Houghton). Not -changing to type DOCK yet as it breaks some WMs. - -25-Aug-2004 -~~~~~~~~~~~ -Use new GTK 2.2 functions to set window hints now that we don't support 2.0 -anymore (Guido Schimmels). - -23-Aug-2004 -~~~~~~~~~~~ -Plug a memory leak when loading SVG type icons (Stephen Watson). - -18-Aug-2004 -~~~~~~~~~~~ -Fix for the Solaris extended attribute support (Stephen Watson). - -13-Aug-2004 -~~~~~~~~~~~ -Set minimum width of toolbar so that all buttons are visible (Stephen Watson). - -10-Aug-2004 -~~~~~~~~~~~ -When adding an entry to the Recently Visited menu, remove its parent directory. -This stops the list filling up with near-duplicates when you have deeply -nested directories (Thomas Leonard). - -08-Aug-2004 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -05-Aug-2004 -~~~~~~~~~~~ -For debugging, show the failed URI when dragging to the pinboard (Thomas -Leonard). - -03-Aug-2004 -~~~~~~~~~~~ -Use Help icon instead of Info icon for popup help buttons (Thomas Leonard). - -02-Aug-2004 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -01-Aug-2004 (Release 2.1.3) -~~~~~~~~~~~ -Build in ROX-Filer/build, not ~/build/ROX-Filer. - -30-Jul-2004 -~~~~~~~~~~~ -Renamed Cancel to Close in the Properties box (suggested by Arnaud Calvo). -Updated some calls to use newer APIs, and allow compilation on systems where -deprecated widgets are disabled by default (reported by Vincent Lefèvre and -Guido Schimmels). -Bugfix: Panel icons were no longer shown highlighted when selected. - -23-Jul-2004 -~~~~~~~~~~~ -Bugfix: When opening a new directory with saved settings, the filer would - print a warning and then crash. - -21-Jul-2004 -~~~~~~~~~~~ -Changed email address given as the one to send bugs to when using ---help to the rox-devel list (Stephen Watson). -Thumbnail generation now handles files with UTF-8 characters (Anatoly -Asviyan). - -16-Jul-2004 -~~~~~~~~~~~ -Removed action window screenshot from manual to save space. - -15-Jul-2004 -~~~~~~~~~~~ -Proper check for the stat[v]fs headers (Stephen Watson, reported by -Lucas Hazel). - -13-Jul-2004 -~~~~~~~~~~~ -Added firefox to list of default browsers (suggested by eugene). - -10-Jul-2004 -~~~~~~~~~~~ -Added Romanian translation (Cosma Florin). - -01-Jul-2004 -~~~~~~~~~~~ -Can now set "Brief" option on the Copy and Move action windows (Stephen -Watson). -Properties window handles mount points specially when calculating their size -(Stephen Watson). - -30-Jun-2004 -~~~~~~~~~~~ -Bugfix: On Linux, the filer called setxattr instead of getxattr, thus - preventing setting filetypes with extended attributes from working. -Bugfix: Copy and Move now obey the "Brief" option (Stephen Watson, reported - by Graham Borland) - -29-Jun-2004 -~~~~~~~~~~~ -Bugfix: On multi-monitor setups, filer windows always opened on the top/left - monitor (reported by Kacper Wysocki). Now they open on the monitor - under the pointer. - -27-Jun-2004 -~~~~~~~~~~~ -Icons of minimized windows remember their positions on the pinboard (Stephen -Watson). -Filer now officially requires GTK 2.2.0 or later (wasn't working with 2.0 -anyway, and noone had complained). -Bugfix: A race in the code for updating iconified window titles could cause - the filer to crash with a BadWindow error. - -26-Jun-2004 -~~~~~~~~~~~ -Another Properties window fix: if there is no output from the du command -then put a message indicating an error (Stephen Watson). -Can now compile without Xinerama support on GTK+ < 2.2.0 (Tony Houghton). - -23-Jun-2004 -~~~~~~~~~~~ -Let the panel autoscroll during a drag (Stephen Watson). - -18-Jun-2004 -~~~~~~~~~~~ -Fix another bug when closing Properties window before it has finished -scanning the directory (Stephen Watson). - -09-Jun-2004 -~~~~~~~~~~~ -Improved Xinerama support: now works for tooltips and action windows; filer -windows are no longer prone to leaving their borders overlapping; panel uses -_NET_WM_STRUT_PARTIAL so it only affects the monitor it's on (Tony Houghton). - -04-Jun-2004 -~~~~~~~~~~~ -Make ignoring executable files with known extensions the default setting -(suggested by Daniel Poersch). Freedesktop.org is discussing a plan to mark -individual MIME types as executable, which may be a better long-term -solution. -Option to prevent maximising windows from covering the panels (requested -by Simon Templer and others). - -29-May-2004 -~~~~~~~~~~~ -Type specific Send To entries now shown for multiple files when they -are all of the same type (Stephen Watson). -Can now drag icons to the very end of the panel (Stephen Watson). - -28-May-2004 -~~~~~~~~~~~ -Another place to look for apsymbols.h (Stephen Watson). - -26-May-2004 -~~~~~~~~~~~ -More fixes for the new build system (Stephen Watson). - -25-May-2004 -~~~~~~~~~~~ -Fix portability of new build system and ensure configure can find the -version number again (Stephen Watson). - -22-May-2004 -~~~~~~~~~~~ -Build object files in ~/build/ROX-Filer, in case source directory is read-only. -This also reduces the risk of distributing the object files by accident. - -14-May-2004 -~~~~~~~~~~~ -Don't allow toolbar buttons to focus (needed for GTK 2.4). - -08-May-2004 -~~~~~~~~~~~ -Fix loss of bookmark name when re-ordering (Rahsheen Porter). -Removed installation of thumbnail handlers via the Set Icon dialog. It was -never documented and all the thumbnailers use the mime_handler installation -anyway (Stephen Watson). - -04-May-2004 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -02-May-2004 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -01-May-2004 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -30-Apr-2004 (Release 2.1.2) -~~~~~~~~~~~ -Removed toolbar hint type from panel. It caused too many problems. - -29-Apr-2004 -~~~~~~~~~~~ -Added 'Download handler' to drag and drop options. This program is invoked -when a URI is dragged to the filer (eg, from a web-browser). The default -command runs wget to download the file (Andrew Flegg). - -27-Apr-2004 -~~~~~~~~~~~ -Bugfix: URIs received through drag-and-drop were unescaped twice, causing - problems with names containing the '%' character (spotted by Jonatan - Liljedahl). - -21-Apr-2004 -~~~~~~~~~~~ -Cope with spaces in ROX-Filer's path. -Added a load of default keys, since many GTK setups now make it almost -impossible to change shortcuts. -Added --leaks option to run ROX-Filer through valgrind with the memory -leak option checking on (Stephen Watson). - -08-Apr-2004 -~~~~~~~~~~~ -Added Xinerama support (Tony Houghton). -Set window type hint = toolbar for panel to prevent it appearing in pagers etc -(Tony Houghton). - -04-Apr-2004 -~~~~~~~~~~~ -Added method of saving display settings for directories. Mostly working, -but bugs remain related to size and position (Stephen Watson). -Updated Spanish translation (Marcelo Ramos). - -03-Apr-2004 -~~~~~~~~~~~ -Load extended attribute functions dynamically. This should mean that compiling -ROX-Filer with a new glibc won't make it stop working with older versions due -to the functions being missing. - -02-Apr-2004 -~~~~~~~~~~~ -Use * as a synonym for unfiltered (Stephen Watson). - -25-Mar-2004 -~~~~~~~~~~~ -Bookmarks can be given titles (Stephen Watson). - -24-Mar-2004 -~~~~~~~~~~~ -Fix memory leak in thumbnails code (Stephen Watson). - -20-Mar-2004 -~~~~~~~~~~~ -Fixed bug in details mode for showing hidden files (Stephen Watson). - -18-Mar-2004 -~~~~~~~~~~~ -Don't display an error box when installing the ROX icon theme. It just -worries people for no reason. - -17-Mar-2004 -~~~~~~~~~~~ -Updated Chinese translation (Babyfai Cheung). - -16-Mar-2004 -~~~~~~~~~~~ -Option to make the File menu appear directly when the menu is opened with -files selected (Peter Geer). - -15-Mar-2004 -~~~~~~~~~~~ -Added an arrow to the comparison area of the action box so you can see -which file overwrites the other (Stephen Watson). - -10-Mar-2004 -~~~~~~~~~~~ -Sort by user/group now uses the name, not the number (Stephen Watson). - -07-Mar-2004 -~~~~~~~~~~~ -Added 'Select by Name'. - -06-Mar-2004 -~~~~~~~~~~~ -Cope with XRandR screen resizing (Geoff Youngs and Tom Morton). - -01-Mar-2004 -~~~~~~~~~~~ -Can now filter files by name, using normal shell (glob) patterns (Stephen -Watson). - -03-Feb-2004 -~~~~~~~~~~~ -Updated it.po and Manual-it (Yuri Bongiorno). - -01-Feb-2004 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -24-Jan-2004 (Release 2.1.1) -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Updated Dutch translation (Jan Wagemakers). - -22-Jan-2004 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -21-Jan-2004 -~~~~~~~~~~~ -Misc changes for next release. - -18-Jan-2004 -~~~~~~~~~~~ -Accept Mozilla's alternative to the standard text/uri-list target during -drag-and-drop (Andrew Flegg). - -07-Jan-2004 -~~~~~~~~~~~ -Bugfix: Icon shortcuts with out modifier keys didn't work if NumLock, - CapsLock, etc were turned on (reported by Peter Geer). -Bugfix: Handle case when the output of uname -m contains spaces (Stephen - Watson, reported on #rox). - -06-Jan-2004 -~~~~~~~~~~~ -Renamed some functions stolen from Gtk to avoid possible conflicts with -the Gtk-2.3 series (reported by Stu Tissimus). - -20-Dec-2003 -~~~~~~~~~~~ -Make the Ctrl-button-3 menu pointer appear at the same place regardless -of the number of custom entries (Stephen Watson). - -19-Dec-2003 -~~~~~~~~~~~ -Make Ctrl-button-3 open the menu slightly higher, so Delete isn't under the -pointer (suggested by Ryan Pavlik). - -10-Dec-2003 -~~~~~~~~~~~ -Allow non image/* thumbnails in details mode. Label next to the combo -in the Set Type action dialog is now "Type" and not "Command" (Stephen -Watson). - -03-Dec-2003 -~~~~~~~~~~~ -Work out which include file we need for getxattr (Stephen Watson). - -02-Dec-2003 -~~~~~~~~~~~ -Allow editing a symlink's target from the Properties box (suggested by Arnaud -Calvo). -Experimental extended attributes support for setting MIME types (Stephen -Watson). - -29-Nov-2003 -~~~~~~~~~~~ -More drag and drop fixes relating to escaped URI's (Stephen Watson). - -23-Nov-2003 -~~~~~~~~~~~ -Added 'Specify the prefix' install option (Ryan Pavlik). -Updated Russian translation (Vladimir Popov). - -20-Nov-2003 -~~~~~~~~~~~ -Bugfix: Cancelling the info window with a du process still running could - crash the filer (reported by Peter Geer). - -17-Nov-2003 -~~~~~~~~~~~ -Renamed 'Info' menu item to 'Properties'. - -31-Oct-2003 -~~~~~~~~~~~ -If a panel icon has an empty label, show it full size (requested by Stephen -Crouch). - -26-Oct-2003 -~~~~~~~~~~~ -Use apsymbols.h (from autopackage.org) if possible for binary compatibility -with older glibc versions. Use g_ascii_* functions instead of the ctypes ones -for the same reason. -Bugfix: Files with '&' in their names couldn't be saved in groups (reported - by Nils-Erik Svangård). - -25-Oct-2003 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). -Resizing by double clicking on background now optional (Stephen Watson). - -22-Oct-2003 -~~~~~~~~~~~ -Added optional top and bottom margines for iconized window placement -(Stephen Watson). - -16-Oct-2003 -~~~~~~~~~~~ -Don't lower the panel due when the pointer 'leaves' due to a grab (eg, clicking -or opening a menu). This also prevents a flickering problem with Openbox 3. - -15-Oct-2003 -~~~~~~~~~~~ -Bugfix: FreeBSD reported file sizes with units of 'null' due to large file - support not being detected (igla). - -14-Oct-2003 -~~~~~~~~~~~ -Larger default size for bookmarks editor (requested by Matthew Weier OPhinney). - -13-Oct 2003 -~~~~~~~~~~~ -Let the thumbnail helpers be app dirs, plus can be set from the Set Icon -dialog (Stephen Watson). - -09-Oct-2003 -~~~~~~~~~~~ -Improved socket icon (taken from Howard Shane's new theme). - -08-Oct-2003 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Updated German translation (Guido Schimmels). -Offer Eject even for unmounted disks (reported by Matthew Weier O'Phinney). -Try to load icons at 'huge' size, so SVG icons get the chance to scale up -nicely. - -07-Oct-2003 (Release 2.1.0) -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Removed some dead code, memory leaks, etc that had crept in. - -04-Oct-2003 -~~~~~~~~~~~ -New icon for selection ops. - -03-Oct-2003 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -01-Oct-2003 -~~~~~~~~~~~ -Minor fix to German translation (Daniel Pörsch). - -30-Sep-2003 -~~~~~~~~~~~ -Update error message about missing MIME database to give the new URI. - -29-Sep-2003 -~~~~~~~~~~~ -Stock icons in panel and pinboard menus. -Added icon theme selector. - -28-Sep-2003 -~~~~~~~~~~~ -Added 'Customise Menu' to file menu. Use this to replace Format and Free. - -27-Sep-2003 -~~~~~~~~~~~ -Allow icons in Choices to override the theme. - -26-Sep-2003 -~~~~~~~~~~~ -Bugfix: If no pinboard or panel icons were present, the menu could not be - opened (reported by John Pettigrew). - -22-Sep-2003 -~~~~~~~~~~~ -Added italian manual, updated it.po (Yuri Bongiorno). -Implementation of Format, just as a user-defined command. Also mount -point menu items reflect mounted/not mounted status (Stephen Watson). - -18-Sep-2003 -~~~~~~~~~~~ -Implementation of Free Space (Stephen Watson). OpenDir SOAP message now -takes an optional Window element. Pass the same Window to re-use the window. - -17-Sep-2003 -~~~~~~~~~~~ -Allow ejecting mounted media. - -12-Sep-2003 -~~~~~~~~~~~ -Don't create a corrupted pinboard/panel file if a non-UTF8 pathname is -dragged to it (reported by Eugeni Andreechtchev). -Get file icons using freedesktop.org icon theme system. - -05-Sep-2003 -~~~~~~~~~~~ -Added Czech translation (Jan Provaznik). - -20-Aug-2003 -~~~~~~~~~~~ -Help, Format, Eject and Free Space now appear in the AppMenu section of the -menu. Help is only shown for applications, and the others only for mount -points. - -16-Aug-2003 -~~~~~~~~~~~ -Added ability to call external programs to generate thumbnails for types -other than image/* (Stephen Watson). - -12-Aug-2003 -~~~~~~~~~~~ -If a string can't be converted from the local character set to UTF-8, -fallback to converting from iso-8859-1. - -07-Aug-2003 -~~~~~~~~~~~ -Get shared MIME database through Zero Install, if possible. -Bugfix: Didn't use XDG_DATA_DIRS to find type descriptions. - -06-Aug-2003 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -02-Aug-2003 -~~~~~~~~~~~ -Allow types other than image/* to have thumbnails, although we can't -generate them yet (Stephen Watson). -Added Eject menu option for unmounted mount points (Stephen Watson). - -28-Jul-2003 -~~~~~~~~~~~ -Doing a Refresh in a directory under /uri/0install triggers a remote refresh. - -14-Jul-2003 -~~~~~~~~~~~ -Less frame-heavy look for info box (Thomas Leonard). -When mounting, force a refresh even if the mtime of the new disk is the same, -since some formats don't change it. Also, if mounting gives an error, check to -see if it worked anyway (Thomas Leonard). - -13-Jul-2003 -~~~~~~~~~~~ -Added sort and selection buttons to the toolbar. They start off disabled, -enable them from Options->Tools if you want them (Stephen Watson). - -Escape text/uri-list for drag and drop operations (Stephen Watson). - -12-Jul-2003 -~~~~~~~~~~~ -Don't show hidden files on the SendTo menu (reported by Arnaud Calvo). - -10-Jul-2003 -~~~~~~~~~~~ -Added CheckButtons to the info window to allow manipulation of permission -bits (Stephen Watson). - -09-Jul-2003 -~~~~~~~~~~~ -Added count of directory contents to info window (Stephen Watson). - -04-Jul-2003 -~~~~~~~~~~~ -Updated italian translation in AppInfo.xml and src/po/it.po (Yuri Bongiorno) - -30-Jun-2003 -~~~~~~~~~~~ -When renaming a non-UTF8 file, still assume the directory is valid UTF-8 -(reported by Arnaud Calvo). - -29-Jun-2003 -~~~~~~~~~~~ -Sort items on the SendTo menu (requested by John Pettigrew). - -27-Jun-2003 -~~~~~~~~~~~ -Removed the menu-on-button-2 option. It was too inconsistant with everything -else, including panel applets and window managers, to be useful. Edit bind.c if -you really need it. - -25-Jun-2003 -~~~~~~~~~~~ -Button-2 drags on panel applets always work now, even if the applet doesn't -forward them explicitly. - -19-Jun-2003 -~~~~~~~~~~~ -Fix scrolling problem with GTK+-2.2.2 (reported by Alastair Porter, with -help from Götz Waschk). - -16-Jun-2003 -~~~~~~~~~~~ -Bugfix: Resize on style change didn't do anything (Andy Hanton). -Bugfix: Dragging to panel and pinboard directories didn't offer the DnD - menu (reported by BluPhoenyx). - -11-Jun-2003 -~~~~~~~~~~~ -New SetBackdrop() SOAP method (Matthew Weier O'Phinney). - -04-Jun-2003 -~~~~~~~~~~~ -Bugfix: Closing a window using the menu didn't offer to unmount (James Bursa). - -02-Jun-2003 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -01-Jun-2003 -~~~~~~~~~~~ -Fix compiler warning when not using dnotify (reported by Damien Couderc). -Show files being operated upon in action windows (Stephen Watson). - -30-May-2003 (Release 2.0.0) -~~~~~~~~~~~ -Updated Japanese translation (Hirosi Utumi). - -29-May-2003 -~~~~~~~~~~~ -Updated it.po and AppInfo.xml (Yuri Bongiorno). - -28-May-2003 (Release 1.3.10) -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -27-May-2003 -~~~~~~~~~~~ -When dragging a lasso box in List view, don't stop scrolling when the pointer -leaves the window (reported by Robert Davison). -Updated Polish translation (Andrzej Borsuk). -Updated Italian translation (Yuri Bongiorno). - -26-May-2003 -~~~~~~~~~~~ -Updated German translation (Guido Schimmels). - -25-May-2003 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -24-May-2003 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -22-May-2003 -~~~~~~~~~~~ -Minor updates to the manual. -Bugfix: Using the Edit MIME types button in the Options window opened the - old directory. Refer people to the MIME-Editor application instead. - -18-May-2003 -~~~~~~~~~~~ -Fixed focussing problems in Icons View (reported by Andrzej Radecki). -Updated French manual translation (Arnaud Calvo). - -16-May-2003 (Release 1.3.9) -~~~~~~~~~~~ -New icon for the filer (Geoff Youngs). -Updated it.po and AppInfo.xml (Yuri Bongiorno). - -15-May-2003 -~~~~~~~~~~~ -Added Japanese translation (Hirosi Utumi). -When a directory change is detected, wait a little before rescanning to -reduce flickering effect. - -14-May-2003 -~~~~~~~~~~~ -Page Up and Page Down now work again in List View. - -27-Apr-2003 -~~~~~~~~~~~ -Updated install script to use new XDG Base Directory spec (reported by -Vincent Lefevre). -Also install man pages under 'share/man'. - -25-Apr-2003 -~~~~~~~~~~~ -Close stdout when running child processes for users running startx from the -console, since some terminal applications try to read from the console, -freezing X (Keith R. John Warno). -Forward scroll events on pinboard to window manager, and add option to -workaround *box issues (Matthew Weier O'Phinney). - -24-Apr-2003 -~~~~~~~~~~~ -Using the bookmarks menu to open an unmounted mount point will mount it -(suggested by Arnaud Calvo). - -17-Apr-2003 -~~~~~~~~~~~ -Updates for the new shared MIME database. - -15-Apr-2003 -~~~~~~~~~~~ -Refresh refreshed the directory twice (because updating the MIME info triggers -a refresh too). - -12-Apr-2003 -~~~~~~~~~~~ -Remove default GtkTreeView keys (they conflicted with the menus). -Fixed some minor cursor problems in List view. - -10-Apr-2003 -~~~~~~~~~~~ -Winking now works in List view. - -09-Apr-2003 -~~~~~~~~~~~ -Lasso selections now work in List view. - -08-Apr-2003 -~~~~~~~~~~~ -The hack we have to use to draw pinboard icons on GTK+-2.0 doesn't work -on 2.2. Show a warning instead of crashing (reported by Keith R. John Warno). - -03-Apr-2003 -~~~~~~~~~~~ -Fix the message in install.sh, since there is no information toolbar icon -now (spotted by Albert Wagner). - -29-Mar-2003 (Release 1.3.8) -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -28-Mar-2003 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -27-Mar-2003 -~~~~~~~~~~~ -Allow dragging a file into a GtkEntry to insert the filename. -Bugfix: Selections in List View didn't work properly (reported by Stephen - Watson). -Updated Spanish translation (Marcelo Ramos). - -23-Mar-2003 -~~~~~~~~~~~ -Fixed use of a GTK+-2.2-only function (Geoff Youngs). -New option to set the panel size (Geoff Youngs). - -21-Mar-2003 -~~~~~~~~~~~ -Scroll panels when the pointer is at the end, not by dragging the middle -(Geoff Youngs). -Stop the pinboard from flickering when removing icons or iconfied windows. - -20-Mar-2003 -~~~~~~~~~~~ -Centre the image for iconified windows. -Double-buffer slightly larger areas. - -18-Mar-2003 -~~~~~~~~~~~ -Better way to implement selections in List View (suggested by Jonathan -Blandford). -Updated Italian translation (Yuri Bongiorno). - -15-Mar-2003 -~~~~~~~~~~~ -Bugfix: Never show the copy/move/link menu when dragging to an application. - -11-Mar-2003 -~~~~~~~~~~~ -Bugfix: Comments about a MIME type were loaded from the first file to contain - information about the type, not the first to contain a comment about - the type. - -09-Mar-2003 -~~~~~~~~~~~ -Don't mark widget documentation as translatable. -Make sure the tooltip for pinboard and panel icons is up-to-date (reported -by krjw). -Use pinboard backdrop colour for scaled and centred images (requested by -Marcelo Ramos). -Shade the backdrop style buttons when an external program is being used to -set the backdrop. -Updated Spanish translation (Marcelo Ramos). - -08-Mar-2003 -~~~~~~~~~~~ -Updated Dutch translation (Jan Wagemakers). - -07-Mar-2003 -~~~~~~~~~~~ -Use stock icons in pinboard and panel menus. -Updated Spanish translation (Marcelo Ramos). - -03-Mar-2003 -~~~~~~~~~~~ -Use stock icons in menus, and fix some possible problems in the menu code -(Stephen Watson). - -02-Mar-2003 -~~~~~~~~~~~ -Stop pinboard icons flickering when you move over them (Daniele Peri). -Use XSettings drag-and-drop threshold. - -01-Mar-2003 -~~~~~~~~~~~ -Bugfix: Backdrop image could be redrawn in the wrong place (Stephen Watson). - -27-Feb-2003 (Release 1.3.7) -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Allow an empty AppInfo translation so that a label can be translated without -changing the value. - -25-Feb-2003 -~~~~~~~~~~~ -Updated Russian translation (Alexey Lubimov). - -23-Feb-2003 -~~~~~~~~~~~ -When using the Rename and Link boxes, use the appropriate drag cursor -(suggested by Michael Adams). -Bugfix: A double-click which starts on one file and ends on another is now - ignored (reported by Michael Adams). -Bugfix: Test for valid sort-type in SOAP call was reserved, so you couldn't set - the sort type (reported by Damjan Bole). -Bugfix: Using a SOAP call to open a non-existant directory made the filer - crash. -Bugfix: Drag-and-drop raising on the panel didn't quite work (Daniele Peri). - -22-Feb-2003 -~~~~~~~~~~~ -Make Size toolbar icon only set the size. Use a second button to set automatic -mode. - -13-Feb-2003 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Alpha blended pinboard icons now get clipped correctly even with GTK+-2.0. - -12-Feb-2003 -~~~~~~~~~~~ -Fixed some spelling errors (Marcelo Ramos). -Select the current style by default when opening the Set Backdrop box -(reported by Marcelo Ramos). -Fix problems with pinboard drawing of semi-transparent icons (fixed for -GTK+-2.2 only). - -11-Feb-2003 -~~~~~~~~~~~ -Merged Set Run Action, Set Icon and Set Backdrop dropboxes into a single -Ultimate DropBox widget, and made all three interfaces much nicer. -Dragging to the Home and Up toolbar tools now supports the menu-on-drag -option (reported by Laurent Moussault). -Allow changing the pinboard style without having to drag the image back in -(requested by Jesse Wagner). -Remove button style from iconified windows. Use a semi-transparent border -instead. The actual effect is flexible; perhaps someone with artistic -talent can do something better? -Double-buffer small pinboard updates. -Updated Spanish translation (Marcelo Ramos). - -10-Feb-2003 -~~~~~~~~~~~ -Option to turn off column headings in List View (Adam Sampson). -Panel auto-raising also works during drag-and-drop. -Bugfix: Installing to /usr put the MIME files in the wrong place (reported - by Albert Wagner). - -09-Feb-2003 -~~~~~~~~~~~ -Allow dragging to a selected directory as long as it's not the source of the -drag. -If an error occurs opening a directory then don't report it in an error box if -a drag-and-drop operation is in progress. -Keep the title up-to-date for iconified windows. -Option to show menu on button-1 drags instead of copying. -Aborting an action window tries to kill all child processes, not just the -immediate child, and doesn't close the window until it has actually stopped. -Symlinks to mount points now work (reported by Daniele Peri). -Include textual description of types in various places (Stephen Watson). -Allow dragging directories to bookmarks edit window or toolbar icon, with -spring loading (suggested by Stephen Watson and George De Bruin). -Removed confusing Set Icon choice from DnD menu. -Bugfix: If a directory on the panel changed to/from being an application, the - label wasn't hidden / shown. - -08-Feb-2003 -~~~~~~~~~~~ -Changing the icon for a MIME type updates all filer windows. -When dragging a pinboard icon over itself, pretend the icon isn't there to -allow fine repositioning. -When an error prevents scanning a directory, show the error in the window -title bar, and only report it once in an error box. -Don't create thumbnails of thumbnails by checking if the image is in -~/.thumbnails/normal. Before, the test was the size of the file, not its -location. -Pinboard image style Scale is now called Stretch; Scale now scales without -changing the aspect ratio. - -07-Feb-2003 -~~~~~~~~~~~ -Auto-scrolling during drag-and-drop works again, and now in list view too. - -02-Feb-2003 -~~~~~~~~~~~ -Fixed clipping and wrapping problems with pinboard icon text. - -01-Feb-2003 -~~~~~~~~~~~ -Don't use double-buffering for the pinboard. This might make things flicker -slightly, but it's much faster on some systems. -Updated Spanish translation (Marcelo Ramos). - -31-Jan-2003 -~~~~~~~~~~~ -Added Bookmarks 'Recently Visited' submenu (Stephen Watson). - -28-Jan-2003 -~~~~~~~~~~~ -Replaced some of the icons with some GNOME ones (slightly modified in some -cases). - -27-Jan-2003 -~~~~~~~~~~~ -Slightly adjusted the 'normal' icon height to be the same size as GNOME to -make sharing icons easier. -Updated Polish translation (Marcin Juszkiewicz). - -26-Jan-2003 -~~~~~~~~~~~ -Bugfix: Symlinking to an application required the symlink, rather than the - target directory, to have the same owner as the AppRun (Keith Warno). - -25-Jan-2003 -~~~~~~~~~~~ -Bugfix: Hyper and Super modifiers didn't work properly as icon shortcuts. - -23-Jan-2003 -~~~~~~~~~~~ -Work around changes in Gtk+-2.2 that stopped the panel from appearing on all -workspaces. -Add scrollbars to bookmarks editor window (requested by George De Bruin). - -22-Jan-2003 -~~~~~~~~~~~ -Bugfix: Filer would quit if only the Bookmarks editor window was open (reported - by Bernard Jungen). - -20-Jan-2003 -~~~~~~~~~~~ -New option to sort capitalised names first (requested by Paul Etchells and -others). - -19-Jan-2003 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Fixed wheel mouse scroll bug in List View (reported by Vincent Lefevre and -others). -Attempt to improve the autosizing by examining the item with the longest name. -Don't scale icons up in Huge mode. -In translated sections in AppInfo.xml files, allow a 'label=' attribute -to translate the key (requested by Guido Schimmels). - -18-Jan-2003 -~~~~~~~~~~~ -Added dnotify support, so that on Linux the filer now updates automatically -when a directory is changed (requested by Taras and Dave C). - -16-Jan-2003 -~~~~~~~~~~~ -Added icon to infobox (Geoff Youngs and Marcin Juszkiewicz). - -14-Jan-2003 -~~~~~~~~~~~ -Add GTK versions used for compiling and running to -v output (suggested by -Vincent Lefèvre). -Bugfix: Drag-and-drop in Icons View didn't work while scrolled (reported by - Brian Langenberger). - -13-Jan-2003 -~~~~~~~~~~~ -Change 'Type' to 'Types' (Vincent Lefèvre). -Don't resize when changing the view type if auto-resizing is off (Keith R. John -Warno). -Added missing cast and detect long files on OpenBSD (Damien Couderc). - -10-Jan-2003 -~~~~~~~~~~~ -Remove -o from --help output (spotted by Karol Krenski). -Updated Spanish translation (Marcelo Ramos). - -09-Jan-2003 (Release 1.3.6) -~~~~~~~~~~~ -Fix reference counting problem shown up by Gtk+-2.2. - -06-Jan-2003 -~~~~~~~~~~~ -Updated German translation (Guido Schimmels). -Make toolbar extend the whole width of the window (suggested by Andrzej -Radecki). - -05-Jan-2003 -~~~~~~~~~~~ -Updated Polish translation (Marcin Juszkiewicz). - -04-Jan-2003 -~~~~~~~~~~~ -Updated French translation and fixed untranslatable string (Vincent Lefèvre). -When using bigger/smaller, don't wrap at the end (suggested by Arnaud Calvo). -Updated French manual translation (Arnaud Calvo). - -02-Jan-2003 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Updated Dutch translation (Jan Wagemakers). - -01-Jan-2003 -~~~~~~~~~~~ -Added button in options window to purge thumbnails cache. - -30-Dec-2002 -~~~~~~~~~~~ -Preserve selection when changing view type. -Shade selection when we don't have primary. - -29-Dec-2002 -~~~~~~~~~~~ -Show thumbnails in List view. Allow changing the icon size. If the size is -automatic, show thumbnails as Huge and everything else as Small. -Scroll wheel now works in List view. - -28-Dec-2002 -~~~~~~~~~~~ -Use bold style to indicate recent items (instead of the pink background). - -27-Dec-2002 -~~~~~~~~~~~ -Sort type is shared between Icon and List views. Sort order can be reversed. -Highlight recently changed items with a tasteful pink background. -When the bookmark editor window first opened, no item was selected. If the -user clicked on it to select it, editing mode started instead (reported by -Bernard Jungen). -Removed most of the options section of the manual, since it was just echoing -the information in the tooltips anyway. - -26-Dec-2002 -~~~~~~~~~~~ -Various fixes to new list view (reported by George De Bruin). -Mounting and unmounting auto-resizes the window. - -25-Dec-2002 -~~~~~~~~~~~ -Right-clicking the Size button switches to automatic mode and resizes the -window. - -24-Dec-2002 -~~~~~~~~~~~ -Made 'Automatic' an icon size, rather than a separate option. -Size toolbar button shows a menu, including the new Automatic setting. - -23-Dec-2002 -~~~~~~~~~~~ -Rearranged menus and options for new List View mode. - -20-Dec-2002 -~~~~~~~~~~~ -Removed warning message from --new. It can be useful for a session manager... -Draw iconified windows with a background, so they don't get confused with other -icons (suggested by Joakim Andreasson). -Bugfix: Stupid bug stopped iconified windows from being removed and could - cause a crash! - -17-Dec-2002 -~~~~~~~~~~~ -The 'Directories always come first' option now only applies to name sorts. -Sort by date and size default order has been reversed. -Always use case-insensitive sort. - -16-Dec-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -12-Dec-2002 -~~~~~~~~~~~ -Details toolbar button switches to the new (unfinished) details view. -Bugfix: Fix detection of new pango wrapping system (Richard Olsson) - -11-Dec-2002 -~~~~~~~~~~~ -Style improvements to Edit Icon box. -Don't show Size attribute for directories in the Info box. It was confusing, -since it didn't include the contents. -Bugfix: Right-clicking on the Bookmarks icon to edit the bookmarks would - cause a crash if the bookmarks were not yet loaded. - -10-Dec-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). - -09-Dec-2002 -~~~~~~~~~~~ -Style improvements to options window. - -08-Dec-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -06-Dec-2002 -~~~~~~~~~~~ -Updated German translation (Guido Schimmels). - -04-Dec-2002 (Release 1.3.5) -~~~~~~~~~~~ -Using the Close toolbar button also offers to unmount devices (spotted by -Götz Waschk). - -03-Dec-2002 -~~~~~~~~~~~ -Clicking on a mount point auto-mounts. The shift action is now to open without -mounting. Closing a filer window showing a mount point offers to unmount it -(suggested by Guido Schimmels and others). -Use stock icons in more dialogs. - -02-Dec-2002 -~~~~~~~~~~~ -Allow editing the path for bookmarks. - -01-Dec-2002 -~~~~~~~~~~~ -Added 'Edit Bookmarks' dialog and 'Show Bookmarks' menu entry. - -29-Nov-2002 -~~~~~~~~~~~ -New mount icons (suggested by Marcin Juszkiewicz). -Don't show separator in bookmarks menu when there is nothing below it. - -28-Nov-2002 -~~~~~~~~~~~ -Added a default hander for HTML files, otherwise newbies can't read the -manual! -Bugfix: Pinboards without backdrop images didn't get the correct colour set - by default. - -27-Nov-2002 -~~~~~~~~~~~ -Better positioning of bookmarks menu. - -22-Nov-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Allow translation of About AppInfo section. -Bugfix: When using Metacity, some minimised windows weren't shown (reported by - Alastair Porter). - -21-Nov-2002 -~~~~~~~~~~~ -More tooltips for the Set Icon dialog. - -20-Nov-2002 -~~~~~~~~~~~ -Use better wrapping system, if available (Richard Olsson). - -15-Nov-2002 -~~~~~~~~~~~ -Removed ASCII sort option. Useless, and didn't work with UTF-8 anyway. - -13-Nov-2002 -~~~~~~~~~~~ -New sorting system to cope with UTF-8 filenames. - -12-Nov-2002 -~~~~~~~~~~~ -Use stdout, not stderr, for --help and --version, and use xmllint instead of -nsgmls to check for valid DocBook (Eric Gillespie). -Updated Chinese translation (babyfai Cheung). - -11-Nov-2002 -~~~~~~~~~~~ -Added note about checking permissions to message complaining that the MIME -database can't be found (suggested by Keir Mierle). - -07-Nov-2002 -~~~~~~~~~~~ -Set hint to make panels appear on all workspaces, and support metacity-style -iconified windows (reported by Alastair Porter; suggested fix by Laurent -Moussault). - -05-Nov-2002 -~~~~~~~~~~~ -Added Bookmarks toolbar icon (Liav). - -04-Nov-2002 -~~~~~~~~~~~ -Removed some unused code and fixed a possible race condition. - -03-Nov-2002 -~~~~~~~~~~~ -Update error message to give correct version of MIME database (reported by -FD Cami). - -31-Oct-2002 -~~~~~~~~~~~ -Make the Find and Permissions help windows look nicer. -Added support for shadowed labels on the pinboard (Andras Mohari). - -29-Oct-2002 -~~~~~~~~~~~ -Stop Metacity from complaining that it can't decide whether the pinboard is -resizable or not (reported by Alastair Porter, solution suggested by -Havoc Pennington). - -28-Oct-2002 -~~~~~~~~~~~ -Make it more obvious that --new is only for debugging. -Added Norwegian translation (Sigve Indregard). - -27-Oct-2002 -~~~~~~~~~~~ -Use our own stock icons for 'show hidden' and 'show details' toolbar buttons -(Stephen Watson). New details icon is a modified version of a Gtk stock -icon, while show hidden is taken from sawfish. - -26-Oct-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). - -23-Oct-2002 -~~~~~~~~~~~ -Switch button-1/2 on Help, as it was too annoying. -Create thumbnails at 128x128 to be in-line with current thumbnails spec. -Bugfix: When using the lasso box with the pinboard, select icons based on - where they actually are, not where they want to be (useful if you've - just changed to a lower resolution and they're all stuck at the side!). - -22-Oct-2002 -~~~~~~~~~~~ -Button-1 on Help shows the manual, other button opens the Help directory -(Marcin Juszkiewicz). - -21-Oct-2002 -~~~~~~~~~~~ -More checks to cope with invalid filenames (Marcin Juszkiewicz). -Updated Polish translation (Marcin Juszkiewicz). - -19-Oct-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -18-Oct-2002 -~~~~~~~~~~~ -Cope slightly better with invalid filenames in various places (reported by -Marcin Juszkiewicz and Andras Mohari). -Make panel menus appear nearer the edge of the screen for top, left and right -panels (suggested by Bernard Jungen). -Bugfix: When installing the binary release, don't warn the user that the source - is missing (reported by John Pettigrew). - -17-Oct-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). -Fixed broken links to citations in manual (reported by Bernard Jungen). -Renamed sp.po to es.po (requested by Quique). - -12-Oct-2002 -~~~~~~~~~~~ -Added Swedish translation (Marcus Lundblad). -Bugfix: Invert Selection failed to work correctly on the first item (spotted by - Stephen Watson). - -09-Oct-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -07-Oct-2002 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -01-Oct-2002 (Release 1.3.4) -~~~~~~~~~~~ -Require glib >= 2.0.3, or action windows leak file handles (reported by -Musus Umbra). - -27-Sep-2002 -~~~~~~~~~~~ -Allow multiple pinboard icons to be repositioned at once. - -26-Sep-2002 -~~~~~~~~~~~ -Allow multiple pinboard icons to be selected by dragging a box around them. - -23-Sep-2002 -~~~~~~~~~~~ -Pinboard and panel icons can now have keyboard shortcuts assigned to them. -Bugfix: Fixed a couple of cursor positioning problems (reported by Andras -Mohari). - -22-Sep-2002 -~~~~~~~~~~~ -Replace -o command-line option with a toggle button in the options window. - -17-Sep-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). - -05-Sep-2002 -~~~~~~~~~~~ -Be more forceful about setting the pinboard backdrop; some themes were -overriding it (reported by Biju Chacko). -Use K, M and G consistantly (Marcin Juszkiewicz). - -03-Sep-2002 -~~~~~~~~~~~ -Shift Open had stopped working (spotted by Matthew Weier O'Phinney). - -02-Sep-2002 -~~~~~~~~~~~ -Changed default Set Run Action shell command from "$1" to "$@" (suggested by -krjw). - -01-Sep-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -30-Aug-2002 -~~~~~~~~~~~ -New 'Class' parameter to Filer_OpenDir SOAP method allows setting the -WM_CLASS of a new window so that the window manager can treat it -specially, such as opening it in a certain place, or make it sticky -(requested by Matthew Weier O'Phinney). - -27-Aug-2002 -~~~~~~~~~~~ -New option to set the pinboard font (Krzysztof Luks). - -26-Aug-2002 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Updated Italian translation (Daniele Peri). - -17-Aug-2002 -~~~~~~~~~~~ -Increase time between updates while scanning from 0.5s to 1.5s. Now that the -names are all shown from the start, fast feedback here is less useful. -When resizing due to a key event, warp the pointer (for sloppy focus users). - -13-Aug-2002 -~~~~~~~~~~~ -Removed Re-read MIME types button. Use Refresh on the toolbar instead. - -11-Aug-2002 -~~~~~~~~~~~ -Internal changes: moved menu and toolbar over to View interface. - -05-Aug-2002 -~~~~~~~~~~~ -Open the menu on the 'popup-menu' signal. Allows you to use the default Gtk -keyboard shortcuts to open the menu. -Translated AppInfo menu entries into Hungarian (Andras Mohari) and -Spanish (Marcelo Ramos). -After dragging to a remote application which didn't respond, the filer -refused to gain the primary selection until the operation timed out. - -02-Aug-2002 -~~~~~~~~~~~ -Use stock icons for multi-file drag-and-drop, files with missing icons, and -files that can't be statted (Marcin Juszkiewicz). - -01-Aug-2002 -~~~~~~~~~~~ -Make --version's output convert to the local character set (Vincent Lefevre). -Make menu items in AppInfo.xml files translatable (requested by -Wilbert Berendsen, Andras Mohari and Marcelo Ramos). - -29-Jul-2002 -~~~~~~~~~~~ -Change pinboard option to forward button 3 to forward all buttons (requested -by Matthew Weier O'Phinney). - -28-Jul-2002 -~~~~~~~~~~~ -Use Gtk's new stock info icon instead of help icon for minibuffer, etc. - -26-Jul-2002 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Updated Spanish translation (Marcelo Ramos). -Using Edit MIME types in the Options box now opens the new 'packages' -directory instead of the old 'mime-info' one (reported by Goetz Waschk). - -24-Jul-2002 (Release 1.3.3) -~~~~~~~~~~~ -Updated to new shared MIME database format. - -23-Jul-2002 -~~~~~~~~~~~ -Alt-Return or Alt-Button-1 on a file works like clicking with button-2; it -opens a directory in a new window and closes the directory when opening a file -(suggested by Gregory Spath). - -22-Jul-2002 -~~~~~~~~~~~ -Use stock icons for toolbar, to make it themeable (requested by Michael Adams). - -21-Jul-2002 -~~~~~~~~~~~ -Made the stepper arrows in the scrollbars scroll by one item's height, fixed -an untranslatable string and fixed a slight error in the size calculation -(Bernard Jungen). - -19-Jul-2002 -~~~~~~~~~~~ -Rearraged File menu (suggested by Tomas Berg). - -16-Jul-2002 -~~~~~~~~~~~ -Added support for Solaris 'Door' files (Stephen Watson). - -12-Jul-2002 -~~~~~~~~~~~ -Added Help menu with both About and Show Files entries, and a new entry to -load the corrent manual for the current locale (suggested by Arnaud Calvo). - -11-Jul-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Changed 'Show ROX-Filer Help' to 'About ROX-Filer...'. This shows the Info -box, with a new 'Show Help Files' button (Geoff Youngs). - -09-Jul-2002 -~~~~~~~~~~~ -Don't close the Set Run Action box after showing the usage message if the user -enters an invalid command (spotted by krjw). - -07-Jul-2002 -~~~~~~~~~~~ -Bugfix: Changing the pinboard colours when iconfied windows were not in use - displayed a (harmless) warning message (reported by krjw). - -02-Jul-2002 -~~~~~~~~~~~ -Security fix: Set Run Action to a shell command would make the executable - world-writeable (spotted by alexander). - -28-Jun-2002 -~~~~~~~~~~~ -Bugfix: Tooltips for files sometimes didn't get displayed. - -26-Jun-2002 -~~~~~~~~~~~ -Added reminder about having NumLock on when using groups from the keypad -(suggested by Gombok Arthur). - -25-Jun-2002 -~~~~~~~~~~~ -Turned on more compiler warnings, and fixed some minor issues it threw up. - -22-Jun-2002 (Release 1.3.2) -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -21-Jun-2002 -~~~~~~~~~~~ -Added 'Text beside icon' toolbar style (Michael Adams). - -20-Jun-2002 -~~~~~~~~~~~ -Bugfix: Using another window in between entering target mode and selecting - the target printed a warning instead of performing the operation. - -17-Jun-2002 -~~~~~~~~~~~ -Fix problem with root menu positioning on icewm (reported by Bernard Jungen). - -16-Jun-2002 -~~~~~~~~~~~ -More robust approach to SOAP errors. - -11-Jun-2002 -~~~~~~~~~~~ -Require version 2.0.1 or later of Gtk, due to bugs in 2.0.0. -Changing the pinboard font realigns the icons. -Bugfix: Symlinked items in the SendTo menu didn't use globicons correctly - (spotted by Arnaud Calvo). -Bugfix: Filer sometimes failed to load the backdrop supplied by a program - (reported by Arnaud Calvo). - -10-Jun-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -08-Jun-2002 -~~~~~~~~~~~ -Move Xterm Here to Window menu and add Switch to xterm (suggested by -Gregory Spath). -Bugfix: Some shortcuts didn't work properly on some keyboards (reported by - Lorint and Musus Umbra). - -06-Jun-2002 -~~~~~~~~~~~ -When installing without a manpage, just warn the user instead of aborting -(suggested by Simon Britnell). - -01-Jun-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). - -31-May-2002 -~~~~~~~~~~~ -Option to switch automatically between Large and Small icons (Stephen Watson). -Allow blank icon names (suggested by Gregory Spath). -Bugfix: Default icon for iconified windows wasn't found (Jimmy Olgeni). -Bugfix: Sometimes the SOAP message sent to a running process got displayed. - -30-May-2002 (Release 1.3.1) -~~~~~~~~~~~ -Fix redraw bug with selected icons. - -29-May-2002 -~~~~~~~~~~~ -Respect CHOICESPATH when installing (spotted by Vincent Lefevre). -Set Icon now creates icons in PNG format (spotted by Wilbert Berendsen). - -28-May-2002 -~~~~~~~~~~~ -Merged in icons from rox-base (converted to PNG format and renamed). -Bugfix: When showing iconified windows, the filer could crash if a window - disappeared at the wrong moment. - -27-May-2002 -~~~~~~~~~~~ -Set _XROOTPMAP_ID property on root window so that Eterm and friends show -the right backdrop (requested by Simon Britnell). -Use .png icons in MIME-icons instead of .xpm (needed to change anyway as -the new shared MIME database uses different types in many places). -Updated French translation (Vincent Lefèvre). -Updated Dutch translation (Wilbert Berendsen). -Updated Hungarian translation (Andras Mohari). - -24-May-2002 -~~~~~~~~~~~ -When using -d or -s options, don't follow symlinks in paths starting with '/' -(suggested by Darrell Taylor). - -23-May-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). - -21-May-2002 -~~~~~~~~~~~ -Updated Polish translation (Krzysztof Krzy¿aniak). - -19-May-2002 -~~~~~~~~~~~ -Setting the background colour doesn't lose the image (spotted by Jasper -Huijsmans). - -18-May-2002 -~~~~~~~~~~~ -Iconified windows are shown with their own icon, if they have one. - -17-May-2002 -~~~~~~~~~~~ -Options to set iconification layout policy. -Fix compiler warnings on some systems (Stephen Watson). -Added 'Follow Symbolic Links' menu item (Stephen Watson). - -16-May-2002 -~~~~~~~~~~~ -Pinboard background colour option works again. -Position iconified windows sensibly. -Bugfix: Typing too fast into the minibuffer could miss characters. - -15-May-2002 -~~~~~~~~~~~ -Wrap long icon names onto multiple lines. -Options to forward button-3 clicks on the pinboard to the window manager -(requested by Ryan Harris). - -14-May-2002 -~~~~~~~~~~~ -Code tidying (Bernard Jungen). -Bugfix: Ctrl-clicking on icons can unselect, not just select. - -13-May-2002 -~~~~~~~~~~~ -Bugfix: Short form of '--client-id' option didn't work (reported by Julio - Hugo Toloza). - -12-May-2002 -~~~~~~~~~~~ -Allow hidden subdirectories in /SendTo which have their contents -included only for certain MIME types (Geoff Youngs). -When changing directory, remove any trailing /s from the path. -Make sure panels never get lowered under the pinboard. -Iconified windows are now displayed on the pinboard, not floating over -everything else. -Bugfix: Using a savebox when the pathname contained multi-byte characters - caused the initial selected region to be positioned incorrectly. - -10-May-2002 -~~~~~~~~~~~ -Initial support for showing iconified windows. - -09-May-2002 -~~~~~~~~~~~ -Changed the way pinboard icons are implemented. -Changed the way backdrop applications set the backdrop. -Always use button-3 for the pinboard menu, as the window manager menu must -be on button-2 (spotted by Geoff Youngs). - -08-May-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Middle button clicks on the pinboard are passed to the window manager. -Many improvements to the pinboard: -- Changing font updates the pinboard icons. -- Button-2 clicks are passed to window manager. -- Drop highlight doesn't flicker. - -07-May-2002 -~~~~~~~~~~~ -Improved highlighting of icons (Andras Mohari). - -06-May-2002 -~~~~~~~~~~~ -The pinboard is now a screen-sized window. Faster and better looking. -Setting the backdrop is now done from the filer. - -03-May-2002 -~~~~~~~~~~~ -The Link box allows an existing symlink to be replaced, instead of -complaining that the destination already exists (suggested by Arnaud Calvo). -Bugfix: When editing a panel icon, the tooltip didn't update until the next - restart (Olli Helenius). - -02-May-2002 -~~~~~~~~~~~ -Added Sort to the OpenDir SOAP method (Stephen Watson). - -30-Apr-2002 -~~~~~~~~~~~ -Alpha-blending for Small icons, too. -Bugfix: When copying directories, ignore an error caused by filesystems, - such as Samba shares, that don't support chmod fully (reported by - Andrew S Dixon). - -29-Apr-2002 -~~~~~~~~~~~ -SOAP method OpenDir now allows Style and Details to be specified -(Stephen Watson). - -28-Apr-2002 -~~~~~~~~~~~ -Use alpha-blending in Large and Huge display modes. Limit icons in menus to -Small and Large sizes. - -27-Apr-2002 -~~~~~~~~~~~ -Return in Permissions box activates Quiet. - -26-Apr-2002 -~~~~~~~~~~~ -MIME information is now read from the freedesktop.org shared database rather -than the old Choices/MIME-info directories. - -25-Apr-2002 -~~~~~~~~~~~ -Don't convert to `real' path when following symlinks, so that Up now returns -to the directory containing the symlink, not the thing it linked to -(requested by Gregory Spath). -Don't quit while Options window is open. - -21-Apr-2002 -~~~~~~~~~~~ -Allow panel style to be set from ~/.gtkrc-2.0, using 'rox-panel' to identify -the window (requested by Ashwin). -Merged OK and Save buttons in the Options box. Revert shades when it would -have no effect. - -17-Apr-2002 -~~~~~~~~~~~ -'New ...' for a template always copies without confirming (suggested by -Wilbert Berendsen). - -16-Apr-2002 -~~~~~~~~~~~ -Set-keybindings button in options box now checks that this feature is on, -and explains what to do if not (suggested by Francesco Bochicchio). - -15-Apr-2002 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Message in translation options switches language as you move through the -options. - -14-Apr-2002 -~~~~~~~~~~~ -Added Chinese translation (babyfai cheung). - -14-Apr-2002 (Release 1.3.0) -~~~~~~~~~~~ -Fixed a minor redraw box (a single pixel could get left after a lasso drag). - -13-Apr-2002 -~~~~~~~~~~~ -Place action windows under pointer (suggested by txapela). - -11-Apr-2002 -~~~~~~~~~~~ -Set collection style in the program. Choices/ROX-Filer/Styles is no longer -used. -Made background pixmaps for Collections work again (reported by Stephen -Watson). -Removed pinboard text background style option (it never worked with Gtk+-2.0). - -09-Apr-2002 -~~~~~~~~~~~ -Added units display to options and improved toolbar options layout (Andras -Mohari). -When setting the icon for a directory, offer to create a .DirIcon -(requested by Matjaz Mihelic). - -08-Apr-2002 -~~~~~~~~~~~ -Much improved layout for Options box (Andras Mohari). -Allow subdirectories in the Send To menu (Stephen Watson). - -06-Apr-2002 -~~~~~~~~~~~ -Code tidying in various places (Bernard Jungen). -Filer windows update automatically when the font or theme changes. - -05-Apr-2002 -~~~~~~~~~~~ -Various speed improvements. -Removed GNOME VFS option (never worked with Gtk+-2.0). - -04-Apr-2002 -~~~~~~~~~~~ -Auto-raise panels when the pointer hits the side of the screen, and lower -when it leaves the panel (Geoff Youngs). - -03-Apr-2002 -~~~~~~~~~~~ -Slight speed increase when starting. - -02-Apr-2002 -~~~~~~~~~~~ -Added Danish translation (Christian Storgaard). - -01-Apr-2002 -~~~~~~~~~~~ -Internal tidy-up of the icon code: PinIcon and PanelIcon are now subclasses -of Icon, which is now a GObject. Dragging pinboard icons with the middle -button is no longer supported. - -28-Mar-2002 -~~~~~~~~~~~ -Updated Polish translation (Krzysztof Krzy¿aniak). - -25-Mar-2002 -~~~~~~~~~~~ -New 'Short titlebar flags' option (requested by Andras Mohari). - -24-Mar-2002 -~~~~~~~~~~~ -Fixed problem which allowed the panel to get the input focus (reported by -Brendan McCarthy). - -22-Mar-2002 -~~~~~~~~~~~ -Large (over 50K) image files are now loaded in a subprocess. Faster, less -likely to crash due to bad images, and more responsive. - -21-Mar-2002 -~~~~~~~~~~~ -Filenames which are not valid UTF-8 are shown in red. A tooltip explains the -problem. CHARSET is used to try and render the name anyway, and the rename -box can be used to fix it (reported by Christopher Arndt). - -20-Mar-2002 -~~~~~~~~~~~ -Times weren't converted to UTF-8, causing errors in some locales (reported -by Christopher Arndt and tracked down by Andras Mohari). -Informational messages are now shown with the info icon, not the error symbol -(suggested by Andras Mohari). - -18-Mar-2002 -~~~~~~~~~~~ -Set _WIN_HINTS for pinboard and panel icons so that they don't appear on -task-lists or get selected when Alt-Tabbing (Brendan McCarthy). -Allow COMPOUND_TEXT target for pinboard and panels (allows pasting into -gnome-terminal). -The Path Entry minibuffer now highlights invalid paths in red, instead of -beeping. - -17-Mar-2002 -~~~~~~~~~~~ -Internal changes: MaskedPixmap, Directory and XMLwrapper types are now -GObjects. FSCache now works on GObjects, and the interface is therefore -simpler now. - -16-Mar-2002 -~~~~~~~~~~~ -Sorted out some focussing and defaulting behaviour in action windows. - -14-Mar-2002 -~~~~~~~~~~~ -Split action window code, so that most of the GUI stuff is now in abox.c, -and converted to new dialog style. - -13-Mar-2002 -~~~~~~~~~~~ -Removed remaining support for the old libvfs. -Updated lots of code to new Gtk+-2.0 style. - -12-Mar-2002 -~~~~~~~~~~~ -Panel icons highlight when the pointer is over them. -Fixed some untranslatable strings (Andras Mohari). - -11-Mar-2002 -~~~~~~~~~~~ -Converted Set Run Action box to new style. - -10-Mar-2002 -~~~~~~~~~~~ -New panel style; better looking, and sensitive right up to the edge of the -screen. -Converted action window results list to use the new GtkTreeView widget. - -09-Mar-2002 -~~~~~~~~~~~ -Converted Savebox widget to new Gtk style. - -07-Mar-2002 -~~~~~~~~~~~ -Fix compile problems with Gtk+-2.0-rc1 (missing X libs and cflags). -Added stock icons to Options box. The filer now requires Gtk+-2.0. -Updated Infobox to use new GtkTreeView widget. - -05-Mar-2002 -~~~~~~~~~~~ -Display action window questions in bold (suggested by Andras Mohari). -Added PanelAdd and PinboardAdd SOAP methods (Stephen Watson). - -28-Feb-2002 -~~~~~~~~~~~ -Fixed sensitive region of icons in large with details display (Bernard -Jungen). - -27-Feb-2002 -~~~~~~~~~~~ -Added Newer option for Copy and Move operations (Stephen Watson). - -26-Feb-2002 -~~~~~~~~~~~ -Centre colour selector on mouse, and close when options box closes. -Got background pixmaps working with Gtk+-2.0. - -21-Feb-2002 -~~~~~~~~~~~ -Changes to options now take effect instantly. The old Apply button is gone, -and Cancel is now Revert. -Fixed stupid bug in charset conversions (reported by Andras Mohari). -Initial support for gnome-vfs (Mark Heily). - -20-Feb-2002 -~~~~~~~~~~~ -Internal changes to the options system. See text at start of options.c. - -19-Feb-2002 -~~~~~~~~~~~ -Changed 'Ignore case' option to 'Intelligent sorting'. A non-ASCII sort now -handles numbers in a sensible way, so that 'file10' comes after 'file9', etc -(Micah Dowty). -Fix possible type conversion problem in charset conversion code -(reported by Serban Udrea). -Allow xml:lang attribute in AppInfo files for translations; see -ROX-Filer/AppInfo.xml for an example (suggested by Wilbert Berendsen). - -18-Feb-2002 -~~~~~~~~~~~ -Try to compile against Gtk+-2.0 first, and only fallback to 1.2 if it's not -found. -In an Infobox, strip trailing newlines from file's output as Gtk+-2.0 -labels display them. -Scroll in whole items with Gtk+-1.2, plus better cursor alignment (Bernard -Jungen). - -17-Feb-2002 (Release 1.2.0) -~~~~~~~~~~~ -New stable release. - -13-Feb-2002 (Release 1.1.14) -~~~~~~~~~~~ -Pressing Escape in a dialog box now closes the box. - -12-Feb-2002 -~~~~~~~~~~~ -Fix compile problem if iconv.h is missing and allow CPPFLAGS settings to -be used in Makefile (Jim Knoble). -Undo 'double clicking unselects' change (requested by Andreas). - -11-Feb-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Updated French manual translation (Arnaud Calvo). - -08-Feb-2002 (Release 1.1.13) -~~~~~~~~~~~ -Use fixed font in minibuffer. - -07-Feb-2002 -~~~~~~~~~~~ -Updated French manual translation (Arnaud Calvo). -Updated Russian translation (Dmitry Elfimov). - -06-Feb-2002 -~~~~~~~~~~~ -When dragging a lasso box around items, limit the allowed overlap (the -space you can drag over the edge of the next item without selecting it) -so that very wide items (eg, those with details) are easier to select -(requested by Andras Mohari). - -04-Feb-2002 -~~~~~~~~~~~ -Updated Italian translation (Denis Manente). - -03-Feb-2002 -~~~~~~~~~~~ -Updated German translation (André Wyrwa). -Updated Spanish translation (Marcelo Ramos). - -02-Feb-2002 -~~~~~~~~~~~ -Updated to version 0.5 of the thumbnails standard. You should rename -'~/.thumbnails/96x96' to '~/.thumbnails/normal' to avoid having to recreate -them all. - -01-Feb-2002 -~~~~~~~~~~~ -Do UTF-8 conversions for globicons and file groups, as we now do for pinboards -and panels (reported by Arnaud Calvo). - -31-Jan-2002 -~~~~~~~~~~~ -Updated Hungarian translation (Andras Mohari). -Double-clicking an item always clears the selection, removed extra newline -from man-page and fixed a misplaced #endif (Bernard Jungen). - -30-Jan-2002 -~~~~~~~~~~~ -Updated Dutch translation (Wilbert Berendsen). -Updated to Gtk+-1.3.13 (action window scrolling now works). - -28-Jan-2002 -~~~~~~~~~~~ -OK and Cancel buttons in savebox can no longer be focussed. Fixes problem -where opening a savebox put the focus on the last used button instead of -the entry (reported by Karol Krenski). -Added instructions for Window Maker pinboard icons to the manual -(Jim Knoble). -Resizer now allows space for the 'Running as ...' message (reported by -Wilbert Berendsen). - -25-Jan-2002 -~~~~~~~~~~~ -If conversion to 'ISO8859-1' doesn't work, try 'iso-8859-1' and 'UTF-8' instead -of giving a warning (reported by Gregory Spath). - -24-Jan-2002 (Release 1.1.12) -~~~~~~~~~~~ -Updated Hungarian translation (Andras Mohari). - -23-Jan-2002 -~~~~~~~~~~~ -Only check for thumbnails in the thumbnail scanning code, not when loading -any image (saves time). -Assume pathnames and labels for pinboards and panels are in the local charset -for Gtk+-1.2, and in UTF-8 for Gtk+-2.0. -When using 'Shell Command...' from the menu with an item selected by opening -the menu, the item now remains selected when you enter the command. - -Updated French translation (Vincent Lefèvre). -Updated Dutch translation (Wilbert Berendsen). - -22-Jan-2002 -~~~~~~~~~~~ -_ROX_PANEL_MENU_POS property is now set on each GtkSocket window, rather than -the panel, so that applets can find it more easiliy (requested by Stephen -Watson). -Only use Gtk+-2.0 if '--compile --with-gtk2' is used. -Loading a thumbnail now stores the details when loading started, not -when it finished. -Bugfix: Under Gtk+-2.0, the savebox focussed the OK button rather than the - text entry. - -21-Jan-2002 -~~~~~~~~~~~ -Changing the permission on a file failed to update the display (reported by -Karol Krenski). Also made other updates more efficient. -Allow COMPOUND_TEXT selection type (same as STRING for now), as gnome-terminal -has stopped accepting STRING. - -20-Jan-2002 -~~~~~~~~~~~ -Added a configure check for iconv.h. -Use double instead of long for file sizes in find.c (Bernard Jungen). - -19-Jan-2002 -~~~~~~~~~~~ -Thumbnails code failed to update images when they changed (reported by -Andreas). - -18-Jan-2002 -~~~~~~~~~~~ -Use 'ISO8859-1' instead of 'iso-8859-1' and fallback to strdup if charset -conversion fails (Stephen Watson). - -Deleting a symlink to a pinboard or panel icon showed a warning, even though -there was no danger, because it followed the symlink. Trying to copy a symlink -inside the directory it pointed to failed for the same reason. - -17-Jan-2002 -~~~~~~~~~~~ -Big changes to internationalisation for pinboards and panels to fix problems -with incompatible character sets (reported by Arnaud Calvo). -When creating thumbnails, create to a temporary file and rename in case another -program tries to write the save thumbnail at the same time. -As a special case, running with just '-v' doesn't call gtk_init, allowing -installing without an X server (requested by Michael Duelli). - -16-Jan-2002 -~~~~~~~~~~~ -Converter for old-format config files now stops if the file looks like -XML (probably from a failed conversion). -Allow '~' in globicons file. -Bugfix: When using spring-opening or following symlinks, trying to open - a non-existant directory could cause a crash. -Bugfix: The pinboard would highlight to accept any type of drop (not just - files). - -13-Jan-2002 -~~~~~~~~~~~ -Fixed some compile problems on Solaris (Andreas Dehmel). -Clicking an unscanned item now scans it (instead of reporting an error). -Dialog boxes in Gtk+-2.0 now set a default button. -Number keys on the keypad couldn't be used for groups (reported by Arnaud -Calvo). - -11-Jan-2002 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). -Updated the French manual translation (Arnaud Calvo and Vincent Lefèvre). - -09-Jan-2002 -~~~~~~~~~~~ -Converted French manual to DocBook (Arnaud Calvo). -Fixed some compiler warnings (Vincent Lefèvre). - -09-Jan-2002 (Release-1.1.11) -~~~~~~~~~~~ -Mark action windows as dialogs (requested by Daniel Pittman). -Reset the background colour when drawing, as the Xenophilia keeps changing -it (reported by Wilbert Berendsen). - -08-Jan-2002 -~~~~~~~~~~~ -Changed == to = in make-mo script (Vincent Lefèvre). -Added -lm to libpng linker flags (reported by Stephen Watson). -Updated the French translation (Vincent Lefèvre). - -07-Jan-2002 -~~~~~~~~~~~ -Bugfix: Closing a filer window with a tooltip removes the tip now (before, the - tooltip could get stuck on the screen). - -06-Jan-2002 -~~~~~~~~~~~ -Bugfix: Options box didn't work unless options had already been saved - (reported by Iain Stevenson). - -05-Jan-2002 -~~~~~~~~~~~ -Stopped unnecessary redrawing of the display (when sorting an already-sorted -list). -Thumbnails can now also be saved using Gtk+-1.2, if libpng is available -(Andras Mohari). - -04-Jan-2002 -~~~~~~~~~~~ -Fixed compile problem (reported by Vincent Lefèvre). -Updated French translation (Vincent Lefèvre). - -03-Jan-2002 -~~~~~~~~~~~ -Added _ROX_PANEL_MENU_POS property on panel windows to help applets position -their menus correctly. -Bugfix: 'From LANG' translation setting had stopped working (reported by - Vincent Lefèvre). - -02-Jan-2002 -~~~~~~~~~~~ -Saved pinboards and panels are now stored in an XML format. Old files should -be converted automatically. Icon names may now contain the < and > characters -(requested by Bernard Jungen). - -01-Jan-2002 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Updated Polish translation (Krzysztof Krzy¿aniak). - -30-Dec-2001 -~~~~~~~~~~~ -Updated Spanish translation (Marcelo Ramos). - -29-Dec-2001 -~~~~~~~~~~~ -When changing directory, make more effort to wink or select the appropriate -item. - -29-Dec-2001 (Release 1.1.10) -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Bugfix: Using Shift to open the Send To menu without a selected file stopped - the toggle menu items from working! - -28-Dec-2001 -~~~~~~~~~~~ -With Gtk+-2.0, the effective permissions are now underlined (like they are -with Gtk+-1.2). -Put all the flags in the options box on one line, along with the Quiet button -(looks neater). -Updated manual. - -27-Dec-2001 -~~~~~~~~~~~ -Reorganised the Options box somewhat. -Bugfix: Closing a window while creating thumbnails caused a crash. - -26-Dec-2001 -~~~~~~~~~~~ -Icons are dragged from their corners again (requested by Liav Asseraf). -Unknown SOAP methods now get a SOAP Fault response. Updated SOAP namespaces. -Renamed '.DirIcon.png' to just '.DirIcon'. -In action windows, standard error from moving, copying and mounting operations -is captured and displayed, giving a more useful message (Stephen Watson). -Support for Gtk+-1.3.12. - -25-Dec-2001 -~~~~~~~~~~~ -Updated Polish translation (Krzysztof Krzy¿aniak). - -24-Dec-2001 -~~~~~~~~~~~ -File groups are now saved (automatically). -The old 'AppMenu' file is no longer checked for (use AppInfo.xml instead). - -23-Dec-2001 -~~~~~~~~~~~ -Added Version SOAP RPC. -With Gtk+-2.0 UTF-8 converstion, the filer now converts from the charset -specified in the translation (was always using iso-8859-1). - -22-Dec-2001 -~~~~~~~~~~~ -If thumbnailing is cancelled, it can be resumed later. Hiding thumbnails -stops any scan in progress automatically. Added 'All' and 'Thumbs' status -flags to title bar. - -21-Dec-2001 -~~~~~~~~~~~ -New 'Show image thumnails' option to set this as the default (requested by -Kristian Rink). -Got details working again with Gtk+-1.2 (spotted by Kristian Rink). - -20-Dec-2001 -~~~~~~~~~~~ -New thumbnail system. 'Create Thumbs' is now 'Show Thumbnails' and can -be turned on and off. Thumbnails are loaded in the background, and a progress -bar is displayed in the filer window. -Replaced old Gtk+-1.2.x text widget in action windows with new one. - -19-Dec-2001 -~~~~~~~~~~~ -Improved error reporting. -Improved sizing code when details are on. - -18-Dec-2001 -~~~~~~~~~~~ -Updated to new version 0.4 of the thumbnails standard. -Added 'Quiet' check box to action windows. Quiet button now turns on -check box and does 'Yes'. - -17-Dec-2001 -~~~~~~~~~~~ -Gtk+-2.0 uses UTF-8 for strings. Translation files are now converted to -UTF-8 as they are loaded. -Added a missing #ifdef for the regex code (Damien Couderc). -All file leafnames now use AA fonts with Gtk+-2.0 (details are still -fixed, though). - -16-Dec-2001 -~~~~~~~~~~~ -Closing a window with a keypress caused warnings to appear (reported by -Fabien Coutant). -Updated Spanish translation (Marcelo Ramos). -New 'Single click nagivation on the pinboard' option (requested by -Michael). -Fix for compiling problem on NetBSD (Eric Gillespie, Jr.). - -Internal changes to options system: -- Options can be used as soon as they are registered (not just once the - filer is fully initialised). -- New widget types can be registered in a modular fashion. - -13-Dec-2001 (Release 1.1.9) -~~~~~~~~~~~ -More fixes for panel resizing (reported by Stephen Watson). -Target mode, dragging an unselected item, and auto-selecting an item when -opening the menu now all work without grabbing the primary selection. -Finished new scanning code (image == NULL is now OK everywhere). - -12-Dec-2001 -~~~~~~~~~~~ -Clicking on an item which is selected, but not part of the primary selection, -now reclaims the selection. -Removed default minibuffer option for now. -The dash forms in Find tests can be combined, eg '-rwx'. -Updated manual. - -11-Dec-2001 -~~~~~~~~~~~ -Additional window hints - pinboard and panels refuse focus and pinboard -icons are marked as desktop features (requested by Laurent Moussault). -Thumbnails are now stored using an md5 hash of their names. -Pinboard icons can be repositioned by dragging with the left mouse button -(middle button drag stopped working with sawfish, and this is easier anyway). - -10-Dec-2001 -~~~~~~~~~~~ -New scanning system: blank items are added to the window first and then the -icons and types get filled in later. Looks better and simplifies the sizing -code a bit. -Code tidying in various places. - -09-Dec-2001 -~~~~~~~~~~~ -Bugfix: Filer would quit if only Info boxes were open. -Bugfix: Pinboard and panel windows didn't get the correct hints set under - Gtk+-2.0. - -08-Dec-2001 -~~~~~~~~~~~ -Many internal changes to Collection widget for Gtk+-2.0. Should be more -efficient now, and easier to get aa fonts working... - -07-Dec-2001 -~~~~~~~~~~~ -Fixed Gtk+-2.0 wheel mouse support. -In the Info box, 'File says...' was reporting on the program used to -edit the file, not the file itself! -For glib-2.0, use the new spawn function and report errors nicely. - -06-Dec-2001 -~~~~~~~~~~~ -Updated Russian translation (Dmitry Elfimov). -Thumbnail information in the PNG image is now namespaced to 'Thumb' -(recommended by Jens Finke). -FileType SOAP RPC return format has been updated to the latest version -of the SOAP working draft. -Added Large File Support: files over 4Gb now have their sizes detected -correctly (Stephen Watson). Note: this disables libvfs support. -New option to have the minibuffer open by default on new windows -(Bochicchio). - -05-Dec-2001 -~~~~~~~~~~~ -When resizing the collection, only ensure the cursor is still visible if -it was in the displayed area before. - -When closing the Enter Path minibuffer, keep Show Hidden on if the cursor is -on a hidden item. - -When using --show with a hidden file, turn on Show Hidden. Also, delay the -winking effect until the window actually appears. - -04-Dec-2001 -~~~~~~~~~~~ -Support for new thumbnails spec; thumbnails are saved inside ~/.thumbnails -so they redisplay quickly next time the filer is loaded (requested by -Kristian A. Rink and others). - -Bugfix: Toggling the section with a middle button drag could lose the primary - selection (Andras Mohari). - -03-Dec-2001 -~~~~~~~~~~~ -Use gtk_set_locale instead of setlocale (Andras Mohari). - -02-Dec-2001 -~~~~~~~~~~~ -Added 'Invert Selection' (Stephen Watson; suggested by Andras Mohari). - -01-Dec-2001 -~~~~~~~~~~~ -Added a new root window property (_ROX_FILER_EUID_HOST) which points to -the SOAP IPC window for a particular hostname and user ID. This makes it -easier for other programs to talk to the filer. - -30-Nov-2001 -~~~~~~~~~~~ -Added new SOAP methods Copy, Move, Link, Mount and FileType (Stephen Watson). - -29-Nov-2001 -~~~~~~~~~~~ -Moved 'Select All', 'Clear Selection' and 'Select If...' to a new 'Select' -submenu. -The filer now closes stdin when it starts. This is to prevent child -processes, such as auto-mounters, from trying to read a password from -the console (Olivier Fourdan). - -27-Nov-2001 -~~~~~~~~~~~ -Manpage is now generated automatically from DocBook source. -Short forms for many find expressions, such as -d for IsDir (suggested by -(Andras Mohari). - -26-Nov-2001 -~~~~~~~~~~~ -More Gtk+-1.3.11 support, including use of the new message dialog. -When the filer loses the primary selection, display the selected items -shaded, but don't unselect them (Andras Mohari). - -24-Nov-2001 -~~~~~~~~~~~ -Updated to Gtk+-1.3.11. - -23-Nov-2001 -~~~~~~~~~~~ -Show the current run action for a file in the Info box (Stephen Watson). - -21-Nov-2001 -~~~~~~~~~~~ -If a panel applet quits then it is removed from the panel, instead of being -replaced by a Restart button. - -16-Nov-2001 -~~~~~~~~~~~ -With Gtk+-2.0 and the 'Unique windows' option on, reshow the existing window -instead of destroying it and creating a new one (suggested by Greg Spath). - -15-Nov-2001 -~~~~~~~~~~~ -Changes to the French translation (Thierry Godefroy and Vincent Lefevre). - -14-Nov-2001 -~~~~~~~~~~~ -Code tidying in menu.c (Bernard Jungen). - -13-Nov-2001 -~~~~~~~~~~~ -Opening a filer window from the Set Icon dialog turns thumbnails display -on (suggested by Francesco Bochicchio). -Right-clicking the Help toolbar button reuses the same window. - -12-Nov-2001 -~~~~~~~~~~~ -Made some strings easier to translate, fixed a problem with translating a blank -string, and changed the details toolbar button to leave the size alone (Andras -Mohari). -Improved key handling (key presses were sometimes ignored). -Bugfix: A very long and narrow icon could make the filer try to scale to a - width or height of zero (Andras Mohari). - -09-Nov-2001 -~~~~~~~~~~~ -Allow current directory and selection to be stored with Ctrl+[0-9] and -retrieved by pressing [0-9] (suggested by Jakub Turski). The groups are not -saved yet. - -08-Nov-2001 -~~~~~~~~~~~ -Don't use re_set_syntax() on systems that don't have it (reported by -Damien Couderc). -In action windows, the a long filename no longer makes the window get wider -(requested by Graham Borland). -Added 'Types' section to the Options window, allowing easy(ish) access -to the MIME-info files, plus a reload button, and icons for MIME-types can -be set from the 'Set Icon...' box (Stephen Watson). - -07-Nov-2001 -~~~~~~~~~~~ -Added a menu to the 'Set Icon...' box which shows all directories currently -used for icons (Francesco Bochicchio). -Fix small error in German translation (Christopher Arndt). -Bugfix: 'New Directory' didn't correctly select the leafname with Gtk+-2.0. - -06-Nov-2001 -~~~~~~~~~~~ -Added Spanish translation (Marcelo Ramos). -Applied Bernard Jungen's latest patch: -- Disk usage forgot to count special files like pipes, etc. -- Page up/down scrolls a window full at a time instead of 10 items. -- Don't get icons from the cache if thumbnail mode is off anymore. -- modechange.c: deleted useless stuff and fixed octal parsing to detect - *all* illegal values (eg 010000000000000). -- Added 'Show/hide hidden files' toolbar button. -- Lots of code tidying. - - -05-Nov-2001 -~~~~~~~~~~~ -Holding the pointer over a symlink shows the target in a tooltip -(Stephen Watson; suggested by Arnaud Calvo). - -01-Nov-2001 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). - -30-Oct-2001 (Release 1.1.8) -~~~~~~~~~~~ -Updated to support Gtk+-1.3.10. - -17-Oct-2001 -~~~~~~~~~~~ -Slightly better positioning of filenames and details (Bernard Jungen). -When resizing, only add space for an extra row in Small Icons mode. - -16-Oct-2001 -~~~~~~~~~~~ -Make the Set Run Action box command box have the "$1" already filled in -(suggested by Helgi Hrafn Gunnarsson). - -15-Oct-2001 -~~~~~~~~~~~ -Set the WM_CLASS for saveboxes, so that window managers can treat them -specially, if required (Andrew Flegg). - -14-Oct-2001 -~~~~~~~~~~~ -Changed internal format used to send to requests to SOAP, and added --RPC -option to access it directly. - -12-Oct-2001 -~~~~~~~~~~~ -Open new windows at the mouse position (suggested by Helgi Hrafn Gunnarsson). -Bugfix: If file doesn't accept the '-b' option then examining a file in - the root directory didn't work (Stephen Watson). - -10-Oct-2001 -~~~~~~~~~~~ -Use --version instead of 'which' to test for programs as not everyone has -which (suggested by Vincent Lefevre). -Bugfix: When setting an icon for a file with a space in the name, the - setting wasn't saved correctly (spotted by Arnaud Calvo and Jakub - Turski). The 'globicons' file should be converted automatically - when the filer is run. - -08-Oct-2001 -~~~~~~~~~~~ -Added support for the regex field in MIME-info. This allows files to be -matched with patterns, not just on their extensions. For example, '.gtkrc' -is now typed 'x-gtkrc' despite having no extension (Stephen Watson and -Andras Mohari). - -05-Oct-2001 -~~~~~~~~~~~ -Allow AppIcon.xpm and .DirIcon.png to be symlinks (Bernard Jungen). - -04-Oct-2001 -~~~~~~~~~~~ -When running on a remote machine, display the remote host's name in the -title bar (Stephen Watson). - -02-Oct-2001 -~~~~~~~~~~~ -New option to control whether a middle button drag moves the files or -brings up a menu. -Allow submenus in AppInfo.xml file (Stephen Watson). - -26-Sep-2001 -~~~~~~~~~~~ -Now supports Gtk+-1.3.9, but not earlier developer releases. - -25-Sep-2001 -~~~~~~~~~~~ -Disk Usage can cope with larger sizes, and reports the number of files and -directories counted; new Show Hidden and Inherit Options options; new -D -option to close directories; and changes to formatting of file sizes -(Bernard Jungen). - -24-Sep-2001 -~~~~~~~~~~~ -Updated Hungarian translation (Andras Mohari). -Improved the filename colouring code so that colours are only allocated -if needed (Andras Mohari) and fixed a colourmap problem (Stephen Watson). -Bugfix: When sorting while winking an item, the filer would sometimes scroll - to the wrong place (Andras Mohari). -Bugfix: If all the selected files were deleted, then trying to paste the - selection caused a crash (Fabien Coutant). - -20-Sep-2001 -~~~~~~~~~~~ -Colour files by type (Andras Mohari). - -11-Sep-2001 -~~~~~~~~~~~ -Added -p to mkdir in install scripts to create any missing parent -directories (Michel Alexandre Salim). - -09-Sep-2001 -~~~~~~~~~~~ -Dragging files with the middle button (or Button1+Alt) brings up a menu -of possible actions (Taras). -New option to control size of icons in `New' and `Send To' menus (Stephen -Watson). -Bugfix: Pinboard icons didn't draw correctly if their windows got resized - (reported by Michel Alexandre Salim). - -06-Sep-2001 -~~~~~~~~~~~ -Window positions can be saved and restored by a session manager (Anders -Lundmark). - -05-Sep-2001 -~~~~~~~~~~~ -Fixed an untranslated string (Andras Mohari). - -04-Sep-2001 -~~~~~~~~~~~ -The style for pinboard and panel icon text can be set (requested by Greg -Spath) with: - - widget "*.pinboard-icon" style "..." - widget "*.panel-icon.*" style "..." - -03-Sep-2001 -~~~~~~~~~~~ -Bugfix: Entering a blank expression in the 'Select If' minibuffer displayed - a (harmless) warning message (reported by Vincent Lefèvre). - -03-Sep-2001 (Release 1.1.7) -~~~~~~~~~~~ -Added an option to control whether extensions take precedence over the -executable bit of a file (requested by MJ Ray). -Updated French translation (Vincent Lefèvre and Arnaud Calvo). -Disabled the UTF-8 conversion (doesn't work on older versions of Gtk). - -02-Sep-2001 -~~~~~~~~~~~ -The options controlling when windows resize work again. - -31-Aug-2001 -~~~~~~~~~~~ -Better guessing of window size for display styles with details. - -29-Aug-2001 -~~~~~~~~~~~ -The 'src/po/dist' script now converts all text to UTF-8. - -28-Aug-2001 -~~~~~~~~~~~ -Fixed some problems with the configure.in script and autoconf 2.50 (Richard -Boulton). - -27-Aug-2001 -~~~~~~~~~~~ -Updated Dutch translation (Jasper Huijsmans). -Send To menu lists contents of all Send To directories in Choices, not just -the first one found. -Fixed another XML compiling problem (Stephen Watson). - -23-Aug-2001 -~~~~~~~~~~~ -Added Customise to `Send To' menu. - -22-Aug-2001 -~~~~~~~~~~~ -Detached Send To menu from main menu structure. Allows key-binding to open -the menu, at least. Main menu now opens quicker (no scanning of Send To dir). -Shift+Menu brings up the menu directly. - -20-Aug-2001 -~~~~~~~~~~~ -Fixed compiling problem with some versions of libxml (Stephen Watson). -Changed a text message in the Options box (about binding keys to menus) into -a button which shows the message in an alert box. Maybe people will read the -message now? - -19-Aug-2001 -~~~~~~~~~~~ -Only use Gtk+ 2.0 if version 1.3.6 or later is installed. -Scrolling using a wheel mouse now always goes at the same speed, whatever the -display style (requested by aardvark joe). - -10-Aug-2001 -~~~~~~~~~~~ -Added 'Send To' menu (Stephen Watson). - -Bugfix: Renaming a panel icon didn't update the display (reported by Andrew - Booker). - -07-Aug-2001 -~~~~~~~~~~~ -Fixed some minor compilation issues (reported by Jasper Huijsmans and Daniel -Richard G.) - -03-Aug-2001 -~~~~~~~~~~~ -Added French translation of the manual (Arnaud Calvo). - -24-Jul-2001 -~~~~~~~~~~~ -Filer wouldn't compile or run if it was in a directory with spaces in the -name (reported by Benjamin Munoz). - -23-Jul-2001 -~~~~~~~~~~~ -Added options for default action window settings for Brief, Force and Recurse -(Liav Asseraf). -New default for sort type is Sort By Name (requested by Andreas Dehmel). -Bugfix: Clicking on a file with no run action set gave two error boxes. - -19-Jul-2001 -~~~~~~~~~~~ -Make Enter in the minibuffer work like Return (requested by Arnaud Calvo). - -18-Jul-2001 -~~~~~~~~~~~ -Added some more hints to pinboard and panel windows to comply with the new -freedesktop.org window manger spec. - -15-Jul-2001 -~~~~~~~~~~~ -New option to set the maximum size the auto-resizer will resize a window to -(requested by Andreas Dehmel). - -14-Jul-2001 -~~~~~~~~~~~ -When using the Set Run Action box, make the command default to the currently -set command (suggested by Arnaud Calvo). - -12-Jul-2001 (Release 1.1.6) -~~~~~~~~~~~ -Updated the French translation (Vincent Lefèvre). - -10-Jul-2001 -~~~~~~~~~~~ -Renamed 'New File' submenu to 'New' and moved 'New Directory' into it. - -09-Jul-2001 -~~~~~~~~~~~ -Use the user's preferred font for item filenames, not the Gtk default -(requested by Jim Knoble). - -03-Jul-2001 -~~~~~~~~~~~ -Redid text handling on the panel. Now uses nice fonts under Gtk+ 2.0. - -02-Jul-2001 -~~~~~~~~~~~ -Don't show tooltips for applets as it causes problems (reported by Stephen -Watson). - -30-Jun-2001 -~~~~~~~~~~~ -Gtk+-2.0: Support for anti-aliased fonts on the pinboard (also word-wraps - long names too). Fixed a crash-on-click problem on the root window. - -29-Jun-2001 -~~~~~~~~~~~ -More work on Gtk+-2.0 -- seems to be usable now :-) - -28-Jun-2001 -~~~~~~~~~~~ -Started work to support Gtk+-2.0. - -26-Jun-2001 -~~~~~~~~~~~ -Moved 'relative link' option above the buttons in the Link box (Stephen -Watson). -Bugfix: Rescanning could sometimes make the cursor reappear, causing the - display to scroll (reported by Andreas Dehmel). - -21-Jun-2001 -~~~~~~~~~~~ -Replaced 'New File...' menu item with a submenu generated from the contents -of '/Templates' (Stephen Watson). - -20-Jun-2001 -~~~~~~~~~~~ -`Xterm here' command can contain arguments (Andras Mohari). -Made the menu appear in a sensible place, so it's easy to get to the File -submenu (suggested by André Wyrwa). - -19-Jun-2001 -~~~~~~~~~~~ -Updated French translation (Vincent Lefèvre). -Added a German translation (André Wyrwa). - -13-Jun-2001 -~~~~~~~~~~~ -Added an extra option to control the resizing behaviour. Can be set to resize -never, always, or only when the display style changes (requested by Andreas). - -07-Jun-2001 (Release 1.1.5) -~~~~~~~~~~~ -Updated Russian translation (Dmitry Elfimov). - -06-Jun-2001 -~~~~~~~~~~~ -Unless compiling with mc's libvfs for virtual filesystem support, change the -menu structure for use with the newer AVFS system. -(http://www.inf.bme.hu/~mszeredi/avfs/) (José Romildo Malaquias). - -Bug fix: Running the filer with a translation set would make it crash - (reported by Dmitry Elfimov). - -04-Jun-2001 (Release 1.1.4) -~~~~~~~~~~~ -Added 'Details' toolbar icon. Toggles display between Small Icons with Summary -and the default size with no details. - -30-May-2001 -~~~~~~~~~~~ -Replaced Large/Small toolbar buttons with a single Size button which -cycles through Small/Large/Huge (other button to reverse). - -28-May-2001 -~~~~~~~~~~~ -Added Shift Open, Set Run Action and Set Icon to the pinboard and panel -menus. - -25-May-2001 -~~~~~~~~~~~ -Long leafnames wrap onto multiple lines in Huge mode, like they do for -Large Icons mode. - -24-May-2001 -~~~~~~~~~~~ -Display tooltips for pinboard and panel icons, where needed. - -23-May-2001 -~~~~~~~~~~~ -New option to show number of files / size of selected files in the toolbar -(Andras Mohari). - -22-May-2001 -~~~~~~~~~~~ -New options section 'panel' allows icon text to be hidden for all icons, no -icons, or just applications (suggested by José Romildo Malaquias). - -17-May-2001 -~~~~~~~~~~~ -Converted the options window to a tabbed notebook (Denis Manente). - -16-May-2001 -~~~~~~~~~~~ -Pressing the mouse button down on an icon no longer winks it; only releasing -the button to run it does. -Added 'Show Info' to panel/pinboard menu. -The File Info box grabs the primary selection when a row is selected -(allows you to paste email addresses, URLs, etc). - -15-May-2001 -~~~~~~~~~~~ -Opening a pinboard or panel menu over an icon no longer selects it -- this -allows the selection to be passed to an application run using its AppMenu -(requested by Christopher Arndt). - -14-May-2001 -~~~~~~~~~~~ -In Large Icons display style, a file's name may wrap onto a second line. - -13-May-2001 -~~~~~~~~~~~ -Merged code for handling selections and menus that was common to pinboards -and panels into icon.c. - -09-May-2001 -~~~~~~~~~~~ -When using 'From LANG', extract the language code from the string to get -the filename, instead of using the whole string (Andras Mohari). -Added support for very old versions of libxml (reported by Lukasz Stelmach -and Vincent Lefèvre). - -08-May-2001 -~~~~~~~~~~~ -Updated French (Vincent Lefevre) and Hungarian (Andras Mohari) translations. - -07-May-2001 (Release 1.1.3) -~~~~~~~~~~~ -Updated the documentation. - -06-May-2001 -~~~~~~~~~~~ -Added 'Huge, With...' display styles. In huge mode, normal icons are scaled -up if they're too small. - -03-May-2001 -~~~~~~~~~~~ -Gtk styles can be overridden in /ROX-Filer/Styles (suggested by -Stephen Watson). -Pinboards and panels should now work with IceWM without needing -o -(Christopher Arndt). -Allow text messages in the toolbar to go off the side (instead of resizing the -window). - -02-May-2001 -~~~~~~~~~~~ -Opening the shell minibuffer with a selection adds ' "$@' after the cursor. -Without a selection, the name of the file under the cursor is added. - -29-Apr-2001 -~~~~~~~~~~~ -Pressing the `\' key opens the menu (suggested by Christopher Arndt). Hold -down Ctrl for the File submenu. - -28-Apr-2001 -~~~~~~~~~~~ -Added a new 'About' section to AppInfo. Any elements in here are added -into the info box. Added a 'Refresh' button to the info box. -Added a ROX-Filer/Styles file for default colours (default filer background -is now lighter). - -27-Apr-2001 -~~~~~~~~~~~ -Rewrote the file info box. Looks a bit nicer, and it's easier to add extra -info to it later... - -26-Apr-2001 -~~~~~~~~~~~ -Updated Russian translation (Dmitry Elfimov). - -25-Apr-2001 -~~~~~~~~~~~ -AppInfo file may contain a element - the text inside will be -displayed in a tooltip if the mouse is held over the item in a filer -window. - -22-Apr-2001 -~~~~~~~~~~~ -Filer now looks for AppInfo.xml before AppMenu. This is for future -expansion... - -18-Apr-2001 -~~~~~~~~~~~ -Automatic resizing of windows when changing directory is now optional -(requested by Paul E. Johnson and Andreas Thorn). - -11-Apr-2001 -~~~~~~~~~~~ -The symlink box allows you to choose to create relative or absolute links -(suggested by Stephen Watson). - -09-Apr-2001 -~~~~~~~~~~~ -Fix some typos and untranslated strings (Andras Mohari). - -08-Apr-2001 -~~~~~~~~~~~ -Added a Russian translation (Dmitry Elfimov). - -06-Apr-2001 -~~~~~~~~~~~ -Fixed a couple of errors in the man-page (spotted by Damien Couderc). - -05-Apr-2001 -~~~~~~~~~~~ -Winking an item in a directory makes it flash twice instead of once (easier -to see). Also, creating a new file or directory from the menu winks the new -item. - -Bugfix: When a directory was rescanned because of a move operation, - the `Set Icon...' settings didn't work (reported by Damien - Couderc). - -02-Apr-2001 -~~~~~~~~~~~ -New display style 'Huge Icons' to make viewing thumbnails easier. -Added a Hungarian translation (Andras Mohari). -Updated the French translation (Vincent Lefèvre). -Double clicking on a filer window's background resizes the window (Denis -Manente). - -01-Apr-2001 -~~~~~~~~~~~ -If an item's name is truncated, show it in a tooltip when the pointer is -held over the item (Denis Manente). - -30-Mar-2001 (Release 1.1.2) -~~~~~~~~~~~ -Asking for help on a directory always tries to open /Help first, even -for non-applications. - -29-Mar-2001 -~~~~~~~~~~~ -If run without -n, the filer will put itself in the background. Thus, -the 'rox' command behaves the same whether or not the filer is already -running. - -27-Mar-2001 -~~~~~~~~~~~ -Support for the new version of libxml (reported by Andreas Dehmel). - -26-Mar-2001 -~~~~~~~~~~~ -Rewrote parser for options. Smaller and neater (hopefully this will fix -the bugs reported by Andreas Dehmel and Ewan Mac Mahon). - -Bugfix: While scanning, the resizer could make the window too large. - -23-Mar-2001 -~~~~~~~~~~~ -Moving the cursor down in the next-to-last row will move to the last -item if there is nothing under the cursor (suggested by Graham Borland). - -21-Mar-2001 -~~~~~~~~~~~ -When changing directory, only make the window larger (if needed), never -smaller (suggested by Diego Zamboni). - -17-Mar-2001 -~~~~~~~~~~~ -Changing directory autosizes the window automatically (Denis Manente). -Internal changes to the way different layouts are handled. - -15-Mar-2001 -~~~~~~~~~~~ -Pressing space (to select/unselect an item) now also moves the cursor to -the next item (suggested by Anders Lundmark). - -Copying directories tries to preserve the timestamps, like it does for -files (suggested by José Romildo Malaquias). - -14-Mar-2001 -~~~~~~~~~~~ -Added '--mime-type FILE' option, which simply writes the type of FILE to -standard output (Stephen Watson). - -Added 'Home Directory' to Window menu (requested by Graham Borland). - -11-Mar-2001 -~~~~~~~~~~~ -Copying a directory which doesn't have user write permission will give it -user write during the copy to avoid permission denied errors (suggested by -Liav Asseraf). - -New sort option - 'Directories always come first' (requested by Liav Asseraf). - -10-Mar-2001 -~~~~~~~~~~~ -Dragging a lasso box with the middle button toggles the selected state -of the items enclosed (Denis Manente). - -09-Mar-2001 -~~~~~~~~~~~ -Changing the display style now resizes the window (Denis Manente). - -08-Mar-2001 -~~~~~~~~~~~ -New pinboards get a 'Home' icon in the top left corner as new users often -think the pinboard isn't working because it starts empty (suggested by -Vor'Cha). - -Converted AppMenu file format to XML. -Added AppMenu file with options to control the pinboard. - -06-Mar-2001 -~~~~~~~~~~~ -Highlight invalid Find expressions in red (Anders Lundmark). - -04-Mar-2001 -~~~~~~~~~~~ -When resizing windows, try to keep the window fully inside the screen area -(Denis Manente). - -03-Mar-2001 -~~~~~~~~~~~ -Updated the Dutch translation (Jan Wagemakers). - -27-Feb-2001 -~~~~~~~~~~~ -When mounting a device, the new window appears after mounting, not before. -This means that it's more likely to get sized correctly (requested by -Ewan Mac Mahon). - -24-Feb-2001 -~~~~~~~~~~~ -Added two new options to control when minibuffer completion beeps (requested -by Liav Asseraf). - -20-Feb-2001 -~~~~~~~~~~~ -Added 'New File...' feature (James Kermode). - -16-Feb-2001 -~~~~~~~~~~~ -Dropping icons on the pinboard positions them sensibly (Diego Zamboni). - -09-Feb-2001 (Release 1.1.1) -~~~~~~~~~~~ -Moving pinboard icons is nicer - it no longer assumes you dragged the middle -of the text... (Diego Zamboni). - -Added a Polish translation (Andrzej Borsuk). - -Bugfix: Sometimes it wasn't possible to delete something that was on a - pinboard or panel, even after confirming (reported by Diego Zamboni). - -07-Feb-2001 -~~~~~~~~~~~ -Sliders in the options box can have a numerical value display (Diego Zamboni). -Fixed a stray warning message displayed when non-default pinboard options -were used (Diego Zamboni). - -New menu item 'Set Icon...' allows you to choose any icon for any file or -directory. Also allow .DirIcon.png to set a directory's icon (Diego Zamboni). - -03-Feb-2001 -~~~~~~~~~~~ -Many internal changes to the Options system. - -30-Jan-2001 -~~~~~~~~~~~ -Bugfix: On filesystems which aren't case sensitive (eg DOS) it was possible - to copy 'tmp' as 'Tmp' and lose it! (reported by Denis Manente) - -28-Jan-2001 -~~~~~~~~~~~ -Added Diego Zamboni's patch to make configuring VFS easier. - -27-Jan-2001 -~~~~~~~~~~~ -Improved compiling - now correctly reports an error if the file doesn't -compile. If configure is missing then autoconf is run automatically. - -After a Find completes, you are given the option of doing the search again -(Anders Lundmark). - -Applications can define a list of menu items to display on their menus -(Diego Zamboni). The file should be called 'AppMenu' and contains a list of -lines in the form 'option Text'. - -24-Jan-2001 -~~~~~~~~~~~ -Added two new pinboard options - one to allow setting the grid step size -and one to allow icons to go slightly off the side of the screen (Diego -Zamboni). - -23-Jan-2001 -~~~~~~~~~~~ -Bugfix: Textured window backgrounds could cause a crash (reported by Diego - Zamboni). - -22-Jan-2001 -~~~~~~~~~~~ -Updated the French translation (Vincent Lefèvre). - -Bugfix: The pixbuf stuff didn't work on some displays (reported by Stephen - Watson). - -20-Jan-2001 (Release 1.1.0) -~~~~~~~~~~~ -Removed the 'Initial window height' option. The filer tries to pick a -sensible shape itself now. - -Bugfix: If an image was moved to a directory which didn't generate thumbs - then it would display, but never be updated. Even if it wasn't that - file at all, just a reused inode! -Bugfix: Changing the display style didn't always redraw the display. -Bugfix: In 'Small, With...' display mode, clicking beyond the far right - column acted like clicking on the far-right column. - -18-Jan-2001 -~~~~~~~~~~~ -Changed background colour to be more compatible with the Gtk themes system. - -12-Jan-2001 -~~~~~~~~~~~ -Removed all the message window stuff. ROX-Filer no longer grabs standard -error from its child processes. Changed because ROX-Session now does a much -better job. - -10-Jan-2001 -~~~~~~~~~~~ -Filer is more generous in what hostnames it considers local. -Patch to include pixbuf headers correctly (Diego Zamboni). - -08-Jan-2001 -~~~~~~~~~~~ -Bug fix: Didn't always use the fully qualified host name for DnD. - -30-Dec-2000 -~~~~~~~~~~~ -If a file has a known extension then it is given the appropriate type even -if the file is executable (Simon Britnell). - -28-Dec-2000 -~~~~~~~~~~~ -Added a menu entry 'Resize Window' to set the window to a sensible size -when you want it. - -25-Dec-2000 -~~~~~~~~~~~ -Try to open new windows at a sensible size for their contents (Denis Manente). - -24-Dec-2000 -~~~~~~~~~~~ -Bugfix: When mounting or unmounting subdirectories of '/', the mount symbol - wasn't updated (reported by Wilbert Berendsen). - -20-Dec-2000 -~~~~~~~~~~~ -Fixed a couple of memory leaks in the choices system (Diego Zamboni). -Updated French translation (Vincent Lefèvre). -Added new 'Create Thumbs' entry on the Display menu which tries to load -every file in the directory as an image and use that image for the file -(suggested by Sprague and Simon Britnell). - -19-Dec-2000 -~~~~~~~~~~~ -Converted to use gdk-pixbuf instead of ImLib. -Fixed a few compiler warnings and improved the error message displayed -if you try to invoke rox on a missing file (reported by Vincent Lefèvre). -Changed the -w, -W and -i flags to the simpler -x=FILE, which reexamines the -given file, updating directory views and icons as needed. - -18-Dec-2000 -~~~~~~~~~~~ -AppIcon.xpm must be a regular file (stops people trying to crash the -filer by symlinking to /dev/...). -Fixed a missing translation in the pinboard options (Denis Manente). - -17-Dec-2000 -~~~~~~~~~~~ -Attempting to run the filer before compiling will now ask if you want -to compile. -Removed lots of platform-specific mount point code and replaced it with -python's portable system. -New options section allows you to choose a translation without having to -set the LANG variable. - -16-Dec-2000 -~~~~~~~~~~~ -Added '-w', '-i' and '-W' command line options for forcing icons or -directories to be rescanned (Diego Zamboni). - -13-Dec-2000 (Release 1.0.0) -~~~~~~~~~~~ -Made a few updates to the manual. - -08-Dec-2000 -~~~~~~~~~~~ -Fixes to make compiling easier on Solaris (Diego Zamboni). Also, after showing -a pinboard icon, tries to send it to the back (might help with some WMs). - -04-Dec-2000 (Release 0.1.30) -~~~~~~~~~~~ -When a panel is used for the first time, put the user's home directory and -the directory containing ROX-Filer on it instead of leaving it blank. - -24-Nov-2000 -~~~~~~~~~~~ -Patch to make compiling easier under FreeBSD (Jimmy Olgeni). -Added a #include for OSF1 (Vincent Lefevre). - -23-Nov-2000 -~~~~~~~~~~~ -Bugfix: On many systems, the filer would fail to remove zombie processes - due to a typo (spotted by Philip Hazel and tracked down by Stephen - Watson). - -22-Nov-2000 -~~~~~~~~~~~ -Bugfix: Removing an item from the panel now resizes the panel (reported - by Wilbert Berendsen). -Bugfix: Editing an icon's path failed to update its hash entry. - -20-Nov-2000 -~~~~~~~~~~~ -If a case-sensitve match for an extension can't be found then try a -case-insensitive match - so .BMP and similar work (Denis Manente). - -17-Nov-2000 -~~~~~~~~~~~ -A few changes to remove some compiler warnings (reported by Vincent Lefevre). -Added a VFS menu entry for .deb files (Vincent Ledda). - -11-Nov-2000 -~~~~~~~~~~~ -Mounting or unmounting a directory forces mtab to be reread, even if the -timestamp hasn't changed (problem reported by Wilbert Berendsen). - -When the 'Unique windows' option is on, remove the old window AFTER creating -the new one, so that the filer doesn't quit because there are zero windows -open... (Denis Manente). - -07-Nov-2000 -~~~~~~~~~~~ -Updated the Dutch translation (Jan Wagemakers). - -29-Oct-2000 -~~~~~~~~~~~ -Updated the French translation (Vincent Lefèvre). - -Using --version and --help options no longer requires an X server connection, -the man-pages are more standard, and 'man ROX-Filer' is allowed as well as -'man rox' (Bernard Jungen). - -Bugfix: A corrupted AppIcon.xpm could crash the filer. - -24-Oct-2000 (Release 0.1.29) -~~~~~~~~~~~ -Code tidying: Replaced an XLib call with a gdk one (Denis Manente) and amended - the makedist script to remove the .cvsignore files (spotted by Andy - Piper). - -20-Oct-2000 -~~~~~~~~~~~ -Improved the install script so that it installs the man-page. Also made it -easier to use. Updated the French translation and fixed a couple of -typos (Vincent Lefèvre). - -17-Oct-2000 -~~~~~~~~~~~ -Gtk+ doesn't always scroll entry widgets to show the selection - apply a -workaround (Denis Manente) - this improves the Copy/Rename/etc boxes. - -08-Oct-2000 -~~~~~~~~~~~ -Added a Dutch translation (Jan Wagemakers). - -05-Oct-2000 -~~~~~~~~~~~ -Added an Italian translation (Denis Manente). - -04-Oct-2000 -~~~~~~~~~~~ -Bugfix: If AppRun was a symlink, then the owner of the file was checked, not - the owner of the symlink. Slight security risk, and also prevented - users symlinking AppRun to their binaries... - -29-Sep-2000 -~~~~~~~~~~~ -Bugfix: Deleting a pinboard icon while it was highlighted caused a crash. - This means it is now possible to click on a pinboard icon to change - between pinboards... - -Bugfix: Textured window backgrounds didn't redraw correctly when scrolled - or resized. Now flickers when resizing if there's a textured - background - seems to be necessary :-( - -26-Sep-2000 -~~~~~~~~~~~ -Running as root now simply turns on the -u flag, rather than displaying -a warning box. - -The toolbar height is now correctly taken into account when sizing a new filer -window (Denis Manente). - -When guessing file types from extensions, the filer now tries to find the -longest extension that matches (eg .ps.gz, then .gz). - -25-Sep-2000 -~~~~~~~~~~~ -The lasso box is now drawn so that the box will be in the foreground colour -over the background, rather than by just inverting the pixel value and hoping -it's visible (spotted by Philip Hazel). - -24-Sep-2000 -~~~~~~~~~~~ -If the home directory is '/' then don't show it as '~' (suggested by -Bernard Jungen). - -Added '--show=FILE' option - this will be needed by other ROX -applications, so it needs to be in version 1.0.0. - -Bugfix: -d option didn't use realpath before sending to an already-running -filer. - -22-Sep-2000 -~~~~~~~~~~~ -The 'install.sh' script now uses 'printf' instead of 'echo -e' to suppress -newlines (suggested by Bernard Jungen). - -Bugfix: Close tool was always disabled on startup (reported by Martin Ward). - -20-Sep-2000 -~~~~~~~~~~~ -Added a man-page (Andy Piper). -Changed `install.sh' from bash to sh (Bernard Jungen). - -18-Sep-2000 (Release 0.1.28) -~~~~~~~~~~~ -Bugfix: menu entries on the pinboard menu weren't being shaded and - unshaded correctly. - -17-Sep-2000 -~~~~~~~~~~~ -Changed 'Rename Item' to 'Edit Icon' and allowed changing the path that -the icon points to as well as its name. - -All i?86 platforms are treated as being equivalent (so, if you compile -on a 386 then it'll still run on a 486). - -16-Sep-2000 -~~~~~~~~~~~ -Pinboard icons can also be renamed. -Pinboard and panel icons can have '~' or '~/' at the start of their -pathnames - this should make it easier to create a system-wide default -panel or pinboard with icons relative to the user's home directory. - -14-Sep-2000 -~~~~~~~~~~~ -Panel icons can now be renamed (suggested by Ewan Mac Mahon). - -13-Sep-2000 -~~~~~~~~~~~ -Changing the toolbar options affects existing windows, not just new ones. -Removed the 'Size Bars' display style and replaced it with 'Permissions', -'Type' and 'Times' styles. - -12-Sep-2000 -~~~~~~~~~~~ -With items that spread over their normal width because they're on the -edge of the window, clicking on the extra bit now works. - -Added a size limit of 400K on application icons. This is to prevent -someone trying to crash the filer by linking /tmp/MyApp/AppIcon.xpm -to some huge file! - -Dragging an item with the middle button when none are selected unselects -the item after the drag. - -Added 'Show Location' feature for pinboard and panels - opens a directory -showing where the file really is. - -11-Sep-2000 -~~~~~~~~~~~ -Allowed items in the far right column to spread right to the edge of the -window. Fixed a bug which prevented Delete from working if there was -no pinboard. - -10-Sep-2000 -~~~~~~~~~~~ -Deleting items first checks if it will affect the pinboard or panel. A -warning is displayed if so. - -Upgraded the query dialog (from ROX-Session) - looks nicer. - -09-Sep-2000 -~~~~~~~~~~~ -'Unique filer windows' option now has no effect while the spring open -feature is active (spotted by Andrew Booker). Also, when opening a new -window, the old window is destroyed and a new one created (rather than -reusing the old one). This ensures that the new window appears in the -right place. - -When a drag from the pinboard or a filer window ends, the selection is -only cleared if the icon was selected by starting the drag. Thus, it now -works like the panels. - -08-Sep-2000 -~~~~~~~~~~~ -New Close toolbar button (requested by Martin Ward). -Toolbar icons can be turned on and off from the Options box. -Removed the 'Mount' menu entry, since 'Shift Open' does it too. -Made the Shift Open menu text change depending on what is selected. -Bugfix: dragging icons around no longer saved the new pinboard state! - -07-Sep-2000 -~~~~~~~~~~~ -Running a second copy of the filer as another user will start a new copy -instead of reusing the existing one. Added the '-u' option to display the -name of the user running the filer in each window (also suppresses the -normal don't-run-as-root warning). - -Added '-d', which opens a directory as a directory, even if it looks like -an application. - -Updated the manual. - -Added Large and Small toolbar buttons. Right-clicking brings up a menu. - -06-Sep-2000 -~~~~~~~~~~~ -Moved 'Set Run Action' to the file menu (suggested by Ewan Mac Mahon), and -made using it bring up a dialog rather than a minibuffer. Hopefully it is now -easier to use! - -Added much improved icons for executables and for applications without icons -of their own (Victor Liu See-le). - -Allow '/' on the pinboard and panel (text wasn't displayed - spotted by -Tim Rowledge). - -Bugfix: auto-scrolling didn't always stop when a drag ended. -Bugfix: creating a panel with the same name as a file in the current - directory caused an error due to a throwback from when panels were - directories (spotted by Ewan Mac Mahon). - -30-Aug-2000 (Release 0.1.27) -~~~~~~~~~~~ -Increased the distance you have to move the pointer to start a drag -slightly. Updated the manual. - -Panel icons can now be moved from one side to the other by simply moving -over the gap in the middle. Previously, you had to jump over an icon on -the other side. - -Left and right panels look better now. Also, they shrink if you add a top -or bottom panel to make room. - -28-Aug-2000 -~~~~~~~~~~~ -Dragging on the panel background allows you to slide the bar back and -forth. - -27-Aug-2000 -~~~~~~~~~~~ -Fixed a slight bug with lasso boxes, which could cause them to be drawn in -the wrong place. Install script no longer overwrites the default run -actions; if the user has changed them leave them alone! -(Martin Ward noted that symlinking to an executable would cause the -executable to be destroyed on upgrade!) - -24-Aug-2000 -~~~~~~~~~~~ -More improvements to the event handling. Seems to be working again at -last! -Made the toolbar buttons slightly larger, and added a textual display -for 'Next Click' mode (eg 'Delete ... ?' when it's waiting for you to -click). -Moved the pinboard over to the new mouse binding code too. - -21-Aug-2000 -~~~~~~~~~~~ -Started rewriting the event handling for filer windows to go through -the new code in bind.c, like the panel handling does. - -20-Aug-2000 -~~~~~~~~~~~ -You can now drag icons from the panel to other applications. - -18-Aug-2000 -~~~~~~~~~~~ -Dragging panel icons with the middle button allows you to move them around. - -New option to set the default height for new filer windows (patch from -James Kermode). - -17-Aug-2000 -~~~~~~~~~~~ -Selecting panel icons now grabs the primary selection. Pasting pastes all -selected file path names. Icons can now be added to either side of the panel. - -Bug fix: Moving a file didn't always update the source directory. - -16-Aug-2000 -~~~~~~~~~~~ -Many improvements to the panel - drag and drop to icons, adding new icons, -selections (doesn't grab the primary selection yet though), removing icons -and automatically saving the panel when it's changed. - -11-Aug-2000 -~~~~~~~~~~~ -Improved reference counting on images (hopefully!). Lots of work on -rewriting the panel system. - -07-Aug-2000 -~~~~~~~~~~~ -Made the timeout for the spring-open feature configurable (requested by -Chris Garrett). - -Use short form of --version in install.sh and don't use unsetenv() if it -isn't available (Mattias Engdegård). - -06-Aug-2000 -~~~~~~~~~~~ -New options to set the pinboard text foreground and background colours -(suggested by James Kermode). - -05-Aug-2000 -~~~~~~~~~~~ -Your home directory is now displayed as '~' in the title bar, rather -than as a full path. - -01-Aug-2000 (Release 0.1.26) -~~~~~~~~~~~ -Added a popup menu of commonly used chmod strings to the Permissions -box. Bracketed text and spaces are now ignored in the commands. -Bug fix: Only menu keys changed since the last load were saved! - -31-Jul-2000 -~~~~~~~~~~~ -Bug fix: Mount points on the pinboard didn't always redraw when the -mounted/unmounted state changed. - -30-Jul-2000 -~~~~~~~~~~~ -Renaming now uses the action windows. This means that you can now -rename something onto another filesystem. - -28-Jul-2000 -~~~~~~~~~~~ -The menu key bindings are now only saved if they actually changed. - -Code tidying: Moved some typedefs to the new `global.h' file and -thus removed the dependencies between header files :-) - -26-Jul-2000 -~~~~~~~~~~~ -Tab and Shift-Tab move to next and previous selected item. - -25-Jul-2000 -~~~~~~~~~~~ -The new display styles can now be saved as the defaults (bug spotted by -Vladimir Klebanov). - -When autoscrolling is used, prevent the last-highlighted directory -from springing open. 'spring open' now defaults to off. - -The toolbar Up and Home buttons can act as drop targets (and spring open -too!). - -Options to set the pinboard text background style (suggested by James -Kermode). - -23-Jul-2000 -~~~~~~~~~~~ -Added an option to control the spring-loading feature. Added tooltips -to some of the options. Improved the rule for deciding whether to open -a new window when you click on the toolbar buttons. - -Stopped the spring-open window moving while it's open (prevents a bug -in GTK+ from causing problems). Please use GTK+ 1.2.8 or later now! - -Dragging near the edge of a window scrolls. Improved the lasso box drag -to use the same system (so it scrolls without you having to move the -mouse). - -22-Jul-2000 -~~~~~~~~~~~ -Added 'spring-loaded' directories. If you drag a file over a directory and -hold it there, the directory will spring open! (suggested by Barney -Clarkson) - -21-Jul-2000 -~~~~~~~~~~~ -In the path entry minibuffer, an exact match is favoured over any other -match. So, if you enter '.xsession' and press Return you'll get it, not -'.xsession-errors' or whatever! - -The filer now clears APP_DIR from the environment so that child processes -don't get it. Fixed a bug which caused problems when using a small version -of the 'missing image' image. - -19-Jul-2000 -~~~~~~~~~~~ -Creating a new directory now makes sure the display is updated. - -18-Jul-2000 (Release 0.1.25) -~~~~~~~~~~~ -Prevent dragging from a pinboard selection to itself, or onto the desktop -background. - -17-Jul-2000 -~~~~~~~~~~~ -Clicking on the root window works (button-1 clears the selection, -button-3 opens the pinboard menu). The pinboard can own the primary -selection, which means that you can select something and then paste -its name into another program. - -Keys bound to menu entries are automatically saved when the filer quits. - -16-Jul-2000 -~~~~~~~~~~~ -Changed the install script so that the CVS directories don't get installed. - -The 'rox' script now just calls AppRun directly. -Panels can be created without starting a new copy of the filer. -The pinboard can be changed or removed by using --pinboard a second time. - -Files can be given as arguments - they are opened as if they were clicked -on in a filer window (suggested by Alex Holden). If no arguments are -given then the default is now the current directory (not your home -directory). - -If you start the leafname in the path minibuffer with '.' then the Show -Hidden feature is temporarily turned on. - -15-Jul-2000 -~~~~~~~~~~~ -Ctrl-clicking selects and unselects pinboard icons. Menu clicking -selects the icon clicked on while the menu is open. Pinned icons are -now updated when the pointer moves over them, if necessary. - -14-Jul-2000 -~~~~~~~~~~~ -Menu-clicking on a pinboard icon now brings up a menu. -Clicks on the root window are still ignored though; need to support -the GNOME-compliant window manager system for passing root clicks on... - -12-Jul-2000 -~~~~~~~~~~~ -Files can now be dragged to pinboard icons, and they highlight nicely too! -If the --override option is used, the filer will bypass the window manager -and position the icons directly. - -11-Jul-2000 -~~~~~~~~~~~ -Pinboard icons can now be dragged to filer windows or applications, just -like normal icons. - -10-Jul-2000 -~~~~~~~~~~~ -Changed the DnD code to make it easier for the pinboard code to use it. -Up and Home buttons on the toolbar now use the 'New window on button 1' -option setting (suggested by Vincent Lefèvre). - -09-Jul-2000 -~~~~~~~~~~~ -Pinboard can have mount points and symlinks on it. - -06-Jul-2000 -~~~~~~~~~~~ -Dragging with the Menu button moves icons around. Clicking with the -other button removes icons from the pinboard. - -05-Jul-2000 -~~~~~~~~~~~ -Dragging files to the pinboard adds them to it and automatically saves -the pinboard too. - -02-Jul-2000 -~~~~~~~~~~~ -Pinboard is now loaded from a file specified on the command line. - -01-Jul-2000 -~~~~~~~~~~~ -'Home' now appears on the background if you run it with --pinboard. -Clicking opens your home directory. Doesn't do much else. -Fixed a bug which prevented the minibuffer label from appearing on -some versions of GTK+. - -30-Jun-2000 -~~~~~~~~~~~ -First steps towards pinboard support (requested by P.S.S.Camp and -Darren Winsper). - -16-Jun-2000 -~~~~~~~~~~~ -Changed the Display menu layout - now there are four basic types (Large or -Small, with or without details) and the type of detail desired is chosen -from a sub-sub-menu. - -Added a new display style - bars showing the sizes of the files. The bars are -drawn on a log scale. - -15-Jun-2000 -~~~~~~~~~~~ -Changed the display menu - you can now choose large or small icons, with or -without details. The details displayed can also be changed. I'm not quite -happy with the UI yet though... - -Split the filer.c source file into two (filer.c and display.c) since it was -becoming rather unwieldy. This means that some of the option names have -changed because they've moved to a new section in the options window... - -14-Jun-2000 -~~~~~~~~~~~ -Fixed a problem where ImLib support failed on multi-depth displays (reported -by Stephen Harrison). - -06-Jun-2000 (Release 0.1.24) -~~~~~~~~~~~ -Added the install.sh script for easier installation. -Removed 'MIME-info' file from ROX-Filer - now we always assume that the -standard types are in Choices. -Fixed a bug which could cause 'top' panels to appear in the wrong place -(Alex Holden). -Changed the sort order for Sort By Type so that directories come before -files (suggested by Chris Garrett). -`Single-click navigation' and 'Ignore case when sorting' now both default -to On. - -03-Jun-2000 -~~~~~~~~~~~ -Improved the theme support to allow tiled background images. -Fixed a bug which prevented tilde expansion from working in the -shell command minibuffer. - -02-Jun-2000 -~~~~~~~~~~~ -Made the help button look a bit nicer and changed the Find and Permissions -action windows to use the icon instead of a text button. -Removed the 3D borders from the help and toolbar buttons when not selected -(looks much better!). Setting a run action by dragging to a symlink now -dereferences the link (suggested by Ewan Mac Mahon). - -Default search path for Choices is now: - ~/Choices:/usr/local/share/Choices:/usr/share/Choices - -Fixed (possibly) a bug which sometimes causes the redraw to miss bits. This -probably slows everything down, but the next Gtk+ release should do double -buffering so all this will get changed then... - -01-Jun-2000 -~~~~~~~~~~~ -Added a Help icon to the toolbar, which does the same as choosing `Show -ROX-Filer Help' from the menu. - -25-May-2000 -~~~~~~~~~~~ -Started adding some code to truncate long filenames (not finished yet). -Fixed a bug which could cause directories to appear empty when using VFS. -Added the 'Select If' minibuffer, which selects all files matching the -entered expression. - -21-May-2000 -~~~~~~~~~~~ -Moved most of the icons from pixmaps to MIME-icons (outside ROX-Filer). -Updated several of the remaining icons by copying them from the GNOME -desktop (suggested by Volker Braun). - - -16-May-2000 (Release 0.1.23) -~~~~~~~~~~~ -Added the `Window->Set Run Action' menu item. This allows you to specify the -default run action for a file by simply dragging the file into a program. -You can also enter a shell command in the minibuffer to make that command -the default. -The cursor is a bit nicer and usually appears where you want it to now. You -can also get rid of it by pressing Escape. - -12-May-2000 -~~~~~~~~~~~ -Applied Bernard's patch (a couple of cosmetic changes to the action windows). -Applied Vincent's patch (minor updates to the Frech translation). -Fixed a problem with the pixmap caching - the filer would detect that the -file had changed and try to reload it, but ImLib would simply return its -cached copy! - -28-Apr-2000 -~~~~~~~~~~~ -Removed a debugging message that had somehow got into the release version :-( -Fixed a bug in the minibuffer code - pressing Return when the cursor was in -an empty directory caused odd effects. - -24-Apr-2000 (Release 0.1.22) -~~~~~~~~~~~ -When starting, the filer will check to see if it is already running. -If it is then the arguments are passed to that copy. - -23-Apr-2000 -~~~~~~~~~~~ -Bug fix: Attempting to open a Find preview window could cause a crash -if the directory containing the item could not be opened. -Button-3 clicking on the toolbar icons opens a new window. - - -21-Apr-2000 -~~~~~~~~~~~ -Added Vincent Lefevre's French translation. Changed to using my own -gettext function because some platforms don't have it or implement -it differently. - -18-Apr-2000 (Release 0.1.21) -~~~~~~~~~~~ -Completed marking translatable strings. Dragging with the middle button -now moves files. - -17-Apr-2000 -~~~~~~~~~~~ -Made lots of changes to the way menus are stored; this makes i18n of the -menus easier. - -16-Apr-2000 -~~~~~~~~~~~ -Added GNU gettext support. -Shell meta-characters in shell commands are escaped. - -15-Apr-2000 -~~~~~~~~~~~ -Tab in the shell commands minibuffer does shell-style completion. - -14-Apr-2000 (Release 0.1.20) -~~~~~~~~~~~ -ImLib is used for rendering if possible. Small Icons super-samples the -image down. - -13-Apr-2000 -~~~~~~~~~~~ -Copying from inside a VFS directory now works. - -09-Apr-2000 -~~~~~~~~~~~ -Added the Shell Command feature to the minibuffer. -Fixed a bug which causes unnecessary flickering when a hidden file was -detected. -Removed 'Touch' from the menu; easy enough from the minibuffer now. -Changed the type guessing system - scans all files in MIME-info directories -now. - -02-Apr-2000 -~~~~~~~~~~~ -Added a nice list displaying the found files. Clicking opens a preview window -onto the directory and winks the file. - -18-Mar-2000 -~~~~~~~~~~~ -Merged the MIME-Type and Special fields in the info window into a single -Type field (since only one could be used at a time anyway). -Made lots of changes to the panel menu. You can now remove things much more -easily. -Unstat()able files now display the error message in the Full Info display, -instead of random values. -Check for copying a directory onto itself, as well as into itself. - -Applied Bernard's patch: -- Copy (menu entry) now works with action window. -- Deleted/moved directory displays are automatically hidden. -- Added option not to allow run/copy when object - dragged to filer (not panels) icons. Some people like - it the RISC OS way... -- Full info alignment of App objects and owner/group - alignment corrected. -- Info window: added special info for symlinks, apps - and mount points. - -17-Mar-2000 -~~~~~~~~~~~ -Added support for mc's Virtual File System. - -12-Mar-2000 -~~~~~~~~~~~ -New Window appears greyed out if Unique Windows is selected. -Added 'Permissions' (chmod) feature. - -10-Mar-2000 -~~~~~~~~~~~ -Added Bernard Jungen's patch: -- Dates are displayed in a more RISC OS like format. -- (Scanning) is shown in the titlebar during scans. -- Option to only display one window per directory. -- User and group names displayed in the Full Info view. -- Open Parent in the root does nothing. -- Errors in options are only reported once. -- File does chdir() if -b isn't possible (prevents getting the full path - in the file(1) says... box). - - -Before the Changes file -~~~~~~~~~~~~~~~~~~~~~~~ -The following people added code before I started keeping this log: - -Jens Askengren GNOME-style toolbar -Bernard Jungen lots of patches all over the place! -Christiansen Merel initial support for ImLib -Chris Sawer leafname field in the Info box -Simon Truss support for mount points on NetBSD - diff --git a/ROX-Filer/Help/README b/ROX-Filer/Help/README deleted file mode 100644 index e2442b92..00000000 --- a/ROX-Filer/Help/README +++ /dev/null @@ -1,65 +0,0 @@ - ROX-Filer - A RISC OS-like filer for X - by Thomas Leonard - -ROX-Filer is a simple and easy to use graphical file manager for X11, the -windowing system used on Unix and Unix-like operating systems. It is also -the core component of the ROX Desktop: - - http://rox.sourceforge.net - -To compile: - $ ROX-Filer/AppRun --compile - -To install: - $ ./install.sh - -To run: - $ rox - -For full instructions, read the Manual.html file: - $ galeon ROX-Filer/Help/Manual.html - -(or use netscape, konqueror, mozilla, w3m or any other browser in place of -galeon) - - -Conditions -~~~~~~~~~~ -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -Please report any bugs to the mailing list: - - http://rox.sourceforge.net/phpwiki/index.php/MailingLists - - -Credits -~~~~~~~ -ROX-Filer was created by Thomas Leonard, but many people have contributed to -it one way or another... - -If you think you should be included here then write and tell me ;-) - -First, a few people/projects whose work I've used: - - Andrew Clover most of the file icons - David MacKenzie the code for parsing Permissions commands - John Lindal co-author of the XDS protocol - Midnight Commander the Virtual File System library & pinboard bits - GNOME Desktop some of the icons (including the toolbar) - Red Hat MIME type guessing library - -A huge number of people have submitted code, suggestions and encouragement - -many of them are listed in the `Changes' file... thanks! diff --git a/ROX-Filer/Help/README-es b/ROX-Filer/Help/README-es deleted file mode 100644 index 95b3aa1c..00000000 --- a/ROX-Filer/Help/README-es +++ /dev/null @@ -1,66 +0,0 @@ - ROX-Filer - Un explorador estilo RISC OS para X - por Thomas Leonard - -ROX-Filer es un manejador de archivos gráfico simple y fácil de usar para X11, -el sistema de ventanas utilizado en Unix y sistemas operativos clones de Unix. -También es el componente principal del Escritorio ROX: - - http://rox.sourceforge.net - -Para compilar: - $ ROX-Filer/AppRun --compile - -Para instalar: - $ ./install.sh - -Para ejecutar: - $ rox - -Por las instrucciones completas, lee el archivo Manual.html: - $ galeon ROX-Filer/Help/Manual.html - -(o usa netscape, konqueror, mozilla, w3m o cualquier otro navegador en -lugar de galeon) - - -Condiciones -~~~~~~~~~~~ -Éste programa es software libre; puedes redistribuirlo y/o modificarlo -bajo las condiciones del Licencia Pública General GNU como fue -publicada por la Fundación por el Software Libre; ya sea la versión 2 -de la Licencia, o (a tu elección) cualquier versión posterior. - -Este programa es distribuído con la esperanza de que sea útil -pero SIN GARANTIA ALGUNA; incluso sin la garantía implícita de -MERCANTIBILIDAD O APTITUD PARA UN PROPOSITO PARTICULAR. Consulta -la Licencia Pública General GNU por más detalles. - -Deberías haber recibido una copia de la Licencia Pública General GNU -junto con éste programa; si no es así, escribe a la Free Software -Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 -USA - -Por favor infórmame cualquier fallo, . - - -Créditos -~~~~~~~~ -ROX-Filer fué creado por Thomas Leonard, pero muchas personas han contribuído -con él de una forma u otra... - -Si consideras que deberías estar incluído aquí entonces escribe y dímelo ;-) - -Primero, unas pocas personas/proyectos cuyo trabajo he utilizado: - - Andrew Clover la mayoría de los íconos de archivo - David MacKenzie el código para procesar los comandos de - permisos - John Lindal co-autor del protocolo XDS - Midnight Commander la biblioteca Virtual File System y algunas - cosas para el pinboard - GNOME Desktop algunos íconos (incluyendo la barra de - herramientas) - -Una enorme cantidad de personas han enviado código, sugerencias e incentivo - -muchos de ellos están listados en el archivo `Changes'... ¡gracias! diff --git a/ROX-Filer/Help/TODO b/ROX-Filer/Help/TODO deleted file mode 100644 index 1229011b..00000000 --- a/ROX-Filer/Help/TODO +++ /dev/null @@ -1,135 +0,0 @@ - ROX-Filer - A RISCOS-like filer for X - by Thomas Leonard - -This is a list of features that should/will be added when I have time (or -when someone sends patches!). - -BUGS - -tasklist_update(): add_window() if new==old? - -Hard-code sub-class-of. - -Size and position settings don't work on new windows. - -Odd things to investigate: -- newChild -> newChildText? - -Saved settings for display size and position make the window flicker when -changing directory. - - FEATURES FOR 2.1 - -Windows should include the toolbar size when autosizing, but still allow the -window to be resized smaller. Remove the current option. - -Going Up in List View loses the focus and scroll position. - -Better errors from SOAP messages. - -If you set an icon view with some details turned on (like "sizes" or -"permissions") a maximum width value is silently ignored. - -Shift+Menu on the Up button should show the Send To menu. - -File2.html comes before File.html. Also, very large numbers aren't handled. - -Mounting/unmounting via a symlink doesn't update the display automatically. - -When the minibuffer is highlighted in red, scanning more items should recheck. - -Text beside icons style is too wide. - -Bookmarks: -- Show selection groups? -- Auto-add recent operations - -Iconified directories show the directory's icon (Marcus Lundblad)? - -Some way to process the files found by Find. - -Active icons in iconified windows (Christian V. J. Brüssow). - -When all selected items have the same type, show handlers for that type on -the SendTo menu (Arnaud Calvo)? - -Tab completion in save boxes. - -Rescanning sometimes causes the display to scroll (automounter problem). - -Opening an AVFS directory with left-click should reuse the same window. - -Deleting / moving files should update the globicons? - -'Edit Item' doesn't make much sense for applets... - -Make Find expressions easier for beginners. - -Individual sliders for max window horizontal and vertical sizes? - -Winking of items should be an option? - -Shell / Select If history menu. - -Shift-click on symlink should open the file. Add a 'Follow link' submenu. - -Key bindings in the New File menu don't work (move to dialog box?). - -All leafnames to be truncated, even when details are displayed. -Use condensed fonts for long names? - -Use an environment variable to override the platform-name guessing in -AppRun. - -Right-most icon in the last row should extend to the far right of the window, -even if it isn't in the last column. - -Allow filtering on any expression (not just Show Hidden). - -Allow find expression with Permissions command... - - - OTHERS - - -Fully configurable toolbar? - -Corner panels? - -Close Panel menu item? - -Highlighting of icons as you drag a box around them, so it's clear what you -have caught in the box? - -Enable (temporarily) single-click navigation when a special key is pressed? - -In single click mode, beep when the user tries to double click? - -Copying a relative symlink should make it absolute? Ask during the copy? - -Recursive 'a-x' acts on the directory first and so can't then change the -permissions on the contents. chmod(1) has the same problem. - -Option to disable open-file-and-close-window behaviour (sometimes happens -accidentally)? - -Remember last scroll position when returning to a directory? - -'Edge folders' (panel items spring-open with zero delay when the pointer -is at the edge of the scree)? - -AppInfo.xml (Christopher Arndt): - - - - - - LONG TERM - - -Use a separate process to access the filesystem. Prevents hanging when you -try to access a dead filesystem. Do this via gnome-vfs? - -Allow user to change permissions to another user on the fly, by entering a -password. 'su' requires a tty - use xsu? diff --git a/ROX-Filer/Messages/README b/ROX-Filer/Messages/README deleted file mode 100644 index 71af8b1c..00000000 --- a/ROX-Filer/Messages/README +++ /dev/null @@ -1,10 +0,0 @@ -This directory contains various translations. -Set the environment variable 'LANG' to the name of a translation (without -the extension) before running the filer, eg: - - $ LANG=fr; export LANG - $ ROX-Filer/AppRun - -will cause the filer to display all messages in French. - -See the ROX-Filer manual for details. diff --git a/ROX-Filer/Options.xml b/ROX-Filer/Options.xml deleted file mode 100644 index efa3db6b..00000000 --- a/ROX-Filer/Options.xml +++ /dev/null @@ -1,331 +0,0 @@ - - -
- - - You'll have to resize windows manually, using the window manager, the `Resize Window' menu entry or by double-clicking on the window background. - Changing the size of the icons or which details are displayed will resize the window for you. - The filer will resize windows whenever it seems useful (that is, when changing directory or display style). - - The largest size, as a percentage of the screen size, that the auto-resizer will resize a window to. - - - - - Use single letters instead of words for Scanning, All and Thumbs indicators in the titlebar. - If you open a directory and that directory is already displayed in another window, then this option causes the other window to be closed. - - - Clicking with mouse button 1 (usually the left button) opens a directory in a new window with this turned on. Clicking with the button-2 (middle) will reuse the current window. - Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things. - If on then double clicking on the window background resizes the window, just like clicking on the Automatic size mode button in the toolbar. - - - - - If this is on then directories will always appear before anything else when sorting by name. - If on, all filenames starting with a capital letter come before filenames starting with lowercase ones. - -
- - If this is on then display options for a new window are inherited from the source window if possible, otherwise they are set to the defaults below. - - - - - - - - - - - - - - If this is on then files whose names start with a dot are shown too, otherwise they are hidden. - If this is on then files which have one or more extended attributes set will have an emblem added to indicate this. - - - - - - - - - - - - - - - - - - - - - - - When automatic icon sizing is selected: If the directory contains this many items then it will be shown using Small Icons, otherwise Large Icons will be used. - - - - - Text wider than this is broken onto two lines in Large Icons mode. In Huge Icons mode, text is wrapped when 50% wider than this. - - Maximum width for the text beside a Small Icon. - - If this option is on, then small icons are arranged in columns, not rows. - If this option is on, then large icons are arranged in columns, not rows. - - - If this is on then column headings will be shown in the list view. - If this is on then the full description of each object's type will be show rather than a short summary of its basic type. - -
-
- - - - - - - - - - Show the number of items displayed in a filer window, as well as the number of hidden items (if any). When there's a selection, show the number of selected items and their combined size. - - - - - - Each filer window is constrained to be wide enough to show the whole of the toolbar - - - When using the `Enter Path...' minibuffer and Tab is pressed, beep if nothing happens (eg, because there are several possibilities and the next letter varies). - When using the `Enter Path...' minibuffer and Tab is pressed, beep if there is more than one matching file, even though some more letters were added. - -
-
- - - This is the default setting for new windows. Use the Display menu to turn thumbnails on and off for individual windows. - - - - - - - - - -
-
-
- - - - - - - - - - - - - - - - - - The font used for the text displayed under the icons - - Choose between the fast or slow method of scaling backdrop images. The slow method can give better results. - - - Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things. - If this is set, pinboard icons are always kept completely within screen limits, including the label. - - - Use a 2-pixel grid for positioning icons on the desktop. - Use a 16-pixel grid for positioning icons on the desktop. - Use a 32-pixel grid for positioning icons on the desktop. - - - -
- - - If this option is on, the filer will show each iconified window as a small button on the pinboard. Requires a compatible window manager, and the pinboard must be in use. - If this option is on, the filer will only show iconified windows associated with the current workspace. - - - - - - - - - - - - - - - - - - Height of no-go area at top of screen. - Height of no-go area at bottom of screen. - Width of no-go area at left of screen. - Width of no-go area at right of screen. - - -
-
- -
- - - - Only a panel is shown. - Only the pinboard is shown. - Both a panel and a pinboard are shown. - - - - Enter the name of the pinboard to show here. - - - - -
- -
- - - Copy files without confirming first. - Move files without confirming first. - Create links to files without confirming first. - Delete files without confirming first. - Mount and unmount filesystems without confirming first. - - - - Don't confirm deletion of non-writeable items. - Don't display so much information in the message area. - Also change contents of subdirectories. - Only over-write if source is newer than destination. - - - - The command used to mount a filesystem. If unsure, use "mount". - The command used to unmount a filesystem. If unsure, use "umount" (yes, without the first "n"). - The command used to eject removable media. If unsure, use "eject". - -
-
- - When this is on you can drag a file over a sub-directory or program in a filer window. The item will highlight when you do this and dropping the file will put it into that directory, or load it into the program. - This option, which requires the above option to be turned on too, causes the highlighted directory to 'spring open' after the file is held over it for a short while. - This option sets how long, in ms, you must hold a file over a directory before it will spring open. The above option must be turned on for this to have any effect. - - - - - Note that you can still get the menu to appear, by dragging with Alt held down. - - - - - - Note that you can still get the menu to appear, by dragging with the left button and holding down the Alt key. - - - - When you drag a file from a web browser or other remote source, this program will be run to download it. $1 is the URI dragged to the filer, and the current directory is the destination. Eg: -xterm -e wget $1 - -
-
- - - - - - - - - - - - - Show the File menu instead of the main menu when right-clicking with files selected (the main menu can be accessed by holding down Control). - - The program to launch when you choose `Terminal Here' from the menu. - - - - -
-
- - - - - - - - - - - -
- - Filenames (and details) are coloured according to the file's type. - - - - - - - - Error, such as a symlink which points to a non-existant file, or a file which the filer does not have permission to examine. - - - - - - Door files are a bit like sockets or pipes, and have only been seen on Solaris. - - - - - - -
-
-
- - - - - Some window managers don't support the new Extended Window Manager Hints system, and so treat the pinboard and panels like normal windows. Turn this on to fix problems such as the pinboard coming to the front when you click on it, titlebars and other decorations appearing around windows, or having them appear in window-select lists. - Normally, right clicking on the desktop background will open the pinboard menu and left clicking will clear the selection. Turn this on to forward the events to your window manager instead. Clicks on icons will not be forwarded. - Blackbox, Fluxbox and similar window managers do not yet work well with the ROX-Filer pinboard. This option enables some workarounds. These window managers are expected to change their behaviour in new versions so that this isn't necessary. - Makes sure panels stay against screen edges. Disable this option if the panel stays above other windows against your wishes. Requires a restart to take effect. - Keeps the panel above other windows. Enable this option to make sure the dock option works correctly in some versions of compiz. May require a restart to take effect. - Keeps the panel confined to the work area specified by the Extended Window Manager Specification. Applies to new panels. - - - Some older applications don't support XDND fully and may need to have this option turned on. Use this if dragging files to an application shows a + sign on the pointer but the drop doesn't work. - - - This disables the use of extended attributes available in newer operating systems and file systems. With this option set the 'Set Type' menu entry is disabled, the MIME type of the file is only derived from the file name and the properties window does not report extended attributes. - -
-
diff --git a/ROX-Filer/ROX/MIME/application-msword.png b/ROX-Filer/ROX/MIME/application-msword.png deleted file mode 100644 index 3fec118828a15694ccd1645890c48c46e53a6a7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1593 zcwPZH2FCe`P)Y_BB)VHNe#5VSSXY}w9u9|)x;Pj7!;~T zG#E>1Yf8~n6Kfw76~RA1ls0mZ7E1)56x0+WN-WWBlaTB&d+S5a%$c*7bE0j(u4(=^$&YnSTZ*Vk9MT<8;(eTsx6NOP-n-;NzSRR7j}y#Vxd zHdmZ07GpYu9(PgKPEAe4KxI%T!2sA#0QWHfr%#_gR$V>sb(4#4H%;Tgl|8XFyBczF0C zu=>FtH_Vq7EmM^@mX)$9o2Hpq%gj4>)WE^;FaSA#m)A|79J)Ncm+dqa+*!AB`M}2J zt*fJ#V_=@=A%tN2_U-DX-u8CH*T0mVr~l)n0Mr-SC9pt4*U|Ez06%R}?kRC)v}8zE zNz1fuY#~WKKOR*;QuRP?=yC~MT7Nl)u2_sk0VNbb&;7y#3rpKG)zkF10QC;ji{-(C z2Wj53hu-$~BHV?-Q*CTva7=4Ql#>V1IMe#~+)wYXz@nL_zcZ!$LJXOwZYG}Bp&HaZ zH|g(~cAwm1XtLf7DAFM<$2`BfKm00RxaMD#g9HezsZSsxMS}9NfZ@<6AgF=iM zhM`uR`Fy^ld_0Xii`FWF#jJH=O{|}ECor&l(cCp#zxdWy7Sj_ze#XfU-~$H^(A?c! zESwRUn{Fs;Mct@0gG>Z)ocuf}xYDvLRk!ru*WU;L>(;%RI$%<40Trzk)y~c%wgQtt zzVE9QhMojL5Tp)N)>2mm2OcSc`>FwQ35Zp}#k1Cf7$t;}B$lo@(GZz>d8ltAA=Gq)% zv=2CO=-9c~Ult3Xrly7^OO}w$W^o*cs;VkH&r6)7v9WPRFb^ISL*ek@!|M3zZ&v{L z=)Jc-6T>#TGWN$agjdTOvJ+)$<9Un>l(<(nr(`!K0`;00000NkvXXu0mjfjEwXw diff --git a/ROX-Filer/ROX/MIME/application-pdf.png b/ROX-Filer/ROX/MIME/application-pdf.png deleted file mode 100644 index 5975da16a93df7ba7de0ee237b2dbdca1cff4827..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3445 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 mIH+`a>lXf00006VoOIv0RI60 z0RN!9r;`8x010qNS#tmY3l9JQ3l9O3`2(c@000McNliru(*YO=DKYCfT!;Vw3CT%B zK~#90wU>KvRMj2FKj+@Nuk0q9&67l82@iQ#P!NKkAfi}`2%~^ARcm#oqxk4J(y4Z; z*74OUIMuewv`oQAE5!#O?-A5SHlRS10wQlh!XvNEW;dJ7Ztm;!kFa60+2~*W&D_~@ z?)mNceed`8IKLwb3JPR69LC{rke{DVI2=Y%6#k!L7>3Avr^RA1Ow+`&ETohuih`69 z03j~vr`|~^QB}3iCaJabxoz9HTrN!0L`sQa7}VF-Q&m-kVHo|uX(?k;N-WF5w(VX3 z0|Ci2o^5Ox2DWWu+cuVE5s$}-Mx!K?$*e4C>0e-3766K(^aGO)z_#u01(ps(N{O!P zgu`LN;c%~w0U61*sSu){flR$@fKu+YEUR~qL?S^Vkr;4KO-hLn0wF|ikf!FTClf?A zs=aPBIB_5CS@y0FKwn=+i z2(Q)uIv4>NeDq*T^*-SpT@RrJ_~+@KQ|Xe)wp-bQku@5;O*C* zCKihg%*a5J2`+t{0uT;|*}Qo(0H@Ej;P>YPFz>EMDJUI`1fsf)Aq0hkhmn_;M<^8P z4z{F{D7&7`A0FoBOdJCvRUhxp7%$&`ky+LYf zYQCS5^z=&~r{?dy_a2819YRXUq{>R1g9Z^&T#UQ<9so=m;$}Y^eIzHx!^Ts~-lupO6a*D5=0>GjTZ?j|UV#?_1nFD)lJI1_B<%+6-ctUSq?#d{f2J(%Z~tY+-gSy$|+-t`c` zg_E@cKuMhenWg&HdGmPX!w(UDKLGiz9Nw7xGv*#{4DH6<|OCdSbYtgyj2e-+O!SV5t`2$#!Ap3isLYp*=#D<3{l0w~!| zUw|C17t^vJZQY@${BzbrEI886+I1h%1&sOSgACdG0*|v1-_0eo9`7L5m;ghyz5M~u<9k zW!BLs>({R(p*fjz-(&c5N@zRSPRIE!&~0c+K&YDu?W1{h@fy%OfiqC$WAxndj2VB` zmC0`7anmw={bD5DHDzUGOqe>A^?UXpyxv}&D9{vuW%oV;!7tdhVLeHYm&sQz#CgO8 zVI5k#p)tvnXeBS+yYgZ*I)Ge=U22TnE@yF9SC_kwYcd%D`t_y}puG?Vj}X*!)R1>u zDXQ@;)tffb?elZ}lm(Q;3gC1nGXmrI&0P=U*4r-n)dQ44lY#Al@{xnla(&}J4c1on zb4?0FDtId^D`}5J_`0qR;c^iIe5HbwUw_UY6G8HRItZ@z5^dbiuFad#^8#Eqa}mYv zGUm;*RTQW9JLT&#EHW9=zK?g8l!UXnx z_Z@e9u#CT6z7OMC4=pD;=xj*REy5!H+qVXvFQ-xI{&d*f!`E;Oxt0>y(KsynO*K+v32wclrIDiwXGrmlQ0} zPsQ1|`~!r~=aVfhE!ehABofJbr9?`WE?dU@`O~=Jh6<$Y>a*P02}hb$5*2Q6E0D0k zki59!PwXu5F>l`Ov^AY0vNy;Rv+t%nucYUH$HExVZa!bP9nG?=-g__fZ})`|n3jc> z2`){1KDffNIN6va?sJeEHE<s&Zdk0otfx=LxM?hCQ0Q2#7vByhXkm}dVD zSO~$G(WBVBshUB9=2BX!($?0a*Vq{0lTQu+aQxU&c79PyV{;20mxh#()OA*`k(j21 zq6nr{U75`Dx~12p2vt$ss;Z#1wzdj@M53okX5PZajT@&H1oE{f9$&1F8F__g$x|<# zJa=w#nGpG`Sg`}kvgnL;SoJ4Q|NDGvbZc&ot6|Pflg?^b9!(WqpG)MH6nNuak0au6 zDBT{HE0K&gIY>Bkk(*-(X=#yI*AHB3FUpNGri=en@09ueJZ;+a8|sG+9a65U3NT+trpQ9;70k8CWoVH;aoN8#1(z4NYotf8; evXMO}{r>>lXf00006VoOIv0RI60 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 diff --git a/ROX-Filer/ROX/MIME/application-vnd.stardivision.writer.png b/ROX-Filer/ROX/MIME/application-vnd.stardivision.writer.png deleted file mode 100644 index 329adae118fadba40376fd0817a9d3877f97001b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2207 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 R5IO(=002ovPDHLkV1jLKUUmQg diff --git a/ROX-Filer/ROX/MIME/application-vnd.sun.xml.calc.template.png b/ROX-Filer/ROX/MIME/application-vnd.sun.xml.calc.template.png deleted file mode 100644 index 72797eaa15687987fa33d457adbeee0434d05492..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2736 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 diff --git a/ROX-Filer/ROX/MIME/application-vnd.sun.xml.impress.png b/ROX-Filer/ROX/MIME/application-vnd.sun.xml.impress.png deleted file mode 100644 index 22837663410365e3a6a043c5891086842d596509..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1622 zcwPZk2C4apP)2y)J_-N;1>;FX zK~#90wU`=lyU6X&OAJ0$G+Ed?>&dbWF9y3h=b^V zGjs1f=l?(7|9t1W-xWMXPfw4^=ku7RNq2WQ`FtKt)A%AGDt}DVRF2~i1OZAZG)+S( zRURa&!>ad`Qs}xKBC9;Bzm`&B+cv)Mqm;t)JksejGcz+7)m1zdFieYQI9@!GI_Q8@ zpy_7$hGtSM7I9s-CSF~+Di8jmAcP>F&l3beW8_jQ{9teDQcAL!HKNfDI=lAMJoZL7 zj)M@QCa#o12tgnffs`#L1~TB|8}rP~{h53B?(%qj4NcccB>EW{8R7Wx;~W_sC!2Z9 zXZP>1u~EP>O@BfYUQsK9;y)87I z>Eqwv$oK@d9Yr_F^nn6Ym{UsGxaTFWgzI{s08vgvP16uUL&^Zxb(p{U5eo~SP%ISj ze2;i{oJ4;=6BCmRADP6oVkiW@-#l?E^})Dv=Z@xj7~#COCQWBr7W`D5dD= z=pYu0F)}(va_BI(7jE$WZ{KBcagkD~glU>25($#Y6p4WpH~;l9ug?6NZ+`0}-7h7c zYm{;B+`03*u3NEKj9f0qty{MUf`DSNNG6k^P$=NKE{Q~IAddD93Gow=GCur z=+M{bIgmutYP%S;DHfGVXzc9lTwh*ZzP`4$_EXn&xw-HuTiYeJceW`O3oKl}#{0j! z$nx?szV9@cw`>xG3K z$03(p4{=C*5f>i_(7iwl?6 zIs2Uy0Ebdhdb`Xzo{FFd&9CQfE^f4lyzcg!uOHxzsW@&)vXa?F06m>yx<|QEsH>}R zHzb^&E}+ z(WAsVqFlWA9-W3sw=%V@!7fQIY9c6o(VQPAsvGH*R zQYoU52%hKR2kqPJh#kQXd~DlhYHAuNmuS;8!*4amamZ$~WHK3i-w!2N1wsg7(Q
  • r3*;LI`VsBp?WcR&kj!9owm5OT}8SR!glgV;yZB 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 s@;1*edjJ3c diff --git a/ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.global.png b/ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.global.png deleted file mode 100644 index cb0f0459609f5a9d1c1aba47d4b0badefe49de75..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1185 zcwPaa1YY}zP)1zY`LG(|ki@AA>7^BIKB`2O(x8HnIOT6Bf&_Z2=oL=nFX0Xd zDuj?gAyk~&LzI@5R8U$#G&m@!?X8_O-i>!>hJ#}#uAMZk>hN5=o}GQ4_v4wFcLdw$ z>FKe)@1vBWySp3T_mNW4N{H%%QpyHFfYusoEmBIXwUtStHmx>ht;KPiI%Cy$yZ;+w zXlrXDj$^E~L{Y?p2M?H-n82-hu}$DAk0)$AdnCKy0LFrJRAoRaip3&f819hQJhzp} zt%48&-}lj4H%4xZCDsRHH^z|5uF}!b$&s#?XdZhbf*?Q$u|saHMF@d57H!O)A8Mny zbz_0~`5(D|{~iz5R*{ZFDmB2+&=8Z8lbjwNC6|53pMTuv(W3&MQk*z>f}`nI=Zf=f$mj7mBV}mG; zNpyB{q^pa;!Q(uByvg9;tGqjXk)prG%*;$9d8up(xAcM1*Wg$jabw{+-+%Wl?Hviu zpMQhl(K94_`VeAg+5YsyH%w1YHww-eOT16o_l0ygJNYK3N5^Pu>%eg<=CuWEy-j0G zW6jG^nJ|pN0-_>BDJ4QkjM0Q)z{0hwEG_*)u}~z6Ba+=oQUe2wjg52S^f<~(U=hS| zbKzF^2lwvXyYB4l?CAXbJY!>HOifL(va*7;md?&j5{U#u!y}}RpW?Tr8(jJFGw$5E zL%Cc=DMc!kBAq@)>gX|U{(Osb6TkA-+f#JEoO)`a+{>3Q&pM9dB@zkp`8>C8-$rXq zu~;OV%~B{72*Z$6DplJYlF1|^BO{y|8E4|$>zq9K8a@4Kq}-{Z-ehAohx5`K_-(Sj$_8h$9d|31ML5E1dCjW_P+jCgh(i&aF{WN{uIp}hECRR1OHBw--#S-4a+JWetygE-{lv4GlS`Y-}ayhcuEO8vy-A=1$Hn#iby8G7{gX_9z zt%;%tr4;My>$UM3c^HNi3I%ex9LvkggkgwMYG3l|^Iqgy>l(S%nnWT&6h(w#h}L?i zhwJO>v%c@+c^*L!(B9ro9LEPtWOFpj(r)|*ubdR$9Jm@!00000NkvXXu0mjf0~F3KmHHX(XeU-j}yJ_$2A-}xD+_!1cSFiBid+#zc zGedK8Gmg_hF1Nt)@-oI4dU|>Q*t)fsw~qb>04ZgdTnUYmg5t{h>brZlA%s8(fx&<= zXl;1*g;%+jp5>iC{gID8`jC5fjW9Mg#{ECuO`;`h{u~~Z*Qls ze~?%_K}%crhPhL&57yMwly&Ubv7O`N=5oCM z_doOD2Pc@CJkQF?3ZCbol%ln@m1HtW|6PNOjs1erhaN$x8+6?O>+s>j$COe|G#X`Y zZjLi&&T#zraU91Xm&*ar)!j{FV$-e?_J4eG@?%n|6c;Z{b9Ul1(_emx)|yBp!j2s~ zc;e~(JowX}(cV2!)A`M&YZ;Y~Uvc&1>Pq9>Z#SevD3b2$!NqDN?rC!7wkW$d!2e#3eMGvXm@T2<#XHo)71%a-aa8e2^D^UK|uN&(oe{Fafr37er``t$R6N1T$7SV`d-<}m{ z_7M^+YaQj~mC8~QAz=HK`WKf5TcTt@e&l(V=iZ3$(vwBf8OhLHhV!sGq}2_FF{Vb? zr9=woZmNGuIZB{bHxLCDl+j`Oa32l!9Ur zw2|z&&!<{ECHbYQ@Ab*0z_uh(!J%QVZt{3Upp@kIZ|8`bIfjP9?Qb4k;;}~q-%umr zqzuMdDS_64iA?>qdnjobY-{56XEK!XUvu`eaQn;8!p^R)ASnrIN{Ad*Ln9@YgjaUm z%5Fw5+|k1DV=Z-AYpufxXIa+jRFf1-@aBn|Zw77!Kk3pOx;Icp+8YQ=Y`0nl$8o+0Y`S diff --git a/ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.template.png b/ROX-Filer/ROX/MIME/application-vnd.sun.xml.writer.template.png deleted file mode 100644 index f3d2c0cea7eb8ad61cde1f266684994be75daea8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2656 zcwPZu3ZM0fP)T02j8_ybwDf5=%}?Y#g4Sq zsZRf>(`l!Fbf&d4edt&V!=ME%MJga_4IqL#1cZbHLY{0MyGb^ieeXH_V~H3@7IfP0 z%$eDHf9IV0z2D#O{C>Z?f@$FKcvLVL#A31FcDo4%gJ_yI-Sqzn#B>IW#iF9oDCu+> zr4*W`p_Ixj66cpq+*3-S>-wZUCTw55mQrH1T1ll+D5XdylXP}=vUu@gjA>a4fu`vo z^y#Kt5>vgY4oC%>ZUI0FgVE7ZVzJotWB}B;h5t|Jnno}fB%MxYS4K)jI(>O;l!90+ zLM$4^<<3X{8u1m4MiD|xPev()Qi@bsX5A<>I?TSNk7#Rar?0PvvCt?5g+-M3N~o=^ zrLL}y((+0=J5Dh)G(;pC#bLMO^ZD==72|L?ky2usW_CA81*uE;$?rc)RqafQOUj9i zhY1Y&@t^Hu=gu8;cXyMQmxpOu357-(A0J04MR|ES02LLLJhS0B05na@PDU3JT@%C; z)2mZfISU~KLI@NJltN0y0}nmUfWL>$oBqc8@9$;a`~@suzMLx;Ey3+6L@CgOz_eOv zJJF0%>e5F$9Fs)j>8$Ep3Ik`mDDqWIYyZ!lfAa9d4`){fAdyUx%EBc$ z5Rb<(ECx=ei{j#9s;cX7INf-P%Cg4ZM1H!6OiN3P@xlu)%-yqR4+|D7V8x0Rl$2HC zbUHCjld7sJ%Bt%b3x(MA&Q|umx0{v|$4Mj-B$G*WUB~P7Qdn3>bxj@1m*2|b>uy2U zFZtdVlUciV?F+iDn|8aMKp?=8BS+Y{aU-T_5(NRs><$N4 zUbUDTZn%LZ*Dk~EDnw`+ro}{|WmRS(Q(r_T5{Vq{>FGJ__xpbmi^cftXe$TyHPPPQ zPRFS>jy8Wz+sTtiDapynp`oFHyYF4ewb$Q7aarw@54%))n836FY?`KuL?ZZy;|!0* z0T>Am(ERyf_J8;;dv@>Q?t52q*LPM@SvMzBI=&%VK7Ef>t5#(X;NV!2!I9XP*SUFx zEM0aRjq|VKmOCG$x^@;Ww+E>}US_7A3e&pjtB?v(Q#{1(^3t%t3rubQrpR6>l_GhW z{=N`_NQ@Kx!_(S}a&62ibWgfBWi_j8xKR^k0k6GviuXSaFdiO9re&s#U*^D=U*FR^Jnen=bwY2loEgtLdYxE{ZOOm$Ie;Flf`>?{EOed<-lI#qeT0J z-O<@-E+@JsCN)=6Va@C?x+b{&x)RpkJR7%ta@O=}DL!vIh@ns3#~^c}wD-1eQ8(Y; zRIHbEJUr4cb6L)upVHN=a2|YIvl4QcplO2YDzGSt8cPz3 z3p5QZhGO9rf+Ot$L(e$o%K#QaNI>5B;?aWHkAG`*Ylr0rr}~l=B_4&kriPGuh#fhS z_!*5EM?Ryw$BVsE!)mimOX!KladcgPgx7c2sCElZbQsuk6f2e{ATN#3z%VXW27tSt zY+ST&FVD7~4HwdVP?U_f5!UO8SI;6YOz0kEU-uC1x&_?hIzdfQIfliYl8n`&p=%j3 z>sQBka9s|M-V?_^q)}g^I8LTwPbf2?&X;8TJ-A#sc$VK}6HT6*Ijk*%*eC^&Qz)a9 z#8ov^NBXFjZ}Z$8Z?XN@v*hPhU>KH*$e6l7Kc||e2{t?ur>aB}iz^IG10+Il?)MbR zLp`mUElpJ*K2nIO;~!mLR%-`PrjvV-0(MPcay>DlARY&)G?reG=6tf(h=eDUnZ`{WLxW?v4kE)HG5h|lZCvv}1@m5-!LC;= z_{>AdSb|eyc|=2goY4T^tNJr>*W2`^R`JQn$8b8m=tgEcXO2MEHU9E?2)hbUUq4y7 zA8iP8$87?OF*$&BfB{dHxw)*qrpL4Bu8t4@*w@=Ph-9sltk1d3Gg44f$9()EUE4e*!EHje;h>>@D>IzT%ei-!exajKn{^to6pi@IT3d!)pLAV$>irSDS)Mv z7}2HktyER&j(4{*pGro`D{%K8r>S)5AhrwHB#a2}Y^gt+wWDpW3 zA~@w4AefI(4NjF`2v+xX_ zX44nzLHHR&5Hc(jClW*lqF6nJXf8+QE3!`_6EHYBAFo+}Ef(PRI>quO+2bU0)HBNH zx{k$S!O*4FsSieCp*xpYr8^hb8*ihCp{i%oH@A-QSR6}N3`_c5ay^X_L~jkgD|EsgNnYQ6hPt`~4EFa= z`nv?keB2ub>2&(bMn0KL5{tz$ww>**ALlvk+v_jg!;%UN8 zJ5Qe7%ho_AP0RfJ_E{f`Zuek{aa2+xm2xtp#>QZKfQH-NAQ(y@#2Zr<(Mz=+LbI9{ zYjIKCJNK_yyR52aH9|OpfBd^}N=;eHe37SHKWTcoyJaVE6d1T>v3KE?S8CRjG^Cb5 zB!{sIMQHZW>b3v=VAHm?w}Hbz4={fDj>9kCZhC&B=yE^s0c}8UcW<@M3la)Mk&=Lr5+y?77%oH+LW;x*h;rbX zOBC@3L<&l79C9HNL5fTw*~G>QW-%U*mzlArXP>U#x7sU*?&_(TX`2JdAx|n*)$6YJ zKK1+l-tYZ>B>-fzS+7>Bp(qOJbedYNhA4{sFPmjq!oz--0ov_0wr%4$4xZ;BiXxup z0U!wb&-;Cz=OIbbfr0$rg7>cL5(|v$(pG4T5=| zhiRJBYBegA3ejkiXTJNhpKorhO1E!bzU+B!8E^n^cpS9YxJd*-I5Oek|BVCm-NA93 z(HPBUi^ZGE{Pd+?5(*{$h#)(yX5*i`J9mHQ*v8j@4p@LA`U44qfFKBnqByeF;l2kQ zk|Z5@&UIY?bX}*}Y+_j!_wH|lIKlHj`T-N!WY{!~SSCC9yrP7D2s{F0fDj?1MF~YB(Gz;VH4i9& z4cG_3#z6!v_aHf4*TpalJkO)w?^CT-(RF>)SJ4_QF70vd>;iaDF7MFm=}1xt7acq= zJ+xR4r~@7O@FWjwKAht?qwu2ZI{khhUDv5pDx<}-FR91YPKS760##MGb9ar6%^ezz z4vH*exvtacHYFepBo0U!^s#Z4@_om)ZA{a|bzS=XKANUsSr)BU>%d|OxP?nz-=kV>050)(jPpGgIVVdSB za0Z<|cx{>{w{Gtu2m;AOn6JKG;r{(?Ov4}=38U*>uU@b0*|ybUuo_JUKIR??u>M&T zMJ&sr+wIcnbm;f{wA*cT-N3ROL~#)76h%H@-JrGly2Jf)opWcugRa}$xw}E5(ZY2d z!r>@8+ht4BHkKKLiT=>X%n?|y`Le=btJ>Juz%)%9$HB5}?%v&DcejZk2+YqHc;t}@ zLZPE@w(YR9+a?l8Ff%>D^~E)oS2pSQJ7m%cI-NQj>$lb%+o}(tI>W;NoUu{{BfDW3 zBdCpy8k*MP*=J7>3MqW?#eI^=7}03>NT}JZH2LEC7H6J%oKDZ+&hk3C-X|W55eduO z{Q6qAUfV7Qfa*YNXg&8x3UOG@csve3v)Sa@wX2*zKSv@FMNwp;(Ga?B9SE}i=Dxk# zMp44#b1AmAHP+U5@Ens+NMdKFOuN0i?z;Bw&{{2^0d$AHb`b1v$WRo8NF;(R%Ve_? zy!he^WHL!4Ny0Q;dOeeF*FY2{Bx(NuSX*oJ`1~||-Q-_aZqlmPiA6(1BOx}*i}ZUf z-&#$e0%*f~3-HD!U4A5&BnerThkzjpg)Fix<2WAc>l(AOx#7J#f)WIQ-MtR?%MA+o zG+$o7%huL5wq+2DMOa^72Colz`p}>1L$HP~BMjokC^ZRgFTRwqSd4Huj4aDYl7#2M z_I90kJi^>ufm|*{qtOEdBuT>c;PdNcPM(;h)6=>3`5k)Q7V&rp$L(V1dmKA9Lq4BR z4nedbm~X9puyNT1_~Bq6r*Dx~tB)v396MGZ6jGU*%F^qZ^m-`^RcnVrp3n27TI6Iq^r;WRf^ zu9KgNFf)@S9v7);cPN#nNvG3fG8s;sIHA7w+G{^qSXjuhpRgVT3r7B+#e#ciEEXGr zh3NGRG_6ge(IuITl1M}c`PSN9+K8mp7f8kCV-2DHe+? zEG!h>c;k(irlzJQ0hPf%2?5d(*kK?+7&x_U+eD*LaybFRuyGuhSZuH;EX!nd^-Izj zgOg9rBY5!K56^P>4@=Dd^-o+6MVTngkV>VWG$>nk+lS!tgrZO+T{PM3}ef8Dz4ALHHtdIF{!87a^C!tX2 zK$I6n5nZn{HPm|9NBvn=Q zK(#;2@6Jw4OuX{gV~=gh0J1EP%B^6%co^EZnyUICgJHkQ#zvD=O6Bt9KXd8Q8dt77 z%G}&ZW@o3#X0uF9O;Ics$!4>J!(l{G#Bm(j?Y6tMwblOYv(Hv8T)6P*#fule(lkvP zjqZmCKPwG>0yw-%d%YgXWHRu!4!xei;^KR}_ue%m>3f_%{|Jdhg2~BA3WWlNLV;8& zMI;izbzSQ9I?Kz;TUW1My>;o*rNs|E_~4e~I4uTSR8xjQap9L;zR!)b7z{EFUDvTJ zi*Ps$K&R8=&Yh3=*Viu~?*3Dls`Zi71L}Zf-#tNcHpl2g&LGzgn#_Jw1&q%OnyB*4M+l@WL*MT)ldg8#iw7?z`_|S=NUP_DLV8#vmWl@iSPz>gjg7R4Ns0+a6m-1{a87 z7+99Y{QNv;&z@suW|m5&!sg~CnM{UECPO3=q0wk??b%)M1Eb@X*3#Wnnt-?M%Q%|MR_2Y4_7XiF${xKr%o|BIf?7Kn5Id!T4i;0m3#N@ zvA4H}D2k*~DU!(~ilX>x++=_Ac8<&ikjv$~TCIkvs`UGP!r?HsZ65(U+&s@Colf)m z>#y_5E3Z&4m-+C+5Bc=dPgz`C#5B#ZF9l%RwnX6T&RDQ-(F8y}bLPzKnKNh3t*opR zZr!@&RjbuD1K+6*&rSAAvyoiiH1M}=0)w(X1xx}F202!ZK~~ylKiB%^?-2h*Fn=6* m2q-bIiZML94|(qYul)yE<<7p1lt(!L0000k?RMnlwKli?Rua>T@H+q4F?uLk9(M(2-#-q_uGG_+kWHNeU zJmZHNx%>IfDlkyzK@l^2N(g8fCsohvD}>UXBSX_F1Ifn z^s7ReWxz>V>(!<4&ChgVp;ZejjYzb6=Mz&Ny;ZL3~oLSvY|ydp@PiPtQc5BwQ8 z0HlCCV1F6(m%)Akyn4Yx;5Fdz z7eRj>Yz5K>1c5WO)^C(%%MUml+_#17P=fpCU568^BNmGj3RmG5f>6vP?AlDb@<-%T zhtZzGbzMe=hp8VonVR}$S|?7TuyZY+biTj|tyLsPf;eb8u6g9=z}U>X|08#6{EK|$JsxA>|cRSO0hOv zhAtcnYXWC#t>1+qpa4WUcyI^1yEgLZO+O_(x{12_YC=|otg=xaNU89P9Hwa#stRD` z1yioM3EOta?%##Ias?wFZzNIO$hhxbK~-}Lsh-``)-=&Pc?y%J&cWXG9$kN0%7k%Y z_73GS2{QGXg}0VtdI(4#4J&~kYONmwKyPE~2kYq_F0%TeoAJfl5uqqD62!@B450~B z2~3}j-yGrNy)As4`w23$gY(Bf$VuP7h4fpm(wcM_)!0T-W%zi6 zg}zJxQ# z%c3cvR>q8JWy{;YCqKBIf+KN-feP9*);Mh1*2t6ZT)^axYU<)$7*WNeoiq8nhV6{+ z?xyCiE~LHbL_R&ZooKuTUtyT!_791S8-r2~BSZa+s9Hu(Zy}=`R&PGQzb}6aU=#36 zId=kp-#8{-`zaOdMy)e1U?wOe254$)r{m1aIFywPA3Q`XG)!H@Sc6w6Y=I&wD!nllJpJiBbn;OO%+M*-+^eK&72$WValuvDID0w z#uZNxu`Di`HHlYN?OYBrV_9am=Xnm0ITkhqbZ9-Y3J#MU$f6wwXC#5PGfbL#Dl@)y z4OVkAuPp82{mnVjBbsnXV~9Mt+z_cuKZ7F~CfQx|i6{aC*X}3LzlTlR*CC27&EKBO zcNV?Isppz#c+=OpJU5VL1xj#i~ zwHCU_4cZ99#pjRW7E*Wx58?CSIt5~5CIfsQe8@q74#0sMv!&nuvuBAzXX)&)rSIb@1? z{`%JE76U5{!`NR@R$h74+*w<CWd=c_@qEckitTm0gx^l1Lb*)B)W031GJs; zZDwA0C1*_S;RJIdn|B2{kWjd;L%{FQ`$>YZ=P>))>$q&;a;DF^h{5%5uz%%q*qL4; zRTf~PwFg2$(Ib~q7y(UmR1Kq~!Fi{RoAE;D4k3itQCX>`X{|SuxCbZS%*lZn#h#qnS`VDgquba9okFAc4`0KfMzqd{)i=zdKm3K}QPte| zz-!M*Dc?NW1B8G$a8CcGN1v$^3UTs0;1H?aJt!}aG<>L{0aDnHDw5Q;QX z6^ru8@&~!?zNdJ7TR$q-&-TtI@fk4;sqmCTCR@aHiYNhoUj`{8t`6fD9#$lRI&gp` zD>l*5*2MMqzr2Fd@|ytmR}!pZSb~%cbR+QfEzjL_&$!cP5p6pU*G|&cvl9awsR9To z0fAji6Nrq)AM|th%>~@?+co^#6HoKTo%8so$5#P4w!XOt1BDTdQpgr4B$Egy3(_QD zg7#T_x??9xUfRfnjwa^+ZcQh!7D!4d`;<}xK;O}&t7659lw418@r!HwW`=vu=~};* zrj|I>%@Z;FVUo!qw9cXh_#-i-&*H%Ack$@b54myP_n16m7Jq#DSM+RL$I0KkmWHoQ zrhC($kqS&tA!Lz514&Q@dq3&n@ntI+%s52DRs83&wSahDO4$z_)>tN&FGdBh%~e!eN{+lvG3X2x%07&oO?zGb}qC@mV?U5QdbvFs*eka*`4N<-x%iTAknSI1$C~Br-v245OdLhREjgfWU7`{PAkCnKVmooWtBl-eT(2^V#`dH*ojTwMb=h`owWap~=}r zMiK=!cMnk>w;-j=D5ZudxvmUgOaA9o0rsdE-&`JR{4@$GjuEP-^@J(Z$rMX}^E;OR z`sducbOUEkn?NWExx7ctlRyBUX%RGiR8>V7GSb|8)l9(Rw#PqU`uG+)#*ZSM&y#mN zd{qX%kinU!wE%do>)IUgvK2q;9&2R&H@H{C3RdH42VZRiuAL*08sPkIO+}jU%bPDI zUe`=2aS#jxGZaIs0wx~8fFD~)V!RmH!208Ty3pl*t3AS(e zkYBCRyt!=geU#!qQ&ui5gh-YXsRH>~J>@GNAAJ$DX_{uxbzRG{tdMQn5ugFMSs#9B z&Vu>R@RJ8#{252GI?a)3PnW^-9GPyHBQyB_I+**s|4Bfars-EonObX0YaIllTI(uG rst3x07bvNhF87ty>9|f0E7yMmF#_ryu1zT>00000NkvXXu0mjfjK)Wv diff --git a/ROX-Filer/ROX/MIME/application-x-bzip.png b/ROX-Filer/ROX/MIME/application-x-bzip.png deleted file mode 100644 index f63423f9bb6e279cf6e4efc30af915f78476f071..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 4328 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 diff --git a/ROX-Filer/ROX/MIME/application-x-core.png b/ROX-Filer/ROX/MIME/application-x-core.png deleted file mode 100644 index 48b1635d724ca8695feb08362d623e7dfa53f3cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2471 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 diff --git a/ROX-Filer/ROX/MIME/application-x-deb.png b/ROX-Filer/ROX/MIME/application-x-deb.png deleted file mode 100644 index c7616ae134dbfeb7631ec34233db3191f8794e8f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3262 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 diff --git a/ROX-Filer/ROX/MIME/application-x-dia-diagram.png b/ROX-Filer/ROX/MIME/application-x-dia-diagram.png deleted file mode 100644 index 944ee0188e5dc2387501ff8ba37111f89f4666d5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2094 zcwPZ62+{Y6P)0TIPgP>zTQq1-?S zSvjBxh$0MJAb^0&?gb)*0vm|3C}9`Npa`v42sT1IY{q!(anE#jRp&suX^#hcHqzeq zyHrq35C=?2)s>%;3j^ijZjq3p89?S*0bX{NGXw0B7~q+Dls-TM!8&`5mW#yd_vcC`TXkV z^!={y{j6({|5u(38#d6`*oa{mNGSsV)vYf+FwgU_ZJR=&K%r1T2vHxfu(_m^NKZmO zG^+t#eEWjY(NU7gB)T4)Cop+6K;IpN5Gaa*=XqF`g=JYme^y|=FDZ)hL8qUboW!lJ9qAo%jGallLadl5RFFBH0^_tTHV)m9mjDHLZE3{aG=@D zI0abPB%Pg|B^7KQ)Pft$|ix)2@5{XQS<(P%WtLFQi$kbH2C*UNf{HM9k5o12^2vu6+a ze4djhPtw=d$MfgU*}HcyKwZfdAc$Kej4z@-W?f4yYpv;KKUiDnpZHg(%a_r0 z{au1|%f!b1!)W?rcyuO6AG(zxa_=}}$$7Z0%cq}y%CTd|Sh8fvv;&8D*z8dmE-}^Q z@W6osG&D32kH`7=n?DkLsqoho2QdtTOeTY-X{3g}V$s)s;MOO<;@p=5*tX4)BS$C} zi$SqAO_OvwT~|2@fQ3O-mlwk@NTpIVJFjUT`WxT=WD8lhKqiqUp=xNVhCSz}5J|G| z`E@?~Y!8`ChD0Jke}6wCBO?H$(`i~-TEd5(5#cl+t2U*kX~g4knjd_Lg2I9)U$EfG z7w;;-|Gw`5NROQSj>hs!5+8j;I-Tatn>SdNg{rD_b#>9y)D-w!UBJTBx>{rY_}I^X z%d?;Tn&IJLDwPV+Xf!A@Qc5b73XbCtkH={=O&rJJ{Q2_;A(%gZKC4%+CX>lv7>0l7 z8I##GQ~E(r%^*}&C7n)V7zVEEPNP2lI>RtfRh8b}ULHMqM0I$|!Mk$P-`~%P6DPQJ>lSO*u4VJ)&E#@9+S=OCb)C`C z(V6f}2ln#iODfpEhH08LxjsNLnPlF)dF9U~bX`Z&G)&VZnM{(&WP;N4z0*ZUM+Zlb9_87yXG~5`;y4aBZ{B3bjveIl`5^OG zOL!xn6zaN8JRT2tm`^anK3o?te{n1pqoJVzUDw&SZy(E-FX!^*%k190J8<4w1wNdV zeQo(*s+ojOH0#!wf9;P(qe0&3?(XL7*|W5?v=EEMNTpI!ZsK8$Rcp@g`_JL=x@nKk z9Q?EpiA314WeW!n9%Rj$HDodwbX^a$;nz<8f)Q?2RYg&hfN1)_!nL^W%SiZR{-XBw zcD8QaN@r&$hGC%VdJw6#G*#XDz@(JewjDhCX0Gd}ij)$|vM7~G3=a?Ex-L>mmMvR` zZQG2GkK;JbG&9ZyOxJaU5W!lXO#1iDS%H*D_wHkGmh`NBN=U Yzaq_eEl6wNmjD0&07*qoM6N<$f+^; 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 diff --git a/ROX-Filer/ROX/MIME/application-x-font-afm.png b/ROX-Filer/ROX/MIME/application-x-font-afm.png deleted file mode 100644 index 17743d59df4af732b3feefc7fb8fd850ee304324..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1694 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 Ef~;s_X#fBK diff --git a/ROX-Filer/ROX/MIME/application-x-font-pcf.png b/ROX-Filer/ROX/MIME/application-x-font-pcf.png deleted file mode 100644 index 4c4b594fd0f34157a46326676cc46b799195fc9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1294 zcwPYx1@ZccP)E1Q@l1Q7xr0+Jk-#8Zfu5QLCh#G3}A;8DSY2lXG& zi>M@cO~9ie1O&lTf?gIu4M`BQ?yfN`&CJ5sz1{W0Lr+zAb@yyQu%PH4RbAir{k~WA zUW=urC7Y%xNs_R*xJa6&NGbV0n@EzxW?6>T8fz_5O02cjpb&ndduOdBilSfMF5Y*jkI$8e@zHn+Mtk>boz?5@QU;7_`<*r&A`A33;9q zH!agz10bdB05`#mF?$-(1hv*u6a{ITlBOwI>zZlb0z!yjv8QkS0AGJar@e8R$ty4W zZ=H*@)_#pF%gC|}Aq26t79j*e2p>T1*>&GGHsRi{aPAx!Q}tW7U}Mt*x%thtqA2oG z4+euuUN_hVZQoO9SX_h?Cu-0;cc9Qg04k-BQhIr%lzwd~WewT^XfXyV5P+hnL0xY& zYb|jcQ|T7E{I%12summ$ z?%Ld^!}a^{$8T`@G(3M0_U{jwo;(TTu@9=@`h9ZxK^;cie%Ula2mwY`5qs=d4Yam~ zy>=~B<-!Hnw+~Fcb*#0$@zOcjn-i_IP?TZt6a^@SICX|{cbDBPL!3HOvoFekRhy-? zwx4P6fr@5}HT*aO@CF7!6()l{*^W_dlyX z98X~15*S1B;3uB>unMNhCzk_vb>wve4mkeeL&VXe)!=~xp}eCJ@DIt&E493%6sA@c41f_VD2v&=}a+sf<}!sSc3M&AAC)Hmzv- z0`PkhrQp#cSo;NX0YwBVsk#{gPk~&h`tN_j_I5|s-hJ9EL%g5cethv5;~U@f)nZ^Y?u9`s58JwIg< zHG@8RXT?^Zw0%B3a_L<^Z~dbW>T1NvrM1R>_bsGbu)TpeemqQP#(=Dk%VxAUugJER$s!)9I9Zt1qFH3M1Hk=-zE@&1Gq=<*!4F zn1lO?;~1?qWm%FW3DcdOie(%V=XuU}JZ5`)oAvc|@;oO=lKG(Y|5P=vT5AugwPs;q zfwC;g^St`MSzcbYX__(^49K#K(P-pr*8kf2lxntr0nle)_@L`Hng9R*07*qoM6N<$ Ef~;s_X#fBK diff --git a/ROX-Filer/ROX/MIME/application-x-font-speedo.png b/ROX-Filer/ROX/MIME/application-x-font-speedo.png deleted file mode 100644 index cc1f3e4adae1af235d6df2f9f2e5fd51d4801bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1927 zcwPaA2YC32P)$Lgf%48lV+aG)>%uZJg#FJGR%CU5|IYmzmv}GsB0?jMuvx zBO&ohqdB*EpZD^dbKa3UIyyYVFwiuOcs!0_7|62B|5GGQ(>&8O5kla39H$SR|LrVObVxtz|+80AyKi0ImgdU3WzzYC%2Eqf)707zT!6AcR=* zw3z})k{XoNuWJVGr$`79=rBza(=?GJ3DxsFBuPS&q<}zv-+$@>n*sTczrI$Nq9{SA zbzQH9*PpBht#3cb)7l5XaU5h>4#F$Ta-dt53Rn%0!Ps;Xk!HbMv#MF|-1dEOF{9weDehM}Y1qJ8xv^laP5?tz!+ecI(_ z@((1FN&5Ty8@%^JDuh4?fh@}bsO!4Rb6W4ABuSh+d6L~v4>I_*W8_L;mZ4-iT>kL) zOwY_M`=*wFj^hO3^tYl9yez!+vbea&dC;pi$xE+sJx1$?h*29v&v|tRk^-6O;2YuIn+kP$rkR0ceY_V}7AX zsZ?6gt7e9%^%IgLVObWJk~dkM*pJCt$~IKWC9Yoj8-05Z0}zU|Gd?;^p-{l{JPgBN zVrqi7PrbumKRCx^ZW7`inx*o`U%pEu6b*pYdP@M#pFhvo9PEFt2O|$cK+c$E;`YDU zy88$Kk+#)X6&KsKNhXuLb^0W?j5~Di-@w4jhsmpXa^?cFS7v$b#Os{+{)s?;1A7aF z0vA6SrJ}4O5>JpTfd^ce!iBMq+4$^czVX~Qv9KwWO)9P+ zq=YGSm-x*aKVF8R`e&k_%iFhabNObDMBnEyZH2N8R>fh~-opBA9fbAjhpuq2DuUmA ze2Rf@53qgvemYBE-_B)`Y`A5n=d#S?+jwH_790Vt2eKrw@39yi z?HaL2m3yhNOW4sAeXs0bL(gW$O9tsm7Sk+H%r6jY??i72G5^^#Pi)?@3{&2sV0_ejr= zIQk5V4EMJrWwXHD&)#Qx@(x{FUgDvM#iD+L zUAwkY(qtB$5|zBg$gloRPMV?f&>9q_sycfo&8qe|PQ_^qZ#J9d&A0!=#vO<0>S!TX ztXlTZ;UC~;{=uI9U8Kz{lQT~t^gB3uijEDBVdCQAG4}p7CP!|t`l}D2w}jF35UwM5 zxUCCSRy&0t2r3^*HyG$jkcX}TBEA~$c@j_(YC6gx(s^1JvB^QVt}oQ5CyY3cKwqx9C`6s zqR}YfaF{~}`*BjkOy9jgSPO%!;!@31Hadx^HzU zokx_Hav2awmSt?)=Gf4y{Pfpv@S#0Q>fSYUFURKxcC(>-eNdLh<8cND2RU%y0B@ar zhslXqS|6=?wfCt3Tp?JT&5$k45tiG?-c6&%6G)O2+^GS3B}roc{=M{`Jd(N)5sR_>m=%IN8jP<5Gd*8+PI+j!yN0Gg&z zdk9Ibt*u@rlfiKurlzLQbv+2DZ%{MI<#K%Qhp%zVou~>|sy#AwQx$@tBI-1?5uInQE z#gh+QPw#rbT4l`uYeD_BwP(BQx>X`ck`%XMyFs@pbMK+rylgV)J-aRbKYS_&6pv{W8 z+P4rQ02M+IjYhF;8_Tk)|2LhTot|MB=(>(+nuJ23pl1DF<-e7o{{bl(an~M15F!8o N002ovPDHLkV1l|8tMmW> diff --git a/ROX-Filer/ROX/MIME/application-x-font-ttf.png b/ROX-Filer/ROX/MIME/application-x-font-ttf.png deleted file mode 100644 index 1f6b4821317c1c8b90eff5c4309571e99e418d49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2279 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 diff --git a/ROX-Filer/ROX/MIME/application-x-generic.png b/ROX-Filer/ROX/MIME/application-x-generic.png deleted file mode 100644 index 4067e6e9cbd1e17dec6a96ae6213f39b9c113379..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 948 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 KMNUMnLSTYn3_Vf+ diff --git a/ROX-Filer/ROX/MIME/application-x-gnumeric.png b/ROX-Filer/ROX/MIME/application-x-gnumeric.png deleted file mode 100644 index 3e6a9944b5c9a7041ceaa0d161c846d8be425e4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2417 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 T0(?mF00000NkvXXu0mjfcQn8j diff --git a/ROX-Filer/ROX/MIME/application-x-jar.png b/ROX-Filer/ROX/MIME/application-x-jar.png deleted file mode 100644 index b84b16f7e3bb3085a319d85c61d6ca970fe746bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3172 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 KMNUMnLSTXjC@n_- diff --git a/ROX-Filer/ROX/MIME/application-x-java-archive.png b/ROX-Filer/ROX/MIME/application-x-java-archive.png deleted file mode 120000 index e4f66edb..00000000 --- a/ROX-Filer/ROX/MIME/application-x-java-archive.png +++ /dev/null @@ -1 +0,0 @@ -application-x-jar.png \ No newline at end of file diff --git a/ROX-Filer/ROX/MIME/application-x-java.png b/ROX-Filer/ROX/MIME/application-x-java.png deleted file mode 100644 index 21df85c7c16bbcd753e8096fcd1445c418ba0f2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 4034 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 diff --git a/ROX-Filer/ROX/MIME/application-x-lyx.png b/ROX-Filer/ROX/MIME/application-x-lyx.png deleted file mode 100644 index 8beec50114e421ca44cc1d8179d8088984fdcc5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3970 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 diff --git a/ROX-Filer/ROX/MIME/application-x-object.png b/ROX-Filer/ROX/MIME/application-x-object.png deleted file mode 100644 index e64042adf3829a0c718bab525ea089fadff62d86..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3541 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 P00000NkvXXu0mjf5Lwob diff --git a/ROX-Filer/ROX/MIME/application-x-perl.png b/ROX-Filer/ROX/MIME/application-x-perl.png deleted file mode 100644 index a45b883d144d41ab3f0b4aee3e428a9a22502fde..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 4308 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 T3MjB=00000NkvXXu0mjfy&9B0 diff --git a/ROX-Filer/ROX/MIME/application-x-shellscript.png b/ROX-Filer/ROX/MIME/application-x-shellscript.png deleted file mode 100644 index 0ffbf78e015ddc3ac81407fb43068a23b7a792c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2291 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 D7hI@P diff --git a/ROX-Filer/ROX/MIME/application-x-trash.png b/ROX-Filer/ROX/MIME/application-x-trash.png deleted file mode 100644 index 91d07aa7a11be7d50c34d4c6f0ce2909cc1d7f13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2974 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 P00000NkvXXu0mjfVkV8* diff --git a/ROX-Filer/ROX/MIME/application-xml.png b/ROX-Filer/ROX/MIME/application-xml.png deleted file mode 100644 index 2b776464d6414ce42304785979a79f1ec23ad8e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2286 zcwPbS2od**P)gN+c4K_REQ~t3HE+ zgYw+Db2g4xEGCTg-a$hUt!Jux4XNW1q&7+ zgdh|Ov2fu+_Uvh-zW%AJ{r&y(f!=Z5H)d-n(r%$UKm%U5%^H_B(e^hJKs^cI2aZ0f=#2q7}E>C&RAhlYkYe*8FP zWo2Bvc#+)PTw<{pd3kvRgE@3`Tx0X*&97#34}d^+Hrrl%h3(~4^xuy0;?}3h56$Fm zZrxjgn0MhiLQ`ot>QkG&VK@ zpn-O?tjfY=U*Xa6WwgKB3c!M;kMXH5eBK|*1Xwobn#y1>NLE%BOO`AFps%lwj*hDY z0!xX<Qi2cy!x$Y~ zV`h&KqZh(J2*aK)gmk?(gF81jR|hSnWZAN1w)K{b3=Z*&C%#8Ak>H_E&gY3;JE{NG zZe|qDVmLX-FTYdIaB@&F+}{8p%ttlAFboVs*i4)38}>RAu<7Rm0|~On0$u~%+S*E1 zmY%vBpL?F`A6z6mCx>mnd6{6|Gzy9edFth#190PCm)Y~&^J$p2ae&BmHLJMY z)&?!5q^xYYU6EjNW!YiKt#b#WlQsMeaK6~8RjY}|`_#{%u-Z=vj^wyY9& zz-pkSgo=s^Mn;B}g;sTP@~kC#vC!qnt9t#KaSydRIR>ciFnxNyR;4Ui_2jo0O{Lhi<=Z6g+@bK+B7>rEKAkTXGuKXM?Bu=0h5y(q~hzF0Vx04CZ?v%gJQV zkWqFR1M6SB)Gx7NLxh_*yX-fbPdhE3-ms_j2$fg71;$^N~o+{MLgc;0q1O_A1I|9OZwhQ>YnRn zHJ$JJRpsjHjdXY4@B=M4dbEYrtE)&P624$n_AMZVg<&QmJw4sNC^72LHy5 zHFS0T+kU6@9xW|Lm^m|~BzgafLV%*8Vv352GXfhAv>UL~Ht6pT9N5pCIUl#jnonCk z>jjxEm)@WF=Vrfox?b~Xy#@6DxfPA}XaPBU_CxmpczhP5l+@JJa^ps)t<&7YY5~2u zQSA-f8Dz4ODe&|!y?_5+9)5VPJ=XHH8>CZ}bRWAvu<3wW=c+pYRza(X>(;F&8tt_= z@fHQ|#`g!(e@{2inwmN~JFnSe?dR5^Lk9_mi}AbBR9jO$$|nt5+tUK;E$xzh``%{m z+)vm#jcKPfRX4_^Gxg&EcK0Kh^0pt)Ok#r;LK2BY=;`TB1Inpfnf9DWb-Y)wwY8fx z_t2PbZf+tHspiU+%eehazd+Gta(90B9@zW#y-jWHCeDvtO}Mg$4$QAQxkb&N;~hRx zH%KR00GBVD%tj&`xp}k8?x)jT6X*x0PfaSgbiH^cnKH%v%a-LHU0vp{mu!HZo*oj3 z1nupA2f#240)fD|oBprl{P_!Xb#>9--*4+aGXLM>9-rU-7dvv&tT{0?IRF3v07*qo IM6N<$f_bQ2r~m)} diff --git a/ROX-Filer/ROX/MIME/application-zip.png b/ROX-Filer/ROX/MIME/application-zip.png deleted file mode 100644 index 6a3a9592ff4f1eee7974695999224b827eae9a76..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3056 zcwPbU3lH>(P)0yf$ufw+ec#yW?%Mq&tLSsOZCPgy4U5=y&izME9vgnoJ#FbA zKmF9%^3VH((UdvQ9I5SDSh&h90B2^Lp&lLibs{U$T7R+puzqwv7JS znWJxoP1BSl?P`77?L#u&-?Afo?mWl@kPTn~vH@)12oMGkAYy>a4MqZDz2KIhr{$qZ z6UOE~@Z~pcyNkD9`k!)Pz%Z99H4=%WrFon(cvR-~q||d6K3e_q{@SL_sFDb6 z{os8;b}d`JlADHrn1DIL93c)!uz>&~n5fJ!Wr|e6)SU(A}j zu(czgx%(*&rz{dH-m8#=Xosm44t2KrT+T`PkK9nPEE|TwIX4U=T2u4dzQb)D-2@8= zae{3S0Aq{>_k>PSw>FLJbC)mlt-t{m_D_+_4<=D=a2i@gp{-Z?U>_^mbDHm(PYjTtvyu=QYXyVKdPxv3#@R90tu8xoO6RVABi z)OOIDW(MYo1Y^vytXM1ts%n~MI2;Z|qQOWw7>NeLp>)0LlZ+P=A_y2?sK60u-7;2$zDt+}zmAxi=V+Xh)y5yFI!+KV+e zw3;!_xh%^DArOoC{r)RgTRF#6rnYSYvN`93N{CQ|DcC5~-Az+m@t)Qs$rzaG+WYPs z$MgiOH}RAS%!oB$}LIAL?nfpbELC=1=;n4+qIo?b~5 zID*#JR#jDFF+2K$2>~K)QnXLZw!JG*{pFH`oS$d>X zCW;Y@c#_KmC`J2dN$NIVmK< z+=yY@>T7ZV7={s#TZ}Of1W^M+%l3GZwTl-jRj?eY+`pgah2_uvrQ+-xZ?3=pN29$1G6<#uhpdqUzYSyH zoH5220{|cdA;g&lMl|4W0V7oP+40O_=^vMD9PAeN7q9zax@$w>!ohCw{GmOc9oaiL z)wOWm^yi+Q`(N{(Xl%S9U>*x~=Zwkv!LR|x4}WYY!gr4toHcTApW6uo0LB<&%sB_k z(sf;r27D@bh1l?Z4mHs}>A@@#Xq;b=tJ$4JOXq;u{?-dmLcHw`H@;j^)^P4*Q(aZb z=1q%!{Y>$D?@XHX^Sp`UvPWlr{84H9wZ?z2k1=2@usBbIbv+Ku<^mBVMZmbbvx`#7 z7%#6p<8=F~{(2!2jqlm}kt&fRhxYm0suAtQEa9a1^zp-^vPSIQUAnzw`~11HHf{Lh z&TU)A{p5jpb7x+ts{C%4BgqUpc$i}gR7V2ggh1BH_=_S=_d&3US#@@&?q%pIj$H@;gE2?a}cY&&xF zaKhA&ojUqmFd<1vu|St5yY;vM7H1&nCdf{os3=448k3UZ_N5O?PxIP((Cr{j(T;Vu z%$oi9i-o_w-Wf`A;M|{1m^tg~C+5w4Y4yuv$Bupf{kNX|&Ei$7UfR5Q^Aoe@UTeL2 z^w`1i4?ogJ#a4GvQnX0aP-GWShaP7l)hLyjjU3Ko!?0aWZ$h^v(aD$qNb;tnb1Y|$ z`q5i&Z}O%Ns{QiHy007jc$3|lrn!@nqY+(IT!83^%zJ+G?9w%_y}4?2QNiSCFRXlV;J}P^ z>(=kuwY#|YAM`UEn z0#_-=EFocL>S17UBN{UFc$&{6i3B4ajYjXwd0@-dlAQZ@@1+yrlWXI)jre`^%t0Y6v~kAk?~qhMV| zaTm2z!Eif-BnA1BloXdFfXU5Rda9S3y5>;&rKU`oT=3zCA68ZU6#%VX{fd#WmM$s$ z>eAQ0`|a-=8X6vb^w9$c4s73EvSjJvRjXbsJ96OfaNfgXc9y(%bWcflYdy$TJkUg~ zZesNCco$*4EZk0wfEDp$qnE|ItZ1iO6(Ye7pIbBHA&TsKM~|HL%gH-;lrCGgJTEVQ z!Gb4UuB7tva!u2=Y}ry&RHP^}V@%W3=H}+=>hu2xBLL`#u(RiDru=HA-W8r-xWZsy zazrIbQ&m|OWl40%lB!ULL`8u~1ZxU)DpZrjd$LB{*u8!GKdP<0xc=>R8#cUMSy_4F z#0g5N$K%P*&tJK6<-%v4_4$0++1WqI9sj>eB2^OrVDFJrFTe6?Y4IDW>4Utf{Ut@! zG)+?#ho-n34yUR(6gnWiKTr%r#-e=dUl%~ZFQx*(pAYVN>gfe5R;=)PFG!N~&_fRu z6&0;r`)0 z&M+X1K|uWOQKR9X%c;{xCrlWhnwm0o>eS)GM-V~=4a)f0xQRF2@xLg?jvqRE_N=O^ yPNz#%)fv-g|Ld$i^66(M_wD=m-%9>J&EEjv?VB}Y+h-438EI6LYDe z-8D9D)}(2g-KGfz!7gl7kb-roOF?Z#K+wt}1!-5)hnp3VmUae}0f)I~|F|=E?wxyQ z0IM5&k{g(Fe&^iZ-<8^0&WLPp_q>Vgb;$8F{XO1*XzaO@!)p5>FMcV(V|5Fvw=&%C?EyzG2JZ2 zuSY54f!Nt0Eml=W8S=Z)Ya7y9UUD~ zh#Mk+!{MO0x%o#6E`*@JzaIcel1NBM;E_ijp}f3|xVSh&A%2t(`1hrxq!1e$%Wb#a z#`^W^S-5av$UP}3DTebcEiH_Wx;c8Z8N1!iwQJWfo6VTbW=@?t#o4oGDJUpV`-B@1 zrW*y7EnBu=GMU)EeLGoMSriu+PYGV~I=J0#hK7bXdGaJ(U0pObHsW@>dEkLLR8>_0 zyaG)3hgi#07+YJs3B5hACP@NG64-1u?!NnO z1_uWj8M(^f;I}xPPKJkvDJv`UZ@kmz3s*u4P*6~S-ELPtOOhOdD=I38jEvOH@7c2l zr_-s-cXxMFTwKi1&=9j{&(_fH-Md$zi;s^-2tj3KB~ejPL_|c;)6>Iiuf2xT>E!FL zzrt)b<8rw;dNhthhYkTmsnMg$h>|3UwQJW3Ns=^=)oK-9uUGe2tyVEUKCXEJa~|RG z1Rkr^Dm)&KxOQz!jE%`pa&od58ygdDw_A*kx^!E1B($b>Ss@hsnQBew9KKS4OLI`Ev>-ADvS_%j% zD=V;AA{A$rSrH1nqM~AmiHXr6#S+ZC`mZl+DGcn~xs&|-{2=F(hk72Mq@;xBo_kio zxH_~x`)r|aZjlPIg+8Z+6DK-+d$K0gNo*@pu#mYG`Osu%4QlN=r)%Yu2ps zg*bsENxbt;iO&L+J_`ti*5PolXU|?GC$zS<^6IOv_(PXFjta_njpy9wdSy@?z?`dlKNRyQV?-pSpWMBa?A@1~!FBxiCEsU`hRQ8a9 z=|zwaT$cs(7?-sjfJJ(GMv%q=w3(S%zSOV9c~euPCg0d>HWl+)i%q0RiynhU7}uKA z&v1C03k}wTEu&V7HVB9iJ~qWLT2xfT(@#Hz)9FMAl)s;Ra+HCAiyGS9yLV%;L~0Zu zNnT%xQH|MbQkr&vefw$@2Jg8i5rFdYa^mCT0qE%H;PuyE4;ga9Kqx>I9UaZ$#ZPFk zTwPsFT3V_`%OxeHtXQ$aFp`v&?PB@zJdJ~wm+vAcCr1aEV zm`o9PJmXYW%5#Sf9l_;t;c_{-D$^ zxfERm2~bm0LuO_MLco$Gf!-oFcNrkC+m|Zu&df|#l(=crCWF8t!e?T+g$rP9!-kE_ zo%?GnmPjN?qO7cpyu4iEXYudk1`w&MUi|NKhszyE&v`aY+& zwwBeaS1C+=@kJlUkGE4;Sg15fUayzV&VR9E$DehKcXoD#%f$Lv9>BIBFE3XYtuiw+ z3@gZ;JIhqsmiHwkB`G)$)cH>vhRf5ZyLDkbIH!d00ksoHv2R}up&+Kuv;mr&oE&Ov zYgxH+CGWpqYgi*`6P)(^n3!l)7?r~20|i2tFAq<61)^;-w6Qx}^3gU+B4nK(TtWw* zbNY1mM8%viI8+$+3ZV))qpYrG+^8(j3NH*xn^41~&5lA-O$IbB&)aNEkR(a7=8q=9 zwCdQeKG!JP1@;Bgi3z(hlhI*XGs*Wif2}aWO#Yb63trvGCMP7+{KG8z050{w(*xY zchKH;EY!tTVB?V^a)IS^I;pFxLkRqLlek>NIGs-R@87S`4i67&oc0%UejYIQsT0h7 zY(BqxaRWra=b!g7_p$kthRe{*tf`Sp ziR9!Y+S@xQEG(d|PS*I$nKMaBN~WWuoq~b_#S(#U93>w7l4oJ6=QxK~42;V+*L`er)XR8m$^ZEYyt#fXQT5qR?c9Ito?SHfS8V>ivH*Haf~T z-+alAKmCzzRen*5Il0djAs7yKK@~bn_Vs@D|H}h<9}q$JHeyo6mD-U%tgoZ9>kKz@ zC>FSQvEQ&t40j_inVO}!`B<3sseQdWIQShKH*N%22MhswEdb}vonzXx+pp^z_i(pn z@^yP!m=b+zqp|Uj|KBfs{eTRifq?-oU%t$(JT6?g!0_;}q3Ld!-wRFhsQ?xt|LnjV z;S=IC|J0x#xZ-Dax{rDDPe1@K^6w-@fbj@bXBNRvX9#>he)=C- WK}+_3=9C}+0000Bi3nxiL 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 Qo&W#<07*qoM6N<$f(|yuZ~y=R diff --git a/ROX-Filer/ROX/MIME/audio-x-generic.png b/ROX-Filer/ROX/MIME/audio-x-generic.png deleted file mode 100644 index 950505c3b99d8a72dd51ac0d526316313230d8f5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2921 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 TQE5-b00000NkvXXu0mjf3hkt^ diff --git a/ROX-Filer/ROX/MIME/audio-x-mod.png b/ROX-Filer/ROX/MIME/audio-x-mod.png deleted file mode 100644 index 3bf70aab93687a8dbdf3dc6f33718c87a7203ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3295 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 Y0iLa~mA9sqs{jB107*qoM6N<$f}8p^aR2}S diff --git a/ROX-Filer/ROX/MIME/image-jpeg.png b/ROX-Filer/ROX/MIME/image-jpeg.png deleted file mode 100644 index 8ee4fd8301893ee7f2b4a0c815cffdad00a0a33e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 7814 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 Y14zp|g08yq#Q*>R07*qoM6N<$g3k95j{pDw diff --git a/ROX-Filer/ROX/MIME/image-x-generic.png b/ROX-Filer/ROX/MIME/image-x-generic.png deleted file mode 100644 index 42b4e7fdac727f0d6485b69b8715f182dab1b335..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 7280 zcwPZ;9FOCPP)00006VoOIv0RI60 z0RN!9r;`8x93@FaK~#9!)p}X4CRdi#9?lRE-*E5Edv9iXEW2y!Za|`ifCo^E;U^*9 z`6D3S_zNHbZ-5#QYD(P{h0CsLmz~ba%sYHTM4Vv{Jh)7y+bxg~0ISlWA? zwc?zOkB^VN_hngXDW+=h|3SnU$8j9TF@z9Q_3-%c@|U0f?3Z8kvWU8VGtL1JATWS~ zIDr4=CL=h2`ETDy0Qk+hee)pVx5oUR3TD2zxcK-D4KYH)wtCyvTn`|bUPxHis6RY90Ns-}HT;_F%^q|t3G2|v-gmQi}wJO97uID?Q83uT9=hK@nHumc?#KN|l^!V`eFFyHv+`JFbCi9POccrzT z|MJBcFQRT{ZA4BE=H~M{@ep9WnBwD7mU@<9xO+GP!7yeON#gG8Ci8rnE8JXNtDW{$ z4D)?G7;Db4t?M$^7> z0muWHJB6@>p5k#nj$;Oh&vv)1AJUGF<#Ds!4hfQDtBbtFt#1HCxSVXi&B2vDgXPV@ zab%A^A9UhGY!+}}5fFsvEt4Z8KdjY&D1uvOCX8t=D;Y3GP)Y0t28w})0@kGhxf3K# zfl>zzfzcR{0$AuQY#433-Jr|4EDH5<9Q(TDZ8R+4G9m0Y)3L4J0TAN#ZrW`kLt)@5 za5TMJRyl(<*>D1LPT0Kl?g0nFAcX2YPNCNt!I6>&ZjOOdBr-82a(6XC<^~RC3@lAC zu@bo$5RnIS3rJ(f6t|7^ydGse>~_}@GGh_}in|=yWFa%oxrw|zDFpyPfSY8$dv$3s z-rv9M*skB1;EUz`+w1#>MaB`BFmuy6^;kQ!-o&Mw1%f0gVCY;O)kMIFfy`mG4oGf^ zfK5w-uCB}hGKrak8I!n4qeSH9Y>+Sj;q`8}=%5IZAt($fm=hCsW)4K43=oih3xEOk z2v0BUgCE?UmQ&0Z{ag}peEOvKu)9p%S~JtCTL_P>yP293P%ubHriw;r z>TMVab_lO2O&fFYDP5e#9P%WumN$2I8l`m|LRh6Po|*01XE=)LRL5Pq=p771E5KP=%7SG;HJS99I2uPq-u>R#6aE!v2z@n zj^_2Z020EEV80FJ?sR^vwaeONf8$8!-58E1)v9NOWlc*nZ{~ojp^|vAd7Zbz6bQNk z2I^JO05~-7V6p3g}h_gW6 znGx1fO&dTmH;3t1x&sn$nau$~WwDiD>Od00A1&cNZ^}a~=BCRnMt3U}1tTNk%Tohg54BM$LXP$jEIMjzYOastv z(16b589Dcns5@9EaX{@R0D`PSu2DHQUhcYOzFz4b_5(^ z>E$HQJg3O1!IXnxC+-N!?!*M>{&of!U|v_BW#SiX6xm| zJjLLG0LE3;QhRA}3ejwCV~EX$IFO?>4e&OHApk&f=u4MVmlBRgbBk7cX(R}1k*eBV zyGt`#nwk+1c9B)w2G;^fr3+S-leZLznYgg-AqHA0z{4!HmzWV<;gT29v<@a?RY zjPIYTi=0rI<4_|&U`I)ei?N5`;t?GqvkC-g)hTINkLDwUu{v=vM3+boZNU2;P5N2!v8ePujMMdg+)ODlWr&+0iFb9pe-zBa<70YQ z%iIe`!VLHQRhg{UJMONlGjDo7DjzY7z+km)!V@x?IE>r0xCDXT*O0nI>adgIQrn6_ zFcNAYx3@F!^{FzQT02y!Aug?~RlT!T1JmNY8=bl=#pd%F$9%Ql51AZcn`59pO|*7d z&3?VkFVDv_=U4g)`mW4kcHHbHX-k9%y;gP1!QmV*bR$qwZ#{y-F<68!l42kNl9)%g zRBB-u#1}+UYzjQYTvZ+3@j1aS)3KK^ zSZpPAb3Yzd_kiOj?kN#WE>nkQkeDNSlU}R4Y2%Q-H47O40g^1LwVJNl&&`^FITnS- zVh_ty#h*UeZke|`$P*$^9`anl|TRk=-rD@ z5nZfx1d~{+E{=!RU(H38pYEp*ZafA^L*i)K>%-xEX#Lgd^V%>(>2GK|s=L%UfURee zfE8xZEo0wLLx`+_Tx~z@6u^URM9@h>$S`P=wJz9O@6kQ0t2fPgOesb!_U7yP&D?j7syCOL>kwliG+^dtN|Z!kB!i%0(SZezF)%a`m60Q= zK)^9V1uo4}+LK!}E%cTf{W=+a1}C1+b!~L4G&?R`PD?KW@7+Fmei@(cc?vpg#usnu zPhOtxR(XARD8lC0t#wvi9vnj&HUil&H+0AWtYzRfTW#9kL+jDsOSn-Wr(q>9{tABS%azWa6}qbHmlJ4giYZ(t!d{5$>Bjc0XvXD6`c2bvZ7l zcdp)f_ky49(|$xiJ1^^(_w&p9$NRRdD+L@x(^AdIDPRg)159IZEl5sm4orqTr7jQW z>OX(I5r4LN`LIc-C^Oif{Oa)OukTOyf{;@ZBQ50=Vj}J1{uYof zr+j-g*4Es$u4_uMm8S0Z+A4S{_~yP`Zno19wj=i#su`@oi{)6)Vx4syV?fq5YU_Cz z$f%nhs|5-v;{Y}*y}bbX8)vbKpQLrwrTV<+>2OTR-@U<`D_%i!-oH8=Kl%Levp3~I zxn>$XO`FZba!>8<^75UO_M1)0(RWkWU(qlAY~D}1?bSFX-XyLfhko_t@v$83IP0$; z>cuASFE>b-)nVur5qyIR8Pd86kJ5dTT2(!#AuD@F_X@FtpScSeeQOp%fNIb^J`^j$ zWzkxnJbya9e|7QR6G|h$I^TbFf4V!ZRs@UhB0ReqzB(7{{N&j?7gHYdP^xka56e0; z_HjHTqz+liFUH@yI``AVFTZ$wUhV~Uu4$y0Cj@DQnt+?JoRk%_lJ;TMSbCf1 zIwgc)U>rPb!zMwm{kJ40126zXsx5=Xb1N&%7*6lrPTLI<`^C-0ix;P#et!4r46Ow+ zc=w(6Fy`Z{mmhu*@>cRDPNR>!juerH+Bk%9uJ~%zPY(Ux{^Ie=v+SRLjN>&#veY$) z$EBG{3=}C~7%)XnQ_dIBY{NE2n6l+4c|wYKDzj)4n46tD08mD!Zw%Pw#*B#mm#ms}jKc{U1KP*u+2kv(rERr~f1lEj0N-h_l^sjDjrm~!Oac_;I0BcJyF(6PHLa3#d`G{yp zhTX^^QkW*Xx3!j2myr@1KtgqQ#P6)knL}FvEl3N=rf2(`o15J@;7Rl+pZu4zPGZOX zxOwN|`Sbmd1K#{_|EGWS&;I$p_?I6%`=0c(S{SFCE}p);?7Cz9ZxoXPq4dtZhk7E?zX;sUHKNWuYhI_Hu_GKa0Qr<7Z;^r=Py~H-Gfgi|gOn zZqwbvnqpd7AEsgQ_Um7rvrW`TOwesc1WeH#OXdCL29aZuWi7-{TvNnhjN$OGB*@AO zM=V9rkvtHh07LZTayf29Xe$|g;>*ZXns4*v3Ct&Ntsb@$D5 z@zJx*?|yJ|yU{b72n{P{zBZx=uMc(^+rA0Ao}6k?+*Wd$fmPK1KcpvW65HxE!3pz)GUr#S@@9s3EEmn41g;$$A|fBK3-j>cWv+0pGpcU3~V7pCq`FIE3M( zT~U)o66oARuG@>a3w^%c=E0#4#d*AiZ~g-Ia3-U ztzl48wDK2lfXF>S8lA|;O+KH>%ldHC)0q49boK7WfB50%;t4;wzM4<)bh9a~-R|T4 zBOe}SC{yI;7MMDQv@3iFV+q;;+=mqGw9OYGvyxk7E z9rfY9E?rO)6usG9U8npcYU82a&Tuf$|MdkVSaubPM0i}X<&n5uohC*gRwRRHE)qM5dZLw9CM%C0s z;#*78Z)E^|nk*BU_i@YT*X>*mapd=&rfire9xhWJ*;%{!kkW@AJpb{JUjOG$j{v;Q z^rPpSEw;mqFSO_9S3vYtf9di1@^bg?ZpcA~0h_KP<#uY@$h#CG2WPCN?#-=4h}9}3 z(oD@ds4Z=+0s@$PDzk$3k=Fe<7}=wIhr}V^exSp#_G(L8mes(+%@F?Jqivt-dOqiJ zQ63N5{gxu~;Nyhf|K9C?`|NI!xwI5hh~us-CGGZ?yAO%F%i@V|KP7YKfnI`<>z{Q{rdj%tzFUX>e3-nh1-kW6i&ZdwKV(c?(yfZo7fPU zbD|Ey(?kIe$EEcxd1$SjYynG`X@9-tMC`~-4G2XATShO6Z4oURo7xoP_5zzovnb%4 zkSS0cnOwcYcZDoDUebmchlyXjIi1(G6%v8idTX796L!+7PL% zJIgT7}#?8A=_RlT`QU(|caqDUwume(R;sB(e z#cN<}_zmv}oG@mMw3@Oit^>}WOk-~UA-2A=2Jlt;MCtsa@z38k0DhO?ay&9%*|8%o` zcRy{X5Sc||1e$w6r)W3?q+FXW$CH%K4rGim@G9UIYLlj_j?Kx;BN6~bGJ0DF5MThf zzM#aAG=6Y3+}>=@uO2p+JmxI|lL7Luu5vCOFOf~869vXl&HHj%ijb3je6@X&(pQIm zzjzf9ioLC5Apj(RKz_ZyWYRDMike1GTv2E36UcbF!(mup#uS{9$ce!Sfx+G;F#!aCVaRD0A{J!jgl4@q9d;3M zeEs6}?K{`w7|po!!+0@nFW+6~^Ey9X@8f1WbfaItT#5=#e10e?$aY{tJ`_1ueK;J) zVW0rLSte?=nUAlJ1&J~bRSN=^wG%?(0BGjH6h+(-QH2?ja}JT%I0!%xkKo_lp@{%# zpy^^PRvd%_lkXhFbzP75!*tp|{eC~JRs+IryQ^l8NDd)l7|yTf$NOd4#SCzmml0t- zwl^m(=J#_^ZJ?=ElimTsv2Bj zV~k>rks^EG-vXcj5D+LkhBHv*h|G{CpC*FZ2zHz8`yj@V0S__ju+5n#bi243y{!rL z>T1V2z?ue0Ng^7Z&qr`a$EG%p@pOJ{-Bo>^TMAjlH`~iYm&&A!rhTH|?m~W$<{>B$ zvm#m|nj$2`z#NbwMh0W3-&))y00sb4iXl!(b)qm(vfj@jrjUXotEp2nT8ErWvZux= zndxRf0x0M3=5BtRrJ=icBu3a^3}XgxKCKp}%Vp`iA#_0x{^QogJf-B(l78wMc8PfjuHa*fc=`iqweA z0Rj;KvQvo2>`1f}b-@^%$(bCj)7xf_5CEY$({SPUCUT~5P9drmzzcUl6%c?vxerE{4MXn_VBp3~?9OVaUfhE9fCN<+cTz#q z+%=f9r!J?$inSJ1Z=Ed+Yb{-+t0TC32}DN06ZE1;JTRG9U=D6EG7>P6hoGK%1$R%0 z6`F;Pjsat72G|4W2;++82>)Xy4FI@8`1hZ}zx$J)F%YNdR$Ubc5IZ;^L={yt^ysGU zT?Nccds8zEsa1C;t*Yi-R0ROIc2RdAXbJ{ys^+flZUo4V=0J%!5TSuN0D%*mc#O%^ zkQKG5xd%okcSmw?C8OigOWu#;$jkr`jJfYF;OP(l^e5}%*N31E`1_ODa9Cx=)VIkfJ|)L;4AC^0000< KMNUMnLSTZhsN5p} diff --git a/ROX-Filer/ROX/MIME/image-x-xpixmap.png b/ROX-Filer/ROX/MIME/image-x-xpixmap.png deleted file mode 100644 index 670ae6e5ed8b996200bcc3ed300126a1424803ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 7858 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 Qq5uE@07*qoM6N<$g0WXsM*si- diff --git a/ROX-Filer/ROX/MIME/inode-blockdevice.png b/ROX-Filer/ROX/MIME/inode-blockdevice.png deleted file mode 100644 index 8a1dcc40a3dc8865387dcca087bddd85ceae449f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 3660 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 GAO8R;5fbPC diff --git a/ROX-Filer/ROX/MIME/inode-core.png b/ROX-Filer/ROX/MIME/inode-core.png deleted file mode 100644 index 48b1635d724ca8695feb08362d623e7dfa53f3cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2471 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 diff --git a/ROX-Filer/ROX/MIME/inode-directory.png b/ROX-Filer/ROX/MIME/inode-directory.png deleted file mode 100644 index 155965cb050b1b03d25386c8b762b3915482197d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1983 zcwPa&2SE6VP)aTxw|J8@*AN$=;-w7=J$NsiE zkH36!?VI2K(fQpd)<3r~*_nEv{efGKJ^thqH{Sf=(=R^z|A8I5xVh8h-h8{$J9f)0Cm#FLM?U_^SN`$z{|@{7@q1rbc?}1S!sqTj{*C!V z*KMPJcDLs4GJS4w`Kq($*WLZ#!Tq=2cI(3r|6ylmfN*#pnC~7qS|=^cA4Yo#?fqyk zp|gb6JiHCGKJ$gUUi{~CZ{+OLUpoHM*}>Ppbzd!-UpzQ&?9|1IsFLf~7JbPjLUDv;FIvuyoOa$N{ zKu7?$*DuPzK)@IXQ8FTSM;Afbv{kJ&Xm!Y%8m3~CNZ1(cg)x)NIrsbh-ZU;=SUqv# z#Ng-mqZz^~AOJ8yd{d$cK#)O#3=Z`B2%^bQ3!NT35ZfqYOd1^8kMYe%-@Ek6vybPf zbvzzR?NZ8v4?cM0+Uvjblbe5=-+><#hnM^Pf z2|^?*5h6oXl1T=JyrhQQ_1dVk$~4!e*&cOr8nh4G^wB$h`v&yHlC3}yz4Vn033|NB{C=^m#x%IZYceK2JVYQ4iCX?0G)lyoEi;Iv}R#xh?Svz+cZYiZ?XeD=d zhc59X5+Rmg2n+~8goSePX|)~8jcQxN7UZ=(91rH^6XY0;GIDOUS{}Z&wS{*3h8u3U z=G~<`*D+Hv_k?7~?mm+tNr+TPgpsVFhGK3pJWn+XV?nh#@EXpJn+*pWCs(E~^cFJS zcrQWLTANaa7bkE_<|$crcgW2y2}B|pLP#Vkqami=Vt8&8k#k*n9G2*to>TD8gIG%^k_$$r20@;3P?_1OXDIqCjH?qP7~8sKb;CDq>=R+Mtv& z88*8UgZD1MB<+=Kp{DeToZ${Q%moL`l9^RySw19WM+a1$;==V3^Z60O)!W8AOirJRYPrC5CC#P022Wbaz(<}Fh(8b zSqy8fBw?2pBdBn52(&PofdI@*QV_Eyf=iDyNtm@30iqBlNr(t?)?fvdH(<3^kTa!3 zL?{5d!%b#pm%}WHvy0&*NELBxZ77FoNF#XzH&#l_b0um)r+5#!p8?ODc$CTtpaB{p zh=5>5A<6ep22hY7IStZm9JuHdikwi;DM;-gWZg!?T2;fKZiax#x<-?BzXQ)BdCBeS zkh#p77ky% zIhafvtF;o5Er%;xrZFMWhyaa73xv@^6@h?gPO_?i6pgZAsxm<4HK&MFkvwB=eq&>^ zm3vD|U94`*b>^k;y5nw+fMlr2WpX!~+z>Mh8dOEd(U=#fdjM5#K?_t$C2GbL*l{1h zh8a79WO=x=asKQ!_8rWy$zVtlFu@F(SqLyffX&o#S%9#RRak|YWH3ksXA=pvk;dZ0 zVgg0Z%Lkr%;<5JP)l0nvY-}vF+OLmCMILZNG6-^$AP2B#1xY3(!K$p(6rvFp0nSuU zqqWQvlZA^J%(<>T|JNrMZv5bF%SVpFo59AJtCo7(=Ppt$voIO}#M^uVrM=2RVg_X_ z#xP2fRSBV}8MRWBpp*fWQ%|pux8B}Gt7+G**H2$)rYNaB6XBi|uWV^o!bAfSNK``9 z%rlA#vBHXvx4lk5Uh0i;=9y<6*~YMJo?bcg(yQq03vXRXdMob=&&-fSDkud25+p)0 z1v9Mfdf9?TZ@TNy^*3L5?G(B_&;b8$f7J%SFHHrzd}IzeT!;dvcfrx-zX6OTtl2KF RpsN4?002ovPDHLkV1io2v2*|c diff --git a/ROX-Filer/ROX/MIME/inode-fifo.png b/ROX-Filer/ROX/MIME/inode-fifo.png deleted file mode 100644 index 405af7614e19be1e7546574c0abf2bcf5e5c6055..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2692 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 FV1lvN&Km## diff --git a/ROX-Filer/ROX/MIME/text-html.png b/ROX-Filer/ROX/MIME/text-html.png deleted file mode 100644 index 2844580cf97ba961fecd2dc1b4c512b0d5d7af45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 4945 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 P00000NkvXXu0mjfVkV8* diff --git a/ROX-Filer/ROX/MIME/text-x-c++src.png b/ROX-Filer/ROX/MIME/text-x-c++src.png deleted file mode 100644 index 19aae30267f30d29b4e606b0b169c3b5f8031b99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 1567 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 diff --git a/ROX-Filer/ROX/MIME/text-x-generic.png b/ROX-Filer/ROX/MIME/text-x-generic.png deleted file mode 100644 index bca4c1f46e6e7edd4cbd60c3545882e1838948be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2822 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 a%lRLe#&1r#o{*RT0000F-+@e0^h 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 diff --git a/ROX-Filer/ROX/MIME/text-x-python.png b/ROX-Filer/ROX/MIME/text-x-python.png deleted file mode 100644 index a88cd3038b5808d13b18828eb9df78ac785f7dc4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 4730 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 Y4UHKEd;xj(H2?qr07*qoM6N<$f>R`pQUCw| diff --git a/ROX-Filer/ROX/MIME/text-x-tex.png b/ROX-Filer/ROX/MIME/text-x-tex.png deleted file mode 100644 index c96c2ab1d92fc58921eb9c5a040122871a4550ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2420 zcwPZ?35)iLP)92;{tGj3 z%L$f3hzLZq=za6^^LX^=5i&9|uzB-lT)%!D03HHZ2OtG8yb|c`+qXXxu%bkxQ2;<% zS{ib4a?sq|jO65G3AhBhudnZ!fYtXC5xib60Dv)ujEoFy+O!EDeN>0Ev@`?w|KuJ| z3swXv?k8eURTY5dDypg?GcyyfzWPg?J9iFe||9qmTqOY&d*01;N+lR)+#zg~t z5-BY$MMFaa^mI)`ICA6&0)YUC7=UE}fOYHEB0ql*0F)=jSI4EMrUnB81Mqk}OAcCe z6UGR+xw%-gW(_7MClLtDVRG_2jE|240P5=M#C@{pd0Nb&H8nN1Rjj|ipHx+q#{B%e z?PzGYOqG?D-Esd4rB0 zKd$ey7MGcs8QbK)ZQC{rXt&!$Y$#^7{1(c9Z= z>|jgXlk|MhYV~mK1R8^(v>1oTA>ud^rfi%X(#w?6RqY;Wkw4t-9 zjSz*yAu1^;ApjHz1Sk*)(A=Eg7=FK>!r_qNsFL38q2AarR#{mI zx7%%D{J?<&#u>yt+Mi5%rm768%1}~L60^g=7>ljvdo-JbuCD7yP5r51%T!!Q0&9Lo zL~yxWICJKV1@z$HAQ~H+jKgV0nE+n9cE(iW0695ZVrv0@C?=6)hs7u^s;VL(ApxqY z#)`{NV8JaM?6uc^jiI3->51Fz#@AneW!Yy2qJzFn%8dV0EHNAPLH0cxEGG&ebR?3e|3ZEY!6?8!PwSce#BASERkp->R3 zSHFPAkEbv=I3&9V5zyV;jijU`fn_Vx=1BkKlfPNmzH{deYHR;2Fv$a4W1EC|7Ms`F zQO+#4(b3U?jEoly{gO||XMkb~Mb@+fY}t~7;^JZp@Uv&n!sAim_$|*0T1H{U&549@ zO!75LOz+&e6Ol+**r-=0o@ccn;e&|b{rCT50j($sKKS6Q!K5_@^Mmkt5v-1juxC#J zzW@F^JJ5t%w{Bs@iexEJc$7n8MSSLTI&u2+X$$a*iV83$rZ@S}vYU`#OMXFUZ*Rkk zFRrnImfb_FPGY3TXYK8`e+!q(WoY~O<9axqPRSh@Q=zJ|o5=AaS6_`No?&z``f0`p zyLRnDFc>uX6OU%yhz>$mZ1%aLqCylE6`69gph4PWjU#SP!%?T&O zTq#63glHCn(t5QA4<3Y~C~&!4sIRY&Jy(TWTi6`{9_*qJ0j;eqSi5$;m1*5)bryLv zLtxC5tYd3iT3XQB+6DlqufGJb*|FIo=&|0UXv6LnO`sWe@7@i+f7X=R;wvH|D2jp; zCr$zYs;jG!ot~#+S;mrK*6O;b#OWzf&sfUCU6BiB0c?QmPqH-QR@w4KR$)*>|a^d@&n6qSAq9+a2A1wdxTyj})s{;mD} z;>EupKR-`;Chy@Qy>8{@<>7}P9vcjp^Cl7D!w=74cv$!2Q$Lbt#at{iDCYa4N8f_i z>qCBiz64aqv3GAN6y@Jm(ApcqHLPBpAsCnaa(H+cRaI30fK#Xb2#3RAFe^9w<{;u= z#lB-?WCR5Tg}8RD69AB(pKt3PSFbj~<@&ktTguaV#xMs8pnZZpeE3ZOT7%Ty-hsBZ z4%l6%D0cbR=ksA?Es zgU2&&%t`K{w}9r{c>er(w6}LGDM+)({w&{gQ`0}-c5g6#OT7md9zesxBdDtS!~YX6 z91aH@4u?&#vF~@Jidaxkh{?%sV;gi|Vz_wmf~d-*m>aN4e18|0JDm<`tyx!T={}5) ze`5tr1hloaqOhu|Vy>+TR)%>CL6MxEK=?UJEGEs9oiJQZP>owyf-R$vvbumzI`htY7am z6$G)Jw7z-71G5ldYs0kg`o_j9*s$Rxgh diff --git a/ROX-Filer/ROX/MIME/text-xml.png b/ROX-Filer/ROX/MIME/text-xml.png deleted file mode 100644 index 2b776464d6414ce42304785979a79f1ec23ad8e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2286 zcwPbS2od**P)gN+c4K_REQ~t3HE+ zgYw+Db2g4xEGCTg-a$hUt!Jux4XNW1q&7+ zgdh|Ov2fu+_Uvh-zW%AJ{r&y(f!=Z5H)d-n(r%$UKm%U5%^H_B(e^hJKs^cI2aZ0f=#2q7}E>C&RAhlYkYe*8FP zWo2Bvc#+)PTw<{pd3kvRgE@3`Tx0X*&97#34}d^+Hrrl%h3(~4^xuy0;?}3h56$Fm zZrxjgn0MhiLQ`ot>QkG&VK@ zpn-O?tjfY=U*Xa6WwgKB3c!M;kMXH5eBK|*1Xwobn#y1>NLE%BOO`AFps%lwj*hDY z0!xX<Qi2cy!x$Y~ zV`h&KqZh(J2*aK)gmk?(gF81jR|hSnWZAN1w)K{b3=Z*&C%#8Ak>H_E&gY3;JE{NG zZe|qDVmLX-FTYdIaB@&F+}{8p%ttlAFboVs*i4)38}>RAu<7Rm0|~On0$u~%+S*E1 zmY%vBpL?F`A6z6mCx>mnd6{6|Gzy9edFth#190PCm)Y~&^J$p2ae&BmHLJMY z)&?!5q^xYYU6EjNW!YiKt#b#WlQsMeaK6~8RjY}|`_#{%u-Z=vj^wyY9& zz-pkSgo=s^Mn;B}g;sTP@~kC#vC!qnt9t#KaSydRIR>ciFnxNyR;4Ui_2jo0O{Lhi<=Z6g+@bK+B7>rEKAkTXGuKXM?Bu=0h5y(q~hzF0Vx04CZ?v%gJQV zkWqFR1M6SB)Gx7NLxh_*yX-fbPdhE3-ms_j2$fg71;$^N~o+{MLgc;0q1O_A1I|9OZwhQ>YnRn zHJ$JJRpsjHjdXY4@B=M4dbEYrtE)&P624$n_AMZVg<&QmJw4sNC^72LHy5 zHFS0T+kU6@9xW|Lm^m|~BzgafLV%*8Vv352GXfhAv>UL~Ht6pT9N5pCIUl#jnonCk z>jjxEm)@WF=Vrfox?b~Xy#@6DxfPA}XaPBU_CxmpczhP5l+@JJa^ps)t<&7YY5~2u zQSA-f8Dz4ODe&|!y?_5+9)5VPJ=XHH8>CZ}bRWAvu<3wW=c+pYRza(X>(;F&8tt_= z@fHQ|#`g!(e@{2inwmN~JFnSe?dR5^Lk9_mi}AbBR9jO$$|nt5+tUK;E$xzh``%{m z+)vm#jcKPfRX4_^Gxg&EcK0Kh^0pt)Ok#r;LK2BY=;`TB1Inpfnf9DWb-Y)wwY8fx z_t2PbZf+tHspiU+%eehazd+Gta(90B9@zW#y-jWHCeDvtO}Mg$4$QAQxkb&N;~hRx zH%KR00GBVD%tj&`xp}k8?x)jT6X*x0PfaSgbiH^cnKH%v%a-LHU0vp{mu!HZo*oj3 z1nupA2f#240)fD|oBprl{P_!Xb#>9--*4+aGXLM>9-rU-7dvv&tT{0?IRF3v07*qo IM6N<$f_bQ2r~m)} diff --git a/ROX-Filer/ROX/MIME/video-mpeg.png b/ROX-Filer/ROX/MIME/video-mpeg.png deleted file mode 100644 index c8c2bbfe10a6c7a1c931a5cebdbad842c053e24f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 384 zcwPa30e}99P)Y89q zm=j~2TcggcfOA{32{UVram%bzCIq+RT=02!Jw;}f@vl6wl;5tt!Y9H3uiAEFh z?*Jo(Co=$*K$|zsrh8UIG{-DxY9YS-TS^TqTQ8}t{N49u5v}6AZ4M@5QGeL4HE8|m z&4_Ri=29AUnzK^vyi0(e&4|LdX!ylgq;NyQoXvx*| diff --git a/ROX-Filer/ROX/MIME/video-quicktime.png b/ROX-Filer/ROX/MIME/video-quicktime.png deleted file mode 100644 index c188973867c04b5670dbe03348f1b2f278120a25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2574 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 bH+K$sX=A}?mX#9)0Wb6&eT@n=+wlJZLRCI+ diff --git a/ROX-Filer/ROX/index.theme b/ROX-Filer/ROX/index.theme deleted file mode 100644 index 2e8c9b1f..00000000 --- a/ROX-Filer/ROX/index.theme +++ /dev/null @@ -1,10 +0,0 @@ -[Icon Theme] -Name=ROX -Comment=Default ROX icon theme -Directories=MIME -Example=inode-directory - -[MIME] -Size=48 -Context=MimeTypes -Type=Fixed diff --git a/ROX-Filer/Templates.ui b/ROX-Filer/Templates.ui deleted file mode 100644 index 9c492b8d..00000000 --- a/ROX-Filer/Templates.ui +++ /dev/null @@ -1,638 +0,0 @@ - - - - - 640 - 300 - True - False - ROX-Filer log viewer - dialog - - - True - False - vertical - - - True - False - end - - - gtk-close - True - True - True - False - False - True - - - False - True - 0 - - - - - False - True - end - 0 - - - - - True - False - 4 - 4 - - - True - False - 0 - Recently performed actions... - - - False - False - 0 - - - - - True - True - in - - - True - True - - - - - - - - True - True - 1 - - - - - False - start - - - True - True - True - False - False - - - True - False - 0 - 0 - - - True - False - 2 - - - True - False - gtk-open - - - False - False - 0 - - - - - True - False - Open Directory - True - - - False - False - 1 - - - - - - - - - False - True - 0 - - - - - False - True - 2 - - - - - True - True - 1 - - - - - - closebutton1 - - - - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 5 - Panel Options - center-on-parent - dialog - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 2 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - end - - - gtk-close - True - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - - - False - True - 0 - - - - - False - True - end - 0 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 10 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - none - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - Image and Text - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Every icon on this panel is shown with an image and some text. - False - True - True - - - - False - False - 0 - - - - - Image only for applications - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Applications in this panel have just an image, everything else has both an image and text. - False - True - True - panel_style_radio_0 - - - - False - False - 1 - - - - - Image only - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Only the image is shown for icons in this panel. - False - True - True - panel_style_radio_0 - - - - False - False - 2 - - - - - False - False - 4 - 0 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Panel width - - - False - False - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - The size of this panel. - adjustment1 - - - - True - True - 1 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - px - - - False - False - 2 - - - - - True - True - 4 - 1 - - - - - Do not cover panel - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - Ask the window manager not to cover this panel when maximising windows, otherwise leave just 2 pixels at the edge of the screen to allow auto-raising. Some window managers may not honour this setting. - False - True - - - - True - True - 4 - 2 - - - - - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Panel style</b> - True - - - - - True - True - 0 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - none - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 6 - - - Confine to Xinerama monitor - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - If you use multiple monitors with Xinerama, use this option to confine the panel to one monitor. - False - True - - - - False - False - 0 - - - - - True - True - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - The monitor this panel is confined to when using Xinerama. The numbering starts from zero. - adjustment2 - - - - False - False - 1 - - - - - False - False - 4 - 0 - - - - - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Xinerama</b> - True - - - - - True - True - 1 - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 0 - none - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 12 - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - 3 - 3 - True - - - Right edge - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - panel_pos_top - - - - 2 - 3 - 1 - 2 - - - - - Left edge - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - panel_pos_top - - - - 1 - 2 - - - - - Bottom edge - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - panel_pos_top - - - - 1 - 2 - 2 - 3 - - - - - Top edge - True - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - False - True - True - - - - 1 - 2 - - - - - - - - - - - - - - - - - - - - - - - - True - False - GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK - <b>Position</b> - True - - - - - True - True - 2 - - - - - False - True - 4 - 1 - - - - - - panel_opts_close - - - - 16 - 96 - 32 - 1 - - - 100 - 1 - - diff --git a/ROX-Filer/images/application.png b/ROX-Filer/images/application.png deleted file mode 100644 index 17c80037a48a58cd7e2bddbcbaae123e63977a22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 2864 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 diff --git a/ROX-Filer/images/rox-mount.png b/ROX-Filer/images/rox-mount.png deleted file mode 100644 index a68b05a3aacc0cd7271f05529c7485a02ffb7fa7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 378 zcwPZ|0fqjFP)GWG`Ut3E9f7CwOFzgzn4)#7BYis);QH!F=nrZ8K5%dlPK|@mz1c?MY z^cp%_qDrAuifSt>E1Ps0M5RYo14qbg8yVDkl7xymwn8p6TeeaI{ Y3%gx;Zl$Z+zW@LL07*qoM6N<$g4>9lcmMzZ diff --git a/ROX-Filer/images/rox-mounted.png b/ROX-Filer/images/rox-mounted.png deleted file mode 100644 index 63db5dea0a63be072514ae3e1f96ff9fd8b968ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 648 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 diff --git a/ROX-Filer/images/symlink.png b/ROX-Filer/images/symlink.png deleted file mode 100644 index 1997d2799e171707d85210445f224868c4dc636c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcwPel00001 literal 183 zcwXxa@N?(olHy`uVBq!ia0vp^AT}2V8<6ZZI=>f4u_bxCyDx`7I;J! zGca%qfiUBxyLEqng6t)pzOL+-SeONwO_H+;W&?#>JY5_^D(3V~xX8tzz`>k<@&Er% zRUHdlmhRPjeoQ36&V=#Jys29b8oS(OTU^wssVX7tWpIc;W4Df3-ipg-rrn(Qqvi*b Y)LC&ps~ykyf#xxIy85}Sb4q9e0Q9jt6951J diff --git a/ROX-Filer/src/Docs/Makefile b/ROX-Filer/src/Docs/Makefile deleted file mode 100644 index 00f6615c..00000000 --- a/ROX-Filer/src/Docs/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -HELP=../../Help -RES=../.. -MAN=../../.. - -TO_HTML = to_html.xsl - -all: Manual.valid ${HELP}/Manual.html ${MAN}/rox.1 \ - Manual-fr.valid ${HELP}/Manual-fr.html \ - Manual-it.valid ${HELP}/Manual-it.html - -%.valid: %.xml - xmllint --valid --noout --postvalid $< - -${HELP}/%.html: %.xml $(TO_HTML) - xsltproc -o $@ $(TO_HTML) $< - -${MAN}/rox.1: Manual.xml to_man.xsl - xsltproc -o $@ to_man.xsl $< diff --git a/ROX-Filer/src/Docs/Manual-fr.xml b/ROX-Filer/src/Docs/Manual-fr.xml deleted file mode 100644 index b94503c9..00000000 --- a/ROX-Filer/src/Docs/Manual-fr.xml +++ /dev/null @@ -1,4002 +0,0 @@ - - - - - - - - - ROX-Filer 2.10 - Manuel de l'utilisateur - <ulink url="http://rox.sourceforge.net/Manual/Manual/Manual-fr.html"/> - - - - - Thomas - Leonard - - - - Arnaud - Calvo - Traduction française - - - - - 2005 - Thomas Leonard - - - - Conditions - - Rox-Filer est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier - selon les termes de la Licence Publique Générale GNU, telle que publiée par - la Free Software Foundation ; version 2 de la licence, ou encore (à votre choix) toute - version ultérieure. - Rox-Filer est distribué dans l'espoir qu'il sera utile, mais SANS AUCUNE GARANTIE ; sans - même la garantie implicite de COMMERCIALISATION ou D'ADAPTATION À UN OBJET PARTICULIER. Pour - plus de détails, voir la Licence Publique Générale GNU. - Un exemplaire de la Licence Publique Générale GNU doit être fourni avec Rox-Filer ; si - ce n'est pas le cas, écrivez à la Free Software Foundation, Inc., - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - - - NDT : Vous pouvez consulter une traduction non officielle de la Licence Publique Générale - GNU à cette adresse : . - - - - - - Note du traducteur : - Je ne suis pas programmeur, les paragraphes 'Appliquettes pour les panneaux' et - 'Structures de données' ont été traduits par Laurent Moussault laurent.moussault@9online.fr. - - - ROX-Filer est un gestionnaire de fichiers simple et pratique pour X11. - Son interface utilisateur est basée sur le gestionnaire de fichiers de RISC OS et ses caractéristiques - sont similaires ("dossiers-applications" et ouverture/enregistrement de fichiers par drag-and-drop). Le - filer peut aussi jouer le rôle d'un punaiseur, vous permettant alors d'accrocher sur votre bureau les - fichiers/répertoires/applications que vous utilisez fréquemment. - - - - - - - Introduction - - ROX-Filer est un gestionnaire de fichiers simple et pratique pour X11 — - l'interface graphique à base de fenêtres très utilisé sur les systèmes d'exploitation Unix et dérivés. - C'est aussi le cœur du ROX Desktop ROX. Beaucoup de fonctionnalités du filer ont - été inspirées par RISC OS RISC OS. 'ROX' est un acronyme de 'RISC OS–On–X'. - - - - Fonctionnalités - - - - XDND - - - Un protocole pour le drag-and-drop utilisé, par exemple, par le desktop - GNOME GNOME. Cela permet à des données d'être chargées - dans une application par simple drag-and-drop depuis une fenêtre du filer. - Les spécifications complètes sont données en DND. - - - - - - XDS - - - Une extension de XDND qui permet aux applications d'enregistrer des données - par drag-and-drop vers une fenêtre du filer. - Les spécifications complètes sont données en XDS. - - - - - - Basedir spec - - - Une façon simple, mais souple, de gérer les préférences des utilisateurs. - Par défaut, celles-ci sont enregistrées dans ~/.config, - mais vous pouvez utiliser la variable d'environnement XDG_CONFIG_HOME - pour définir un autre emplacement. - Voir BaseDir pour plus de détails. - - - - - - Dossiers-applications - - - Applications entièrement contenues dans un dossier, pour lesquelles l'installation - consiste en la simple copie d'un dossier et la désinstallation, en la suppression - de ce dossier. Une description plus détaillée est fournie plus loin. - - - - - - Imagettes - - - Le filer peut afficher les fichiers images avec une icône représentant le contenu - de ceux-ci, au lieu d'une icône générique. - Très utile pour organiser un dossier rempli de photos ! Voir Imagettes - pour plus de détails. - - - - - Shared MIME Info Database - - - Avant, chaque gestionnaire de bureau avait son propre système pour gérer les types de fichiers. - La base de données des types MIME SharedMIME propose un standard pour que - les différents gestionnaires de bureau n'utilisent plus qu'un seul système. - - - - -Thèmes (icônes) - - - Des collections d'icônes, appelées 'thèmes', peuvent être installées - dans ~/.icons). - Vous pouvez changer le thème utilisé dans la boîte Options. - Lorsque d'autres 'Gestionnaires de bureaux' utiliseront la même - technologie, les thèmes pourront alors être partagés avec ceux-ci. - Voir IconTheme pour plus de détails. - - - - - - Support DNotify (Linux seulement) - - - Si le filer est utilisé avec un noyau Linux récent (i.e. 2.4.x), il mettra à jour automatiquement - ses fenêtres. Sur d'autres systèmes, les dossiers seront mis à jour dès que le pointeur passera - au-dessus. - - - - - - - - - - - - Arguments - - Vous devriez pouvoir démarrer le filer en tapant la commande rox. - S'il n'est pas encore installé, voyez . - - - - Par défaut, ROX-Filer démarre en affichant le répertoire courant. - Vous pouvez lui spécifier d'ouvrir d'autres dossiers à la place en les passant en arguments : - -$ rox /home /usr /usr/local - -Vous pouvez aussi l'utiliser pour ouvrir des fichiers, comme ceci : - -$ rox README - -Le filer accepte beaucoup d'options ; utilisez pour en obtenir la liste. -Toutes les options ont une forme courte et une forme longue (e.g. : et -) — bien que sur certains systèmes vous ne pouvez utiliser que les options -courtes. - - -Notez que si la même version du filer est déjà lancée sur votre machine, -alors, par défaut, elle sera utilisée pour ouvrir les dossiers et la nouvelle -copie s'arrêtera immédiatement. - - -Pour obtenir la liste complète des options, voir . - - - - <anchor id="run_pin" xreflabel="Pinboard support"/>Punaiseur - - -Si vous voulez que le filer gère votre bureau vous utiliserez l'option - et fournirez un nom pour le punaiseur, e.g. : - -$ rox --pinboard=MonPunaiseur - -La configuration du punaiseur est sauvée dans -~/.config/rox.sourceforge.net/ROX-Filer/pb_MonPunaiseur -dès que vous le modifiez (par exemple, en glissant/déposant un fichier -sur votre bureau). -Vous pouvez avoir autant de punaiseurs que vous le souhaitez et basculer -de l'un à l'autre en lançant rox de nouveau, e.g. : - -$ rox --pinboard=MonAutrePunaiseur - -Pour arrêter la fonction punaiseur, donnez au nom une chaîne vide : - -$ rox --pinboard= - -Allez voir la section si vous avez des problèmes d'affichage avec les icônes. -Le punaiseur peut aussi être activé/désactivé en se plaçant dans le répertoire d'installation de -ROX-Filer dans une fenêtre du filer et -en choisissant Enable pinboard ou Disable pinboard -dans le menu (clic droit). - - - - - - <anchor id="run_pan" xreflabel="Panel support"/>Panneaux - - -Les panneaux fonctionnent exactement de la même façon que les punaiseurs, mais ils correspondent à -une barre, le long d'un des bords de l'écran. -Pour créer un panneau : - -$ rox -b=MonPanneau - -Le panneau devrait être affiché dans une fenêtre sans barre de titre. Si -ça ne fonctionne pas, lisez la section pour avoir quelques idées. -Vous pouvez déposer des fichiers sur les 2 côtés du panneau, ils s'aligneront -sur un côté ou sur l'autre. -Les icônes des panneaux peuvent être repositionnées en les glissant avec le bouton du milieu. -Les changements apportés au panneau sont automatiquement sauvegardés dans -~/.config/rox.sourceforge.net/ROX-Filer/pan_MonPanneau. -Comme pour le punaiseur, vous pouvez basculer entre plusieurs configurations -de panneaux en relançant rox avec un nom de panneau différent. - -$ rox -b=MonAutrePanneau - -Utilisez le menu contextuel pour choisir le côté sur lequel vous souhaitez positionner le panneau. -Vous pouvez aussi utiliser le nom du côté ("bottom", "top", "left" ou "right"), au lieu de -b. - -Spécifiez une chaîne vide ("") pour ôter le panneau : - -$ rox --bottom= - - - - - - <anchor id="winman" xreflabel="window manager notes"/>Notes sur les gestionnaires de fenêtres - - - Vous allez peut être avoir à configurer un peu votre gestionnaire de fenêtre - pour que les icônes des punaiseurs et les panneaux s'affichent correctement - (c'est-à-dire sans les bordures et sous les autres fenêtres). - En particulier, vérifiez les options concernant les différentes - "couches" (au-dessus, en dessous, premier, dernier, etc...) et affectez le - punaiseur aux couches les plus basses. - - -Sawfish / sawmill - - Sawfish essaie de deviner si vous utilisez GNOME au démarrage - et désactive certaines fonctions si c'est le cas. - Vous devrez peut-être ajouter la ligne (require 'gnome) à - votre fichier .sawfishrc (lisez le manuel sawfish pour plus de détails). - - - -IceWM - - - Collez ces paramètres de configuration dans ~/.icewm/preferences : - - -# Manage root window (EXPERIMENTAL - normally enabled!) -GrabRootWindow=1 # 0/1 -# Bitmask of root window button click to use in window manager -UseRootButtons=3 # [0-255] -# Desktop mouse-button click to show the menu -DesktopWinMenuButton=1 # [0-20] -# Desktop mouse-button click to show the window list -DesktopWinListButton=2 # [0-5] -# Desktop mouse-button click to show the window list menu -DesktopMenuButton=0 # [0-20] - - -Et collez ceux-ci dans ~/.icewm/winoptions : - - -# ROX-Filer pinboard and panel -ROX-Filer.icon: folder -ROX-Panel.layer: Dock -ROX-Panel.doNotCover: 1 -ROX-Panel.ignoreWinList: 1 -ROX-Panel.ignoreTaskBar: 1 -ROX-Panel.ignoreQuickSwitch: 1 -ROX-Pinboard.layer: Below -ROX-Pinboard.ignoreWinList: 1 -ROX-Pinboard.ignoreTaskBar: 1 -ROX-Pinboard.ignoreQuickSwitch: 1 -ROX-Filer.layer: Normal - - -Redémarrez IceWM et le filer pour que les changements prennent effet. - - - - - - Window Maker - - - - Démarrez le filer comme ceci : rox -p=Default - - - - - - Appuyez sur Ctrl+Esc, ou - faites un clic droit sur la barre de titre de n'importe quelle - fenêtre. - Choisissez Attributes.... - - - - - - La fenêtre Attributes Inspector apparaît. Choisissez Window Specification - dans le menu, en haut (1er choix). - - - - - - Cliquez sur le bouton Select window. - Le curseur de la souris s'est transformé en double croix. Sélectionnez - une des icônes du punaiseur de ROX-Filer. Les - boutons radios dans le cadre Window Specification - doivent maintenant être modifiés et afficher ROX-Pinboard.ROX-Filer - pour le premier élément. Sélectionnez ce bouton radio. - - - - - - Dans le menu du haut, revenez à Window Attributes. - Dans le cadre Attributes, choisissez les caractéristiques - que vous voulez donnez aux icônes du punaiseur ; je vous recommande celles-ci : - - - Disable titlebar - Disable resizebar - Disable close button - Disable miniaturize button - Keep at bottom (sunken) - Omnipresent - - - - - - - - Toujours dans le menu du haut, choisissez Advanced Options. - Dans le cadre Advanced, choisissez les options qui vous conviennent ; - je vous recommande les suivantes : - - - Do not show in the window list - Ignore 'Hide Others' - Ignore 'Save Session' (éventuellement) - - - - - - - - Quand vous aurez fini, cliquez sur Save, et fermez - la fenêtre Attributes Inspector en cliquant sur le bouton X - dans la barre de titre. - - - - - - - Autres - - Si rien ne fonctionne, essayez la section "Compatibilité" de la boîte d'options. - - - - - - Exécution en tant que root - - - Si vous utilisez le filer en tant qu'utilisateur 'root', le filer affiche - un message en haut de chaque fenêtre pour vous le rappeler. L'utilisateur root - a le droit d'accéder à tous les fichiers du systèmes, ainsi que de les modifier, - soyez donc très vigilant quand vous utilisez le filer dans ces conditions. - - Normalement, vous devriez vous loguer en utilisateur ordinaire et vous changer - en root que lorsque vous en avez besoin. - Si sudo est installé et proprement configuré sur votre système, - vous pouvez exécutera le filer de cette façon : - - $ sudo rox - - Attention, souvenez-vous que tout ce que vous ferez sur n'importe quel fichier (y - compris les applications que vous exécuterez depuis ces fenêtres) sera effectué - avec les droits de root ! Soyez très prudent ! - - - - - Vous aurez peut-être un message du serveur X window qui vous dira que root (ou d'autres - utilisateurs) ne peut pas se connecter (ndt : "se connecter à X", ce qui veut dire que - l'utilisateur root, par exemple, ne pourra lancer aucune commande qui utiliserait X). - Une lecture des pages man pour xauth et xhost est - donc conseillée, mais ce mécanisme varie selon les systèmes (c'est pourquoi ça n'est pas - imtégré dans le filer !). - - - Note : La commande gnomesu peut aussi être utilisée pour exécuter - le filer en tant que root, mais vous devrez employer setsid pour - le démarrer dans une nouvelle session, sinon gnomesu le détruira avant qu'il n'ouvre - la moindre fenêtre. - Exemple : - gnomesu -c 'setsid /usr/local/bin/rox /' - - - - - - - Boutons de la souris et touches du clavier - -Premier aperçu succinct : - - Faites un clic gauche - Cette documentation suppose que le bouton–1 est le bouton gauche, le bouton–2 -est le bouton du milieu et le bouton–3 est le bouton droit. Ce n'est pas -toujours le cas — par exemple, dans une configuration pour gaucher. -pour ouvrir fichiers et dossiers. - - - Faites un clic droit pour obtenir un menu. Clic droit sur un fichier/dossier pour opérer une action sur celui-ci. - - - - - Glissez-déposez des fichiers entre des fenêtres avec le bouton gauche pour les copier, - les déplacer, les lier, etc... (action à choisir dans un menu). - Lier crée un raccourci vers le fichier original. - - - - - - - Par défaut, l'affectation des boutons de la souris correspond aux conventions de l'environnement X. - Ce comportement est toutefois hautement configurable — n'hésitez pas - à essayer les différentes options possibles, dans l'espace de configuration du filer si vous n'aimez pas les options par défaut. - Ces options induisent les comportements suivants : - - - - -Touche ou bouton de la sourisAction - - - - - Clic gauche - - Ouvre le fichier ou le dossier cliqué. Maintenez enfoncé Ctrl pour - sélectionner les objets au lieu de les ouvrir. - Maintenez enfoncé Shift pour voir à l'intérieur des dossiers-applications, - pour ouvrir les fichiers avec l'éditeur de texte, pour suivre les liens symboliques ou pour - mieux gérer les points de montage (voir ). - - - - - Clic sur le bouton du milieu - - Comme le bouton gauche, mais ouvre un dossier dans une nouvelle fenêtre ou ferme la fenêtre - du filer en ouvrant un fichier. - - - - - Clic droit - - Ouvre le menu principal. Maintenez enfoncé Ctrl en cliquant pour avoir - directement le sous-menu de sélection. - Maintenez enfoncé Shift pour accéder au menu Envoyer à... - (voir la section ). - - - - - Drag and drop d'un objet (bouton gauche) - - Affiche un menu vous permettant de choisir différentes actions. Vous pouvez désactiver cette - fonction de menu via une option, ce qui permettra de copier par défaut le(s) fichier(s) dans - la destination (un dossier-application ou une autre fenêtre du filer). - Maintenez enfoncé Shift pour déplacer le fichier, - Control+Shift pour créer un lien symbolique, ou - Alt pour avoir un menu avec les différentes actions possibles. - - - -Drag and drop d'un objet (bouton du milieu) - Comme ci-dessus, mais déplace toujours au lieu de copier ou de créer un lien symbolique. - Il y a une option pour choisir ce comportement ou l'affichage d'un menu. - - -'Glissé' avec un bouton, mais pas au-dessus d'un autre objet - Sélectionne un groupe d'objets en les entourant avec un bouton de la souris enfoncé. - Avec le bouton gauche, seuls les fichiers entourés seront sélectionnés. - Si vous maintenez enfoncé Ctrl, les objets entourés seront ajoutés à la sélection. - Si vous utilisez le bouton du milieu, alors les objets entourés - seront désélectionnés s'ils étaient sélectionnés, et inversement. - - -Double-clic sur le fond d'une fenêtre -Redimensionne la fenêtre correctement (cette fonctionnalité peut être désactivée dans l'espace de configuration). - - - - - Backspace (touche 'retour en arrière') - - - Affiche le dossier père. - - - -Touches de déplacement -Entoure les objets l'un après l'autre au fur et à mesure du déplacement. - - - -Page Haut, Page Bas -Affiche les objets se trouvant une page plus haut ou une page plus bas. - - -Début, Fin -Affiche le premier/dernier objet du dossier. - - -Entrée - Comme un clic gauche sur l'objet. - Vous pouvez maintenir enfoncé Shift pour modifier l'action, comme en cliquant. - En maintenant Alt enfoncée, l'effet sera identique à un clic avec - le bouton du milieu ; les dossiers s'ouvrent dans une nouvelle fenêtre, et l'ouverture d'un fichier - provoque la fermeture immédiate du dossier. - - -Barre d'espace - Bascule l'objet actuellement entouré de l'état sélectionné à non-sélectionné (et inversement) - et déplace le contour autour de l'objet suivant. - - - - - Tabulation, Shift+Tabulation - - - Déplace le contour vers l'objet sélectionné suivant/précédent. - - - - - - Immobiliser la souris au-dessus d'un objet - - - Affiche une bulle d'aide avec une description rapide de l'application (si une description est fournie), - avec la cible d'un lien symbolique, ou avec le nom complet d'un objet, si celui-ci est trop long pour - être affiché en entier. - - - - - - - Si vous avez activé la possibilité de définir les touches de raccourcis-clavier, alors - celles-ci peuvent facilement être choisies en ouvrant le menu (ndt : le menu qui contient - la commande qui doit être exécutée lorsque vous utiliserez le raccourci-clavier), en - positionnant le pointeur de la souris au-dessus de la commande désirée, et en pressant la - (les) touche(s) devant servir de raccourci. - La (les) touche(s) apparaît(ssent) maintenant dans le menu et peut(vent) désormais être utilisée(s) - comme raccourci(s). - Les touches de raccourcis sont automatiquement sauvées quand le filer est quitté. - Vous pouvez utiliser un 'XSettings manager' tel que ROX-Session pour activer cette fonction pour - toutes les applications Gtk+-2.0. - - - - - La sélection et les groupes de fichiers - -Quand des objets sont sélectionnés dans une fenêtre ROX-Filer, -le filer acquiert la "sélection primaire" (il copie leur nom). -Vous pouvez alors les coller dans une autre fenêtre pour obtenir le chemin des objets sélectionnés. - - - - Par exemple, si vous voulez charger un fichier dans une application qui ne supporte pas le <foreignphrase lang="en">drag-and-drop</foreignphrase> : - - Ouvrez la boîte 'Ouvrir...' de l'application. - - - Utilisez Ctrl et cliquez sur les fichiers dans une fenêtre ROX-Filer pour les sélectionner. - - - - Cliquez avec le bouton du milieu dans la boîte 'Ouvrir...' pour y coller les noms. - NDT : ça fonctionne aussi avec un XTerm... - - - - - Notez que la plupart des navigateurs internet ("web-browsers") ouvrent les fichiers dont vous "collez" - les noms en cliquant avec le bouton du milieu n'importe où dans la page (sauf un lien, bien sûr...). - - - Si vous sélectionnez autre chose (par exemple du texte dans un autre programme), les objets sélectionnés - dans la fenêtre du filer seront affichés grisés (car le filer n'aura plus la "sélection primaire"). - Si vous cliquez sur un des objets grisés, vous redonnerez au filer la "sélection primaire". - - -Enregistrer et restaurer la sélection - - Il est parfois utile de sauvegarder la sélection courante pour une utilisation ultérieure. - Vous pouvez en enregistrer 10 en appuyant sur Ctrl+<chiffre>. - Vous pouvez restaurer une sélection en appuyant seulement sur le chiffre utilisé. - Vous pouvez aussi restaurer des sélections si un dossier différent est affiché, et même si vous utilisez une fenêtre différente. - - - Cette fonction de sauvegarde est très utile même si rien n'est sélectionné, puisque le filer enregistre quand même le nom du dossier courant. - - - - Exemple : pour enregistrer un dossier et y retourner plus tard : - - Vous avez un dossier affiché dans une fenêtre et vous souhaitez le "bookmarker". - Appuyez sur Ctrl+1. - - - - - Affichez un autre dossier, ou fermez la fenêtre, ou... etc. - - - Appuyez sur 1 (NDT : Shift+1) dans n'importe quelle fenêtre - pour retourner dans le dossier que vous avez enregistré. - - - - Les groupes sont automatiquement enregistrés et seront donc accessibles pour une autre session du filer. - - - - - - <anchor id="Toolbar" xreflabel="Toolbar"/>La barre d'outils - - -Par défaut, chaque fenêtre affiche en haut une barre d'outils. Vous pouvez la désactiver -(ou la rendre plus grande) dans l'espace configuration ('Options...'), et vous pouvez -sélectionner les outils devant y apparaître. Normalement, vous devriez cliquer avec le -bouton gauche (1). Mais beaucoup d'outils peuvent accomplir une fonction différente s'ils -sont sollicités avec le bouton du milieu ou le bouton droit. - - - - - - -Icône -Bouton gauche (1) -Autre bouton - - - - - - - Croix - Fermer la fenêtre - Ouvrir une nouvelle fenêtre - - - Flèche vers le haut - Affiche le dossier père - ... dans une nouvelle fenêtre - - - Maison - Affiche le dossier "Home" - ... dans une nouvelle fenêtre - - - Aller à - Affiche le - Édite les signets - - - Flèches tournantes - Rafraîchir - Ouvrir une nouvelle fenêtre - - - Loupe (+) - Sélectionne une taille d'icônes plus grande. - Sélectionne une taille d'icônes plus petite. - - - Loupe (zone) - Sélectionne le mode 'Taille automatique'. - - - - - Liste - Affiche/Masque le détail des objets - Idem - - - A..Z - Passe au critère de tri suivant. - Passe au critère de tri précédent. - - - Œil - Bascule entre l'affichage et le masquage des fichiers cachés (ceux dont le nom commence par un point) - Idem - - - Liste avec sélections - Sélectionne tout. - Inverse la sélection. - - - Bouée - Affiche les fichiers d'aide de ROX-Filer - Ouvre directement le manuel - - - - -[1] -Si l'option 'Fenêtres uniques' est activée, l'action par défaut est d'ouvrir -une nouvelle fenêtre — et cliquer avec l'autre bouton utilise la même -fenêtre (le comportement du filer est inversé). - - - - Glisser-déposer des objets sur les outils 'Flèche vers le haut' ou 'Maison', - produit le même effet que de les glisser-déposer vers les dossiers auxquels - ces outils mènent. Glisser-déposer sur l'outil 'Signets' créera un signet - pour cet objet. - - - La barre d'outils peut aussi montrer le nombre de fichiers dans un dossier, - et quelques informations sur la sélection. - Ceci peut être activé/désactivé dans l'espace configuration ('Options...'). - - - - - Les menus - -Vous pouvez ouvrir un menu en faisant un clic droit sur un punaiseur, un panneau ou une fenêtre de filer. - -Dans les fenêtres du filer, vous pouvez aussi utiliser \ pour ouvrir le menu. Il -existe un raccourci pour afficher le sous-menu 'Fichier' directement : maintenez enfoncée la touche -Ctrl en ouvrant le menu. Voici une description complète de toutes les commandes : - - - -CommandeAction - - - -Affichage -Pour modifier l'affichage. - - -Fichier -Opérations sur les objets sélectionnés. - - -Sélectionner -Pour contrôler quels objets sont sélectionnés. - - -Options... -Configure ROX-Filer. - - -Nouveau -Crée un nouveau fichier ou dossier à l'intérieur de ce dossier. - - -Fenêtre -Opérations diverses agissant sur la fenêtre. - - -Aide - Information sur le filer. - - - - - - - - Le menu Affichage - - - - -CommandeAction - - - - Icônes - Les fichiers sont affichés sous forme de "lignes d'icônes", sans détail. - - - - Icônes, avec... - - Les fichiers sont affichés sous forme de "lignes d'icônes", avec des détails en plus - (choisis dans le sous-menu). Pour voir toutes les informations sur chaque fichier, - utilisez plutôt 'Liste'. - - - - - Liste - - Affiche les fichiers et tous les détails. - Cliquez sur le titre d'une colonne pour activer le tri correspondant à cette colonne - (un nouveau clic inversera le tri). - - - - - Icônes plus grandes - - Augmente la taille des icônes. Désactive le mode 'Automatique'. - - - - - Icônes plus petites - - Diminue la taille des icônes. Désactive le mode 'Automatique'. - - - - - Automatique - - Le filer choisit une taille d'icône adéquate pour la fenêtre active, - lors de chaque changement de dossier, etc... - - - - - Trier par XXX - - Définit le critère de tri. - Dans la vue 'Liste', vous pouvez aussi définir le critère de tri en cliquant - sur le titre des colonnes. - - - - - Inversé - - Inverse l'ordre de tri (du plus récent au plus ancien, du plus gros au plus - petit, etc...). - - - - - Montrer les fichiers cachés - - Si cette option est activée, les objets commençant par un point sont affichés, - sinon, ils sont cachés. La barre de titres affiche (All) - quand cette option est activée. - - - - - - Filtrer des fichiers... - - - Contraint ROX à n'afficher que les fichiers dont les noms correspondent - à un certain motif. - La barre de titre affichera (Glob (motif)) si un filtre est utilisé. - - - - - - Filtrer les répertoires avec les fichiers - - - Applique aux répertoires également, le filtre défini dans Filtrer des fichiers.... - - - - - Montrer les vignettes - - Activée, le filer essaiera de lire chaque fichier-image et d'utiliser cette - image comme icône pour ce fichier. Très utile quand vous avez un dossier - rempli de photos et que vous en cherchez une dont le nom vous échappe ! - Voir la section . - - - - - Rafraîchir - - Relit le contenu du dossier et les détails de tous les fichiers s'y trouvant. - Utilisez cette commande si l'affichage n'est plus à jour. - - - - - - Sauver les options d'affichage... - - - Sauve les options d'affichage du dossier courant. Chaque fois que vous - ouvrirez ce dossier, ces options seront utilisées. - - - - - - - - - -<anchor id="Permissions" xreflabel="Permissions"/> - Permissions - - - -Le champ permissions, quand il est affiché, est composé de quatre groupes de trois caractères. -Chaque caractère est une lettre, si la permission à laquelle le caractère réfère est attribuée, -sinon, ce caractère est un tiret (–). -Les trois premiers caractères montrent les permissions pour le propriétaire du fichier, -les trois suivants, pour les autres utilisateurs appartenant au groupe du fichier, -les trois suivants, pour le reste du monde. -L'utilisateur ayant démarré ROX-Filer se voit situé dans les permissions -par leur soulignement. -Les trois derniers caractères montrent les permissions spéciales. - -Les lettres représentant les permissions ont la signification suivante : - - - -r — -Permission de lire le contenu d'un fichier, ou le nom des fichiers d'un dossier. - -w — -Permission de modifier le contenu d'un fichier, ou de changer le contenu d'un dossier (renommer un fichier, par exemple). - -x — -Permission d'exécuter un fichier (un programme), ou de référer aux fichiers d'un dossier (nécessaire pour voir son contenu). - -U — -Ce programme s'exécute avec l'identification de son propriétaire (user ID) plutôt qu'avec celle de l'utilisateur qui l'exécute. - -G — -Ce programme s'exécute avec l'identification de son groupe (group ID), peut importe qui l'exécute. - -T — -Les objets d'un tel dossier ne peuvent être supprimés que par les utilisateurs qui sont les propriétaires de ceux-ci, -même si une permission d'écriture (w) existe sur le dossier. - - -Par exemple, - -rwx,rwx,r-x/--- -signifie que le propriétaire de ce fichier est le même utilisateur que celui qui se sert de ROX-Filer -(autrement dit, *vous* êtes le propriétaire de ce fichier), vous et tous les utilisateurs du groupe avez les droits -de lecture, d'écriture et d'exécution ; quant au reste du monde, il peut lire et exécuter ce fichier. -Il n'y a pas de 'permissions spéciales'. - -Les règles qui régissent l'application des permissions peuvent varier d'un système d'exploitation à un autre, -mais elles peuvent être considérées comme suit : - - - -Si l'identité de l'utilisateur (user ID) qui utilise ROX-Filer est la même que -celle du propriétaire du fichier, les permissions du propriétaire s'appliquent. - - -Si l'identité du groupe (group ID) de l'utilisateur est la même que celle du groupe du fichier, OU si -le groupe du fichier est le même qu'un des groupes auxquels l'utilisateur appartient, les permissions du groupe s'appliquent. - - -Autrement, les 'autres' permissions s'appliquent. - - - - - - - - - - Le menu Fichier - - Si vous ouvrez le menu alors que plusieurs objets sont sélectionnés, l'opération - s'applique alors à tous ces objets. Si vous ouvrez le menu en cliquant droit sur - un objet, alors qu'il n'y a pas de sélection, l'objet cliqué est alors temporairement - sélectionné. - - - Si vous choisissez une commande du menu sélection sans qu'il n'y ait de - sélection, vous entrez en mode 'cible' ; l'opération choisie s'appliquera au prochain - objet choisi. Cliquez sur le fond de la fenêtre, appuyez sur Echap ou - faites un clic droit pour sortir du mode 'cible'. Le mode 'cible' est surtout utile si - vous utilisez l'option Navigation en simple clic ou pour utiliser - avec des raccourcis claviers. - - - Notez que pour les dossiers-applications, il peut y avoir quelques commandes qui sont - ajoutées au début de ce sous-menu quand vous cliquez sur ceux-ci — voir la section - pour plus de détails. Vous pouvez créer des commandes supplémentaires - qui apparaîtront en haut, en fonction du type de fichier sur lequel vous aurez cliqué. - Pour cela, choisissez la commande Personnaliser. - Par exemple, vous pourriez faire apparaître The Gimp pour toutes - les images, et FreeFS pour les points de montage. - - - CommandeAction - - - - - Copier... - - - Copie cet objet. - - - - - - Renommer... - - - Change le nom de cet objet, ou le déplace vers un autre dossier. - Si plusieurs fichiers sont sélectionnés, la boîte est affichée. - - - - - - Lier... - - - Crée un lien symbolique vers cet objet. - - - - - - Supprimer - - - Supprime tous les objets sélectionnés du dossier courant. Le contenu des sous-dossiers - sera supprimé en premier. Supprimer un lien symbolique ne supprime que le lien, pas la - cible de ce lien. - - - - - - Shift Ouvrir - - - Ouvre les dossiers-applications comme s'il s'agissait de simples dossiers, - ouvre les fichiers comme s'il s'agissait de simple texte brut, ou ouvre le - dossier contenant la cible du lien symbolique sur lequel vous "shift-cliquez". - Sur des points de montage, on peut noter des effets intéressants (voir ). - C'est la même chose que de cliquer en maintenant Shift enfoncé. - La commande du menu sélection prend alors le nom de la commande a effectuer. - - - - - - Envoyer à... - - - Ouvre le menu 'Envoyer à...', ce qui permet d'envoyer les objets à une application. - Voir la section . - - - - - - Fixer l'action d'exécution... - - - Cette commande vous permet de choisir l'application qui sera utilisée pour - ouvrir les fichiers de ce type. Lire la section - pour plus de détails. - - - - - - Fixer l'icône... - - - Vous pouvez affecter une icône différente pour chaque fichier/dossier en - utilisant cette commande — glissez-déposez simplement une icône sur . - - - - - - Propriétés - - - Affiche plus de détails sur l'objet. - Vous pouvez aussi modifier les permissions d'accès à partir de cette boîte (la commande - Permissions vous permet quant à elle d'appliquer des - modifications sur plusieurs fichiers simultanément), ainsi que la cible d'un lien symbolique. - - - - - - Compter - - - Fait le total de l'espace occupé par les objets sélectionnés. Le contenu des dossiers - sélectionnés est aussi compté. Les liens symboliques sont comptés, mais pas leur cible. - - - - - - Fixer le type... - - - Cette commande vous permet de changer le type MIME d'un fichier, seulement sur les sytèmes - de fichiers qui bénéficient des "attributs étendus". - Si vous utilisez un système de fichiers plus ancien, vous devrez renommer le fichier (ndt : son - extension) pour changer son type MIME. - - - - - - Permissions - - - Cette commande vous permet de changer les permissions des objets sélectionnés. - Si vous ne devez changer les permissions que pour un fichier, vous pouvez utiliser - la commande Propriétés, qui est plus simple. - - - - - - Chercher - - - Cherche des fichiers en spécifiant différentes conditions — voir la section - . - - - - - - - Note à propos des liens symboliques : - -Un lien symbolique enregistre l'emplacement d'un autre fichier/dossier. -Supprimer un lien symbolique n'affecte en rien la cible vers laquelle celui-ci pointe. -Supprimer la cible rendra le lien symbolique inutile. -Il y a deux types de liens symboliques — Relatif et Absolu. Un lien absolu -enregistre le chemin complet de la cible (ex /home/fred/MonFichier). -Un lien relatif enregistre le chemin relatif menant jusqu'à la cible (ex ../fred/MonFichier). -Si la cible est censée ne jamais être déplacée, utilisez un lien absolu (vous pourrez -déplacer celui-ci), mais si vous pensez que la cible peut être déplacée (le lien devra -l'être aussi...), alors optez pour un lien relatif. - - - - - - Le menu Sélectionner - - - CommandeAction - - - - Tout sélectionner - - - Sélectionne tous les objets de cette fenêtre. - - - - - Oublier la sélection - - - Dé-sélectionne tous les objets de cette fenêtre. - - - - - Inverser la sélection - - - Dé-sélectionne tous les objets sélectionnés, et sélectionne tous - les objets non sélectionnés. - - - - - - Sélectionner par nom... - - - Ne sélectionner que les objets dont le nom correspond à un - certain motif. Cette commande n'est pas aussi puissante que - Sélectionner si... (cf. ci-dessous), - mais elle est plus rapide à utiliser. Les fichiers sont sélectionnés - automatiquement au fur et à mesure de la saisie. - Le raccourci-clavier par défaut est ., ce qui - vous permet de ne saisir que .png pour - sélectionner tous les fichiers .png, par exemple. - - - - - - Sélectionner si... - - - Ne sélectionner que les objets qui correspondent à certains critères - — voir la section . - - - - - - - - - Le menu Nouveau - - -Chaque commande de ce sous-menu ouvre une boîte pour créer un nouveau fichier -ou un nouveau dossier. -Il y a trois commandes de base ; les autres reflètent le contenu de votre -dossier ~/.config/rox.sourceforge.net/Templates, s'il existe. - - - -CommandeAction - - - Répertoire - Crée un nouveau répertoire. - - - Fichier vide - Crée un fichier vide. - - - Personnaliser le menu... - Affiche le dossier Templates pour que vous puissiez ajouter des éléments au menu. - - - <commandes supplémentaires> - Copie un fichier depuis votre dossier Templates. - - - - - - -Pour ajouter vos propres commandes, choisissez Personnaliser le menu... -et enregistrez-y tous les fichiers que vous souhaitez. Chaque fichier de ce dossier apparaîtra -dans le menu et la boîte qui s'ouvrira le copiera. -Par exemple, vous pourriez créer une base pour un fichier HTML : - - -<html> - <head> - <title>Ma Page</title> - </head> - <body> - Le contenu. - </body> -</html> - - -Enregistrez ceci sous le nom index.html dans le dossier -Templates et vous pourrez ainsi facilement créer de nouveaux fichiers HTML. -Vous pouvez aussi y enregistrer des documents vides de toutes sortes d'applications (e.g. : une -feuille de calcul, une lettre ou un fax, etc...). - -Notez que pour l'instant, vous ne pouvez pas créer de raccourcis-clavier pour ces commandes personnalisées. - - - - - Le menu fenêtre - - - - -CommandeAction - - - - Père, nouvelle fenêtre - Ouvre une nouvelle fenêtre pour afficher le contenu du dossier père. - - - - Père, même fenêtre - Comme ci-dessus, mais utilise la même fenêtre. - - - - Nouvelle fenêtre - Ouvre une nouvelle fenêtre avec le même dossier courant. - - - - Répertoire Home - Affiche le contenu de votre répertoire personnel. - - - - Afficher les signets - Ouvre le menu des signets (voir ). - - - - Suivre les liens symboliques - - Convertit le chemin affiché dans la barre de titre en son nom canonique. - Par exemple, si /home/fred/lien est un lien symbolique - pointant sur /usr/share/doc/, cliquer le lien vous - amènera dans ce dossier, et remonter avec la flèche vous ramènera dans - /home/fred. - Si vous aviez utilisé Suivre les liens symboliques, - vous seriez revenu dans /usr/share. - - - - - Changer taille de la fenêtre - Ajuste la taille de la fenêtre à son contenu. - - - - Fermer la fenêtre - Ferme la fenêtre. - - - - Entrer un chemin... - Ouvre un "espace de saisie" pour ouvrir un autre dossier (voir section ). - - - - Commande shell... - Ouvre un "espace de saisie" pour exécuter une commande shell (voir section ). - - - - Xterm ici - Ouvre un xterm avec ce dossier comme dossier courant. - - - - Remplacer par un xterm - Ouvre un xterm avec ce dossier comme dossier courant, et ferme la fenêtre du filer automatiquement. - - - - - - - - Le menu Aide - - - - - - Commande - Action - - - - - - Au sujet de ROX-Filer... - - - Affiche des informations sur le fichier. C'est la même chose que de localiser ROX-Filer - dans une fenêtre du filer et de sélectionner Propriétés - dans le menu Fichier. - - - - - Montrer les fichiers d'aide - Même chose que de localiser ROX-Filer et de sélectionner Aide dans - le menu Fichier. - - - - - Manuel - - - Ouvre le manuel HTML correspondant à votre langue, ou la version anglaise si la traduction n'a - pas été réalisée. - - - - - - - - - - - <anchor id="SendTo" xreflabel="Send To menu"/>Le menu 'Envoyer à...' - - Le menu 'Envoyer à...' permet d'envoyer très facilement un (des) objet(s) à une application. - Le filer cherche le dossier - $XDG_CONFIG_DIRS/rox.sourceforge.net/SendTo (voir BaseDir) - et liste son contenu dans ce menu. - - - Pour changer les applications qui apparaissent ici, vous pouvez utiliser la commande - Personnaliser qui se trouve en bas du menu ; elle créera si - nécessaire le dossier SendTo et l'ouvrira. - Vous pouvez placer dans ce dossier des liens symboliques en glissant/déposant des applications - et en choisissant Lier dans le menu qui apparaît. - - - L'affichage du menu 'Envoyer à...' via le menu principal est plutôt lent ; vous devriez l'ouvrir - en cliquant sur un fichier avec le bouton droit en maintenant la touche Shift - enfoncée. - - - - Afficher différentes applications selon les types MIME - - Vous pouvez personnaliser votre environnement pour que, par exemple, - seul "The Gimp" soit affiché quand une image est sélectionnée. - Pour cela, créez un dossier caché dans SendTo nommé - .image, ou portant le nom d'un autre type MIME. - Vous pouvez utiliser le nom complet d'un type MIME (par ex .image_png) - ou juste le "media type". Utilisez Propriétés sur un fichier pour - connaître son type MIME. - - - Les objets créés dans ces dossiers cachés ne sont affichés que pour les fichiers correspondant - au type MIME décrit par le nom dudit dossier. Si plusieurs fichiers sont sélectionnés, le dossier - .group est alors utilisé. - - - - - - <anchor id="bookmarks" xreflabel="Bookmarks menu"/>Le menu signets - - Le menu signets trouve son utilité dans la mémorisation de chemins de dossiers - souvent utilisés. Vous pouvez aussi ouvrir ce menu depuis le menu principal - (dans le sous-menu Fenêtre) et vous pouvez donc y affecter - un raccourci-clavier. - Dans ce menu, vous pouvez choisir d'ajouter à la liste le dossier actuellement affiché, - d'aller directement dans un des dossiers enregistrés, ou bien d'ouvrir une boîte de - dialogue vous permettant de modifier cette liste. - Dans cette boîte, vous pouvez retirer des dossiers de la liste, les classer (en utilisant - les flèches ou en les faisant glisser) et modifier les chemins directement si vous le souhaitez. - - - Le sous-menu Récemment visités propose un historique des derniers - dossiers affichés, dans lesquels vous pouvez vous rendre d'un simple clic. Le dossier actif, s'il - est dans ce sous-menu, est désactivé puisque vous êtes déjà dans celui-ci. - - - - - - - Le punaiseur et les panneaux - -Les sections et expliquent -comment activer/désactiver le punaiseur et les panneaux. Quand ils sont activés, -vous pouvez déposer des objets dessus en les glissant depuis une fenêtre du filer. -Cliquer sur un objet du punaiseur ou d'un panneau revient à cliquer sur l'objet -auquel le premier fait référence (ndt : comme un lien). Vous pouvez aussi glisser-déposer -les icônes du punaiseur et des panneaux comme des objets normaux, et pour les modifier, -faites un clic droit dessus. - - - Vous pouvez arranger les icônes des panneaux en les faisant glisser avec le bouton du milieu. - Dans les versions précédentes du filer, les icônes du punaiseur étaient aussi déplaçables avec - le bouton du milieu ; ce n'est désormais plus possible, l'usage de celui-ci étant réservé au - gestionnaire de fenêtres. - - - Vous pouvez affecter des raccourcis-clavier aux icônes des punaiseurs et des panneaux. Ils - pourront être utilisés pour ouvrir rapidement des dossiers, des fichiers ou des applications, - même si une autre fenêtre a le focus. - - - Tout changement apporté au punaiseur et aux panneaux est immédiatement enregistré. - Si vous cliquez sur ces icônes en maintenant Ctrl enfoncé, - vous les sélectionnerez/dé-sélectionnerez. Cliquez ailleurs sur le bureau pour tout dé-sélectionner. - - - - - Déposer des objets sur le punaiseur ou les panneaux NE LES COPIE PAS, cela - crée seulement un raccourci vers l'objet original. Si vous effacez l'objet - original, vous le perdez ! Supprimer une icône du punaiseur ou d'un panneau - ne supprime que celui-ci. Ce comportement diffère de celui des autres gestionnaires - de fichiers, en général... - - - - - Les menus du punaiseur et des panneaux - - - -CommandeAction - - - -ROX-Filer -Affiche l'aide, la boîte des options, ou votre dossier personnel. - - - - Fichier 'fichier' -Ouvre le même menu que le menu 'Fichier' du filer, mais en simplifié. - - - -Éditer l'objet -Modifier le nom qui est affiché sous l'icône, ou le chemin de l'objet vers lequel -pointe l'icône. Vous pouvez aussi assigner un raccourci-clavier à cet objet, -et le vérouiller pour éviter de l'enlever accidentellement. -Pour les programmes, vous pouvez préciser des arguments à passer. - - - -Voir l'emplacement -Ouvre une fenêtre montrant le dossier où est enregistré l'objet original. - - - -Enlever le(s) objet(s) -Supprime du punaiseur ou des panneaux les objets sélectionnés. - - - - - Image de fond... - - - Définit l'image de fond pour le punaiseur (voir ci-dessous). Disponible dans - le menu du punaiseur seulement. - - - - - Options du panneau... - - Définit le côté de l'écran utilisé par le panneau - (commande disponible seulement dans le menu du panneau). - - - - - - - - - Si vous mettez en place les icônes par défaut pour plusieurs utilisateurs - et que vous souhaitez créer une icône 'Home' qui pointe vers le dossier - personnel de chaque utilisateur, créez une icône, choisissez - Éditer l'icône et mettez ~ - pour le chemin. - - - Notez que des applications peuvent ajouter des commandes au début de ce - menu quand vous cliquez dessus — voir la section - pour plus de détails. - - - - - - 'Appliquettes' pour les panneaux - - -ROX-Filer vous permet d'exécuter de petits programmes à l'intérieur des panneaux -— ces programmes sont appelés appliquettes. Pour démarrer une appliquette, -glissez-déposez-la sur un panneau, depuis une fenêtre du filer et au lieu de voir l'icône apparaître, -vous verrez l'appliquette démarrer. - - - Pour créer vos propres appliquettes (pour les programmeurs !) : - - -Créez un dossier pour l'appliquette (ex MonAppliquette). - - - - - Utilisez la commande Fixer l'icône... pour créer - une icône appelée .DirIcon à l'intérieur de ce dossier - (celui-ci apparaîtra avec cette icône). - - - - - - Créez-y un dossier Help, qui sera affiché quand les utilisateurs - choisiront Aide dans le menu. - - - - - - Créez un exécutable appelé AppletRun. - Lorsque le dossier de l'appliquette sera glissé sur un panneau, ROX-Filer lancera cet - exécutable avec pour argument un identifiant XID, correspondant à une fenêtre-socket - pour ce panneau. Vous pouvez utiliser l'identifiant pour créer une widget GtkPlug. - Un tutoriel est disponible ici : - - - - - - - - <anchor id="iconify" xreflabel="Iconified windows"/>Fenêtres iconifiées sur le punaiseur - - Quand le punaiseur est utilisé, ROX-Filer peut afficher une icône pour chaque fenêtre iconisée (ou - "réduite"). Vous pouvez activer/désactiver cette fonctionnalité dans la boîte Options. - Les icônes des fenêtres réduites sont sur un fond semi-transparent et peuvent être déplacées à la souris. - Si vous cliquez sur une de ces icônes, celle-ci reprendra la taille normale de l'application qu'elle représente. - Quelques anciens gestionnaires de fenêtres ne sont pas compatibles avec cette fonctionnalité, et n'affichent - donc pas ces icônes. - - - - - <anchor id="backdropapp" xreflabel="Backdrop applications"/>L'image de fond - - Vous pouvez choisir une image de fond pour le punaiseur en choisissant Image de fond... - dans le menu du punaiseur (clic droit sur le bureau quand le punaiseur est activé). - - - Pour choisir une image, choisissez Centrer, Redimensionner, - Étirer ou Paver pour le style, puis faites glisser une image dans l'emplacement prévu. - Pour retrouver un bureau avec une simple couleur (définie dans la boîte Options), cliquez sur - Effacer. - - - L'application Wallpaper peut être utilisée pour appliquer des - effets avancés, comme choisir une nouvelle image aléatoirement toutes les heures, ou - afficher une image de la Terre grâce au programme xearth, par exemple. - - - Pour les programmeurs... - - Si vous voulez créer une application qui gère le fond d'écran (par exemple pour choisir une image au hasard - ou pour faire un diaporama), vous devez d'abord créer un dossier-application (voir ). - - - - Exécutée sans argument, l'application doit invoquer la méthode SOAP SetBackdropApp - (voir ). Le filer ré-exécutera immédiatement l'application, cette fois avec l'option - . - - - Exécutée avec l'option , l'application doit afficher le style et le nom de - l'image utilisée sur sa sortie standard, ie : - tile /tmp/image.png - centre et scale sont les 2 autres styles acceptés. - Le filer va ensuite charger cette image et l'afficher. L'application ne gère pas l'affichage de - l'image, elle indique seulement au filer quoi afficher. - - - Dans le cas d'une application qui choisirait une image aléatoirement, elle peut s'arrêter immédiatement. - Si l'application a créé une image temporaire, elle doit lire la ligne "ok\n" sur son entrée standard avant - d'effacer l'image. - - - Si l'application doit afficher une séquence d'images, elle doit toujours lire "ok\n", puis attendre - jusqu'à ce que le moment soit venu d'afficher l'image suivante, afficher le nom du fichier, et ainsi de suite. - - - Le filer indiquera à l'application qu'elle doit s'arrêter en fermant les deux "flux" (entrée et sortie). - L'application devra alors nettoyer et sortir proprement à ce moment. - Vérifiez que SIGPIPE soit bien géré quand vous écrivez sur la sortie standard si vous devez supprimer - des fichiers temporaires. - - - Voyez l'application Wallpaper pour un exemple détaillé (écrit en python). - - - - - - - <anchor id="media" xreflabel="Removable devices"/>Périphériques amovibles - - L'utilisation de périphériques amovibles avec ROX-Filer (tels que les lecteurs de disquettes - et de CD-ROM) est relativement simple, mais il est toutefois important de bien comprendre - ce que sont le montage et le démontage de périphériques. - - - Monter un périphérique implique l'affichage de son contenu dans le système de fichiers. - Dans une installation courante, le dossier /floppy (NDT : le dossier - /mnt/floppy est peut-être plus courant dans les distributions "grand public") - est un dossier vide du disque dur. - Le lecteur de disquettes est ensuite monté sur ce dossier, ce qui a pour effet d'afficher son - contenu à l'intérieur de celui-ci. Par exemple, un fichier nommé Letter sur - la disquette apparaîtra comme /floppy/Letter. - - - Les périphériques doivent être démontés avant d'être éjectés. Les démonter oblige le système à - y écrire les données qui peuvent être encore en zone tampon. Si vous retirez un périphérique - amovible sans le démonter, il pourra être endommagé. Les lecteurs de CD-ROM et de disquettes Zip - bloquent généralement l'éjection quand le périphérique est monté afin que vous ne puissiez pas - les éjecter accidentellement. - - - Afin de ne pas avoir à préciser à chaque fois quel périphérique doit être monté à quel endroit - du système de fichiers, une liste est déjà établie et peut généralement être trouvée dans le - fichier /etc/fstab. ROX-Filer affiche les points de montage qui y sont - décrits (tel que /floppy) mais non montés, avec des cercles gris - translucides par-dessus leur icône. - - - Cliquer sur un de ces points de montage provoquera le montage du périphérique associé. - Le cercle deviendra alors vert pour indiquer que le périphérique est monté. - N'enlevez pas le périphérique si le cercle est vert ! Vous pouvez - le démonter en cliquant (avec la touche Shift enfoncée) sur l'icône du - dossier /floppy. - - - Vous pouvez aussi démonter un périphérique en fermant la fenêtre du dossier qui affiche - son contenu (i.e., en fermant la fenêtre /floppy) et en choisissant - Démonter dans la boîte de dialogue qui s'affichera. Le filer ne vous proposera un tel - démontage que s'il a aussi réalisé le montage. - - - Si vous voulez ouvrir un dossier sans monter le périphérique qui lui est normalement - associé, (i.e., si vous voulez voir le contenu de /floppy sur le - disque dur), vous pouvez cliquer sur le point de montage non monté avec la touche - Shift enfoncée. - Ce n'est généralement pas très utile, puisque ces dossiers sont souvent vides. - - - - - - <anchor id="thumbnails" xreflabel="Thumbnails"/>Imagettes - - Quand cette fonction est activée, le filer peut afficher les fichiers images avec une icône - représentant le contenu de ceux-ci, au lieu d'une icône générique. Très utile pour - organiser un dossier rempli de photos ! Vous pouvez activer cette fonction pour le dossier - en cours en choisissant la commande Montrer les vignettes - du menu Affichage. Vous pouvez aussi activer cette option par - défaut dans la boîte Options. - La barre de titres affiche (Imagettes) quand cette option est active. - - - Les vignettes sont enregistrées dans ~/.thumbnails pour un - affichage ultérieur plus rapide. - Lors de l'affichage des vignettes, une barre de progression est présente en bas - de la fenêtre. Vous pouvez stopper ce processus en cliquant sur le bouton - Annuler, qui se trouve à côté de la barre de progression. - Vous pouvez demander au filer qu'il crée des vignettes pour d'autres types de fichiers, - comme les vidéos par exemple (i.e. en montrant la première image), grâce à un logiciel - adéquat. - - - Détails techniques - - En mode 'Imagettes', ROX-Filer vérifie le - dossier ~/.thumbs/normal pour chaque fichier passé en revue. - Si une vignette existe, il la charge et passe au fichier suivant. - - - Pour générer la vignette d'un fichier de type media/subtype, le - filer recherche un exécutable - nommé ~/.config/rox.sourceforge.net/MIME-thumb/media_subtype, - en se rabattant sur ~/.config/rox.sourceforge.net/MIME-thumb/media s'il - ne le trouve pas. Si aucun des deux ne peut être trouvé et que le fichier est du - type image/*, les routines internes sont alors utilisées. Si le fichier n'est pas - du type image/*, la vignette ne sera pas générée. - - - Si l'exécutable est trouvé, il est démarré avec les paramètres - thumbnailer /path/to/source/file /path/to/thumbnail pixel_size. - - - Quand celui-ci est terminé, le filer essaie de charger - /path/to/thumbnail. En cas d'échec, la vignette n'est pas - montrée. - - - Notez les nombreuses étapes nécessaires ! ROX-Filer utilisera volontiers une vignette - existante, même s'il ne sait pas comment celle-ci a été générée. - - - - - - - - <anchor id="vfs" xreflabel="Virtual file systems"/>Systèmes de fichier virtuel (VFS) - - - Certains types de fichier peuvent être représentés sous forme de dossier. - Un exemple typique est le fichier zip, qui contient une structure complète - et compressée d'un dossier. - Il peut être très pratique d'ouvrir un tel fichier comme s'il s'agissait - d'un vrai dossier ; c'est ce que vous permet de faire le système VFS. - - - Pour utiliser cette fonctionnalité, vous devez disposer d'un système comme - AVFS AVFS, qui permet au noyau d'intégrer directement - le support de différents systèmes de fichiers virtuels. - - - - Il y a différentes façons d'utiliser AVFS. L'exemple suivant montre comment - l'utiliser avec un noyau Linux 2.6 et FUSE. Vous devez donc disposer d'un - noyau qui gère FUSE, et le paquet 'libfuse-dev' doit être installé. - - - Installer AVFS avec Linux 2.6 - - Téléchargez la version CVS d'AVFS (la version actuelle, datant de juillet 2005, - est trop ancienne). - - Compilez AVFS (sh autogen.sh; ./configure; make). - - Déplacez-vous dans le sous-dossier avfs/fuse et exécutez - ./compile.sh. - - Créez un point de montage : mkdir ~/.avfs-mount. - - Démarrez AVFS : ./avfsd ~/.avfs-mount. - - - - Vous devez ensuite configurer ROX-Filer pour qu'il ouvre - les fichiers zip (et autres archives) comme des dossiers, en utilisant AVFS. - Fixez l'action d'exécution pour un fichier archive de cette manière (Fixer l'action d'exécution...) : - rox ~/.avfs-mount/"$1#" - - - - - Notez bien que toutes les étapes ci-dessus doivent être suivies en tant - que simple utilisateur, pas en tant que root. - Vous devrez peut-être faire partie d'un groupe particulier pour utiliser - FUSE (vérifiez le groupe de /usr/bin/fusermount). - - - - Si vous ne voulez pas AVFS comme action principale pour ces fichiers, vous - pourriez créer un script se résumant à la commande ci-dessus et l'ajouter au - menu Fichier, via la commande Personnaliser le menu.... - - - - - - <anchor id="mini" xreflabel="Minibuffer"/>Le mini-buffer - - -Le mini-buffer est une barre blanche qui apparaît le long de la fenêtre du filer, -en bas, et qui vous permet d'entrer du texte. -Pressez Echap pour vous en débarrasser. Le mini-buffer se comporte différemment, -selon la manière dont il a été appelé : - - - - Entrer un chemin... - - -Vous pouvez taper un chemin, directement. Au fur et à mesure que vous tapez, l'affichage de la fenêtre est mis à jour -pour vous montrer l'objet qui correspond à ce que vous êtes en train de taper. -L'utilité de cette commande réside dans la recherche d'un fichier dans un dossier très fourni, mais vous pouvez -vous en servir pour passer directement à un autre dossier, ou pour coller un chemin complet que vous aurez copié -depuis une autre fenêtre. - - - -ToucheAction - - - -Entrée -Ouvre l'objet sélectionné. - - - -Tabulation -Complétion "à la shell" (comme dans xterm). - - - -Haut, Bas -Sélectionne graphiquement la correspondance précédente/suivante. - - - - - - -Si vous commencez à taper un nom commençant par un '.', la commande Montrer les fichiers cachés -est temporairement activée pour que les fichiers puissent être affichés. - - - - La complétion essaie de trouver le maximum de caractères possibles. - Par exemple, s'il y a deux fichiers dans un même dossier qui s'appellent - save-mail-nov-1999 et - save-mail-dec-1999, alors le simple fait de taper - save et de presser la touche Tabulation - développera save en save-mail- - et bipera pour indiquer que la correspondance n'est pas complète. - Si vous utilisez la complétion sur un dossier et qu'il est unique, - le filer va automatiquement afficher celui-ci. - Ce comportement doit rappeler quelque chose aux utilisateurs du shell. - - - - - Admettons que vous vouliez trouver la documentation de Wine dans le - dossier /usr/share/doc (qui est habituellement très chargé). - Voici comment vous pourriez faire : - - - - - - Ouvrez le mini-buffer en choisissant la commande - Entrer un chemin... du menu Fenêtre, ou, - si vous n'avez pas modifié le raccourci-clavier par défaut, pressez /. - - - - - Pressez CTRL+A pour sélectionner l'entrée par défaut. - - - - - - Tapez u<Tab>sh<Tab>do<Tab>wi<Tab>. - Au fur et à mesure que vous tapez, les dossiers seront ouverts automatiquement. - Si un bip retentit quand vous pressez la touche Tab, vous devez - taper une lettre de plus (car il y a plusieurs correspondances), ou presser - Entrée. - - - - - - - - - - La commande shell - - Cette fonction vous permet d'entrer rapidement des commandes shell - si vous ne voulez pas ouvrir d'xterm. - Si vous ne savez pas ce que sont des "commandes shell", passez à la section suivante ! - - - Tapez simplement la commande et pressez Entrée pour - l'exécuter. - Les touches Haut et Bas rappellent - les commandes précédentes. Tab effectue toujours la - complétion. Cliquer sur un objet insère son nom dans le mini-buffer. - Si plusieurs objets sont sélectionnés, ils sont assignés aux paramètres - $1, $2, etc. - - - Ouvrir le mini-buffer alors que des objets sont sélectionnés ajoute "$@" - à la fin de la commande — ce qui remplace le nom des objets sélectionnés. - - - - Exemples : - -Pour "détarer" une archive <filename>.tgz</filename> : - - -Ouvrez le mini-buffer en choisissant la commande Commande shell... du menu -Fenêtre. -J'utilise habituellement le raccourci ! pour cette commande. - - - -Tapez tar xzf et cliquez sur le fichier. -L'espace entre les options de tar et le nom du fichier est automatiquement inséré. - - - -Pressez Entrée pour exécuter. - - - - -Pour imprimer tous les fichiers sélectionnés : - - -Choisissez la commande Commande shell. - - - -Tapez lpr au début de la ligne et pressez Entrée. - - - - - - -Notes - - -Attention : aucune confirmation n'est demandée ! Si vous doutez, commencez -votre commande par xmessage, ce qui provoquera un affichage, plutôt qu'une exécution. - - - -C'est sh -qui est toujours utilisé (principalement à cause de la façon dont -bash et -csh traitent -les paramètres positionnels). -De toute façon, PATH est cherché, donc vous pouvez -toujours utiliser un autre shell si vous le voulez, en le nommant sh -et en le mettant dans votre PATH. - - - -Les commandes sont exécutées en arrière-plan, donc vous pouvez faire : - -sleep 240; xmessage Time to go! - - - - - - - <anchor id="SelectIf" xreflabel="Select If"/>Sélectionner si... - - -Utilisez cette commande si vous voulez sélectionner des objets correspondant à certains critères. - -Par exemple, pour sélectionner tous les fichiers "pesant" plus de 5 Mb : - - - Choisissez la commande Sélectionner si... (raccourci-clavier par - défaut : ?). - - - -Tapez Size > 5Mb et pressez la touche Entrée. - - - - -Tous les fichiers (et seulement eux) plus gros que 5 Mb seront sélectionnés. -Les expressions que vous pouvez utiliser ici sont du même style que celles décrites -à la section , sauf que prune n'a aucun effet, -puisque le contenu des dossiers n'est jamais vérifié. Vous pouvez utiliser Tab -pour passer d'un objet sélectionné à un autre, en boucle. - - - - - - - - <anchor id="bulkrename" xreflabel="The Bulk Rename window"/>Renommer des fichiers en masse - - - Si vous devez renommer un nombre important de fichiers, vous vous apercevrez vite - qu'il est fastidieux de les renommer un par un. Solution : sélectionnez-les tous - et choisissez Renommer... dans le menu, ce qui fera - apparaître la fenêtre de renommage en masse. - - - - Cette fenêtre vous montre deux colonnes. La colonne Ancien nom - affiche le nom actuel de tous les fichiers sélectionnés, et la colonne - Nouveau nom affiche le nouveau nom, qui est le même au début de - la procédure de renommage en masse. - - - - Vous pouvez changer les nouveaux noms de deux façons différentes. Vous pouvez - cliquer directement sur le nom du fichier à modifier, ou utiliser la fonction - de recherche et de remplacement en haut de la fenêtre. - Vous devez utiliser une expression régulière dans le champ de recherche, - et du texte dans le champ de remplacement, qui remplacera ce qui aura été trouvé - par l'expression régulière. - Par exemple, vous voulez renommer tous vos fichiers qui ont une extension - .htm avec une extension .html : - utilisez \.htm$ dans le champ Remplacer : - et .html dans le champ par :. - Quand vous cliquez sur Appliquer, la colonne "Après" est - mise à jour pour afficher les nouveaux noms proposés (mais aucun fichier - n'est encore renommé). - - - - Après avoir vérifié que les nouveaux noms vous paraissent corrects, cliquez sur - Renommer pour effectuer le renommage en masse. - - - - - Les fenêtres action - - Les fenêtres action sont ces fenêtres qui apparaissent quand vous êtes en train - d'accomplir une opération de Copie/Déplacement/Lien/etc... La ligne de statut - en haut de la fenêtre affiche le nom du dossier courant ou de l'objet en train - d'être traité. L'espace qui se trouve en-dessous est là pour afficher les messages - — ce qui a été fait, et éventuellement des questions. - - - - En bas, il y a quatre boutons, et quelques options. Toutes les fenêtres ont une - option Silencieux. Quand elle est active, le filer ne demandera - que quelques confirmations (par exemple, la suppression d'un fichier protégé en - écriture). Mais dans la majorité des cas, toutes les opérations seront automatiques. - - - - Les boutons fonctionnent de cette manière : - - - - - Oui - répond oui à la question affichée. - - - - Non - répond non à la question affichée. - - - - Annuler - Stoppe l'opération en cours et ferme la fenêtre action. - - - - Silencieux - - - est un raccourci pour activer l'option Silencieux puis - cliquer sur Oui. - - - - - - -Vous pouvez préciser quelle(s) action(s) peut (peuvent) être démarrée(s) -automatiquement (sans avoir à cliquer sur Silencieux au début) avec la -commande Options.... - - - - Options des fenêtres action - - Certaines actions ont des options, qui apparaissent sous forme de petites - cases à cocher en bas de la fenêtre : - - - - - - Forcer signifie que le filer ne va pas traiter différemment - les fichiers spécifiés 'protégés en écriture'. Normalement, la suppression est - confirmée même si Silencieux est enclenché. - Notez que vous ne pouvez pas supprimer des fichiers présents dans des dossiers - protégés en écriture car dans ce cas vous n'en avez pas la permission. - - - - - - Bref évite au filer d'afficher un message à chaque fois - qu'il fait quelque chose. Utilisez cette option si vous voulez augmenter la vitesse - d'exécution de l'opération, si beaucoup de messages sont affichés. - - - - - - Récursif signifie que l'action appliquée à un - dossier sera aussi appliquée à tout son contenu, ainsi qu'au contenu - de ses sous-dossiers, et ainsi de suite. - - - - - - Plus récent n'écrasera un fichier que si le fichier - copié est plus récent que le fichier écrasé (date de modification). - - - - - - - - - Vous pouvez définir la valeur par défaut de ces options. - - - - - - <anchor id="Searching" xreflabel="Searching"/>Chercher - - -La fonction Chercher recherche à travers tous les fichiers et les dossiers -sélectionnés ainsi que tous les sous-dossiers (récursivement), les objets -qui correspondent à une expression particulière. - - - Choisissez la commande Chercher du menu Fichier - pour chercher un fichier dans les objets sélectionnés. Si vous voulez sélectionner tous les fichiers - d'un dossier qui correspondent à une quelconque expression, utilisez - Sélectionner -> Sélectionner si.... - - -Si vous connaissez le nom d'un fichier, entrez-le simplement dans l'espace -'Expression :', entouré par des apostrophes. -Par exemple, pour chercher un fichier nommé log, vous entrerez 'log'. - -Souvenez-vous qu'il faut utiliser des apostrophes, et pas des guillemets (") ni des apostrophes inversées (`) !. - - - Au fur et à mesure que le filer trouve des objets qui correspondent, ils sont ajoutés - à la liste des résultats. - Si vous double-cliquez sur un des résultats, une fenêtre s'ouvrira pour vous montrer - le dossier dans lequel celui-ci est enregistré. - Le filer utilisera la même fenêtre pour afficher les dossiers qui correspondent aux - autres résultats (donc si vous voulez garder des fenêtres différentes pour chaque - résultat, vous devrez explicitement créer une nouvelle fenêtre (menu Fenêtre). - - - - Wildcards (les motifs génériques) - - -Vous pouvez aussi entrer des wildcards entre les apostrophes, par exemple : - - - - '*.html' - 'Report.*' - 'Draft[1-5]' - 'main.[ch]' - - - -Lisez la page man de glob7 -(ndt : 'man 7 glob') si vous voulez en savoir plus sur les motifs génériques. - -Si l'expression que vous entrez contient un slash ('/'), la recherche porte sur le chemin complet des objets, -au lieu de ne porter que sur le nom de l'objet. Donc, '*tmp*' trouvera tmp et tmpfile mais pas -/tmp/file'/*tmp*' trouvera les trois. - - - - -Tests simples - -Le filer propose d'autres types de recherche (pas seulement par le nom). -Notez que file est utilisé ici pour tout ce qui peut être -dans le système de fichiers — y compris les répertoires, les fichiers de périphérique -(devices) et autres... - - -Vous pouvez aussi utiliser une forme courte pour chaque test ; celle-ci est écrite entre parenthèses. -Vous pouvez combiner plusieurs tests — -rw donnera le même résultat que -EstLisible et EstInscriptible. - - -Ces expressions recherchent les objets par leur type : - - -EstOrd (-f) correspond à un fichier ordinaire. - - - -EstLien (-l) correspond à un lien symbolique. - - - -EstRép (-d) correspond à un répertoire. - - - -EstCar (-c) correspond à un fichier de périphérique caractère -(character device). - - - -EstBloc (-b) correspond à un fichier de périphérique bloc -(block device). - - - -EstPér (-D) correspond à un fichier de périphérique bloc ou à un fichier de périphérique caractère. - - - -EstTube (-p) correspond à un tube. - - - -EstSocket (-S) correspond à un socket. - - - -EstPorte (-O) correspond à un objet door (Solaris). - - - - -Celles-ci, par leurs permissions — -voir la section <xref linkend="Permissions"/>. - - -EstSUID (-u) correspond aux fichiers qui ont le bit 'Set-UID' activé. - - - -EstSGID (-g) correspond aux fichiers qui ont le bit 'Set-GID' activé. - - - -EstSticky (-k) correspond aux fichiers qui ont le bit 'sticky bit' activé. - - - -EstLisible (-r) correspond aux fichiers que vous pouvez lire. - - - -EstInscriptible (-w) correspond aux fichiers dans lesquels vous pouvez écrire. - - - -EstExécutable (-x) correspond aux fichiers que vous pouvez exécuter. - - - - -Deux autres très utiles : - - - EstVide (-z) trouve les fichiers vides (en fait, ceux dont la taille est de 0 octet). - - - -EstÀMoi (-o) trouve les fichiers dont vous êtes le propriétaire. - - - - - - - - Opérateurs logiques - -Vous pouvez combiner les tests précédents pour effectuer des recherches avancées. -Une expression est actuellement faite d'une liste de cas, -séparés par des virgules. Le filer essaiera de trouver les correspondances pour -chaque cas jusqu'à ce qu'un de ceux-ci fonctionne, ou jusqu'à ce qu'il n'y ait plus -de cas. -Par exemple, pour chercher des fichiers dont les extensions peuvent être différentes : -'*.gif', '*.htm', '*.html' - -Plus fort : chaque cas peut être une liste de conditions. Le cas ne fonctionne que si -toutes les conditions sont respectées. Pour trouver un dossier nommé lib ou un fichier normal se terminant par .so : - -EstRép 'lib', EstOrd '*.so' - -Vous pouvez inverser une condition en ajoutant un ! devant, et vous pouvez utiliser une sous-expression -comme expression, en l'entourant de parenthèses, comme ceci : - - -!(EstRép, EstOrd) - -!EstRép !EstOrd - -Non EstRép et non EstOrd - -!-d !-f - - -Ces 4 expressions signifient la même chose. - - - - - Comparaisons - -Vous pouvez aussi comparez des valeurs en utilisant les opérateurs -<, -<=, -=, -!=, ->, et ->= -(inférieur à, inférieur ou égal à, égal à, -différent de, supérieur à, supérieur ou égal à). - -Quand vous comparerez des heures, vous trouverez certainement plus pratique d'utiliser -après et avant au lieu de -> et <. - - - -Ce qui suit peut être utilisé dans les comparaisons : - - - -atime L'heure du dernier accès au fichier. - - - -ctime L'heure du dernier changement du statut du fichier. - - - -mtime L'heure de la dernière modification du fichier. - - - -taille La taille du fichier. - - - - inode Le numéro d'index (inode) du fichier. - - - -nliens Le nombre de liens physiques (et pas symboliques). - - - -uid Le 'User ID' du fichier. - - - -gid Le 'Group ID' du fichier. - - - -blocs Le nombre de blocs de disque utilisés par le fichier. - - - - - -Les heures sont mesurées en secondes, avec un point de départ correspondant -à 'Unix Epoch' (1er janvier 1970 à 00:00:00 UTC). -Les tailles sont en octets. Quand vous utilisez des constantes pour comparer -les valeurs, vous pouvez utiliser plusieurs mots-clés pour ajuster l'échelle -de la valeur : - - - - -Octet(s) Sans effet, mais 'ça fait mieux'. - - - -Ko multiplie par 1024, donc 2 Ko = 2048. - - - -Mo multiplie par 10242, -soit 1024 Ko. - - - -Sec Sans effet, mais ça fait mieux aussi ! - - - -Min multiplie par 60 pour obtenir des minutes. - - - -Heure(s), Jour(s), Semaine(s), An(s) convertit dans l'unité précisée. - - - -Passé rend le temps passé relatif à l'heure à laquelle est effectué le test. - - - -Futur rend le temps futur à l'heure à laquelle est effectué le test. - - - -Maintenant est un raccourci pour 0 Sec Futur. - - - - -Quelques exemples rendront tout ceci plus clair ! - - -mtime après 1 jour passé - -taille > 10 Mo - -EstOrd et nliens > 1 - - -La première expression trouve les fichiers modifiés au cours des dernières -24 heures. Vous pourriez utiliser > au lieu de -après, mais ce serait moins clair. - - - La deuxième trouve les fichiers pesant plus de 10 Mo. - La dernière trouve les fichiers normaux qui ont plus qu'un lien physique sur eux. - - -Attention — le filer ne vérifie pas le contexte des opérateurs, donc -taille > 1 jour passé est admis, même si ça n'a pas de sens ! - -Pensez aussi aux mots-clés passé ou futur, -car un oubli de ceux-ci pourrait causer des problèmes conséquents (le temps serait -alors mesuré par rapport à l'Epoch au lieu de l'heure courante). -Enfin, n'utilisez pas = avec les heures — -atime = 1 jour passé recherche un fichier accédé il y a -exactement 86400 secondes... - - - - - - Divers - - - - - -System(commande) exécute 'commande' sur le fichier. Le test -réussit si la commande renvoie un code de retour 0 (zéro). Un caractère '%' dans -'commande' est remplacé par le chemin complet du fichier traité. -System est un test très lent, donc utilisez-le si possible -en dernier dans vos expressions. Par exemple, si vous cherchez un fichier dont -l'extension est .c et qui contient le mot 'main', utilisez : - - -'*.c' system(grep -q main "%") - - -pour que grep ne soit exécuté que pour les fichiers ayant pour extension .c -(à opposer à une recherche des fichiers qui contiendraient le mot 'main', puis qui seraient du type .c. - - - -Prune Ne réussit jamais ! -Notez que c'est l'inverse de la commande find1 -. - -Ce mot-clé peut empêcher la recherche à l'intérieur du dossier courant. -Souvenez-vous de l'ordre dans lequel le filer teste l'expression ! - - - - -Exemples : - - -'*.old' system(rm '%') - -'src' prune, '*.c' - - -La première expression supprime chaque fichier ayant pour extension .old. -La seconde cherche les fichiers ayant pour extension .c, mais ne prend pas la peine -de vérifier le contenu des dossiers nommés src. -L'expression est évaluée comme suit : - -Si un fichier est nommé src, alors `Prune'. -D'autre part, vérifie s'il se termine par .c -et dans ce cas, l'inclut dans les résultats. - - - - - - Options - - -Vous pouvez configurer beaucoup de comportements de ROX-Filer. -Choisissez pour cela Options... dans le menu d'une fenêtre du filer. -La liste à gauche montre les différentes sections — cliquez sur celle de votre choix -pour voir les options dont elle dispose. - -Il y a deux boutons en bas de la boîte de configuration : - - - - - - OK - sauve vos choix dans votre dossier - ~/.config/rox.sourceforge.net/ROX-Filer, pour que ROX-Filer - les retrouve la prochaine fois qu'il sera exécuté. - L'endroit exact où les choix sont sauvegardés est défini par la variable d'environnement - XDG_CONFIG_HOME — voir BaseDir pour plus de détails. - Puisque tous vos choix prennent effet immédiatement, vous n'avez pas besoin de cliquer sur - OK pour voir ce qui change. - - - - - - Revenir - Annule toutes les modifications effectuées depuis l'ouverture de la fenêtre Options. - Ce bouton est grisé si vous n'avez effectué aucun changement. - La boîte Options n'est pas fermée si vous utilisez ce bouton. - - - - - -Les options de la fenêtre Options proposent des bulles d'aide qui expliquent l'utilité -de chacune d'entre elles ; maintenez votre pointeur de souris au-dessus d'une option -pour voir ce qu'elle fait. - - - - - Types de fichier - - Tous les fichiers ont un type MIME sous la forme text/plain. Ici, - text est le type de media et plain - est le sous-type. - - - ROX-Filer utilise le nom d'un fichier pour décider si un - fichier est d'un type MIME ou d'un autre, puis utilise le type MIME pour associer une - icône et savoir quel programme exécuter quand vous ouvrez le fichier. - - - - <anchor id="RunAction" xreflabel="the Set Run Action box"/> - Fixer l'action d'exécution... - - - Cette commande du menu Fichier est utilisée pour définir l'application à exécuter - quand vous cliquez sur un fichier. - - - Par exemple, admettons que vous vouliez que les .gif s'ouvrent - automatiquement avec 'The Gimp'. - D'abord, faites un clic droit sur une image gif pour ouvrir le menu, et choisissez - la commande Fixer l'action d'exécution... dans le sous-menu - Fichier (celui qui prend le nom du fichier sur lequel - vous avez cliqué). - Ensuite, vous pouvez fixer l'action d'exécution de deux façons différentes : - - - - Par <foreignphrase lang="en">drag-and-drop</foreignphrase> - - Déposez 'The Gimp' (depuis une fenêtre du filer, un panneau ou le punaiseur) - sur l'aire où est inscrit Faites glisser ici une application - appropriée. - Maintenant, si vous cliquez sur une image gif, 'The Gimp' sera lancé automatiquement - et ouvrira cette image. - - - - - En entrant une commande shell - - Tapez : gimp "$@" dans l'endroit Entrez une commande - shell et appuyez sur Entrée. $@ - sera remplacé par le nom du fichier sur lequel vous cliquerez. - Comme ci-dessus, 'The Gimp' sera lancé automatiquement et ouvrira cette image. - - - - - Définir les types de média par défaut - - Quelque soit la méthode que vous utilisez pour fixer l'action d'exécution, - vous avez le choix de fixer celle-ci juste pour le type MIME du fichier, - ou pour tous les fichiers ayant ce type et un sous-type différent et qui - n'ont pas encore d'action par défaut. - - - Puisque 'The Gimp' peut lire beaucoup de types d'images, il peut être intéressant - de choisir l'option Mettre la valeur par défaut pour tout - 'image/<quelconque>' et ainsi vous n'aurez pas à le faire pour - les fichiers image/jpeg et les autres... - Cette option n'a d'effet que sur les types qui n'ont pas déjà une action définie - (ie, ceux qui vous affichent un message d'erreur quand vous essayez de les ouvrir). - - - - - - <anchor id="SetIcon" xreflabel="the Set Icon box"/>La boîte 'Fixer l'icône' - - Cette boîte apparaît quand vous choisissez la commande Fixer l'icône... - du menu Fichier. Elle permet de définir une image pour représenter l'objet. - - - Elle fonctionne un peu de la même façon que la boîte 'Fixer l'action d'exécution' décrite - ci-dessus, sauf que vous pouvez affecter une icône pour un fichier précis (par son nom), - ou pour tous les fichiers d'un type particulier. Si vous affectez une icône à un fichier - précis, le filer enregistre les noms de ce fichier - et de cette icône dans le dossier - ~/.config/rox.sourceforge.net/MIME-icons. - Si l'un ou l'autre est déplacé, l'icône ne sera plus affichée. - - - Quand vous affectez une icône à un répertoire, vous avez la possibilité de copier cette icône - dans le dossier lui-même, en tant que fichier caché. - Les autres utilisateurs verront aussi cette icône, vous pouvez donc supprimer l'image originale - après sa copie (notez que la taille de l'image est ajustée si nécessaire et convertie - au format PNG). - - - L'icône de dossier affichée dans la zone Faites glisser ici un fichier d'icône - vous permet d'afficher un dossier qui contient déjà une ou plusieurs icônes - dont vous vous servez. - - - - - Comment les types de fichier sont enregistrés - - ROX-Filer utilise deux sous-dossiers dans votre dossier - ~/.config/rox.sourceforge.net pour gérer les types de fichier : - - - MIME-types - - - contient des liens symboliques, un par type MIME, qui pointent vers des programmes - qui connaissent ce type de fichiers. Pour définir quel programme est exécuté quand vous - cliquez sur un fichier, vous utilisez normalement la commande Fixer l'action - d'exécution... (voir la section ). - Cependant, vous pouvez définir ces actions manuellement — par exemple, pour ouvrir - un fichier HTML avec Netscape : - - - - - Trouvez l'application Netscape et choisissez la commande Lier... dans le menu. - - - - - - Entrez text_html comme nom pour le lien et glissez l'icône du haut de la - boîte 'Lier' vers le dossier MIME-types. - - - - - - Vous pouvez aussi déposer dans ce dossier les programmes eux-mêmes, plutôt que des liens. - - - - -MIME-icons - - - contient les images utilisées pour afficher chaque type de fichier. - Donc le filer essaiera d'afficher un fichier HTML - en utilisant l'icône nommée MIME-icons/text_html.png. S'il n'y a pas - d'icône définie ici, le filer utilisera le thème - d'icône choisi dans la boîte Options (voir IconTheme pour plus de détails). - - - - - - -Dans le dossier MIME-types, vous pouvez définir les actions par défaut -pour chaque type de média. -Par exemple, si text_html n'est pas trouvé, le filer -essaiera simplement d'utiliser text. - - - - - - Comment le <foreignphrase lang="en">filer</foreignphrase> détermine-t-il un type de fichier ? - - Le filer utilise la plupart du temps le nom du fichier - pour déterminer son type. En cas d'échec, il essaiera de trouver d'après le contenu du fichier. - Si vous ne souhaitez pas qu'il essaie de cette manière, fixez le type correct du fichier en - utilisant les attributs étendus, grâce à la commande Fixer le type.... - - - - Pour gérer les règles utilisées pour déterminer le type d'un fichier en fonction de son nom, - ouvrez la boîte Options et sélectionnez la section Types. - Vous y trouverez un bouton qui démarrera l'application MIME-Editor. - Vous pouvez aussi éditer ces règles manuellement — voir SharedMIME pour plus de détails. - - Le filer cherche le type d'un fichier en fonction de son nom. Les règles sont définies dans - plusieurs fichiers globs — voir SharedMIME pour - plus de détails. - - - - - - <anchor id="AppDir" xreflabel="Application directories"/> - Dossiers-applications - - -Un dossier-application est un dossier qui peut être exécuté comme une application. -Il contient toutes les ressources d'une application — code source, binaires, -documentation et autres. Tout enregistrer au même endroit rend l'installation et la -désinstallation plus faciles pour les utilisateurs. -Vous pouvez aussi garder plusieurs versions différentes d'un même programme -en les enregistrant dans des dossiers-applications différents. -Vous pouvez les déplacer et les renommer comme vous le voulez. -Les dossiers-applications sont plus faciles à utiliser et à installer. - -Ils sont aussi plus sûrs, parce que vous pouvez compiler une application en tant qu'utilisateur et -ensuite simplement la copier en tant que root plutôt que de lancer en tant -que root un script d'installation dans lequel vous n'avez pas confiance. -Tout ce que vous avez à vérifier, ce sont les binaires avec le bit setuid. - - -Les fichiers suivants ont une signification particulière pour ROX-Filer : - - - - -AppRun -est exécuté quand vous cliquez sur le dossier — vérifiez qu'il est bien -exécutable (utilisez la boîte pour changer les permissions) ! - - - -.DirIcon -est l'image utilisée pour représenter le dossier (ceci fonctionne -même s'il n'y a pas de fichier AppRun). - - - -Help -est le dossier qui s'ouvre quand vous choisissez Aide -dans le menu Fichier. - - - -AppInfo.xml -contient des informations complémentaires sur l'application (voir ci-dessous). - - - - - AppIcon.xpm - est utilisée si .DirIcon est manquant (dans un but de compatibilité - avec les anciennes versions ; n'est normalement plus utilisée dorénavant). - - - - - -Jetez un œil au dossier-application de ROX-Filer pour avoir un exemple détaillé et complet. - - -Note : pour des raisons de sécurité, un dossier-application doit avoir le - même propriétaire que le fichier AppRun qu'il contient. - - - Le fichier AppInfo - - -AppInfo.xml est un fichier XML avec la structure suivante (chaque élément est facultatif, -ainsi que le fichier lui-même) : - - -<?xml version="1.0"?> -<AppInfo> - <Summary xml:lang="en">A graphical file manager</Summary> - <Summary xml:lang="de">Ein grafische Datei-Manager</Summary> - <Summary xml:lang="nl">Een grafisch bestandsbeheerprogramma</Summary> - <Summary xml:lang="es">Un manejador de archivos gráafico</Summary> - <About xml:lang="en"> - <Purpose>File manager</Purpose> - <Version>1.3.5 PREVIEW</Version> - <Authors>Thomas Leonard and others</Authors> - <License>GNU General Public License</License> - <Homepage>http://rox.sourceforge.net</Homepage> - </About> - <About xml:lang="es"> - <Purpose>Manejador de Archivos</Purpose> - <Authors>Thomas Leonard y otros</Authors> - </About> - <AppMenu> - <Item option="-p=Default"> - <Label>Enable pinboard</Label> - <Label xml:lang="es">Habilitar el pinboard</Label> - </Item> - <Item option="-p="> - <Label>Disable pinboard</Label> - <Label xml:lang="es">Deshabilitar el pinboard</Label> - </Item> - </AppMenu> -</AppInfo> - - - - - -Summary -est affiché dans une bulle d'aide quand la souris est maintenue au-dessus du dossier. - - - -About -contient une liste de champs qui sont affichés dans la boîte 'Info fichier' -du dossier-application (n'importe quel nom peut être utilisé comme élément, -ceux de l'exemple sont seulement suggérés). - - - -AppMenu -est une liste de commandes supplémentaires qui s'insèreront dans le menu du dossier-application. -Quand une de ces commandes est choisie, AppRun est exécuté avec le nom de -la commande option -comme seul argument. Vous pouvez intégrer des menus 'AppMenu' à d'autres menus 'AppMenu' afin de -créer des sous-menus, à condition qu'ils disposent d'un élément '$lt;Label$gt;'. - - -Les éléments Item peuvent aussi bénéficier d'un attribut -icon, qui spécifie le nom de l'icône choisie dans le thème actif. - - - - - - - - - Internationalisation - - - - - - <anchor id="LANG" xreflabel="Translations"/> - Choisir une traduction - - - -ROX-Filer est capable de traduire beaucoup de ses messages, -pourvu que des fichiers de traduction corrects soient fournis : - - -Ouvrez la boîte d'options via le menu, -Sélectionnez une langue dans la liste proposée, -Cliquez sur OK et redémarrez le filer -pour que les changements soient pris en compte. - - - - - - - Créer une nouvelle traduction - - - -Allez dans le dossier src/po et créez le fichier -src/messages.pot : - - -$ cd ROX-Filer/src/po -$ ./update-po - - - - -Copiez le fichier dans le sous-dossier src/po - en le nommant <name>.po. -Ex : si votre langue est 'ml' ('ma langue') : - -$ cp ../messages.pot ml.po - - -Ouvrez la copie dans un éditeur de texte. - -Remplissez les traductions, qui sont toutes vierges au début. - - -Exécutez le script make-mo pour créer le -fichier binaire que ROX-Filer pourra utiliser. -Vous aurez besoin du paquetage GNU gettext pour effectuer cette opération. - - -$ cd ROX-Filer/src/po -$ ./make-mo ml -Created file ../../Messages/ml.gmo OK - - - - -Éditez ROX-Filer/Options.xml pour que -votre langue soit listée, redémarrez le filer et sélectionnez-la dans la -boîte d'options (voir la section ). - - -Envoyez le fichier .po dans le 'gestionnaire -de patches ROX', pour qu'il puisse être inclus dans les prochaines versions du filer. - - - - - - - - Mettre à jour une traduction existante - - - -Allez dans le dossier contenant les fichiers .po -et exécutez le script update-po. -Celui-ci vérifie dans le code source s'il y a des phrases nouvelles ou -modifiées et met à jour tous les fichiers de traduction. - - -$ cd ROX-Filer/src/po -$ ./update-po - - - - -Éditez le fichier à la main, comme pour une nouvelle traduction, en traduisant -les nouveaux messages et en mettant à jour les autres. -Regardez bien les entrées fuzzy que update-po -a créées ; vérifiez que la traduction est correcte et supprimez la ligne fuzzy. - - -Exécutez make-mo comme la fois d'avant. - -Soumettez-nous le fichier mis à jour. - - - -Lisez la page info de gettext pour de plus amples instructions sur la création de traductions. - - - - - - - Hacking - -Ceci est un guide de base pour les personnes qui veulent modifier le code -source. Si vous faites des changement utiles ou si vous corrigez des bugs, -envoyez-moi les patches (Thomas Leonard) ou envoyez-les à la liste de -diffusion. Dites-moi quelle version vous utilisez ! - - - - Compiler - -La première fois que vous compilerez, vous devrez exécuter AppRun --compile, -mais les fois suivantes, un make dans le dossier src quand vous changerez -les fichiers .c et .h suffira. -Vous voudrez peut-être exécuter aussi un make depend... - - - - - Créer et appliquer des patches - -Quand les développeurs apportent de petites modifications aux sources, ils -les distribuent souvent sous forme de patches — souvent sur la liste -de diffusion. - -Pour appliquer un patch, allez dans le dossier src et exécutez -la commande patch avec le nouveau patch. Recompilez ensuite : - - -$ cd ROX-Filer/src -$ patch < patchfile -$ ../AppRun --compile - - -Vous pouvez retirer le patch en répétant simplement la séquence ci-dessus — -patch détectera que le patch est déjà appliqué, et proposera de l'enlever. - -Pour créer un patch vous devrez d'abord vous procurer la dernière version -du filer sur CVS (les instructions pour l'utilisation de CVS peuvent être trouvées -sur le site web). -Modifiez le programme comme bon vous semble. -Créez le patch en utilisant cvs diff depuis le dossier approprié : - - -$ cvs diff -u > my_patch - - -Ceci crée un patch lisible par l'homme – et la machine. Soumettez-le -à la liste de diffusion. Il est recommandé de poster des patches plutôt que -les fichiers modifiés, pour plusieurs raisons : - - -Ils sont plus petits. Ils sont donc plus rapides à télécharger -par les gens qui n'ont pas de connexion à haut débit. - - -On peut voir ce qu'il y a dedans avant de les appliquer ! - - -Les patches peuvent (souvent) être appliqués sur des versions -légèrement modifiées des sources. -Cela veut dire que plusieurs patches peuvent être appliqués sans que chaque -nouveau n'écrase les autres. - - - - - - - - - Autoconf - -Voici une explication rapide du système autoconf au cas où vous ne l'auriez -pas déjà utilisé. Voir info autoconf pour plus de détails. - -Un fichier nommé configure.in est fourni et contient -plusieurs tests (info autoconf). -Vous n'avez qu'à exécuter autoconf il lira ce fichier et -générera un script shell pour effectuer les tests, en le sauvant sous le nom -de configure. -configure est normalement distribué avec le programme car -tout le monde n'a pas autoconf. - -Vous exécutez ensuite configure (en fait, laissez le script -AppRun le faire car il lui passe quelques arguments), qui -effectue tous les tests. Il lit Makefile.in et config.h.in -et complète les valeurs manquantes avec les résultats des tests pour produire Makefile -et config.h. - -Exécutez make, qui créera les fichiers .o -à partir des fichiers .c et les liens pour créer ROX-Filer. - - - -Structures de données - - Le fichier global.h contient les principales structures de données - de ROX-Filer et explique la façon dont elles sont utilisées dans le code-source. - C'est un bon point de départ si vous voulez comprendre son fonctionnement. - - - - - - Compilation - - Si vous venez d'obtenir le filer en téléchargeant l'archive de ses sources, - vous devez donc les compiler pour vous en servir. Si vous avez téléchargé et - installé les binaires (le logiciel est donc déjà compilé), ou si - ROX-Filer était déjà installé sur votre système, - vous pouvez passer directement à la section suivante. Si vous êtes arrivés - ici en cliquant sur l'icône représentant une bouée, ou si taper - rox dans un XTerm fonctionne, vous n'avez pas besoin de - compiler. - - Pour compiler, vous aurez besoin de ce qui suit : - - - Unix ou Linux (le mot de passe root n'est pas nécessaire), - - - - - - Le système 'X Window' (fourni en standard sur tous les systèmes modernes), - - - - - - GTK+ 2.4.0 ou postérieure (bibliothèques et en-têtes) — dernière - version téléchargeable depuis GTK+, - - - - - - Glade 2.0.0 ou postérieure (bibliothèques et en-têtes) — dernière - version téléchargeable depuis Glade, - - - - - - LibXML 2.0.0 ou postérieure (bibliothèques et en-têtes) — dernière - version téléchargeable depuis libxml, - - - - - - Un compilateur C, comme 'gcc' (standard sur la plupart des systèmes). - - - - - - Tout ceci est standard sur la plupart des distributions Linux modernes. - Pour vérifier quelle version de GTK+ est installée, utilisez la commande - pkg-config, comme ceci ($ est le prompt) : - - $ pkg-config --modversion gtk+-2.0 - 2.6.8 - - - - - Pour compiler (en utilisant Zero Install) : - - - Démarrez l'interface Zero Install pour ROX-Filer. Par exemple, depuis un terminal : - - $ 0launch --gui http://rox.sourceforge.net/2005/interfaces/ROX-Filer - - - - - - Faites un clic droit sur la ligne ROX-Filer et choisissez Compiler... dans le menu. - - - - - Zero Install va vous demander de choisir une version de ROX-Filer à compiler et de certains fichiers d'en-têtes requis. Vous pouvez normalement accepter les choix par défaut et les télécharger. - - - - - Choisissez un dossier dans lequel le code compilé sera enregistré et cliquez sur Build pour procéder. - - - - - Une fois compilé, cliquez sur Register pour ajouter cette version à la liste des versions disponibles. - - - - - - Pour compiler : - - - - Le filer utilise maintenant la base de données SharedMIME - pour gérer les types MIME des fichiers. Vous devez installer cette base avant - d'installer rox, sinon le filer ne fonctionnera pas correctement (ROX-Filer - vous avertira lors de son démarrage si elle n'est pas installée). - - - - - - Allez dans le répertoire qui contient le sous-répertoire ROX-Filer. - - - - - - Exécutez le script AppRun, comme ceci : - - $ ./ROX-Filer/AppRun --compile - - - - - - - ROX-Filer va effectuer quelques tests pour trouver sur quel type de système vous travaillez, puis va commencer la compilation. Si ça ne fonctionne pas, envoyez-nous un courriel et plaignez-vous ! Dites-nous quel type de système vous avez et quels sont les messages d'erreur affichés. Si vous réussissez à régler le problème vous-même, envoyez-nous SVP un courriel avec le correctif. - - - - - - Une fois que le filer est compilé, il démarre automatiquement. Pour le démarrer à nouveau plus tard, exécutez le script AppRun sans argument. - - - - - - - -Page de manuel - - - - - ROX - 1 - - - - ROX-Filer - Un gestionnaire de fichiers graphique et simple - - - - - rox - - FILE - - - - DESCRIPTION - - ROX-Filer est un gestionnaire de fichiers simple et pratique pour X11, - l'interface graphique à base de fenêtres très utilisée sur les systèmes d'exploitation - Unix et dérivés. - - - C'est aussi le c½ur du ROX Desktop : - - - La commande rox ouvre tous les dossiers et/ou fichiers donnés en argument, - ou seulement le répertoire courant si aucun argument n'est fourni. - - - - OPTIONS POUR LA LIGNE DE COMMANDE - - - - - affiche le panneau PANEL. - - - - affiche le panneau PANEL en bas de votre écran. - - - - utile pour la gestion de session. - - - - - - - ouvre le dossier DIR en tant que répertoire (pas comme une application, même si ce dossier y ressemble). - - - - - - ferme le dossier DIR et tous ses sous-dossiers. - - - - affiche l'aide et une description des options. - - - - crée un panneau à gauche de votre écran. - - - - affiche le type MIME du fichier "FILE" et s'arrête. - - - - démarre un nouveau filer, même s'il y en a déjà un. Cette option interdit au filer - de forker (s'exécuter en arrière plan), et n'est quasiment utile que pour débugger. - - - - utilise le punaiseur PIN. - - - - crée un panneau à droite de votre écran. - - - - lit et invoque SOAP RPC depuis l'entrée standard (voir ). - - - - Ouvre une fenêtre et affiche le dossier où se trouve FILE. - - - - Démarre avec un gestionnaire de sessions, et ouvre les panneau et punaiseur - par défaut (implique l'utilisation de --new). - Si un gestionnaire de sessions XSM est chargé, et que cette option est utilisée, ROX-Filer - demandera à redémarrer automatiquement s'il se ferme inopinément. - - - - crée un panneau en haut de votre écran. - - - - affiche le nom de l'utilisateur dans chaque fenêtre. - - - - - - - - Exécute URI en tant que fichier ou répertoire. - Si URI est une URL de type "file:" et correspond à un fichier sur la machine locale, - elle sera convertie en un nom de fichier local : "rox -U file:///tmp" sera - converti en "rox /tmp". Si l'URI correspond à un autre type d'URL, la configuration - du gestionnaire d'URI est alors consultée. - - - - Affiche les informations sur la version et s'arrête. - - - - Le fichier FILE a changé ; il faut le réexaminer. - - - - - - - NOTES - - La documentation principale de ROX-Filer est accessible par la - commande Voir les fichiers d'aide du menu - Aide, ou par le bouton le plus à droite sur la barre d'outils. - - - - - LICENCE - Copyright (C) 2004 Thomas Leonard. - - Vous pouvez redistribuer des copies de ROX-Filer si vous respectez les termes de la GNU General Public License. - - - - - BUGS - - Merci d'envoyer (en anglais) vos rapports de bugs à la liste de diffusion - consacrée au développement : . - - - - AUTHORS - - ROX-Filer a été créé par Thomas Leonard, avec l'aide de : - - - - Michael Adams - Christopher Arndt - Jens Askengren - Liav Asseraf - Wilbert Berendsen - Francesco Bochicchio - Yuri Bongiorno - Andrzej Borsuk - Richard Boulton - Simon Britnell - Arnaud Calvo - Babyfai Cheung - Andrew Clover - Fabien Coutant - Couderc Damien - Andreas Dehmel - Micah Dowty - Dmitry Elfimov - Mattias Engdegard - Andrew Flegg - Olivier Fourdan - Eric Gillespie - Thierry Godefroy - Olli Helenius - Alex Holden - Jasper Huijsmans - Sigve Indregard - Bernard Jungen - Marcin Juszkiewicz - James Kermode - Jim Knoble - Krzysztof Krzyzaniak - Aaron Kurtz - Vincent Ledda - Vincent Lefèvre - Victor Liu See-le - Alexey Lubimov - Krzysztof Luks - Marcus Lundblad - Anders Lundmark - Jose Romildo Malaquias - Denis Manente - Brendan McCarthy - Andras Mohari - Christiansen Merel - Jimmy Olgeni - Richard Olsson - Matthew O'Phinney - Daniele Peri - Andy Piper - Marcelo Ramos - Michel Alexandre Salim - Adam Sampson - Chris Sawer - Christian Storgaard - Taras - Simon Truss - Hirosi Utumi - Jan Wagemakers - Keith Warno - Götz Waschk - Stephen Watson - Andre Wyrwa - Geoff Youngs - Diego Zamboni - - - - et beaucoup d'autres ; le fichier Changes offre d'avantage d'informations ! - - - - - -SOAP RPC - - - Quand vous démarrez le filer, vous pouvez lui spécifier des arguments, sur la ligne de commande, pour contrôler son comportement. - Il existe une alternative à ceci ; le filer vous permet de passer vos arguments sous la forme d'un message au format RPC SOAP. - En fait, si vous utilisez les options de la ligne de commande, le filer les convertit en RPC SOAP en interne. - - - Tous les messages RPC SOAP passent par l'entrée standard, comme ceci : - - -$ rox --RPC << EOF -<?xml version="1.0"?> -<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope"> -<env:Body xmlns="http://rox.sourceforge.net/SOAP/ROX-Filer"> -<Panel> -<Name>Default</Name> -<Side>Bottom</Side> -</Panel> -</env:Body> -</env:Envelope> -EOF - - -Les méthodes suivantes sont reconnues : - - - - - - Version() - Returns the filer's version. - - - - - - CloseDir(Filename) - Ferme le dossier Filename et tous ses sous-dossiers. - - - - - - Examine(Filename) - L'objet Filename a peut-être changé — vérifier - et mettre à jour l'affichage. - - - - - - OpenDir(Filename, - [Style, Details, Sort, Class, ID, -Hidden, Filter]) - Ouvre une fenêtre et y affiche le dossier Filename. - Style peut prendre la valeur Large, - Small, Huge ou Automatic. - Details peut prendre la valeur None, - ListView, Size, Type, - Times ou Permissions. - Sort peut prendre la valeur Name, - Type, Date, Size, - Owner ou Group. - Si une de ces options n'est pas renseignée, l'affichage par défaut est utilisé. - Class peut être utilisé pour fixer la propriété WM_CLASS de la nouvelle fenêtre. - Vous pouvez utiliser ceci pour que votre gestionnaire de fenêtres gère celle-ci d'une façon particulière. - ID est une chaîne utilisée pour identifier la fenêtre ouverte. -Si une fenêtre existe déjà avec cette ID, celle-ci est modifiée pour le nom du dossier ; -sinon, une nouvelle fenêtre est créée et son ID lui est rattachée. -Assurez-vous que les ID que vous générez sont uniques lorsque vous utilisez des scripts, -en concaténant par exemple le nom du script, le PID et un horodatage pour former l'ID. - Hidden Pour afficher les fichiers cachés (ceux dont le nom commence -par un point), utilisez la valeur true ; pour ne pas les afficher, préférez -false. Si vous omettez ce paramètre, l'option de configuration est utilisée. - Filter peut être utilisé pour appliquer un filtre -pour n'afficher que certains noms de fichiers. Par exemple, utilisez le filtre *.c -pour n'afficher que les fichiers se terminant par .c. - - - - - - Panel([Side, Name]) - Ouvre le panneau nommé Name sur le côté de l'écran précisé en - Side (Top|Bottom| - Left|Right — NDT : Haut|Bas|Gauche|Droite). - Name peut être un nom stocké dans - ~/.config/rox.sourceforge.net/ROX-Filer - (par exemple MonPanneau), ou un chemin complet. - - - - - - PanelAdd(Side, - Path, [Label, - After, Shortcut, Args]) - Ajoute Path au panneau sur le côté Side, - avec le libellé Label. - Si After est fixé à true, l'icône sera alignée - à droite (ou en bas) du panneau, sinon à gauche (ou en haut). Si Shortcut - est précisé, il s'agit du raccourci-clavier à utiliser pour ouvrir cet objet. Les arguements - Args, s'ils sont fournis, seront passés à l'objet lors de son démarrage, s'il s'agit - d'un programme. - - - - - - PanelRemove(Side, - Path, - [Label]) - Retire un objet du panneau sur le côté Side. - Si ni Path, ni Label ne sont - précisés, l'appel échouera : au moins un de ces deux paramètres doit être renseigné. - Si plusieurs objets correspondent, un seul est retiré. - - - - - - Pinboard([Name]) - Affiche sur le bureau le punaiseur nommé Name. - Name peut être un nom stocké dans ~/.config/rox.sourceforge.net/ROX-Filer - (par exemple MonPunaiseur), ou un chemin complet. S'il est - omis, la fonction punaiseur est désactivée. - - - - - - PinboardAdd(Path, - [X, Y, -Label, Shortcut, Args, Update]) - Ajoute Path au punaiseur en le nommant Label (facultatif). Si X et Y ne sont pas mentionnés ou s'ils sont négatifs, l'icône est positionnée automatiquement. Les paramètres négatifs X et Y indiquent la position de l'icône ajoutée (X=-1 : gauche, X=-2 : droite, Y=-1 : haut, Y=-2 : bas). Si X et Y sont précisés et positifs, la position de l'icône est (X, Y). - Si Shortcut est précisé, il s'agit du raccourci-clavier à utiliser pour ouvrir cet objet. - Les arguements Args, s'ils sont fournis, seront passés à l'objet lors de son démarrage, s'il s'agit d'un programme. Si le paramètre Update est fixé à "true" et qu'une icône existe déjà sur le punaiseur avec le chemin indiqué, les valeurs seront remplacées au lieu d'ajouter une nouvelle icône. - - - - - - PinboardRemove(Path, - [Label]) - Retire Path du punaiseur. - Si Label est précisé, il doit correspondre au label de l'objet. - Si plusieurs objets correspondent, un seul est retiré. - - - - - - SetBackdropApp(App) - Définit App (un dossier-application) comme le "gestionnaire" - du fond d'écran du punaiseur courant. - Le fichier AppInfo.xml à l'intérieur de App - doit contenir l'élément CanSetBackdrop, ie : - -<?xml version="1.0"?> -<AppInfo> - <ROX:CanSetBackdrop xmlns:ROX="http://rox.sourceforge.net/SOAP/ROX-Filer"/> -</AppInfo> - L'application sera exécutée avec l'option comme seul argument - après avoir invoqué cette méthode, et chaque fois que le punaiseur sera réactivé. - N'UTILISEZ PAS cette méthode si vous invoquez l'option , vous seriez - bloqué dans une boucle sans fin ! - Voir pour un guide sur l'écriture d'applications gèrant le fond d'écran. - - - - - - SetBackdrop(Filename, - Style) - Définit l'image de fond d'écran. Si vous souhaitez régénérer l'image lors du prochain - login de l'utilisateur, ou si vous voulez la changer automatiquement de temps en - temps, utilisez plutôt SetBackdropApp ci-dessus. - - - - - - Run(Filename) - Exécute le fichier Filename comme s'il était cliqué dans une fenêtre du filer. - - - - - - RunURI(URI) - Exécute URI comme s'il avait été cliqué dans le filer. - URI est interprétée comme une URI, sous la forme file://localhost/chemin. - - - - - - Show(Directory, Leafname) - Ouvre le dossier Directory et met en évidence le fichier dont le nom - est Leafname. - - - - - - FileType(Filename) - Affiche le type MIME du fichier Filename (en écrivant la - réponse SOAP sur la sortie standard). - - - - - - SetIcon(Path, Icon) - Définit l'icône à utiliser pour le chemin donné. C'est l'équivalent de la commande - Fixer l'icône... du menu Fichier. - - - - - - UnsetIcon(Path) - Supprime l'association entre l'icône à utiliser et le chemin donné. - - - - - - Les appels suivants peuvent être utilisés pour commencer de nouvelles actions - sur objets. - Quiet (NDT : "Silencieux") est un booléen et peut prendre la valeur "vrai" - (via yes, true ou 1) si - l'opération doit commencer immédiatement plutôt que d'attendre la confirmation de l'utilisateur. - S'il prend la valeur "faux" (via no, false ou - 0), l'utilisateur doit toujours confirmer. - S'il est omis, la valeur par défaut est utilisée. - - - - - - Copy(From, To, - [Leafname, Quiet]) - Copie tous les fichiers spécifiés en From vers le dossier spécifié - en To. Si Leafname est précisé, From - ne devra fournir qu'une seule entrée ; Leafname donnera alors le nouveau nom du fichier. - - - - - - Move(From, To, - [Leafname, Quiet]) - Déplace tous les fichiers spécifiés en From vers le dossier - spécifié en To. Si Leafname est précisé, - From ne devra fournir qu'une seule entrée ; Leafname - donnera alors le nouveau nom du fichier. - - - - - - Link(From, To, [Leafname]) - Crée un lien symbolique pour tous les fichiers spécifiés en From - dans le dossier spécifié en To. Si Leafname - est précisé, From ne devra fournir qu'une seule entrée ; Leafname - donnera alors le nouveau nom du fichier. - - - - - - Mount(MountPoints, [OpenDir, - Quiet]) - Monte tous les dossiers spécifiés par MountPoints. - Si OpenDir a la valeur true, tous les dossiers - seront ouverts après leur montage. - - - - - - Unmount(MountPoints, [Quiet]) - Démonte tous les dossiers spécifiés par MountPoints. - - - - - - - - References - - - ROXThe ROX desktop, - - - - - RISC OSRISC OS, - - - - - GTK+GTK+ Toolkit, - - - - - GladeGlade - a User Interface Designer for GTK+ and GNOME, - - - - - libxmlThe XML C library for Gnome - - - - - GNOMEThe GNOME desktop, - - - - - DNDThe Drag and Drop protocol, - - - - - XDSThe X Direct Save protocol, - - - - - BaseDirThe freedesktop.org base directory system, - - - - - AVFSAVFS - A Virtual File System, - - - - - SOAPSimple Object Access Protocol (SOAP) 1.2 - - - - - VignettesThumbnail Managing Standard (Version 0.5) - - - - - WallpaperWallpaper backdrop control application - - - - - SharedMIMEShared MIME-info Database (Version 0.16) - - - - - IconThemeThe freedesktop.org Icon Theme specification - - - - - diff --git a/ROX-Filer/src/Docs/Manual-it.xml b/ROX-Filer/src/Docs/Manual-it.xml deleted file mode 100644 index 00040f9d..00000000 --- a/ROX-Filer/src/Docs/Manual-it.xml +++ /dev/null @@ -1,3481 +0,0 @@ - - - - - - - - - ROX-Filer: manuale dell'utente - <ulink url="http://rox.sourceforge.net"/> - - - ThomasLeonard - - - Yuri - Bongiorno - Traduzione italiana - - 2005Thomas Leonard - - Conditions - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2 of the License, - or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA. - - - - - - ROX-Filer è un file manager grafico per X - Window. La sua interfaccia utente è ispirata al filer di RISC OS e ha - caratteristiche simili, come le directory applicative e il trascinamento - per caricare e salvare i file. Il filer può anche agire da bacheca e permette - di appendere i file più usati sullo sfondo del desktop. - - - - - - Introduzione - - ROX-Filer è un file manager grafico, facile da usare, - per X11, il sistema a finestre usato dai sistemi operativi *nix. - È anche il componente principale del desktop ROX - ROX. Le caratteristiche principali del filer sono ispirate - a RISC OS RISC OS. «ROX» sta per «Risc os On X». - - - - Caratteristiche - - - - - XDND - - Un protocollo di drag-and-drop usato, per esempio, dal desktop GNOME - GNOME. Permette di caricare i dati in un'applicazione - semplicemente trascinandoli dalla finestra del filer su un programma. Le - specifiche complete si trovano in DND. - - - XDS - - Un'estensione di XDND che permette alle applicazioni di salvare i dati - trascinando un'icona dell'applicazione su una finestra del filer. Le - specifiche complete si trovano in XDS. - - - Specifiche Basedir - - Un semplice e flessibile sistema per gestire le preferenze dell'utente. Normalmente - le preferenze vengono salvate in ~/.config. Tuttavia questo si - può cambiare impostando la variabile d'ambiente XDG_CONFIG_HOME. - Vedere BaseDir per i dettagli. - - - Directory applicative - - Sono applicazioni contenute completamente in una directory, la cui installazione - consiste nel copiare la directory dove si vuole e la cui disinstallazione - è semplicemente la cancellazione della directory stessa. Sono descritte più avanti. - - - Miniature - - Il filer può visualizzare le immagini usando l'immagine stessa come icona, - invece di usarne una generica. È molto utile in una directory - piena di foto. Vedere Thumbs per i dettagli. - - - Database condiviso delle informazioni MIME - - In passato, ogni desktop aveva il suo database di regole per determinare il - tipo di file. Ora, il database condiviso delle informazioni MIME - SharedMIME ha unificato tutto in un unico sistema - condiviso da tutti i desktop. - - - Tema delle icone - - Si possono installare (ad es. in ~/.icons) varie raccolte - di icone, chiamate anche temi. Per cambiare tema, andare nella finestra - «Opzioni». Si potranno condividere i temi con gli altri desktop, quando anche - questi ultimi ne attiveranno il supporto. Vedere IconTheme per i dettagli. - - - Supporto a DNotify (solo per Linux) - - Se si usa un kernel Linux recente (2.4.x), il filer si accorge - automaticamente delle modifiche nel contenuto delle directory. Negli altri sistemi - invece, le directory si aggiornano quando il puntatore si sposta sopra di esse. - - - - - - - - - - - Attivazione - - Per avviare il filer, si deve eseguire il comando rox, per - esempio digitandolo in un terminale. Se il filer non è ancora installato, - consultare l'. - - - Normalmente ROX-Filer mostra la directory attuale, ma se ne - possono visualizzare altre semplicemente elencandole dopo il comando: - - $ rox /home /usr /usr/local - - Lo si può anche usare per aprire i file, come ad esempio: - - $ rox README - - Il filer supporta diverse opzioni: usare per avere un elenco. - Tutte le opzioni possono essere lunghe o corte (es. e - ), anche se su alcuni sistemi è possibile usare solo quelle - corte. - - Notare che se la stessa versione del filer è già in esecuzione sulla macchina, di norma, - per aprire le directory, viene usata quella già in esecuzione. - - Per un elenco completo delle opzioni a riga di comando, vedere l' - - - - <anchor id="run_pin" xreflabel="La bacheca"/>La bacheca - - - Se si desidera che il filer gestisca lo sfondo del desktop, si deve usare l'opzione - seguito da un nome per la bacheca, come ad esempio: - - $ rox --pinboard=MiaBacheca - - Se si cambia qualcosa, per esempio se si rilascia un file sullo sfondo, la configurazione - della bacheca viene salvata in - ~/.config/rox.sourceforge.net/ROX-Filer/pb_MiaBacheca. - Si possono avere tutte le bacheche che si desiderano e per passare dall'una all'altra basta - eseguire di nuovo «rox», come ad esempio: - - $ rox --pinboard=AltraBacheca - - Per disattivare la bacheca, lasciare vuoto il campo del nome: - - $ rox --pinboard= - - Vedere le se ci sono problemi nel visualizzare correttamente - le icone. Si può anche attivare o disattivare la bacheca selezionando in una finestra del filer - la directory applicativa ROX-Filer e scegliendo dal menù - Attiva la bacheca o Disattiva la bacheca - . - - - - <anchor id="run_pan" xreflabel="I pannelli"/>I pannelli - - - I pannelli funzionano come la bacheca, ma vengono visualizzati sui bordi dello schermo. - Per creare un pannello: - - $ rox -b=MioPannello - - Il pannello viene visualizzato in una finestra senza la barra del titolo. Se - questo non succede, consultare le . - Trascinare i file sul pannello per aggiungerli ad esso. Le icone possono essere - riposizionate trascinandole col tasto centrale del mouse. - Le modifiche al pannello sono automaticamente salvate in - ~/.config/rox.sourceforge.net/ROX-Filer/pan_MioPannello. - Come per la bacheca, è possibile passare a diverse configurazioni eseguendo di nuovo - «rox» con un altro nome di pannello. - - $ rox -b=AltroPannello - - Con un menù a comparsa si può impostare su quale bordo dello schermo deve apparire - il pannello, oppure si può specificare il nome del bordo al posto di -b (ad es. --bottom). - Lasciare vuoto il campo del nome per rimuovere il pannello: - - $ rox --bottom= - - - - - <anchor id="winman" xreflabel="note per i window manager"/>Note per i window manager - - Bisogna modificare le impostazioni del proprio window manager per visualizzare correttamente - la bacheca e i pannelli (ad es. per non avere i bordi e i titoli come nelle altre finestre). - In particolare, si deve impostare il livello e la - profondità di stacking al minimo (o a un valore negativo). Assicurarsi inoltre di disattivare - qualsiasi opzione del tipo «Keep transients above other windows». - - - Sawfish / Sawmill - - Sawfish all'avvio tenta di capire se si sta usando GNOME e, se è così, fornisce il - supporto necessario. Si deve quindi aggiungere la riga - (require 'gnome) - al file .sawfishrc (consultare il manuale di sawfish per ulteriori - dettagli). - - - - IceWM - - - Incollare le seguenti impostazioni nel file - ~/.icewm/preferences: - - - # Manage root window (EXPERIMENTAL - normally enabled!) - GrabRootWindow=1 # 0/1 - # Bitmask of root window button click to use in window manager - UseRootButtons=3 # [0-255] - # Desktop mouse-button click to show the menu - DesktopWinMenuButton=1 # [0-20] - # Desktop mouse-button click to show the window list - DesktopWinListButton=2 # [0-5] - # Desktop mouse-button click to show the window list menu - DesktopMenuButton=0 # [0-20] - Incollare queste nel file ~/.icewm/winoptions: - - - # ROX-Filer pinboard and panel - ROX-Filer.icon: folder - ROX-Panel.layer: Dock - ROX-Panel.doNotCover: 1 - ROX-Panel.ignoreWinList: 1 - ROX-Panel.ignoreTaskBar: 1 - ROX-Panel.ignoreQuickSwitch: 1 - ROX-Pinboard.layer: Below - ROX-Pinboard.ignoreWinList: 1 - ROX-Pinboard.ignoreTaskBar: 1 - ROX-Pinboard.ignoreQuickSwitch: 1 - ROX-Filer.layer: Normal - Riavviare IceWM e il filer affinché le nuove impostazioni abbiano effetto. - - - - - Window Maker - - Avviare il filer con rox -p=Default. - - Premere Control+Esc, o - [RightButtonDown] sulla barra del titolo di qualunque finestra. - Scegliere Proprietà... dal menù. - - - - Appare la finestra «Ispeziono...». Dal menù a tendina in alto, scegliere - Specifica classe finestra - (il primo in alto). - - - - Premere il pulsante Seleziona finestra. - Il cursore diventa una croce. Selezionare un'icona della bacheca di - ROX-Filer. I pulsanti radio della cornice - Specifica classe finestra dovrebbero cambiare le loro etichette - per includere ROX-Pinboard.ROX-Filer come primo elemento. - Selezionare quel pulsante radio. - - - - Scegliere Attributi della finestra dal menù a tendina. - Nella cornice Attributi, selezionare le caratteristiche - della bacheca; sono raccomandate le seguenti: - - Elimina la barra del titolo - Elimina la barra di ridimensionamento - Elimina il pulsante Chiudi - Elimina il pulsante Riduci a icona - Mantieni in fondo - Onnipresente - - - - - - Scegliere Opzioni avanzate dal menù a tendina. - Nella cornice Avanzate, selezionare le caratteristiche avanzate - che si desiderano; sono raccomandate le seguenti: - - - Non mostrare nella lista finestre - Ignora "Nascondi gli altri" - Ignora "Salva sessione" - - - - - Terminata la selezione delle proprietà, premere il pulsante - Salva e chiudere la finestra «Ispeziono» - usando il pulsante a forma di X sulla barra del titolo. - - - - - Altri - - Se ancora non funzionano le cose, andare nella sezione «Compatibilità» della - finestra «Opzioni». - - - - - - Esecuzione come «root» - - - Se si avvia il filer come utente «root», viene mostrato un messaggio in - alto su ciascuna finestra. L'utente «root» infatti ha i permessi di accesso e - di modifica su ogni file del sistema, quindi bisogna stare molto attenti. - - Normalmente, si dovrebbe accedere al sistema come utente normale e passare a - «root» solo quando è assolutamente necessario. Se sudo - è installato e configurato, allora si può avviare il filer in questo modo: - - $ sudo rox - - Attenzione: ogni operazione su file e ogni programma avviato da questa - finestra viene eseguito come utente «root». - - Può accadere che il server X non permetta a «root» (o ad altri utenti) di - connettersi. Leggere le pagine di manuale dei comandi xauth e - xhost può aiutare a risolvere il problema, ma molte cose - cambiano da sistema a sistema (ecco perché questa caratteristica non è stata - inserita nel filer). - - - - Nota: gnomesu può essere usato per eseguire il filer come root, - ma è necessario usare setsid per eseguirlo in una nuova - sessione, altrimenti gnomesu termina senza aprire alcuna finestra. Per esempio: - gnomesu -c 'setsid /usr/local/bin/rox /' - - - - - - - Pulsanti del mouse e associazioni dei tasti - - In breve: - - Fare clic con il pulsante sinistro del mouse - In questo manuale c'è la seguente convenzione: il pulsante–1 - è quello sinistro, il pulsante–2 è quello centrale e il pulsante–3 è quello - destro. Fanno ovviamente eccezione i mouse per mancini. - per aprire file e directory. - - - Fare clic con il pulsante destro per attivare il menù. Fare clic su un file - per compiere un'azione su quel file. - - - - Trascinare i file tra le finestre con il pulsante sinistro per copiare, spostare o fare - collegamenti (si sceglie da un menù). Il collegamento è una scorciatoia verso il file - originale. - - - - - - Normalmente, le associazioni dei pulsanti del mouse sono progettate per adattarsi alle - convenzioni di X. Comunque, tutto è altamente configurabile: vedere nella finestra - «Opzioni» se si desidera cambiare le impostazioni predefinite, che sono le seguenti: - - - - - Tasto o pulsante del mouseAzione - - - - Clic pulsante sinistro - Apre il file o la directory su cui si ha fatto clic. Tenere premuto Control - per selezionare gli elementi invece di aprirli. Tenere premuto Shift - per guardare dentro i file (come se fossero di testo), per seguire i - collegamenti simbolici o per ottenere maggiore controllo sui punti di mount - (vedere ). - - - Clic pulsante centrale - Fa le stesse cose del pulsante sinistro, ma apre una directory in una nuova finestra - e, quando apre un file, chiude la finestra del filer. - - - Clic pulsante destro - Attiva il menù principale. Tenere premuto Control per andare direttamente - nel sottomenù degli elementi selezionati. Tenere premuto Shift per - attivare il menù Invia a... (vedere la sezione . - - - Trascinare un elemento (pulsante sinistro del mouse) - Mostra un menù di azioni possibili. C'è la possibilità di disabilitare questo menù, in - questo caso i file vengono copiati nella destinazione (un'applicazione o un'altra - finestra del filer). Tenere premuto Shift - per spostare i file, Control+Shift per creare un - collegamento simbolico, Alt per attivare un menù di azioni possibili. - - - Trascinare un elemento (pulsante centrale del mouse) - Quando si rilascia, mostra un menù di azioni possibili. C'è la possibilità di - spostare i file invece di attivare il menù. - - - Trascinare (non sopra un elemento) - Seleziona un gruppo di elementi. Col tasto sinistro del mouse, si selezionano solo gli - elementi dentro la selezione, ma tenendo premuto anche il tasto Control - gli elementi vengono aggiunti alla selezione precedente. - Usando il tasto centrale, gli elementi passano dallo stato selezionato a quello - deselezionato e viceversa. - - - Doppio clic sullo sfondo del filer - Ridimensiona la finestra in modo opportuno (si può disattivare nella finestra «Opzioni»). - - - Backspace - Va nella directory genitore. - - - Frecce - Spostano il cursore. - - - - Pagina su, Pagina giù - Spostano il cursore su e giù di una pagina alla volta. - - - Inizio, Fine - Spostano il cursore alla prima e all'ultima voce della directory. - - - Invio - Agisce come se si facesse clic su un file. Tenere premuto «Shift» per ottenere altri - effetti, come quando si fa clic. Tenendo premuto «Alt» agisce come facendo clic - con il tasto centrale del mouse: le directory vengono aperte in una nuova - finestra e l'apertura dei file provoca contemporaneamente la chiusura - della finestra del filer. - - - Barra spaziatrice - Seleziona e deseleziona l'elemento e si sposta su quello successivo. - - - Tab, Shift+Tab - Sposta il cursore sul successivo/precedente elemento selezionato. - - - Tenere il mouse su un elemento - Mostra un suggerimento: una breve descrizione (se disponibile) dell'applicazione, - la destinazione di un collegamento simbolico e il nome completo di un file che è troppo - lungo per essere visualizzato nella finestra principale. - - - - - - Se sono abilitate le associazioni dei tasti definite dall'utente, allora altri tasti - possono essere facilmente impostati attivando il menù, spostando il puntatore su - una voce che si desidera usare e premendo un tasto. Quest'ultimo appare ora nel menù - e può essere usato da qui in avanti. Le associazioni dei tasti sono automaticamente salvate - quando si chiude il filer. È possibile usare un gestore di XSettings, come ROX-Session, - per attivare questa caratteristica su tutte le applicazioni Gtk+-2.0. - - - - - La selezione - - Quando si selezionano gli elementi di una finestra di ROX-Filer, - il filer memorizza la selezione primaria. È possibile quindi incollare - in un'altra finestra il nome (e il percorso) del file selezionato. - - - - Esempio: caricare un file in un'applicazione che non supporta il drag-and-drop: - - Aprire la finestra di dialogo «Apri» dell'applicazione. - - - Selezionare il file in una finestra di ROX-Filer usando - Control+clic. - - - Fare clic col tasto centrale del mouse nella finestra dell'applicazione per incollare - il nome. - - - - - Notare che si può aprire il file selezionato facendo clic con il tasto centrale del mouse - nell'area principale dei più comuni browser web. - - Se si seleziona qualcos'altro (es. qualche parola in un altro programma), il filer perde la - selezione primaria e gli elementi selezionati diventano ombreggiati. Per riprenderla, - fare clic su un elemento ombreggiato. - - - Salvare e ripristinare la selezione - - A volte è utile salvare la selezione attuale, per farlo basta premere - Control+<numero> tra zero e nove. - Per ripristinare la selezione, basta premere il numero di prima. È possibile - farlo da directory differenti o da finestre di filer differenti. - - Se si salva quando non c'è nessuna selezione, viene salvata la directory attuale. - - Esempio: salvare e ripristinare una directory: - Cercare una directory che si desidera memorizzare. - Premere Control+1. - Spostarsi in un'altra directory o chiudere la finestra. - In un'altra finestra del filer premere 1 per ritornare - nella directory iniziale. - I gruppi di selezione vengono salvati automaticamente e sono disponibili - anche la prossima volta che si usa il filer. - - - - - <anchor id="Toolbar" xreflabel="La barra degli strumenti"/>La barra degli strumenti - - - Normalmente, ogni finestra ha in alto una barra degli strumenti. Con il menù «Opzioni» - è possibile disabilitarla, renderla più larga o più stretta selezionando quali strumenti - far apparire. Di solito si fa clic su questi strumenti con il pulsante sinistro (1) - del mouse, ma alcuni di questi hanno anche altre funzioni con il pulsante - centrale (2) o destro (3). - - - - - - - Icona - Pulsante 1 del mouse - Altro pulsante - - - - - - - Croce - Chiude la finestra - Apre una nuova finestra - - Freccia su - Va nella directory genitore - Mostra la directory genitore in una nuova finestra - - Casa - Va nella directory home - Mostra la directory home in una nuova finestra - - Freccia sul punto giallo - Apre il - - Modifica i segnalibri - - Frecce in cerchio - Aggiorna il contenuto della directory - Apre una nuova finestra - - Lente d'ingrandimento (+) - Aumenta le dimensioni delle icone. - Diminuisce le dimensioni delle icone. - - Lente d'ingrandimento (adatta) - Imposta la modalità di ridimensionamento automatico. - - - - Elenco - Mostra o nasconde i dettagli - La stessa cosa - - A..Z - Passa al criterio di ordinamento successivo. - Passa al criterio di ordinamento precedente. - - Occhio - Mostra o nasconde i file nascosti (il cui nome inizia con un punto) - Mostra o nasconde le miniature delle immagini - - Elenco con selezioni - Seleziona tutto. - Inverte la selezione. - - Salvagente - Mostra i file di aiuto di ROX-Filer - Apre direttamente il manuale - - - - - [1] - Se è attivata l'opzione «Nuova finestra con il pulsante 1», il comportamento predefinito - è di aprire una nuova finestra, invece se si fa clic con l'altro pulsante viene usata la stessa - finestra. - - - - Trascinare i file sull'icona «Su» o sull'icona «Casa» è equivalente a trascinarli - direttamente nelle directory a cui conducono. Trascinare una directory sul - pulsante «Segnalibri» è equivalente ad aggiungerla come un nuovo segnalibro. - - - La barra degli strumenti può mostrare il numero di file nella directory e informazioni - sulla selezione. Si può disattivare nel menù «Opzioni». - - - - - I menù - - Normalmente, si può attivare il menù facendo clic col tasto destro sulla bacheca, sul - pannello o sulla finestra del filer. - - Nelle finestre del filer è anche possibile attivare il menù premendo - \. Per accedere direttamente al sottomenù «File», tenere premuto - Control mentre si attiva il menù. Ecco la descrizione di ciascuna voce: - - - - VoceAzione - - - Visualizza - Cambia le impostazioni di visualizzazione. - - - File - Operazioni sugli elementi selezionati. - - - Seleziona - Stabilisce quali elementi selezionare. - - - Opzioni - Configura ROX-Filer. - - - Nuovo - Crea un nuovo file o una nuova directory dentro la directory attuale. - - - Finestra - Operazioni sulle finestre nel loro complesso. - - - Aiuto - Informazioni sul filer. - - - - - - - - Il menù «Visualizza» - - - - - VoceAzione - - - Vista a icone - I file sono visualizzati come icone. - - - Icone, con... - I file sono visualizzati come icone con l'aggiunta di dettagli - scelti dal sottomenù. Per vedere tutte le informazioni su ogni file, - usare la «Vista a lista». - - - Vista a lista - Mostra i file in un elenco con i loro dettagli. Fare clic sul titolo di una - colonna per ordinarli secondo quella colonna. - - - Icone enormi - Incrementa la dimensione delle icone e disattiva la modalità automatica. - - - Icone piccole - Riduce la dimensione delle icone e disattiva la modalità automatica. - - - Automatico - Modalità automatica: seleziona automaticamente la dimensione delle icone - (utile quando si cambia directory, ecc...). - - - Ordina per XXX - Imposta il tipo di ordinamento. Nella «Vista a lista» è possibile farlo anche - facendo clic sul titolo delle colonne. - - - Invertito - Ordina in modo invertito (dal più nuovo al più vecchio, dal più grande al più - piccolo, ecc...). - - - Mostra nascosti - Se attivato, vengono mostrati i file che iniziano con il punto, altrimenti vengono - nascosti. Quando è attivato, la barra del titolo mostra (Tutti). - - - Filtra i file... - Limita la visualizzazione a solo quei file i cui nomi corrispondono a un modello dato. - Quando è attivato, la barra del titolo mostra (Glob (modello)). - - - Filtra le directory con i file - Applica il filtro Filtra i file... anche alle directory. - - - Mostra miniature - Se attivato, per ogni immagine il filer tenta di caricare come - icona del file l'immagine stessa. È utile nelle directory piene di foto. - Per ulteriori dettagli, vedere la sezione . - - - Aggiorna - Rilegge il contenuto della directory e i dettagli di tutti i file presenti in essa. - Da usare se il contenuto mostrato è obsoleto. - - - Salva le impostazioni di visualizzazione... - Memorizza le impostazioni di visualizzazione solo per questa directory. Ogni volta che questa directory sarà aperta, verranno usate le impostazioni salvate. - - - - - <anchor id="Permissions" xreflabel="Permessi"/> - Permessi - - - - Il campo dei permessi è formato da quattro gruppi di tre flag. Ogni - flag è visualizzato con una lettera o con un trattino (–). - Le prime tre lettere sono i permessi del «proprietario» del file, le successive tre - del «gruppo» del file e le altre tre degli «altri». Se uno di questi gruppi si - riferisce al processo stesso di ROX-Filer, allora viene - mostrato sottolineato. - Nel quarto gruppo ci sono alcuni flag speciali. - - Il significato delle lettere è il seguente: - - - - r — - Permesso di leggere il contenuto del file o i nomi dei file in una directory. - - - w — - Permesso di modificare il contenuto del file o di cambiare i nomi che appaiono - in una directory. - - x — - Permesso di eseguire un file come se fosse un programma o di attraversare una - directory. - - U — - Il programma in esecuzione ha come ID utente effettivo quello - del proprietario del programma invece che della persona che lo ha eseguito. - - - G — - Il programma in esecuzione ha come ID gruppo effettivo quello - del gruppo del programma invece che del gruppo di chi lo ha eseguito. - - - T — - Gli elementi in questa directory possono essere modificati o rimossi solo dal - proprietario dei file e da nessun altro, anche se si ha accesso in scrittura - alla directory in questione. - - - - Per esempio, - - rwx,rwx,r-x/--- - significa che il proprietario del file è lo stesso utente effettivo di - ROX-Filer, il proprietario e i membri del gruppo - del file hanno permessi in lettura, scrittura ed esecuzione, infine gli altri hanno - solo i permessi in lettura ed esecuzione. Non ci sono flag speciali. - - Le regole che determinano quali permessi applicare possono variare leggermente da un - sistema operativo a un altro, ma in linea di massima: - - - - Se ID utente effettivo del processo è uguale - al proprietario del file, si applicano i permessi del proprietario. - - - Altrimenti, se ID gruppo effettivo - del processo è uguale al gruppo del file o se il gruppo del file è uno dei - gruppi supplementari del processo, si applicano i - permessi del gruppo. - - - Per il resto, si applicano i permessi degli «altri». - ID utente reale e ID gruppo reale - non hanno effetto (eccetto che un processo imposti il suo ID reale come il suo - ID effettivo). - - - - - - - - - - Il menù «File» - - Tutti i menù funzionano in modo simile. Per esempio, attivando il menù su - qualche elemento selezionato, l'operazione si applica solo agli elementi - selezionati. Attivando invece il menù su un elemento quando non c'è nessuna - selezione, quell'elemento viene selezionato momentaneamente. - - Attivando un menù né su un elemento né su una selezione, la finestra va in - "modalità bersaglio": l'operazione viene eseguita sul prossimo elemento su cui - si fa clic. Si esce dalla modalità bersaglio premendo Esc, - facendo clic sullo sfondo della finestra o con il tasto destro del mouse. Questa modalità è - utile con l'opzione Navigazione a singolo clic - e con i tasti associati alle varie voci di menù. - Notare che le singole applicazioni possono aggiungere altri menù in cima ai - sottomenù che si ottengono facendo clic sopra di esse. Vedere - per ulteriori dettagli. In alto ci può essere un - numero qualsiasi di azioni definite dall'utente, che dipendono dal tipo di file - su cui si fa clic. Per aggiungere dei programmi, selezionare la voce - Personalizza il menù.... Per esempio, è possibile far - apparire come menù Gimp per le immagini e - FreeFS per i punti di mount. - - - VoceAzione - - - - Copia... - Fa una copia di questo elemento. - - - - Rinomina... - Cambia il nome di questo elemento o lo sposta in un'altra directory. - Se sono selezionati più file, allora apre . - - - - - Collegamento... - Crea un collegamento simbolico a questo nome. - - - - Elimina - Rimuove dalla directory tutti gli elementi selezionati. Se è una sottodirectory, - viene prima eliminato il suo contenuto. Se è un collegamento simbolico, - si elimina solo il collegamento, non l'elemento a cui punta. - - - - Apri con Shift - Apre le applicazioni come se fossero directory, i file come se fossero di testo - e per i collegamenti simbolici apre la directory che contiene l'elemento a cui punta. - Ha anche un comportamento particolare per i punti di mount (vedere ). - Si ottiene lo stesso effetto quando si fa clic tenendo premuto il tasto - Shift. Il testo della voce di menù cambia per mostrare - quale azione sta per essere eseguita. - - - - Invia a... - Attiva il menù «Invia a...» e permette di mandare i file selezionati a una o più - applicazioni. Vedere la sezione . - - - - Imposta azione... - Permette di impostare il programma predefinito da usare quando si apre un file di questo - tipo. Vedere la sezione per ulteriori dettagli. - - - - Imposta icona... - Dà un'icona speciale a un file o una directory: basta trascinare un'immagine in - . - - - - Proprietà - Mostra ulteriori informazioni dell'elemento selezionato. Qui è anche possibile - cambiare la destinazione di un collegamento simbolico e i permessi (ma il menù - Permessi che è più in basso, permette di - cambiarli a più file contemporaneamente). - - - - Spazio usato - Calcola lo spazio usato dagli elementi selezionati. Se è una directory, tiene - conto anche del suo contenuto. Se è un collegamento simbolico, non tiene conto - dell'elemento a cui punta. - - - - Tipo di file... - Imposta il tipo di MIME di un file. Funziona solo sui file system che hanno il supporto - esteso degli attributi. Nei vecchi file system, per cambiare il tipo di MIME, si deve rinominare il file. - - - - Permessi - Permette di cambiare i permessi ai file selezionati. Se è selezionato solo un - file, è meglio usare l'interfaccia più semplice del menù - Proprietà - - - - Trova - Cerca i file specificando varie condizioni. Vedere anche la sezione - . - - - - - - Nota sui collegamenti simbolici: - - un collegamento simbolico memorizza il percorso - di un altro file. Eliminando questo collegamento, non si influenza l'altro - file. Eliminando invece l'altro file, il collegamento simbolico viene interrotto. - Ci sono due tipi di collegamento simbolico: assoluto e relativo. Un collegamento - simbolico assoluto memorizza il percorso partendo dalla radice («/» o «root»), - per esempio: /home/fred/MyFile. - - Un collegamento simbolico relativo memorizza il percorso partendo dal collegamento - stesso, per esempio ../fred/MyFile. - Se non si ha intenzione di spostare il file di destinazione, è meglio usare un - collegamento assoluto, altrimenti uno relativo. - - - - - - Il menù «Seleziona» - - Questo menù permette di selezionare e di deselezionare i file in vari modi. Vedere la sezione - per gli altri modi di selezionare i file. - - - VoceAzione - - - Seleziona tutto - Seleziona tutti gli elementi della finestra. - - - Annulla la selezione - Deseleziona tutti gli elementi della finestra. - - - Inverti la selezione - Ogni file selezionato diventa deselezionato e viceversa. - - - - Seleziona per nome... - Seleziona solo i file che corrispondono a un dato modello. Non è flessibile - come Seleziona se... (vedere - sotto), ma è più veloce da usare. Con questa opzione i file vengono anche selezionati. - La scorciatoia da tastiera predefinita è ., - quindi basta digitare per esempio .png per selezionare - tutti i file .png. - - - - Seleziona se... - Seleziona solo quei file che soddisfano un dato modello di ricerca. Vedere - la sezione . - - - - - - - - - Il menù «Nuovo» - - - Ciascuna voce di questo menù apre una finestra per creare un nuovo file o una - nuova directory. Ci sono due voci predefinite, le altre sono il contenuto della directory - ~/.config/rox.sourceforge.net/Templates, se esiste. - - - - VoceAzione - - Directory - Crea una nuova directory. - - - File - Crea un file vuoto. - - - Personalizza - Apre la directory Templates per aggiungere altre voci al menù. - - - <definiti dall'utente> - Copia un file dalla directory «Templates». - - - - - Per aggiungere nuove voci, scegliere Personalizza - e mettere i file lì dentro. I file di quella directory compaiono quindi nel menù e vengono - usati per creare i nuovi file. Per esempio, se si desidera creare un file HTML vuoto: - - -<html> - <head> - <title>Titolo della pagina</title> - </head> - <body> - Il contenuto della pagina. - </body> -</html> - - Salvando questo file come index.html dentro la directory - Templates si possono creare facilmente file HTML. - È possibile anche salvare documenti vuoti di vario tipo, come ad es. un foglio - di calcolo, una lettera, ecc... - - Notare che al momento non è possibile impostare le scorciatoie per questi tipi di - voci. - - - - - - Il menù «Finestra» - - - - - VoceAzione - - - Directory genitore, nuova finestra - Visualizza la directory genitore in una nuova finestra. - - - - Directory genitore, stessa finestra - Come sopra, ma usa la stessa finestra. - - - - Nuova finestra - Visualizza la stessa directory in una nuova finestra. - - - - Directory home - Va nella directory home. - - - - Mostra i segnalibri - Apre il menù dei segnalibri (vedere ). - - - - Segui i collegamenti simbolici - Converte il percorso mostrato nella barra del titolo della finestra nella sua forma - canonica. Per esempio, se /home/fred/link è il collegamento simbolico - che punta a /usr/share/doc/, facendo clic sul collegamento si va in quella - directory, poi facendo clic su «Su» si torna in /home/fred. - Se invece si fa clic su Segui i collegamenti simbolici, quando poi - si torna «Su», si va in /usr/share. - - - - Ridimensiona finestra - Ridimensiona la finestra in base al suo contenuto. - - - - Chiudi finestra - Chiude la finestra. - - - - Inserisci percorso... - Apre un minibuffer per inserire il percorso (vedere la sezione ). - - - - Comando shell... - Apre un minibuffer per il comando di shell (vedere la sezione ). - - - Xterm qui - Apre un xterm nella directory attuale. - - - Scambia con xterm - Apre un xterm nella directory attuale e contemporaneamente chiude la finestra del - filer. - - - - - - - - - - Il menù «Aiuto» - - - - VoceAzione - - - Informazioni su ROX-Filer - Mostra le informazioni del filer. È equivalente a cercare «ROX-Filer» - in una finestra del filer e selezionare Proprietà - dal menù. - - - - Mostra i file di aiuto - È equivalente a selezionare «ROX-Filer» e scegliere - Aiuto dal menù. - - - - Manuale - Apre il manuale HTML nella lingua impostata nel sistema. Se la traduzione non è disponibile - mostra la versione in inglese. - - - - - - - - - <anchor id="SendTo" xreflabel="Il menù «Invia a...»"/>Il menù «Invia a...» - - - Il menù «Invia a...» fornisce un modo veloce per inviare file a un'applicazione. - Il filer analizza tutte le directory SendTo nel - $XDG_CONFIG_DIRS/rox.sourceforge.net/SendTo - (vedere BaseDir) ed elenca il contenuto in questo menù. - - Per cambiare le applicazioni che appaiono, scegliere - Personalizza in fondo al menù. Si apre quindi - la directory SendTo. Si possono creare collegamenti simbolici - alle applicazioni, trascinandole qui e scegliendo - Collegamento dal menù. - - Aprire «Invia a...» dal menù principale è piuttosto scomodo, normalmente lo si apre - facendo clic col tasto destro del mouse su un file e tenendo premuto il tasto - Shift. - - - Visualizzare applicazioni differenti per tipi di file differenti - - Supponiamo che si voglia che «Gimp» sia l'unica applicazione visualizzata quando è - stata selezionata un'immagine. Per fare questo, si deve creare una directory - nascosta dentro SendTo di nome .image (o - di qualsiasi altro tipo di file si desidera). È anche possibile usare il tipo - completo, come ad esempio .image_png. Usare il menù - Proprietà su un file per conoscere il tipo di MIME. - - - Le voci di queste directory nascoste sono mostrate solo per i file di tipo appropriato. - Se si seleziona più di un file, viene usata la directory .group. - - - - - - <anchor id="bookmarks" xreflabel="menù segnalibri"/>Il «Menù segnalibri» - - Il menù segnalibri viene usato per memorizzare un elenco di directory usate frequentemente. - È possibile aprirlo anche dal menù principale (sottomenù - Finestra) e creare una scorciatoia associandolo a un - tasto. Dal menù segnalibri è possibile aggiungere alla lista la directory attualmente - visualizzata, spostarsi in una directory memorizzata, o aprire una finestra di dialogo - per modificare l'elenco. Se necessario, si possono rimuovere le voci, riordinarle - (usando le frecce o trascinandole) e modificare direttamente i percorsi. - - - Il sottomenù Visitati di recente mostra le ultime directory - viste. Sceglierne una per entrarci subito. La directory attuale - è ombreggiata, dal momento che ci si trova già lì. - - - - - - - La bacheca e i pannelli - - - Le sezioni e spiegano come - attivare la bacheca e i pannelli. Una volta attivi, è possibile rilasciare gli - elementi da una finestra del filer per appenderli. È indifferente fare clic su un - elemento affisso sulla bacheca o fare clic nella finestra del filer. Le icone - affisse si trascinano come quelle normali e si può attivare il loro menù - con il tasto destro del mouse. - - Per spostare le icone del pannello, trascinarle con il tasto centrale del mouse. - Nelle precedenti versioni del filer, si potevano spostare le icone della bacheca - anche col tasto centrale del mouse, ma ora non è più possibile perché tale tasto - è riservato al window manager. - - È possibile assegnare le scorciatoie da tastiera alle icone del pannello e della - bacheca. Si possono usare per aprire velocemente directory, file o applicazioni, - persino se un'altra finestra ha il focus. - - Le modifiche al pannello e alla bacheca vengono salvate automaticamente. Facendo clic - sulle icone affisse tenendo premuto il tasto Control, queste vengono - selezionate e deselezionate. Fare clic sullo sfondo per deselezionarle tutte. - - - - Trascinare un file sulla bacheca o sul pannello non significa - copiarlo: è solamente una scorciatoia al file. Questo comportamento è - molto diverso da quello degli altri filer. Infatti se si elimina il file dalla - bacheca, si elimina solo il collegamento al file originale; se si elimina il file - originale, sulla bacheca rimane solo un collegamento interrotto. - - - - I menù del pannello e della bacheca - - - - VoceAzione - - - - ROX-Filer - Mostra i file di aiuto, modifica le opzioni e apre la directory home. - - - - File «file» - È una versione ridotta del sottomenù «File» del filer. - - - - Modifica elemento - Cambia il nome visualizzato sotto l'icona o il percorso all'elemento a - cui punta. Si può impostare una scorciatoia da tastiera per l'icona o - bloccarla per impedirne la cancellazione accidentale. - Inoltre, è possibile specificare gli argomenti aggiuntivi da passare ai programmi. - - - - Mostra posizione - Mostra dove è memorizzato il file. - - - - Rimuovi elemento - Rimuove gli elementi selezionati dalla bacheca o dal pannello. - - - - Sfondo... - Imposta l'immagine di sfondo (vedere più sotto). È disponibile - solo nel menù della bacheca. - - - - Opzioni pannello... - Imposta il bordo dello schermo sul quale visualizzare il pannello. È disponibile - solo dal menù del pannello. - - - - - - Per creare le impostazioni predefinite per gli altri utenti come l'icona «Home» che - punta alla directory dell'utente stesso, prima si deve creare una nuova icona, - poi si deve usare Modifica elemento per cambiare il percorso - in ~ e infine rinominarlo «Home». - - Notare che facendo clic su certe applicazioni, queste possono aggiungere alcuni menù in - cima al menù principale. Vedere per ulteriori dettagli. - - - - - Le applet del pannello - - - ROX-Filer permette di eseguire dentro il pannello piccole - applicazioni di nome applet. Per eseguirne una, trascinarla nel - pannello dalla finestra del filer. La sua icona non viene visualizzata, ma l'applet - viene eseguita. - - - - Creare una applet (solo per programmatori): - - - Creare una directory per l'applet (per es. MiaApplet). - - - - Usare il menù Imposta icona... per creare dentro - la directory un'icona di nome .DirIcon. La directory viene - poi visualizzata con quest'icona. - - - - Creare una sottodirectory Help per quando l'utente - sceglie Aiuto dal menù. - - - - Creare un eseguibile di nome AppletRun. Questo - passa lo XID del socket del pannello quando la directory viene trascinata - dentro il pannello. Usare questo per creare un widget GtkPlug. Un tutorial - è disponibile su - - - - - - - - <anchor id="iconify" xreflabel="Finestre minimizzate sulla bacheca"/>Finestre minimizzate sulla bacheca - - Quando è attiva la bacheca, ROX-Filer può visualizzare le finestre ridotte a icona (o - «minimizzate») mostrando un'opportuna icona sulla bacheca. Attivare questa funzione nella - finestra «Opzioni». Le finestre ridotte a icona hanno uno sfondo semitrasparente e possono - essere spostate. Fare clic sopra per ripristinare la finestra. Alcuni vecchi window - manager non supportano questa funzione, quindi nessuna icona viene mostrata. - - - - - <anchor id="backdropapp" xreflabel="L'immagine di sfondo della bacheca"/>L'immagine di sfondo della bacheca - - È possibile scegliere un'immagine per lo sfondo, scegliendo Sfondo... - dal menù della bacheca (tasto destro del mouse sullo sfondo se la bacheca è attiva). - - - Selezionare Centra, Scala, - Stira o Affianca per impostare lo stile, - poi trascinare un'immagine nell'area sottostante. Per ritornare a un colore uniforme, - (definito nella finestra «Opzioni»), fare clic su Pulisci. - - Si può usare l'applicazione «Wallpaper» Wallpaper per creare - effetti più complessi, come la scelta casuale di un'immagine ogni ora o il rendering - dell'immagine della Terra come è attualmente illuminata dal sole. - - Per i programmatori. - - Se si desidera creare un'applicazione che imposta lo sfondo, per es. che sceglie - un'immagine casuale o una sequenza di diapositive, è necessario prima creare - una directory applicativa (vedere ). - - - Se eseguita senza argomenti, l'applicazione dovrebbe attivare il metodo SOAP - SetBackdropApp (vedere ). Il filer quindi la riesegue immediatamente e, questa volta, - con l'opzione . - - Se eseguita con , il programma dovrebbe scrivere lo stile - e il nome del file immagine da visualizzare nel suo standard stream di output, es: - tile /tmp/image.png - centre e scale sono gli altri stili - possibile. Il filer quindi carica l'immagine e la visualizza. L'applicazione non - imposta lo sfondo, ma dice solamente al filer cosa visualizzare. - - Nel caso di uno sfondo con immagine casuale, il programma può terminare - immediatamente. Se l'applicazione ha creato un'immagine temporanea, dovrebbe leggere - la riga "ok\n" dal suo standard input prima di cancellare l'immagine. - - Se l'applicazione desidera mostrare una sequenza di immagini, dovrebbe ancora leggere - "ok\n", quindi aspettare fino al momento di visualizzare l'immagine successiva e poi - scrivere quel nome di file, e così via. - - Chiudendo i due stream, il filer indica che il programma si deve fermare. A questo - punto il programma dovrebbe terminare. Per eliminare qualunque file temporaneo, - assicurarsi di catturare SIGPIPE quando si scrive sullo standard output. - - Per un esempio completo, vedere l'applicazione «Wallpaper» Wallpaper - (scritta in python). - - - - - - - <anchor id="media" xreflabel="Dispositivi rimovibili"/>Dispositivi rimovibili - - - Usare i dispositivi rimovibili con ROX-Filer, come il dischetto o il cdrom, è abbastanza - semplice. È importante comunque capire il significato di montare e - smontare i device. - - - Montare un device significa far apparire il suo contenuto nel file system. Normalmente, - la directory /floppy è vuota, ma se si monta qui il dischetto, - il suo contenuto appare dentro la directory. Per esempio, un file di nome - Lettera nel dischetto appare come /floppy/Lettera. - - - Prima di rimuovere un disco, il device deve essere smontato, così il sistema può scrivere - i dati che ha in buffer. Rimuovere un disco senza smontarlo può rovinare il suo contenuto. - Fortunatamente i CD e gli Zip sono bloccati quando il device è montato, così non c'è - pericolo di rimuoverli accidentalmente. - - - Quando si vuole usare un disco, non c'è bisogno di specificare ogni volta quale device - usare e in quale punto del file system montarlo, perché nel file - /etc/fstab c'è un elenco preimpostato. ROX-Filer mostra i punti - di mount (come il /floppy) che sono elencati ma non montati con - un cerchio grigio semitrasparente sopra le loro icone. - - - Facendo clic su uno di questi punti di mount, il device viene montato e il cerchio diventa verde. - Non rimuovere il dispositivo finché il cerchio è acceso. Per smontare - il device, fare clic su /floppy tenendo premuto il tasto - Shift. - - - È anche possibile smontare un device chiudendo la finestra (per esempio quella - del /floppy) e scegliendo «Smonta» dalla finestra che appare. - Il filer permette di smontare i device in questo modo solo se sono stati prima - montati dal filer stesso. - - - Per aprire una directory senza montare niente (per esempio se si vuole vedere il - contenuto di /floppy sul disco rigido), fare clic sul punto - di mount (smontato) tenendo premuto il tasto Shift. - Normalmente ciò non serve, dal momento che queste directory sono generalmente vuote. - - - - - <anchor id="thumbnails" xreflabel="Miniature"/>Miniature - - Se le miniature sono attive, il filer prova a caricare ogni file di - immagine e usa quella stessa immagine come icona del file. Sono utili nelle - directory piene di foto. Per attivarle in una sola directory, selezionare - Mostra miniature dal menù Visualizza. - Per averle sempre attive, andare nella finestra «Opzioni». In questo caso, - sulla barra del titolo della finestra compare la scritta (Miniature). - - - Le miniature vengono memorizzate in ~/.thumbnails, per caricarle - più velocemente la volta dopo. Durante il caricamento delle miniature, nella parte - inferiore della finestra compare una barra di avanzamento. Facendo clic sul pulsante - Annulla che è accanto alla barra, viene interrotta la scansione. - È anche possibile creare miniature di altri tipi di file, come ad esempio i video: - basta visualizzare un frame usando un programma opportuno. - - Dettagli tecnici - - Se le miniature sono attive, ROX-Filer controlla - la directory ~/.thumbs/normal per cercare una miniatura per ogni - file che scansiona. Se la miniatura esiste, la carica e continua con il file successivo. - - Per generare la miniatura di un file di un certo tipo di «media/subtype», il filer - cerca un programma prima in - ~/.config/rox.sourceforge.net/MIME-thumb/media_subtype - e poi in ~/.config/rox.sourceforge.net/MIME-thumb/media - (come quando si visualizzano - applicazioni differenti per tipi di file differenti). Se non viene trovato - niente e se il file è di tipo «image/*» allora vengono usate le routine interne. - Se il file non è di tipo «image/*», non viene creata alcuna miniatura. - - Se viene trovato il programma per generare le miniature, allora viene eseguito con i - parametri -generatore_miniature /percorso/al/file /percorso/alla/miniatura dim_pixel - - Non appena il processo figlio termina, si tenta di caricare - /percorso/alla/miniatura. In caso di fallimento, non viene mostrata - alcuna miniatura. - - Notare che a causa dell'ordine di come avvengono le cose, ROX-Filer usa senza problemi - qualunque miniatura preesistente, anche senza sapere come è stata generata. - - - - - - - - <anchor id="vfs" xreflabel="File system virtuale"/>File system virtuale - - - Alcuni tipi di file possono essere rappresentati come directory. Un tipico esempio - è il file zip, che contiene in forma compressa la struttura di una intera directory. - A volte è utile essere in grado di aprire questo tipo di file come se fosse una vera - directory. Il VFS (Virtual File System) permette di farlo. - - Per usare questa funzionalità, AVFS AVFS deve essere installato sul sistema - in modo da permettere al kernel di supportare direttamente i vari tipi di file system virtuali. - - - - Ci sono vari modi di usare AVFS. Questo esempio mostra come usarlo su un sistema con - kernel Linux 2.6 e con FUSE. È necessario che il kernel abbia il supporto per FUSE e che - sia installato il pacchetto dei file header «libfuse-dev». - - - Installare AVFS su Linux 2.6 - - Prendere AVFS dal CVS (la release di Luglio 2005 è troppo vecchia). - - Compilare AVFS (sh autogen.sh; ./configure; make). - - Andare nella sottodirectory avfs/fuse ed eseguire - ./compile.sh. - - Creare un punto di mount: mkdir ~/.avfs-mount. - - Eseguire AVFS: ./avfsd ~/.avfs-mount. - - - - Per configurare ROX-Filer in modo da aprire le directory usando AVFS, cliccare su - (Imposta azione...) per i file zip (ed gli altri tipi di archivi) - ed inserire: - rox ~/.avfs-mount/"$1#" - - - - - - Notare che tutti i passi sopra descritti dovrebbero essere eseguiti come utente normale, non come root. - Potrebbe essere necessario appartenere ad un gruppo speciale per usare FUSE (controllare il gruppo - di /usr/bin/fusermount). - - - - Se non si desidera che AVFS sia l'azione predefinita di questi file, è possibile creare uno script - contenente il comando sopra descritto e aggiungerlo al menù - File, usando Personalizza il menù.... - - - - - - <anchor id="mini" xreflabel="Minibuffer"/>Il minibuffer - - - Il minibuffer è una barra bianca che appare nella parte inferiore della finestra e - che permette di inserire del testo. Per liberarsene, basta premere Esc. - Può essere di vari tipi: - - - - «Inserisci percorso...» - - - Permette di inserire direttamente un percorso. Subito dopo averlo digitato la - finestra viene aggiornata. L'uso principale è quello di trovare velocemente un - file in una grande directory, ma lo si può usare anche per spostarsi tra le - directory, per selezionare un percorso completo da un'altra parte e incollarlo - direttamente nella barra. - - - - TastoAzione - - - - Invio - Apre l'elemento attualmente selezionato. - - - - Tab - Completamento automatico in stile shell. - - - - Su, Giù - Seleziona la precedente/successiva voce corrispondente. - - - - - - - Inserendo un nome che inizia per «.», la funzione «Mostra file nascosti» è - attivata momentaneamente e il file può essere mostrato. - - - - Il completamento automatico prova a ricostruire il nome con più caratteri - possibili. Per esempio, se nella directory ci sono due file di nome - posta-salvata-nov-1999 e - posta-salvata-dic-1999 allora digitando - posta e premendo Tab si espande - posta fino a posta-salvata- - e viene emesso un beep per indicare che la corrispondenza non è completa. - Se il completamento automatico avviene su una directory ed è unico, - allora il filer entra automaticamente in quella directory. Questo - comportamento dovrebbe essere familiare agli utenti che usano una shell. - - - - Ecco come fare per trovare la documentazione di Wine nella directory - /usr/share/doc che di solito è molto grande: - - - - - Attivare il minibuffer scegliendo Inserisci - percorso... dal menù Finestra o premere - il tasto slash (/). - - - - Premere CTRL+A per selezionare il - contenuto presente. - - - - Digitare - u<Tab>sh<Tab>do<Tab>wi<Tab>. - Il cursore si sposta nella sottodirectory corretta. - Se viene emesso un beep quando si preme Tab allora si devono - aggiungere altre lettere o premere Invio. - - - - - - - - - «Comando shell...» - - - È un modo veloce per eseguire comandi di shell senza aprire un xterm. - Chi non sa cosa sono i comandi di shell, salti questa sezione. - - Basta digitare il comando e premere Invio per eseguirlo. - Con le frecce Su e Giù ci si sposta tra i - comandi precedentemente inseriti. - Il tasto Tab è per il completamento automatico in stile shell. - Facendo clic su un elemento si inserisce il suo nome nel minibuffer. - Se vengono selezionati alcuni elementi, questi sono assegnati ai parametri - di posizione $1, $2, ecc... - - Se si apre il minibuffer quando c'è una selezione, alla fine del comando viene - aggiunto "$@" che espande tutti i file selezionati. - - - Esempi: - - Per scompattare un archivio <filename>.tgz</filename>: - - - Attivare il minibuffer scegliendo dal menù Finestra - Comando shell.... - Normalmente è associato al tasto del punto esclamativo (!). - - - - Digitare tar xzf e fare clic sul file. - Il primo spazio è inserito automaticamente. - - - - Premere Invio per eseguirlo. - - - - - Per stampare tutti i file selezionati: - - - Attivare il minibuffer «Comando shell...». - - - - Digitare lpr all'inizio della riga e premere - Invio. - - - - - - - Note - - - Attenzione: non viene mai chiesta la conferma. In caso di dubbi, iniziare - il comando con xmessage così viene visualizzato invece - che eseguito. - - - - sh - è sempre usato come nome di shell da eseguire, perché - bash e - csh trattano - i parametri di posizione in modo diverso. - È comunque possibile usare un'altra shell, semplicemente rinominandola «sh» e - mettendola nel PATH.. - - - - Si possono eseguire comandi in background: - - sleep 240; xmessage È ora di andare! - - - - - - - <anchor id="SelectIf" xreflabel="«Seleziona se...»"/>«Seleziona se...» - - Da usare se si desidera selezionare automaticamente tutti i file di una directory - che corrispondono a una condizione. - - Per esempio, per selezionare tutti i file più grandi di 5Mb: - - - Attivare il minibuffer «Seleziona se...» (la scorciatoia predefinita è ?). - - - - Digitare Size > 5Mb e premere Invio. - - - - - Vengono quindi selezionati solo i file più grandi di 5 Mb. Le espressioni - da inserire sono simili a quelle descritte nella sezione - , ad eccetto di - prune dal momento che il contenuto delle sottodirectory - non è mai controllato. Premere Tab - per passare su ciascun file selezionato. - - - - - - - - <anchor id="bulkrename" xreflabel="La finestra di rinominazione multipla dei file"/>Rinominazione multipla dei file - - - Se c'è un numero elevato di file da rinominare, è noioso rinominarli uno alla volta. È meglio aprire la finestra - di rinominazione multipla, selezionando prima tutti i file da rinominare e poi scegliendo - Rinomina... dal menù. - - - - La finestra mostra una tabella con due colonne. La colonna Vecchio - nome mostra il nome attuale di ciascun file selezionato, la colonna - Nuovo nome mostra il nome nuovo, che inizialmente è identico. - - - - Ci sono due modi per cambiare i nomi: si possono modificarli direttamente nella tabella, - oppure si può usare la funzione "cerca e sostituisci" che si trova nella parte superiore della finestra. - Qui si specifica un'espressione regolare per la ricerca e il testo da sostituire in caso di - corrispondenza. Per esempio, se ci sono molti file i cui nomi terminano per - .htm e se si desidera cambiarli in - .html, bisogna inserire \.htm$ nel campo - Sostituisci: e .html nel campo - con:. Cliccando su Applica, la tabella viene - aggiornata e ora mostra i nuovi nomi proposti (ma non vengono ancora rinominati). - - - - Dopo aver controllato che i nuovi nomi sono corretti, cliccare sul pulsante Rinomina - per rinominarli. - - - - - Finestre d'azione - - Le finestre d'azione sono quelle finestre che appaiono quando inizia un'operazione - in background, come la copia o l'eliminazione dei file. La riga di stato nella - parte superiore della finestra mostra la directory o l'elemento attuale che la - finestra sta elaborando. - Sotto, nella parte che scorre, ci sono i log che mostrano tutto quello che è - stato fatto. Qui vengono visualizzate le eventuali domande. - - Sotto, ci sono quattro pulsanti e alcune opzioni. Tutte le finestre hanno l'opzione - Tutti. Quando questa è attiva, il filer chiede conferma solo - per alcune operazioni, come l'eliminazione dei file di sola lettura. Altrimenti, - per tutte le operazioni viene chiesta conferma. - - Il significato dei pulsanti è il seguente: - - - - Si - risponde si alla domanda visualizzata nei log. - - - No - risponde no alla domanda visualizzata nei log. - - - Annulla - termina l'operazione attualmente in corso e chiude la finestra d'azione. - - - Tutti - è un modo veloce di dire sempre Si. - - - - - - Nella finestra «Opzioni» è possibile stabilire quali operazioni devono iniziare - automaticamente (senza dover fare clic su Tutti). - - - - Opzioni delle finestre di azione - - - Alcune azioni hanno delle opzioni, che appaiono nella parte inferiore della - finestra. Esse sono: - - - - - Forza significa che il filer non considera speciali i - file di sola lettura. Normalmente, chiede conferma dell'eliminazione anche - se è stato premuto il pulsante Tutti. - Notare che non è possibile rimuovere i file dalle directory di sola lettura - perché in questo caso non si hanno i permessi di scrittura. - - - - Breve non mostra il log dell'operazione. - Da usare per velocizzare il tutto quando c'è un gran numero di operazioni da fare. - - - - Ricorsivo significa che l'operazione viene eseguita anche - sulle sottodirectory, sulle sotto-sottodirectory e così via. - - - - Più recente sovrascrive automaticamente un file se è più - recente di quello che rimpiazza (cioè rispetto all'«Ultima modifica» o «mtime»). - - - - - - Si possono modificare le impostazioni predefinite nella finestra «Opzioni». - - - - - - <anchor id="Searching" xreflabel="«Trova»"/>«Trova» - - «Trova» cerca tra tutti i file, le directory e le sottodiretory - selezionate, gli elementi che corrispondono a una particolare espressione. - - Attivare Trova dal sottomenù File - per cercare in tutti gli elementi selezionati. Per selezionare i file di una directory - che soddisfano certi criteri, usare invece - Seleziona -> Seleziona se.... - - Se si conosce il nome di un file, basta inserirlo nel campo «Espressione:», tra due apici - singoli. Per esempio, per trovare un file chiamato - log, digitare 'log'. - - Ricordarsi di usare l'accento acuto ('), non quello grave (`) o le virgolette alte ("). - - Le corrispondenze trovate vengono mostrate nell'elenco dei risultati. Facendo doppio clic - su una voce, si apre una finestra che mostra quel file. Il filer usa la stessa finestra per - mostrare gli altri risultati, così, se si vogliono i risultati in finestre separate, si deve - creare una nuova finestra dal menù Finestra. - - - - Metacaratteri - - - Si possono inserire i metacaratteri dentro gli apici, come ad esempio: - - - - '*.html' - 'Report.*' - 'Bozza[1-5]' - 'main.[ch]' - - - - Vedere la pagina di manuale di - glob - 7 - per ulteriori informazioni sui metacaratteri. - - Se il modello inserito contiene una barra («/»), la corrispondenza è - sul percorso completo, altrimenti è solo sul nome. Per esempio: - '*tmp*' trova tmp e - tmpfile ma non /tmp/file; - '/*tmp*' li trova tutti e tre. - - - - - Condizioni semplici - - Oltre a cercare i file in base al loro nome, è possibile farlo in base ad altri - attributi. Notare che file è usato con il significato di - «qualunque cosa si trova dentro un file system»: sono incluse le directory, i - device, ecc... - - È possibile usare anche una forma breve per ciascuna condizione (sono mostrate tra - parentesi). Si possono combinare anche più condizioni: per esempio, - «-rw» sta per «IsReadable and IsWriteable». - - - Questi riguardano il tipo di oggetto da cercare: - - - IsReg (-f) trova qualunque file regolare. - - - - IsLink (-l) trova i collegamenti simbolici. - - - - IsDir (-d) trova le directory. - - - - IsChar (-c) trova i device a caratteri. - - - - IsBlock (-b) trova i device a blocchi. - - - - IsDev (-D) trova i device a caratteri o a blocchi. - - - - IsPipe (-p) trova le pipe. - - - - IsSocket (-S) trova i socket. - - - - IsDoor (-O) trova le door (in Solaris). - - - - - Questi riguardano i permessi sui file. Vedere la sezione - <xref linkend="Permissions"/>. - - - IsSUID (-u) trova i file che hanno il bit Set-UID - impostato. - - - IsSGID (-g) trova i file che hanno il bit Set-GID - impostato. - - - IsSticky (-k) trova i file che hanno il bit sticky - impostato. - - - IsReadable (-r) trova i file che si possono leggere. - - - - IsWriteable (-w) trova i file che si possono scrivere. - - - - IsExecutable (-x) trova i file che si possono eseguire. - - - - - E un paio di altri utili: - - - IsEmpty (-z) trova i file vuoti (cioè di 0 byte). - - - - IsMine (-o) trova i file di cui si è proprietari. - - - - - - - - Operatori logici - - Per fare ricerche avanzate, si possono combinare in vari modi le condizioni semplici - descritte sopra. Un'espressione è effettivamente composta da una lista di - casi, separati da virgole. Il filer prova a cercare - corrispondenze fino a trovarne una o fino all'esaurimento dei casi. - Per esempio, per cercare file con diverse estensioni: - - '*.gif', '*.htm', '*.html' - - Inoltre, ciascun caso è effettivamente una lista di condizioni. C'è corrispondenza - solo se tutte le condizioni sono soddisfatte. Quindi, per trovare una directory di nome - lib o un file regolare con estensione .so: - - IsDir 'lib', IsReg '*.so' - - Per negare una condizione, mettere davanti ad essa un !. Si può - considerare una condizione anche un'espressione raggruppata in parentesi tonde, - come ad esempio: - - - !(IsDir, IsReg) - - !IsDir !IsReg - - Not isdir and not isreg - - !-d !-f - Tutti e quattro fanno la stessa cosa. - - - - - Confronti - - Per confrontare due numeri, usare gli operatori - <, - <=, - =, - !=, - >, - >= - (cioè minore-di, minore-o-uguale-a, uguale-a, - diverso-da, maggiore-di, maggiore-o-uguale-a). - - Per confrontare due date, usare - after e before invece di - > e < perché rendono - più chiare le cose. - - - - Questi valori sono letti dai file: - - - - atime La data dell'ultimo accesso al file. - - - - ctime La data dell'ultimo cambiamento allo stato del file. - - - - mtime La data dell'ultima modifica al contenuto del file. - - - - size La dimensione del file. - - - - inode Il numero di inode (indice) del file. - - - - nlinks Il numero di collegamenti al file. Cioè, - il numero di voci nella directory che si riferiscono a questo file. - I collegamenti simbolici non contano. - - - - uid L'id del proprietario del file. - - - - gid L'id del gruppo del file. - - - - blocks Il numero di blocchi del disco usati dal file. - - - - - - Il tempo è misurato come il numero di secondi trascorsi da Unix Epoch (00:00:00 UTC, - 1 gennaio 1970). Le dimensioni sono misurate in byte. Si possono specificare - altre unità di misura: - - - - - Byte(s) non ha effetto, ma è bello. - - - - Kb multipli di 1024, quindi 2Kb è uguale a 2048. - - - - Mb multipli di 10242, - cioè 1024 Kb. - - - - Sec(s) non ha effetto, ma è bello. - - - - Min(s) multipli di 60 secondi. - - - - Hour(s), Day(s), Week(s), Year(s) si convertono - nello stesso modo. - - - - Ago la data è nel passato, relativa a quando - viene fatto il controllo. - - - - Hence la data è nel futuro. - - - - Now sta per 0 Secs Hence. - - - - - Ecco alcuni esempi che rendono più chiare le cose. - - - mtime after 1 day ago - - size > 10 Mb - - IsReg and nlinks > 1 - Il primo trova i file modificati entro le ultime 24 ore. Si poteva usare - > invece di after, - ma non sarebbe stato altrettanto chiaro. - - Il secondo trova i file più grandi di 10 Mb. Il terzo trova i file regolari - con più di una voce nella directory. - - Attenzione: il filer non controlla il contesto, quindi - size > 1 day ago è permesso, - sebbene non abbia molto senso. - - Inoltre, dimenticarsi di usare ago o - hence provoca effetti insoliti (il tempo è relativo - a Epoch invece che al presente). - Infine, mai usare = con le date - atime = 1 day ago cerca un file il cui ultimo accesso - è stato esattamente 86400 secondi fa. - - - - - - Speciali - - - - - - System(comando) esegue «comando» sul file. - La condizione è verificata se lo stato di uscita di «comando» è zero. Un «%» - in «comando» è sostituito dal percorso completo del file in esame. - System è molto lento, quindi va usato il meno - possibile. Per esempio, se si sta cercando un file - .c contenente la parola «main», digitare: - - '*.c' system(grep -q main "%") - in questo modo «grep» è eseguito solo sui file con estensione .c - (opposto è il caso in cui si cercano i file con estensione .c tra - quelli che contengono la parola «main»). - - - - Prune - Notare che è l'opposto del comando - find1 - . - - Evita al filer di cercare dentro la directory attuale. - Ricordarsi l'ordine con cui il filer controlla l'espressione. - - - - - Esempi: - - - '*.old' system(rm '%') - - 'src' prune, '*.c' - Il primo elimina ogni file con estensione .old. - Il secondo cerca i file .c, ma non controlla - dentro le directory di nome src. - L'espressione si legge così: - - se il file si chiama src allora «Prune». - Altrimenti, controlla se termina per .c e se è - così, includilo nei risultati. - - - - - - Opzioni - - - Nella finestra «Opzioni», si possono configurare i vari aspetti di - ROX-Filer. - Scegliere Opzioni dal menù del filer per aprirlo. - L'elenco sulla sinistra mostra le varie sezioni, fare clic su una per vedere - le sue opzioni. - - Nella parte inferiore della finestra ci sono due pulsanti: - - - - - OK - salva le attuali preferenze nella directory - ~/.config/rox.sourceforge.net/ROX-Filer, per caricarle - la prossima volta che si avvia ROX-Filer. - Il punto esatto in cui le preferenze vengono caricate e salvate è controllato dalla - variabile d'ambiente XDG_CONFIG_HOME. Vedere - BaseDir per ulteriori dettagli. - Le modifiche fatte nella finestra «Opzioni» hanno effetto immediato, così non è - necessario fare clic su OK per provarle. - - - - Ripristina - rimette tutte le preferenze come erano prima dell'apertura della finestra «Opzioni». - Se il pulsante è ombreggiato, significa che non ci sono state modifiche. - La finestra «Opzioni» non viene chiusa quando si preme questo tasto. - - - - - Le opzioni della finestra «Opzioni» hanno dei suggerimenti che spiegano l'uso di - ciascuna opzione. Tenere fermo il mouse su una di queste per scoprire cosa fa. - - - - - - Tipi di file - - - Tutti i file hanno un tipo di MIME della forma text/plain. - text è il media type e - plain è il sub-type. - - ROX-Filer usa il nome del file per decidere il suo - tipo di MIME, quindi decide quale icona dargli e quale applicazione usare per aprirlo. - - - - <anchor id="RunAction" xreflabel="«Imposta azione...»"/> - Imposta azione... - - - Scegliendo Imposta azione... dal menù «File», - appare la finestra usata per impostare quale applicazione caricare quando - si fa clic su quel tipo di file. - - Per esempio, supponiamo che si voglia che un file .gif debba - essere aperto con Gimp. - Per prima cosa, clic destro su un'immagine gif per aprire il menù e quindi scegliere - Imposta azione... dal sottomenù File. - Ora ci sono due modi per impostare l'azione. - - - Trascinare l'applicazione - - Trascinare Gimp (da una finestra del filer, da un pannello o dalla bacheca) dentro - l'area di nome Trascinare qui un'applicazione adatta. - Da adesso in poi, ogni file GIF su cui si fa clic viene caricato dentro Gimp. - - - - Inserire un comando di shell - - Digitare: gimp "$@" - dentro l'area di nome Inserire un comando di shell: e premere - Invio. $@ - viene sostituito con il nome del file su cui si ha fatto clic. Come sopra, ora ogni file GIF - su cui si fa clic viene caricato dentro Gimp. - - - - Impostare il gestore predefinito del media-type - - Qualunque metodo si usa per impostare l'azione, si deve sempre scegliere - se impostare l'azione solo per quel tipo o renderla predefinita per tutti i file - dello stesso media-type che non hanno già una specifica azione. - - Dal momento che Gimp può caricare molti tipi di immagine, ha senso selezionare l'opzione - Impostare come azione predefinita per tutti i file di tipo - «image/<anything>», così non bisogna ripetere lo stesso procedimento - per i file «image/jpeg» e così via. Comunque, questo influenza solo i tipi che non hanno - già una specifica azione (cioè quelli per cui appare un errore se si prova ad aprirli). - - - - - - <anchor id="SetIcon" xreflabel="«Imposta icona...»"/> - Imposta icona... - - - - Scegliendo Imposta icona... dal menù «File», appare una - finestra nella quale è possibile scegliere l'immagine da usare per rappresentare - quel file. - - Funziona come «Imposta azione...» descritto sopra, eccetto che si può specificare - un'icona anche per un file singolo (dal nome) o per tutti i file di quel tipo. - Quando si imposta l'icona per un file singolo, il filer memorizza il nome del - file e il nome dell'icona dentro la directory - ~/.config/rox.sourceforge.net/MIME-icons. Se uno dei - due si sposta, l'icona non viene più visualizzata. - - Quando si imposta l'icona per una directory, si può anche memorizzare l'immagine - dentro la directory stessa come file nascosto. Il vantaggio è che anche gli - altri utenti possono vedere l'icona e poi si può anche eliminare l'immagine originale - (notare che, se necessario, l'immagine viene ridimensionata e convertita nel - formato PNG). - - L'icona raffigurante una directory (che si trova dentro l'area - Trascinare qui un'icona) permette di andare velocemente nella - directory in cui ci sono già una o più icone. - - - - - Come i tipi di file sono memorizzati - - - ROX-Filer usa due sottodirectory della directory - ~/.config/rox.sourceforge.net per i tipi di file: - - - - MIME-types - contiene i collegamenti simbolici, uno per ciascun tipo di MIME, che puntano ai - programmi che gestiscono i file di quel tipo. Per impostare quale programma - eseguire quando si fa clic sul file, si deve di solito usare Imposta - azione... (vedere la sezione ). - È anche possibile impostare l'azione manualmente. Per esempio, per far aprire - un file HTML in «epiphany»: - - - - Trovare l'applicazione «epiphany» e andare nel menù - Collegamento.... - - - - Inserire text_html come nome per il collegamento e - trascinare l'icona dalla finestra «Collegamento» nella directory - MIME-types. - - - - - Qui è anche possibile mettere i programmi, allo stesso modo dei collegamenti. - - - MIME-icons - contiene le immagini usate per visualizzare ciascun tipo di file. - Per esempio, il filer prova a visualizzare un file HTML usando l'icona - MIME-icons/text_html.png. Se non viene impostata alcuna - icona, il filer usa quella predefinita del tema di icone (impostato in «Opzioni»); - vedere IconTheme per i dettagli. - - - - - In MIME-types è possibile fornire le azioni predefinite per - ciascun tipo di media. Per esempio, se non si trova text_html, - il filer prova semplicemente a usare text. - - - - Il filer trova il tipo di file dal suo nome. Le regole vengono dai vari file - globs. Vedere - SharedMIME per ulteriori dettagli. - - - - Come il filer determina il tipo di file - - The filer normalmente determina il tipo di file dal suo nome. Se fallisce, prova a - supporlo dal contenuto del file. È possibile ignorare questa supposizione - impostando un attributo esteso sul file con il tipo corretto, usando il menù - Tipo di file.... - - - - - - <anchor id="AppDir" xreflabel="Directory applicative"/> - Directory applicative - - - Una directory applicativa è una directory che può essere eseguita come un'applicazione. - Contiene tutto ciò di cui ha bisogno un'applicazione: codice sorgente, binari, - documentazione e così via. Tenendo tutto in un unico posto, l'installazione e la - disinstallazione è molto più semplice. Si possono tenere anche diverse versioni dello stesso - programma, semplicemente avendo diverse directory applicative. Si possono spostare - e rinominare a piacimento. Le directory applicative rendono più facile l'installazione - e l'uso dei programmi. - - Sono anche più sicure, perché si possono compilare come utente normale e poi copiare come root. - Dal momento che non bisogna eseguire uno script di installazione, non c'è il pericolo di - eseguire come root del codice maligno. Bisogna solo assicurarsi che non ci siano eseguibili - con il bit setuid impostato. - - - I seguenti file sono trattati da ROX-Filer in modo speciale: - - - - - AppRun - viene eseguito quando si fa clic sulla directory. Assicurarsi che abbia i permessi - di esecuzione. - - - - .DirIcon - è l'immagine usata per visualizzare la directory (funziona anche se non c'è - AppRun). - - - - Help - è la directory che viene aperta quando si sceglie Aiuto - dal menù «File». - - - - AppInfo.xml - contiene informazioni aggiuntive sull'applicazione (vedere sotto). - - - - AppIcon.xpm - è usata se manca .DirIcon (è tenuta per compatibilità all'indietro, - ma non è più usata). - - - - - Dare un'occhiata alla directory applicativa ROX-Filer - per avere un esempio completo. - - - - Per ragioni di sicurezza, una directory applicativa deve avere lo - stesso proprietario del file AppRun in essa contenuto. - - - Il file «AppInfo» - - - AppInfo.xml è un file XML con la seguente struttura - (alcuni elementi possono essere omessi e il file stesso è opzionale): - - -<?xml version="1.0"?> -<AppInfo> - <Summary xml:lang="en">A graphical file manager</Summary> - <Summary xml:lang="de">Ein grafische Datei-Manager</Summary> - <Summary xml:lang="nl">Een grafisch bestandsbeheerprogramma</Summary> - <Summary xml:lang="it">File manager grafico</Summary> - <About xml:lang="en"> - <Purpose>File manager</Purpose> - <Version>1.3.5 PREVIEW</Version> - <Authors>Thomas Leonard and others</Authors> - <License>GNU General Public License</License> - <Homepage>http://rox.sourceforge.net</Homepage> - </About> - <About xml:lang="it"> - <Purpose label="Scopo">gestione file</Purpose> - <Version label="Versione"/> - <Authors label="Autori">Thomas Leonard e altri</Authors> - <License label="Licenza"/> - <Homepage label="Sito web"/> - </About> - <AppMenu> - <Item option="-p=Default"> - <Label>Enable pinboard</Label> - <Label xml:lang="it">Attiva la bacheca</Label> - </Item> - <Item option="-p="> - <Label>Disable pinboard</Label> - <Label xml:lang="it">Disattiva la bacheca</Label> - </Item> - </AppMenu> -</AppInfo> - - - - - - Summary - è mostrato come suggerimento quando il mouse è tenuto fermo sull'applicazione. - - - - About - contiene un elenco di campi che sono mostrati nel menù «Proprietà» - dell'applicazione (si può usare qualunque nome per l'elemento, ma sono consigliati - quelli mostrati sopra). - - - - AppMenu - è un elenco di menù aggiuntivi da visualizzare. - Quando se ne sceglie uno, AppRun viene eseguito con - option come unico argomento. È possibile nidificare - AppMenu dentro altri AppMenu per creare sottomenù, purché abbiano i - <Label>. L'elemento Itempuò avere anche l'attributo - icon, il nome di un'icona dell'attuale tema di icone per la voce di menù. - - - - - - - - - - Internazionalizzazione - - - - - - <anchor id="LANG" xreflabel="Traduzioni"/> - Scegliere una traduzione - - - - ROX-Filer è disponibile in varie lingue. Per sceglierne una, - procedere in questo modo: - - - Dal menù, scegliere «Opzioni» - Selezionare una lingua dall'elenco - Fare clic su Ok e riavviare il filer affinché - le nuove impostazioni abbiano effetto. - - - - - - - Creare una nuova traduzione - - - - Andare nella directory src/po e creare il file - src/messages.pot: - - - $ cd ROX-Filer/src/po - $ ./update-po - - - - Copiare il file nella directory src/po - come <nome>.po. Esempio, per l'italiano si usa - «it» (sigla internazionale dell'Italia): - - $ cp ../messages.pot it.po - - - Aprire il file in un editor di testi. - - Riempire i campi dei messaggi di traduzione che inizialmente sono vuoti. - - - Eseguire lo script make-mo per creare un file - binario che serve a ROX-Filer. - Per fare questo è necessario avere il pacchetto GNU gettext. - - - $ cd ROX-Filer/src/po - $ ./make-mo it - Created file ../../Messages/it.gmo OK - - - Modificare ROX-Filer/Options.xml in modo da - elencare la vostra lingua, riavviare il filer e selezionarla nella finestra «Opzioni» - (vedere la sezione ). - - - Allegare il file .po al patch tracker di ROX - così sarà incluso nella prossima versione. - - - - - - - - Aggiornare una traduzione esistente - - - - Andare nella directory contenente i file .po - ed eseguire lo script update-po. - Questo controlla il codice sorgente per cercare le nuove stringhe e aggiornare tutti i - file di traduzione. - - - $ cd ROX-Filer/src/po - $ ./update-po - - - Modificare a mano il file come descritto prima, riempire i nuovi campi - e aggiornare quelli vecchi. - Cercare le voci che sono state marcate fuzzy da - update-po; controllare se sono corrette e rimuovere il tag - fuzzy. - - - Eseguire make-mo come prima. - - Spedire il file aggiornato all'autore di ROX-Filer. - (NdT: se avete trovato errori nella traduzione italiana, - segnalateli a me.) - - - - Vedere la pagina info di gettext per avere ulteriori istruzioni su come - creare una traduzione. - - - - - - - Hacking - - Questa è una breve guida per chi vuole modificare il codice sorgente. Se le modifiche - sono utili, spedite le patch all'autore di ROX-Filer o alla - mailing list. Ricordatevi di dire quale versione state usando. - - - - Compilazione - - La prima volta che si compila il programma è necessario eseguire AppRun - --compile, ma quando si modificano i file .c - e .h è sufficiente digitare make - nella directory src. - Si può anche eseguire make depend. - - - - - Creare e applicare patch - - Le piccole modifiche ai sorgenti sono spesso distribuite come - file patch. Di solito si fa così nella mailing list. - - Per applicare una patch, andare nella directory src ed eseguire - patch con il file patch. Poi è necessario ricompilare. - - - $ cd ROX-Filer/src - $ patch < patchfile - $ ../AppRun --compile - - È possibile rimuovere la patch ripetendo semplicemente la sequenza sopra descritta. - patch si accorge che la patch è già stata applicata e chiede se la - si vuole rimuovere. - - Per creare una patch bisogna prima avere l'ultima versione del filer dal CVS - (le istruzioni su come usare CVS si trovano nel sito web). - Modificare quindi il programma come si desidera e poi, nella directory opportuna, - creare la patch usando cvs diff: - - $ cvs diff -u > mia_patch - - Questo crea un file patch leggibile dall'uomo e dalla macchina. Spedirlo quindi alla - mailing list. Ci sono diverse ragioni per spedire patch invece dei file modificati: - - - Sono più piccole e veloci da scaricare anche per chi ha connessioni lente. - - - Le modifiche si vedono prima che vengano applicate. - - - Le patch si possono applicare a versioni leggermente modificate dei - sorgenti. Cioè si possono applicare patch senza che una sovrascrivi un'altra. - - - - - - - - - Autoconf - - Ecco una breve spiegazione del sistema autoconf nel caso non lo si abbia mai - usato prima d'ora. Vedere info autoconf per ulteriori dettagli. - - C'è un file di nome configure.in che contiene diversi test - (info autoconf). - Eseguendo autoconf, questo legge il file e genera uno script di - shell per eseguire i test e lo salva come - configure. - configure è solitamente distribuito con il programma perché non - tutti hanno autoconf. - - Poi si esegue configure (infatti, lo script - AppRun lo fa e gli passa alcuni argomenti), che esegue tutti i - test. Legge Makefile.in e config.h.in - e riempie i valori mancanti con i risultati del test e produce - Makefile e config.h. - - Eseguendo make, vengono creati i file .o - dai file .c e linkati per produrre - ROX-Filer. - - - - Le strutture dei dati - - Il file global.h elenca le principali strutture di dati usate nel - filer e ne spiega lo scopo. È un buon punto di partenza per chi vuole sapere come funziona - il filer. - - - - - - Compilazione - - - Dopo aver scaricato i sorgenti, per poter usare ROX-Filer - è necessario compilarlo. Se invece è stato scaricato e installato il pacchetto dei binari o se - ROX-Filer era già incluso nel sistema, si può saltare questa - sezione. Se si è arrivati qui facendo clic sul simbolo del salvagente da una finestra del - filer, o se tutto funziona digitando rox in un prompt di shell, - allora non è necessario compilare. - - Per compilare <application>ROX-Filer</application> è necessario: - - - Unix o Linux (l'accesso come «root» non è richiesto), - - - - X Window (fornito come standard in tutti sistemi moderni), - - - - GTK+ 2.4.0 o successivo (librerie e header). L'ultima versione è disponibile - su GTK+, - - - - Glade 2.0.0 o successivo (librerie e header) — L'ultima versione è disponibile - su Glade, - - - - LibXML 2.0.0 o successiva (librerie e header). L'ultima versione è disponibile - su libxml, - - - - Un compilatore C, come ad esempio «gcc» (standard su molti sistemi). - - - - - Tutti gli elementi sopra descritti, sono presenti nelle principali distribuzioni Linux. - Per controllare quale versione di GTK+ è installata, digitare il comando - pkg-config, ad esempio - ($ è il prompt di shell): - - $ pkg-config --modversion gtk+-2.0 -2.6.8 - - - Per compilare (con Zero Install): - - - Lanciare Zero Install per ROX-Filer. Per esempio, nella shell digitare: - - $ 0launch --gui http://rox.sourceforge.net/2005/interfaces/ROX-Filer - - - - Nella finestra fare clic col tasto destro del mouse sulla riga ROX-Filer e scegliere - Compile... dal menù. - - - - Scegliere la versione di ROX-Filer da compilare e i file header richiesti. - È possibile accettare i valori predefiniti e lasciare che vengano scaricati. - - - - Scegliere una directory nella quale memorizzare il codice compilato e fare clic - sul pulsante Build per compilare. - - - - Quando terminato, fare clic su Register per aggiungere - questa versione a quelle disponibili. - - - - Per compilare (a mano): - - - Il filer usa il database condiviso MIME SharedMIME - per manipolare i tipi di file. È necessario installarlo altrimenti il - filer non funzionerà correttamente (se non è installato, verrà mostrato - un avviso non appena si esegue ROX-Filer). - - - - Entrare nella directory che contiene la sottodirectory «ROX-Filer». - - - - Eseguire lo script AppRun, in questo modo: - - $ ./ROX-Filer/AppRun --compile - - - - - ROX-Filer eseguirà dei controlli per scoprire - che tipo di sistema si sta usando e poi inizierà la compilazione. Se qualcosa - non funziona, contattare via email gli sviluppatori di ROX-Filer. Spiegare (in inglese) - che tipo di sistema si ha e quali errori compaiono. Se si è capaci di risolvere - il problema, informare comunque gli sviluppatori via email. - - - - Dopo la compilazione, ROX-Filer verrà eseguito automaticamente. È possibile - comunque lanciarlo più tardi eseguendo lo script AppRun senza argomenti. - - - - - Pagina di manuale - - - - - ROX - 1 - - - - ROX-Filer - un semplice file manager grafico - - - - - rox - - FILE - - - - DESCRIZIONE - - ROX-Filer è un file manager grafico, facile da usare e per X11, il - sistema a finestre usato sui sistemi operativi *nix. - - È anche il componente fondamentale dell'ambiente deskop di ROX: - - - Eseguendo rox viene aperta la directory o il file elencato. - Se viene eseguito senza argomenti, si apre la directory attuale. - - - - OPZIONI DELLA RIGA DI COMANDO - - - - - apre PAN. - - - - apre PAN come pannello in basso. - - - - usato per gestire la sessione. - - - - apre DIR come directory (non come applicazione, anche se lo è). - - - - chiude DIR e tutte le sue sottodirectory. - - - - mostra un aiuto sulle varie opzioni. - - - - apre PAN come pannello sinistro. - - - - mostra il tipo di MIME di FILE ed esce. - - - - avvia un nuovo filer, anche se ce n'è già uno in esecuzione. - Questo impedisce al filer di fare un fork (esecuzione in background). - Questa opzione è principalmente usata per il debug. - - - - attiva la bacheca PIN. - - - - apre PAN come pannello destro. - - - - legge e invoca SOAP RPC dallo standard input (vedere ). - - - - apre la directory mostrando FILE. - - - - eseguito da un manager di sessione, apre il pannello e la bacheca predefinita (implica --new). - Se un manager di sessione XSM è in esecuzione e questa opzione viene usata, allora ROX-Filer chiederà di essere - automaticamente riavviato in caso di crash. - - - - apre PAN come pannello in alto. - - - - mostra il nome utente in ogni finestra. - - - - esegue URI come un file o una directory. Se URI è un file: l'url - si riferisce a un file sulla macchina locale e viene convertito in un nome di file locale: «rox -U file:///tmp» - è equilvalente a «rox /tmp». Se URI è un altro schema, per eseguirlo viene consultata la configurazione - condivisa dell'handler URI. - - - - mostra le informazioni sulla versione ed esce. - - - - FILE è cambiato e deve essere riesaminato. - - - - - - - NOTE - - La documentazione principale di ROX-Filer è disponibile scegliendo - Mostra i file di aiuto dal menù o facendo clic sull'icona - raffigurante un salvagente nella barra degli strumenti. - - - - LICENZA - Copyright (C) 2005 Thomas Leonard. - - È possibile redistribuire copie di ROX-Filer secondo i termini della licenza - GNU GPL. - - - - BUG - - Segnalate i bug alla mailing list degli sviluppatori: . - - - - AUTORI - - ROX-Filer è stato creato da Thomas Leonard, con l'aiuto di: - - - Michael Adams - Christopher Arndt - Jens Askengren - Liav Asseraf - Wilbert Berendsen - Francesco Bochicchio - Yuri Bongiorno - Andrzej Borsuk - Richard Boulton - Simon Britnell - Arnaud Calvo - Babyfai Cheung - Andrew Clover - Fabien Coutant - Couderc Damien - Andreas Dehmel - Micah Dowty - Dmitry Elfimov - Mattias Engdegard - Andrew Flegg - Olivier Fourdan - Eric Gillespie - Thierry Godefroy - Olli Helenius - Alex Holden - Jasper Huijsmans - Sigve Indregard - Bernard Jungen - Marcin Juszkiewicz - James Kermode - Jim Knoble - Krzysztof Krzyzaniak - Aaron Kurtz - Vincent Ledda - Vincent Lefevre - Victor Liu See-le - Alexey Lubimov - Krzysztof Luks - Marcus Lundblad - Anders Lundmark - Jose Romildo Malaquias - Denis Manente - Brendan McCarthy - Andras Mohari - Christiansen Merel - Jimmy Olgeni - Richard Olsson - Matthew O'Phinney - Daniele Peri - Andy Piper - Marcelo Ramos - Michel Alexandre Salim - Adam Sampson - Chris Sawer - Christian Storgaard - Taras - Simon Truss - Hirosi Utumi - Jan Wagemakers - Keith Warno - Götz Waschk - Stephen Watson - Andre Wyrwa - Geoff Youngs - Diego Zamboni - - - e di molti altri. Vedere il file Changes per ulteriori - informazioni. - - - - - - - SOAP RPC - - Quando si avvia il filer, si possono usare le opzioni a riga di comando per modificare - il suo comportamento. In alternativa a questo, il filer permette di specificare un'operazione - con un messaggio in formato SOAP RPC. Infatti, quando si usa la riga - di comando, il filer la converte internamente in SOAP RPC. - - - Tutti i messaggi SOAP RPC sono passati sullo standard input, in questo modo: - - -$ rox --RPC << EOF -<?xml version="1.0"?> -<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope"> - <env:Body xmlns="http://rox.sourceforge.net/SOAP/ROX-Filer"> - <Panel> - <Name>Default</Name> - <Side>Bottom</Side> - </Panel> - </env:Body> -</env:Envelope> -EOF - - Sono valide le seguenti funzioni: - - - - Version() - Restituisce la versione del filer. - - - CloseDir(NomeFile) - Chiude la directory NomeFile e tutte le sue sottodirectory. - - - Examine(NomeFile) - NomeFile può essere cambiato e quindi viene controllato. - - - OpenDir(NomeFile, - [Style, Details, Sort, - Class, ID, - Hidden, Filter]) - Apre una finestra mostrando la directory NomeFile. - Style può essere Large, Small, Huge - o Automatic. - Details può essere None, ListView, Size, Type, Times o Permissions. - Sort può essere Name, Type, Date, Size, -Owner o Group. - Se manca una di queste tre opzioni, viene usato il parametro predefinito. - Class può essere usata per impostare la proprietà WM_CLASS sulla nuova finestra. - La si può usare per far sì che il proprio window manager tratti quella finestra in modo speciale. - ID è una stringa usata per identificare la finestra aperta. - Se esiste già una finestra con questo ID, questa viene cambiata nella directory data, - altrimenti viene creata una nuova finestra con questo ID. Se usato da un programma, - assicurarsi che l'ID sia unico, per esempio includendo nell'ID il nome del processo, - il PID e il timestamp. - Se Hidden è true, vengono mostrati i file nascosti (quelli che iniziano - con un punto), se è false non vengono mostrati. Se è omesso, viene usata l'impostazione configurata. - Filter può essere usato per filtrare per nome i file visualizzati. Per esempio, usando il filtro - *.c vengono mostrati solo i file che terminano per «.c». - - - Panel([Side, - Name]) - Apre il pannello di nome Name sul lato - Side (Top|Bottom|Left|Right) dello schermo. - Name può essere un nome in - ~/.config/rox.sourceforge.net/ROX-Filer (es. - MioPannello) o avere il percorso completo. - Se non c'è alcun nome, il pannello su quel lato viene disattivato. - - - PanelAdd(Side, - Path, [Label, - After, Shortcut, Args]) - Aggiunge Path al pannello sul lato Side dello schermo, - con etichetta Label. Se After è - true l'icona va in basso a destra del pannello, - altrimenti in altro a sinistra. Se viene specificato Shortcut, allora questa è la - scorciatoia da tastiera che lo attiva. Se viene specificato Args, questo è l'argomento - che aggiunge quando viene eseguito come programma. - - - PanelRemove(Side, - Path, [Label]) - Rimuove un elemento dal pannello sul lato Side dello schermo. - Se non viene specificato Path o Label, - allora corrisponde ogni percorso o etichetta. - Almeno uno deve essere specificato. - Se più di un elemento corrisponde, solo uno viene rimosso. - - - Pinboard([Name]) - Attiva la bacheca Name. - Name può essere un nome in - ~/.config/rox.sourceforge.net/ROX-Filer (es. - MiaBacheca) o avere un percorso completo. - Se non c'è alcun nome, la bacheca viene disattivata. - - - PinboardAdd(Path, - X, Y, - [Label, Shortcut, Args, Update]) - Aggiunge Path alla bacheca con l'etichetta (opzionale) Label. - Se X o Y sono negativi o non assegnati, l'icona è messa automaticamente. I parametri X e Y allora indicano - dove l'icona dovrebbe andare (X=-1: a sinistra, X=-2: a destra, Y=-1: in alto, Y=-2: in basso). - Se X e Y sono assegnati, la loro posizione è (X, Y). - Se Shortcut è assegnato, è la scorciatoia da tastiera che attiva questo elemento. - Se Args è assegnato, è l'argomento stringa da attaccare all'elemento quando eseguito - (se è un programma). Se Update è true e se c'è già un'icona sulla - bacheca per il percorso dato, allora verrà aggiornata con i nuovi valori invece che aggiungere una nuova icona. - - - PinboardRemove(Path, [Label]) - Rimuove Path dalla bacheca. Se viene specificato - Label, allora questo deve corrispondere all'etichetta - dell'elemento. Se corrisponde a più di un elemento, ne viene rimosso solo uno. - - - SetBackdropApp(App) - Rende App (una directory applicativa) il nuovo gestore - dello sfondo della bacheca attualmente in uso. - Il file AppInfo.xml dentro App - deve contenere l'elemento «CanSetBackdrop», ad esempio: - -<?xml version="1.0"?> -<AppInfo> - <ROX:CanSetBackdrop xmlns:ROX="http://rox.sourceforge.net/SOAP/ROX-Filer"/> -</AppInfo> - L'applicazione viene quindi eseguita con l'opzione come unico - argomento dopo aver attivato questo metodo e ogni volta che la bacheca viene ricaricata. - NON usare questo metodo se si usa l'opzione altrimenti - va in loop all'infinito. - Vedere per ulteriori informazioni. - - - SetBackdrop(NomeFile, - Style) - Imposta un dato file come immagine di sfondo. Per riattivare l'immagine al - successivo accesso al sistema o per cambiarla automaticamente di volta in volta, - usare invece SetBackdropApp. - - - Run(NomeFile) - Esegue NomeFile come se si facesse clic nel filer. - - - RunURI(URI) - Esegue URI come se si facesse clic nel filer. - URI viene interpretato come un URI, nella forma - file://localhost/path. - - - Show(Directory, - Leafname) - Apre Directory e fa lampeggiare il file di nome - Leafname che si trova dentro. - - - FileType(NomeFile) - Restituisce il tipo di MIME di NomeFile (scrive sullo - standard output la risposta SOAP). - - - SetIcon(Path, - Icon) - Imposta l'icona da usare per un determinato percorso. È equivalente a usare la voce di menù - Imposta icona.... - - - UnsetIcon(Path) - Cancella l'icona da usare per un determinato percorso. - - - - - Le seguenti chiamate possono essere usate per avviare azioni sui file. - Quiet può essere true se l'operazione - inizia subito, senza aspettare la conferma dell'utente. Se è - false, l'utente deve confermare. Se non è definita, viene - usata l'impostazione predefinita. - - - - Copy(From, - To, [Leafname, - Quiet]) - Copia ogni file dall'array From alla directory - To. Se viene dato Leafname, - allora From deve contenere solo una voce; - Leafname assegna il nuovo nome. - - - Move(From, - To, [Leafname, - Quiet]) - Sposta ogni file dall'array From alla directory - To. Se viene dato Leafname, allora - From deve contenere solo una voce; - Leafname assegna il nuovo nome. - - - Link(From, - To, [Leafname]) - Collegamento simbolico per ogni file nell'array From alla - directory To. Se viene dato Leafname, - allora From deve contenere solo una voce; - Leafname assegna il nuovo nome. - - - Mount(MountPoints, - [OpenDir, Quiet]) - Monta ciascuna directory dell'elenco MountPoints. Se è - true, OpenDir apre la directory - dopo averla montata. - - - Unmount(MountPoints, - [Quiet]) - Smonta ogni directory della lista MountPoints. - - - - - - - - Riferimenti - - - ROXThe ROX desktop, - - - - - RISC OSRISC OS, - - - - - GTK+GTK+ Toolkit, - - - - - GladeGlade - a User Interface Designer for GTK+ and GNOME, - - - - - libxmlThe XML C library for Gnome - - - - - GNOMEThe GNOME desktop, - - - - - DNDThe Drag and Drop protocol, - - - - - XDSThe X Direct Save protocol, - - - - - BaseDirThe freedesktop.org base directory system, - - - - - AVFSAVFS - A Virtual File System, - - - - - SOAPSimple Object Access Protocol (SOAP) 1.2 - - - - - ThumbsThumbnail Managing Standard (Version 0.5) - - - - - WallpaperWallpaper backdrop control application - - - - - SharedMIMEShared MIME-info Database (Version 0.16) - - - - - IconThemeThe freedesktop.org Icon Theme specification - - - - - - diff --git a/ROX-Filer/src/Docs/Manual.xml b/ROX-Filer/src/Docs/Manual.xml deleted file mode 100644 index b981ed79..00000000 --- a/ROX-Filer/src/Docs/Manual.xml +++ /dev/null @@ -1,3537 +0,0 @@ - - - - - - - - - ROX-Filer User Manual - <ulink url="http://rox.sourceforge.net"/> - - - ThomasLeonard - - 2005Thomas Leonard - - Conditions - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published - by the Free Software Foundation; either version 2 of the License, - or (at your option) any later version. - - This program is distributed in the hope that it will be useful, but - WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software Foundation, - Inc., 59 Temple Place, Suite 330, Boston, MA, 02111-1307, USA. - - - - - - ROX-Filer is a graphical file manger for the X - Window System. Its user interface is based on the RISC OS filer and it - supports similar features such as application directories and drag-and-drop - loading and saving of files. The filer can also act as a pinboard, allowing - you to pin frequently used files onto the desktop background. - - - - - - Introduction - - ROX-Filer is a simple and easy to use graphical - file manager for X11 — the windowing system used on Unix and Unix-like - operating systems. It is also the core component of the ROX Desktop - ROX. Many of the filer's features were inspired by RISC - OS RISC OS. `ROX' stands for `RISC OS–On–X'. - - - - Features - - - - - XDND - - A common drag-and-drop protocol used, for example, by the GNOME - desktopGNOME. This allows data to be loaded into an - application by dragging it from a filer window to a program. The full - specification is given in DND. - - - XDS - - An extension to XDND that allows applications to save data by - dragging an icon back to a filer window. The full specification is given in - XDS. - - - Basedir spec - - A simple, but flexible, system for managing user choices. By default, choices are - saved under ~/.config. However, you can change this by setting - the XDG_CONFIG_HOME environment variable. See - BaseDir for details. - - - Application directories - - Self contained relocatable applications, where installation is as simple as - copying it to where you want it and uninstalling it is just a matter of - deleting a directory. Described later in this documentation. - - - Thumbnails - - The filer can be made to display image files by using the image itself for the - icon, instead of a generic `this-is-an-image' icon. Very useful for organising - a directory full of photos! See Thumbs for details. - - - Shared MIME Info Database - - In the past, each desktop had its own database of rules for determining the - type of files. The Shared MIME Info DatabaseSharedMIME - unifies these into a single system shared by all desktops. - - - Icon Themes - - Collections of file icons, called themes, can be installed (eg, to - ~/.icons). You can switch between themes in - the Options box. Once other desktops support this fully, themes - will be sharable between desktops. See IconTheme for details. - - - DNotify support (Linux only) - - If used with a recent Linux kernel (2.4.x series), the filer will notice changes - to directories automatically. On other systems, directories will update when the - pointer is moved over them. - - - - - - - - - - - Invoking - - You should be able to start the filer by simply running the rox - command, by typing it at a shell prompt or otherwise. If the filer isn't installed yet, - consult . - - - By default, ROX-Filer will start by displaying - the current directory. You can get it to display other directories instead - by listing them after the command: - - $ rox /home /usr /usr/local - - You can also use it to open files, like this: - - $ rox README - - The filer supports various options; use for a list. - All options have long and short forms (eg and - ) — although on some systems you can only use the - short versions. - - Note that if the same version of the filer is already running on this - machine then, by default, it will be used to open the directories. - - For a complete list of command-line options, see - - - - <anchor id="run_pin" xreflabel="Pinboard support"/>Pinboard support - - - If you want the filer to manage your desktop background then you use - the option and supply a name for the pinboard, - eg: - - $ rox --pinboard=MyPinboard - - The pinboard configuration is saved in - ~/.config/rox.sourceforge.net/ROX-Filer/pb_MyPinboard - as soon as you change it in some way (for example, by dropping a file - onto the background). You can have as many pinboards as you like and - switch between them by running rox again, eg: - - $ rox --pinboard=MyOtherPinboard - - To turn off the pinboard again, set the name to an empty string: - - $ rox --pinboard= - - See the if you have trouble getting the icons to - display correctly. The pinboard may also be turned on and off by locating - ROX-Filer in a filer window and choosing Enable - pinboard or Disable pinboard from the menu. - - - - <anchor id="run_pan" xreflabel="Panel support"/>Panels - - - Panels work just like the pinboard, except that they run along the edge of the screen. - To create a panel: - - $ rox -b=MyPanel - - The panel should be displayed in a window without a title bar. If - this does not work then see the for some ideas. - You can drag files onto either side of the panel to add them. Panel icons - can be repositioned by dragging them with the middle mouse button. - Changes to the panel are automatically saved to - ~/.config/rox.sourceforge.net/ROX-Filer/pan_MyPanel. - As with the pinboard, you can switch between panel configurations - simply by running rox again with a different panel name. - - $ rox -b=MyOtherPanel - - You can set which edge of the screen the panel appears on using the popup menu. - You can also set the edge when enabling the panel by using the side instead of -b. - Specify a blank name to remove the panel: - - $ rox --bottom= - - - - - <anchor id="winman" xreflabel="window manager notes"/>Window manager notes - - You may have to play around with your window manager a bit to get - the pinboard icons and panels to display correctly (eg, without borders - and underneath all other windows). In particular, try setting the - stacking level / depth to low (or a negative value). Make sure any - 'Keep transients above other windows' type options are turned off! - - - Sawfish / sawmill - - Sawfish tries to guess whether you are using GNOME at start-up and only - provides support if so. You may need to add the line - (require 'gnome) - to your .sawfishrc file (see the sawfish manual - for more details). - - - - IceWM - - - Paste these configuration settings into - ~/.icewm/preferences: - - - # Manage root window (EXPERIMENTAL - normally enabled!) - GrabRootWindow=1 # 0/1 - # Bitmask of root window button click to use in window manager - UseRootButtons=3 # [0-255] - # Desktop mouse-button click to show the menu - DesktopWinMenuButton=1 # [0-20] - # Desktop mouse-button click to show the window list - DesktopWinListButton=2 # [0-5] - # Desktop mouse-button click to show the window list menu - DesktopMenuButton=0 # [0-20] - Paste these into ~/.icewm/winoptions: - - - # ROX-Filer pinboard and panel - ROX-Filer.icon: folder - ROX-Panel.layer: Dock - ROX-Panel.doNotCover: 1 - ROX-Panel.ignoreWinList: 1 - ROX-Panel.ignoreTaskBar: 1 - ROX-Panel.ignoreQuickSwitch: 1 - ROX-Pinboard.layer: Below - ROX-Pinboard.ignoreWinList: 1 - ROX-Pinboard.ignoreTaskBar: 1 - ROX-Pinboard.ignoreQuickSwitch: 1 - ROX-Filer.layer: Normal - Restart IceWM and the filer for the new settings to take effect. - - - - - Window Maker - - Run the filer using rox -p=Default. - - Press Control+Escape, or - [RightButtonDown] on any window's titlebar. - Choose Attributes... from the menu. - - - - The Attributes Inspector window appears. From the pulldown menu - at the top, choose Window Specification - (the top item). - - - - Press the Select window button. - The cursor changes to a double crosshair. Select one of the - ROX-Filer pinboard icons. The radio buttons - in the Window Specification frame should change - their labels to include ROX-Pinboard.ROX-Filer - as the first item. Select that radio button. - - - - Choose Window Attributes from the pulldown - menu. In the Attributes frame, choose the - features you want the pinboard icons to have; I recommend the - following: - - Disable titlebar - Disable resizebar - Disable close button - Disable miniaturize button - Keep at bottom (sunken) - Omnipresent - - - - - - Choose Advanced Options from the pulldown - menu. In the Advanced frame, choose the advanced - features you wish; I recommend the following: - - - Do not show in the window list - Ignore 'Hide Others' - Ignore 'Save Session' (possibly) - - - - - When you're finished selecting window attributes, press the - Save button, and then close the Attributes - Inspector window using the X button in the titlebar. - - - - - Others - - If all else fails, try the Compatibility section of the Options window. - - - - - - Running as root - - - If you run the filer as the `root' user then the filer will display - a message at the top of each window to remind you. The root user has - permission to access or change any file in the system, so be very - careful when using the filer like this. - - Normally, you should log in as an ordinary user and only change to - root when you need to. If you have sudo installed - and set up then you can run the filer like this: - - $ sudo rox - - Remember, any file operations you perform and any programs you run from - these windows will run as root too! Be careful! - - You may find that the X server won't allow root (or other users) to - connect. Reading the manual pages for xauth and - xhost may give you some hints, but it varies - between systems (which is why this isn't built in to the filer!). - - - - - Note: gnomesu can also be used to run the filer as root, - but you'll need to use setsid to run it in a new - session group, otherwise gnomesu kills it before it has a chance to open - a window. For example: - gnomesu -c 'setsid /usr/local/bin/rox /' - - - - - - - Mouse button and key bindings - - Quick start: - - Click the left - This documentation assumes that button–1 is the left - button, button–2 is the middle button and button–3 is the - right button. This is not always the case — for example, in a - left-handed setup. mouse button to open files and - directories. - - - Click the right button to get a menu. Click over a file to perform an action on that file. - - - - Drag files between windows with the left button to copy, move or link them - (choose from a menu). Linking creates a shortcut to the original file. - - - - - - By default, the mouse button bindings are designed to fit in with X - conventions. However, the behaviour is highly configurable — have a play in - the Options window if you don't like the normal settings. The normal settings - behave as follows: - - - - - Key or mouse buttonAction - - - - Left button click - Open the file or directory clicked on. Hold down Control - to select things instead of opening them. Hold down Shift - to look inside applications, treat files as text, follow symlinks, or - get more control over mount points (see ). - - - Middle button click - Same as left click, but open a directory in a new window or close the viewer - when opening a file. - - - Right button click - Open the main menu. Hold down Control while clicking to go - directly to the Selection submenu. Hold down Shift to get the - Send To menu (see the section). - - - Drag an item (left mouse button) - Show a menu of possible actions. There is an option to disable this menu, - in which case this gesture will copy the file(s) to the destination (an - application or another filer window). Hold down Shift - to move the file, Control+Shift to - create a symbolic link, or Alt to get the menu of - possible actions. - - - Drag an item (middle mouse button) - When you let go, display a menu of possible actions. - There is an option to make this move the files rather than open the menu. - - - Drag (not over an item) - Select a group of items by dragging a box around them. With the left - mouse button, only the files in the box will be selected. If you hold - down Control then the boxed items are added to the selection. - If you use the middle button then the boxed items switch between being selected - and unselected. - - - Double-click background - Resize the window to a sensible size (this can be turned off from - the Options window). - - - Backspace - Change to viewing the parent directory. - - - Cursor keys - Move the cursor around. - - - - Page Up, Page Down - Move the cursor up and down a page at a time. - - - Home, End - Move to the first/last entry in the directory. - - - Return - Acts like clicking on the file. You may hold down Shift for other - effects, as with clicking. Holding down Alt works like clicking with - the middle button; directories open in a new window and opening files - closes the directory at the same time. - - - Spacebar - Toggles the item under the cursor between being selected and unselected, - and moves to the next item. - - - Tab, Shift+Tab - Moves the cursor to the next/previous selected item. - - - Hold mouse over an item - Shows a tooltip containing a brief description of an application (if - available), the target of a symbolic link, and the full name of a file, - if it's too long to show in the main window. - - - - - - If you have user-defineable key-bindings enabled, then other keys can easily - be set by opening the menu, moving the pointer over the item you want to use - and pressing a key. The key will appear in the menu and can be used from - then on. Key bindings are automatically saved when the filer quits. - You can use an XSettings manager, such as ROX-Session, to turn this feature - on for all Gtk+-2.0 applications. - - - - - The selection and file groups - - When you select items in a ROX-Filer window, - the filer takes the primary selection. You can then paste - into another window to get the pathnames of the selected files. - - - - Example: loading a file into an application that doesn't support - drag-and-drop: - - Open the application's Open dialog box. - - - Control-click on the file in - ROX-Filer to select it. - - - Click the middle button in the filename box in the application to paste the - name in. - - - - - Note that clicking the middle mouse button in the main area of most web-browsers - will open the selected file. - - If you select something else (eg, some text in another program), the selected - items in the filer window will be shown shaded (the filer no longer has the - primary selection). Clicking on one of the shaded items will cause the - filer to regain the primary selection. - - - Saving and restoring the selection - - It is sometimes useful to save the current selection for later. You can - save the current selection to one of ten numbered groups by pressing - Control+<number>. - You can restore a saved group by pressing the group number on its own. You - can do this from a different directory, or even a different filer window. - - Saving is also useful even if there is no selection, since it still saves - the current directory. - - Example: saving a directory and returning to it later: - You are looking at a directory, and wish to remember it. - Press Control+1. - Move to another directory, or close the window, etc. - Press 1 in any filer window to return - to the first directory. - The groups are saved automatically for next time the filer is loaded. - - - - - <anchor id="Toolbar" xreflabel="Toolbar"/>The toolbar - - - By default, each window has a toolbar along the top. You can disable - this (or make it larger) from the Options window, as well as set which - tools appear on the toolbar. Normally, you should click with the left - mouse button (1). However, many tools can perform a related function - if clicked on with buttons 2 or 3 (middle or right). - - - - - - - Icon - Mouse button 1 - Other button - - - - - - - Cross - Close the window - Open a new window - - Up arrow - Change to parent directory - Show parent in a new window - - House - Change to home directory - Show home in a new window - - Jump to point - Open the - - Edit the bookmarks - - Looping arrows - Reread the directory contents - Open a new window - - Magnifying glass (+) - Select a larger icon size. - Select a smaller icon size. - - Magnifying glass (fit) - Set Automatic sizing mode and resize the window. - - - - List - Hide or show extra details - Same - - A..Z - Step forward through the different sort types. - Step backward through the sort types. - - Eye - Toggle the display of hidden files (those with names starting with a dot) - Toggle display of thumbnails for image files. - - List with selections - Select All. - Invert Selection. - - Life-belt - Show ROX-Filer's help files - Open manual directly - - - - - [1] - If the 'New window on button 1' option is turned on - then the default is to open a new window — clicking with the other - button reuses the same window instead. - - - - Dragging files to the Up or Home icons acts just like dragging them - into the directory which the button leads to. Dragging to the Bookmarks button - will add the directory as a bookmark. - - - The toolbar can also show the number of files in the directory, and - information about the selection. This can be turned on or off in the - Options box. - - - - - The menus - - By default, you can open a menu by right clicking over a pinboard, panel or - filer window. - - In filer windows, you may also press \ to open the menu. As - a shortcut, you can open the File submenu directly by holding down the - Control key when opening the menu. Here is a full - description of each menu item: - - - - EntryAction - - - Display - Change the display settings. - - - File - Operations on the selected items. - - - Select - Control which items are selected. - - - Options... - Configure ROX-Filer. - - - New - Create a new file or subdirectory inside this directory. - - - Window - Operations on the window as a whole. - - - Help - Information about the filer. - - - - - - - - The display menu - - - - - EntryAction - - - Icons View - Files are displayed as rows of icons. - - - Icons, With... - Files are displayed as rows of icons with additional details - (chosen from the submenu). To see fuller information about each file - use the List View instead. - - - List View - Show files in a list along with their details. Click on a column heading - to sort by that column. - - - Bigger Icons - Increase the size of the icons. Turns off Automatic mode. - - - Smaller Icons - Reduce the size of the icons. Turns off Automatic mode. - - - Automatic - Select a sensbile icon size automatically now and when changing - directory, etc. - - - Sort by XXX - Set the sort mode. In List View you can also set the sort type by - clicking on the column headings. - - - Reversed - Sort in reverse order (newest to oldest, largest to smallest, etc). - - - Show Hidden - If on, files beginning with a dot are shown, otherwise they are hidden. - The titlebar shows (All) when this is on. - - - Filter Files... - Restrict the display to only show files with names matching the - given pattern. - The titlebar shows (Glob (pattern)) when this is on. - - - Filter Directories With Files - Apply the Filter Files... filter to directories as well. - - - Show Thumbnails - When on, the filer tries to load every image file and use that - image as the file's icon. Useful if you have a directory full of - photos and can't remember which is which! - See the section for details. - - - Refresh - Rereads the contents of the directory and details of all the files - in it. Use this if the display becomes out-of-date. - - - Save Display Settings... - Remember the display settings just for this directory. Each time you - open the directory, the saved settings will be used. - - - - - - <anchor id="Permissions" xreflabel="Permissions"/> - Permissions - - - - The permissions field, when shown, is made up of four groups of three - flags. Each flag is displayed as a letter if it is on and a dash (–) - if not. The first three characters show the permissions for the owner - of the file, the second for other members of the file's group and - the third for everyone else. Whichever group applies to the - ROX-Filer process itself is shown underlined. - The fourth group shows any special flags. - - The meanings of the characters are: - - - - r — - Permission to read the contents of a file, or the names of files - in a directory. - - w — - Permission to alter the contents of a file, or change which names - appear in a directory. - - x — - Permission to run the file as a program, or refer to the files - listed within the directory. - - U — - This program executes with the effective user ID of its - owner rather than the person who ran it. - - G — - This program executes with the effective group ID of its - group, regardless of who ran it. - - T — - Entries in this directory can only be altered or removed by the - people who own the files even if they have write permission on the - directory itself. - - - For example, - - rwx,rwx,r-x/--- - means that the owner of the file is the same as the effective user of - ROX-Filer (basically, you own the file), you and - members of the file's group have read, write and execute permission and other - people have only read and execute permission. There are no special flags set. - - The rules which determine which permissions apply may vary slightly between - operating systems, but a rough guide is: - - - - If the effective user ID of the - process is equal to the file's owner, then the owner permissions apply. - - - Otherwise, if the effective group ID - of the process is equal to the file's group OR the file's group is one - of the process's supplemental groups then the - group permissions apply. - - - Otherwise, the `other' permissions apply. The - real user ID and real group - ID have no effect (except that a process may set its real - IDs to its effective IDs). - - - - - - - - - - The file menu - - All of these work in the same way — if you open the menu with some - items selected then the operation applies to those items. If you open - then menu over an item while there is no selection then that item - is temporarily selected. - - If you choose one of these while there is no selection at all then the - window goes into `target mode'; the operation happens to the next item you - click on. Click on the window background, press Escape, or - click with the right mouse button to cancel target mode. Target mode is - mainly useful with the Single-click navigation option - and keys bound to the various menu entries. - Note that individual applications may add extra menu items to the - top of this submenu when you click over them — see - for details. There may also be any number of - user-defined actions at the top, which depend on the type of file - clicked on. You can add programs here by choosing the - Customise Menu item. For example, you could - make The Gimp appear on the menu for images, and - FreeFS appear for mount points. - - - EntryAction - - - - Copy... - Make a copy of this object. - - - - Rename... - Change the name used for this object, or move it between directories. - If multiple files are selected, this opens - . - - - - Link... - Create a symbolic link to this name. - - - - Delete - Remove all the selected entries from the directory. Subdirectories - will have their contents deleted first. Deleting symlinks only removes - the link, not the thing it points to. - - - - Shift Open - Opens applications as directories, files as text/plain, and - symlinks by opening the directory containing the thing they point to. - It also has interesting effects on mount points (see ). - This is the same effect as clicking with Shift held - down. The text of the menu entry changes to show which action will be - performed. - - - - Send To... - Opens the `Send To' menu, allowing you to send the selected files - to one of a list of applications. See the - section. - - - - Set Run Action... - Allows you to set the default program to use when opening files of - this type. See section for details. - - - - Set Icon... - You can give each file or directory its own special icon using this - feature — simply drag a suitable image onto . - - - - Properties - Display extra information about this object. You can also change - the access permissions from here (Permissions - below allows you to change many files at once), and change the target - to which a symlink points. - - - - Count - Count the sizes of all the selected items. Directories also have their - contents counted. Symlinks count themselves, not the things they point - to. - - - - Set Type... - Set the MIME type for a file. This only works on filesystems with extended attribute support. For older filesystems, you will have to rename a file to change its type. - - - - Permissions - Allows you to change the permissions for the selected files. - If only one file is to be changed, you can use - Properties instead for a simpler interface. - - - - Find - Search for files by specifying various conditions — see the - section. - - - - - - Note about symlinks: - - A symbolic link stores the location - of another file. Deleting the symlink doesn't affect the other file. - Deleting the other file means that the symlink won't work. There are - two types of symbolic link — Relative and Absolute. An absolute - link stores the path from the root directory to the target file (eg - /home/fred/MyFile). - - A relative path stores the path from the symlink - to the target (eg ../fred/MyFile). - If the target file is never going to move then you want an absolute link, - but if the target may move (and the symlink will be moved with it) then - you want a relative link. - - - - - - The select menu - - This menu allows you to select and unselect files in various ways. See the - section for other ways to select files. - - - EntryAction - - - Select All - Select every item in this window. - - - Clear Selection - Unselect every item in this window. - - - Invert Selection - Every selected file becomes unselected, and every unselected file - becomes selected. - - - - Select by Name... - Select just those files that match the given name pattern. This - isn't as flexible as Select If... (see - below), but it is quicker to use. Files also highlight as you type - with this option. The default key binding is ., - so you can type .png to select all - .png files, for example. - - - - Select If... - Select just those files that match the given pattern — - see the section. - - - - - - - - - The new menu - - - Each entry in this submenu opens a savebox for creating a new file or - directory. There are three standard entries; the others are the contents of - your ~/.config/rox.sourceforge.net/Templates directory, if it - exists. - - - - EntryAction - - Directory - Create a new directory. - - - File - Create a blank file. - - - Customise Menu - Open the Templates directory so that you can - add extra items to the menu. - - - <user entries> - Copy a file from your Templates directory. - - - - - To add your own entries, choose Customise Menu - and put any files you want in there. Each file in the directory will appear - on the menu and the box that appears will copy it. For example, you could - create a blank HTML file: - - -<html> - <head> - <title>My Page</title> - </head> - <body> - The contents. - </body> -</html> - - Save this as index.html inside the - Templates directory and you can easily create new - HTML files. You can also save blank documents from various applications - into here (eg, a blank spreadsheet, a blank letter, etc). - - Note that you cannot set keyboard shortcuts for these user-defined - entries at present. - - - - - - The window menu - - - - - EntryAction - - - Parent, New Window - Open a new window displaying this window's parent. - - - - Parent, Same Window - As above, but reuse this window. - - - - New Window - Open another window onto this directory. - - - - Home Directory - Change to your home directory. - - - - Show Bookmarks - Open the bookmarks menu (see ). - - - - Follow Symbolic Links - Converts the path shown in the window's titlebar to its canonical form. - For example, if /home/fred/link is a symlink - pointing to /usr/share/doc/ then clicking on the symlink - will take you to that directory and going `up' will take you back to - /home/fred. - If you'd used Follow Symbolic Links, you would - have ended up in /usr/share instead. - - - - Resize Window - Set the window to a sensible size for its contents. - - - - Close Window - Close this window. - - - - Enter Path... - Open the path-entry box (see the the section). - - - - Shell Command... - Open the shell command box (see the section). - - - Xterm Here - Open an xterm with its current directory set to this directory. - - - Switch to xterm - Open an xterm with its current directory set to this directory, and close the - filer window at the same time. - - - - - - - - - - The help menu - - - - EntryAction - - - About ROX-Filer... - Display information about the file. This is the same as locating ROX-Filer - itself in a filer window and selecting Properties from - the file menu. - - - - Show Help Files - Same as selecting ROX-Filer and choosing - Help from the file menu. - - - - Manual - Opens the HTML manual for your language, or the English version if there - is no translation. - - - - - - - - - <anchor id="SendTo" xreflabel="Send To menu"/>The send to menu - - - The `Send To' menu provides a quick way to send some files to an application. - The filer scans all the $XDG_CONFIG_DIRS/rox.sourceforge.net/SendTo - directories (see BaseDir) and lists - the contents on this menu. - - To change which applications appear here you should choose the - Customise item from the bottom - of the menu to create and open your own SendTo - directory. Applications can be symlinked into this directory by dragging - them in and choosing Link from the menu. - - Opening the Send To menu via the main menu is rather slow, so it is - normally opened by clicking the Menu mouse button over a file while - holding the Shift key down. - - - Showing different applications for different types - - You may want to set things up so that, for example, the Gimp is - only shown when an image is selected. To do this, create a - hidden directory inside SendTo called - .image, or whatever type you want to use. - You can use either the complete type (eg .image_png) - or just the media type. Use Properties over a - file to find out its MIME type. - - - Entries in these hidden directories are shown only for files of - the appropriate type. If multiple files are selected, the - .group directory is used instead. - - - - - - <anchor id="bookmarks" xreflabel="Bookmarks menu"/>The bookmarks menu - - The bookmarks menu can be used to store a list of frequently used directories. - You can also open the menu from the main popup menu (in the Window submenu) - and you can use this to bind a shortcut key to it. From the bookmarks menu - you can add the currently shown directory to the list, jump to one of the - stored directories, or open a dialog letting you edit the list. In the dialog - box, you can remove entries, rearrange them (using the arrows or by - dragging) and edit the pathnames directly, if required. - - - The Recently Visited submenu shows the last few directories - viewed. Choosing one will switch to that directory. The current directory is shown - shaded, since you are already there. - - - - - - - The pinboard and panels - - - The and sections explain - how to turn the pinboard and panels on. Once on, you may drop items from filer - windows onto the them to pin them up. Clicking on a pinned item acts just like - clicking on it in a filer window. You can drag pinned icons just like normal - icons and you can right-click on one to see the popup menu. - - Drag panel icons with the middle mouse button to move them around. - In previous versions of the filer, pinboard icons were also moved using the - middle mouse button, but this is no longer supported (as the middle button - is reserved for the window manager's use). - - You can assign keyboard shortcuts to pinboard and panel icons. These can be - used to open directories, files or applications quickly, even if another - window has the focus. - - Changes to the pinboard and panel are automatically saved. Clicking on pinned - icons with Control held down selects and unselects them. - Click on the background to unselect them all. - - - - Pinning a file does not copy it, it merely - creates a shortcut to the original file. If you delete the file, then - you've lost it! Removing a pinned file from its pinboard or panel - only removes the link. This is different to most other filers... - - - - The pinboard and panel menus - - - - EntryAction - - - - ROX-Filer - Show the filer's help, edit the options or open your home directory. - - - - File `file' - Offers a smaller version of the filer's submenu of the same name. - - - - Edit Item - Change the name displayed under the icon, or the pathname the item - points to. You can also set a keyboard shortcut for the icon here, - and lock it against accidental deletion. For programs, you can - specify extra arguments to be passed in. - - - - Show Location - Open a directory viewer showing where the file is stored. - - - - Remove Item(s) - Remove the selected items from the pinboard or panel. - - - - Backdrop... - Set the desktop backdrop image (see below). Only available from - the pinboard menu. - - - - Panel Options... - Set the edge of the screen on which the panel is displayed. Only available from - the panel menu. - - - - - - If you are setting up the defaults for multiple users and - you wish to create a `Home' icon that leads to each user's home directory - then you should first create a new icon and then use - Edit Icon to change the location to - ~ and the name to `Home'. - - Note that individual applications may add extra menu items to the - top of this menu when you click over them — see - for details. - - - - - Panel applets - - - ROX-Filer allows you to run small programs - inside the panel — such programs are called - applets. To run an applet, drag it onto the panel from - a filer window and instead of the applet's icon being shown, the applet - will run. - - - To create your own applets (programmers only!): - - - Create a directory for the applet (eg MyApplet). - - - - Use the Set Icon... feature to create an icon - called .DirIcon inside it (so the directory appears - with an icon). - - - - Make a Help directory inside it for when the user - chooses Help from the menu. - - - - Create an executable file called AppletRun. This will be - passed the XID of the panel socket window when the directory is dragged - onto the panel. You can use this to create a GtkPlug widget. A - tutorial is available at - - - - - - - - <anchor id="iconify" xreflabel="Iconified windows"/>Iconified windows on the pinboard - - When the pinboard is in use, ROX-Filer can be used to display an icon for each iconified - (or 'minimised') window. You can turn this on or off from the Options box. Iconified window icons - have a semi-transparent background slab effect, and can be dragged around. - Clicking on one will expand it back into the window it represents. Some - older window managers do not support this, and no icons will be shown. - - - - - <anchor id="backdropapp" xreflabel="Backdrop applications"/>The pinboard backdrop image - - You can set any image for the backdrop by choosing Backdrop... - from the pinboard menu (right-click over the desktop background when the pinboard is turned on). - - - To set an image, select Centre, Scale, - Stretch or Tile to set the style, - and then drag an image onto the marked area. To return to a solid colour - backdrop (as set in the Options box), click on Clear. - - The WallpaperWallpaper application can be used for more complicated - effects, such as choosing a new random image each hour, or rendering an image of the Earth - as it is currently lit by the sun. - - For programmers... - - If you want to create an application to set the backdrop (eg, to choose a - random image, or a slideshow) you need to first create an application directory - (see ). - - - When run without arguments, the application should invoke the - SetBackdropApp SOAP method (see ). The filer will immediately run the application again, - this time with the option. - - When run with , the program should write the style and name of - the image file to display to its standard output stream, eg: - tile /tmp/image.png - centre and scale are the other possible - styles. The filer will then load this image and display it. The application does not - set the backdrop itself, it only tells the filer what to display. - - In the case of a random backdrop chooser, the program may then quit immediately. If - the application created a temporary image then it should read the line "ok\n" from its - standard input before deleting the image. - - If the application wishes to show a sequence of images it should still read "ok\n", - then wait until it's time to display the next image and then write that filename, and - so on. - - The filer will indicate that the program should stop running by closing the two - streams. The program should clean up and exit at this point. Be sure to catch - SIGPIPE when writing to standard output if you need to delete any temporary files. - - See the WallpaperWallpaper application for a complete example application - (written in python). - - - - - - - <anchor id="media" xreflabel="Removable devices"/>Removable devices - - - Using removable devices, such as floppy disks and CDROMs under ROX-Filer is quite - simple. However, it is important to understand about mounting and - unmounting devices. - - - Mounting a device causes its contents to appear in the filesystem. On a typical setup, - the directory /floppy is an empty directory on the hard disk. - The floppy device is then mounted onto this directory, causing its contents to appear - inside. For example, a file called Letter on the floppy disk will - appear as /floppy/Letter. - - - Devices must be unmounted before the disk is removed. Unmounting causes the system to - write any buffered data to the disk. If you remove a disk without unmounting - it, it will probably be corrupted. CD and Zip drives often lock the tray while the - device is mounted so you can't remove it accidentally. - - - So that you don't have to specify which device should be mounted at which point in the - filesystem every time you want to use a disk, a preset list is usually found in the - file /etc/fstab. ROX-Filer shows mount points (such as - /floppy) which are listed here but not mounted with transparent - grey circles overlayed on their icons. - - - Clicking on one of these mount points will mount the device for you. The circle turns - green to indicate that the device is now mounted. Do not remove - the device while the circle is lit! You can unmount the device by clicking - while holding down Shift on the /floppy - directory icon. - - - You can also unmount a device by closing its directory window (eg, closing - the view of /floppy) and choosing Unmount when prompted. The - filer will only offer to unmount devices this way if they were mounted by - the filer in the first place. - - - If you want to open a directory without mounting anything (eg, if you want to - see the contents of /floppy on the hard disk), you can - click on the unmounted mount point with Shift held down. - This isn't usually useful, as these directories are typically empty. - - - - - <anchor id="thumbnails" xreflabel="Thumbnails"/>File thumbnails - - When thumbnailing is turned on, the filer tries to load every image file - and use that image as the file's icon. Useful if you have a directory full - of photos and can't remember which is which! You can turn it on for - a single directory by choosing Show Thumbnails - from the Display menu. You can set it as the default - from the Options box. - The titlebar shows (Thumbs) when thumbnailing is on. - - - The thumbnails are saved in ~/.thumbnails for - quick loading next time. - While loading thumbnails, a progress bar appears at the bottom of - the window. Clicking on the Cancel button - beside the bar stops the scan. - It is also possible to thumbnail other types of file, such as videos - (eg, by showing the first frame), with a suitable helper program. - - Technical details - -When in thumbnail mode ROX-Filer checks the -thumbnail directory (~/.thumbs/normal) for a -thumbnail for each file it scans. If a thumbnail exists it loads it and -continues on to the next file. - -To generate a thumbnail for a given file of type media/subtype the filer looks -for a program ~/.config/rox.sourceforge.net/MIME-thumb/media_subtype, -falling back to ~/.config/rox.sourceforge.net/MIME-thumb/media if one -cannot be found (this duplicates how run actions for files are looked up). If -neither file can be found and the file is of type image/* then the internal -routines are used. If the file is not of type image/* then no thumbnail is -generated. - -If the generator program is found, is executed with the parameters -thumbnailer /path/to/source/file /path/to/thumbnail pixel_size - -Once the child program exits, it attempts to load -/path/to/thumbnail. If that fails no thumbnail is -displayed. - -Note that because of the order it does things ROX-Filer will happily -use any pre-existing thumbnail even if it has no idea how it was -generated. - - - - - - - - <anchor id="vfs" xreflabel="Virtual file systems"/>Virtual file systems - - - Some types of file can be represented as a directory. A typical example - is a zip file, which contains an entire directory structure in compressed - form. It is often useful to be able to open up such a file as if it - was a real directory, and the VFS system allows you to do this. - - To use this feature you must have a system such as - AVFSAVFS installed, which causes the kernel to support - various Virtual File Systems directly. - - - - There are various ways to use AVFS. This example shows how to use it on - a Linux 2.6 system with FUSE. You will need a kernel with FUSE support and - the 'libfuse-dev' header files package installed. - - - Installing AVFS on Linux 2.6 - - Get AVFS from CVS (the current July 2005 release is too old). - - Compile AVFS (sh autogen.sh; ./configure; make). - - Go into the avfs/fuse subdirectory and - run ./compile.sh. - - Create a mount point: mkdir ~/.avfs-mount. - - Run AVFS: ./avfsd ~/.avfs-mount. - - - - To configure ROX-Filer to open directories using AVFS, set the run action - (Set Run Action...) for zip files (and other - archive types) to: - rox ~/.avfs-mount/"$1#" - - - - - - Note that all of the above steps should be done as a user, not as root. - You may need to be in some special group to use FUSE (check the group - of /usr/bin/fusermount). - - - - If you don't want to make AVFS the default action for these files, you - could instead create a script containing the above and add it to the - File menu, using Customise - Menu.... - - - - - - <anchor id="mini" xreflabel="Minibuffer"/>The mini-buffer - - - The mini-buffer is a white bar that appears along the bottom of the - window and allows you to enter some text. Press Escape to - get rid of it again. It behaves in different ways depending on how you - invoked it: - - - - The path-entry box - - - This allows you to type in a path directly. As you type the display - is updated to show the item entered visually. The main use is to find - a file in a large directory quickly, but you can also use it for navigating - between directories, or for selecting a full pathname from somewhere - else and pasting it directly into the path-entry box. - - - - KeyAction - - - - Return - Open the currently selected item. - - - - Tab - Shell-style tab completion. - - - - Up, Down - Select the previous/next matching entry. - - - - - - - If you start entering a name beginning with a `.' then the `Show Hidden' - feature is temporarily turned on so that the file can be shown. - - - - Tab completion tries to fill in as many characters for you as it can. - For example, if there are two files in a directory called - save-mail-nov-1999 and - save-mail-dec-1999 then typing - save and pressing Tab will expand - save to save-mail- and beep - to indicate that the match is not complete. If you use tab completion on a - directory and it is unique then the filer will automatically change into - the directory. This behavior should be familiar to shell users. - - - - Let's say you want to locate the documentation for Wine in the directory - /usr/share/doc (which is usually very large). - Here's how you could do it: - - - - - Open the minibuffer by choosing Enter - Path... from the Window menu, or - by pressing the slash (/) key. - - - - Press CTRL+A to select the existing - contents. - - - - Type - u<Tab>sh<Tab>do<Tab>wi<Tab>. - As you type, the cursor will move to the correct subdirectory. - If it beeps when you press Tab then you need to supply - more letters, or press Return. - - - - - - - - - The shell command box - - - This provides a quick way of entering shell commands if you don't - want to open an xterm. If you don't know what shell commands are, - skip this section! - - Just type in the command and press Return to execute it. - Up and Down arrows move through previously - entered commands. - Tab does shell-style completion. - Clicking on an item inserts its name into the minibuffer. - If some items are selected then they are assigned to the positional - parameters $1, $2, etc. - - Opening the minibuffer with a selection adds "$@" - to the end of the command — this expands to all the selected files. - - - Examples: - - To untar a <filename>.tgz</filename> archive: - - - Open the minibuffer by choosing Shell Command... from - the Window menu. - I usually bind this to the bang (!) key. - - - - Type tar xzf and click on the file. - The leading space is automatically inserted. - - - - Press Return to execute it. - - - - - To print all the selected files: - - - Open the shell command minibuffer. - - - - Type lpr at the beginning of the line and press - Return. - - - - - - - Notes - - - Be careful; you will not be asked to confirm! If in doubt, start the - command with xmessage so that it will be displayed - rather than executed. - - - - sh - is always used as the name of the shell to run (mainly because - bash and - csh treat - positional parameters differently). - However, PATH is searched to find it so you can still use - another shell if you want by naming it sh and putting it in your path. - - - - Commands execute in the background, so you can say: - - sleep 240; xmessage Time to go! - - - - - - - <anchor id="SelectIf" xreflabel="Select If"/>The conditional - selection box - - Use this if you want to automatically select all files in the directory - which match a condition. - - For example, to select all files larger than 5Mb: - - - Open the Select If minibuffer (bound to ? by dafault). - - - - Type Size > 5Mb and press Return. - - - - - Just those files over 5 Mb in size will be selected. The expressions - you can enter are in the same form as described in the - section, except that - prune has no effect since the contents of - directories are never checked anyway. You can press Tab - to jump to each selected file in turn. - - - - - - - - <anchor id="bulkrename" xreflabel="The Bulk Rename window"/>Renaming files in bulk - - - If you have a large number of files to rename, it is tedious to rename them one - by one. Instead, select all the files and choose Rename... - from the menu to open the bulk rename window. - - - - The window shows a table with two columns. The Old name column - shows the current name of each selected file, and the New name - column shows the new name, which is initially the same. - - - - There are two ways to change the new names. You can edit the names in the table - directly, or you can use the search and replace feature at the top of the window. - This takes a regular expression to search for, and some text to replace matches - with. For example, if you had a lot of files with names ending in - .htm and you wanted to change them to use - .html, you would enter \.htm$ in - the Replace: field and .html in the - With: field. When you click Apply, the - table is updated to show the proposed new names (but no actual renaming is done - yet). - - - - Having checked that the new names look OK, click on the Rename - button to actually perform the rename operation. - - - - - Action windows - - Action windows are those boxes that appear while you're doing a - Copy/Move/Link/etc operation. The status line at the top of the window shows - the current directory or object that the window is processing. The scrolling - area below is the log area — it shows what has been done, and questions - may be displayed here. - - Below this are four buttons and some options. All windows have the - Quiet option. When this is on the filer will only - confirm some operations (such as deleting a non-writeable file). Otherwise, - all operations are confirmed. - - The buttons work as follows: - - - - Yes - answers yes to the question displayed in the log area. - - - No - answers no to the question displayed in the log area. - - - Cancel - kills the current operation (if any) and closes the action - window. - - - Quiet - is a quick way to turn Quiet on and click - Yes. - - - - - - You can control which actions get started automatically (without you - having to click on Quiet at the start) from the - Options window. - - - - Action window options - - - Some actions have options, which appear as option boxes at the bottom - of the window. They are: - - - - - Force means that the filer won't treat non-writeable - files as special. Normally, it confirms the deletion even if - Quiet is pressed. - Note that you still can't remove files from non-writeable directories because - in that case you really don't have permission. - - - - Brief prevents the filer logging a message every time it - does something. Use this to speed things up if large numbers of messages are - being logged. - - - - Recurse means that doing something to a directory will - also do the same thing to all its contents, and the contents of any - subdirectories, and so on. - - - - Newer will automatically copy a file over an existing one - if the file is newer than the one it replaces (later modification time). - - - - - - You can set the defaults for these options from the Options box. - - - - - - <anchor id="Searching" xreflabel="Searching"/>Searching - - The Find feature looks through all the selected files and directories - and any subdirectories (recursively) looking for items that match - a particular expression. - - Choose Find from the File - submenu to search all the selected objects. If you want to select all the - files within a single directory which meet certain criteria, use - Select -> Select If... - instead. - - If you know the name of a file then just enter it in the `Expression:' - box, enclosed in single quotes. For example, to find a file called - log you would enter 'log'. - - Remember to use normal quotes, not double quotes (") or back-quotes (`). - - As the filer finds matching files they are added to the results list. - Double-clicking on an entry in the list opens a viewer showing that file. - The filer will use the same window to view other results (so, if you want - the results shown in separate windows you must explicitly create a new - window from the Window menu). - - - - Wildcards - - - You can also put shell-style wildcard characters inside the quotes, - for example: - - - - '*.html' - 'Report.*' - 'Draft[1-5]' - 'main.[ch]' - - - - Look at the - glob - 7 - manpage if you want to know more about shell wildcards. - - If the pattern you enter contains a slash (`/') character then the - pattern is matched against the file's full path, otherwise only the - leafname is used. That is, '*tmp*' will find - tmp and tmpfile but not - /tmp/file'/*tmp*' will find - all three. - - - - - Simple tests - - As well as finding files by their names you can also find them by - various other attributes. Note that file is used here to - mean anything that can appear in the filesystem — including directories, - devices and so on. - - You can also use a short form for each test; these are shown in brackets. - You can combine multiple tests — `-rw' is - the same as `IsReadable and IsWriteable'. - - - These look at the type of the item being checked: - - - IsReg (-f) matches any regular (ie, normal) file. - - - - IsLink (-l) matches symlinks. - - - - IsDir (-d) matches directories. - - - - IsChar (-c) matches character device files. - - - - IsBlock (-b) matches block device files. - - - - IsDev (-D) matches block or character device files. - - - - IsPipe (-p) matches pipes. - - - - IsSocket (-S) matches sockets. - - - - IsDoor (-O) matches door objects (Solaris). - - - - - These look at the permissions set on the file — - see the <xref linkend="Permissions"/> section. - - - IsSUID (-u) matches files which have the Set-UID - bit set. - - - IsSGID (-g) matches files which have the Set-GID - bit set. - - - IsSticky (-k) matches files with the sticky bit - set. - - - IsReadable (-r) matches files which you can read - from. - - - IsWriteable (-w) matches files which you can write to. - - - - IsExecutable (-x) matches files which you can execute. - - - - - And a couple of other useful ones: - - - IsEmpty (-z) finds empty files (ie, those whose - length is 0 bytes). - - - - IsMine (-o) finds files which you own. - - - - - - - - Logic operators - - You can combine the above tests in various ways to perform more advanced - searches. - An expression is actually made up of a list of cases, - separated by commas. The filer will try to match each case in turn - until one matches or there are no more cases left. For example, to - search for files with several possible endings: - - '*.gif', '*.htm', '*.html' - - Further, each of the cases is actually a list of conditions. The case - only matches if all of its conditions are met. So, to find a directory - called lib or a regular file ending in - .so: - - IsDir 'lib', IsReg '*.so' - - You can negate a condition by putting a ! in front - of it and you can use a sub-expression as a condition by bracketing it, - like this: - - - !(IsDir, IsReg) - - !IsDir !IsReg - - Not isdir and not isreg - - !-d !-f - All four do the same thing. - - - - - Comparisons - - You can also compare various values using the operators - <, - <=, - =, - !=, - >, and - >= - (for less-than, less-than-or-equal-to, equal-to, - not-equal-to, greater-than and greater-than-or-equal-to). - - When comparing times, you may find it helpful to use - after and before instead of - > and < to make things - clearer. - - - - The following are read from the file being checked and may be used - for the values being compared: - - - - atime The time that the file was last accessed. - - - - ctime The time that the file's status was last changed. - - - - mtime The time that the file's contents were last modified. - - - - size The size of the file. - - - - inode The file's inode (index) number. - - - - nlinks The number of links to this file. That is, - the number of directory entries which refer to this file. Note that - symlinks don't count as references. - - - - uid The User ID of the file. - - - - gid The Group ID of the file. - - - - blocks The number of disk blocks being used by the file. - - - - - - Times are measured as seconds since the Unix Epoch (00:00:00 UTC, - January 1, 1970). Sizes are in bytes. When specifying constants to - compare these values with you may use various keywords to scale the - value: - - - - - Byte(s) has no effect, but looks better. - - - - Kb multiplies by 1024, so 2Kb is the same as 2048. - - - - Mb multiplies by 10242, - ie 1024 Kb. - - - - Sec(s) has no effect, but looks nice. - - - - Min(s) multiplies by 60 to get minutes. - - - - Hour(s), Day(s), Week(s), Year(s) likewise - convert to the relevant unit. - - - - Ago makes the time in the past relative to when - the check is done. - - - - Hence makes the time in the future. - - - - Now is short for 0 Secs Hence. - - - - - Some examples should make this all a bit clearer! - - - mtime after 1 day ago - - size > 10 Mb - - IsReg and nlinks > 1 - The first finds files modified within the last 24 hours. You could - use > instead of after, - but it's not so clear what is meant. - - The second finds files larger than 10 Mb. The last finds regular files with - more than one directory entry. - - Be careful though — the filer doesn't check the context of the - modifiers, so size > 1 day ago is allowed, - although it doesn't make much sense! - - Also, forgetting to use ago or - hence will cause odd effects (the time will be - measured relative to the Epoch rather than the current time). - Finally, don't use = with times — - atime = 1 day ago looks for a file accessed - exactly 86400 seconds ago... - - - - - - Specials - - - - - - System(Command) executes `Command' on the file. - The test succeeds if the command returns an exit status of zero. A `%' - character in `Command' is replaced by the full path of the file being - checked. System is a very slow test to perform, - so do it last if possible. For example, if you're looking for a - .c file containing the word `main', do: - - '*.c' system(grep -q main "%") - so that the grep is only performed for files ending in .c - (as opposed to only checking that the file ends in .c if - it contains the word `main'). - - - - Prune Always fails! - Note that this is the opposite of the - find1 - command. - - However, if it gets evaluated at all then it prevents the filer - from checking inside the current directory. Remember the order in which - the filer checks the expression! - - - - - Examples: - - - '*.old' system(rm '%') - - 'src' prune, '*.c' - The first deletes each file ending in .old. - The second looks for .c files, but does not bother - checking inside directories called src. - The expression is evaluated like this: - - If file is named src then `Prune'. - Either way, check if it ends in .c and include - it in the results if so. - - - - - - Options - - - You can configure various aspects of ROX-Filer - from the Options box. - Choose Options... from a filer window menu to - open it. The list on the left of the window lists the various sections — - click on one to see its options. - - At the bottom of the window are two buttons: - - - - - OK - saves the current choices into your - ~/.config/rox.sourceforge.net/ROX-Filer directory for next time - ROX-Filer is loaded, if anything changed. - Exactly where choices are loaded from and saved to is controlled by the - XDG_CONFIG_HOME environment variable — see - BaseDir for details. - Changes made in the Options box take effect instantly, so you don't need to - click on OK just to try them out. - - - - Revert - Restores all choices to how they were when the options box was opened. - This button is shown shaded if you haven't made any changes. - The Options window is not closed when this is used. - - - - - The options in the Options window have tooltips explaining the use of each - option — hold the mouse pointer over an option to find out what it - does. - - - - - - Filetypes - - - All files have a MIME type in the form text/plain. Here, - text is the media type and - plain is the sub-type. - - ROX-Filer uses a file's name to decide what its MIME - type is, and then uses the MIME type to decide what icon to give it and what - program to use when you open the file. - - - - <anchor id="RunAction" xreflabel="the Set Run Action box"/> - The Set Run Action box - - - This box appears when you choose Set Run Action... - from the File menu, and is used to set which application is loaded when you click - on a file. - - For example, let's say you want to set things up so that opening a - .gif file loads it into the Gimp. - First, right-click over a gif image to open the menu and choose - Set Run Action... from the - File submenu. - Then, you have a choice of two methods to set the run action: - - - Setting the run action by drag-and-drop - - Drag the Gimp (from a filer window, a panel or the pinboard) onto - the area marked Drop a suitable application here. - From now on, clicking on a GIF file will load it into the Gimp. - - - - Setting the run action by entering a shell command - - Type: gimp "$@" - into the box labelled Enter a shell command and press - Return. $@ - will be replaced by the name of the file you click on when this command - is used. As before, clicking on any GIF image will now load it into - the Gimp. - - - - Setting the default media-type handlers - - Whichever method you use to set the action you have the choice of - setting the run action just for that type, or setting the default - for all files with that media-type which don't already have a specific - action. - - Since the Gimp can load many types of image, it makes sense - to select the Set default for all `image/<anything>' - option so you don't have to do it again for image/jpeg files and so on. However, - this only affects types that don't already have a specific action - (ie, those that would have brought up an error box if you tried to - open them). - - - - - - <anchor id="SetIcon" xreflabel="the Set Icon box"/> - The Set Icon box - - - - This box appears when you choose Set Icon... - from the File menu, and is used to set which image to use to represent - the file. - - It works much like the Set Run Action box described above, except that - you may specifiy an icon for one file individually (by name) as well as - for all files of a particular type. When setting the icon for a single - file, the filer stores the name of the file and the name of the icon inside - your ~/.config/rox.sourceforge.net/MIME-icons - directory. If either moves, the icon won't be displayed. - - When setting the icon for a directory, you have the additional option of - storing the image inside the directory itself as a hidden file. This means - that other users will see the icon too, and you can safely delete the original - image after the copy (note that the image is scaled down if needed, and converted - to PNG format). - - The directory icon inside the Drop an icon here - area allows you to quickly get to a directory from which you are already - using one or more icons. - - - - - How filetypes are stored - - - ROX-Filer uses two sub-directories in your - ~/.config/rox.sourceforge.net directory for filetypes: - - - - MIME-types - contains symlinks, one for each MIME type, which point - to programs that can handle files of that type. To set what program - is run when you click on the file you should normally use the Set - Run Action... feature (see the section). - However, you can also set the actions manually — for example, to make - opening an HTML file load it into Netscape: - - - - Find the Netscape application and go to Link... - on the menu. - - - - Enter text_html as the name for the link and drag the - icon from the Link box into the MIME-types directory. - - - - - You can also put actual programs in here as well as links if you want - to. - - - MIME-icons - contains the images used to display each type of file. - So the filer will try to display an HTML file using the icon - MIME-icons/text_html.png. If no icon is set here, - the filer will use the currently selected icon theme (as set in the options - box); see IconTheme for details. - - - - - In MIME-types you can also provide default actions for each media type. - For example, if text_html isn't found then the filer - will try simply using text. - - - - - - How the filer determines a file's type - - The filer usually works out the type for a file from its name. If this fails, - it tries to guess from the file's contents. It is possible to override this guessing - by setting an extended attribute on the file with the correct type, using the - Set Type... menu item. - - - To edit the rules used to guess types, open the options box and go to the Types section. - There is a button there that will launch the MIME-Editor application. - You can also edit the rules manually — see SharedMIME for details. - - - - - - <anchor id="AppDir" xreflabel="Application directories"/> - Application directories - - - An application directory is a directory which can be run as an application. - It contains all the resources of an application — source code, binaries, - documentation and so on. Keeping everything in one place make installation - and uninstallation much easier for users. You can also keep multiple - versions of a program by simply having several application directories. - You may move and rename them as you please. Application directories - make programs easier to use and install. - - They're more secure too, because you can compile an application as a user and - then simply copy it as root. Since you don't have to run an install script - you are free from the danger of running untrusted code as root. All you have - to watch out for is setuid binaries. - - - The following files are treated as special by - ROX-Filer: - - - - - AppRun - is executed when you click on the directory — make sure - it is executable (use the Permissions box)! - - - - .DirIcon - is the image used to represent the directory (this works even if - there is no AppRun). - - - - Help - is the directory to be opened when you choose Help - from the File menu. - - - - AppInfo.xml - contains extra information about an application (see below). - - - - AppIcon.xpm - is used if .DirIcon is missing (for backwards - compatibility; not to be used anymore). - - - - - Have a look at the ROX-Filer application directory for a - full example. - - - - For security reasons, an application directory must have the - same owner as the AppRun file inside. - - - The AppInfo file - - - AppInfo.xml is an XML file with the following structure - (any elements may be omitted, and the file itself is optional): - - -<?xml version="1.0"?> -<AppInfo> - <Summary xml:lang="en">A graphical file manager</Summary> - <Summary xml:lang="de">Ein grafische Datei-Manager</Summary> - <Summary xml:lang="nl">Een grafisch bestandsbeheerprogramma</Summary> - <Summary xml:lang="es">Un manejador de archivos gráafico</Summary> - <About xml:lang="en"> - <Purpose>File manager</Purpose> - <Version>1.3.5 PREVIEW</Version> - <Authors>Thomas Leonard and others</Authors> - <License>GNU General Public License</License> - <Homepage>http://rox.sourceforge.net</Homepage> - </About> - <About xml:lang="es"> - <Purpose>Manejador de Archivos</Purpose> - <Authors>Thomas Leonard y otros</Authors> - </About> - <AppMenu> - <Item option="-p=Default"> - <Label>Enable pinboard</Label> - <Label xml:lang="es">Habilitar el pinboard</Label> - </Item> - <Item option="-p="> - <Label>Disable pinboard</Label> - <Label xml:lang="es">Deshabilitar el pinboard</Label> - </Item> - </AppMenu> -</AppInfo> - - - - - - Summary - is displayed in a tooltip when the mouse is held over the application. - - - - About - contains a list of fields which are shown in the `File Info' - box for the application (any element names may be used, but the above - are suggested). - - - - AppMenu - is a list of extra menu items to display for the application. - When one is chosen, AppRun is called with - option as its only argument. You can nest - AppMenus inside other AppMenus to create submenus, provided they have - <Label> elements. Item elements can also have - icon attributes, which name an icon in the current - icon theme for the menu item. - - - - - - - - - - Internationalisation - - - - - - <anchor id="LANG" xreflabel="Translations"/> - Selecting a translation - - - - ROX-Filer is able to translate many of its messages, - provided suitable translation files are provided: - - - Open the Options box from the menu, - Select a language from the list, - Click on OK and restart the filer - for the new setting to take full effect. - - - - - - - Creating a new translation - - - - Go into the src/po directory and create - the file src/messages.pot: - - - $ cd ROX-Filer/src/po - $ ./update-po - - - - Copy the file into the src/po - directory as <name>.po. Eg, if your - language is referred to as `ml' (`my language'): - - $ cp ../messages.pot ml.po - - - Load the copy into a text editor. - - Fill in the translations, which are all blank to start with. - - - Run the make-mo script to create the - binary file which ROX-Filer can use. - You will need the GNU gettext package for this. - - - $ cd ROX-Filer/src/po - $ ./make-mo ml - Created file ../../Messages/ml.gmo OK - - - Edit ROX-Filer/Options.xml so that - your language is listed, restart the filer and select it from the Options box - (see the section). - - - Submit the .po file to the ROX - patch tracker so that we can include it in future releases of the filer. - - - - - - - - Updating an existing translation - - - - Go into the directory containing the .po - files and run the update-po script. - This checks the source code for new and changed strings and updates all - the translation files. - - - $ cd ROX-Filer/src/po - $ ./update-po - - - Edit the file by hand as before, filling in the new blanks - and updating out-of-date translations. - Look out for fuzzy entries where - update-po has made a guess; check it's correct and - remove the fuzzy line. - - - Run make-mo as before. - - Submit the updated file to us. - - - - See the gettext info page for more instructions on creating - a translation. - - - - - - - Hacking - - This is a quick start guide for people who want to modify the source - code. If you make useful changes or fix bugs, please send patches - to me or to the mailing list. Tell me which version you're using! - - - - Compiling - - The first time you compile the program you need to do AppRun - --compile, but in future you only need to run make - in the src directory when you change the - .c and .h files. - You might want to run make depend too. - - - - - Creating and applying patches - - When people make small modifications to the sources they will often - distribute them as patch files — usually on the - mailing list. - - To apply a patch, go into the src directory and run - patch with the patch file. Then recompile, like this: - - - $ cd ROX-Filer/src - $ patch < patchfile - $ ../AppRun --compile - - You can remove the patch by simply repeating the above sequence — - patch will detect that the patch is already applied - and offer to remove it. - - To create a patch you should first get the latest version of the filer - from CVS (instructions on using CVS can be found on the web-site). - Modify the program as you please. Create the patch using - cvs diff from the appropriate directory: - - $ cvs diff -u > my_patch - - This creates a human– and machine-readable patch file. Submit this - to the mailing list. The are many reasons for posting patches rather - that the modified files: - - - They are smaller, and hence shouldn't bounce. - They are also quicker to download for people with slow connections. - - - People can see what they're getting into before applying them! - - - Patches can (usually) be applied to slightly modified - versions of the sources. This means that people can apply several patches - without each new one overwriting the others. - - - - - - - - - Autoconf - - Here's a quick explanation of the autoconf system in case you haven't - used it before. See info autoconf for full details. - - There's a file called configure.in which contains - various tests (info autoconf). - You run autoconf and it reads through the file - and generates a shell script to perform the tests, saving it as - configure. - configure is normally distributed with the program because - not everyone has autoconf. - - You then run configure (in fact, let the - AppRun script do it because - it passes it some arguments), which performs all the tests. It reads - in Makefile.in and config.h.in - and fills in the missing values with the test results to produce - Makefile and config.h. - - You run make, which creates .o - files from the .c files and links to produce - ROX-Filer. - - - - Data-structures - - The global.h file lists each major data-structure used - in the filer and explains its purpose. This is a good place to start reading - if you want to know how the filer works. - - - - - - Compiling - - - If you've just got hold of the filer by downloading the source archive - then you'll need to compile it before you can use it. If you downloaded - and installed a binary package, or if ROX-Filer - was included with your system, then you can skip this section. If you got - here by clicking on the lifebelt symbol in a filer window, or if typing - rox at a shell prompt works, then you don't need to - compile. - - To compile, you will need the following: - - - Unix or Linux (root access is not required), - - - - The X Window system (supplied as standard on all modern systems), - - - - GTK+ 2.4.0 or later (libraries and headers) — get the latest version - from GTK+, - - - - Glade 2.0.0 or later (libraries and headers) — get the latest version - from Glade, - - - - LibXML 2.0.0 or later (libraries and headers) — get the latest - version from libxml, - - - - A C compiler, such as `gcc' (standard on most systems). - - - - - All of the above are standard on most modern Linux distributions. - To check which version of GTK+ you have installed, run the - pkg-config command, like this - ($ is the shell prompt): - - $ pkg-config --modversion gtk+-2.0 -2.6.8 - - - To compile (using Zero Install): - - - Go to the Zero Install launcher dialog for ROX-Filer. For example, from the shell you can do: - - $ 0launch --gui http://rox.sourceforge.net/2005/interfaces/ROX-Filer - - - - Right-click on the ROX-Filer line in the window and choose Compile... - from the menu. - - - - It will prompt you to choose a version of ROX-Filer to compile and of some - required header files. You should be able to just accept the defaults and let - it download them. - - - - Choose a directory in which to store the compiled code when prompted - and then click on the Build button to compile it. - - - - Once the build is complete, click on Register to add this - version to the available versions. - - - - To compile (manually): - - - The filer now uses the Shared MIME DatabaseSharedMIME - to work out the types of files. You need to install this before the - filer will work properly (ROX-Filer will warn you if it's not installed - when you run it). - - - - Change to the directory containing the ROX-Filer subdirectory. - - - - Run the AppRun script, like this: - - $ ./ROX-Filer/AppRun --compile - - - - - ROX-Filer will perform various checks to find - out what kind of system it is being run on and will then compile. If it - doesn't work then please e-mail us and complain! Tell us what kind of - system you have and what errors were reported. If you manage to fix the - problem yourself then please e-mail us the fix. - - - - Once the filer has compiled it will run automatically. You can run it - again later by running the AppRun script with no arguments. - - - - - - Manual page - - - - - ROX - 1 - - - - ROX-Filer - a simple graphical file manager - - - - - rox - - FILE - - - - DESCRIPTION - - ROX-Filer is a simple and easy to use graphical file manager for X11, the - windowing system used on Unix and Unix-like operating systems. - - It is also the core component of the ROX Desktop: - - - Invoking rox opens each directory or file listed, - or the current working directory if no arguments are given. - - - - COMMAND-LINE OPTIONS - - - - - open PANEL. - - - - open PANEL as a bottom-edge panel. - - - - used for session management. - - - - open DIR as directory (not as an application, even if it looks like one). - - - - close DIR and all its subdirectories. - - - - display help about the various options. - - - - open PANEL as a left-edge panel. - - - - print MIME type of FILE and exit. - - - - start a new filer, even if one already seems to be - running. This also prevents the filer from forking (running in the - background). This option is mainly useful for debugging. - - - - use pinboard PIN as the pinboard. - - - - open PANEL as a right-edge panel. - - - - read and invoke SOAP RPC from standard input (see ). - - - - open a directory showing FILE. - - - - run by session manager, open the default panel and pinboard (implies --new). -If an XSM session manager is running and this option is used then ROX-Filer will ask to be automatically -restarted if it crashes. - - - - open PANEL as a top-edge panel. - - - - show user name in each window. - - - - run URI as a file or directory. If URI is a -file: url and refers to a file on the local machine then it is -converted to a local file name: rox -U -file:///tmp is equivalent to rox /tmp. If the URI is some other -scheme the shared URI handler configuration is consulted to run it. - - - - display the version information and exit. - - - - FILE has changed; re-examine it. - - - - - - - NOTES - - The main documentation for ROX-Filer is available by choosing - Show Help Files from the - popup menu, or by clicking on the right-most toolbar icon. - - - - LICENSE - Copyright (C) 2004 Thomas Leonard. - - You may redistribute copies of ROX-Filer under the terms of the GNU General - Public License. - - - - BUGS - - Please report bugs to the developer mailing list: . - - - - AUTHORS - - ROX-Filer was created by Thomas Leonard, with help from: - - - Michael Adams - Christopher Arndt - Jens Askengren - Liav Asseraf - Wilbert Berendsen - Francesco Bochicchio - Yuri Bongiorno - Andrzej Borsuk - Richard Boulton - Simon Britnell - Arnaud Calvo - Babyfai Cheung - Andrew Clover - Fabien Coutant - Couderc Damien - Andreas Dehmel - Micah Dowty - Dmitry Elfimov - Mattias Engdegard - Andrew Flegg - Olivier Fourdan - Eric Gillespie - Thierry Godefroy - Olli Helenius - Alex Holden - Jasper Huijsmans - Sigve Indregard - Bernard Jungen - Marcin Juszkiewicz - James Kermode - Jim Knoble - Krzysztof Krzyzaniak - Aaron Kurtz - Vincent Ledda - Vincent Lefevre - Victor Liu See-le - Alexey Lubimov - Krzysztof Luks - Marcus Lundblad - Anders Lundmark - Jose Romildo Malaquias - Denis Manente - Brendan McCarthy - Andras Mohari - Christiansen Merel - Jimmy Olgeni - Richard Olsson - Matthew O'Phinney - Daniele Peri - Andy Piper - Marcelo Ramos - Michel Alexandre Salim - Adam Sampson - Chris Sawer - Christian Storgaard - Taras - Simon Truss - Hirosi Utumi - Jan Wagemakers - Keith Warno - Götz Waschk - Stephen Watson - Andre Wyrwa - Geoff Youngs - Diego Zamboni - - - and many others; the Changes file contains more - detailed information! - - - - - - - SOAP RPC - - When the filer starts you can use command-line options to control its behaviour. - As an alternative to this, the filer allows you to specify an operation with a - SOAP RPC format message. In fact, if you use the command-line options, - the filer converts to SOAP RPC internally. - - - All SOAP RPC messages are passed on standard input, like this: - - -$ rox --RPC << EOF -<?xml version="1.0"?> -<env:Envelope xmlns:env="http://www.w3.org/2001/12/soap-envelope"> - <env:Body xmlns="http://rox.sourceforge.net/SOAP/ROX-Filer"> - <Panel> - <Name>Default</Name> - <Side>Bottom</Side> - </Panel> - </env:Body> -</env:Envelope> -EOF - - The following methods are recognised: - - - - Version() - Returns the filer's version. - - - CloseDir(Filename) - Close directory Filename and all its subdirectories. - - - Examine(Filename) - Filename may have changed — check it and - update the display. - - - OpenDir(Filename, - [Style, Details, Sort, - Class, ID, - Hidden, Filter]) - Open a window showing directory Filename. - Style is one of Large, Small, Huge - or Automatic. - Details is one of None, ListView, Size, Type, Times or Permissions. - Sort is one of Name, Type, Date, Size, -Owner or Group. - If any of these three option parameters are missing, the default is used. - Class can be used to set the WM_CLASS property on the new window. You can - use this to get your window manager to treat the window -specially. - ID is a string used to identify the -opened window. If a window with this ID already exists, it is changed to the -given directory. Otherwise, a new window is created and given this ID. -If used from a program, ensure the IDs you generate are unique, for example -by including your process name, PID and a timestamp in the ID. -Hidden if true means -that hidden files (those that start with a dot character) are shown, -or not shown if false. If ommitted then the -configured setting is used. -Filter can be used to filter files shown by -their name. For example using a filter of *.c -means that only files ending in .c are shown. - - - Panel([Side, - Name]) - Open the panel named Name on screen side - Side (Top|Bottom|Left|Right). - Name can be a name in ~/.config/rox.sourceforge.net/ROX-Filer - (eg, MyPanel) or a full pathname. - If not given, the panel on that side is turned off. - - - PanelAdd(Side, - Path, [Label, - After, Shortcut, Args]) - Add Path to the panel on side Side, - with label Label. If After is - true the icon goes on the right/bottom side of the panel, - otherwise on the left/top side. If Shortcut -is given it is the keyboard shortcut to trigger this item. If -Args is given it is the argument string to -append to the item when run if it is a program. - - - PanelRemove(Side, - [Path, Label]) - Remove an item from the panel on side Side. If - Path or Label is not given - then any path or label will match. At least one must be specified. - If more than one item matches, only one is removed. - - - Pinboard([Name]) - Display pinboard Name on the desktop background. - Name can be a name in ~/.config/rox.sourceforge.net/ROX-Filer - (eg, MyPinboard) or a full pathname. - If not given, the pinboard is turned off. - - - PinboardAdd(Path, - [X, Y, -Label, Shortcut, Args, Update]) - Add Path to the pinboard with the (optional) - label Label. If X or Y are negative or not given, - the icon is placed automatically. The X and Y parameters then indicate - where the icon should go (X=-1: left, X=-2: right, Y=-1: top, Y=-2: - bottom). If X and Y are given, its position is (X, - Y). If Shortcut is given it - is the keyboard shortcut to trigger this item. If - Args is given it is the argument string to append - to the item when run if it is a program. If Update - is true and there is already an icon for the given path on the pinboard, - the new values will be filled in instead of adding a new icon. - - - PinboardRemove(Path, [Label]) - Remove Path from the pinboard. If Label is given -then this must match the label of the item. If more than one item matches, only one is removed. - - - SetBackdropApp(App) - Make App (an application directory) the new handler - for the current pinboard's backdrop. - The AppInfo.xml file inside App - must contain the CanSetBackdrop element, eg: - -<?xml version="1.0"?> -<AppInfo> - <ROX:CanSetBackdrop xmlns:ROX="http://rox.sourceforge.net/SOAP/ROX-Filer"/> -</AppInfo> - The application will be run with the option - as it's only argument after invoking this method, and whenever the pinboard is - reloaded. DO NOT use this method if invoked with or - you will get stuck in an infinite loop! - See for a guide to writing backdrop applications. - - - SetBackdrop(Filename, - Style) - Set the backdrop image to a given file. If you want to regenerate the image next - time the user logs in, or you want to change it automatically from time to time, - use SetBackdropApp above instead. Valid styles are - Tile|Scale|Stretch|Centre|Fit. - - - Run(Filename) - Run Filename as if it was clicked on in the filer. - - - RunURI(URI) - Run URI as if it was clicked on in the filer. - URI is interpreted as a URI, in the form - file://localhost/path. - - - Show(Directory, - Leafname) - Open Directory and flash the file - Leafname inside it. - - - FileType(Filename) - Returns the MIME-type of Filename (by writing the - SOAP response to standard output). - - - SetIcon(Path, - Icon) - Set the icon to use for the given path. This is equivalent to using the - Set Icon... menu item. - - - UnsetIcon(Path) - Clear the icon to use for the given path. - - - - - The following calls can be used to start new file actions. - Quiet can be true if the - operation should start immediately, instead of waiting for the user to - confirm. If false, the user must always confirm. If - not given, the default setting is used. - - - - Copy(From, - To, [Leafname, - Quiet]) - Copy each file in the array From to the directory - To. If Leafname is given - then From should contain a single entry only; - Leafname gives the new leafname. - - - Move(From, - To, [Leafname, - Quiet]) - Move each file in the array From to the directory - To. If Leafname is given - then From should contain a single entry only; - Leafname gives the new leafname. - - - Link(From, - To, [Leafname]) - Symlink each file in the array From to the - directory To. If Leafname is - given then From should contain a single entry only; - Leafname gives the new leafname. - - - Mount(MountPoints, - [OpenDir, Quiet]) - Mount each directory in the list MountPoints. If - true, OpenDir causes each - directory to be opened once it is mounted. - - - - Unmount(MountPoints, - [Quiet]) - Unmount each directory in the list MountPoints. - - - - - - - - References - - - ROXThe ROX desktop, - - - - - RISC OSRISC OS, - - - - - GTK+GTK+ Toolkit, - - - - - GladeGlade - a User Interface Designer for GTK+ and GNOME, - - - - - libxmlThe XML C library for Gnome - - - - - GNOMEThe GNOME desktop, - - - - - DNDThe Drag and Drop protocol, - - - - - XDSThe X Direct Save protocol, - - - - - BaseDirThe freedesktop.org base directory system, - - - - - AVFSAVFS - A Virtual File System, - - - - - SOAPSimple Object Access Protocol (SOAP) 1.2 - - - - - ThumbsThumbnail Managing Standard (Version 0.5) - - - - - WallpaperWallpaper backdrop control application - - - - - SharedMIMEShared MIME-info Database (Version 0.16) - - - - - IconThemeThe freedesktop.org Icon Theme specification - - - - - - diff --git a/ROX-Filer/src/Docs/to_html.xsl b/ROX-Filer/src/Docs/to_html.xsl deleted file mode 100644 index e46ae89d..00000000 --- a/ROX-Filer/src/Docs/to_html.xsl +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - - - - - - <xsl:value-of select='/book/bookinfo/title'/> - - - - - - - - - - - - - - - - - `' - - - - - - -
    - - -
    - -
    - - -

    - - -
    - - - - - - - - - - - - - - [ - - - - - ] - - - -
    - -

    - - -

    -
    -
    - - - - - < - - > - - - - -
    diff --git a/ROX-Filer/src/Docs/to_html_alt.xsl b/ROX-Filer/src/Docs/to_html_alt.xsl deleted file mode 100644 index 01d1232c..00000000 --- a/ROX-Filer/src/Docs/to_html_alt.xsl +++ /dev/null @@ -1,89 +0,0 @@ - - - - - - - - - <xsl:value-of select='/book/bookinfo/title'/> - - - - - - - - - - - - - - - - - `' - - - - - - -
    - - -
    - -
    - - -

    - - -
    - - - - - - - - - - - - - - [ - - - - - ] - - - -
    - -

    - - -

    -
    -
    - - - - - < - - > - - - - -
    diff --git a/ROX-Filer/src/Docs/to_man.xsl b/ROX-Filer/src/Docs/to_man.xsl deleted file mode 100644 index 438d6c6d..00000000 --- a/ROX-Filer/src/Docs/to_man.xsl +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - - - - - - .TH - - - - " - - " " - - - - " "" - - - - - .SH NAME - - \- - - - - - - .SH SYNOPSIS - - - - - - - -.B - - - - - [ - - ] - ... - - - - .SH - - - - - -.PP - - - - - - - -.TP - - - - - - - - , - - - - \fB\fP - - - - - - - - - - - - - - - - - - - <> - - - - - , - - - - - the manual - - - - - - - \ No newline at end of file diff --git a/ROX-Filer/src/Makefile b/ROX-Filer/src/Makefile deleted file mode 100644 index 4f989cd2..00000000 --- a/ROX-Filer/src/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -# Note: this Makefile is NOT built from Makefile.in. The generated Makefile -# goes in the build directory. We just call that from here. -# Use AppRun --compile to create the build directory in the first place. - -BUILDDIR = ../build - -all: - cd ${BUILDDIR} && ${MAKE} - -# This ensures we get the header files for GTK 2.4 -with0launch: - 0launch --source --main=/ROX-Filer/build --wrapper='make -C' ../ROX-Filer-src.xml - -clean: - cd ${BUILDDIR} && ${MAKE} clean diff --git a/ROX-Filer/src/Makefile.in b/ROX-Filer/src/Makefile.in deleted file mode 100644 index 057eaaa3..00000000 --- a/ROX-Filer/src/Makefile.in +++ /dev/null @@ -1,71 +0,0 @@ -SHELL = @SHELL@ -srcdir = @srcdir@ -VPATH = @srcdir@ -PLATFORM_DIR = $(srcdir)/.. -CC = @CC@ -.SUFFIXES: -.SUFFIXES: .c .o - -PKG_CONFIG = @PKG_CONFIG@ -LIBS = @LIBS@ @LFS_LDFLAGS@ -#PROF = -fprofile-arcs -pg - -PKG_CONFIG_FLAGS= - -CFLAGS = -I. -I${srcdir} ${PROF} @CFLAGS@ @LFS_CFLAGS@ \ - `${PKG_CONFIG} ${PKG_CONFIG_FLAGS} --cflags gtk+-2.0 libxml-2.0 sm ice` -LDFLAGS = ${PROF} @LDFLAGS@ `${PKG_CONFIG} ${PKG_CONFIG_FLAGS} --libs gtk+-2.0 libxml-2.0 sm ice| sed 's/-lpangoxft-[^ ]*//'` ${LIBS} - -############ Things to change for different programs - -PROG = ROX-Filer - -SRCS = abox.c action.c appinfo.c appmenu.c bind.c bookmarks.c \ - bulk_rename.c cell_icon.c choices.c collection.c dir.c \ - diritem.c display.c dnd.c dropbox.c filer.c find.c fscache.c \ - gtksavebox.c \ - gui_support.c i18n.c icon.c infobox.c log.c main.c menu.c minibuffer.c\ - modechange.c mount.c options.c panel.c pinboard.c pixmaps.c \ - remote.c run.c sc.c session.c support.c \ - tasklist.c toolbar.c type.c usericons.c view_collection.c \ - view_details.c view_iface.c wrapped.c xml.c xtypes.c \ - xdgmime.c xdgmimeglob.c xdgmimeint.c xdgmimemagic.c xdgmimeparent.c xdgmimealias.c xdgmimecache.c - -OBJECTS = abox.o action.o appinfo.o appmenu.o bind.o bookmarks.o \ - bulk_rename.o cell_icon.o choices.o collection.o dir.o \ - diritem.o display.o dnd.o dropbox.o filer.o find.o fscache.o \ - gtksavebox.o \ - gui_support.o i18n.o icon.o infobox.o log.o main.o menu.o minibuffer.o\ - modechange.o mount.o options.o panel.o pinboard.o pixmaps.o \ - remote.o run.o sc.o session.o support.o \ - tasklist.o toolbar.o type.o usericons.o view_collection.o \ - view_details.o view_iface.o wrapped.o xml.o xtypes.o \ - xdgmime.o xdgmimeglob.o xdgmimeint.o xdgmimemagic.o xdgmimeparent.o xdgmimealias.o xdgmimecache.o - -############ Things to keep the same - -${PROG}: ${OBJECTS} - ${CC} -o "${PROG}" ${OBJECTS} ${LDFLAGS} - mv "${PROG}" "${PLATFORM_DIR}" - -(cd "${PLATFORM_DIR}" && \ - objcopy --only-keep-debug ROX-Filer ROX-Filer.dbg && \ - strip ROX-Filer && \ - objcopy --add-gnu-debuglink=ROX-Filer.dbg ROX-Filer) - -clean: - rm -f *.o Makefile.bak - -depend: - makedepend -- ${CFLAGS} -- ${SRCS} - -Makefile: Makefile.in config.status - ./config.status - -config.h: config.h.in - ./config.status - -config.status: configure - APP_DIR="$(srcdir)/.." $(srcdir)/configure - -configure: configure.in - cd $(srcdir) && autoconf diff --git a/ROX-Filer/src/abox.c b/ROX-Filer/src/abox.c deleted file mode 100644 index ee59c45d..00000000 --- a/ROX-Filer/src/abox.c +++ /dev/null @@ -1,689 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* abox.c - the dialog box widget used for filer operations. - * - * The actual code for specific operations is in action.c. - */ - -#include "config.h" - -#include - -#include "global.h" - -#include "main.h" -#include "abox.h" -#include "gui_support.h" -#include "filer.h" -#include "display.h" -#include "support.h" -#include "diritem.h" -#include "pixmaps.h" - -#define RESPONSE_QUIET 1 - -/* Static prototypes */ -static void abox_class_init(GObjectClass *gclass, gpointer data); -static void abox_init(GTypeInstance *object, gpointer gclass); -static gboolean abox_delete(GtkWidget *dialog, GdkEventAny *event); -static void response(GtkDialog *dialog, gint response_id); -static void abox_finalise(GObject *object); -static void shade(ABox *abox); - -GType abox_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (ABoxClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - (GClassInitFunc) abox_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(ABox), - 0, /* n_preallocs */ - (GInstanceInitFunc) abox_init - }; - - type = g_type_register_static(GTK_TYPE_DIALOG, - "ABox", &info, 0); - } - - return type; -} - -GtkWidget* abox_new(const gchar *title, gboolean quiet) -{ - GtkWidget *widget; - ABox *abox; - - widget = GTK_WIDGET(gtk_widget_new(abox_get_type(), NULL)); - abox = (ABox *) widget; - - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(abox->quiet), quiet); - - gtk_window_set_title(GTK_WINDOW(widget), title); - gtk_dialog_set_has_separator(GTK_DIALOG(widget), FALSE); - - return widget; -} - -static void abox_class_init(GObjectClass *gclass, gpointer data) -{ - GtkWidgetClass *widget = (GtkWidgetClass *) gclass; - GtkDialogClass *dialog = (GtkDialogClass *) gclass; - ABoxClass *abox = (ABoxClass *) gclass; - - widget->delete_event = abox_delete; - dialog->response = response; - abox->flag_toggled = NULL; - abox->abort_operation = NULL; - - g_signal_new("flag_toggled", G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(ABoxClass, flag_toggled), - NULL, NULL, g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, G_TYPE_INT); - - g_signal_new("abort_operation", G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET(ABoxClass, abort_operation), - NULL, NULL, g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - gclass->finalize = abox_finalise; -} - -static void abox_init(GTypeInstance *object, gpointer gclass) -{ - GtkWidget *frame, *text, *scrollbar, *button; - ABox *abox = ABOX(object); - GtkDialog *dialog = GTK_DIALOG(object); - int i; - - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - - abox->dir_label = gtk_label_new(_("")); - gtk_widget_set_size_request(abox->dir_label, 8, -1); - abox->results = NULL; - abox->entry = NULL; - abox->next_dir = NULL; - abox->next_timer = 0; - abox->question = FALSE; - gtk_misc_set_alignment(GTK_MISC(abox->dir_label), 0.5, 0.5); - gtk_box_pack_start(GTK_BOX(dialog->vbox), - abox->dir_label, FALSE, TRUE, 0); - - abox->log_hbox = gtk_hbox_new(FALSE, 0); - gtk_box_pack_start(GTK_BOX(dialog->vbox), - abox->log_hbox, TRUE, TRUE, 4); - - frame = gtk_frame_new(NULL); - gtk_box_pack_start_defaults(GTK_BOX(abox->log_hbox), frame); - - text = gtk_text_view_new(); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_container_add(GTK_CONTAINER(frame), text); - - gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); - abox->log = text; - - scrollbar = gtk_vscrollbar_new(NULL); - gtk_widget_set_scroll_adjustments(text, NULL, - gtk_range_get_adjustment(GTK_RANGE(scrollbar))); - gtk_text_buffer_create_tag( - gtk_text_view_get_buffer(GTK_TEXT_VIEW(abox->log)), - "error", "foreground", "red", - NULL); - gtk_text_buffer_create_tag( - gtk_text_view_get_buffer(GTK_TEXT_VIEW(abox->log)), - "question", "weight", "bold", - NULL); - gtk_text_view_set_editable(GTK_TEXT_VIEW(text), FALSE); - gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text), FALSE); - gtk_widget_set_size_request(text, 400, 100); - - gtk_box_pack_start(GTK_BOX(abox->log_hbox), scrollbar, FALSE, TRUE, 0); - - gtk_dialog_add_buttons(dialog, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_NO, GTK_RESPONSE_NO, - GTK_STOCK_YES, GTK_RESPONSE_YES, - NULL); - - abox->cmp_area = gtk_table_new(2, 6, FALSE); - gtk_box_pack_start(GTK_BOX(dialog->vbox), - abox->cmp_area, FALSE, FALSE, 2); - gtk_table_set_row_spacings(GTK_TABLE(abox->cmp_area), 2); - gtk_table_set_col_spacings(GTK_TABLE(abox->cmp_area), 2); - - for (i = 0; i < 2; i++) - { - - abox->cmp_icon[i] = gtk_image_new(); - gtk_table_attach(GTK_TABLE(abox->cmp_area), - abox->cmp_icon[i], - 1, 2, i, i + 1, - GTK_SHRINK, GTK_SHRINK, 4, 1); - abox->cmp_name[i] = gtk_label_new(""); - gtk_label_set_line_wrap(GTK_LABEL(abox->cmp_name[i]), TRUE); - gtk_misc_set_alignment(GTK_MISC(abox->cmp_name[i]), 0., 0.5); - gtk_table_attach(GTK_TABLE(abox->cmp_area), - abox->cmp_name[i], - 2, 3, i, i + 1, - GTK_EXPAND | GTK_FILL, GTK_SHRINK, 4, 1); - abox->cmp_size[i] = gtk_label_new(""); - gtk_table_attach(GTK_TABLE(abox->cmp_area), - abox->cmp_size[i], - 3, 4, i, i + 1, - GTK_SHRINK, GTK_SHRINK, 4, 1); - abox->cmp_date[i] = gtk_label_new(""); - gtk_table_attach(GTK_TABLE(abox->cmp_area), - abox->cmp_date[i], - 4, 5, i, i + 1, - GTK_SHRINK, GTK_SHRINK, 4, 1); - } - abox->cmp_arrow=gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_IN); - gtk_widget_set_size_request(abox->cmp_arrow, 32, 64); - gtk_table_attach(GTK_TABLE(abox->cmp_area), - abox->cmp_arrow, - 0, 1, 0, 2, - GTK_SHRINK, GTK_EXPAND | GTK_FILL, 1, 2); - - abox->progress=NULL; - - abox->flag_box = gtk_hbox_new(FALSE, 16); - gtk_box_pack_end(GTK_BOX(dialog->vbox), - abox->flag_box, FALSE, TRUE, 2); - - button = button_new_mixed(GTK_STOCK_GOTO_LAST, _("_Quiet")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(dialog, button, RESPONSE_QUIET); - gtk_dialog_set_default_response(dialog, RESPONSE_QUIET); - - gtk_widget_show_all(dialog->vbox); - gtk_widget_hide(abox->cmp_area); - - abox->quiet = abox_add_flag(abox, - _("Quiet"), _("Don't confirm every operation"), - 'Q', FALSE); - - shade(abox); -} - -static void flag_toggled(GtkToggleButton *toggle, ABox *abox) -{ - gint code; - - code = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toggle), - "abox-response")); - if (code == 'Q') - shade(abox); - - g_signal_emit_by_name(abox, "flag_toggled", code); - -} - -GtkWidget *abox_add_flag(ABox *abox, const gchar *label, const gchar *tip, - gint response, gboolean default_value) -{ - GtkWidget *check; - - check = gtk_check_button_new_with_label(label); - gtk_tooltips_set_tip(tooltips, check, tip, NULL); - g_object_set_data(G_OBJECT(check), "abox-response", - GINT_TO_POINTER(response)); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), default_value); - g_signal_connect(check, "toggled", G_CALLBACK(flag_toggled), abox); - gtk_box_pack_end(GTK_BOX(abox->flag_box), check, FALSE, TRUE, 0); - gtk_widget_show(check); - - return check; -} - -static void response(GtkDialog *dialog, gint response_id) -{ - ABox *abox = ABOX(dialog); - - if (response_id == GTK_RESPONSE_CANCEL) - g_signal_emit_by_name(abox, "abort_operation"); - else if (response_id == RESPONSE_QUIET) - { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(abox->quiet), - TRUE); - gtk_dialog_response(dialog, GTK_RESPONSE_YES); - } - else if (response_id == GTK_RESPONSE_YES || - response_id == GTK_RESPONSE_NO) - { - abox->question = FALSE; - shade(abox); - } -} - -/* Display the question. Unshade the Yes, No and entry box (if any). - * Will send a response signal when the user makes a choice. - */ -void abox_ask(ABox *abox, const gchar *question) -{ - g_return_if_fail(abox != NULL); - g_return_if_fail(question != NULL); - g_return_if_fail(IS_ABOX(abox)); - - abox_log(abox, question, "question"); - - abox->question = TRUE; - shade(abox); -} - -void abox_cancel_ask(ABox *abox) -{ - g_return_if_fail(abox != NULL); - g_return_if_fail(IS_ABOX(abox)); - - abox->question = FALSE; - shade(abox); -} - -void abox_log(ABox *abox, const gchar *message, const gchar *style) -{ - GtkTextIter end; - GtkTextBuffer *text_buffer; - GtkTextView *log = GTK_TEXT_VIEW(abox->log); - gchar *u8 = NULL; - - if (!g_utf8_validate(message, -1, NULL)) - u8 = to_utf8(message); - - text_buffer = gtk_text_view_get_buffer(log); - - gtk_text_buffer_get_end_iter(text_buffer, &end); - gtk_text_buffer_insert_with_tags_by_name(text_buffer, - &end, u8 ? u8 : message, -1, style, NULL); - gtk_text_view_scroll_to_mark( - log, - gtk_text_buffer_get_mark(text_buffer, "insert"), - 0.0, FALSE, 0, 0); - - g_free(u8); -} - -static void abox_finalise(GObject *object) -{ - GObjectClass *parent_class; - ABox *abox = ABOX(object); - - if (abox->next_dir) - { - null_g_free(&abox->next_dir); - g_source_remove(abox->next_timer); - } - - parent_class = gtk_type_class(GTK_TYPE_DIALOG); - - if (G_OBJECT_CLASS(parent_class)->finalize) - (*G_OBJECT_CLASS(parent_class)->finalize)(object); -} - -static gboolean show_next_dir(gpointer data) -{ - ABox *abox = (ABox *) data; - - g_return_val_if_fail(IS_ABOX(abox), FALSE); - - gtk_label_set_text(GTK_LABEL(abox->dir_label), abox->next_dir); - null_g_free(&abox->next_dir); - - return FALSE; -} - -/* Display this message in the current-object area. - * The display won't update too fast, even if you call this very often. - */ -void abox_set_current_object(ABox *abox, const gchar *message) -{ - g_return_if_fail(abox != NULL); - g_return_if_fail(message != NULL); - g_return_if_fail(IS_ABOX(abox)); - - /* If a string is already set then replace it, but assume the - * timer is already running... - */ - - if (abox->next_dir) - g_free(abox->next_dir); - else - { - gtk_label_set_text(GTK_LABEL(abox->dir_label), message); - abox->next_timer = g_timeout_add(500, show_next_dir, abox); - } - - abox->next_dir = g_strdup(message); -} - -static void lost_preview(GtkWidget *window, ABox *abox) -{ - abox->preview = NULL; -} - -static void select_row_callback(GtkTreeView *treeview, - GtkTreePath *path, - GtkTreeViewColumn *col, - ABox *abox) -{ - GtkTreeModel *model; - GtkTreeIter iter; - char *leaf, *dir; - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(abox->results)); - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_model_get(model, &iter, 0, &leaf, 1, &dir, -1); - - if (abox->preview) - { - if (strcmp(abox->preview->real_path, dir) == 0) - display_set_autoselect(abox->preview, leaf); - else - filer_change_to(abox->preview, dir, leaf); - goto out; - } - - abox->preview = filer_opendir(dir, NULL, NULL); - if (abox->preview) - { - display_set_autoselect(abox->preview, leaf); - g_signal_connect_object(abox->preview->window, "destroy", - G_CALLBACK(lost_preview), abox, 0); - } - -out: - g_free(dir); - g_free(leaf); -} - -/* Add a list-of-results area. You must use this before adding files - * with abox_add_filename(). - */ -void abox_add_results(ABox *abox) -{ - GtkTreeViewColumn *column; - GtkWidget *scroller, *frame; - GtkListStore *model; - GtkCellRenderer *cell_renderer; - - g_return_if_fail(abox != NULL); - g_return_if_fail(IS_ABOX(abox)); - g_return_if_fail(abox->results == NULL); - - scroller = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroller), - GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(abox)->vbox), - frame, TRUE, TRUE, 4); - - gtk_container_add(GTK_CONTAINER(frame), scroller); - - model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - abox->results = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); - g_object_unref(G_OBJECT(model)); - - cell_renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes( - _("Name"), cell_renderer, "text", 0, NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - gtk_tree_view_column_set_sizing(column, GTK_TREE_VIEW_COLUMN_GROW_ONLY); - gtk_tree_view_append_column(GTK_TREE_VIEW(abox->results), column); - gtk_tree_view_insert_column_with_attributes( - GTK_TREE_VIEW(abox->results), - 1, (gchar *) _("Directory"), cell_renderer, - "text", 1, NULL); - - gtk_container_add(GTK_CONTAINER(scroller), abox->results); - - gtk_widget_set_size_request(abox->results, 100, 100); - gtk_box_set_child_packing(GTK_BOX(GTK_DIALOG(abox)->vbox), - abox->log_hbox, FALSE, TRUE, 4, GTK_PACK_START); - - g_signal_connect(abox->results, "row-activated", - G_CALLBACK(select_row_callback), abox); - - gtk_widget_show_all(frame); -} - -void abox_add_filename(ABox *abox, const gchar *path) -{ - GtkTreeModel *model; - GtkTreeIter iter; - gchar *dir; - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(abox->results)); - - gtk_list_store_append(GTK_LIST_STORE(model), &iter); - - dir = g_path_get_dirname(path); - gtk_list_store_set(GTK_LIST_STORE(model), &iter, - 0, g_basename(path), - 1, dir, -1); - g_free(dir); -} - -/* Clear search results area */ -void abox_clear_results(ABox *abox) -{ - GtkTreeModel *model; - - g_return_if_fail(abox != NULL); - g_return_if_fail(IS_ABOX(abox)); - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(abox->results)); - - gtk_list_store_clear(GTK_LIST_STORE(model)); -} - -void abox_add_combo(ABox *abox, const gchar *tlabel, GList *presets, - const gchar *text, GtkWidget *help_button) -{ - GtkWidget *hbox, *label, *combo; - - g_return_if_fail(abox != NULL); - g_return_if_fail(IS_ABOX(abox)); - g_return_if_fail(abox->entry == NULL); - - hbox = gtk_hbox_new(FALSE, 0); - if (tlabel) - { - label = gtk_label_new(tlabel); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 4); - } - - combo = gtk_combo_new(); - gtk_combo_disable_activate(GTK_COMBO(combo)); - gtk_combo_set_use_arrows_always(GTK_COMBO(combo), TRUE); - gtk_combo_set_popdown_strings(GTK_COMBO(combo), presets); - abox->entry = GTK_COMBO(combo)->entry; - gtk_entry_set_activates_default(GTK_ENTRY(abox->entry), TRUE); - - gtk_entry_set_text(GTK_ENTRY(abox->entry), text); - gtk_box_pack_start(GTK_BOX(hbox), combo, TRUE, TRUE, 4); - - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(abox)->vbox), hbox, - FALSE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), help_button, FALSE, TRUE, 4); - - gtk_widget_show_all(hbox); - - shade(abox); -} - -void abox_add_entry(ABox *abox, const gchar *text, GtkWidget *help_button) -{ - GtkWidget *hbox, *label; - - g_return_if_fail(abox != NULL); - g_return_if_fail(IS_ABOX(abox)); - g_return_if_fail(abox->entry == NULL); - - hbox = gtk_hbox_new(FALSE, 0); - label = gtk_label_new(_("Expression:")); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 4); - abox->entry = gtk_entry_new(); - gtk_widget_set_name(abox->entry, "fixed-style"); - gtk_entry_set_text(GTK_ENTRY(abox->entry), text); - gtk_box_pack_start(GTK_BOX(hbox), abox->entry, TRUE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(abox)->vbox), - hbox, FALSE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(hbox), help_button, - FALSE, TRUE, 4); - - gtk_entry_set_activates_default(GTK_ENTRY(abox->entry), TRUE); - - gtk_widget_show_all(hbox); - - shade(abox); -} - -static void shade(ABox *abox) -{ - GtkDialog *dialog = (GtkDialog *) abox; - gboolean quiet, on = abox->question; - - quiet = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(abox->quiet)); - - gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_YES, on); - gtk_dialog_set_response_sensitive(dialog, GTK_RESPONSE_NO, on); - - if (on && !quiet) - gtk_dialog_set_response_sensitive(dialog, RESPONSE_QUIET, TRUE); - else - gtk_dialog_set_response_sensitive(dialog, - RESPONSE_QUIET, FALSE); - - /* Unsetting the focus means that set_default will put it in the - * right place... - */ - gtk_window_set_focus(GTK_WINDOW(abox), NULL); - /* Note: Gtk+-2.0.0 will segfault on Return if an insensitive - * widget is the default. - */ - if (quiet) - gtk_dialog_set_default_response(dialog, GTK_RESPONSE_YES); - else - gtk_dialog_set_default_response(dialog, RESPONSE_QUIET); - - if (abox->entry) - { - gtk_widget_set_sensitive(abox->entry, on); - if (on) - gtk_widget_grab_focus(abox->entry); - } -} - -static gboolean abox_delete(GtkWidget *dialog, GdkEventAny *event) -{ - g_signal_emit_by_name(dialog, "abort_operation"); - return TRUE; -} - -void abox_show_compare(ABox *abox, gboolean show) -{ - if (show) - gtk_widget_show(abox->cmp_area); - else - gtk_widget_hide(abox->cmp_area); -} - -void abox_set_file(ABox *abox, int i, const gchar *path) -{ - DirItem *item; - gchar *base; - - g_return_if_fail(i >= 0 && i < 2); - g_return_if_fail(IS_ABOX(abox)); - - if (!path || !path[0]) - { - gtk_widget_hide(abox->cmp_icon[i]); - gtk_widget_hide(abox->cmp_name[i]); - gtk_widget_hide(abox->cmp_size[i]); - gtk_widget_hide(abox->cmp_date[i]); - gtk_widget_hide(abox->cmp_arrow); - return; - } - - base = g_path_get_basename(path); - item = diritem_new(base); - g_free(base); - diritem_restat(path, item, NULL); - - gtk_image_set_from_pixbuf(GTK_IMAGE(abox->cmp_icon[i]), - di_image(item)->pixbuf); - gtk_widget_show(abox->cmp_icon[i]); - - gtk_label_set_text(GTK_LABEL(abox->cmp_name[i]), item->leafname); - gtk_widget_show(abox->cmp_name[i]); - gtk_widget_show(abox->cmp_arrow); - - if (item->lstat_errno) - { - gtk_label_set_text(GTK_LABEL(abox->cmp_size[i]), "Error"); - gtk_label_set_text(GTK_LABEL(abox->cmp_date[i]), - g_strerror(item->lstat_errno)); - } - else - { - gchar *str; - - gtk_label_set_text(GTK_LABEL(abox->cmp_size[i]), - format_size_aligned(item->size)); - - str = pretty_time(&item->mtime); - gtk_label_set_text(GTK_LABEL(abox->cmp_date[i]), str); - g_free(str); - } - - gtk_widget_show(abox->cmp_size[i]); - gtk_widget_show(abox->cmp_date[i]); - - diritem_free(item); -} - -void abox_set_percentage(ABox *abox, int per) -{ - if(!abox->progress) { - GtkDialog *dialog = GTK_DIALOG(abox); - - abox->progress=gtk_progress_bar_new (); - gtk_box_pack_start(GTK_BOX(dialog->vbox), - abox->progress, FALSE, FALSE, 2); - gtk_widget_show(abox->progress); - } - if(per<0 || per>100) { - gtk_widget_hide(abox->progress); - return; - } - gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(abox->progress), - per/100.); -} - diff --git a/ROX-Filer/src/abox.h b/ROX-Filer/src/abox.h deleted file mode 100644 index c0636c77..00000000 --- a/ROX-Filer/src/abox.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef __ABOX_H__ -#define __ABOX_H__ - -#include - -#define ABOX(obj) GTK_CHECK_CAST((obj), abox_get_type(), ABox) -#define ABOX_CLASS(klass) GTK_CHECK_CLASS_CAST((klass), \ - abox_get_type(), ABoxClass) -#define IS_ABOX(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), abox_get_type()) - -typedef struct _ABoxClass ABoxClass; -typedef struct _ABox ABox; - -struct _ABox -{ - GtkDialog parent_widget; - - GtkWidget *quiet; - GtkWidget *flag_box; /* HBox for flags */ - GtkWidget *dir_label; /* Shows what is being processed now */ - GtkWidget *log; /* The TextView for the messages */ - GtkWidget *log_hbox; - GtkWidget *results; /* List of filenames found */ - GtkWidget *entry; /* Plain entry, or part of combo */ - FilerWindow *preview; - - GtkWidget *cmp_area; /* Area where files are compared */ - GtkWidget *cmp_icon[2]; - GtkWidget *cmp_name[2]; - GtkWidget *cmp_size[2]; - GtkWidget *cmp_date[2]; - GtkWidget *cmp_arrow; - - GtkWidget *progress; /* Progress bar, NULL until set */ - - gchar *next_dir; /* NULL => no timer active */ - gint next_timer; - - gboolean question; /* Asking a question? */ -}; - -struct _ABoxClass -{ - GtkDialogClass parent_class; - - void (*flag_toggled)(ABox *abox, gint response); - void (*abort_operation)(ABox *abox); -}; - -GType abox_get_type (void); -GtkWidget* abox_new (const gchar *title, gboolean quiet); -GtkWidget *abox_add_flag (ABox *abox, - const gchar *label, - const gchar *tip, - gint response, - gboolean default_value); -void abox_ask (ABox *abox, - const gchar *question); -void abox_cancel_ask (ABox *abox); -void abox_set_current_object (ABox *abox, - const gchar *message); -void abox_log (ABox *abox, - const gchar *message, - const gchar *style); -void abox_add_results (ABox *abox); -void abox_add_filename (ABox *abox, - const gchar *pathname); -void abox_clear_results (ABox *abox); -void abox_add_combo (ABox *abox, - const gchar *tlabel, - GList *presets, - const gchar *text, - GtkWidget *help_button); -void abox_add_entry (ABox *abox, - const gchar *text, - GtkWidget *help_button); - -void abox_show_compare (ABox *abox, gboolean show); -void abox_set_file (ABox *abox, int file, - const gchar *path); -void abox_set_percentage (ABox *abox, int per); - -#endif /* __ABOX_H__ */ diff --git a/ROX-Filer/src/action.c b/ROX-Filer/src/action.c deleted file mode 100644 index c7d48c12..00000000 --- a/ROX-Filer/src/action.c +++ /dev/null @@ -1,2497 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* action.c - code for handling the filer action windows. - * These routines generally fork() and talk to us via pipes. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "global.h" - -#include "action.h" -#include "abox.h" -#include "string.h" -#include "support.h" -#include "gui_support.h" -#include "filer.h" -#include "display.h" -#include "main.h" -#include "options.h" -#include "modechange.h" -#include "find.h" -#include "dir.h" -#include "icon.h" -#include "mount.h" -#include "type.h" -#include "xtypes.h" -#include "log.h" - -#if defined(HAVE_GETXATTR) -# define ATTR_MAN_PAGE N_("See the attr(5) man page for full details.") -#elif defined(HAVE_ATTROPEN) -# define ATTR_MAN_PAGE N_("See the fsattr(5) man page for full details.") -#else -# define ATTR_MAN_PAGE N_("You do not appear to have OS support.") -#endif - -/* Parent->Child messages are one character each: - * - * Y/N Yes/No button clicked - * F Force deletion of non-writeable items - * Q Quiet toggled - * E Entry text changed - * W neWer toggled - */ - -typedef struct _GUIside GUIside; -typedef void ActionChild(gpointer data); -typedef void ForDirCB(const char *path, const char *dest_path); - -struct _GUIside -{ - ABox *abox; /* The action window widget */ - - int from_child; /* File descriptor */ - FILE *to_child; - int input_tag; /* gdk_input_add() */ - pid_t child; /* Process ID */ - int errors; /* Number of errors so far */ - gboolean show_info; /* For Disk Usage */ - - guchar **default_string; /* Changed when the entry changes */ - void (*entry_string_func)(GtkWidget *widget, - const guchar *string); - - int abort_attempts; -}; - -/* These don't need to be in a structure because we fork() before - * using them again. - */ -static gboolean mount_open_dir = FALSE; -static gboolean mount_mount = FALSE; /* (FALSE => unmount) */ -static int from_parent = 0; -static FILE *to_parent = NULL; -static gboolean quiet = FALSE; -static GString *message = NULL; -static const char *action_dest = NULL; -static const char *action_leaf = NULL; -static void (*action_do_func)(const char *source, const char *dest); -static double size_tally; /* For Disk Usage */ -static unsigned long dir_counter; /* For Disk Usage */ -static unsigned long file_counter; /* For Disk Usage */ - -static struct mode_change *mode_change = NULL; /* For Permissions */ -static FindCondition *find_condition = NULL; /* For Find */ -static MIME_type *type_change = NULL; - -/* Only used by child */ -static gboolean o_force = FALSE; -static gboolean o_brief = FALSE; -static gboolean o_recurse = FALSE; -static gboolean o_newer = FALSE; - -static Option o_action_copy, o_action_move, o_action_link; -static Option o_action_delete, o_action_mount; -static Option o_action_force, o_action_brief, o_action_recurse; -static Option o_action_newer; - -static Option o_action_mount_command; -static Option o_action_umount_command; -static Option o_action_eject_command; - -/* Whenever the text in these boxes is changed we store a copy of the new - * string to be used as the default next time. - */ -static guchar *last_chmod_string = NULL; -static guchar *last_find_string = NULL; -static guchar *last_settype_string = NULL; - -/* Set to one of the above before forking. This may change over a call to - * reply(). It is reset to NULL once the text is parsed. - */ -static guchar *new_entry_string = NULL; - -/* Static prototypes */ -static void send_done(void); -static void send_check_path(const gchar *path); -static void send_mount_path(const gchar *path); -static gboolean printf_send(const char *msg, ...); -static gboolean send_msg(void); -static gboolean send_error(void); -static gboolean send_dir(const char *dir); -static gboolean read_exact(int source, char *buffer, ssize_t len); -static void do_mount(const guchar *path, gboolean mount); -static gboolean printf_reply(int fd, gboolean ignore_quiet, - const char *msg, ...); -static gboolean remove_pinned_ok(GList *paths); - -/* SUPPORT */ - - -/* This is called whenever the user edits the entry box (if any) - send the - * new string. - */ -static void entry_changed(GtkEditable *entry, GUIside *gui_side) -{ - guchar *text; - - g_return_if_fail(gui_side->default_string != NULL); - - text = gtk_editable_get_chars(entry, 0, -1); - - if (gui_side->entry_string_func) - gui_side->entry_string_func(GTK_WIDGET(entry), text); - - g_free(*(gui_side->default_string)); - *(gui_side->default_string) = text; /* Gets text's ref */ - - if (!gui_side->to_child) - return; - - fputc('E', gui_side->to_child); - fputs(text, gui_side->to_child); - fputc('\n', gui_side->to_child); - fflush(gui_side->to_child); -} - -void show_condition_help(gpointer data) -{ - GtkWidget *help; - GtkWidget *text; - - help = gtk_dialog_new_with_buttons( - _("Find expression reference"), - NULL, 0, - GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, - NULL); - gtk_dialog_set_default_response(GTK_DIALOG(help), GTK_RESPONSE_CANCEL); - - text = gtk_label_new(NULL); - gtk_misc_set_padding(GTK_MISC(text), 2, 2); - gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(help)->vbox), text); - gtk_label_set_selectable(GTK_LABEL(text), TRUE); - gtk_label_set_markup(GTK_LABEL(text), _( -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor " -"(types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory).")); - - g_signal_connect(help, "response", - G_CALLBACK(gtk_widget_destroy), NULL); - - gtk_widget_show_all(help); -} - -static void show_chmod_help(gpointer data) -{ - GtkWidget *help; - GtkWidget *text; - - help = gtk_dialog_new_with_buttons( - _("Change permissions reference"), - NULL, 0, - GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, - NULL); - gtk_dialog_set_default_response(GTK_DIALOG(help), GTK_RESPONSE_CANCEL); - - text = gtk_label_new(NULL); - gtk_misc_set_padding(GTK_MISC(text), 2, 2); - gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(help)->vbox), text); - gtk_label_set_selectable(GTK_LABEL(text), TRUE); - gtk_label_set_markup(GTK_LABEL(text), _( -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set " -"exactly the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details.")); - - g_signal_connect(help, "response", - G_CALLBACK(gtk_widget_destroy), NULL); - - gtk_widget_show_all(help); -} - - -static void show_settype_help(gpointer data) -{ - GtkWidget *help; - GtkWidget *text; - - help = gtk_dialog_new_with_buttons( - _("Set type reference"), - NULL, 0, - GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, - NULL); - gtk_dialog_set_default_response(GTK_DIALOG(help), GTK_RESPONSE_CANCEL); - - text = gtk_label_new(NULL); - gtk_misc_set_padding(GTK_MISC(text), 2, 2); - gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(help)->vbox), text); - gtk_label_set_selectable(GTK_LABEL(text), TRUE); - gtk_label_set_markup(GTK_LABEL(text), _( -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n")); - - text = gtk_label_new(_(ATTR_MAN_PAGE)); - gtk_misc_set_padding(GTK_MISC(text), 2, 2); - gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(help)->vbox), text); - - g_signal_connect(help, "response", - G_CALLBACK(gtk_widget_destroy), NULL); - - gtk_widget_show_all(help); -} - -static void process_message(GUIside *gui_side, const gchar *buffer) -{ - ABox *abox = gui_side->abox; - - if (*buffer == '?') - abox_ask(abox, buffer + 1); - else if (*buffer == 's') - dir_check_this(buffer + 1); /* Update this item */ - else if (*buffer == '=') - abox_add_filename(abox, buffer + 1); - else if (*buffer == '#') - abox_clear_results(abox); - else if (*buffer == 'X') - { - filer_close_recursive(buffer + 1); - /* Let child know it's safe to continue... */ - fputc('X', gui_side->to_child); - fflush(gui_side->to_child); - } - else if (*buffer == 'm' || *buffer == 'M') - { - /* Mount / major changes to this path */ - if (*buffer == 'M') - { - mount_update(TRUE); - mount_user_mount(buffer + 1); - } - filer_check_mounted(buffer + 1); - } - else if (*buffer == '/') - abox_set_current_object(abox, buffer + 1); - else if (*buffer == 'o') - filer_opendir(buffer + 1, NULL, NULL); - else if (*buffer == '!') - { - gui_side->errors++; - abox_log(abox, buffer + 1, "error"); - } - else if (*buffer == '<') - abox_set_file(abox, 0, buffer+1); - else if (*buffer == '>') - { - abox_set_file(abox, 1, buffer+1); - abox_show_compare(abox, TRUE); - } - else if (*buffer == '%') - { - abox_set_percentage(abox, atoi(buffer+1)); - } - else - abox_log(abox, buffer + 1, NULL); -} - -/* Called when the child sends us a message */ -static void message_from_child(gpointer data, - gint source, - GdkInputCondition condition) -{ - char buf[5]; - GUIside *gui_side = (GUIside *) data; - ABox *abox = gui_side->abox; - GtkTextBuffer *text_buffer; - - text_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(abox->log)); - - if (read_exact(source, buf, 4)) - { - ssize_t message_len; - char *buffer; - - buf[4] = '\0'; - message_len = strtol(buf, NULL, 16); - buffer = g_malloc(message_len + 1); - if (message_len > 0 && read_exact(source, buffer, message_len)) - { - buffer[message_len] = '\0'; - process_message(gui_side, buffer); - g_free(buffer); - return; - } - g_printerr("Child died in the middle of a message.\n"); - } - - if (gui_side->abort_attempts) - abox_log(abox, _("\nProcess terminated.\n"), "error"); - - /* The child is dead */ - gui_side->child = 0; - - fclose(gui_side->to_child); - gui_side->to_child = NULL; - close(gui_side->from_child); - g_source_remove(gui_side->input_tag); - abox_cancel_ask(gui_side->abox); - - if (gui_side->errors) - { - guchar *report; - - if (gui_side->errors == 1) - report = g_strdup(_("There was one error.\n")); - else - report = g_strdup_printf(_("There were %d errors.\n"), - gui_side->errors); - - gtk_text_buffer_insert_at_cursor(text_buffer, report, -1); - - g_free(report); - } - else if (gui_side->show_info == FALSE) - gtk_widget_destroy(GTK_WIDGET(gui_side->abox)); -} - -/* Scans src_dir, calling cb(item, dest_path) for each item */ -static void for_dir_contents(ForDirCB *cb, - const char *src_dir, - const char *dest_path) -{ - DIR *d; - struct dirent *ent; - GList *list = NULL, *next; - - d = mc_opendir(src_dir); - if (!d) - { - /* Message displayed is "ERROR reading 'path': message" */ - printf_send("!%s '%s': %s\n", _("ERROR reading"), - src_dir, g_strerror(errno)); - return; - } - - send_dir(src_dir); - - while ((ent = mc_readdir(d))) - { - if (ent->d_name[0] == '.' && (ent->d_name[1] == '\0' - || (ent->d_name[1] == '.' && ent->d_name[2] == '\0'))) - continue; - list = g_list_prepend(list, g_strdup(make_path(src_dir, - ent->d_name))); - } - mc_closedir(d); - - for (next = list; next; next = next->next) - { - cb((char *) next->data, dest_path); - - g_free(next->data); - } - g_list_free(list); -} - -/* Read this many bytes into the buffer. TRUE on success. */ -static gboolean read_exact(int source, char *buffer, ssize_t len) -{ - while (len > 0) - { - ssize_t got; - got = read(source, buffer, len); - if (got < 1) - return FALSE; - len -= got; - buffer += got; - } - return TRUE; -} - -static void send_done(void) -{ - printf_send(_("'\nDone\n")); -} - -/* Notify the filer that this item has been updated */ -static void send_check_path(const gchar *path) -{ - printf_send("s%s", path); -} - -/* Notify the filer that this whole subtree has changed (eg, been unmounted) */ -static void send_mount_path(const gchar *path) -{ - printf_send("m%s", path); -} - -/* Send a message to the filer process. The first character indicates the - * type of the message. - */ -static gboolean printf_send(const char *msg, ...) -{ - va_list args; - gchar *tmp; - - va_start(args, msg); - tmp = g_strdup_vprintf(msg, args); - va_end(args); - - g_string_assign(message, tmp); - g_free(tmp); - - return send_msg(); -} - -/* Send 'message' to our parent process. TRUE on success. */ -static gboolean send_msg(void) -{ - char len_buffer[5]; - ssize_t len; - - g_return_val_if_fail(message->len < 0xffff, FALSE); - - sprintf(len_buffer, "%04" G_GSIZE_MODIFIER "x", message->len); - fwrite(len_buffer, 1, 4, to_parent); - len = fwrite(message->str, 1, message->len, to_parent); - fflush(to_parent); - return len == (ssize_t) message->len; -} - -/* Set the directory indicator at the top of the window */ -static gboolean send_dir(const char *dir) -{ - return printf_send("/%s", dir); -} - -static gboolean send_error(void) -{ - return printf_send("!%s: %s\n", _("ERROR"), g_strerror(errno)); -} - -static void response(GtkDialog *dialog, gint response, GUIside *gui_side) -{ - gchar code; - - if (!gui_side->to_child) - return; - - if (response == GTK_RESPONSE_YES) - code = 'Y'; - else if (response == GTK_RESPONSE_NO) - code = 'N'; - else - return; - - fputc(code, gui_side->to_child); - fflush(gui_side->to_child); - abox_show_compare(gui_side->abox, FALSE); -} - -static void flag_toggled(ABox *abox, gint flag, GUIside *gui_side) -{ - if (!gui_side->to_child) - return; - - fputc(flag, gui_side->to_child); - fflush(gui_side->to_child); -} - -static void read_new_entry_text(void) -{ - int len; - char c; - GString *new; - - new = g_string_new(NULL); - - for (;;) - { - len = read(from_parent, &c, 1); - if (len != 1) - { - fprintf(stderr, "read() error: %s\n", - g_strerror(errno)); - _exit(1); /* Parent died? */ - } - - if (c == '\n') - break; - g_string_append_c(new, c); - } - - g_free(new_entry_string); - new_entry_string = new->str; - g_string_free(new, FALSE); -} - -static void process_flag(char flag) -{ - switch (flag) - { - case 'Q': - quiet = !quiet; - break; - case 'F': - o_force = !o_force; - break; - case 'R': - o_recurse = !o_recurse; - break; - case 'B': - o_brief = !o_brief; - break; - case 'W': - o_newer = !o_newer; - break; - case 'E': - read_new_entry_text(); - break; - default: - printf_send("!ERROR: Bad message '%c'\n", flag); - break; - } -} - -/* If the parent has sent any flag toggles, read them */ -static void check_flags(void) -{ - fd_set set; - int got; - char retval; - struct timeval tv; - - FD_ZERO(&set); - - while (1) - { - FD_SET(from_parent, &set); - tv.tv_sec = 0; - tv.tv_usec = 0; - got = select(from_parent + 1, &set, NULL, NULL, &tv); - - if (got == -1) - g_error("select() failed: %s\n", g_strerror(errno)); - else if (!got) - return; - - got = read(from_parent, &retval, 1); - if (got != 1) - g_error("read() error: %s\n", g_strerror(errno)); - - process_flag(retval); - } -} - -/* Read until the user sends a reply. If ignore_quiet is TRUE then - * the user MUST click Yes or No, else treat quiet on as Yes. - * If the user needs prompting then does send_msg(). - */ -static gboolean printf_reply(int fd, gboolean ignore_quiet, - const char *msg, ...) -{ - ssize_t len; - char retval; - va_list args; - gchar *tmp; - - if (quiet && !ignore_quiet) - return TRUE; - - va_start(args, msg); - tmp = g_strdup_vprintf(msg, args); - va_end(args); - - g_string_assign(message, tmp); - g_free(tmp); - - send_msg(); - - while (1) - { - len = read(fd, &retval, 1); - if (len != 1) - { - fprintf(stderr, "read() error: %s\n", - g_strerror(errno)); - _exit(1); /* Parent died? */ - } - - switch (retval) - { - case 'Y': - printf_send("' %s\n", _("Yes")); - return TRUE; - case 'N': - printf_send("' %s\n", _("No")); - return FALSE; - default: - process_flag(retval); - break; - } - } -} - -static void abort_operation(GtkWidget *widget, gpointer data) -{ - GUIside *gui_side = (GUIside *) data; - - if (gui_side->child) - { - if (gui_side->abort_attempts == 0) - { - abox_log(ABOX(widget), - _("\nAsking child process to terminate...\n"), - "error"); - kill(-gui_side->child, SIGTERM); - } - else - { - abox_log(ABOX(widget), - _("\nTrying to KILL run-away process...\n"), - "error"); - kill(-gui_side->child, SIGKILL); - kill(-gui_side->child, SIGCONT); - } - gui_side->abort_attempts++; - } - else - gtk_widget_destroy(widget); -} - -static void destroy_action_window(GtkWidget *widget, gpointer data) -{ - GUIside *gui_side = (GUIside *) data; - - if (gui_side->child) - { - kill(-gui_side->child, SIGTERM); - fclose(gui_side->to_child); - close(gui_side->from_child); - g_source_remove(gui_side->input_tag); - } - - g_free(gui_side); - - one_less_window(); -} - -/* Create two pipes, fork() a child and return a pointer to a GUIside struct - * (NULL on failure). The child calls func(). - */ -static GUIside *start_action(GtkWidget *abox, ActionChild *func, gpointer data, - int force, int brief, int recurse, int newer) -{ - gboolean autoq; - int filedes[4]; /* 0 and 2 are for reading */ - GUIside *gui_side; - pid_t child; - struct sigaction act; - - if (pipe(filedes)) - { - report_error("pipe: %s", g_strerror(errno)); - gtk_widget_destroy(abox); - return NULL; - } - - if (pipe(filedes + 2)) - { - close(filedes[0]); - close(filedes[1]); - report_error("pipe: %s", g_strerror(errno)); - gtk_widget_destroy(abox); - return NULL; - } - - autoq = gtk_toggle_button_get_active( - GTK_TOGGLE_BUTTON(ABOX(abox)->quiet)); - - o_force = force; - o_brief = brief; - o_recurse = recurse; - o_newer = newer; - - child = fork(); - switch (child) - { - case -1: - report_error("fork: %s", g_strerror(errno)); - gtk_widget_destroy(abox); - return NULL; - case 0: - /* We are the child */ - - /* Create a new process group */ - setpgid(0, 0); - - quiet = autoq; - - dir_drop_all_notifies(); - - /* Reset the SIGCHLD handler */ - act.sa_handler = SIG_DFL; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - sigaction(SIGCHLD, &act, NULL); - - message = g_string_new(NULL); - close(filedes[0]); - close(filedes[3]); - to_parent = fdopen(filedes[1], "wb"); - from_parent = filedes[2]; - func(data); - send_dir(""); - _exit(0); - } - - /* We are the parent */ - close(filedes[1]); - close(filedes[2]); - gui_side = g_new(GUIside, 1); - gui_side->from_child = filedes[0]; - gui_side->to_child = fdopen(filedes[3], "wb"); - gui_side->child = child; - gui_side->errors = 0; - gui_side->show_info = FALSE; - gui_side->default_string = NULL; - gui_side->entry_string_func = NULL; - gui_side->abort_attempts = 0; - - gui_side->abox = ABOX(abox); - g_signal_connect(abox, "destroy", - G_CALLBACK(destroy_action_window), gui_side); - - g_signal_connect(abox, "response", G_CALLBACK(response), gui_side); - g_signal_connect(abox, "flag_toggled", - G_CALLBACK(flag_toggled), gui_side); - g_signal_connect(abox, "abort_operation", - G_CALLBACK(abort_operation), gui_side); - - gui_side->input_tag = gdk_input_add_full(gui_side->from_child, - GDK_INPUT_READ, - message_from_child, - gui_side, NULL); - - return gui_side; -} - -/* ACTIONS ON ONE ITEM */ - -/* These may call themselves recursively, or ask questions, etc */ - -/* Updates the global size_tally, file_counter and dir_counter */ -static void do_usage(const char *src_path, const char *unused) -{ - struct stat info; - - check_flags(); - - if (mc_lstat(src_path, &info)) - { - printf_send("'%s:\n", src_path); - send_error(); - } - else if (S_ISREG(info.st_mode) || S_ISLNK(info.st_mode)) - { - file_counter++; - size_tally += info.st_size; - } - else if (S_ISDIR(info.st_mode)) - { - dir_counter++; - if (printf_reply(from_parent, FALSE, - _("?Count contents of %s?"), src_path)) - { - char *safe_path; - safe_path = g_strdup(src_path); - for_dir_contents(do_usage, safe_path, safe_path); - g_free(safe_path); - } - } - else - file_counter++; -} - -/* dest_path is the dir containing src_path */ -static void do_delete(const char *src_path, const char *unused) -{ - struct stat info; - gboolean write_prot; - char *safe_path; - - check_flags(); - - if (mc_lstat(src_path, &info)) - { - send_error(); - return; - } - - write_prot = S_ISLNK(info.st_mode) ? FALSE - : access(src_path, W_OK) != 0; - if (write_prot || !quiet) - { - int res; - - printf_send("<%s", src_path); - printf_send(">"); - res=printf_reply(from_parent, write_prot && !o_force, - _("?Delete %s'%s'?"), - write_prot ? _("WRITE-PROTECTED ") : "", - src_path); - printf_send("<"); - if (!res) - return; - } - else if (!o_brief) - printf_send(_("'Deleting '%s'\n"), src_path); - - safe_path = g_strdup(src_path); - - if (S_ISDIR(info.st_mode)) - { - for_dir_contents(do_delete, safe_path, safe_path); - if (rmdir(safe_path)) - { - g_free(safe_path); - send_error(); - return; - } - printf_send(_("'Directory '%s' deleted\n"), safe_path); - send_mount_path(safe_path); - } - else if (unlink(src_path)) - send_error(); - else - { - send_check_path(safe_path); - if (strcmp(g_basename(safe_path), ".DirIcon") == 0) - { - gchar *dir; - dir = g_path_get_dirname(safe_path); - send_check_path(dir); - g_free(dir); - } - } - - g_free(safe_path); -} - -static void do_eject(const char *path) -{ - const char *argv[]={"sh", "-c", NULL, NULL}; - char *err; - - check_flags(); - - if (!quiet) - { - int res; - printf_send("<%s", path); - printf_send(">"); - res=printf_reply(from_parent, !o_force, - _("?Eject '%s'?"), - path); - printf_send("<"); - if (!res) - return; - } - else if (!o_brief) - printf_send(_("'Eject '%s'\n"), path); - - /* Need to close all sub-directories now, or we - * can't unmount if dnotify is used. - */ - { - char c = '?'; - printf_send("X%s", path); - /* Wait until it's safe... */ - read(from_parent, &c, 1); - g_return_if_fail(c == 'X'); - } - - argv[2] = build_command_with_path(o_action_eject_command.value, - path); - err = fork_exec_wait((const char**)argv); - g_free((gchar *) argv[2]); - if (err) - { - printf_send(_("!%s\neject failed\n"), err); - g_free(err); - } - - printf_send("M%s", path); - -} - -/* path is the item to check. If is is a directory then we may recurse - * (unless prune is used). - */ -static void do_find(const char *path, const char *unused) -{ - FindInfo info; - - check_flags(); - - if (!quiet) - { - if (!printf_reply(from_parent, FALSE, _("?Check '%s'?"), path)) - return; - } - - for (;;) - { - if (new_entry_string) - { - find_condition_free(find_condition); - find_condition = find_compile(new_entry_string); - null_g_free(&new_entry_string); - } - - if (find_condition) - break; - - printf_send(_("!Invalid find condition - " - "change it and try again\n")); - if (!printf_reply(from_parent, TRUE, - _("?Check '%s'?"), path)) - return; - } - - if (mc_lstat(path, &info.stats)) - { - send_error(); - printf_send(_("'(while checking '%s')\n"), path); - return; - } - - info.fullpath = path; - time(&info.now); /* XXX: Not for each check! */ - - info.leaf = g_basename(path); - info.prune = FALSE; - if (find_test_condition(find_condition, &info)) - printf_send("=%s", path); - - if (S_ISDIR(info.stats.st_mode) && !info.prune) - { - char *safe_path; - safe_path = g_strdup(path); - for_dir_contents(do_find, safe_path, safe_path); - g_free(safe_path); - } -} - -/* Like mode_compile(), but ignores spaces and bracketed bits */ -static struct mode_change *nice_mode_compile(const char *mode_string, - unsigned int masked_ops) -{ - GString *new; - int brackets = 0; - struct mode_change *retval = NULL; - - new = g_string_new(NULL); - - for (; *mode_string; mode_string++) - { - if (*mode_string == '(') - brackets++; - if (*mode_string == ')') - { - brackets--; - if (brackets < 0) - break; - continue; - } - - if (brackets == 0 && *mode_string != ' ') - g_string_append_c(new, *mode_string); - } - - if (brackets == 0) - retval = mode_compile(new->str, masked_ops); - g_string_free(new, TRUE); - return retval; -} - -static void do_chmod(const char *path, const char *unused) -{ - struct stat info; - mode_t new_mode; - - check_flags(); - - if (mc_lstat(path, &info)) - { - send_error(); - return; - } - if (S_ISLNK(info.st_mode)) - return; - - if (!quiet) - { - int res; - printf_send("<%s", path); - printf_send(">"); - res=printf_reply(from_parent, FALSE, - _("?Change permissions of '%s'?"), path); - printf_send("<"); - if (!res) - return; - } - else if (!o_brief) - printf_send(_("'Changing permissions of '%s'\n"), path); - - for (;;) - { - if (new_entry_string) - { - if (mode_change) - mode_free(mode_change); - mode_change = nice_mode_compile(new_entry_string, - MODE_MASK_ALL); - null_g_free(&new_entry_string); - } - - if (mode_change) - break; - - printf_send( - _("!Invalid mode command - change it and try again\n")); - if (!printf_reply(from_parent, TRUE, - _("?Change permissions of '%s'?"), path)) - return; - } - - if (mc_lstat(path, &info)) - { - send_error(); - return; - } - if (S_ISLNK(info.st_mode)) - return; - - new_mode = mode_adjust(info.st_mode, mode_change); - if (chmod(path, new_mode)) - { - send_error(); - return; - } - - send_check_path(path); - - if (S_ISDIR(info.st_mode)) - { - send_mount_path(path); - - if (o_recurse) - { - guchar *safe_path; - safe_path = g_strdup(path); - for_dir_contents(do_chmod, safe_path, safe_path); - g_free(safe_path); - } - } -} - -static void do_settype(const char *path, const char *unused) -{ - struct stat info; - - check_flags(); - - if (mc_lstat(path, &info)) - { - send_error(); - return; - } - if (S_ISLNK(info.st_mode)) - return; - - if (!quiet) - { - int res; - printf_send("<%s", path); - printf_send(">"); - if (S_ISDIR(info.st_mode)) - res=printf_reply(from_parent, FALSE, - _("?Change contents of '%s'?"), path); - else - res=printf_reply(from_parent, FALSE, - _("?Change type of '%s'?"), path); - printf_send("<"); - if (!res) - return; - } - - for (;;) - { - if (new_entry_string) - { - type_change = mime_type_lookup(new_entry_string); - null_g_free(&new_entry_string); - } - - if (type_change) - break; - - printf_send(_("!Invalid type - " - "change it and try again\n")); - if (!printf_reply(from_parent, TRUE, - _("?Change type of '%s'?"), path)) - return; - } - - if (mc_lstat(path, &info)) - { - send_error(); - return; - } - if (S_ISLNK(info.st_mode)) - return; - - if (S_ISREG(info.st_mode)) - { - if (!o_brief) - { - const char *comment; - - comment = mime_type_comment(type_change); - printf_send(_("'Changing type of '%s' to '%s'\n"), path, - comment); - } - - if (xtype_set(path, type_change)) - { - send_error(); - return; - } - - send_check_path(path); - } - else if (S_ISDIR(info.st_mode)) - { - if (o_recurse) - { - guchar *safe_path; - safe_path = g_strdup(path); - for_dir_contents(do_settype, safe_path, unused); - g_free(safe_path); - } - else if(!o_brief) - { - printf_send(_("'Not changing type of directory '%s'\n"), - path); - } - } - else if(!o_brief) - { - printf_send(_("'Non-regular file '%s' not changed\n"), - path); - } -} - -/* We want to copy 'object' into directory 'dir'. If 'action_leaf' - * is set then that is the new leafname, otherwise the leafname stays - * the same. - */ -static const char *make_dest_path(const char *object, const char *dir) -{ - const char *leaf; - - if (action_leaf) - leaf = action_leaf; - else - { - leaf = strrchr(object, '/'); - if (!leaf) - leaf = object; /* Error? */ - else - leaf++; - } - - return make_path(dir, leaf); -} - -/* If action_leaf is not NULL it specifies the new leaf name */ -static void do_copy2(const char *path, const char *dest) -{ - const char *dest_path; - struct stat info; - struct stat dest_info; - - check_flags(); - - dest_path = make_dest_path(path, dest); - - if (mc_lstat(path, &info)) - { - send_error(); - return; - } - - if (mc_lstat(dest_path, &dest_info) == 0) - { - int err; - gboolean merge; - - merge = S_ISDIR(info.st_mode) && S_ISDIR(dest_info.st_mode); - - if (!merge && o_newer && info.st_mtime > dest_info.st_mtime) - { - /* Newer; keep going */ - } - else - { - printf_send("<%s", path); - printf_send(">%s", dest_path); - if (!printf_reply(from_parent, merge, - _("?'%s' already exists - %s?"), - dest_path, - merge ? _("merge contents") - : _("overwrite"))) - return; - } - - if (!merge) - { - if (S_ISDIR(dest_info.st_mode)) - err = rmdir(dest_path); - else - err = unlink(dest_path); - - if (err) - { - send_error(); - if (errno != ENOENT) - return; - printf_send(_("'Trying copy anyway...\n")); - } - } - } - else if (!quiet) - { - printf_send("<%s", path); - printf_send(">"); - if (!printf_reply(from_parent, FALSE, - _("?Copy %s as %s?"), path, dest_path)) - return; - } - else if (!o_brief || S_ISDIR(info.st_mode)) - printf_send(_("'Copying %s as %s\n"), path, dest_path); - - if (S_ISDIR(info.st_mode)) - { - mode_t mode = info.st_mode; - char *safe_path, *safe_dest; - struct stat dest_info; - gboolean exists; - - safe_path = g_strdup(path); - safe_dest = g_strdup(dest_path); - - exists = !mc_lstat(dest_path, &dest_info); - - if (exists && !S_ISDIR(dest_info.st_mode)) - printf_send(_("!ERROR: Destination already exists, " - "but is not a directory\n")); - else if (exists == FALSE && mkdir(dest_path, 0700 | mode)) - send_error(); - else - { - if (!exists) - /* (just been created then) */ - send_check_path(dest_path); - - action_leaf = NULL; - for_dir_contents(do_copy2, safe_path, safe_dest); - /* Note: dest_path now invalid... */ - - if (!exists) - { - struct utimbuf utb; - - /* We may have created the directory with - * more permissions than the source so that - * we could write to it... change it back now. - */ - if (chmod(safe_dest, mode)) - { - /* Some filesystems don't support - * SetGID and SetUID bits. Ignore - * these errors. - */ - if (errno != EPERM) - send_error(); - } - - /* Also, try to preserve the timestamps */ - utb.actime = info.st_atime; - utb.modtime = info.st_mtime; - - utime(safe_dest, &utb); - } - } - - g_free(safe_path); - g_free(safe_dest); - } - else if (S_ISLNK(info.st_mode)) - { - char *target; - - /* Not all versions of cp(1) can make symlinks, - * so we special-case it. - */ - - target = readlink_dup(path); - if (target) - { - if (symlink(target, dest_path)) - send_error(); - else - send_check_path(dest_path); - - g_free(target); - } - else - send_error(); - } - else - { - guchar *error; - - error = copy_file(path, dest_path); - - if (error) - { - printf_send(_("!%s\nFailed to copy '%s'\n"), - error, path); - g_free(error); - } - else - send_check_path(dest_path); - } -} - -/* If action_leaf is not NULL it specifies the new leaf name */ -static void do_move2(const char *path, const char *dest) -{ - const char *dest_path; - const char *argv[] = {"mv", "-f", NULL, NULL, NULL}; - struct stat info2; - gboolean is_dir; - char *err; - - check_flags(); - - dest_path = make_dest_path(path, dest); - - is_dir = mc_lstat(path, &info2) == 0 && S_ISDIR(info2.st_mode); - - if (access(dest_path, F_OK) == 0) - { - struct stat info; - int err; - - if (mc_lstat(dest_path, &info)) - { - send_error(); - return; - } - - if (!is_dir && o_newer && info2.st_mtime > info.st_mtime) - { - /* Newer; keep going */ - } - else - { - printf_send("<%s", path); - printf_send(">%s", dest_path); - if (!printf_reply(from_parent, TRUE, - _("?'%s' already exists - overwrite?"), - dest_path)) - return; - } - - if (S_ISDIR(info.st_mode)) - err = rmdir(dest_path); - else - err = unlink(dest_path); - - if (err) - { - send_error(); - if (errno != ENOENT) - return; - printf_send(_("'Trying move anyway...\n")); - } - } - else if (!quiet) - { - printf_send("<%s", path); - printf_send(">"); - if (!printf_reply(from_parent, FALSE, - _("?Move %s as %s?"), path, dest_path)) - return; - } - else if (!o_brief) - printf_send(_("'Moving %s as %s\n"), path, dest_path); - - argv[2] = path; - argv[3] = dest_path; - - err = fork_exec_wait(argv); - if (err) - { - printf_send(_("!%s\nFailed to move %s as %s\n"), - err, path, dest_path); - g_free(err); - } - else - { - send_check_path(dest_path); - - if (is_dir) - send_mount_path(path); - else - send_check_path(path); - } -} - -/* Copy path to dest. - * Check that path not copied into itself. - */ -static void do_copy(const char *path, const char *dest) -{ - if (is_sub_dir(make_dest_path(path, dest), path)) - printf_send(_("!ERROR: Can't copy object into itself\n")); - else - { - do_copy2(path, dest); - send_check_path(dest); - } -} - -/* Move path to dest. - * Check that path not moved into itself. - */ -static void do_move(const char *path, const char *dest) -{ - if (is_sub_dir(make_dest_path(path, dest), path)) - printf_send( - _("!ERROR: Can't move/rename object into itself\n")); - else - { - do_move2(path, dest); - send_check_path(dest); - } -} - -/* Common code for do_link_relative() and do_link_absolute(). */ -static void do_link(const char *path, const char *dest_path) -{ - if (quiet) - printf_send(_("'Linking %s as %s\n"), path, dest_path); - else { - printf_send("<%s", path); - printf_send(">"); - if (!printf_reply(from_parent, FALSE, - _("?Link %s as %s?"), path, dest_path)) - return; - } - - if (symlink(path, dest_path)) - send_error(); - else - send_check_path(dest_path); -} - -static void do_link_relative(const char *path, const char *dest) -{ - char *rel_path; - const char *dest_path; - - dest_path = make_dest_path(path, dest); - - check_flags(); - - rel_path = get_relative_path(dest_path, path); - do_link(rel_path, dest_path); - g_free(rel_path); -} - -static void do_link_absolute(const char *path, const char *dest) -{ - check_flags(); - do_link(path, make_dest_path(path, dest)); -} - -/* Mount/umount this item (depending on 'mount') */ -static void do_mount(const guchar *path, gboolean mount) -{ - const char *argv[] = {"sh", "-c", NULL, NULL}; - char *err; - - check_flags(); - - argv[2] = build_command_with_path(mount ? o_action_mount_command.value - : o_action_umount_command.value, - path); - - if (quiet) - printf_send(mount ? _("'Mounting %s\n") - : _("'Unmounting %s\n"), - path); - else if (!printf_reply(from_parent, FALSE, - mount ? _("?Mount %s?") - : _("?Unmount %s?"), - path)) - return; - - if (!mount) - { - char c = '?'; - /* Need to close all sub-directories now, or we - * can't unmount if dnotify is used. - */ - printf_send("X%s", path); - /* Wait until it's safe... */ - read(from_parent, &c, 1); - g_return_if_fail(c == 'X'); - } - - err = fork_exec_wait(argv); - g_free((gchar *) argv[2]); - if (err) - { - printf_send(mount ? - _("!%s\nMount failed\n") : - _("!%s\nUnmount failed\n"), err); - g_free(err); - - /* Mount may have worked even on error, eg if we try to mount - * a read-only disk read/write, it gets mounted read-only - * with an error. - */ - if (mount && mount_is_mounted(path, NULL, NULL)) - printf_send(_("'(seems to be mounted now anyway)\n")); - else - return; - } - - printf_send("M%s", path); - if (mount && mount_open_dir) - printf_send("o%s", path); -} - -/* CHILD MAIN LOOPS */ - -/* After forking, the child calls one of these functions */ - -/* We use a double for total size in order to count beyond 4Gb */ -static void usage_cb(gpointer data) -{ - GList *paths = (GList *) data; - double total_size = 0; - int n, i, per; - - n=g_list_length(paths); - dir_counter = file_counter = 0; - - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - - send_dir(path); - - size_tally = 0; - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - do_usage(path, NULL); - - printf_send("'%s: %s\n", - g_basename(path), - format_double_size(size_tally)); - total_size += size_tally; - } - printf_send("%%-1"); - - g_string_printf(message, _("'\nTotal: %s ("), - format_double_size(total_size)); - - if (file_counter) - g_string_append_printf(message, - "%ld %s%s", file_counter, - file_counter == 1 ? _("file") : _("files"), - dir_counter ? ", " : ")\n"); - - if (file_counter == 0 && dir_counter == 0) - g_string_append(message, _("no directories)\n")); - else if (dir_counter) - g_string_append_printf(message, - "%ld %s)\n", dir_counter, - dir_counter == 1 ? _("directory") - : _("directories")); - - send_msg(); -} - -#ifdef DO_MOUNT_POINTS -static void mount_cb(gpointer data) -{ - GList *paths = (GList *) data; - gboolean mount_points = FALSE; - int n, i, per; - - n=g_list_length(paths); - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - guchar *target; - - target = pathdup(path); - if (!target) - target = path; - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - if (mount_is_mounted(target, NULL, NULL) || - g_hash_table_lookup(fstab_mounts, target)) - { - mount_points = TRUE; - do_mount(target, mount_mount); /* Mount */ - } - - if (target != path) - g_free(target); - } - - if (mount_points) - send_done(); - else - printf_send(_("!No mount points selected!\n")); -} -#endif - -/* (use g_dirname() instead?) */ -static guchar *dirname(guchar *path) -{ - guchar *slash; - - slash = strrchr(path, '/'); - g_return_val_if_fail(slash != NULL, g_strdup(path)); - - if (slash != path) - return g_strndup(path, slash - path); - return g_strdup("/"); -} - -static void delete_cb(gpointer data) -{ - GList *paths = (GList *) data; - int n, i, per; - - n=g_list_length(paths); - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - guchar *dir; - - dir = dirname(path); - send_dir(dir); - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - do_delete(path, dir); - - g_free(dir); - } - - send_done(); -} - -static void eject_cb(gpointer data) -{ - GList *paths = (GList *) data; - int n, i, per; - - n=g_list_length(paths); - - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - send_dir(path); - - do_eject(path); - } - - send_done(); -} - -static void find_cb(gpointer data) -{ - GList *all_paths = (GList *) data; - GList *paths; - - while (1) - { - for (paths = all_paths; paths; paths = paths->next) - { - guchar *path = (guchar *) paths->data; - - send_dir(path); - - do_find(path, NULL); - } - - if (!printf_reply(from_parent, TRUE, - _("?Another search?"))) - break; - printf_send("#"); - } - - send_done(); -} - -static void chmod_cb(gpointer data) -{ - GList *paths = (GList *) data; - int n, i, per; - - n=g_list_length(paths); - - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - struct stat info; - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - send_dir(path); - - if (mc_stat(path, &info) != 0) - send_error(); - else if (S_ISLNK(info.st_mode)) - printf_send(_("!'%s' is a symbolic link\n"), - g_basename(path)); - else - do_chmod(path, NULL); - } - - send_done(); -} - -static void settype_cb(gpointer data) -{ - GList *paths = (GList *) data; - int n, i, per; - - n=g_list_length(paths); - - for (i=0; paths; paths = paths->next, i++) - { - guchar *path = (guchar *) paths->data; - struct stat info; - - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - send_dir(path); - - if (mc_stat(path, &info) != 0) - send_error(); - else if (S_ISLNK(info.st_mode)) - printf_send(_("!'%s' is a symbolic link\n"), - g_basename(path)); - else - do_settype(path, NULL); - } - - send_done(); -} - -static void list_cb(gpointer data) -{ - GList *paths = (GList *) data; - int n, i, per; - - n=g_list_length(paths); - - for (i=0; paths; paths = paths->next, i++) - { - if(n>1 && i>0) - { - per=100*i/n; - printf_send("%%%d", per); - } - send_dir((char *) paths->data); - - action_do_func((char *) paths->data, action_dest); - } - - send_done(); -} - -/* EXTERNAL INTERFACE */ - -void action_find(GList *paths) -{ - GUIside *gui_side; - GtkWidget *abox; - - if (!paths) - { - report_error(_("You need to select some items " - "to search through")); - return; - } - - if (!last_find_string) - last_find_string = g_strdup("'core'"); - - new_entry_string = last_find_string; - - abox = abox_new(_("Find"), FALSE); - gui_side = start_action(abox, find_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - abox_add_results(ABOX(abox)); - - gui_side->default_string = &last_find_string; - abox_add_entry(ABOX(abox), last_find_string, - new_help_button(show_condition_help, NULL)); - g_signal_connect(ABOX(abox)->entry, "changed", - G_CALLBACK(entry_changed), gui_side); - set_find_string_colour(ABOX(abox)->entry, last_find_string); - - gui_side->show_info = TRUE; - gui_side->entry_string_func = set_find_string_colour; - - number_of_windows++; - gtk_widget_show(abox); -} - -/* Count disk space used by selected items */ -void action_usage(GList *paths) -{ - GUIside *gui_side; - GtkWidget *abox; - - if (!paths) - { - report_error(_("You need to select some items to count")); - return; - } - - abox = abox_new(_("Disk Usage"), TRUE); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - - gui_side = start_action(abox, usage_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - gui_side->show_info = TRUE; - - number_of_windows++; - - gtk_widget_show(abox); -} - -/* Mount/unmount listed items (paths). - * Free the list after this function returns. - * If open_dir is TRUE and the dir is successfully mounted, open it. - * quiet can be -1 for default. - */ -void action_mount(GList *paths, gboolean open_dir, gboolean mount, int quiet) -{ -#ifdef DO_MOUNT_POINTS - GUIside *gui_side; - GtkWidget *abox; - - if (quiet == -1) - quiet = o_action_mount.int_value; - - mount_open_dir = open_dir; - mount_mount = mount; - - abox = abox_new(_("Mount / Unmount"), quiet); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, mount_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - log_info_paths("Mount", paths, NULL); - - number_of_windows++; - gtk_widget_show(abox); -#else - report_error( - _("ROX-Filer does not yet support mount points on your " - "system. Sorry.")); -#endif /* DO_MOUNT_POINTS */ -} - -/* Delete these paths */ -void action_delete(GList *paths) -{ - GUIside *gui_side; - GtkWidget *abox; - - if (!remove_pinned_ok(paths)) - return; - - abox = abox_new(_("Delete"), o_action_delete.int_value); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, delete_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - abox_add_flag(ABOX(abox), - _("Force"), _("Don't confirm deletion of non-writeable items"), - 'F', o_action_force.int_value); - abox_add_flag(ABOX(abox), - _("Brief"), _("Only log directories being deleted"), - 'B', o_action_brief.int_value); - - log_info_paths("Delete", paths, NULL); - - number_of_windows++; - gtk_widget_show(abox); -} - -/* Change the permissions of the selected items */ -void action_chmod(GList *paths, gboolean force_recurse, const char *action) -{ - GtkWidget *abox; - GUIside *gui_side; - static GList *presets = NULL; - gboolean recurse = force_recurse || o_action_recurse.int_value; - - if (!paths) - { - report_error(_("You need to select the items " - "whose permissions you want to change")); - return; - } - - if (!presets) - { - presets = g_list_append(presets, (gchar *) - _("a+x (Make executable/searchable)")); - presets = g_list_append(presets, (gchar *) - _("a-x (Make non-executable/non-searchable)")); - presets = g_list_append(presets, (gchar *) - _("u+rw (Give owner read+write)")); - presets = g_list_append(presets, (gchar *) - _("go-rwx (Private - owner access only)")); - presets = g_list_append(presets, (gchar *) - _("go=u-w (Public access, not write)")); - } - - if (!last_chmod_string) - last_chmod_string = g_strdup((guchar *) presets->data); - - if (action) - new_entry_string = g_strdup(action); - else - new_entry_string = g_strdup(last_chmod_string); - - abox = abox_new(_("Permissions"), FALSE); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, chmod_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - recurse, - o_action_newer.int_value); - - if (!gui_side) - goto out; - - abox_add_flag(ABOX(abox), - _("Brief"), _("Don't list processed files"), - 'B', o_action_brief.int_value); - abox_add_flag(ABOX(abox), - _("Recurse"), _("Also change contents of subdirectories"), - 'R', recurse); - - gui_side->default_string = &last_chmod_string; - abox_add_combo(ABOX(abox), _("Command:"), presets, new_entry_string, - new_help_button(show_chmod_help, NULL)); - - g_signal_connect(ABOX(abox)->entry, "changed", - G_CALLBACK(entry_changed), gui_side); -#if 0 - g_signal_connect_swapped(gui_side->entry, "activate", - G_CALLBACK(gtk_button_clicked), - gui_side->yes); -#endif - - log_info_paths("Change permissions", paths, NULL); - - number_of_windows++; - gtk_widget_show(abox); - -out: - null_g_free(&new_entry_string); -} - -/* Set the MIME type of the selected items */ -void action_settype(GList *paths, gboolean force_recurse, const char *oldtype) -{ - GtkWidget *abox; - GUIside *gui_side; - GList *presets = NULL; - gboolean recurse = force_recurse || o_action_recurse.int_value; - - if (!paths) - { - report_error(_("You need to select the items " - "whose type you want to change")); - return; - } - - if (!last_settype_string) - last_settype_string = g_strdup("text/plain"); - - if (oldtype) - new_entry_string = g_strdup(oldtype); - else - new_entry_string = g_strdup(last_settype_string); - - abox = abox_new(_("Set type"), FALSE); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, settype_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - recurse, - o_action_newer.int_value); - - if (!gui_side) - goto out; - - abox_add_flag(ABOX(abox), - _("Brief"), _("Don't list processed files"), - 'B', o_action_brief.int_value); - abox_add_flag(ABOX(abox), - _("Recurse"), _("Change contents of subdirectories"), - 'R', recurse); - - gui_side->default_string = &last_settype_string; - - /* Note: get the list again each time -- it can change */ - presets = mime_type_name_list(TRUE); - abox_add_combo(ABOX(abox), _("Type:"), presets, new_entry_string, - new_help_button(show_settype_help, NULL)); - g_list_free(presets); - - g_signal_connect(ABOX(abox)->entry, "changed", - G_CALLBACK(entry_changed), gui_side); - - log_info_paths("Set file type", paths, NULL); - - number_of_windows++; - gtk_widget_show(abox); - -out: - null_g_free(&new_entry_string); -} - -static void log_info_paths_leaf(const gchar *message, GList *paths, - const gchar *dest, const char *leaf) -{ - if (leaf == NULL) - { - log_info_paths(message, paths, dest); - } - else - { - char *new_dest; - new_dest = g_build_filename(dest, leaf, NULL); - log_info_paths(message, paths, new_dest); - g_free(new_dest); - } -} - -/* If leaf is NULL then the copy has the same name as the original. - * quiet can be -1 for default. - */ -void action_copy(GList *paths, const char *dest, const char *leaf, int quiet) -{ - GUIside *gui_side; - GtkWidget *abox; - - if (quiet == -1) - quiet = o_action_copy.int_value; - - action_dest = dest; - action_leaf = leaf; - action_do_func = do_copy; - - abox = abox_new(_("Copy"), quiet); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, list_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - abox_add_flag(ABOX(abox), - _("Newer"), - _("Only over-write if source is newer than destination."), - 'W', o_action_newer.int_value); - abox_add_flag(ABOX(abox), - _("Brief"), _("Only log directories as they are copied"), - 'B', o_action_brief.int_value); - - log_info_paths_leaf("Copy", paths, dest, leaf); - - number_of_windows++; - gtk_widget_show(abox); -} - -/* If leaf is NULL then the file is not renamed. - * quiet can be -1 for default. - */ -void action_move(GList *paths, const char *dest, const char *leaf, int quiet) -{ - GUIside *gui_side; - GtkWidget *abox; - - if (quiet == -1) - quiet = o_action_move.int_value; - - action_dest = dest; - action_leaf = leaf; - action_do_func = do_move; - - abox = abox_new(_("Move"), quiet); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, list_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - abox_add_flag(ABOX(abox), - _("Newer"), - _("Only over-write if source is newer than destination."), - 'W', o_action_newer.int_value); - abox_add_flag(ABOX(abox), - _("Brief"), _("Don't log each file as it is moved"), - 'B', o_action_brief.int_value); - - log_info_paths_leaf("Move", paths, dest, leaf); - - number_of_windows++; - gtk_widget_show(abox); -} - -/* If leaf is NULL then the link will have the same name */ -void action_link(GList *paths, const char *dest, const char *leaf, - gboolean relative) -{ - GtkWidget *abox; - GUIside *gui_side; - - action_dest = dest; - action_leaf = leaf; - if (relative) - action_do_func = do_link_relative; - else - action_do_func = do_link_absolute; - - abox = abox_new(_("Link"), o_action_link.int_value); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, list_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - log_info_paths_leaf("Link", paths, dest, leaf); - - number_of_windows++; - gtk_widget_show(abox); -} - -/* Eject these paths */ -void action_eject(GList *paths) -{ - GUIside *gui_side; - GtkWidget *abox; - - abox = abox_new(_("Eject"), TRUE); - if(paths && paths->next) - abox_set_percentage(ABOX(abox), 0); - gui_side = start_action(abox, eject_cb, paths, - o_action_force.int_value, - o_action_brief.int_value, - o_action_recurse.int_value, - o_action_newer.int_value); - if (!gui_side) - return; - - log_info_paths("Eject", paths, NULL); - - number_of_windows++; - gtk_widget_show(abox); -} - -void action_init(void) -{ - option_add_int(&o_action_copy, "action_copy", 1); - option_add_int(&o_action_move, "action_move", 1); - option_add_int(&o_action_link, "action_link", 1); - option_add_int(&o_action_delete, "action_delete", 0); - option_add_int(&o_action_mount, "action_mount", 1); - option_add_int(&o_action_force, "action_force", FALSE); - option_add_int(&o_action_brief, "action_brief", FALSE); - option_add_int(&o_action_recurse, "action_recurse", FALSE); - option_add_int(&o_action_newer, "action_newer", FALSE); - - option_add_string(&o_action_mount_command, - "action_mount_command", "mount"); - option_add_string(&o_action_umount_command, - "action_umount_command", "umount"); - option_add_string(&o_action_eject_command, - "action_eject_command", "eject"); -} - -#define MAX_ASK 4 - -/* Check to see if any of the selected items (or their children) are - * on the pinboard or panel. If so, ask for confirmation. - * - * TRUE if it's OK to lose them. - */ -static gboolean remove_pinned_ok(GList *paths) -{ - GList *ask = NULL, *next; - GString *message; - int i, ask_n = 0; - gboolean retval; - - for (; paths; paths = paths->next) - { - guchar *path = (guchar *) paths->data; - - if (icons_require(path)) - { - if (++ask_n > MAX_ASK) - break; - ask = g_list_append(ask, path); - } - } - - if (!ask) - return TRUE; - - if (ask_n > MAX_ASK) - { - message = g_string_new(_("Deleting items such as ")); - ask_n--; - } - else if (ask_n == 1) - message = g_string_new(_("Deleting the item ")); - else - message = g_string_new(_("Deleting the items ")); - - i = 0; - for (next = ask; next; next = next->next) - { - guchar *path = (guchar *) next->data; - guchar *leaf; - - leaf = strrchr(path, '/'); - if (leaf) - leaf++; - else - leaf = path; - - g_string_append_c(message, '`'); - g_string_append(message, leaf); - g_string_append_c(message, '\''); - i++; - if (i == ask_n - 1 && i > 0) - g_string_append(message, _(" and ")); - else if (i < ask_n) - g_string_append(message, ", "); - } - - g_list_free(ask); - - if (ask_n == 1) - message = g_string_append(message, - _(" will affect some items on the pinboard " - "or panel - really delete it?")); - else - { - if (ask_n > MAX_ASK) - message = g_string_append_c(message, ','); - message = g_string_append(message, - _(" will affect some items on the pinboard " - "or panel - really delete them?")); - } - - retval = confirm(message->str, GTK_STOCK_DELETE, NULL); - - g_string_free(message, TRUE); - - return retval; -} - -void set_find_string_colour(GtkWidget *widget, const guchar *string) -{ - FindCondition *cond; - - cond = find_compile(string); - entry_set_error(widget, !cond); - - find_condition_free(cond); -} diff --git a/ROX-Filer/src/action.h b/ROX-Filer/src/action.h deleted file mode 100644 index 5cf2fc98..00000000 --- a/ROX-Filer/src/action.h +++ /dev/null @@ -1,27 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _ACTION_H -#define _ACTION_H - -#include - -void action_init(void); - -void action_usage(GList *paths); -void action_mount(GList *paths, gboolean open_dir, gboolean mount, int quiet); -void action_delete(GList *paths); -void action_chmod(GList *paths, gboolean force_recurse, const char *action); -void action_find(GList *paths); -void action_move(GList *paths, const char *dest, const char *leaf, int quiet); -void action_copy(GList *paths, const char *dest, const char *leaf, int quiet); -void action_link(GList *paths, const char *dest, const char *leaf, - gboolean relative); -void action_eject(GList *paths); -void show_condition_help(gpointer data); -void set_find_string_colour(GtkWidget *widget, const guchar *string); -void action_settype(GList *paths, gboolean force_recurse, const char *oldtype); - -#endif /* _ACTION_H */ diff --git a/ROX-Filer/src/appinfo.c b/ROX-Filer/src/appinfo.c deleted file mode 100644 index fa8e7284..00000000 --- a/ROX-Filer/src/appinfo.c +++ /dev/null @@ -1,85 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* appinfo.c - querying the XMLwrapper.xml files */ - -/* Any valid application directory may contain a file called XMLwrapper.xml. - * The format is: - * - * - * - * Tooltip text - * - * ... - * ... - * ... - * ... - * ... - * ... - * - * - * - * - * - * ... - * - * - * - */ - -#include "config.h" - -#include - -#include "global.h" - -#include "appinfo.h" -#include "fscache.h" -#include "type.h" -#include "diritem.h" -#include "support.h" -#include "xml.h" - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Load the XMLwrapper file for this application. - * - * Returns a pointer to the XMLwrapper structure, or NULL if this isn't - * an application with a valid XMLwrapper file. - * - * g_object_unref() the result. - */ -XMLwrapper *appinfo_get(const gchar *app_dir, DirItem *item) -{ - XMLwrapper *ai; - guchar *tmp; - - /* Is it even an application directory? */ - if (item->base_type != TYPE_DIRECTORY || - !(item->flags & ITEM_FLAG_APPDIR)) - return NULL; /* Not an application */ - - tmp = g_strconcat(app_dir, "/" APPINFO_FILENAME, NULL); - ai = xml_cache_load(tmp); - g_free(tmp); - - return ai; -} diff --git a/ROX-Filer/src/appinfo.h b/ROX-Filer/src/appinfo.h deleted file mode 100644 index aa18ce1e..00000000 --- a/ROX-Filer/src/appinfo.h +++ /dev/null @@ -1,16 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _APPINFO_H -#define _APPINFO_H - -/* Name of the XML file where the info is stored */ -#define APPINFO_FILENAME "AppInfo.xml" - -/* External interface */ -XMLwrapper *appinfo_get(const gchar *app_dir, DirItem *item); -void appinfo_unref(XMLwrapper *info); - -#endif /* _APPINFO_H */ diff --git a/ROX-Filer/src/appmenu.c b/ROX-Filer/src/appmenu.c deleted file mode 100644 index a16c6742..00000000 --- a/ROX-Filer/src/appmenu.c +++ /dev/null @@ -1,426 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* appmenu.c - handles application-specific menus read from XMLwrapper.xml */ - -/* XXX: This handles all File menu extensions. Needs renaming! */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include - -#include "global.h" - -#include "choices.h" -#include "fscache.h" -#include "gui_support.h" -#include "support.h" -#include "menu.h" -#include "filer.h" -#include "appmenu.h" -#include "dir.h" -#include "type.h" -#include "appinfo.h" -#include "xml.h" -#include "run.h" -#include "diritem.h" -#include "action.h" -#include "options.h" - -/* Static prototypes */ -static void apprun_menu(GtkWidget *item, gpointer data); -static GtkWidget *create_menu_item(xmlNode *node); -static void show_app_help(GtkWidget *item, gpointer data); -static void build_app_menu(const char *app_dir, DirItem *app_item); -static void mnt_eject(GtkWidget *item, gpointer data); - -/* There can only be one menu open at a time... we store: */ -static GtkWidget *current_menu = NULL; /* The GtkMenu */ -static guchar *current_app_path = NULL; /* The path of the application */ -static GList *current_items = NULL; /* The GtkMenuItems we added directly - * to it --- not submenu items. - */ -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Removes all appmenu menu items */ -void appmenu_remove(void) -{ - GList *next; - - if (!current_menu) - return; - - for (next = current_items; next; next = next->next) - gtk_widget_destroy((GtkWidget *) next->data); - - null_g_free(¤t_app_path); - current_menu = NULL; - - g_list_free(current_items); - current_items = NULL; -} - -/* Add AppMenu entries to 'menu', if appropriate. - * This function modifies the menu stored in "menu". - * 'app_dir' is the pathname of the application directory, and 'item' - * is the corresponding DirItem. - * Returns number of entries added. - * Call appmenu_remove() to undo the effect. - */ -int appmenu_add(const gchar *app_dir, DirItem *app_item, GtkWidget *menu) -{ - GList *next; - GtkWidget *sep; - int nadded = 0; - - g_return_val_if_fail(menu != NULL, 0); - - /* Should have called appmenu_remove() already... */ - g_return_val_if_fail(current_menu == NULL, 0); - g_return_val_if_fail(current_items == NULL, 0); - - build_app_menu(app_dir, app_item); - - if (app_item->flags & ITEM_FLAG_MOUNT_POINT) - { - GtkWidget *item; - item = gtk_menu_item_new_with_label(_("Eject")); - gtk_widget_show(item); - current_items = g_list_prepend(current_items, item); - g_signal_connect(item, "activate", G_CALLBACK(mnt_eject), NULL); - } - - if (current_items) - { - sep = gtk_menu_item_new(); - current_items = g_list_prepend(current_items, sep); - gtk_widget_show(sep); - } - - for (next = current_items; next; next = next->next) - { - gtk_menu_shell_prepend(GTK_MENU_SHELL(menu), - GTK_WIDGET(next->data)); - nadded++; - } - - current_menu = menu; - current_app_path = g_strdup(app_dir); - - return nadded; -} - - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Create a new menu and return it */ -static GtkWidget *appmenu_add_submenu(xmlNode *subm_node) -{ - xmlNode *node; - GtkWidget *sub_menu; - - /* Create the new submenu */ - sub_menu = gtk_menu_new(); - - /* Add the menu entries */ - for (node = subm_node->xmlChildrenNode; node; node = node->next) - { - GtkWidget *item; - - item = create_menu_item(node); - if (item) - gtk_menu_shell_append(GTK_MENU_SHELL(sub_menu), item); - } - - return sub_menu; -} - -/* Create and return a menu item */ -static GtkWidget *create_menu_item(xmlNode *node) -{ - GtkWidget *item; - xmlNode *label_node; - guchar *label, *option = NULL; - guchar *icon_name = NULL; - gboolean is_submenu; - - if (node->type != XML_ELEMENT_NODE) - return NULL; - - if (strcmp(node->name, "Item") == 0) - { - is_submenu = FALSE; - option = xmlGetProp(node, "option"); - } - else if (strcmp(node->name, "AppMenu") == 0) - is_submenu = TRUE; - else - return NULL; - - /* Create the item */ - label_node = get_subnode(node, NULL, "Label"); - if (label_node) - { - label = xmlNodeListGetString(label_node->doc, - label_node->xmlChildrenNode, 1); - } - else - { - label = xmlGetProp(node, "label"); - if (!label) - label = g_strdup(_("")); - } - item = gtk_image_menu_item_new_with_label(label); - - icon_name = xmlGetProp(node, "icon"); - if (icon_name) - { - GtkWidget *icon = NULL; - GtkStockItem stock_item; - if (gtk_stock_lookup(icon_name, &stock_item)) - icon = gtk_image_new_from_stock(icon_name, GTK_ICON_SIZE_MENU); - else - { - GdkPixbuf* pixbuf; - int size; - gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, NULL, &size); - pixbuf = theme_load_icon(icon_name, size, 0, NULL); - if (pixbuf) - { - icon = gtk_image_new_from_pixbuf(pixbuf); - g_object_unref(pixbuf); - } - } - g_free(icon_name); - if (icon) - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), - GTK_WIDGET(icon)); - } - - gtk_widget_set_accel_path(item, NULL, NULL); /* XXX */ - - g_free(label); - - if (is_submenu) - { - /* Add submenu items */ - - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), - appmenu_add_submenu(node)); - } - else - { - /* Set up callback */ - - if (option) - { - g_object_set_data_full(G_OBJECT(item), "option", - g_strdup(option), - g_free); - g_free(option); - } - - g_signal_connect(item, "activate", G_CALLBACK(apprun_menu), - NULL); - } - - gtk_widget_show(item); - - return item; -} - -/* Send to current_app_path (though not actually an app) */ -static void send_to(GtkWidget *item, const char *app) -{ - GList *file_list; - - g_return_if_fail(current_app_path != NULL); - - file_list = g_list_prepend(NULL, current_app_path); - run_with_files(app, file_list); - g_list_free(file_list); -} - -/* Function called to execute an AppMenu item */ -static void apprun_menu(GtkWidget *item, gpointer data) -{ - guchar *option; - gchar *argv[3]; - - g_return_if_fail(current_app_path != NULL); - - option = g_object_get_data(G_OBJECT(item), "option"); - - argv[0] = g_strconcat(current_app_path, "/AppRun", NULL); - argv[1] = option; /* (may be NULL) */ - argv[2] = NULL; - - rox_spawn(NULL, (const gchar **) argv); - - g_free(argv[0]); -} - -static void show_app_help(GtkWidget *item, gpointer data) -{ - g_return_if_fail(current_app_path != NULL); - - show_help_files(current_app_path); -} - -static void mnt_eject(GtkWidget *item, gpointer data) -{ - GList *dirs; - - g_return_if_fail(current_app_path != NULL); - dirs = g_list_prepend(NULL, current_app_path); - action_eject(dirs); - g_list_free(dirs); -} - -static void customise_type(GtkWidget *item, MIME_type *type) -{ - char *leaf; - char *path; - - leaf = g_strconcat(".", type->media_type, "_", type->subtype, NULL); - path = choices_find_xdg_path_save(leaf, "SendTo", SITE, TRUE); - g_free(leaf); - - mkdir(path, 0755); - filer_opendir(path, NULL, NULL); - g_free(path); - - info_message(_("Symlink any programs you want into this directory. " - "They will appear in the menu for all items of this " - "type (%s/%s)."), type->media_type, type->subtype); -} - -static void build_menu_for_type(MIME_type *type) -{ - GPtrArray *names; - char *path; - int i; - char *leaf; - GtkWidget *item; - DirItem *ditem; - - leaf = g_strconcat(".", type->media_type, "_", type->subtype, NULL); - path = choices_find_xdg_path_load(leaf, "SendTo", SITE); - - if (!path) - goto out; - - names = list_dir(path); - - ditem = diritem_new(""); - - for (i = 0; i < names->len; i++) - { - char *leaf = names->pdata[i]; - char *full_path; - - full_path = g_build_filename(path, leaf, NULL); - diritem_restat(full_path, ditem, NULL); - - item = make_send_to_item(ditem, leaf, MIS_SMALL); - current_items = g_list_prepend(current_items, item); - gtk_widget_show(item); - g_signal_connect_data(item, "activate", G_CALLBACK(send_to), - full_path, (GClosureNotify) g_free, 0); - } - - g_ptr_array_free(names, TRUE); - - g_free(path); - -out: - item = gtk_menu_item_new_with_label(_("Customise Menu...")); - current_items = g_list_prepend(current_items, item); - g_signal_connect(item, "activate", G_CALLBACK(customise_type), type); - gtk_widget_show(item); - - g_free(leaf); -} - -static inline gboolean is_dir(const char *dir) -{ - struct stat info; - return stat(dir, &info) == 0 && S_ISDIR(info.st_mode); -} - -/* Adds to current_items */ -static void build_app_menu(const char *app_dir, DirItem *app_item) -{ - XMLwrapper *ai = NULL; - xmlNode *node; - GtkWidget *item; - char *help_dir; - - ai = appinfo_get(app_dir, app_item); - if (ai) - { - node = xml_get_section(ai, NULL, "AppMenu"); - if (node) - node = node->xmlChildrenNode; - } - else - { - if (app_item->flags & ITEM_FLAG_APPDIR) - node = NULL; - else - { - /* Not an application AND no AppInfo */ - build_menu_for_type(app_item->mime_type); - return; - } - } - - /* Add the menu entries */ - for (; node; node = node->next) - { - item = create_menu_item(node); - - if (item) - current_items = g_list_prepend(current_items, item); - } - - help_dir = g_build_filename(app_dir, "Help", NULL); - if (is_dir(help_dir)) - { - item = gtk_image_menu_item_new_from_stock(GTK_STOCK_HELP, NULL); - gtk_widget_show(item); - current_items = g_list_prepend(current_items, item); - g_signal_connect(item, "activate", G_CALLBACK(show_app_help), NULL); - gtk_label_set_text(GTK_LABEL(GTK_BIN(item)->child), _("Help")); - } - g_free(help_dir); - - if (ai) - g_object_unref(ai); -} diff --git a/ROX-Filer/src/appmenu.h b/ROX-Filer/src/appmenu.h deleted file mode 100644 index 6a8b1ea4..00000000 --- a/ROX-Filer/src/appmenu.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - * - * This file by Diego Zamboni - */ - -#ifndef _APPMENU_H -#define _APPMENU_H - -#include - -/* External interface */ -int appmenu_add(const gchar *app_dir, DirItem *item, GtkWidget *menu); -void appmenu_remove(void); - -#endif /* _APPMENU_H */ diff --git a/ROX-Filer/src/bind.c b/ROX-Filer/src/bind.c deleted file mode 100644 index 3359cc55..00000000 --- a/ROX-Filer/src/bind.c +++ /dev/null @@ -1,112 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* bind.c - converts user gestures (clicks, etc) into actions */ - -#include "config.h" - -#include - -#include "global.h" - -#include "options.h" -#include "bind.h" - -Option o_new_button_1, o_single_click; -static Option o_single_pinboard; -static Option o_dclick_resizes; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void bind_init(void) -{ - option_add_int(&o_new_button_1, "bind_new_button_1", FALSE); - option_add_int(&o_single_click, "bind_single_click", TRUE); - option_add_int(&o_single_pinboard, "bind_single_pinboard", TRUE); - option_add_int(&o_dclick_resizes, "bind_dclick_resizes", TRUE); -} - -/* Call this when a button event occurs and you want to know what - * to do. - */ -BindAction bind_lookup_bev(BindContext context, GdkEventButton *event) -{ - gint b = event->button; - gint menu_button = 3; /* o_menu_button_2.int_value ? 2 : 3; */ - gboolean shift = (event->state & GDK_SHIFT_MASK) != 0; - gboolean ctrl = (event->state & GDK_CONTROL_MASK) != 0; - gboolean icon = context == BIND_PINBOARD_ICON || - context == BIND_PANEL_ICON; - gboolean item = icon || context == BIND_DIRECTORY_ICON; - gboolean background = context == BIND_PINBOARD || - context == BIND_PANEL || - context == BIND_DIRECTORY; - gboolean press = event->type == GDK_BUTTON_PRESS; - gboolean release = event->type == GDK_BUTTON_RELEASE; - gboolean select = event->button == 1; /* (old RISC OS names) */ - gboolean adjust = event->button != 1; - - gboolean dclick = event->type == GDK_2BUTTON_PRESS; - gboolean dclick_mode = - (context == BIND_DIRECTORY_ICON && !o_single_click.int_value) || - (context == BIND_PINBOARD_ICON && !o_single_pinboard.int_value); - - if (b > 3) - return ACT_IGNORE; - - if (context == BIND_PINBOARD_ICON || context == BIND_PINBOARD) - menu_button = 3; /* Must work with window manager */ - - if (b == menu_button) - return press ? ACT_POPUP_MENU : ACT_IGNORE; - - if (item && dclick && dclick_mode) - return shift ? ACT_EDIT_ITEM : ACT_OPEN_ITEM; - - if (dclick && context == BIND_DIRECTORY && o_dclick_resizes.int_value) - return ACT_RESIZE; - - if (!press) - { - if (release && item && (!dclick_mode) && (!ctrl) && - (select || (adjust && context == BIND_DIRECTORY_ICON))) - return shift ? ACT_EDIT_ITEM : ACT_OPEN_ITEM; - return ACT_IGNORE; - } - - if (background) - { - gboolean clear = (!ctrl) && select; - - if (context == BIND_PANEL) - return ACT_CLEAR_SELECTION; - - return clear ? ACT_LASSO_CLEAR : ACT_LASSO_MODIFY; - } - - if (ctrl || (adjust && dclick_mode)) - return ACT_PRIME_AND_TOGGLE; - - if (context == BIND_PANEL_ICON && adjust) - return ACT_MOVE_ICON; - - return dclick_mode ? ACT_PRIME_AND_SELECT : ACT_PRIME_FOR_DND; -} diff --git a/ROX-Filer/src/bind.h b/ROX-Filer/src/bind.h deleted file mode 100644 index e9cbbeae..00000000 --- a/ROX-Filer/src/bind.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _BIND_H -#define _BIND_H - -#include - -extern Option o_new_button_1, o_single_click; - -typedef enum { - BIND_DIRECTORY, - BIND_DIRECTORY_ICON, - BIND_PANEL, - BIND_PANEL_ICON, - BIND_PINBOARD, - BIND_PINBOARD_ICON, -} BindContext; - -typedef enum { - ACT_IGNORE, /* Do nothing */ - ACT_SELECT_EXCL, /* Select just this one item */ - ACT_TOGGLE_SELECTED, /* Toggle this item's selected state */ - ACT_OPEN_ITEM, /* Run app, load file or open dir */ - ACT_EDIT_ITEM, /* Open app, load text file or mount dir */ - ACT_POPUP_MENU, /* Show the popup menu */ - ACT_CLEAR_SELECTION, /* Unselect all icons in this area */ - ACT_MOVE_ICON, /* Reposition a pinboard/panel icon */ - ACT_PRIME_FOR_DND, /* Significant motion will start dnd */ - ACT_PRIME_AND_SELECT, /* As above, but select the item too */ - ACT_PRIME_AND_TOGGLE, /* As above, but toggle the item instead */ - ACT_LASSO_CLEAR, /* Clear selection, and start lasso drag */ - ACT_LASSO_MODIFY, /* Start lasso drag without clearing */ - ACT_RESIZE, /* Auto-resize the filer window */ -} BindAction; - -void bind_init(void); -BindAction bind_lookup_bev(BindContext context, GdkEventButton *event); - -#endif /* _BIND_H */ diff --git a/ROX-Filer/src/bookmarks.c b/ROX-Filer/src/bookmarks.c deleted file mode 100644 index 33b91143..00000000 --- a/ROX-Filer/src/bookmarks.c +++ /dev/null @@ -1,852 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* bookmarks.c - handles the bookmarks menu */ - -#include "config.h" - -#include -#include -#include - -#include "global.h" - -#include "bookmarks.h" -#include "choices.h" -#include "filer.h" -#include "xml.h" -#include "support.h" -#include "gui_support.h" -#include "main.h" -#include "mount.h" -#include "action.h" -#include "options.h" -#include "bind.h" - -static GList *history = NULL; /* Most recent first */ -static GList *history_tail = NULL; /* Oldest item */ -static GHashTable *history_hash = NULL; /* Path -> GList link */ -static gint history_free = 30; /* Space left in history */ - -static XMLwrapper *bookmarks = NULL; -static GtkWidget *bookmarks_window = NULL; - -/* Static prototypes */ -static void update_bookmarks(void); -static xmlNode *bookmark_find(const gchar *mark); -static void bookmarks_save(void); -static void bookmarks_add(GtkMenuItem *menuitem, gpointer user_data); -static void bookmarks_activate(GtkMenuShell *item, FilerWindow *filer_window); -static GtkWidget *bookmarks_build_menu(FilerWindow *filer_window); -static void position_menu(GtkMenu *menu, gint *x, gint *y, - gboolean *push_in, gpointer data); -static void cell_edited(GtkCellRendererText *cell, - const gchar *path_string, - const gchar *new_text, - gpointer data); -static void reorder_up(GtkButton *button, GtkTreeView *view); -static void reorder_down(GtkButton *button, GtkTreeView *view); -static void edit_response(GtkWidget *window, gint response, - GtkTreeModel *model); -static void edit_delete(GtkButton *button, GtkTreeView *view); -static gboolean dir_dropped(GtkWidget *window, GdkDragContext *context, - int x, int y, - GtkSelectionData *selection_data, guint info, - guint time, GtkTreeView *view); -static void bookmarks_add_dir(const guchar *dir); -static void commit_edits(GtkTreeModel *model); - - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Shows the bookmarks menu */ -void bookmarks_show_menu(FilerWindow *filer_window) -{ - GdkEvent *event; - GtkMenu *menu; - int button = 0; - - event = gtk_get_current_event(); - if (event) - { - if (event->type == GDK_BUTTON_RELEASE || - event->type == GDK_BUTTON_PRESS) - button = ((GdkEventButton *) event)->button; - gdk_event_free(event); - } - - menu = GTK_MENU(bookmarks_build_menu(filer_window)); - gtk_menu_popup(menu, NULL, NULL, position_menu, filer_window, - button, gtk_get_current_event_time()); -} - -/* Show the Edit Bookmarks dialog */ -void bookmarks_edit(void) -{ - GtkListStore *model; - GtkWidget *list, *hbox, *button, *swin; - GtkTreeSelection *selection; - GtkCellRenderer *cell; - xmlNode *node; - GtkTreeIter iter; - - if (bookmarks_window) - { - gtk_window_present(GTK_WINDOW(bookmarks_window)); - return; - } - - update_bookmarks(); - - bookmarks_window = gtk_dialog_new(); - number_of_windows++; - - gtk_dialog_add_button(GTK_DIALOG(bookmarks_window), - GTK_STOCK_CLOSE, GTK_RESPONSE_OK); - - g_signal_connect(bookmarks_window, "destroy", - G_CALLBACK(gtk_widget_destroyed), &bookmarks_window); - g_signal_connect(bookmarks_window, "destroy", - G_CALLBACK(one_less_window), NULL); - - swin = gtk_scrolled_window_new(NULL, NULL); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(swin), - GTK_SHADOW_IN); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), - GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(bookmarks_window)->vbox), - swin, TRUE, TRUE, 0); - - model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - - list = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); - - cell = gtk_cell_renderer_text_new(); - g_signal_connect(G_OBJECT(cell), "edited", - G_CALLBACK(cell_edited), model); - g_object_set(G_OBJECT(cell), "editable", TRUE, NULL); - g_object_set_data(G_OBJECT(cell), "column", GINT_TO_POINTER(0)); - gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(list), -1, - _("Path"), cell, "text", 0, NULL); - - cell = gtk_cell_renderer_text_new(); - g_signal_connect(G_OBJECT(cell), "edited", - G_CALLBACK(cell_edited), model); - g_object_set(G_OBJECT(cell), "editable", TRUE, NULL); - g_object_set_data(G_OBJECT(cell), "column", GINT_TO_POINTER(1)); - gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(list), -1, - _("Title"), cell, "text", 1, NULL); - - gtk_tree_view_set_reorderable(GTK_TREE_VIEW(list), TRUE); - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(list), TRUE); - - node = xmlDocGetRootElement(bookmarks->doc); - for (node = node->xmlChildrenNode; node; node = node->next) - { - GtkTreeIter iter; - gchar *mark, *title; - - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "bookmark") != 0) - continue; - - mark = xmlNodeListGetString(bookmarks->doc, - node->xmlChildrenNode, 1); - if (!mark) - continue; - - title=xmlGetProp(node, "title"); - if(!title) - title=mark; - - gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, mark, 1, title, -1); - if(title!=mark) - xmlFree(title); - - xmlFree(mark); - } - - gtk_widget_set_size_request(list, 300, 300); - gtk_container_add(GTK_CONTAINER(swin), list); - - hbox = gtk_hbutton_box_new(); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(bookmarks_window)->vbox), - hbox, FALSE, TRUE, 0); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 5); - - button = gtk_button_new_from_stock(GTK_STOCK_DELETE); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - g_signal_connect(button, "clicked", G_CALLBACK(edit_delete), list); - - button = gtk_button_new_from_stock(GTK_STOCK_GO_UP); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - g_signal_connect(button, "clicked", G_CALLBACK(reorder_up), list); - button = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - g_signal_connect(button, "clicked", G_CALLBACK(reorder_down), list); - - selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(list)); - gtk_tree_selection_set_mode(selection, GTK_SELECTION_MULTIPLE); - - /* Select the first item, otherwise the first click starts edit - * mode, which is very confusing! - */ - if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(model), &iter)) - gtk_tree_selection_select_iter(selection, &iter); - - g_signal_connect(bookmarks_window, "response", - G_CALLBACK(edit_response), model); - - /* Allow directories to be dropped in */ - { - GtkTargetEntry targets[] = { {"text/uri-list", 0, 0} }; - gtk_drag_dest_set(bookmarks_window, GTK_DEST_DEFAULT_ALL, - targets, G_N_ELEMENTS(targets), - GDK_ACTION_COPY |GDK_ACTION_PRIVATE); - g_signal_connect(bookmarks_window, "drag-data-received", - G_CALLBACK(dir_dropped), list); - } - - g_signal_connect_swapped(model, "row-changed", - G_CALLBACK(commit_edits), model); - g_signal_connect_swapped(model, "row-inserted", - G_CALLBACK(commit_edits), model); - g_signal_connect_swapped(model, "row-deleted", - G_CALLBACK(commit_edits), model); - g_signal_connect_swapped(model, "rows-reordered", - G_CALLBACK(commit_edits), model); - - gtk_widget_show_all(bookmarks_window); -} - -static void history_remove(const char *path) -{ - GList *old; - - old = g_hash_table_lookup(history_hash, path); - if (old) - { - g_hash_table_remove(history_hash, path); - - if (history_tail == old) - history_tail = old->prev; - g_free(old->data); - history = g_list_delete_link(history, old); - - history_free++; - } -} - -/* Add this path to the global history of visited directories. If it - * already exists there, make it the most recent. If its parent exists - * already, remove the parent. - */ -void bookmarks_add_history(const gchar *path) -{ - char *new; - - new = g_strdup(path); - ensure_utf8(&new); - - if (!history_hash) - history_hash = g_hash_table_new(g_str_hash, g_str_equal); - - history_remove(new); - - { - char *parent; - parent = g_dirname(path); - history_remove(parent); - g_free(parent); - } - - history = g_list_prepend(history, new); - if (!history_tail) - history_tail = history; - g_hash_table_insert(history_hash, new, history); - - history_free--; - if (history_free == -1) - { - g_return_if_fail(history_tail != NULL); - history_remove((char *) history_tail->data); - } -} - -void bookmarks_add_uri(const EscapedPath *uri) -{ - char *path; - struct stat info; - - path = get_local_path(uri); - - if (!path) - { - delayed_error(_("Can't bookmark non-local resource '%s'\n"), - uri); - return; - } - - if (mc_stat(path, &info) == 0 && S_ISDIR(info.st_mode)) - bookmarks_add_dir(path); - else - delayed_error(_("'%s' isn't a directory"), path); - g_free(path); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Initialise the bookmarks document to be empty. Does not save. */ -static void bookmarks_new(void) -{ - if (bookmarks) - g_object_unref(G_OBJECT(bookmarks)); - bookmarks = xml_new(NULL); - bookmarks->doc = xmlNewDoc("1.0"); - xmlDocSetRootElement(bookmarks->doc, - xmlNewDocNode(bookmarks->doc, NULL, "bookmarks", NULL)); -} - -static void position_menu(GtkMenu *menu, gint *x, gint *y, - gboolean *push_in, gpointer data) -{ - FilerWindow *filer_window = (FilerWindow *) data; - - gdk_window_get_origin(GTK_WIDGET(filer_window->view)->window, x, y); -} - -/* Makes sure that 'bookmarks' is up-to-date, reloading from file if it has - * changed. If no bookmarks were loaded and there is no file then initialise - * bookmarks to an empty document. - */ -static void update_bookmarks() -{ - gchar *path; - - /* Update the bookmarks, if possible */ - path = choices_find_xdg_path_load("Bookmarks.xml", PROJECT, SITE); - if (path) - { - XMLwrapper *wrapper; - wrapper = xml_cache_load(path); - if (wrapper) - { - if (bookmarks) - g_object_unref(bookmarks); - bookmarks = wrapper; - } - - g_free(path); - } - - if (!bookmarks) - bookmarks_new(); -} - -/* Return the node for the 'mark' bookmark */ -static xmlNode *bookmark_find(const gchar *mark) -{ - xmlNode *node; - - update_bookmarks(); - - node = xmlDocGetRootElement(bookmarks->doc); - - for (node = node->xmlChildrenNode; node; node = node->next) - { - gchar *path; - gboolean same; - - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "bookmark") != 0) - continue; - - path = xmlNodeListGetString(bookmarks->doc, - node->xmlChildrenNode, 1); - if (!path) - continue; - - same = strcmp(mark, path) == 0; - xmlFree(path); - - if (same) - return node; - } - - return NULL; -} - -/* Save the bookmarks to a file */ -static void bookmarks_save() -{ - guchar *save_path; - - save_path = choices_find_xdg_path_save("Bookmarks.xml", PROJECT, SITE, - TRUE); - if (save_path) - { - save_xml_file(bookmarks->doc, save_path); - g_free(save_path); - } -} - -/* Add a bookmark if it doesn't already exist, and save the - * bookmarks. - */ -static void bookmarks_add(GtkMenuItem *menuitem, gpointer user_data) -{ - FilerWindow *filer_window = (FilerWindow *) user_data; - - bookmarks_add_dir(filer_window->sym_path); -} - -static void bookmarks_add_dir(const guchar *dir) -{ - xmlNode *bookmark; - - if (bookmark_find(dir)) - return; - - bookmark = xmlNewTextChild(xmlDocGetRootElement(bookmarks->doc), - NULL, "bookmark", dir); - xmlSetProp(bookmark, "title", dir); - - bookmarks_save(); - - if (bookmarks_window) - gtk_widget_destroy(bookmarks_window); -} - -/* Called when a bookmark has been chosen */ -static void bookmarks_activate(GtkMenuShell *item, FilerWindow *filer_window) -{ - const gchar *mark; - GtkLabel *label; - GdkEvent *event; - gboolean new_win=FALSE; - - mark=g_object_get_data(G_OBJECT(item), "bookmark-path"); - if(!mark) { - label = GTK_LABEL(GTK_BIN(item)->child); - mark = gtk_label_get_text(label); - } - - event=gtk_get_current_event(); - if(event) - { - if(event->type==GDK_BUTTON_PRESS || - event->type==GDK_BUTTON_RELEASE) - { - GdkEventButton *button=(GdkEventButton *) event; - - new_win=o_new_button_1.int_value? - button->button==1: button->button!=1; - } - gdk_event_free(event); - } - - if (strcmp(mark, filer_window->sym_path) != 0) - { - if(new_win) - filer_opendir(mark, filer_window, NULL); - else - filer_change_to(filer_window, mark, NULL); - } - if (g_hash_table_lookup(fstab_mounts, filer_window->real_path) && - !mount_is_mounted(filer_window->real_path, NULL, NULL)) - { - GList *paths; - - paths = g_list_prepend(NULL, filer_window->real_path); - action_mount(paths, FALSE, TRUE, -1); - g_list_free(paths); - } -} - -static void edit_delete(GtkButton *button, GtkTreeView *view) -{ - GtkTreeModel *model; - GtkListStore *list; - GtkTreeSelection *selection; - GtkTreeIter iter; - gboolean more, any = FALSE; - - model = gtk_tree_view_get_model(view); - list = GTK_LIST_STORE(model); - - selection = gtk_tree_view_get_selection(view); - - more = gtk_tree_model_get_iter_first(model, &iter); - - while (more) - { - GtkTreeIter old = iter; - - more = gtk_tree_model_iter_next(model, &iter); - - if (gtk_tree_selection_iter_is_selected(selection, &old)) - { - any = TRUE; - gtk_list_store_remove(list, &old); - } - } - - if (!any) - { - report_error(_("You should first select some rows to delete")); - return; - } -} - -static void reorder(GtkTreeView *view, int dir) -{ - GtkTreeModel *model; - GtkListStore *list; - GtkTreePath *cursor = NULL; - GtkTreeIter iter, old, new; - GValue mark = {0}; - GValue title = {0}; - gboolean ok; - - g_return_if_fail(view != NULL); - g_return_if_fail(dir == 1 || dir == -1); - - model = gtk_tree_view_get_model(view); - list = GTK_LIST_STORE(model); - - gtk_tree_view_get_cursor(view, &cursor, NULL); - if (!cursor) - { - report_error(_("Put the cursor on an entry in the " - "list to move it")); - return; - } - - gtk_tree_model_get_iter(model, &old, cursor); - if (dir > 0) - { - gtk_tree_path_next(cursor); - ok = gtk_tree_model_get_iter(model, &iter, cursor); - } - else - { - ok = gtk_tree_path_prev(cursor); - if (ok) - gtk_tree_model_get_iter(model, &iter, cursor); - } - if (!ok) - { - gtk_tree_path_free(cursor); - report_error(_("This item is already at the end")); - return; - } - - gtk_tree_model_get_value(model, &old, 0, &mark); - gtk_tree_model_get_value(model, &old, 1, &title); - if (dir > 0) - gtk_list_store_insert_after(list, &new, &iter); - else - gtk_list_store_insert_before(list, &new, &iter); - gtk_list_store_set(list, &new, 0, g_value_get_string(&mark), -1); - gtk_list_store_set(list, &new, 1, g_value_get_string(&title), -1); - gtk_list_store_remove(list, &old); - - g_value_unset(&mark); - g_value_unset(&title); - - gtk_tree_view_set_cursor(view, cursor, 0, FALSE); - gtk_tree_path_free(cursor); -} - -static void reorder_up(GtkButton *button, GtkTreeView *view) -{ - reorder(view, -1); -} - -static void reorder_down(GtkButton *button, GtkTreeView *view) -{ - reorder(view, 1); -} - -static gboolean dir_dropped(GtkWidget *window, GdkDragContext *context, - int x, int y, - GtkSelectionData *selection_data, guint info, - guint time, GtkTreeView *view) -{ - GtkListStore *model; - GList *uris, *next; - - if (!selection_data->data) - { - /* Timeout? */ - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - return TRUE; - } - - model = GTK_LIST_STORE(gtk_tree_view_get_model(view)); - - uris = uri_list_to_glist(selection_data->data); - - for (next = uris; next; next = next->next) - { - guchar *path; - - path = get_local_path((EscapedPath *) next->data); - - if (path) - { - GtkTreeIter iter; - struct stat info; - - if (mc_stat(path, &info) == 0 && S_ISDIR(info.st_mode)) - { - gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, path, - 1, path, -1); - } - else - delayed_error(_("'%s' isn't a directory"), - path); - - g_free(path); - } - else - delayed_error(_("Can't bookmark non-local directories " - "like '%s'"), (gchar *) next->data); - } - - destroy_glist(&uris); - - return TRUE; -} - -static void commit_edits(GtkTreeModel *model) -{ - GtkTreeIter iter; - - bookmarks_new(); - - if (gtk_tree_model_get_iter_first(model, &iter)) - { - GValue mark = {0}, title={0}; - xmlNode *root = xmlDocGetRootElement(bookmarks->doc); - - do - { - xmlNode *bookmark; - - gtk_tree_model_get_value(model, &iter, 0, &mark); - bookmark = xmlNewTextChild(root, NULL, "bookmark", - g_value_get_string(&mark)); - g_value_unset(&mark); - gtk_tree_model_get_value(model, &iter, 1, &title); - xmlSetProp(bookmark, "title", - g_value_get_string(&title)); - g_value_unset(&title); - } while (gtk_tree_model_iter_next(model, &iter)); - } - - bookmarks_save(); -} - -static void edit_response(GtkWidget *window, gint response, GtkTreeModel *model) -{ - commit_edits(model); - - gtk_widget_destroy(window); -} - -static void cell_edited(GtkCellRendererText *cell, - const gchar *path_string, - const gchar *new_text, - gpointer data) -{ - GtkTreeModel *model = (GtkTreeModel *) data; - GtkTreePath *path; - GtkTreeIter iter; - gint col; - - path = gtk_tree_path_new_from_string(path_string); - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_path_free(path); - col=GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), "column")); - - gtk_list_store_set(GTK_LIST_STORE(model), &iter, col, new_text, -1); -} - -static void activate_edit(GtkMenuShell *item, gpointer data) -{ - bookmarks_edit(); -} - -static gint cmp_dirname(gconstpointer a, gconstpointer b) -{ - return g_utf8_collate(*(gchar **) a, *(gchar **) b); -} - -static void free_path_for_item(GtkWidget *widget, gpointer udata) -{ - gchar *path=(gchar *) udata; - g_free(path); -} - -static GtkWidget *build_history_menu(FilerWindow *filer_window) -{ - GtkWidget *menu; - GPtrArray *items; - GList *next; - int i; - - menu = gtk_menu_new(); - - if (!history) - return menu; - - g_return_val_if_fail(history_hash != NULL, menu); - g_return_val_if_fail(history_tail != NULL, menu); - - items = g_ptr_array_new(); - - for (next = history; next; next = next->next) - g_ptr_array_add(items, next->data); - - g_ptr_array_sort(items, cmp_dirname); - - for (i = 0; i < items->len; i++) - { - GtkWidget *item; - const char *path = (char *) items->pdata[i]; - gchar *copy; - - item = gtk_menu_item_new_with_label(path); - - copy=g_strdup(path); - g_object_set_data(G_OBJECT(item), "bookmark-path", copy); - g_signal_connect(item, "destroy", - G_CALLBACK(free_path_for_item), copy); - - if (strcmp(path, filer_window->sym_path) == 0) - gtk_widget_set_sensitive(item, FALSE); - else - g_signal_connect(item, "activate", - G_CALLBACK(bookmarks_activate), - filer_window); - - gtk_widget_show(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - } - - g_ptr_array_free(items, TRUE); - - return menu; -} - -/* Builds the bookmarks' menu. Done whenever the bookmarks icon has been - * clicked. - */ -static GtkWidget *bookmarks_build_menu(FilerWindow *filer_window) -{ - GtkWidget *menu; - GtkWidget *item; - xmlNode *node; - gboolean need_separator = TRUE; - - menu = gtk_menu_new(); - - item = gtk_menu_item_new_with_label(_("Add New Bookmark")); - g_signal_connect(item, "activate", - G_CALLBACK(bookmarks_add), filer_window); - gtk_widget_show(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_menu_shell_select_item(GTK_MENU_SHELL(menu), item); - - item = gtk_menu_item_new_with_label(_("Edit Bookmarks")); - g_signal_connect(item, "activate", G_CALLBACK(activate_edit), NULL); - gtk_widget_show(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - - item = gtk_menu_item_new_with_label(_("Recently Visited")); - gtk_widget_show(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), - build_history_menu(filer_window)); - - /* Now add all the bookmarks to the menu */ - - update_bookmarks(); - - node = xmlDocGetRootElement(bookmarks->doc); - - for (node = node->xmlChildrenNode; node; node = node->next) - { - gchar *mark, *title, *path; - - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "bookmark") != 0) - continue; - - mark = xmlNodeListGetString(bookmarks->doc, - node->xmlChildrenNode, 1); - if (!mark) - continue; - path=g_strdup(mark); - - title=xmlGetProp(node, "title"); - if(!title) - title=mark; - - item = gtk_menu_item_new_with_label(title); - - g_object_set_data(G_OBJECT(item), "bookmark-path", path); - g_signal_connect(item, "destroy", - G_CALLBACK(free_path_for_item), path); - - if(title!=mark) - xmlFree(title); - xmlFree(mark); - - g_signal_connect(item, "activate", - G_CALLBACK(bookmarks_activate), - filer_window); - - gtk_widget_show(item); - - if (need_separator) - { - GtkWidget *sep; - sep = gtk_separator_menu_item_new(); - gtk_widget_show(sep); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), sep); - need_separator = FALSE; - } - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - - } - - return menu; -} diff --git a/ROX-Filer/src/bookmarks.h b/ROX-Filer/src/bookmarks.h deleted file mode 100644 index d1518acb..00000000 --- a/ROX-Filer/src/bookmarks.h +++ /dev/null @@ -1,14 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _BOOKMARKS_H -#define _BOOKMARKS_H - -void bookmarks_show_menu(FilerWindow *filer_window); -void bookmarks_edit(void); -void bookmarks_add_history(const gchar *path); -void bookmarks_add_uri(const EscapedPath *uri); - -#endif /* _BOOKMARKS_H */ diff --git a/ROX-Filer/src/build b/ROX-Filer/src/build deleted file mode 100755 index 5f162ee8..00000000 --- a/ROX-Filer/src/build +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh - -# This script is called by ROX-Filer-src.xml. It builds the filer -# against the GTK 2.4 headers, using the gtk-2.4 compatibility environment. - -# This should already exist for releases, but is needed for Git checkouts -if [ ! -f "$SRCDIR/ROX-Filer/src/configure" ]; then - (cd "$SRCDIR/ROX-Filer/src" && autoconf) || exit 1 -fi - -# This should already exist for releases, but is needed for Git checkouts -if [ ! -f "$SRCDIR/rox.1" ]; then - (make -C "$SRCDIR/ROX-Filer/src/Docs") || exit 1 -fi - -if [ ! -f Makefile ]; then - "$SRCDIR/ROX-Filer/src/configure" "$@" || exit 1 -fi - -[ -d "$DISTDIR/ROX-Filer" ] || mkdir "$DISTDIR/ROX-Filer" || exit 1 - -make "PLATFORM_DIR=$DISTDIR/ROX-Filer"|| exit 1 - -(cd "$SRCDIR" && cp -r Choices README README-es rox.xml rox.1 "$DISTDIR") || exit 1 -(cd "$SRCDIR/ROX-Filer" && cp -r .DirIcon Help images Messages ROX AppInfo.xml AppRun Options.xml style.css subclasses Templates.ui "$DISTDIR/ROX-Filer") || exit 1 -find "$DISTDIR" -name '.svn' -type d |xargs rm -rf - -# Remove debugging symbols, if any -rm -f "$DISTDIR/ROX-Filer/ROX-Filer.dbg" diff --git a/ROX-Filer/src/bulk_rename.c b/ROX-Filer/src/bulk_rename.c deleted file mode 100644 index b87f1585..00000000 --- a/ROX-Filer/src/bulk_rename.c +++ /dev/null @@ -1,567 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* bulk_rename.c - rename multiple files at once */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "global.h" - -#include "main.h" -#include "bulk_rename.h" -#include "support.h" -#include "gui_support.h" - -enum {RESPONSE_RENAME, RESPONSE_RESET}; - -/* Static prototypes */ -static gboolean apply_replace(GtkWidget *box); -static void response(GtkWidget *box, int resp, GtkListStore *model); -static void reset_model(GtkListStore *model); -static gboolean rename_items(const char *dir, GtkListStore *list); -static void cell_edited(GtkCellRendererText *cell, const gchar *path_string, - const gchar *new_text, GtkTreeModel *model); - - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Bulk rename these items */ -void bulk_rename(const char *dir, GList *items) -{ - GtkWidget *box, *button, *tree, *swin, *hbox; - GtkWidget *replace_entry, *with_entry; - GtkTreeViewColumn *column; - GtkCellRenderer *cell_renderer; - GtkListStore *model; - GtkRequisition req; - - box = gtk_dialog_new(); - g_object_set_data_full(G_OBJECT(box), "rename_dir", - g_strdup(dir), g_free); - gtk_window_set_title(GTK_WINDOW(box), _("Bulk rename files")); - gtk_dialog_set_has_separator(GTK_DIALOG(box), FALSE); - - button = button_new_mixed(GTK_STOCK_REFRESH, _("Reset")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(box), button, RESPONSE_RESET); - gtk_dialog_set_default_response(GTK_DIALOG(box), RESPONSE_RESET); - gtk_tooltips_set_tip(tooltips, button, - _("Make the New column a copy of Old"), NULL); - - gtk_dialog_add_button(GTK_DIALOG(box), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - - button = button_new_mixed(GTK_STOCK_EXECUTE, _("_Rename")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(box), button, RESPONSE_RENAME); - gtk_dialog_set_default_response(GTK_DIALOG(box), RESPONSE_RENAME); - - /* Replace */ - - hbox = gtk_hbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(hbox), 4); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(box)->vbox), - hbox, FALSE, TRUE, 0); - - gtk_box_pack_start(GTK_BOX(hbox), - gtk_label_new(_("Replace:")), FALSE, TRUE, 0); - - replace_entry = gtk_entry_new(); - g_object_set_data(G_OBJECT(box), "replace_entry", replace_entry); - gtk_box_pack_start(GTK_BOX(hbox), replace_entry, TRUE, TRUE, 0); - gtk_entry_set_text(GTK_ENTRY(replace_entry), "\\.htm$"); - gtk_tooltips_set_tip(tooltips, replace_entry, - _("This is a regular expression to search for.\n" - "^ matches the start of a filename\n" - "$ matches the end\n" - "\\. matches a dot\n" - "\\.htm$ matches the '.htm' in 'index.htm', etc"), - NULL); - - gtk_box_pack_start(GTK_BOX(hbox), - gtk_label_new(_("With:")), FALSE, TRUE, 0); - - with_entry = gtk_entry_new(); - g_object_set_data(G_OBJECT(box), "with_entry", with_entry); - gtk_box_pack_start(GTK_BOX(hbox), with_entry, TRUE, TRUE, 0); - gtk_entry_set_text(GTK_ENTRY(with_entry), ".html"); - gtk_tooltips_set_tip(tooltips, with_entry, - _("The first match in each filename will be replaced " - "by this string. " - "The only special characters are back-references " - "from \\0 to \\9. To use them literally, " - "they have to be escaped with a backslash."), NULL); - - button = gtk_button_new_with_label(_("Apply")); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - gtk_tooltips_set_tip(tooltips, button, - _("Do a search-and-replace in the New column. " - "The files are not actually renamed until you click " - "on the Rename button below."), NULL); - - g_signal_connect_swapped(replace_entry, "activate", - G_CALLBACK(gtk_widget_grab_focus), with_entry); - g_signal_connect_swapped(with_entry, "activate", - G_CALLBACK(apply_replace), box); - g_signal_connect_swapped(button, "clicked", - G_CALLBACK(apply_replace), box); - - /* The TreeView */ - - model = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_STRING); - g_object_set_data(G_OBJECT(box), "tree_model", model); - tree = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); - - cell_renderer = gtk_cell_renderer_text_new(); - column = gtk_tree_view_column_new_with_attributes( - _("Old name"), cell_renderer, "text", 0, NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); - - cell_renderer = gtk_cell_renderer_text_new(); - g_object_set(G_OBJECT(cell_renderer), "editable", TRUE, NULL); - g_signal_connect(G_OBJECT(cell_renderer), "edited", - G_CALLBACK(cell_edited), model); - column = gtk_tree_view_column_new_with_attributes( - _("New name"), cell_renderer, "text", 1, NULL); - gtk_tree_view_append_column(GTK_TREE_VIEW(tree), column); - - swin = gtk_scrolled_window_new(NULL, NULL); - gtk_container_set_border_width(GTK_CONTAINER(swin), 4); - gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(swin), - GTK_SHADOW_IN); - gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin), - GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(box)->vbox), swin, TRUE, TRUE, 0); - gtk_container_add(GTK_CONTAINER(swin), tree); - - while (items) { - GtkTreeIter iter; - const char *name = items->data; - - gtk_list_store_append(model, &iter); - gtk_list_store_set(model, &iter, 0, name, 1, name, -1); - - items = items->next; - } - - gtk_widget_show_all(tree); - gtk_widget_size_request(tree, &req); - req.width = MIN(req.width + 50, screen_width - 50); - req.height = MIN(req.height + 150, screen_height - 50); - - gtk_window_set_default_size(GTK_WINDOW(box), req.width, req.height); - - number_of_windows++; - g_signal_connect(box, "destroy", G_CALLBACK(one_less_window), NULL); - g_signal_connect(box, "response", G_CALLBACK(response), model); - gtk_widget_show_all(box); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void response(GtkWidget *box, int resp, GtkListStore *model) -{ - if (resp == RESPONSE_RESET) - reset_model(model); - else if (resp == RESPONSE_RENAME) - { - if (rename_items(g_object_get_data(G_OBJECT(box), "rename_dir"), - model)) - gtk_widget_destroy(box); - } - else - gtk_widget_destroy(box); -} - -/** Substitute: s/old/with/ - * Returns the result as a new string, or NULL if there is no match. - * "replace" is a compiled version of "with". - * Caller must free the result. - */ -static GString *subst(const char *old, regex_t *replace, const char *with) -{ - int max_subs = 10; - GString *new; - regmatch_t match[max_subs]; - - if (regexec(replace, old, max_subs, match, 0) != 0) - return NULL; /* No match */ - - g_return_val_if_fail(match[0].rm_so != -1, NULL); - - new = g_string_new(NULL); - g_string_append_len(new, old, match[0].rm_so); - - int i; - for (i = 0; with[i]; i++) - { - if (with[i] == '\\' && with[i+1]) - { - i++; - if (with[i] >= '0' && with[i]-'0' < max_subs) - { - int subpat; - - subpat = with[i] - '0'; - - if (match[subpat].rm_so != -1) - g_string_append_len(new, old + match[subpat].rm_so, - match[subpat].rm_eo - match[subpat].rm_so); - - } - else - { - // Escape next character - g_string_append_c(new, with[i]); - } - } - else - g_string_append_c(new, with[i]); - } - - g_string_append(new, old + match[0].rm_eo); - - return new; -} - -/* Do a search-and-replace on the second column. */ -static void update_model(GtkListStore *list, regex_t *replace, const char *with) -{ - GtkTreeIter iter; - GtkTreeModel *model = (GtkTreeModel *) list; - int n_matched = 0; - int n_changed = 0; - - if (!gtk_tree_model_get_iter_first(model, &iter)) - { - g_warning("Model empty!"); - return; - } - - do - { - GString *new; - char *old = NULL; - - gtk_tree_model_get(model, &iter, 1, &old, -1); - - new = subst(old, replace, with); - if (new) - { - n_matched++; - if (strcmp(old, new->str) != 0) - { - n_changed++; - gtk_list_store_set(list, &iter, 1, new->str, -1); - } - - g_string_free(new, TRUE); - } - g_free(old); - - } while (gtk_tree_model_iter_next(model, &iter)); - - if (n_matched == 0) - report_error(_("No strings (in the New column) matched " - "the given expression")); - else if (n_changed == 0) - { - if (n_matched == 1) - report_error(_("One name matched, but the result was " - "the same")); - else - report_error(_("%d names matched, but the results were " - "all the same"), n_matched); - } -} - -static gboolean apply_replace(GtkWidget *box) -{ - GtkListStore *model; - GtkEntry *replace_entry, *with_entry; - const char *replace, *with; - regex_t compiled; - int error; - - replace_entry = g_object_get_data(G_OBJECT(box), "replace_entry"); - with_entry = g_object_get_data(G_OBJECT(box), "with_entry"); - model = g_object_get_data(G_OBJECT(box), "tree_model"); - - g_return_val_if_fail(replace_entry != NULL, TRUE); - g_return_val_if_fail(with_entry != NULL, TRUE); - g_return_val_if_fail(model != NULL, TRUE); - - replace = gtk_entry_get_text(replace_entry); - with = gtk_entry_get_text(with_entry); - - if (replace[0] == '\0' && with[0] == '\0') - { - report_error(_("Specify a regular expression to match, " - "and a string to replace matches with.")); - return TRUE; - } - - error = regcomp(&compiled, replace, REG_EXTENDED); - if (error) - { - char *message; - size_t size; - - size = regerror(error, &compiled, NULL, 0); - g_return_val_if_fail(size > 0, TRUE); - - message = g_malloc(size); - regerror(error, &compiled, message, size); - - report_error(_("%s (for '%s')"), message, replace); - - return TRUE; - } - - update_model(model, &compiled, with); - - regfree(&compiled); - - return TRUE; -} - -static void reset_model(GtkListStore *list) -{ - GtkTreeIter iter; - GtkTreeModel *model = (GtkTreeModel *) list; - - if (!gtk_tree_model_get_iter_first(model, &iter)) - return; - - do { - char *before; - gtk_tree_model_get(model, &iter, 0, &before, -1); - gtk_list_store_set(list, &iter, 1, before, -1); - g_free(before); - } while (gtk_tree_model_iter_next(model, &iter)); -} - -static gboolean do_rename(const char *before, const char *after) -{ - /* Check again, just in case */ - if (access(after, F_OK) == 0) - { - report_error(_("A file called '%s' already exists. " - "Aborting bulk rename."), after); - } - else if (rename(before, after)) - { - report_error(_("Failed to rename '%s' as '%s':\n%s\n" - "Aborting bulk rename."), before, after, - g_strerror(errno)); - } - else - return TRUE; - return FALSE; -} - -static gboolean rename_items(const char *dir, GtkListStore *list) -{ - GtkTreeModel *model = (GtkTreeModel *) list; - GtkTreeIter iter; - char *slash_example = NULL; - GHashTable *names = NULL; - gboolean success = FALSE; - int n_renames = 0; - - g_return_val_if_fail(dir != NULL, FALSE); - g_return_val_if_fail(list != NULL, FALSE); - - if (!gtk_tree_model_get_iter_first(model, &iter)) - return FALSE; /* (error) */ - - names = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL); - do { - char *before, *after; - const char *dest; - - gtk_tree_model_get(model, &iter, 0, &before, 1, &after, -1); - - if (!slash_example && strchr(after, '/')) - { - slash_example = g_strdup(after); - } - - if (g_hash_table_lookup(names, before)) - { - report_error("Filename '%s' used twice!", before); - goto fail; - } - g_hash_table_insert(names, before, ""); - - if (after[0] == '\0' || strcmp(after, before) == 0) - { - g_free(after); - continue; - } - - if (g_hash_table_lookup(names, after)) - { - report_error("Filename '%s' used twice!", after); - goto fail; - } - g_hash_table_insert(names, after, ""); - - if (after[0] == '/') - dest = after; - else - dest = make_path(dir, after); - if (access(dest, F_OK) == 0) - { - report_error(_("A file called '%s' already exists"), - dest); - goto fail; - } - - n_renames++; - } while (gtk_tree_model_iter_next(model, &iter)); - - if (slash_example) - { - char *message; - message = g_strdup_printf(_("Some of the New names contain " - "/ characters (eg '%s'). " - "This will cause the files to end up in " - "different directories. " - "Continue?"), slash_example); - if (!confirm(message, GTK_STOCK_EXECUTE, "Rename anyway")) - { - g_free(message); - goto fail; - } - g_free(message); - } - - if (n_renames == 0) - { - report_error(_("None of the names have changed. " - "Nothing to do!")); - goto fail; - } - - success = TRUE; - gtk_tree_model_get_iter_first(model, &iter); - while (success) - { - char *before, *after, *before_path; - const char *dest; - - gtk_tree_model_get(model, &iter, 0, &before, 1, &after, -1); - - if (after[0] == '\0' || strcmp(after, before) == 0) - dest = NULL; - else if (after[0] == '/') - dest = after; - else - dest = make_path(dir, after); - - before_path = g_build_filename(dir, before, NULL); - - if (dest == NULL || do_rename(before_path, dest)) - { - /* Advances iter */ - if (!gtk_list_store_remove(list, &iter)) - break; /* Last item; finished */ - } - else - success = FALSE; - - g_free(before_path); - g_free(before); - g_free(after); - } - -fail: - g_free(slash_example); - if (names) - g_hash_table_destroy(names); - return success; -} - -static void cell_edited(GtkCellRendererText *cell, - const gchar *path_string, const gchar *new_text, - GtkTreeModel *model) -{ - GtkTreePath *path; - GtkTreeIter iter; - - path = gtk_tree_path_new_from_string(path_string); - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_path_free(path); - - gtk_list_store_set(GTK_LIST_STORE(model), &iter, 1, new_text, -1); -} - -#ifdef UNIT_TESTS -static void test_subst(const char *string, const char *pattern, const char *with, const char *expected) -{ - regex_t compiled; - GString *new; - - g_print("Testing s/%s/%s\n", pattern, with); - - if (regcomp(&compiled, pattern, REG_EXTENDED)) - g_error("Failed to compiled '%s'", pattern); - - new = subst(string, &compiled, with); - - if (new == NULL) - { - g_return_if_fail(expected == NULL); - } - else - { - //g_print("Got: %s\n", new->str); - g_return_if_fail(expected != NULL); - g_return_if_fail(strcmp(new->str, expected) == 0); - g_string_free(new, TRUE); - } - - regfree(&compiled); -} - -void bulk_rename_tests() -{ - test_subst("hello", "l", "L", "heLlo"); - test_subst("hello", "h(.*)l", "\\1-\\1", "el-elo"); - test_subst("hello", "(h)", "\\1", "hello"); - test_subst("hello", "(h)", "\\\\1", "\\1ello"); - test_subst("hello", "(h)", "\\\\\\1", "\\hello"); - test_subst("hello", "(h)", "\\", "\\ello"); - test_subst("hello", "(h)$", "\\", NULL); - test_subst("hello", "(.)(.)(.).*", "\\0-\\1-\\2-\\3-\\4-\\9-\\:", "hello-h-e-l---:"); -} -#endif diff --git a/ROX-Filer/src/bulk_rename.h b/ROX-Filer/src/bulk_rename.h deleted file mode 100644 index bbc12722..00000000 --- a/ROX-Filer/src/bulk_rename.h +++ /dev/null @@ -1,15 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _BULK_RENAME_H -#define _BULK_RENAME_H - -void bulk_rename(const char *dir, GList *items); - -#ifdef UNIT_TESTS -void bulk_rename_tests(void); -#endif - -#endif /* _BULK_RENAME_H */ diff --git a/ROX-Filer/src/cell_icon.c b/ROX-Filer/src/cell_icon.c deleted file mode 100644 index e9b35faf..00000000 --- a/ROX-Filer/src/cell_icon.c +++ /dev/null @@ -1,352 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* cell_icon.c - a GtkCellRenderer used for the icons in details mode - * - * Based on gtkcellrendererpixbuf.c. - */ - -#include "config.h" - -#include -#include - -#include "global.h" - -#include "view_details.h" -#include "cell_icon.h" -#include "filer.h" -#include "display.h" -#include "diritem.h" -#include "pixmaps.h" -#include "type.h" -#include "support.h" -#include "fscache.h" - -typedef struct _CellIcon CellIcon; -typedef struct _CellIconClass CellIconClass; - -struct _CellIcon { - GtkCellRenderer parent; - - ViewDetails *view_details; - ViewItem *item; - GdkColor background; -}; - -struct _CellIconClass { - GtkCellRendererClass parent_class; -}; - - -/* Static prototypes */ -static void cell_icon_set_property(GObject *object, guint param_id, - const GValue *value, GParamSpec *pspec); -static void cell_icon_init (CellIcon *cell); -static void cell_icon_class_init (CellIconClass *class); -static void cell_icon_get_size (GtkCellRenderer *cell, - GtkWidget *widget, - GdkRectangle *rectangle, - gint *x_offset, - gint *y_offset, - gint *width, - gint *height); -static void cell_icon_render (GtkCellRenderer *cell, - GdkWindow *window, - GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - guint flags); -static GtkType cell_icon_get_type(void); - -enum { - PROP_ZERO, - PROP_ITEM, - PROP_BACKGROUND_GDK, -}; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -GtkCellRenderer *cell_icon_new(ViewDetails *view_details) -{ - GtkCellRenderer *cell; - - cell = GTK_CELL_RENDERER(g_object_new(cell_icon_get_type(), NULL)); - ((CellIcon *) cell)->view_details = view_details; - - return cell; -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - - -static GtkType cell_icon_get_type(void) -{ - static GtkType cell_icon_type = 0; - - if (!cell_icon_type) - { - static const GTypeInfo cell_icon_info = - { - sizeof (CellIconClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) cell_icon_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof (CellIcon), - 0, /* n_preallocs */ - (GInstanceInitFunc) cell_icon_init, - }; - - cell_icon_type = g_type_register_static(GTK_TYPE_CELL_RENDERER, - "CellIcon", - &cell_icon_info, 0); - } - - return cell_icon_type; -} - -static void cell_icon_init(CellIcon *icon) -{ - icon->view_details = NULL; -} - -static void cell_icon_class_init(CellIconClass *class) -{ - GObjectClass *object_class = G_OBJECT_CLASS(class); - GtkCellRendererClass *cell_class = GTK_CELL_RENDERER_CLASS(class); - - object_class->set_property = cell_icon_set_property; - - cell_class->get_size = cell_icon_get_size; - cell_class->render = cell_icon_render; - - g_object_class_install_property(object_class, - PROP_ITEM, - g_param_spec_pointer("item", - "DirItem", - "The item to render.", - G_PARAM_WRITABLE)); - - g_object_class_install_property(object_class, - PROP_BACKGROUND_GDK, - g_param_spec_boxed("background_gdk", - "Background color", - "Background color as a GdkColor", - GDK_TYPE_COLOR, - G_PARAM_WRITABLE)); -} - -static void cell_icon_set_property(GObject *object, guint param_id, - const GValue *value, GParamSpec *pspec) -{ - CellIcon *icon = (CellIcon *) object; - - switch (param_id) - { - case PROP_ITEM: - icon->item = (ViewItem *) g_value_get_pointer(value); - break; - case PROP_BACKGROUND_GDK: - { - GdkColor *bg = g_value_get_boxed(value); - if (bg) - { - icon->background.red = bg->red; - icon->background.green = bg->green; - icon->background.blue = bg->blue; - } - break; - } - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, - param_id, pspec); - break; - } -} - -/* Return the size to display this icon at. If huge, ensures that the image - * exists in that size, if present at all. - */ -static DisplayStyle get_style(GtkCellRenderer *cell) -{ - CellIcon *icon = (CellIcon *) cell; - ViewItem *view_item = icon->item; - DisplayStyle size; - DirItem *item = view_item->item; - - if (!view_item->image) - { - FilerWindow *filer_window = icon->view_details->filer_window; - - if (filer_window->show_thumbs && item->base_type == TYPE_FILE) - { - const guchar *path; - - path = make_path(filer_window->real_path, - item->leafname); - - view_item->image = g_fscache_lookup_full(pixmap_cache, - path, FSCACHE_LOOKUP_ONLY_NEW, NULL); - } - if (!view_item->image) - { - view_item->image = di_image(item); - if (view_item->image) - g_object_ref(view_item->image); - } - } - - size = icon->view_details->filer_window->display_style_wanted; - - if (size == AUTO_SIZE_ICONS) - { - if (!view_item->image || view_item->image == di_image(item)) - size = SMALL_ICONS; - else - size = HUGE_ICONS; - } - if (size == HUGE_ICONS && view_item->image && - !view_item->image->huge_pixbuf) - pixmap_make_huge(view_item->image); - - return size; -} - -static void cell_icon_get_size(GtkCellRenderer *cell, - GtkWidget *widget, - GdkRectangle *cell_area, - gint *x_offset, - gint *y_offset, - gint *width, - gint *height) -{ - MaskedPixmap *image; - DisplayStyle size; - int w, h; - - size = get_style(cell); - image = ((CellIcon *) cell)->item->image; - - if (x_offset) - *x_offset = 0; - if (y_offset) - *y_offset = 0; - - switch (size) - { - case SMALL_ICONS: - w = SMALL_WIDTH; - h = SMALL_HEIGHT; - break; - case LARGE_ICONS: - if (image) - { - w = image->width; - h = image->height; - } - else - { - w = ICON_WIDTH; - h = ICON_HEIGHT; - } - break; - case HUGE_ICONS: - if (image) - { - w = image->huge_width; - h = image->huge_height; - } - else - { - w = HUGE_WIDTH; - h = HUGE_HEIGHT; - } - break; - default: - w = 2; - h = 2; - break; - } - - if (width) - *width = w; - if (height) - *height = h; -} - -static void cell_icon_render(GtkCellRenderer *cell, - GdkWindow *window, - GtkWidget *widget, - GdkRectangle *background_area, - GdkRectangle *cell_area, - GdkRectangle *expose_area, - guint flags) -{ - CellIcon *icon = (CellIcon *) cell; - ViewItem *view_item = icon->item; - DirItem *item; - DisplayStyle size; - gboolean selected = (flags & GTK_CELL_RENDERER_SELECTED) != 0; - GdkColor *color; - - g_return_if_fail(view_item != NULL); - - item = view_item->item; - size = get_style(cell); - color = &widget->style->base[icon->view_details->filer_window->selection_state]; - - /* Draw the icon */ - - if (!view_item->image) - return; - - switch (size) - { - case SMALL_ICONS: - { - GdkRectangle area = *cell_area; - area.width = MIN(area.width, SMALL_WIDTH); - area.x = cell_area->x + cell_area->width - area.width; - draw_small_icon(window, widget->style, &area, item, - view_item->image, selected, color); - - break; - } - case LARGE_ICONS: - draw_large_icon(window, widget->style, cell_area, item, - view_item->image, selected, color); - break; - case HUGE_ICONS: - if (!di_image(item)->huge_pixbuf) - pixmap_make_huge(di_image(item)); - draw_huge_icon(window, widget->style, cell_area, item, - view_item->image, selected, color); - break; - default: - g_warning("Unknown size %d\n", size); - break; - } -} diff --git a/ROX-Filer/src/cell_icon.h b/ROX-Filer/src/cell_icon.h deleted file mode 100644 index 187de7de..00000000 --- a/ROX-Filer/src/cell_icon.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _CELL_ICON_H -#define _CELL_ICON_H - -GtkCellRenderer *cell_icon_new(ViewDetails *view_details); - -#endif /* _CELL_ICON_H */ diff --git a/ROX-Filer/src/choices.c b/ROX-Filer/src/choices.c deleted file mode 100644 index 7026b3fb..00000000 --- a/ROX-Filer/src/choices.c +++ /dev/null @@ -1,446 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ -/* choices.c - code for handling loading and saving of user choices */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "global.h" - -#include "gui_support.h" - -#include "choices.h" - -static gboolean saving_disabled = TRUE; -static gchar **dir_list = NULL; -static gchar **xdg_dir_list = NULL; -static int xdg_dir_count= 0 ; - -static struct migration { - const char *dir; - const char *site; - int symlink; -} to_migrate[]={ - {"ROX-Filer", SITE, TRUE}, - {"SendTo", SITE, TRUE}, - {"Templates", SITE, TRUE}, - {"MIME-types", SITE, TRUE}, - {"MIME-icons", SITE, TRUE}, - {"MIME-thumb", SITE, TRUE}, - - {NULL, NULL, 0} -}; - -/* Static prototypes */ -static gboolean exists(char *path); -static void migrate_choices(void); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - - -/* Reads in CHOICESPATH and constructs the directory list table. - * You must call this before using any other choices_* functions. - * - * If CHOICESPATH does not exist then a suitable default is used. - */ -void choices_init(void) -{ - char *choices; - const char *env; - char **dirs; - int i, n; - - g_return_if_fail(dir_list == NULL); - - /* Initialize old system */ - choices = getenv("CHOICESPATH"); - - if (choices) - { - if (*choices != ':' && *choices != '\0') - saving_disabled = FALSE; - - while (*choices == ':') - choices++; - - if (*choices == '\0') - { - dir_list = g_new(char *, 1); - dir_list[0] = NULL; - } - else - dir_list = g_strsplit(choices, ":", 0); - } - else - { - saving_disabled = FALSE; - - dir_list = g_new(gchar *, 4); - dir_list[0] = g_build_filename(g_get_home_dir(), "Choices", - NULL); - dir_list[1] = g_strdup("/usr/local/share/Choices"); - dir_list[2] = g_strdup("/usr/share/Choices"); - dir_list[3] = NULL; - } - - /* Initialize new system */ - env = getenv("XDG_CONFIG_DIRS"); - if (!env) - env = "/etc/xdg"; - dirs = g_strsplit(env, ":", 0); - g_return_if_fail(dirs != NULL); - for (n = 0; dirs[n]; n++) - ; - for (i = n; i > 0; i--) - dirs[i] = dirs[i - 1]; - env = getenv("XDG_CONFIG_HOME"); - if (env) - dirs[0] = g_strdup(env); - else - dirs[0] = g_build_filename(g_get_home_dir(), ".config", NULL); - - xdg_dir_list = dirs; - xdg_dir_count = n + 1; - -#if 0 - { - gchar **cdir = dir_list; - - for(i=0; ilen; i++) - g_free(g_ptr_array_index(list, i)); - - g_ptr_array_free(list, TRUE); -} - -/* Get the pathname of a choices file to load. Eg: - * - * choices_find_path_load("menus", "ROX-Filer") - * -> "/usr/local/share/Choices/ROX-Filer/menus". - * - * The return values may be NULL - use built-in defaults. - * g_free() the result. - */ -static gchar *choices_find_path_load(const char *leaf, const char *dir) -{ - gchar **cdir = dir_list; - - g_return_val_if_fail(dir_list != NULL, NULL); - - for (; *cdir; cdir++) - { - gchar *path; - - path = g_build_filename(*cdir, dir, leaf, NULL); - - if (exists(path)) - return path; - - g_free(path); - } - - return NULL; -} - -/* Get the pathname of a choices file to load, using the XDG paths. Eg: - * - * choices_find_xdg_path_load("menus", "ROX-Filer", "rox.sourceforge.net") - * -> "/etc/xdg/rox.sourceforge.net/ROX-Filer/menus". - * - * Falls back on choices_find_path_load(leaf, dir) if it fails - * The return values may be NULL - use built-in defaults. - * g_free() the result. - */ -gchar *choices_find_xdg_path_load(const char *leaf, const char *dir, - const char *site) -{ - int i; - - g_return_val_if_fail(dir_list != NULL, NULL); - - for (i=0; i -#include - -static void migrate_choices(void) -{ - gchar *opath, *npath; - int failed=0; - int i; - gchar *src, *dest; - gboolean migrated_something = FALSE; - - npath=choices_find_xdg_path_save("...", PROJECT, SITE, FALSE); - opath=choices_find_path_save("...", PROJECT,FALSE); - - /* - dest=choices_find_xdg_path_save(".", PROJECT, SITE, TRUE); - g_free(dest); - */ - - for(i=0; to_migrate[i].dir; i++) { - src=g_build_filename(dir_list[0], to_migrate[i].dir, NULL); - dest=choices_find_xdg_path_save(NULL, NULL, - to_migrate[i].site, TRUE); - g_free(dest); - dest=choices_find_xdg_path_save(NULL, - to_migrate[i].dir, - to_migrate[i].site, - FALSE); - errno=0; - if(exists(src)) { - if(rename(src, dest)==0) { - if(to_migrate[i].symlink) - symlink(dest, src); - migrated_something = TRUE; - } else { - g_warning("rename(%s, %s): %s\n", - src, dest, - g_strerror(errno)); - failed++; - } - } else if(to_migrate[i].symlink) { - /* - if(!exists(dir_list[0])) { - if (mkdir(dir_list[0], 0777)) - g_warning("mkdir(%s): %s\n", - dir_list[0], - g_strerror(errno)); - } - symlink(dest, src); - */ - } - g_free(src); - g_free(dest); - } - - if (migrated_something) - { - gchar *failed_msg = NULL; - if (failed) - failed_msg = g_strdup_printf(_("%d directories could not be migrated"), - failed); - info_message(_("Choices have been moved from \n" - "%s\n " - "to the new location \n" - "%s\n%s"), - opath, npath, failed_msg ? failed_msg : ""); - g_free(failed_msg); - } - - g_free(opath); - g_free(npath); -} diff --git a/ROX-Filer/src/choices.h b/ROX-Filer/src/choices.h deleted file mode 100644 index eaab2846..00000000 --- a/ROX-Filer/src/choices.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * By Thomas Leonard, . - */ - -#ifndef _CHOICES_H -#define _CHOICES_H - -void choices_init (void); -void choices_migrate (void); - -void choices_free_list (GPtrArray *list); -gchar *choices_find_xdg_path_load(const char *leaf, const char *dir, - const char *site); -gchar *choices_find_xdg_path_save(const char *leaf, const char *dir, - const char *site, gboolean create); -GPtrArray *choices_list_xdg_dirs(char *dir, char *site); - - -#endif /* _CHOICES_H */ diff --git a/ROX-Filer/src/collection.c b/ROX-Filer/src/collection.c deleted file mode 100644 index bacd9bb0..00000000 --- a/ROX-Filer/src/collection.c +++ /dev/null @@ -1,1860 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * The collection widget provides an area for displaying a collection of - * objects (such as files). It allows the user to choose a selection of - * them and provides signals to allow popping up menus, detecting - * double-clicks etc. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "config.h" - -#include - -#include -#include -#include "global.h" - -#include "collection.h" - -#define MIN_WIDTH 80 -#define MIN_HEIGHT 60 -#define MINIMUM_ITEMS 16 - -#define MAX_WINKS 5 /* Should be an odd number */ - -/* Macro to emit the "selection_changed" signal only if allowed */ -#define EMIT_SELECTION_CHANGED(collection, time) \ - if (!collection->block_selection_changed) \ - g_signal_emit(collection, \ - collection_signals[SELECTION_CHANGED], 0, time) - -enum -{ - PROP_0, - PROP_VADJUSTMENT -}; - -/* Signals: - * - * void gain_selection(collection, time, user_data) - * We've gone from no selected items to having a selection. - * Time is the time of the event that caused the change, or - * GDK_CURRENT_TIME if not known. - * - * void lose_selection(collection, time, user_data) - * We've dropped to having no selected items. - * Time is the time of the event that caused the change, or - * GDK_CURRENT_TIME if not known. - * - * void selection_changed(collection, user_data) - * The set of selected items has changed. - * Time is the time of the event that caused the change, or - * GDK_CURRENT_TIME if not known. - */ -enum -{ - GAIN_SELECTION, - LOSE_SELECTION, - SELECTION_CHANGED, - LAST_SIGNAL -}; - -static guint collection_signals[LAST_SIGNAL] = { 0 }; - -static guint32 current_event_time = GDK_CURRENT_TIME; - -static GtkWidgetClass *parent_class = NULL; - -/* Static prototypes */ -static void draw_one_item(Collection *collection, - int item, - GdkRectangle *area); -static void collection_class_init(GObjectClass *gclass, gpointer data); -static void collection_init(GTypeInstance *object, gpointer g_class); -static void collection_destroy(GtkObject *object); -static void collection_finalize(GObject *object); -static void collection_realize(GtkWidget *widget); -static void collection_map(GtkWidget *widget); -static void collection_size_request(GtkWidget *widget, - GtkRequisition *requisition); -static void collection_size_allocate(GtkWidget *widget, - GtkAllocation *allocation); -static void collection_set_adjustment(Collection *collection, - GtkAdjustment *vadj); -static void collection_get_property(GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); -static void collection_set_property(GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static gint collection_expose(GtkWidget *widget, GdkEventExpose *event); -static void default_draw_item(GtkWidget *widget, - CollectionItem *data, - GdkRectangle *area, - gpointer user_data); -static gboolean default_test_point(Collection *collection, - int point_x, int point_y, - CollectionItem *data, - int width, int height, - gpointer user_data); -static gint collection_motion_notify(GtkWidget *widget, - GdkEventMotion *event); -static void add_lasso_box(Collection *collection); -static void abort_lasso(Collection *collection); -static void remove_lasso_box(Collection *collection); -static void draw_lasso_box(Collection *collection); -static void cancel_wink(Collection *collection); -static gint collection_key_press(GtkWidget *widget, GdkEventKey *event); -static void get_visible_limits(Collection *collection, int *first, int *last); -static void scroll_to_show(Collection *collection, int item); -static void collection_item_set_selected(Collection *collection, - gint item, - gboolean selected, - gboolean signal); -static gint collection_scroll_event(GtkWidget *widget, GdkEventScroll *event); -static int collection_get_rows(const Collection *collection); -static int collection_get_cols(const Collection *collection); - - -/* The number of rows, at least 1. */ -static inline int collection_get_rows(const Collection *collection) -{ - int rows = (collection->number_of_items + collection->columns - 1) / - collection->columns; - return MAX(rows, 1); -} - -/* The number of columns _actually_ displayed, at least 1. This - * function is required in vertical_order layout-based manipulation - * such as moving the cursor to detect the last column. */ -static inline int collection_get_cols(const Collection *collection) -{ - if (collection->vertical_order) - { - int rows = collection_get_rows(collection); - int cols = (collection->number_of_items + rows - 1) / rows; - return MAX(1, cols); - } - else - return collection->columns; -} - -static void draw_focus_at(Collection *collection, GdkRectangle *area) -{ - GtkWidget *widget; - GtkStateType state; - - widget = GTK_WIDGET(collection); - - if (GTK_WIDGET_FLAGS(widget) & GTK_HAS_FOCUS) - state = GTK_STATE_ACTIVE; - else - state = GTK_STATE_INSENSITIVE; - - gtk_paint_focus(widget->style, - widget->window, - state, - NULL, - widget, - "collection", - area->x, area->y, - collection->item_width, - area->height); -} - -static void draw_one_item(Collection *collection, int item, GdkRectangle *area) -{ - if (item < collection->number_of_items) - { - collection->draw_item((GtkWidget *) collection, - &collection->items[item], - area, collection->cb_user_data); - } - - if (item == collection->cursor_item) - draw_focus_at(collection, area); -} - -GType collection_get_type(void) -{ - static GType my_type = 0; - - if (!my_type) - { - static const GTypeInfo info = - { - sizeof(CollectionClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - (GClassInitFunc) collection_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(Collection), - 0, /* n_preallocs */ - collection_init - }; - - my_type = g_type_register_static(gtk_widget_get_type(), - "Collection", &info, 0); - } - - return my_type; -} - -typedef void (*FinalizeFn)(GObject *object); - -static void collection_class_init(GObjectClass *gclass, gpointer data) -{ - CollectionClass *collection_class = (CollectionClass *) gclass; - GtkObjectClass *object_class = (GtkObjectClass *) gclass; - GtkWidgetClass *widget_class = (GtkWidgetClass *) gclass; - - parent_class = gtk_type_class(gtk_widget_get_type()); - - object_class->destroy = collection_destroy; - G_OBJECT_CLASS(object_class)->finalize = - (FinalizeFn) collection_finalize; - - widget_class->realize = collection_realize; - widget_class->expose_event = collection_expose; - widget_class->size_request = collection_size_request; - widget_class->size_allocate = collection_size_allocate; - - widget_class->key_press_event = collection_key_press; - - widget_class->motion_notify_event = collection_motion_notify; - widget_class->map = collection_map; - widget_class->scroll_event = collection_scroll_event; - - gclass->set_property = collection_set_property; - gclass->get_property = collection_get_property; - - collection_class->gain_selection = NULL; - collection_class->lose_selection = NULL; - collection_class->selection_changed = NULL; - - collection_signals[GAIN_SELECTION] = g_signal_new("gain_selection", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(CollectionClass, - gain_selection), - NULL, NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - collection_signals[LOSE_SELECTION] = g_signal_new("lose_selection", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(CollectionClass, - lose_selection), - NULL, NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - collection_signals[SELECTION_CHANGED] = g_signal_new( - "selection_changed", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(CollectionClass, - selection_changed), - NULL, NULL, - g_cclosure_marshal_VOID__INT, - G_TYPE_NONE, 1, - G_TYPE_INT); - - g_object_class_install_property(gclass, - PROP_VADJUSTMENT, - g_param_spec_object("vadjustment", - "Vertical Adjustment", - "The GtkAdjustment for the vertical position.", - GTK_TYPE_ADJUSTMENT, - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); -} - -static void collection_init(GTypeInstance *instance, gpointer g_class) -{ - Collection *object = (Collection *) instance; - - g_return_if_fail(object != NULL); - g_return_if_fail(IS_COLLECTION(object)); - - GTK_WIDGET_SET_FLAGS(GTK_WIDGET(object), GTK_CAN_FOCUS); - - object->number_of_items = 0; - object->number_selected = 0; - object->block_selection_changed = 0; - object->columns = 1; - object->vertical_order = FALSE; - object->item_width = 64; - object->item_height = 64; - object->vadj = NULL; - - object->items = g_new(CollectionItem, MINIMUM_ITEMS); - object->cursor_item = -1; - object->cursor_item_old = -1; - object->wink_item = -1; - object->wink_on_map = -1; - object->array_size = MINIMUM_ITEMS; - object->draw_item = default_draw_item; - object->test_point = default_test_point; - object->free_item = NULL; -} - -GtkWidget* collection_new(void) -{ - return GTK_WIDGET(gtk_widget_new(collection_get_type(), NULL)); -} - -/* After this we are unusable, but our data (if any) is still hanging around. - * It will be freed later with finalize. - */ -static void collection_destroy(GtkObject *object) -{ - Collection *collection; - - g_return_if_fail(object != NULL); - g_return_if_fail(IS_COLLECTION(object)); - - collection = COLLECTION(object); - - collection_clear(collection); - - if (collection->vadj) - { - g_object_unref(G_OBJECT(collection->vadj)); - collection->vadj = NULL; - } - - if (GTK_OBJECT_CLASS(parent_class)->destroy) - (*GTK_OBJECT_CLASS(parent_class)->destroy)(object); -} - -/* This is the last thing that happens to us. Free all data. */ -static void collection_finalize(GObject *object) -{ - Collection *collection; - - collection = COLLECTION(object); - - g_return_if_fail(collection->number_of_items == 0); - - g_free(collection->items); - - if (G_OBJECT_CLASS(parent_class)->finalize) - G_OBJECT_CLASS(parent_class)->finalize(object); -} - -static void collection_map(GtkWidget *widget) -{ - Collection *collection = COLLECTION(widget); - - if (GTK_WIDGET_CLASS(parent_class)->map) - (*GTK_WIDGET_CLASS(parent_class)->map)(widget); - - if (collection->wink_on_map >= 0) - { - collection_wink_item(collection, collection->wink_on_map); - collection->wink_on_map = -1; - } -} - -static void collection_realize(GtkWidget *widget) -{ - Collection *collection; - GdkWindowAttr attributes; - gint attributes_mask; - GdkGCValues xor_values; - GdkColor *bg, *fg; - - g_return_if_fail(widget != NULL); - g_return_if_fail(IS_COLLECTION(widget)); - g_return_if_fail(widget->parent != NULL); - - GTK_WIDGET_SET_FLAGS(widget, GTK_REALIZED); - collection = COLLECTION(widget); - - attributes.x = widget->allocation.x; - attributes.y = widget->allocation.y; - attributes.width = widget->allocation.width; - attributes.height = widget->allocation.height; - attributes.wclass = GDK_INPUT_OUTPUT; - attributes.window_type = GDK_WINDOW_CHILD; - attributes.event_mask = gtk_widget_get_events(widget) | - GDK_EXPOSURE_MASK | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON3_MOTION_MASK; - attributes.visual = gtk_widget_get_visual(widget); - attributes.colormap = gtk_widget_get_colormap(widget); - - attributes_mask = GDK_WA_X | GDK_WA_Y | - GDK_WA_VISUAL | GDK_WA_COLORMAP; - widget->window = gdk_window_new(gtk_widget_get_parent_window(widget), - &attributes, attributes_mask); - - widget->style = gtk_style_attach(widget->style, widget->window); - - gdk_window_set_user_data(widget->window, widget); - gdk_window_set_background(widget->window, - &widget->style->base[GTK_STATE_NORMAL]); - - bg = &widget->style->base[GTK_STATE_NORMAL]; - fg = &widget->style->text[GTK_STATE_NORMAL]; - xor_values.function = GDK_XOR; - xor_values.foreground.pixel = fg->pixel ^ bg->pixel; - collection->xor_gc = gdk_gc_new_with_values(widget->window, - &xor_values, - GDK_GC_FOREGROUND - | GDK_GC_FUNCTION); -} - -static void collection_size_request(GtkWidget *widget, - GtkRequisition *requisition) -{ - Collection *collection = COLLECTION(widget); - int rows; - - /* We ask for the total size we need; our containing viewport - * will deal with scrolling. - */ - requisition->width = MIN_WIDTH; - rows = collection_get_rows(collection); - requisition->height = rows * collection->item_height; -} - -static gboolean scroll_after_alloc(Collection *collection) -{ - if (collection->wink_item != -1) - scroll_to_show(collection, collection->wink_item); - else if (collection->cursor_item != -1) - scroll_to_show(collection, collection->cursor_item); - g_object_unref(G_OBJECT(collection)); - - return FALSE; -} - -static void collection_size_allocate(GtkWidget *widget, - GtkAllocation *allocation) -{ - Collection *collection; - int old_columns; - gboolean cursor_visible = FALSE; - - g_return_if_fail(widget != NULL); - g_return_if_fail(IS_COLLECTION(widget)); - g_return_if_fail(allocation != NULL); - - collection = COLLECTION(widget); - - if (collection->cursor_item != -1) - { - int first, last; - int crow, ccol; - - collection_item_to_rowcol(collection, collection->cursor_item, - &crow, &ccol); - - get_visible_limits(collection, &first, &last); - - cursor_visible = crow >= first && crow <= last; - } - - old_columns = collection->columns; - - widget->allocation = *allocation; - - collection->columns = allocation->width / collection->item_width; - if (collection->columns < 1) - collection->columns = 1; - - if (GTK_WIDGET_REALIZED(widget)) - { - gdk_window_move_resize(widget->window, - allocation->x, allocation->y, - allocation->width, allocation->height); - - if (cursor_visible) - scroll_to_show(collection, collection->cursor_item); - } - - if (old_columns != collection->columns) - { - /* Need to go around again... */ - gtk_widget_queue_resize(widget); - } - else if (collection->wink_item != -1 || collection->cursor_item != -1) - { - /* Viewport resets the adjustments after the alloc */ - g_object_ref(G_OBJECT(collection)); - g_idle_add((GSourceFunc) scroll_after_alloc, collection); - } -} - -/* Return the area occupied by the item at (row, col) by filling - * in 'area'. - */ -static void collection_get_item_area(Collection *collection, - int row, int col, - GdkRectangle *area) - -{ - area->x = col * collection->item_width; - area->y = row * collection->item_height; - - area->width = collection->item_width; - area->height = collection->item_height; - if (col == collection->columns - 1) - area->width <<= 1; -} - -static gint collection_expose(GtkWidget *widget, GdkEventExpose *event) -{ - Collection *collection; - GdkRectangle item_area; - int row, col; - int item; - int start_row, last_row; - int start_col, last_col; - int phys_last_col; - - g_return_val_if_fail(widget != NULL, FALSE); - g_return_val_if_fail(IS_COLLECTION(widget), FALSE); - g_return_val_if_fail(event != NULL, FALSE); - - /* Note about 'detail' argument: - * - If set to "base", lighthouse theme will crash - * - If set to NULL, cleanice theme will crash - * - * Clear the background only if we have a background pixmap. - */ - if (widget->style->bg_pixmap[GTK_STATE_NORMAL]) - gtk_paint_flat_box(widget->style, widget->window, GTK_STATE_NORMAL, - GTK_SHADOW_NONE, &event->area, - widget, "collection", 0, 0, -1, -1); - - collection = COLLECTION(widget); - - /* Calculate the ranges to plot */ - start_row = event->area.y / collection->item_height; - last_row = (event->area.y + event->area.height - 1) - / collection->item_height; - - if (last_row >= collection_get_rows(collection)) - last_row = collection_get_rows(collection) - 1; - - start_col = event->area.x / collection->item_width; - phys_last_col = (event->area.x + event->area.width - 1) - / collection->item_width; - - /* The right-most column may be wider than the others. - * Therefore, to redraw the area after the last 'real' column - * we may have to draw the right-most column. - */ - if (start_col >= collection->columns) - start_col = collection->columns - 1; - - if (phys_last_col >= collection->columns) - last_col = collection->columns - 1; - else - last_col = phys_last_col; - - - for(row = start_row; row <= last_row; row++) - for(col = start_col; col <= last_col; col++) - { - item = collection_rowcol_to_item(collection, row, col); - if (item == 0 || item < collection->number_of_items) { - collection_get_item_area(collection, - row, col, &item_area); - draw_one_item(collection, item, &item_area); - } - } - - if (collection->lasso_box) - draw_lasso_box(collection); - - return FALSE; -} - -static void default_draw_item(GtkWidget *widget, - CollectionItem *item, - GdkRectangle *area, - gpointer user_data) -{ - gdk_draw_arc(widget->window, - item->selected ? widget->style->white_gc - : widget->style->black_gc, - TRUE, - area->x, area->y, - COLLECTION(widget)->item_width, area->height, - 0, 360 * 64); -} - - -static gboolean default_test_point(Collection *collection, - int point_x, int point_y, - CollectionItem *item, - int width, int height, - gpointer user_data) -{ - float f_x, f_y; - - /* Convert to point in unit circle */ - f_x = ((float) point_x / width) - 0.5; - f_y = ((float) point_y / height) - 0.5; - - return (f_x * f_x) + (f_y * f_y) <= .25; -} - -static void collection_set_property(GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - Collection *collection; - - collection = COLLECTION(object); - - switch (prop_id) - { - case PROP_VADJUSTMENT: - collection_set_adjustment(collection, - g_value_get_object(value)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, - prop_id, pspec); - break; - } -} - -static void collection_set_adjustment(Collection *collection, - GtkAdjustment *vadj) -{ - if (vadj) - g_return_if_fail(GTK_IS_ADJUSTMENT(vadj)); - else - vadj = GTK_ADJUSTMENT(gtk_adjustment_new(0.0, - 0.0, 0.0, - 0.0, 0.0, 0.0)); - - if (collection->vadj == vadj) - return; - - if (collection->vadj) - g_object_unref(G_OBJECT(collection->vadj)); - - collection->vadj = vadj; - g_object_ref(G_OBJECT(collection->vadj)); - gtk_object_sink(GTK_OBJECT(collection->vadj)); -} - -static void collection_get_property(GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - Collection *collection; - - collection = COLLECTION(object); - - switch (prop_id) - { - case PROP_VADJUSTMENT: - g_value_set_object(value, G_OBJECT(collection->vadj)); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID(object, - prop_id, pspec); - break; - } -} - -static void resize_arrays(Collection *collection, guint new_size) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(new_size >= collection->number_of_items); - - collection->items = g_realloc(collection->items, - sizeof(CollectionItem) * new_size); - collection->array_size = new_size; -} - -static gint collection_key_press(GtkWidget *widget, GdkEventKey *event) -{ - Collection *collection; - int key; - - g_return_val_if_fail(widget != NULL, FALSE); - g_return_val_if_fail(IS_COLLECTION(widget), FALSE); - g_return_val_if_fail(event != NULL, FALSE); - - collection = (Collection *) widget; - - key = event->keyval; - if (event->state & (GDK_CONTROL_MASK | GDK_SHIFT_MASK)) - { - if (key == GDK_Left || key == GDK_Right || \ - key == GDK_Up || key == GDK_Down) - return TRUE; - return FALSE; - } - - switch (key) - { - case GDK_Left: - collection_move_cursor(collection, 0, -1); - break; - case GDK_Right: - collection_move_cursor(collection, 0, 1); - break; - case GDK_Up: - collection_move_cursor(collection, -1, 0); - break; - case GDK_Down: - collection_move_cursor(collection, 1, 0); - break; - case GDK_Home: - collection_set_cursor_item(collection, 0, TRUE); - break; - case GDK_End: - collection_set_cursor_item(collection, - MAX((gint) collection->number_of_items - 1, 0), - TRUE); - break; - case GDK_Page_Up: - { - int first, last; - get_visible_limits(collection, &first, &last); - collection_move_cursor(collection, first - last - 1, 0); - break; - } - case GDK_Page_Down: - { - int first, last; - get_visible_limits(collection, &first, &last); - collection_move_cursor(collection, last - first + 1, 0); - break; - } - default: - return FALSE; - } - - return TRUE; -} - -/* Wheel mouse scrolling */ -static gint collection_scroll_event(GtkWidget *widget, GdkEventScroll *event) -{ - Collection *collection; - int diff = 0; - - g_return_val_if_fail(widget != NULL, FALSE); - g_return_val_if_fail(IS_COLLECTION(widget), FALSE); - g_return_val_if_fail(event != NULL, FALSE); - - collection = COLLECTION(widget); - - if (event->direction == GDK_SCROLL_UP) - diff = -1; - else if (event->direction == GDK_SCROLL_DOWN) - diff = 1; - else - return FALSE; - - if (diff) - { - int old_value = collection->vadj->value; - int new_value = 0; - gboolean box = collection->lasso_box; - int step = collection->vadj->page_increment / 2; - - new_value = CLAMP(old_value + diff * step, 0.0, - collection->vadj->upper - - collection->vadj->page_size); - diff = new_value - old_value; - if (diff) - { - if (box) - { - remove_lasso_box(collection); - collection->drag_box_y[0] -= diff; - } - gtk_adjustment_set_value(collection->vadj, new_value); - if (box) - add_lasso_box(collection); - } - } - - return TRUE; -} - -/* 'from' and 'to' are pixel positions. 'step' is the size of each item. - * Returns the index of the first item covered, and the number of items. - */ -static void get_range(int from, int to, int step, gint *pos, gint *len) -{ - int margin = MIN(step / 4, 40); - - if (from > to) - { - int tmp = to; - to = from; - from = tmp; - } - - from = (from + margin) / step; /* First item */ - to = (to + step - margin) / step; /* Last item (inclusive) */ - - *pos = MAX(from, 0); - *len = to - *pos; -} - -/* Fills in the area with a rectangle corresponding to the current - * size of the lasso box (units of items, not pixels). - * - * The box will only span valid columns, but the total number - * of items is not taken into account (rows or cols). - */ -static void find_lasso_area(Collection *collection, GdkRectangle *area) -{ - int cols = collection->columns; - int dx = collection->drag_box_x[0] - collection->drag_box_x[1]; - int dy = collection->drag_box_y[0] - collection->drag_box_y[1]; - - if (ABS(dx) < 8 && ABS(dy) < 8) - { - /* Didn't move far enough - ignore */ - area->x = area->y = 0; - area->width = 0; - area->height = 0; - return; - } - - get_range(collection->drag_box_x[0], collection->drag_box_x[1], - collection->item_width, &area->x, &area->width); - - if (area->x >= cols) - area->width = 0; - else if (area->x + area->width > cols) - area->width = cols - area->x; - - get_range(collection->drag_box_y[0], collection->drag_box_y[1], - collection->item_height, &area->y, &area->height); -} - -static void collection_process_area(Collection *collection, - GdkRectangle *area, - GdkFunction fn, - guint32 time) -{ - int x, y; - int rows = collection_get_rows(collection); - int cols = collection->columns; - guint32 stacked_time; - int item; - gboolean changed = FALSE; - guint old_selected; - - g_return_if_fail(fn == GDK_SET || fn == GDK_INVERT); - - old_selected = collection->number_selected; - - stacked_time = current_event_time; - current_event_time = time; - - collection->block_selection_changed++; - - for (y = area->y; y < area->y + area->height && y < rows; y++) - for (x = area->x; x < area->x + area->width && x < cols; x++) - { - item = collection_rowcol_to_item(collection, y, x); - if (item < collection->number_of_items) { - if (fn == GDK_INVERT) - collection_item_set_selected( - collection, item, - !collection-> items[item].selected, - FALSE); - else - collection_item_set_selected( - collection, item, TRUE, FALSE); - - changed = TRUE; - } - } - - if (collection->number_selected && !old_selected) - g_signal_emit(collection, - collection_signals[GAIN_SELECTION], 0, - current_event_time); - else if (!collection->number_selected && old_selected) - g_signal_emit(collection, - collection_signals[LOSE_SELECTION], 0, - current_event_time); - - collection_unblock_selection_changed(collection, - current_event_time, changed); - current_event_time = stacked_time; -} - -static gint collection_motion_notify(GtkWidget *widget, - GdkEventMotion *event) -{ - Collection *collection; - gint x, y; - - g_return_val_if_fail(widget != NULL, FALSE); - g_return_val_if_fail(IS_COLLECTION(widget), FALSE); - g_return_val_if_fail(event != NULL, FALSE); - - collection = COLLECTION(widget); - - if (!collection->lasso_box) - return FALSE; - - if (event->window != widget->window) - gdk_window_get_pointer(widget->window, &x, &y, NULL); - else - { - x = event->x; - y = event->y; - } - - remove_lasso_box(collection); - collection->drag_box_x[1] = x; - collection->drag_box_y[1] = y; - add_lasso_box(collection); - return TRUE; -} - -static void add_lasso_box(Collection *collection) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(collection->lasso_box == FALSE); - - collection->lasso_box = TRUE; - draw_lasso_box(collection); -} - -static void draw_lasso_box(Collection *collection) -{ - GtkWidget *widget; - int x, y, width, height; - - widget = GTK_WIDGET(collection); - - x = MIN(collection->drag_box_x[0], collection->drag_box_x[1]); - y = MIN(collection->drag_box_y[0], collection->drag_box_y[1]); - width = abs(collection->drag_box_x[1] - collection->drag_box_x[0]); - height = abs(collection->drag_box_y[1] - collection->drag_box_y[0]); - - /* XXX: A redraw bug sometimes leaves a one-pixel dot on the screen. - * As a quick hack, don't draw boxes that small for now... - */ - if (width || height) - gdk_draw_rectangle(widget->window, collection->xor_gc, FALSE, - x, y, width, height); -} - -static void abort_lasso(Collection *collection) -{ - if (collection->lasso_box) - remove_lasso_box(collection); -} - -static void remove_lasso_box(Collection *collection) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(collection->lasso_box == TRUE); - - draw_lasso_box(collection); - - collection->lasso_box = FALSE; - - return; -} - -/* Make sure that 'item' is fully visible (vertically), scrolling if not. */ -static void scroll_to_show(Collection *collection, int item) -{ - int first, last, row, col; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - collection_item_to_rowcol(collection, item, &row, &col); - get_visible_limits(collection, &first, &last); - - if (row <= first) - { - gtk_adjustment_set_value(collection->vadj, - row * collection->item_height); - } - else if (row >= last) - { - GtkWidget *widget = (GtkWidget *) collection; - gint height; - - if (GTK_WIDGET_REALIZED(widget)) - { - height = collection->vadj->page_size; - gtk_adjustment_set_value(collection->vadj, - (row + 1) * collection->item_height - height); - } - } -} - -/* Return the first and last rows which are [partly] visible. Does not - * ensure that the rows actually exist (contain items). - */ -static void get_visible_limits(Collection *collection, int *first, int *last) -{ - GtkWidget *widget = (GtkWidget *) collection; - gint scroll = 0, height; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(first != NULL && last != NULL); - - if (!GTK_WIDGET_REALIZED(widget)) - { - *first = 0; - *last = 0; - } - else - { - scroll = collection->vadj->value; - height = collection->vadj->page_size; - - *first = MAX(scroll / collection->item_height, 0); - *last = (scroll + height - 1) /collection->item_height; - - if (*last < *first) - *last = *first; - } -} - -/* Cancel the current wink effect. */ -static void cancel_wink(Collection *collection) -{ - gint item; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(collection->wink_item != -1); - - item = collection->wink_item; - - collection->wink_item = -1; - g_source_remove(collection->wink_timeout); - - collection_draw_item(collection, item, TRUE); -} - -/* Draw/undraw a box around collection->wink_item */ -static void invert_wink(Collection *collection) -{ - GdkRectangle area; - gint row, col; - - g_return_if_fail(collection->wink_item >= 0); - - if (!GTK_WIDGET_REALIZED(GTK_WIDGET(collection))) - return; - - collection_item_to_rowcol(collection, collection->wink_item, - &row, &col); - collection_get_item_area(collection, row, col, &area); - - gdk_draw_rectangle(((GtkWidget *) collection)->window, - collection->xor_gc, FALSE, - area.x, area.y, - collection->item_width - 1, - area.height - 1); -} - -static gboolean wink_timeout(Collection *collection) -{ - gint item; - - g_return_val_if_fail(collection != NULL, FALSE); - g_return_val_if_fail(IS_COLLECTION(collection), FALSE); - g_return_val_if_fail(collection->wink_item != -1, FALSE); - - item = collection->wink_item; - - if (collection->winks_left-- > 0) - { - invert_wink(collection); - return TRUE; - } - - collection->wink_item = -1; - - collection_draw_item(collection, item, TRUE); - - return FALSE; -} - -/* Change the selected state of an item. - * Send GAIN/LOSE signals if 'signal' is TRUE. - * Send SELECTION_CHANGED unless blocked. - * Updates number_selected and redraws the item. - */ -static void collection_item_set_selected(Collection *collection, - gint item, - gboolean selected, - gboolean signal) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(item >= 0 && item < collection->number_of_items); - - if (collection->items[item].selected == selected) - return; - - collection->items[item].selected = selected; - collection_draw_item(collection, item, TRUE); - - if (selected) - { - collection->number_selected++; - if (signal && collection->number_selected == 1) - g_signal_emit(collection, - collection_signals[GAIN_SELECTION], 0, - current_event_time); - } - else - { - collection->number_selected--; - if (signal && collection->number_selected == 0) - g_signal_emit(collection, - collection_signals[LOSE_SELECTION], 0, - current_event_time); - } - - EMIT_SELECTION_CHANGED(collection, current_event_time); -} - -/* Functions for managing collections */ - -/* Remove all objects from the collection */ -void collection_clear(Collection *collection) -{ - collection_delete_if(collection, NULL, NULL); -} - -/* Inserts a new item at the end. The new item is unselected, and its - * number is returned. - */ -gint collection_insert(Collection *collection, gpointer data, gpointer view) -{ - int item; - - /* g_return_val_if_fail(IS_COLLECTION(collection), -1); (slow) */ - - item = collection->number_of_items; - - if (item >= collection->array_size) - resize_arrays(collection, item + (item >> 1)); - - collection->items[item].data = data; - collection->items[item].view_data = view; - collection->items[item].selected = FALSE; - - collection->number_of_items++; - - gtk_widget_queue_resize(GTK_WIDGET(collection)); - - collection_draw_item(collection, item, FALSE); - - return item; -} - -void collection_unselect_item(Collection *collection, gint item) -{ - collection_item_set_selected(collection, item, FALSE, TRUE); -} - -void collection_select_item(Collection *collection, gint item) -{ - collection_item_set_selected(collection, item, TRUE, TRUE); -} - -void collection_toggle_item(Collection *collection, gint item) -{ - collection_item_set_selected(collection, item, - !collection->items[item].selected, TRUE); -} - -/* Select all items in the collection */ -void collection_select_all(Collection *collection) -{ - int item = 0; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - if (collection->number_selected == collection->number_of_items) - return; /* Nothing to do */ - - while (collection->number_selected < collection->number_of_items) - { - while (collection->items[item].selected) - item++; - - collection->items[item].selected = TRUE; - collection_draw_item(collection, item, TRUE); - item++; - - collection->number_selected++; - } - - g_signal_emit(collection, collection_signals[GAIN_SELECTION], 0, - current_event_time); - EMIT_SELECTION_CHANGED(collection, current_event_time); -} - -/* Toggle all items in the collection */ -void collection_invert_selection(Collection *collection) -{ - int item; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - if (collection->number_selected == 0) - { - collection_select_all(collection); - return; - } - else if (collection->number_of_items == collection->number_selected) - { - collection_clear_selection(collection); - return; - } - - for (item = 0; item < collection->number_of_items; item++) - collection->items[item].selected = - !collection->items[item].selected; - - collection->number_selected = collection->number_of_items - - collection->number_selected; - - /* Have to redraw everything... */ - gtk_widget_queue_draw(GTK_WIDGET(collection)); - - EMIT_SELECTION_CHANGED(collection, current_event_time); -} - -/* Unselect all items except number item, which is selected (-1 to unselect - * everything). - */ -void collection_clear_except(Collection *collection, gint item) -{ - int i = 0; - int end; /* Selected items to end up with */ - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(item >= -1 && item < collection->number_of_items); - - if (item == -1) - end = 0; - else - { - collection_select_item(collection, item); - end = 1; - } - - if (collection->number_selected == 0) - return; - - while (collection->number_selected > end) - { - while (i == item || !collection->items[i].selected) - i++; - - collection->items[i].selected = FALSE; - collection_draw_item(collection, i, TRUE); - i++; - - collection->number_selected--; - } - - if (end == 0) - g_signal_emit(collection, collection_signals[LOSE_SELECTION], 0, - current_event_time); - EMIT_SELECTION_CHANGED(collection, current_event_time); -} - -/* Unselect all items in the collection */ -void collection_clear_selection(Collection *collection) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - collection_clear_except(collection, -1); -} - -/* Force a redraw of the specified item, if it is visible */ -void collection_draw_item(Collection *collection, gint item, gboolean blank) -{ - GdkRectangle area; - GtkWidget *widget; - int row, col; - - g_return_if_fail(collection != NULL); - /* g_return_if_fail(IS_COLLECTION(collection)); (slow) */ - g_return_if_fail(item >= 0 && - (item == 0 || item < collection->number_of_items)); - - widget = GTK_WIDGET(collection); - if (!GTK_WIDGET_REALIZED(widget)) - return; - - collection_item_to_rowcol(collection, item, &row, &col); - - collection_get_item_area(collection, row, col, &area); - - gdk_window_invalidate_rect(widget->window, &area, FALSE); -} - -void collection_set_item_size(Collection *collection, int width, int height) -{ - GtkWidget *widget; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(width > 4 && height > 4); - - if (collection->item_width == width && - collection->item_height == height) - return; - - widget = GTK_WIDGET(collection); - - collection->item_width = width; - collection->item_height = height; - - if (GTK_WIDGET_REALIZED(widget)) - { - gint window_width; - - gdk_drawable_get_size(widget->window, &window_width, NULL); - collection->columns = MAX(window_width / collection->item_width, - 1); - if (collection->cursor_item != -1) - scroll_to_show(collection, collection->cursor_item); - gtk_widget_queue_draw(widget); - } - - gtk_widget_queue_resize(GTK_WIDGET(collection)); -} - -static int (*cmp_callback)(const void *a, const void *b) = NULL; -static int collection_cmp(const void *a, const void *b) -{ - return cmp_callback(((CollectionItem *) a)->data, - ((CollectionItem *) b)->data); -} -static int collection_rcmp(const void *a, const void *b) -{ - return -cmp_callback(((CollectionItem *) a)->data, - ((CollectionItem *) b)->data); -} - -/* Cursor is positioned on item with the same data as before the sort. - * Same for the wink item. - */ -void collection_qsort(Collection *collection, - int (*compar)(const void *, const void *), - GtkSortType order) -{ - int cursor, wink, items, wink_on_map; - gpointer cursor_data = NULL; - gpointer wink_data = NULL; - gpointer wink_on_map_data = NULL; - CollectionItem *array; - int i; - int mul = order == GTK_SORT_ASCENDING ? 1 : -1; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(compar != NULL); - g_return_if_fail(cmp_callback == NULL); - - /* Check to see if it needs sorting (saves redrawing) */ - if (collection->number_of_items < 2) - return; - - array = collection->items; - for (i = 1; i < collection->number_of_items; i++) - { - if (mul * compar(array[i - 1].data, array[i].data) > 0) - break; - } - if (i == collection->number_of_items) - return; /* Already sorted */ - - items = collection->number_of_items; - - wink_on_map = collection->wink_on_map; - if (wink_on_map >= 0 && wink_on_map < items) - { - wink_on_map_data = collection->items[wink_on_map].data; - collection->wink_on_map = -1; - } - else - wink = -1; - - wink = collection->wink_item; - if (wink >= 0 && wink < items) - { - wink_data = collection->items[wink].data; - collection->wink_item = -1; - } - else - wink = -1; - - cursor = collection->cursor_item; - if (cursor >= 0 && cursor < items) - cursor_data = collection->items[cursor].data; - else - cursor = -1; - - cmp_callback = compar; - qsort(collection->items, items, sizeof(collection->items[0]), - order == GTK_SORT_ASCENDING ? collection_cmp - : collection_rcmp); - cmp_callback = NULL; - - if (cursor > -1 || wink > -1 || wink_on_map > -1) - { - int item; - - for (item = 0; item < items; item++) - { - if (collection->items[item].data == cursor_data) - collection_set_cursor_item(collection, item, - TRUE); - if (collection->items[item].data == wink_on_map_data) - collection->wink_on_map = item; - if (collection->items[item].data == wink_data) - { - collection->cursor_item_old = item; - collection->wink_item = item; - scroll_to_show(collection, item); - } - } - } - - gtk_widget_queue_draw(GTK_WIDGET(collection)); -} - -/* Find an item in a sorted collection. - * Returns the item number, or -1 if not found. - */ -int collection_find_item(Collection *collection, gpointer data, - int (*compar)(const void *, const void *), - GtkSortType order) -{ - int lower, upper; - int mul = order == GTK_SORT_ASCENDING ? 1 : -1; - - g_return_val_if_fail(collection != NULL, -1); - g_return_val_if_fail(IS_COLLECTION(collection), -1); - g_return_val_if_fail(compar != NULL, -1); - - /* If item is here, then: lower <= i < upper */ - lower = 0; - upper = collection->number_of_items; - - while (lower < upper) - { - int i, cmp; - - i = (lower + upper) >> 1; - - cmp = mul * compar(collection->items[i].data, data); - if (cmp == 0) - return i; - - if (cmp > 0) - upper = i; - else - lower = i + 1; - } - - return -1; -} - -/* Return the number of the item under the point (x,y), or -1 for none. - * This may call your test_point callback. The point is relative to the - * collection's origin. - */ -int collection_get_item(Collection *collection, int x, int y) -{ - int row, col; - int width; - int item; - - g_return_val_if_fail(collection != NULL, -1); - - col = x / collection->item_width; - row = y / collection->item_height; - - if (col >= collection->columns) - col = collection->columns - 1; - - if (col < 0 || row < 0) - return -1; - - if (col == collection->columns - 1) - width = collection->item_width << 1; - else - width = collection->item_width; - - item = collection_rowcol_to_item(collection, row, col); - if (item >= collection->number_of_items) - return -1; - - x -= col * collection->item_width; - y -= row * collection->item_height; - - if (collection->test_point(collection, x, y, - &collection->items[item], width, collection->item_height, - collection->cb_user_data)) - return item; - - return -1; -} - -/* Set the cursor/highlight over the given item. Passing -1 - * hides the cursor. As a special case, you may set the cursor item - * to zero when there are no items. - */ -void collection_set_cursor_item(Collection *collection, gint item, - gboolean may_scroll) -{ - int old_item; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(item >= -1 && - (item < collection->number_of_items || item == 0)); - - old_item = collection->cursor_item; - - if (old_item == item) - return; - - collection->cursor_item = item; - - if (old_item != -1) - collection_draw_item(collection, old_item, TRUE); - - if (item != -1) - { - collection_draw_item(collection, item, TRUE); - if (may_scroll) - scroll_to_show(collection, item); - } - else if (old_item != -1) - collection->cursor_item_old = old_item; -} - -/* Briefly highlight an item to draw the user's attention to it. - * -1 cancels the effect, as does deleting items, sorting the collection - * or starting a new wink effect. - * Otherwise, the effect will cancel itself after a short pause. - * */ -void collection_wink_item(Collection *collection, gint item) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(item >= -1 && item < collection->number_of_items); - - if (collection->wink_item != -1) - cancel_wink(collection); - if (item == -1) - return; - - if (!GTK_WIDGET_MAPPED(GTK_WIDGET(collection))) - { - collection->wink_on_map = item; - return; - } - - collection->cursor_item_old = collection->wink_item = item; - collection->winks_left = MAX_WINKS; - - collection->wink_timeout = g_timeout_add(70, - (GSourceFunc) wink_timeout, - collection); - scroll_to_show(collection, item); - invert_wink(collection); - - gdk_flush(); -} - -/* Call test(item, data) on each item in the collection. - * Remove all items for which it returns TRUE. test() should - * free the data before returning TRUE. The collection is in an - * inconsistant state during this call (ie, when test() is called). - * - * If test is NULL, remove all items. - */ -void collection_delete_if(Collection *collection, - gboolean (*test)(gpointer item, gpointer data), - gpointer data) -{ - int in, out = 0; - int selected = 0; - int cursor; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - cursor = collection->cursor_item; - - for (in = 0; in < collection->number_of_items; in++) - { - if (test && !test(collection->items[in].data, data)) - { - /* Keep item */ - if (collection->items[in].selected) - { - collection->items[out].selected = TRUE; - selected++; - } - else - collection->items[out].selected = FALSE; - - collection->items[out].data = - collection->items[in].data; - collection->items[out].view_data = - collection->items[in].view_data; - out++; - } - else - { - /* Remove item */ - if (collection->free_item) - collection->free_item(collection, - &collection->items[in]); - - if (collection->cursor_item >= in) - cursor--; - } - } - - if (in != out) - { - collection->cursor_item = cursor; - - if (collection->wink_item != -1) - { - collection->wink_item = -1; - g_source_remove(collection->wink_timeout); - } - - collection->number_of_items = out; - if (collection->number_selected && !selected) - { - /* We've lost all the selected items */ - g_signal_emit(collection, - collection_signals[LOSE_SELECTION], 0, - current_event_time); - } - - collection->number_selected = selected; - resize_arrays(collection, - MAX(collection->number_of_items, MINIMUM_ITEMS)); - - if (GTK_WIDGET_REALIZED(GTK_WIDGET(collection))) - gtk_widget_queue_draw(GTK_WIDGET(collection)); - - gtk_widget_queue_resize(GTK_WIDGET(collection)); - } -} - -/* Move the cursor by the given row and column offsets. - * Moving by (0,0) can be used to simply make the cursor appear. - */ -void collection_move_cursor(Collection *collection, int drow, int dcol) -{ - int row, col, item; - int first, last, total_rows, total_cols; - - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - - if (!collection->number_of_items) - { - /* Show the cursor, even though there are no items */ - collection_set_cursor_item(collection, 0, TRUE); - return; - } - - get_visible_limits(collection, &first, &last); - total_rows = collection_get_rows(collection); - total_cols = collection_get_cols(collection); - - item = collection->cursor_item; - if (item == -1) - { - item = MIN(collection->cursor_item_old, - collection->number_of_items - 1); - } - - if (item == -1) - { - col = 0; - row = first; - } - else - { - collection_item_to_rowcol(collection, item, &row, &col); - - col += dcol; - if (collection->vertical_order) - { - col = MAX(0,col); - col = MIN(col, total_cols - 1); - } - - if (row < first) - row = first; - else if (row > last) - row = last; - else { - row += drow; - if (collection->vertical_order) - { - if (row >= total_rows) - { - row = 0; - col += 1; - } - } - else - { - row = MAX(row, 0); - row = MIN(row, total_rows - 1); - } - } - } - - item = collection_rowcol_to_item(collection, row, col); - - item = MAX(item, 0); - item = MIN(item, collection->number_of_items-1); - - collection_set_cursor_item(collection, item, TRUE); -} - -/* Start a lasso box drag */ -void collection_lasso_box(Collection *collection, int x, int y) -{ - collection->drag_box_x[0] = x; - collection->drag_box_y[0] = y; - collection->drag_box_x[1] = x; - collection->drag_box_y[1] = y; - - add_lasso_box(collection); -} - -/* Remove the lasso box. Applies fn to each item inside the box. - * fn may be GDK_INVERT, GDK_SET, GDK_NOOP or GDK_CLEAR. - */ -void collection_end_lasso(Collection *collection, GdkFunction fn) -{ - if (fn != GDK_CLEAR) - { - GdkRectangle region; - - find_lasso_area(collection, ®ion); - - collection_process_area(collection, ®ion, fn, - GDK_CURRENT_TIME); - } - - abort_lasso(collection); -} - -/* Unblock the selection_changed signal, emitting the signal if the - * block counter reaches zero and emit is TRUE. - */ -void collection_unblock_selection_changed(Collection *collection, - guint time, - gboolean emit) -{ - g_return_if_fail(collection != NULL); - g_return_if_fail(IS_COLLECTION(collection)); - g_return_if_fail(collection->block_selection_changed > 0); - - collection->block_selection_changed--; - - if (emit && !collection->block_selection_changed) - g_signal_emit(collection, - collection_signals[SELECTION_CHANGED], 0, time); -} - -/* Translate the item number to the (row, column) form */ -void collection_item_to_rowcol (const Collection *collection, - int item, int *row, int *col) -{ - if (!collection->vertical_order) - { - *row = item / collection->columns; - *col = item % collection->columns; - } - else - { - int rows = collection_get_rows(collection); - *row = item % rows; - *col = item / rows; - } -} - - - -/* Translate the (row, column) form to the item number. - * May return a number >= collection->number_of_items. - */ -int collection_rowcol_to_item(const Collection *collection, int row, int col) -{ - if (!collection->vertical_order) - return row * collection->columns + col; - else - { - int rows = collection_get_rows(collection); - if (row >= rows) - return collection->number_of_items; - return row + col * rows; - } -} diff --git a/ROX-Filer/src/collection.h b/ROX-Filer/src/collection.h deleted file mode 100644 index c2916d57..00000000 --- a/ROX-Filer/src/collection.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * The collection widget provides an area for displaying a collection of - * objects (such as files). It allows the user to choose a selection of - * them and provides signals to allow popping up menus, detecting double-clicks - * etc. - * - * Thomas Leonard, - */ - - -#ifndef __COLLECTION_H__ -#define __COLLECTION_H__ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -#define COLLECTION(obj) GTK_CHECK_CAST((obj), collection_get_type(), Collection) -#define COLLECTION_CLASS(obj) G_TYPE_INSTANCE_GET_CLASS((obj), \ - collection_get_type(), CollectionClass) -#define IS_COLLECTION(obj) \ - G_TYPE_CHECK_INSTANCE_TYPE((obj), collection_get_type()) - -/* If the display gets mucked up then remember to fix it next time we get the - * chance. - */ -enum -{ - PAINT_NORMAL, /* Just redraw what we need to */ - PAINT_OVERWRITE, /* Draw everything */ - PAINT_CLEAR, /* Blank everything, then redraw */ -}; - -typedef struct _Collection Collection; - -/* Each item in a Collection has one of these, which stores its selected - * state, data, and view_data. - */ -typedef struct _CollectionItem CollectionItem; - -typedef struct _CollectionClass CollectionClass; -typedef void (*CollectionDrawFunc)(GtkWidget *widget, - CollectionItem *item, - GdkRectangle *area, - gpointer user_data); -typedef gboolean (*CollectionTestFunc)( Collection *collection, - int point_x, int point_y, - CollectionItem *item, - int width, int height, - gpointer user_data); -typedef void (*CollectionFreeFunc)(Collection *collection, - CollectionItem *item); - -struct _CollectionItem -{ - gpointer data; - gpointer view_data; - gboolean selected; -}; - -struct _Collection -{ - GtkWidget parent_widget; - - /* With 2.0, the collection is in a Viewport, and this is used only to - * force scrolling, etc. - */ - GtkAdjustment *vadj; - - CollectionDrawFunc draw_item; - CollectionTestFunc test_point; - CollectionFreeFunc free_item; - gpointer cb_user_data; /* Passed to above functions */ - - gboolean lasso_box; /* Is the box drawn? */ - int drag_box_x[2]; /* Index 0 is the fixed corner */ - int drag_box_y[2]; - GdkGC *xor_gc; - - CollectionItem *items; - gint cursor_item; /* -1 if not shown */ - gint cursor_item_old; /* May be -1 */ - gint wink_item; /* -1 if not active */ - gint wink_on_map; /* -1 if not waiting for map */ - gint winks_left; /* Flashes in this wink op */ - gint wink_timeout; - guint columns; - gboolean vertical_order; /* order elements vertically? */ - gint number_of_items; /* (often compared with -1) */ - guint item_width, item_height; - - guint number_selected; - - guint array_size; - - gint block_selection_changed; -}; - -struct _CollectionClass -{ - GtkWidgetClass parent_class; - - void (*gain_selection)(Collection *collection, - gint time); - void (*lose_selection)(Collection *collection, - gint time); - void (*selection_changed)(Collection *collection, - gint time); -}; - -GType collection_get_type (void); -GtkWidget *collection_new (void); -void collection_clear (Collection *collection); -void collection_clear_except (Collection *collection, gint item); -gint collection_insert (Collection *collection, - gpointer data, - gpointer view); -void collection_remove (Collection *collection, gint item); -void collection_unselect_item (Collection *collection, gint item); -void collection_select_item (Collection *collection, gint item); -void collection_toggle_item (Collection *collection, gint item); -void collection_select_all (Collection *collection); -void collection_clear_selection (Collection *collection); -void collection_invert_selection (Collection *collection); -void collection_draw_item (Collection *collection, gint item, - gboolean blank); -void collection_set_item_size (Collection *collection, - int width, int height); -void collection_qsort (Collection *collection, - int (*compar)(const void *, - const void *), - GtkSortType order); -int collection_find_item (Collection *collection, - gpointer data, - int (*compar)(const void *, - const void *), - GtkSortType order); -int collection_get_item (Collection *collection, int x, int y); -void collection_set_cursor_item (Collection *collection, gint item, - gboolean may_scroll); -void collection_wink_item (Collection *collection, gint item); -void collection_delete_if (Collection *collection, - gboolean (*test)(gpointer item, - gpointer data), - gpointer data); -void collection_move_cursor (Collection *collection, - int drow, int dcol); -void collection_lasso_box (Collection *collection, int x, int y); -void collection_end_lasso (Collection *collection, - GdkFunction fn); -void collection_snap_size (Collection *collection, - int rows, int cols); -void collection_unblock_selection_changed(Collection *collection, - guint time, - gboolean emit); -void collection_item_to_rowcol (const Collection *collection, - int item, int *row, int *col); -int collection_rowcol_to_item (const Collection *collection, - int row, int col); -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* __COLLECTION_H__ */ diff --git a/ROX-Filer/src/config.h.in b/ROX-Filer/src/config.h.in deleted file mode 100644 index 5bb2428e..00000000 --- a/ROX-Filer/src/config.h.in +++ /dev/null @@ -1,82 +0,0 @@ -/* The configure script will auto-generate config.h from config.h.in */ - -#define PROJECT "ROX-Filer" -#define VERSION "Unknown" -#define GTK_VERSION "Unknown" - -#undef STDC_HEADERS -#undef HAVE_SYS_UCRED_H -#undef HAVE_MNTENT_H -#undef HAVE_SYS_MNTENT_H -#undef HAVE_FCNTL_H -#undef HAVE_GETOPT_LONG -#undef HAVE_UNSETENV -#undef FILE_B_FLAG -#undef USE_PANGO_WRAP_WORD_CHAR -#undef HAVE_APSYMBOLS_H -#undef HAVE_APBUILD_APSYMBOLS_H -#undef HAVE_STATFS -#undef HAVE_STATVFS -#undef HAVE_SYS_VFS_H -#undef HAVE_SYS_STATVFS_H -#undef HAVE_LIBINTL_H -#undef HAVE_SYS_INOTIFY_H - -#undef HAVE_MBRTOWC -#undef HAVE_WCTYPE_H - -#undef LARGE_FILE_SUPPORT - -#undef HAVE_REGEX_H - -#undef HAVE_GETXATTR -#undef HAVE_ATTROPEN -#undef HAVE_SYS_XATTR_H -#undef HAVE_ATTR_XATTR_H - -/* Enable extensions - used for dnotify support */ -#ifndef _GNU_SOURCE -# define _GNU_SOURCE -#endif - -#if defined(HAVE_APSYMBOLS_H) -# include -#elif defined(HAVE_APBUILD_APSYMBOLS_H) -# include -#endif - -#include "my_vfs.h" - -#ifdef HAVE_LIBINTL_H -# include -# define _(String) dgettext("ROX-Filer", String) -#else -# define _(String) (String) -#endif -/* Short for gettext_noop() - marks a string as translatable without - * actually translating it at that point. Used by xgettext. - */ -#define N_(String) (String) - -/* printf format string to print file sizes */ -#ifdef LARGE_FILE_SUPPORT -# define SIZE_FMT G_GINT64_MODIFIER "d" -#else -# define SIZE_FMT G_GINT32_MODIFIER "d" -#endif - -#if 1 -/* For releases... */ -# define GTK_ENABLE_DEPRECATED -# define GDK_ENABLE_DEPRECATED -# define G_ENABLE_DEPRECATED -#else -/* Only for testing... */ -# define GTK_DISABLE_DEPRECATED -# define GDK_DISABLE_DEPRECATED -# define G_DISABLE_DEPRECATED -#endif - -#ifndef S_ISDOOR -# define S_ISDOOR(mode) (FALSE) -#endif diff --git a/ROX-Filer/src/configure.in b/ROX-Filer/src/configure.in deleted file mode 100644 index 581dac72..00000000 --- a/ROX-Filer/src/configure.in +++ /dev/null @@ -1,195 +0,0 @@ -dnl Process this file with autoconf to produce a configure script. -AC_INIT(main.c) -AC_CONFIG_HEADER(config.h) - -[ if [ -f configure ]; then ] - AC_MSG_ERROR([Please run configure from the build directory (try ../AppRun --compile)]) - exit 1 -fi - -dnl Checks for programs. -AC_PROG_CC - -dnl Use -Wall, etc if possible -dnl Note: GTK uses func(), so can't use -Wstrict-prototypes -dnl -fno-stack-protector must be used to avoid GLIBC2.4 dependency, -dnl but is only available from 4.1 onwards -[ -if test "x$GCC" = "xyes"; then - CFLAGS="$CFLAGS -Wall -Wmissing-prototypes" -] - AC_MSG_CHECKING(for GCC version) - if $CC --version | grep -i gcc > /dev/null; then -[ - ver=`$CC --version | head -1 | sed -e 's/.* \([0-9][0-9]*\.[0-9][0-9]*\.[0-9][-_0-9a-zA-Z]*\).*/\1/'` -] - major=`echo $ver | cut -d"." -f 1` - minor=`echo $ver | cut -d"." -f 2` - AC_MSG_RESULT($ver) -[ - case $major in - [1-3]) - gcc_pointer=no - gcc_stack=no;; - 4) - gcc_pointer=yes - if test "$minor" -ge 1 ; then gcc_stack=yes; else gcc_stack=no; fi ;; - [5-9]) - gcc_pointer=yes - gcc_stack=yes;; - *) - gcc_pointer=no - gcc_stack=no;; - esac -] - AC_MSG_CHECKING(whether to disable pointer sign warning) - if test "$gcc_pointer" = yes ; then - AC_MSG_RESULT(yes) - CFLAGS="$CFLAGS -Wno-pointer-sign" - else - AC_MSG_RESULT(no) - fi - AC_MSG_CHECKING(whether to disable stack protector) - if test "$gcc_stack" = yes ; then - AC_MSG_RESULT(yes) - CFLAGS="$CFLAGS -fno-stack-protector" - else - AC_MSG_RESULT(no) - fi - fi -fi - -if test -z "$PKG_CONFIG"; then - PKG_CONFIG=pkg-config -fi -AC_SUBST(PKG_CONFIG) - -AC_MSG_CHECKING(that pkg-config runs) -if "$PKG_CONFIG" --version > /dev/null 2>&1 ; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - AC_MSG_ERROR([*** $PKG_CONFIG missing *** - -\'$PKG_CONFIG --version\' failed to run - make sure it is inside one of the -directories in your PATH environment variable! - -pkg-config comes with the developement packages for GTK+-2.4, available at: - - http://www.gtk.org]) -fi - -AC_DEFUN(ROX_REQUIRE, [ -AC_MSG_CHECKING(that $1 (version >= $2) is installed) -if "$PKG_CONFIG" --atleast-version=$2 $1 ; then - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) - if "$PKG_CONFIG" --exists $1 ; then - AC_MSG_ERROR(Current version is only `"$PKG_CONFIG" "$1" --modversion`) - else - AC_MSG_ERROR(Package is not installed) - fi -fi -]) - -ROX_REQUIRE(sm, 1) -ROX_REQUIRE(gtk+-2.0, 2.12.0) -ROX_REQUIRE(libxml-2.0, 2.0.0) -ROX_REQUIRE(shared-mime-info, 0.14) - -GTK_VERSION=`"$PKG_CONFIG" --modversion gtk+-2.0` -AC_DEFINE_UNQUOTED(GTK_VERSION, "$GTK_VERSION") - -AC_MSG_CHECKING(if pango (version >= 1.1.2) is installed) -if "$PKG_CONFIG" --atleast-version=1.1.2 pango ; then - AC_DEFINE(USE_PANGO_WRAP_WORD_CHAR) - AC_MSG_RESULT(yes; enabling better wrapping) -else - AC_MSG_RESULT(no; better wrapping not enabled) -fi - -dnl Find the X libraries -AC_PATH_XTRA -if test x$no_x = xyes ; then - AC_MSG_ERROR([X development libraries not found]) -fi -LIBS="$LIBS $X_LIBS -lX11 -lm $X_EXTRA_LIBS" -CFLAGS="$CFLAGS $X_CFLAGS" - -dnl Does file(1) support '-b' ? -AC_MSG_CHECKING(whether file -b works) -if file -b / > /dev/null 2> /dev/null -then - AC_DEFINE(FILE_B_FLAG) - AC_MSG_RESULT(yes) -else - AC_MSG_RESULT(no) -fi - -AC_MSG_CHECKING(for large file support) -case `uname -s` in -OpenBSD*) - AC_MSG_RESULT(yes) - AC_DEFINE(LARGE_FILE_SUPPORT) - ;; -FreeBSD*) - AC_MSG_RESULT(yes) - AC_DEFINE(LARGE_FILE_SUPPORT) - ;; -*) - if getconf LFS64_CFLAGS > /dev/null 2> /dev/null; then - AC_MSG_RESULT(yes) - LFS_CFLAGS="`getconf LFS_CFLAGS`" - LFS_LDFLAGS="`getconf LFS_LDFLAGS`" - LFS_LIBS="`getconf LFS_LIBS`" - AC_DEFINE(LARGE_FILE_SUPPORT) - else - AC_MSG_RESULT(no) - LFS_CFLAGS="" - LFS_LDFLAGS="" - LFS_LIBS="" - fi - ;; -esac - -AC_SUBST(LFS_CFLAGS) -AC_SUBST(LFS_LDFLAGS) -AC_SUBST(LFS_LIBS) - -dnl Checks for header files. -AC_HEADER_DIRENT -AC_HEADER_STDC -AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h sys/time.h unistd.h mntent.h sys/ucred.h sys/mntent.h apsymbols.h apbuild/apsymbols.h sys/statvfs.h sys/vfs.h wctype.h libintl.h sys/inotify.h) - -dnl Checks for typedefs, structures, and compiler characteristics. -AC_C_CONST -AC_TYPE_UID_T -AC_TYPE_SIZE_T - -dnl Checks for library functions. -AC_CHECK_FUNCS(gethostname unsetenv mkdir rmdir strdup strtol statvfs statfs mbrtowc) -dnl Math functions and dlsym() could be defined outside the standard C library -AC_CHECK_LIB(m, floor) -AC_CHECK_LIB(dl, dlsym) -dnl Since we're using libintl.h, check if libintl needs to be linked in -AC_CHECK_LIB(intl, gettext) - -dnl getopt_long may be in an addtional library -AC_CHECK_LIB(gnugetopt, getopt_long) -AC_CHECK_FUNCS(getopt_long) - -dnl Check for extended attribute support -AC_CHECK_FUNCS(attropen getxattr) -AC_CHECK_HEADERS(attr/xattr.h sys/xattr.h) - -dnl Extract version info from AppInfo.xml -AC_MSG_CHECKING(extracting version information) -[ -VERSION=`sed -n 's/^.*\([.0-9]*\).*<\/Version>.*$/\1/p' ${srcdir}/../AppInfo.xml` -] -AC_DEFINE_UNQUOTED(VERSION, "$VERSION") -AC_MSG_RESULT(version $VERSION) - -AC_OUTPUT(Makefile) diff --git a/ROX-Filer/src/dir.c b/ROX-Filer/src/dir.c deleted file mode 100644 index de97f485..00000000 --- a/ROX-Filer/src/dir.c +++ /dev/null @@ -1,1179 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* dir.c - directory scanning and caching */ - -/* How it works: - * - * A Directory contains a list DirItems, each having a name and some details - * (size, image, owner, etc). - * - * There is a list of file names that need to be rechecked. While this - * list is non-empty, items are taken from the list in an idle callback - * and checked. Missing items are removed from the Directory, new items are - * added and existing items are updated if they've changed. - * - * When a whole directory is to be rescanned: - * - * - A list of all filenames in the directory is fetched, without any - * of the extra details. - * - This list is compared to the current DirItems, removing any that are now - * missing. - * - Each window onto the directory is asked which items it will actually - * display, and the union of these sets is the new recheck list. - * - * This system is designed to get the number of items and their names quickly, - * so that the auto-sizer can make a good guess. It also prevents checking - * hidden files if they're not going to be displayed. - * - * To get the Directory object, use dir_cache, which will automatically - * trigger a rescan if needed. - * - * To get notified when the Directory changes, use the dir_attach() and - * dir_detach() functions. - */ - -#include "config.h" - -#include -#include -#include -#include - -#include "global.h" - -#include "dir.h" -#include "diritem.h" -#include "support.h" -#include "gui_support.h" -#include "dir.h" -#include "fscache.h" -#include "mount.h" -#include "pixmaps.h" -#include "type.h" -#include "usericons.h" -#include "main.h" - -#ifdef USE_NOTIFY -static GHashTable *notify_fd_to_dir = NULL; -#endif -#ifdef USE_INOTIFY -# include -GIOChannel *inotify_channel; -static int inotify_fd; -#endif -#ifdef USE_DNOTIFY -/* Newer Linux kernels can tell us when the directories we are watching - * change, using the dnotify system. - */ -gboolean dnotify_wakeup_flag = FALSE; -static int dnotify_last_fd = -1; -#endif - -/* For debugging. Can't detach when this is non-zero. */ -static int in_callback = 0; - -GFSCache *dir_cache = NULL; - -/* Static prototypes */ -static void update(Directory *dir, gchar *pathname, gpointer data); -static void set_idle_callback(Directory *dir); -static DirItem *insert_item(Directory *dir, const guchar *leafname); -static void remove_missing(Directory *dir, GPtrArray *keep); -static void dir_recheck(Directory *dir, - const guchar *path, const guchar *leafname); -static GPtrArray *hash_to_array(GHashTable *hash); -static void dir_force_update_item(Directory *dir, const gchar *leaf); -static Directory *dir_new(const char *pathname); -static void dir_rescan(Directory *dir); -#ifdef USE_NOTIFY -static void dir_rescan_soon(Directory *dir); -# ifdef USE_INOTIFY -static gboolean inotify_handler(GIOChannel *source, GIOCondition condition, - gpointer udata); -# else -static void dnotify_handler(int sig, siginfo_t *si, void *data); -# endif -#endif - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void dir_init(void) -{ - dir_cache = g_fscache_new((GFSLoadFunc) dir_new, - (GFSUpdateFunc) update, NULL); - -#ifdef USE_NOTIFY - notify_fd_to_dir = g_hash_table_new(NULL, NULL); - -# ifdef USE_INOTIFY - inotify_fd = inotify_init(); - inotify_channel = g_io_channel_unix_new(inotify_fd); - g_io_add_watch(inotify_channel, G_IO_IN, inotify_handler, NULL); -# endif - -# ifdef USE_DNOTIFY - { - struct sigaction act; - - act.sa_sigaction = dnotify_handler; - sigemptyset(&act.sa_mask); - act.sa_flags = SA_SIGINFO; - sigaction(SIGRTMIN, &act, NULL); - - /* Sometimes we get this instead of SIGRTMIN. - * Don't know why :-( but don't crash... - */ - act.sa_handler = SIG_IGN; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - sigaction(SIGIO, &act, NULL); - - } -# endif -#endif -} - -/* Periodically calls callback to notify about changes to the contents - * of the directory. - * Before this function returns, it calls the callback once to add all - * the items currently in the directory (unless the dir is empty). - * It then calls callback(DIR_QUEUE_INTERESTING) to find out which items the - * caller cares about. - * If we are not scanning, it also calls callback(DIR_END_SCAN). - */ -void dir_attach(Directory *dir, DirCallback callback, gpointer data) -{ - DirUser *user; - GPtrArray *items; - - g_return_if_fail(dir != NULL); - g_return_if_fail(callback != NULL); - - user = g_new(DirUser, 1); - user->callback = callback; - user->data = data; - -#ifdef USE_INOTIFY - if (!dir->users) - { - int fd; - - if (dir->notify_fd != -1) - g_warning("dir_attach: inotify error\n"); - - fd = inotify_add_watch( inotify_fd, - dir->pathname, - IN_CREATE | IN_DELETE | IN_MOVE | - IN_ATTRIB); - - g_return_if_fail(g_hash_table_lookup(notify_fd_to_dir, - GINT_TO_POINTER(fd)) == NULL); - if (fd != -1) - { - - dir->notify_fd = fd; - g_hash_table_insert(notify_fd_to_dir, - GINT_TO_POINTER(fd), dir); - } - } -#endif -#ifdef USE_DNOTIFY - if (!dir->users) - { - int fd; - - if (dir->notify_fd != -1) - g_warning("dir_attach: dnotify error\n"); - - fd = open(dir->pathname, O_RDONLY); - g_return_if_fail(g_hash_table_lookup(notify_fd_to_dir, - GINT_TO_POINTER(fd)) == NULL); - if (fd != -1) - { - dir->notify_fd = fd; - g_hash_table_insert(notify_fd_to_dir, - GINT_TO_POINTER(fd), dir); - fcntl(fd, F_SETSIG, SIGRTMIN); - fcntl(fd, F_NOTIFY, DN_CREATE | DN_DELETE | DN_RENAME | - DN_ATTRIB | DN_MULTISHOT); - } - } -#endif - - dir->users = g_list_prepend(dir->users, user); - - g_object_ref(dir); - - items = hash_to_array(dir->known_items); - if (items->len) - callback(dir, DIR_ADD, items, data); - g_ptr_array_free(items, TRUE); - - if (dir->needs_update && !dir->scanning) - dir_rescan(dir); - else - callback(dir, DIR_QUEUE_INTERESTING, NULL, data); - - /* May start scanning if noone was watching before */ - set_idle_callback(dir); - - if (!dir->scanning) - callback(dir, DIR_END_SCAN, NULL, data); -} - -/* Undo the effect of dir_attach */ -void dir_detach(Directory *dir, DirCallback callback, gpointer data) -{ - DirUser *user; - GList *list; - - g_return_if_fail(dir != NULL); - g_return_if_fail(callback != NULL); - g_return_if_fail(in_callback == 0); - - for (list = dir->users; list; list = list->next) - { - user = (DirUser *) list->data; - if (user->callback == callback && user->data == data) - { - g_free(user); - dir->users = g_list_remove(dir->users, user); - g_object_unref(dir); - - /* May stop scanning if noone's watching */ - set_idle_callback(dir); - -#ifdef USE_NOTIFY - if (!dir->users && dir->notify_fd != -1) - { -# ifdef USE_DNOTIFY - close(dir->notify_fd); -# endif - g_hash_table_remove(notify_fd_to_dir, - GINT_TO_POINTER(dir->notify_fd)); - dir->notify_fd = -1; - } -# ifdef USE_INOTIFY - if (dir->inotify_source) { - g_source_remove(dir->inotify_source); - dir->inotify_source = 0; - } -# endif -#endif - return; - } - } - - g_warning("dir_detach: Callback/data pair not attached!\n"); -} - -void dir_update(Directory *dir, gchar *pathname) -{ - update(dir, pathname, NULL); -} - -/* Rescan this directory */ -void refresh_dirs(const char *path) -{ - g_fscache_update(dir_cache, path); -} - -/* When something has happened to a particular object, call this - * and all appropriate changes will be made. - */ -void dir_check_this(const guchar *path) -{ - guchar *real_path; - guchar *dir_path; - Directory *dir; - - dir_path = g_path_get_dirname(path); - real_path = pathdup(dir_path); - g_free(dir_path); - - dir = g_fscache_lookup_full(dir_cache, real_path, - FSCACHE_LOOKUP_PEEK, NULL); - if (dir) - { - dir_recheck(dir, real_path, g_basename(path)); - g_object_unref(dir); - } - - g_free(real_path); -} - -#ifdef USE_NOTIFY -static void drop_notify(gpointer key, gpointer value, gpointer data) -{ -#ifdef USE_INOTIFY - inotify_rm_watch(inotify_fd, GPOINTER_TO_INT(key)); -#endif -#ifdef USE_DNOTIFY - close(GPOINTER_TO_INT(key)); -#endif -} -#endif - -/* Used when we fork an action child, otherwise we can't delete or unmount - * any directory which we're watching via dnotify! inotify does not have - * this problem - */ -void dir_drop_all_notifies(void) -{ -#ifdef USE_DNOTIFY - g_hash_table_foreach(notify_fd_to_dir, drop_notify, NULL); -#endif -} - -/* Tell watchers that this item has changed, but don't rescan. - * (used when thumbnail has been created for an item) - */ -void dir_force_update_path(const gchar *path) -{ - gchar *dir_path; - Directory *dir; - - g_return_if_fail(path[0] == '/'); - - dir_path = g_path_get_dirname(path); - - dir = g_fscache_lookup_full(dir_cache, dir_path, FSCACHE_LOOKUP_PEEK, - NULL); - if (dir) - { - dir_force_update_item(dir, g_basename(path)); - g_object_unref(dir); - } - - g_free(dir_path); -} - -/* Ensure that 'leafname' is up-to-date. Returns the new/updated - * DirItem, or NULL if the file no longer exists. - */ -DirItem *dir_update_item(Directory *dir, const gchar *leafname) -{ - DirItem *item; - - time(&diritem_recent_time); - item = insert_item(dir, leafname); - dir_merge_new(dir); - - return item; -} - -/* Add item to the recheck_list if it's marked as needing it. - * Item must have ITEM_FLAG_NEED_RESCAN_QUEUE. - * Items on the list will get checked later in an idle callback. - */ -void dir_queue_recheck(Directory *dir, DirItem *item) -{ - g_return_if_fail(dir != NULL); - g_return_if_fail(item != NULL); - g_return_if_fail(item->flags & ITEM_FLAG_NEED_RESCAN_QUEUE); - - dir->recheck_list = g_list_prepend(dir->recheck_list, - g_strdup(item->leafname)); - item->flags &= ~ITEM_FLAG_NEED_RESCAN_QUEUE; -} - -static void free_recheck_list(Directory *dir) -{ - destroy_glist(&dir->recheck_list); -} - -/* If scanning state has changed then notify all filer windows */ -static void dir_set_scanning(Directory *dir, gboolean scanning) -{ - GList *next; - - if (scanning == dir->scanning) - return; - - in_callback++; - - dir->scanning = scanning; - - for (next = dir->users; next; next = next->next) - { - DirUser *user = (DirUser *) next->data; - - user->callback(dir, - scanning ? DIR_START_SCAN : DIR_END_SCAN, - NULL, user->data); - } - -#if 0 - /* Useful for profiling */ - if (!scanning) - { - g_print("Done\n"); - exit(0); - } -#endif - - in_callback--; -} - -/* Notify everyone that the error status of the directory has changed */ -static void dir_error_changed(Directory *dir) -{ - GList *next; - - in_callback++; - - for (next = dir->users; next; next = next->next) - { - DirUser *user = (DirUser *) next->data; - - user->callback(dir, DIR_ERROR_CHANGED, NULL, user->data); - } - - in_callback--; -} - -/* This is called in the background when there are items on the - * dir->recheck_list to process. - */ -static gboolean recheck_callback(gpointer data) -{ - Directory *dir = (Directory *) data; - GList *next; - guchar *leaf; - - g_return_val_if_fail(dir != NULL, FALSE); - g_return_val_if_fail(dir->recheck_list != NULL, FALSE); - - /* Remove the first name from the list */ - next = dir->recheck_list; - dir->recheck_list = g_list_remove_link(dir->recheck_list, next); - leaf = (guchar *) next->data; - g_list_free_1(next); - - /* usleep(800); */ - - insert_item(dir, leaf); - - g_free(leaf); - - if (dir->recheck_list) - return TRUE; /* Call again */ - - /* The recheck_list list empty. Stop scanning, unless - * needs_update, in which case we start scanning again. - */ - - dir_merge_new(dir); - - dir->have_scanned = TRUE; - dir_set_scanning(dir, FALSE); - g_source_remove(dir->idle_callback); - dir->idle_callback = 0; - - if (dir->needs_update) - dir_rescan(dir); - - return FALSE; -} - -/* Add all the new items to the items array. - * Notify everyone who is watching us. - */ -void dir_merge_new(Directory *dir) -{ - GPtrArray *new = dir->new_items; - GPtrArray *up = dir->up_items; - GPtrArray *gone = dir->gone_items; - GList *list; - guint i; - - in_callback++; - - for (list = dir->users; list; list = list->next) - { - DirUser *user = (DirUser *) list->data; - - if (new->len) - user->callback(dir, DIR_ADD, new, user->data); - if (up->len) - user->callback(dir, DIR_UPDATE, up, user->data); - if (gone->len) - user->callback(dir, DIR_REMOVE, gone, user->data); - } - - in_callback--; - - for (i = 0; i < new->len; i++) - { - DirItem *item = (DirItem *) new->pdata[i]; - - g_hash_table_insert(dir->known_items, item->leafname, item); - } - - for (i = 0; i < gone->len; i++) - { - DirItem *item = (DirItem *) gone->pdata[i]; - - diritem_free(item); - } - - g_ptr_array_set_size(gone, 0); - g_ptr_array_set_size(new, 0); - g_ptr_array_set_size(up, 0); -} - -#ifdef USE_DNOTIFY -/* Called from the mainloop shortly after dnotify_handler */ -void dnotify_wakeup(void) -{ - Directory *dir; - - dnotify_wakeup_flag = FALSE; - - dir = g_hash_table_lookup(notify_fd_to_dir, - GINT_TO_POINTER(dnotify_last_fd)); - - if (dir) - dir_rescan_soon(dir); -} -#endif - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -#ifdef USE_NOTIFY -static gint rescan_soon_timeout(gpointer data) -{ - Directory *dir = (Directory *) data; - - dir->rescan_timeout = -1; - if (dir->scanning) - dir->needs_update = TRUE; - else - dir_rescan(dir); - return FALSE; -} - -/* Wait a fraction of a second and then rescan. If already waiting, - * this function does nothing. - */ -static void dir_rescan_soon(Directory *dir) -{ - if (dir->rescan_timeout != -1) - return; - dir->rescan_timeout = g_timeout_add(500, rescan_soon_timeout, dir); -} -#endif - -static void free_items_array(GPtrArray *array) -{ - guint i; - - for (i = 0; i < array->len; i++) - { - DirItem *item = (DirItem *) array->pdata[i]; - - diritem_free(item); - } - - g_ptr_array_free(array, TRUE); -} - -/* Tell everyone watching that these items have gone */ -static void notify_deleted(Directory *dir, GPtrArray *deleted) -{ - GList *next; - - if (!deleted->len) - return; - - in_callback++; - - for (next = dir->users; next; next = next->next) - { - DirUser *user = (DirUser *) next->data; - - user->callback(dir, DIR_REMOVE, deleted, user->data); - } - - in_callback--; -} - -static void mark_unused(gpointer key, gpointer value, gpointer data) -{ - DirItem *item = (DirItem *) value; - - item->may_delete = TRUE; -} - -static void keep_deleted(gpointer key, gpointer value, gpointer data) -{ - DirItem *item = (DirItem *) value; - GPtrArray *deleted = (GPtrArray *) data; - - if (item->may_delete) - g_ptr_array_add(deleted, item); -} - -static gboolean check_unused(gpointer key, gpointer value, gpointer data) -{ - DirItem *item = (DirItem *) value; - - return item->may_delete; -} - -/* Remove all the old items that have gone. - * Notify everyone who is watching us of the removed items. - */ -static void remove_missing(Directory *dir, GPtrArray *keep) -{ - GPtrArray *deleted; - guint i; - - deleted = g_ptr_array_new(); - - /* Mark all current items as may_delete */ - g_hash_table_foreach(dir->known_items, mark_unused, NULL); - - /* Unmark all items also in 'keep' */ - for (i = 0; i < keep->len; i++) - { - guchar *leaf = (guchar *) keep->pdata[i]; - DirItem *item; - - item = g_hash_table_lookup(dir->known_items, leaf); - - if (item) - item->may_delete = FALSE; - } - - /* Add each item still marked to 'deleted' */ - g_hash_table_foreach(dir->known_items, keep_deleted, deleted); - - /* Remove all items still marked */ - g_hash_table_foreach_remove(dir->known_items, check_unused, NULL); - - notify_deleted(dir, deleted); - - free_items_array(deleted); -} - -static gint notify_timeout(gpointer data) -{ - Directory *dir = (Directory *) data; - - g_return_val_if_fail(dir->notify_active == TRUE, FALSE); - - dir_merge_new(dir); - - dir->notify_active = FALSE; - g_object_unref(dir); - - return FALSE; -} - -/* Call dir_merge_new() after a while. */ -static void delayed_notify(Directory *dir) -{ - if (dir->notify_active) - return; - g_object_ref(dir); - g_timeout_add(1500, notify_timeout, dir); - dir->notify_active = TRUE; -} - -/* Stat this item and add, update or remove it. - * Returns the new/updated item, if any. - * (leafname may be from the current DirItem item) - * Ensure diritem_recent_time is reasonably up-to-date before calling this. - */ -static DirItem *insert_item(Directory *dir, const guchar *leafname) -{ - const gchar *full_path; - DirItem *item; - DirItem old; - gboolean do_compare = FALSE; /* (old is filled in) */ - - if (leafname[0] == '.' && (leafname[1] == '\n' || - (leafname[1] == '.' && leafname[2] == '\n'))) - return NULL; /* Ignore '.' and '..' */ - - full_path = make_path(dir->pathname, leafname); - item = g_hash_table_lookup(dir->known_items, leafname); - - if (item) - { - if (item->base_type != TYPE_UNKNOWN) - { - /* Preserve the old details so we can compare */ - old = *item; - if (old._image) - g_object_ref(old._image); - do_compare = TRUE; - } - diritem_restat(full_path, item, &dir->stat_info); - } - else - { - /* Item isn't already here. This won't normally happen, - * because blank items are added when scanning, before - * we get here. - */ - item = diritem_new(leafname); - diritem_restat(full_path, item, &dir->stat_info); - if (item->base_type == TYPE_ERROR && - item->lstat_errno == ENOENT) - { - diritem_free(item); - return NULL; - } - g_ptr_array_add(dir->new_items, item); - - } - - /* No need to queue the item for scanning. If we got here because - * the item was queued, this flag will normally already be clear. - */ - item->flags &= ~ITEM_FLAG_NEED_RESCAN_QUEUE; - - if (item->base_type == TYPE_ERROR && item->lstat_errno == ENOENT) - { - /* Item has been deleted */ - g_hash_table_remove(dir->known_items, item->leafname); - g_ptr_array_add(dir->gone_items, item); - if (do_compare && old._image) - g_object_unref(old._image); - delayed_notify(dir); - return NULL; - } - - if (do_compare) - { - /* It's a bit inefficient that we force the image to be - * loaded here, if we had an old image. - */ - if (item->lstat_errno == old.lstat_errno - && item->base_type == old.base_type - && item->flags == old.flags - && item->size == old.size - && item->mode == old.mode - && item->atime == old.atime - && item->ctime == old.ctime - && item->mtime == old.mtime - && item->uid == old.uid - && item->gid == old.gid - && item->mime_type == old.mime_type - && (old._image == NULL || di_image(item) == old._image)) - { - if (old._image) - g_object_unref(old._image); - return item; - } - if (old._image) - g_object_unref(old._image); - } - - g_ptr_array_add(dir->up_items, item); - delayed_notify(dir); - - return item; -} - -static void update(Directory *dir, gchar *pathname, gpointer data) -{ - g_free(dir->pathname); - dir->pathname = pathdup(pathname); - - if (dir->scanning) - dir->needs_update = TRUE; - else - dir_rescan(dir); -} - -/* If there is work to do, set the idle callback. - * Otherwise, stop scanning and unset the idle callback. - */ -static void set_idle_callback(Directory *dir) -{ - if (dir->recheck_list && dir->users) - { - /* Work to do, and someone's watching */ - dir_set_scanning(dir, TRUE); - if (dir->idle_callback) - return; - time(&diritem_recent_time); - dir->idle_callback = g_idle_add(recheck_callback, dir); - /* Do the first call now (will remove the callback itself) */ - recheck_callback(dir); - } - else - { - dir_set_scanning(dir, FALSE); - if (dir->idle_callback) - { - g_source_remove(dir->idle_callback); - dir->idle_callback = 0; - } - } -} - -/* See dir_force_update_path() */ -static void dir_force_update_item(Directory *dir, const gchar *leaf) -{ - GList *list; - GPtrArray *items; - DirItem *item; - - items = g_ptr_array_new(); - - item = g_hash_table_lookup(dir->known_items, leaf); - if (!item) - goto out; - - g_ptr_array_add(items, item); - - in_callback++; - - for (list = dir->users; list; list = list->next) - { - DirUser *user = (DirUser *) list->data; - - user->callback(dir, DIR_UPDATE, items, user->data); - } - - in_callback--; - -out: - g_ptr_array_free(items, TRUE); -} - -static void dir_recheck(Directory *dir, - const guchar *path, const guchar *leafname) -{ - guchar *old = dir->pathname; - - dir->pathname = g_strdup(path); - g_free(old); - - time(&diritem_recent_time); - insert_item(dir, leafname); -} - -static void to_array(gpointer key, gpointer value, gpointer data) -{ - GPtrArray *array = (GPtrArray *) data; - - g_ptr_array_add(array, value); -} - -/* Convert a hash table to an unsorted GPtrArray. - * g_ptr_array_free() the result. - */ -static GPtrArray *hash_to_array(GHashTable *hash) -{ - GPtrArray *array; - - array = g_ptr_array_new(); - - g_hash_table_foreach(hash, to_array, array); - - return array; -} - -static gpointer parent_class; - -/* Note: dir_cache is never purged, so this shouldn't get called */ -static void dir_finialize(GObject *object) -{ - GPtrArray *items; - Directory *dir = (Directory *) object; - - g_return_if_fail(dir->users == NULL); - - g_print("[ dir finalize ]\n"); - - free_recheck_list(dir); - set_idle_callback(dir); - if (dir->rescan_timeout != -1) - g_source_remove(dir->rescan_timeout); - - dir_merge_new(dir); /* Ensures new, up and gone are empty */ - - g_ptr_array_free(dir->up_items, TRUE); - g_ptr_array_free(dir->new_items, TRUE); - g_ptr_array_free(dir->gone_items, TRUE); - - items = hash_to_array(dir->known_items); - free_items_array(items); - g_hash_table_destroy(dir->known_items); - - g_free(dir->error); - g_free(dir->pathname); - - G_OBJECT_CLASS(parent_class)->finalize(object); -} - -static void directory_class_init(gpointer gclass, gpointer data) -{ - GObjectClass *object = (GObjectClass *) gclass; - - parent_class = g_type_class_peek_parent(gclass); - - object->finalize = dir_finialize; -} - -static void directory_init(GTypeInstance *object, gpointer gclass) -{ - Directory *dir = (Directory *) object; - - dir->known_items = g_hash_table_new(g_str_hash, g_str_equal); - dir->recheck_list = NULL; - dir->idle_callback = 0; - dir->scanning = FALSE; - dir->have_scanned = FALSE; - - dir->users = NULL; - dir->needs_update = TRUE; - dir->notify_active = FALSE; - dir->pathname = NULL; - dir->error = NULL; - dir->rescan_timeout = -1; -#ifdef USE_NOTIFY - dir->notify_fd = -1; -#endif -#ifdef USE_INOTIFY - dir->inotify_source = 0; -#endif - - dir->new_items = g_ptr_array_new(); - dir->up_items = g_ptr_array_new(); - dir->gone_items = g_ptr_array_new(); -} - -static GType dir_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (DirectoryClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - directory_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(Directory), - 0, /* n_preallocs */ - directory_init - }; - - type = g_type_register_static(G_TYPE_OBJECT, "Directory", - &info, 0); - } - - return type; -} - -static Directory *dir_new(const char *pathname) -{ - Directory *dir; - - dir = g_object_new(dir_get_type(), NULL); - - dir->pathname = g_strdup(pathname); - - return dir; -} - -/* Get the names of all files in the directory. - * Remove any DirItems that are no longer listed. - * Replace the recheck_list with the items found. - */ -static void dir_rescan(Directory *dir) -{ - GPtrArray *names; - DIR *d; - struct dirent *ent; - guint i; - const char *pathname; - GList *next; - - g_return_if_fail(dir != NULL); - - pathname = dir->pathname; - - dir->needs_update = FALSE; - - names = g_ptr_array_new(); - - read_globicons(); - mount_update(FALSE); - if (dir->error) - { - null_g_free(&dir->error); - dir_error_changed(dir); - } - - /* Saves statting the parent for each item... */ - if (mc_stat(pathname, &dir->stat_info)) - { - dir->error = g_strdup_printf(_("Can't stat directory: %s"), - g_strerror(errno)); - dir_error_changed(dir); - return; /* Report on attach */ - } - - d = mc_opendir(pathname); - if (!d) - { - dir->error = g_strdup_printf(_("Can't open directory: %s"), - g_strerror(errno)); - dir_error_changed(dir); - return; /* Report on attach */ - } - - dir_set_scanning(dir, TRUE); - dir_merge_new(dir); - gdk_flush(); - - /* Make a list of all the names in the directory */ - while ((ent = mc_readdir(d))) - { - if (ent->d_name[0] == '.') - { - if (ent->d_name[1] == '\0') - continue; /* Ignore '.' */ - if (ent->d_name[1] == '.' && ent->d_name[2] == '\0') - continue; /* Ignore '..' */ - } - - g_ptr_array_add(names, g_strdup(ent->d_name)); - } - mc_closedir(d); - - /* Compare the list with the current DirItems, removing - * any that are missing. - */ - remove_missing(dir, names); - - free_recheck_list(dir); - - /* For each name found, mark it as needing to be put on the rescan - * list at some point in the future. - * If the item is new, put a blank place-holder item in the directory. - */ - for (i = 0; i < names->len; i++) - { - DirItem *old; - guchar *name = names->pdata[i]; - - old = g_hash_table_lookup(dir->known_items, name); - if (old) - { - /* This flag is cleared when the item is added - * to the rescan list. - */ - old->flags |= ITEM_FLAG_NEED_RESCAN_QUEUE; - } - else - { - DirItem *new; - - new = diritem_new(name); - g_ptr_array_add(dir->new_items, new); - } - - } - - dir_merge_new(dir); - - /* Ask everyone which items they need to display, and add them to - * the recheck list. Typically, this means we don't waste time - * scanning hidden items. - */ - in_callback++; - for (next = dir->users; next; next = next->next) - { - DirUser *user = (DirUser *) next->data; - user->callback(dir, - DIR_QUEUE_INTERESTING, - NULL, user->data); - } - in_callback--; - - g_ptr_array_free(names, TRUE); - - set_idle_callback(dir); - dir_merge_new(dir); -} - -#ifdef USE_DNOTIFY -/* Signal handler - don't do anything dangerous here */ -static void dnotify_handler(int sig, siginfo_t *si, void *data) -{ - /* Note: there is currently only one place to store the fd, - * so we'll miss updates to several directories if they happen - * close together. - */ - dnotify_last_fd = si->si_fd; - dnotify_wakeup_flag = TRUE; - write(to_wakeup_pipe, "\0", 1); /* Wake up! */ -} -#endif - -#ifdef USE_INOTIFY -static gboolean inotify_handler(GIOChannel *source, GIOCondition condition, - gpointer udata) -{ - int fd = g_io_channel_unix_get_fd(source); - Directory *dir; - char buf[sizeof(struct inotify_event)+1024]; - int len, i = 0; - - len = read(fd, buf, sizeof(buf)); - if (len<0) - { - if (errno != EINTR) - perror("read"); - return TRUE; - } - else if (!len) - return TRUE; - - while (iwd)); - if (dir) - dir_rescan_soon(dir); - - i += sizeof(*event)+event->len; - } - - - return TRUE; -} -#endif diff --git a/ROX-Filer/src/dir.h b/ROX-Filer/src/dir.h deleted file mode 100644 index deb71aa6..00000000 --- a/ROX-Filer/src/dir.h +++ /dev/null @@ -1,115 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Thomas Leonard, - */ - - -#ifndef _DIR_H -#define _DIR_H - -#include -#include - -#include -#include - -/* Check for [id]notify support */ -#if defined(HAVE_SYS_INOTIFY_H) -# define USE_INOTIFY -#elif defined(DN_MULTISHOT) && defined(SIGRTMIN) -# define USE_DNOTIFY -#endif -#if defined(USE_INOTIFY) || defined(USE_DNOTIFY) -#define USE_NOTIFY -extern gboolean dnotify_wakeup_flag; -#endif - -typedef enum { - DIR_START_SCAN, /* Set 'scanning' indicator */ - DIR_END_SCAN, /* Clear 'scanning' indicator */ - DIR_ADD, /* Add the listed items to the display */ - DIR_REMOVE, /* Remove listed items from display */ - DIR_UPDATE, /* Redraw these items */ - DIR_ERROR_CHANGED, /* Check dir->error */ - DIR_QUEUE_INTERESTING, /* Call dir_queue_recheck */ -} DirAction; - -typedef struct _DirUser DirUser; -typedef void (*DirCallback)(Directory *dir, - DirAction action, - GPtrArray *items, - gpointer data); - -extern GFSCache *dir_cache; - -struct _DirUser -{ - DirCallback callback; - gpointer data; -}; - -typedef struct _DirectoryClass DirectoryClass; - -struct _DirectoryClass { - GObjectClass parent; -}; - -struct _Directory -{ - GObject object; - - char *pathname; /* Internal use only */ - GList *users; /* Functions to call on update */ - char *error; /* NULL => no error */ - - struct stat stat_info; /* Internal use */ - - gboolean notify_active; /* Notify timeout is running */ - gint idle_callback; /* Idle callback ID */ - - GHashTable *known_items; /* What our users know about */ - GPtrArray *new_items; /* New items to add in */ - GPtrArray *up_items; /* Items to redraw */ - GPtrArray *gone_items; /* Items removed */ - - GList *recheck_list; /* Items to check on callback */ - - gboolean have_scanned; /* TRUE after first complete scan */ - gboolean scanning; /* TRUE if we sent DIR_START_SCAN */ - - /* Indicates that the directory needs to be rescanned. - * This is cleared when scanning starts, and set when the fscache - * detects that the directory needs to be rescanned and is already - * scanning. - * - * If scanning finishes when this is set, or if someone attaches - * and scanning is not in progress, a rescan is triggered. - */ - gboolean needs_update; - - gint rescan_timeout; /* See dir_rescan_soon() */ - -#ifdef USE_NOTIFY - int notify_fd; /* -1 if not watching */ -#endif -#ifdef USE_INOTIFY - guint inotify_source; -#endif -}; - -void dir_init(void); -void dir_attach(Directory *dir, DirCallback callback, gpointer data); -void dir_detach(Directory *dir, DirCallback callback, gpointer data); -void dir_update(Directory *dir, gchar *pathname); -void refresh_dirs(const char *path); -void dir_check_this(const guchar *path); -DirItem *dir_update_item(Directory *dir, const gchar *leafname); -void dir_merge_new(Directory *dir); -void dir_force_update_path(const gchar *path); -#if defined(USE_DNOTIFY) -void dnotify_wakeup(void); -#endif -void dir_drop_all_notifies(void); -void dir_queue_recheck(Directory *dir, DirItem *item); - -#endif /* _DIR_H */ diff --git a/ROX-Filer/src/diritem.c b/ROX-Filer/src/diritem.c deleted file mode 100644 index 1503e425..00000000 --- a/ROX-Filer/src/diritem.c +++ /dev/null @@ -1,356 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* diritem.c - get details about files */ - -/* Don't load icons larger than 400K (this is rather excessive, basically - * we just want to stop people crashing the filer with huge icons). - */ -#define MAX_ICON_SIZE (400 * 1024) - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "global.h" - -#include "diritem.h" -#include "support.h" -#include "gui_support.h" -#include "mount.h" -#include "type.h" -#include "usericons.h" -#include "options.h" -#include "fscache.h" -#include "pixmaps.h" -#include "xtypes.h" - -#define RECENT_DELAY (5 * 60) /* Time in seconds to consider a file recent */ -#define ABOUT_NOW(time) (diritem_recent_time - time < RECENT_DELAY) -/* If you want to make use of the RECENT flag, make sure this is set to - * the current time before calling diritem_restat(). - */ -time_t diritem_recent_time; - -/* Static prototypes */ -static void examine_dir(const guchar *path, DirItem *item, - struct stat *link_target); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void diritem_init(void) -{ - read_globicons(); -} - -/* Bring this item's structure uptodate. - * 'parent' is optional; it saves one stat() for directories. - */ -void diritem_restat(const guchar *path, DirItem *item, struct stat *parent) -{ - struct stat info; - - if (item->_image) - { - g_object_unref(item->_image); - item->_image = NULL; - } - item->flags = 0; - item->mime_type = NULL; - - if (mc_lstat(path, &info) == -1) - { - item->lstat_errno = errno; - item->base_type = TYPE_ERROR; - item->size = 0; - item->mode = 0; - item->mtime = item->ctime = item->atime = 0; - item->uid = (uid_t) -1; - item->gid = (gid_t) -1; - } - else - { - guchar *target_path; - - item->lstat_errno = 0; - item->size = info.st_size; - item->mode = info.st_mode; - item->atime = info.st_atime; - item->ctime = info.st_ctime; - item->mtime = info.st_mtime; - item->uid = info.st_uid; - item->gid = info.st_gid; - if (ABOUT_NOW(item->mtime) || ABOUT_NOW(item->ctime)) - item->flags |= ITEM_FLAG_RECENT; - - if (xattr_have(path)) - item->flags |= ITEM_FLAG_HAS_XATTR; - - if (S_ISLNK(info.st_mode)) - { - if (mc_stat(path, &info)) - item->base_type = TYPE_ERROR; - else - item->base_type = - mode_to_base_type(info.st_mode); - - item->flags |= ITEM_FLAG_SYMLINK; - - target_path = pathdup(path); - } - else - { - item->base_type = mode_to_base_type(info.st_mode); - target_path = (guchar *) path; - } - - if (item->base_type == TYPE_DIRECTORY) - { - if (mount_is_mounted(target_path, &info, - target_path == path ? parent : NULL)) - item->flags |= ITEM_FLAG_MOUNT_POINT - | ITEM_FLAG_MOUNTED; - else if (g_hash_table_lookup(fstab_mounts, - target_path)) - item->flags |= ITEM_FLAG_MOUNT_POINT; - } - - if (path != target_path) - g_free(target_path); - } - - if (item->base_type == TYPE_DIRECTORY) - { - /* KRJW: info.st_uid will be the uid of the dir, regardless - * of whether `path' is a dir or a symlink to one. Note that - * if path is a symlink to a dir, item->uid will be the uid - * of the *symlink*, but we really want the uid of the dir - * to which the symlink points. - */ - examine_dir(path, item, &info); - } - else if (item->base_type == TYPE_FILE) - { - if (item->flags & ITEM_FLAG_SYMLINK) - { - guchar *link_path; - link_path = pathdup(path); - item->mime_type = type_from_path(link_path - ? link_path - : path); - g_free(link_path); - } - else - item->mime_type = type_from_path(path); - - /* Note: for symlinks we need the mode of the target */ - if (info.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)) - { - /* Note that the flag is set for ALL executable - * files, but the mime_type must also be executable - * for clicking on the file to run it. - */ - item->flags |= ITEM_FLAG_EXEC_FILE; - - if (item->mime_type == NULL || - item->mime_type == application_octet_stream) - { - item->mime_type = application_executable; - } - else if (item->mime_type == text_plain && - !strchr(item->leafname, '.')) - { - item->mime_type = application_x_shellscript; - } - } - else if (item->mime_type == application_x_desktop) - { - item->flags |= ITEM_FLAG_EXEC_FILE; - } - - if (!item->mime_type) - item->mime_type = text_plain; - - check_globicon(path, item); - - if (item->mime_type == application_x_desktop && item->_image == NULL) - { - item->_image = g_fscache_lookup(desktop_icon_cache, path); - } - } - else - check_globicon(path, item); - - if (!item->mime_type) - item->mime_type = mime_type_from_base_type(item->base_type); -} - -DirItem *diritem_new(const guchar *leafname) -{ - DirItem *item; - - item = g_new(DirItem, 1); - item->leafname = g_strdup(leafname); - item->may_delete = FALSE; - item->_image = NULL; - item->base_type = TYPE_UNKNOWN; - item->flags = ITEM_FLAG_NEED_RESCAN_QUEUE; - item->mime_type = NULL; - item->leafname_collate = collate_key_new(leafname); - - return item; -} - -void diritem_free(DirItem *item) -{ - g_return_if_fail(item != NULL); - - if (item->_image) - g_object_unref(item->_image); - item->_image = NULL; - collate_key_free(item->leafname_collate); - g_free(item->leafname); - g_free(item); -} - -/* For use by di_image() only. Sets item->_image. */ -void _diritem_get_image(DirItem *item) -{ - g_return_if_fail(item->_image == NULL); - - if (item->base_type == TYPE_ERROR) - { - item->_image = im_error; - g_object_ref(im_error); - } - else - item->_image = type_to_icon(item->mime_type); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Fill in more details of the DirItem for a directory item. - * - Looks for an image (but maybe still NULL on error) - * - Updates ITEM_FLAG_APPDIR - * - * link_target contains stat info for the link target for symlinks (or for the - * item itself if not a link). - */ -static void examine_dir(const guchar *path, DirItem *item, - struct stat *link_target) -{ - struct stat info; - static GString *tmp = NULL; - uid_t uid = link_target->st_uid; - - if (!tmp) - tmp = g_string_new(NULL); - - check_globicon(path, item); - - if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - item->mime_type = inode_mountpoint; - return; /* Try to avoid automounter problems */ - } - - if (link_target->st_mode & S_IWOTH) - return; /* Don't trust world-writable dirs */ - - /* Finding the icon: - * - * - If it contains a .DirIcon then that's the icon - * - If it contains an AppRun then it's an application - * - If it contains an AppRun but no .DirIcon then try to - * use AppIcon.xpm as the icon. - * - * .DirIcon and AppRun must have the same owner as the - * directory itself, to prevent abuse of /tmp, etc. - * For symlinks, we want the symlink's owner. - */ - - g_string_printf(tmp, "%s/.DirIcon", path); - - if (item->_image) - goto no_diricon; /* Already got an icon */ - - if (mc_lstat(tmp->str, &info) != 0 || info.st_uid != uid) - goto no_diricon; /* Missing, or wrong owner */ - - if (S_ISLNK(info.st_mode) && mc_stat(tmp->str, &info) != 0) - goto no_diricon; /* Bad symlink */ - - if (info.st_size > MAX_ICON_SIZE || !S_ISREG(info.st_mode)) - goto no_diricon; /* Too big, or non-regular file */ - - /* Try to load image; may still get NULL... */ - item->_image = g_fscache_lookup(pixmap_cache, tmp->str); - -no_diricon: - - /* Try to find AppRun... */ - g_string_truncate(tmp, tmp->len - 8); - g_string_append(tmp, "AppRun"); - - if (mc_lstat(tmp->str, &info) != 0 || info.st_uid != uid) - goto out; /* Missing, or wrong owner */ - - if (!(info.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) - goto out; /* Not executable */ - - item->flags |= ITEM_FLAG_APPDIR; - - /* Try to load AppIcon.xpm... */ - - if (item->_image) - goto out; /* Already got an icon */ - - g_string_truncate(tmp, tmp->len - 3); - g_string_append(tmp, "Icon.xpm"); - - /* Note: since AppRun is valid we don't need to check AppIcon.xpm - * so carefully. - */ - - if (mc_stat(tmp->str, &info) != 0) - goto out; /* Missing, or broken symlink */ - - if (info.st_size > MAX_ICON_SIZE || !S_ISREG(info.st_mode)) - goto out; /* Too big, or non-regular file */ - - /* Try to load image; may still get NULL... */ - item->_image = g_fscache_lookup(pixmap_cache, tmp->str); - -out: - - if ((item->flags & ITEM_FLAG_APPDIR) && !item->_image) - { - /* This is an application without an icon */ - item->_image = im_appdir; - g_object_ref(item->_image); - } -} diff --git a/ROX-Filer/src/diritem.h b/ROX-Filer/src/diritem.h deleted file mode 100644 index ef111803..00000000 --- a/ROX-Filer/src/diritem.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Thomas Leonard, - */ - - -#ifndef _DIRITEM_H -#define _DIRITEM_H - -#include - -extern time_t diritem_recent_time; - -typedef enum -{ - ITEM_FLAG_SYMLINK = 0x01, /* Is a symlink */ - ITEM_FLAG_APPDIR = 0x02, /* Contains an AppRun */ - ITEM_FLAG_MOUNT_POINT = 0x04, /* Is mounted or in fstab */ - ITEM_FLAG_MOUNTED = 0x08, /* Is mounted */ - ITEM_FLAG_EXEC_FILE = 0x20, /* File, and has an X bit set (or is a .desktop)*/ - ITEM_FLAG_MAY_DELETE = 0x40, /* Delete on finishing scan */ - ITEM_FLAG_RECENT = 0x80, /* [MC]-time is around now */ - - /* DirItems are created with this flag set. Restatting or queuing an - * item in this state clears the flag. This is to prevent an item - * being added to the queue more than once at a time. - */ - ITEM_FLAG_NEED_RESCAN_QUEUE = 0x100, - - ITEM_FLAG_HAS_XATTR = 0x200, /* Has extended attributes set */ -} ItemFlags; - -struct _DirItem -{ - char *leafname; - CollateKey *leafname_collate; /* Preprocessed for sorting */ - gboolean may_delete; /* Not yet found, this scan */ - int base_type; - int flags; - mode_t mode; - off_t size; - time_t atime, ctime, mtime; - MaskedPixmap *_image; /* NULL => leafname only so far */ - MIME_type *mime_type; - uid_t uid; - gid_t gid; - int lstat_errno; /* 0 if details are valid */ -}; - -void diritem_init(void); -DirItem *diritem_new(const guchar *leafname); -void diritem_restat(const guchar *path, DirItem *item, struct stat *parent); -void _diritem_get_image(DirItem *item); -void diritem_free(DirItem *item); - -static inline MaskedPixmap *di_image(DirItem *item) -{ - if (!item->_image && item->base_type != TYPE_UNKNOWN) - _diritem_get_image(item); - return item->_image; -} - -#endif /* _DIRITEM_H */ diff --git a/ROX-Filer/src/display.c b/ROX-Filer/src/display.c deleted file mode 100644 index 8cacc398..00000000 --- a/ROX-Filer/src/display.c +++ /dev/null @@ -1,907 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* display.c - code for arranging and displaying file items */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "global.h" - -#include "main.h" -#include "filer.h" -#include "display.h" -#include "support.h" -#include "gui_support.h" -#include "pixmaps.h" -#include "menu.h" -#include "dnd.h" -#include "run.h" -#include "mount.h" -#include "type.h" -#include "options.h" -#include "action.h" -#include "minibuffer.h" -#include "dir.h" -#include "diritem.h" -#include "fscache.h" -#include "view_iface.h" -#include "xtypes.h" - -#define HUGE_WRAP (1.5 * o_large_width.int_value) - -/* Options bits */ -static Option o_display_caps_first; -static Option o_display_dirs_first; -Option o_display_size; -Option o_display_details; -Option o_display_sort_by; -static Option o_large_width; -Option o_small_width; -Option o_display_show_hidden; -Option o_display_show_thumbs; -Option o_display_show_headers; -Option o_display_show_full_type; -Option o_display_inherit_options; -static Option o_filer_change_size_num; -Option o_vertical_order_small, o_vertical_order_large; -Option o_xattr_show; - -/* Static prototypes */ -static void display_details_set(FilerWindow *filer_window, DetailsType details); -static void display_style_set(FilerWindow *filer_window, DisplayStyle style); -static void options_changed(void); -static char *details(FilerWindow *filer_window, DirItem *item); -static void display_set_actual_size_real(FilerWindow *filer_window); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void display_init() -{ - option_add_int(&o_display_caps_first, "display_caps_first", FALSE); - option_add_int(&o_display_dirs_first, "display_dirs_first", FALSE); - option_add_int(&o_display_size, "display_icon_size", AUTO_SIZE_ICONS); - option_add_int(&o_display_details, "display_details", DETAILS_NONE); - option_add_int(&o_display_sort_by, "display_sort_by", SORT_NAME); - option_add_int(&o_large_width, "display_large_width", 155); - option_add_int(&o_small_width, "display_small_width", 250); - option_add_int(&o_display_show_hidden, "display_show_hidden", FALSE); - option_add_int(&o_display_show_thumbs, "display_show_thumbs", FALSE); - option_add_int(&o_display_show_headers, "display_show_headers", TRUE); - option_add_int(&o_display_show_full_type, "display_show_full_type", FALSE); - option_add_int(&o_display_inherit_options, - "display_inherit_options", FALSE); - option_add_int(&o_filer_change_size_num, "filer_change_size_num", 30); - option_add_int(&o_vertical_order_small, "vertical_order_small", FALSE); - option_add_int(&o_vertical_order_large, "vertical_order_large", FALSE); - option_add_int(&o_xattr_show, "xattr_show", TRUE); - - option_add_notify(options_changed); -} - -void draw_emblem_on_icon(GdkWindow *window, GtkStyle *style, - const char *stock_id, - int *x, int y) -{ - GtkIconSet *icon_set; - GdkPixbuf *pixbuf; - - icon_set = gtk_style_lookup_icon_set(style, - stock_id); - if (icon_set) - { - pixbuf = gtk_icon_set_render_icon(icon_set, - style, - GTK_TEXT_DIR_LTR, - GTK_STATE_NORMAL, - mount_icon_size, - NULL, - NULL); - } - else - { - pixbuf=im_unknown->pixbuf; - g_object_ref(pixbuf); - } - - gdk_pixbuf_render_to_drawable_alpha(pixbuf, - window, - 0, 0, /* src */ - *x, y, /* dest */ - -1, -1, - GDK_PIXBUF_ALPHA_FULL, 128, /* (unused) */ - GDK_RGB_DITHER_NORMAL, 0, 0); - - *x+=gdk_pixbuf_get_width(pixbuf)+1; - g_object_unref(pixbuf); -} - -/* Draw this icon (including any symlink or mount symbol) inside the - * given rectangle. - */ -void draw_huge_icon(GdkWindow *window, GtkStyle *style, GdkRectangle *area, - DirItem *item, MaskedPixmap *image, gboolean selected, - GdkColor *color) -{ - int width, height; - int image_x; - int image_y; - GdkPixbuf *pixbuf; - - if (!image) - return; - - width = image->huge_width; - height = image->huge_height; - image_x = area->x + ((area->width - width) >> 1); - image_y = MAX(0, area->height - height - 6); - - pixbuf = selected - ? create_spotlight_pixbuf(image->huge_pixbuf, color) - : image->huge_pixbuf; - - gdk_pixbuf_render_to_drawable_alpha( - pixbuf, - window, - 0, 0, /* src */ - image_x, area->y + image_y, /* dest */ - width, height, - GDK_PIXBUF_ALPHA_FULL, 128, /* (unused) */ - GDK_RGB_DITHER_NORMAL, 0, 0); - - if (selected) - g_object_unref(pixbuf); - - if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - const char *mp = item->flags & ITEM_FLAG_MOUNTED - ? ROX_STOCK_MOUNTED - : ROX_STOCK_MOUNT; - draw_emblem_on_icon(window, style, mp, &image_x, area->y + 2); - } - if (item->flags & ITEM_FLAG_SYMLINK) - { - draw_emblem_on_icon(window, style, ROX_STOCK_SYMLINK, - &image_x, area->y + 2); - } - if ((item->flags & ITEM_FLAG_HAS_XATTR) && o_xattr_show.int_value) - { - draw_emblem_on_icon(window, style, ROX_STOCK_XATTR, - &image_x, area->y + 2); - } -} - -/* Draw this icon (including any symlink or mount symbol) inside the - * given rectangle. - */ -void draw_large_icon(GdkWindow *window, - GtkStyle *style, - GdkRectangle *area, - DirItem *item, - MaskedPixmap *image, - gboolean selected, - GdkColor *color) -{ - int width; - int height; - int image_x; - int image_y; - GdkPixbuf *pixbuf; - - if (!image) - return; - - width = MIN(image->width, ICON_WIDTH); - height = MIN(image->height, ICON_HEIGHT); - image_x = area->x + ((area->width - width) >> 1); - image_y = MAX(0, area->height - height - 6); - - pixbuf = selected - ? create_spotlight_pixbuf(image->pixbuf, color) - : image->pixbuf; - - gdk_pixbuf_render_to_drawable_alpha( - pixbuf, - window, - 0, 0, /* src */ - image_x, area->y + image_y, /* dest */ - width, height, - GDK_PIXBUF_ALPHA_FULL, 128, /* (unused) */ - GDK_RGB_DITHER_NORMAL, 0, 0); - - if (selected) - g_object_unref(pixbuf); - - if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - const char *mp = item->flags & ITEM_FLAG_MOUNTED - ? ROX_STOCK_MOUNTED - : ROX_STOCK_MOUNT; - draw_emblem_on_icon(window, style, mp, &image_x, area->y + 2); - } - if (item->flags & ITEM_FLAG_SYMLINK) - { - draw_emblem_on_icon(window, style, ROX_STOCK_SYMLINK, - &image_x, area->y + 2); - } - if ((item->flags & ITEM_FLAG_HAS_XATTR) && o_xattr_show.int_value) - { - draw_emblem_on_icon(window, style, ROX_STOCK_XATTR, - &image_x, area->y + 2); - } -} - -void draw_small_icon(GdkWindow *window, GtkStyle *style, GdkRectangle *area, - DirItem *item, MaskedPixmap *image, gboolean selected, - GdkColor *color) -{ - int width, height, image_x, image_y; - GdkPixbuf *pixbuf; - - if (!image) - return; - - if (!image->sm_pixbuf) - pixmap_make_small(image); - - width = MIN(image->sm_width, SMALL_WIDTH); - height = MIN(image->sm_height, SMALL_HEIGHT); - image_x = area->x + ((area->width - width) >> 1); - image_y = MAX(0, SMALL_HEIGHT - image->sm_height); - - pixbuf = selected - ? create_spotlight_pixbuf(image->sm_pixbuf, color) - : image->sm_pixbuf; - - gdk_pixbuf_render_to_drawable_alpha( - pixbuf, - window, - 0, 0, /* src */ - image_x, area->y + image_y, /* dest */ - width, height, - GDK_PIXBUF_ALPHA_FULL, 128, /* (unused) */ - GDK_RGB_DITHER_NORMAL, 0, 0); - - if (selected) - g_object_unref(pixbuf); - - if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - const char *mp = item->flags & ITEM_FLAG_MOUNTED - ? ROX_STOCK_MOUNTED - : ROX_STOCK_MOUNT; - draw_emblem_on_icon(window, style, mp, &image_x, area->y + 2); - } - if (item->flags & ITEM_FLAG_SYMLINK) - { - draw_emblem_on_icon(window, style, ROX_STOCK_SYMLINK, - &image_x, area->y + 8); - } - if ((item->flags & ITEM_FLAG_HAS_XATTR) && o_xattr_show.int_value) - { - draw_emblem_on_icon(window, style, ROX_STOCK_XATTR, - &image_x, area->y + 8); - } -} - -/* The sort functions aren't called from outside, but they are - * passed as arguments to display_set_sort_fn(). - */ - -#define IS_A_DIR(item) (item->base_type == TYPE_DIRECTORY && \ - !(item->flags & ITEM_FLAG_APPDIR)) - -#define SORT_DIRS \ - if (o_display_dirs_first.int_value) { \ - gboolean id1 = IS_A_DIR(i1); \ - gboolean id2 = IS_A_DIR(i2); \ - if (id1 && !id2) return -1; \ - if (id2 && !id1) return 1; \ - } - -int sort_by_name(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - CollateKey *n1 = i1->leafname_collate; - CollateKey *n2 = i2->leafname_collate; - int retval; - - SORT_DIRS; - - retval = collate_key_cmp(n1, n2, o_display_caps_first.int_value); - - return retval ? retval : strcmp(i1->leafname, i2->leafname); -} - -int sort_by_type(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - MIME_type *m1, *m2; - - int diff = i1->base_type - i2->base_type; - - if (!diff) - diff = (i1->flags & ITEM_FLAG_APPDIR) - - (i2->flags & ITEM_FLAG_APPDIR); - if (diff) - return diff > 0 ? 1 : -1; - - m1 = i1->mime_type; - m2 = i2->mime_type; - - if (m1 && m2) - { - diff = strcmp(m1->media_type, m2->media_type); - if (!diff) - diff = strcmp(m1->subtype, m2->subtype); - } - else if (m1 || m2) - diff = m1 ? 1 : -1; - else - diff = 0; - - if (diff) - return diff > 0 ? 1 : -1; - - return sort_by_name(item1, item2); -} - -int sort_by_owner(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - const gchar *name1; - const gchar *name2; - - if(i1->uid==i2->uid) - return sort_by_name(item1, item2); - - name1=user_name(i1->uid); - name2=user_name(i2->uid); - - return strcmp(name1, name2); -} - -int sort_by_group(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - const gchar *name1; - const gchar *name2; - - if(i1->gid==i2->gid) - return sort_by_name(item1, item2); - - name1=group_name(i1->gid); - name2=group_name(i2->gid); - - return strcmp(name1, name2); -} - -int sort_by_date(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - - /* SORT_DIRS; -- too confusing! */ - - return i1->mtime < i2->mtime ? -1 : - i1->mtime > i2->mtime ? 1 : - sort_by_name(item1, item2); -} - -int sort_by_size(const void *item1, const void *item2) -{ - const DirItem *i1 = (DirItem *) item1; - const DirItem *i2 = (DirItem *) item2; - - SORT_DIRS; - - return i1->size < i2->size ? -1 : - i1->size > i2->size ? 1 : - sort_by_name(item1, item2); -} - -void display_set_sort_type(FilerWindow *filer_window, SortType sort_type, - GtkSortType order) -{ - if (filer_window->sort_type == sort_type && - filer_window->sort_order == order) - return; - - filer_window->sort_type = sort_type; - filer_window->sort_order = order; - - view_sort(filer_window->view); -} - -/* Change the icon size and style. - * force_resize should only be TRUE for new windows. - */ -void display_set_layout(FilerWindow *filer_window, - DisplayStyle style, - DetailsType details, - gboolean force_resize) -{ - gboolean style_changed = FALSE; - - g_return_if_fail(filer_window != NULL); - - if (filer_window->display_style_wanted != style - || filer_window->details_type != details) - { - style_changed = TRUE; - } - - display_style_set(filer_window, style); - display_details_set(filer_window, details); - - /* Recreate layouts because wrapping may have changed */ - view_style_changed(filer_window->view, VIEW_UPDATE_NAME); - - if (force_resize || o_filer_auto_resize.int_value == RESIZE_ALWAYS - || (o_filer_auto_resize.int_value == RESIZE_STYLE && style_changed)) - { - view_autosize(filer_window->view); - } -} - -/* Set the 'Show Thumbnails' flag for this window */ -void display_set_thumbs(FilerWindow *filer_window, gboolean thumbs) -{ - if (filer_window->show_thumbs == thumbs) - return; - - filer_window->show_thumbs = thumbs; - - view_style_changed(filer_window->view, VIEW_UPDATE_VIEWDATA); - - if (!thumbs) - filer_cancel_thumbnails(filer_window); - - filer_set_title(filer_window); - - filer_create_thumbs(filer_window); -} - -void display_update_hidden(FilerWindow *filer_window) -{ - filer_detach_rescan(filer_window); /* (updates titlebar) */ - - display_set_actual_size(filer_window, FALSE); -} - -/* Set the 'Show Hidden' flag for this window */ -void display_set_hidden(FilerWindow *filer_window, gboolean hidden) -{ - if (filer_window->show_hidden == hidden) - return; - - /* - filer_window->show_hidden = hidden; - */ - filer_set_hidden(filer_window, hidden); - - display_update_hidden(filer_window); -} - -/* Set the 'Filter Directories' flag for this window */ -void display_set_filter_directories(FilerWindow *filer_window, gboolean filter_directories) -{ - if (filer_window->filter_directories == filter_directories) - return; - - /* - filer_window->show_hidden = hidden; - */ - filer_set_filter_directories(filer_window, filter_directories); - - display_update_hidden(filer_window); -} - -void display_set_filter(FilerWindow *filer_window, FilterType type, - const gchar *filter_string) -{ - if (filer_set_filter(filer_window, type, filter_string)) - display_update_hidden(filer_window); -} - - -/* Highlight (wink or cursor) this item in the filer window. If the item - * isn't already there but we're scanning then highlight it if it - * appears later. - */ -void display_set_autoselect(FilerWindow *filer_window, const gchar *leaf) -{ - gchar *new; - - g_return_if_fail(filer_window != NULL); - g_return_if_fail(leaf != NULL); - - new = g_strdup(leaf); /* leaf == old value sometimes */ - - null_g_free(&filer_window->auto_select); - - if (view_autoselect(filer_window->view, new)) - g_free(new); - else - filer_window->auto_select = new; -} - -/* Change the icon size (wraps) */ -void display_change_size(FilerWindow *filer_window, gboolean bigger) -{ - DisplayStyle new; - - g_return_if_fail(filer_window != NULL); - - switch (filer_window->display_style) - { - case LARGE_ICONS: - new = bigger ? HUGE_ICONS : SMALL_ICONS; - break; - case HUGE_ICONS: - if (bigger) - return; - new = LARGE_ICONS; - break; - default: - if (!bigger) - return; - new = LARGE_ICONS; - break; - } - - display_set_layout(filer_window, new, filer_window->details_type, - FALSE); -} - -ViewData *display_create_viewdata(FilerWindow *filer_window, DirItem *item) -{ - ViewData *view; - - view = g_new(ViewData, 1); - - view->layout = NULL; - view->details = NULL; - view->image = NULL; - - display_update_view(filer_window, item, view, TRUE); - - return view; -} - -/* Set the display style to the desired style. If the desired style - * is AUTO_SIZE_ICONS, choose an appropriate size. Also resizes filer - * window, if requested. - */ -void display_set_actual_size(FilerWindow *filer_window, gboolean force_resize) -{ - display_set_layout(filer_window, filer_window->display_style_wanted, - filer_window->details_type, force_resize); -} - - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void options_changed(void) -{ - GList *next; - - for (next = all_filer_windows; next; next = next->next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - int flags = 0; - - if (o_display_dirs_first.has_changed || - o_display_caps_first.has_changed) - view_sort(VIEW(filer_window->view)); - - if (o_display_show_headers.has_changed) - flags |= VIEW_UPDATE_HEADERS; - - if (o_large_width.has_changed || o_small_width.has_changed) - flags |= VIEW_UPDATE_NAME; /* Recreate PangoLayout */ - - view_style_changed(filer_window->view, flags); - } -} - -/* Return a new string giving details of this item, or NULL if details - * are not being displayed. If details are not yet available, return - * a string of the right length. - */ -static char *details(FilerWindow *filer_window, DirItem *item) -{ - mode_t m = item->mode; - guchar *buf = NULL; - gboolean scanned = item->base_type != TYPE_UNKNOWN; - - if (filer_window->details_type == DETAILS_NONE) - return NULL; - - if (scanned && item->lstat_errno) - buf = g_strdup_printf(_("lstat(2) failed: %s"), - g_strerror(item->lstat_errno)); - else if (filer_window->details_type == DETAILS_TYPE) - { - MIME_type *type = item->mime_type; - - if (!scanned) - return g_strdup("application/octet-stream"); - - buf = g_strdup_printf("%s/%s", - type->media_type, type->subtype); - } - else if (filer_window->details_type == DETAILS_TIMES) - { - guchar *ctime, *mtime, *atime; - - ctime = pretty_time(&item->ctime); - mtime = pretty_time(&item->mtime); - atime = pretty_time(&item->atime); - - buf = g_strdup_printf("a[%s] c[%s] m[%s]", atime, ctime, mtime); - g_free(ctime); - g_free(mtime); - g_free(atime); - } - else if (filer_window->details_type == DETAILS_PERMISSIONS) - { - if (!scanned) - return g_strdup("---,---,---/--" -#ifdef S_ISVTX - "-" -#endif - " 12345678 12345678"); - - buf = g_strdup_printf("%s %-8.8s %-8.8s", - pretty_permissions(m), - user_name(item->uid), - group_name(item->gid)); - } - else - { - if (!scanned) - { - if (filer_window->display_style == SMALL_ICONS) - return g_strdup("1234M"); - else - return g_strdup("1234 bytes"); - } - - if (item->base_type != TYPE_DIRECTORY) - { - if (filer_window->display_style == SMALL_ICONS) - buf = g_strdup(format_size_aligned(item->size)); - else - buf = g_strdup(format_size(item->size)); - } - else - buf = g_strdup("-"); - } - - return buf; -} - -/* Note: Call style_changed after this */ -static void display_details_set(FilerWindow *filer_window, DetailsType details) -{ - filer_window->details_type = details; -} - -/* Note: Call style_changed after this */ -static void display_style_set(FilerWindow *filer_window, DisplayStyle style) -{ - filer_window->display_style_wanted = style; - display_set_actual_size_real(filer_window); -} - -/* Each displayed item has a ViewData structure with some cached information - * to help quickly draw the item (eg, the PangoLayout). This function updates - * this information. - */ -void display_update_view(FilerWindow *filer_window, - DirItem *item, - ViewData *view, - gboolean update_name_layout) -{ - DisplayStyle style = filer_window->display_style; - int w, h; - int wrap_width = -1; - char *str; - static PangoFontDescription *monospace = NULL; - PangoAttrList *list = NULL; - - if (!monospace) - monospace = pango_font_description_from_string("monospace"); - - if (view->details) - { - g_object_unref(G_OBJECT(view->details)); - view->details = NULL; - } - - str = details(filer_window, item); - if (str) - { - PangoAttrList *details_list; - int perm_offset = -1; - - view->details = gtk_widget_create_pango_layout( - filer_window->window, str); - g_free(str); - - pango_layout_set_font_description(view->details, monospace); - pango_layout_get_size(view->details, &w, &h); - view->details_width = w / PANGO_SCALE; - view->details_height = h / PANGO_SCALE; - - if (filer_window->details_type == DETAILS_PERMISSIONS) - perm_offset = 0; - if (perm_offset > -1) - { - PangoAttribute *attr; - - attr = pango_attr_underline_new(PANGO_UNDERLINE_SINGLE); - - perm_offset += 4 * applicable(item->uid, item->gid); - attr->start_index = perm_offset; - attr->end_index = perm_offset + 3; - - details_list = pango_attr_list_new(); - pango_attr_list_insert(details_list, attr); - pango_layout_set_attributes(view->details, - details_list); - } - } - - if (view->image) - { - g_object_unref(view->image); - view->image = NULL; - } - - if (filer_window->show_thumbs && item->base_type == TYPE_FILE /*&& - strcmp(item->mime_type->media_type, "image") == 0*/) - { - const guchar *path; - - path = make_path(filer_window->real_path, item->leafname); - - view->image = g_fscache_lookup_full(pixmap_cache, path, - FSCACHE_LOOKUP_ONLY_NEW, NULL); - } - - if (!view->image) - { - view->image = di_image(item); - if (view->image) - g_object_ref(view->image); - } - - if (view->layout && update_name_layout) - { - g_object_unref(G_OBJECT(view->layout)); - view->layout = NULL; - } - - if (view->layout) - { - /* Do nothing */ - } - else if (g_utf8_validate(item->leafname, -1, NULL)) - { - view->layout = gtk_widget_create_pango_layout( - filer_window->window, item->leafname); - pango_layout_set_auto_dir(view->layout, FALSE); - } - else - { - PangoAttribute *attr; - gchar *utf8; - - utf8 = to_utf8(item->leafname); - view->layout = gtk_widget_create_pango_layout( - filer_window->window, utf8); - g_free(utf8); - - attr = pango_attr_foreground_new(0xffff, 0, 0); - attr->start_index = 0; - attr->end_index = -1; - if (!list) - list = pango_attr_list_new(); - pango_attr_list_insert(list, attr); - } - - if (item->flags & ITEM_FLAG_RECENT) - { - PangoAttribute *attr; - - attr = pango_attr_weight_new(PANGO_WEIGHT_BOLD); - attr->start_index = 0; - attr->end_index = -1; - if (!list) - list = pango_attr_list_new(); - pango_attr_list_insert(list, attr); - } - - if (list) - pango_layout_set_attributes(view->layout, list); - - if (filer_window->details_type == DETAILS_NONE) - { - if (style == HUGE_ICONS) - wrap_width = HUGE_WRAP * PANGO_SCALE; - else if (style == LARGE_ICONS) - wrap_width = o_large_width.int_value * PANGO_SCALE; - } - -#ifdef USE_PANGO_WRAP_WORD_CHAR - pango_layout_set_wrap(view->layout, PANGO_WRAP_WORD_CHAR); -#endif - if (wrap_width != -1) - pango_layout_set_width(view->layout, wrap_width); - - pango_layout_get_size(view->layout, &w, &h); - view->name_width = w / PANGO_SCALE; - view->name_height = h / PANGO_SCALE; -} - -/* Sets display_style from display_style_wanted. - * See also display_set_actual_size(). - */ -static void display_set_actual_size_real(FilerWindow *filer_window) -{ - DisplayStyle size = filer_window->display_style_wanted; - int n; - - g_return_if_fail(filer_window != NULL); - - if (size == AUTO_SIZE_ICONS) - { - n = view_count_items(filer_window->view); - - if (n >= o_filer_change_size_num.int_value) - size = SMALL_ICONS; - else - size = LARGE_ICONS; - } - - filer_window->display_style = size; -} diff --git a/ROX-Filer/src/display.h b/ROX-Filer/src/display.h deleted file mode 100644 index cd4fb45e..00000000 --- a/ROX-Filer/src/display.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _DISPLAY_H -#define _DISPLAY_H - -#define ROW_HEIGHT_LARGE 64 - -#include -#include -#include - -typedef struct _ViewData ViewData; - -struct _ViewData -{ - PangoLayout *layout; - PangoLayout *details; - - int name_width; - int name_height; - int details_width; - int details_height; - - MaskedPixmap *image; /* Image; possibly thumbnail */ -}; - -extern Option o_display_inherit_options, o_display_sort_by; -extern Option o_display_size, o_display_details, o_display_show_hidden; -extern Option o_display_show_headers, o_display_show_full_type; -extern Option o_display_show_thumbs; -extern Option o_small_width; -extern Option o_vertical_order_small, o_vertical_order_large; - -/* Prototypes */ -void display_init(void); -void display_set_layout(FilerWindow *filer_window, - DisplayStyle style, - DetailsType details, - gboolean force_resize); -void display_set_hidden(FilerWindow *filer_window, gboolean hidden); -void display_set_filter_directories(FilerWindow *filer_window, gboolean filter_directories); -void display_update_hidden(FilerWindow *filer_window); -void display_set_filter(FilerWindow *filer_window, FilterType type, - const gchar *filter_string); -void display_set_thumbs(FilerWindow *filer_window, gboolean thumbs); -int sort_by_name(const void *item1, const void *item2); -int sort_by_type(const void *item1, const void *item2); -int sort_by_date(const void *item1, const void *item2); -int sort_by_size(const void *item1, const void *item2); -int sort_by_owner(const void *item1, const void *item2); -int sort_by_group(const void *item1, const void *item2); -void display_set_sort_type(FilerWindow *filer_window, SortType sort_type, - GtkSortType order); -void display_set_autoselect(FilerWindow *filer_window, const gchar *leaf); - -void draw_large_icon(GdkWindow *window, - GtkStyle *style, - GdkRectangle *area, - DirItem *item, - MaskedPixmap *image, - gboolean selected, - GdkColor *color); -gboolean display_is_truncated(FilerWindow *filer_window, int i); -void display_change_size(FilerWindow *filer_window, gboolean bigger); - -ViewData *display_create_viewdata(FilerWindow *filer_window, DirItem *item); -void display_update_view(FilerWindow *filer_window, - DirItem *item, - ViewData *view, - gboolean update_name_layout); -void display_update_views(FilerWindow *filer_window); -void draw_small_icon(GdkWindow *window, GtkStyle *style, GdkRectangle *area, - DirItem *item, MaskedPixmap *image, gboolean selected, - GdkColor *color); -void draw_huge_icon(GdkWindow *window, GtkStyle *style, GdkRectangle *area, - DirItem *item, - MaskedPixmap *image, gboolean selected, - GdkColor *color); -void display_set_actual_size(FilerWindow *filer_window, gboolean force_resize); -void draw_emblem_on_icon(GdkWindow *window, GtkStyle *style, - const char *stock_id, - int *x, int y); - -#endif /* _DISPLAY_H */ diff --git a/ROX-Filer/src/dnd.c b/ROX-Filer/src/dnd.c deleted file mode 100644 index 7d2d6023..00000000 --- a/ROX-Filer/src/dnd.c +++ /dev/null @@ -1,1414 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* dnd.c - code for handling drag and drop */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "global.h" - -#include "view_iface.h" -#include "dnd.h" -#include "type.h" -#include "filer.h" -#include "action.h" -#include "pixmaps.h" -#include "gui_support.h" -#include "support.h" -#include "options.h" -#include "run.h" -#include "pinboard.h" -#include "dir.h" -#include "diritem.h" -#include "usericons.h" -#include "menu.h" -#include "bookmarks.h" - -#define MAXURILEN 4096 /* Longest URI to allow */ - -gint drag_start_x, drag_start_y; -MotionType motion_state = MOTION_NONE; - -static GList *prompt_local_paths = NULL; -static gchar *prompt_dest_path = NULL; - -/* This keeps track of how many mouse buttons are currently down. - * We add a grab when it does 0->1 and release it on 1<-0. - * - * It may also be set to zero to disable the motion system (eg, - * when popping up a menu). - */ -gint motion_buttons_pressed = 0; - -/* Static prototypes */ -static void set_xds_prop(GdkDragContext *context, const char *text); -static void desktop_drag_data_received(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - FilerWindow *filer_window); -static void got_data_xds_reply(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint32 time); -static void got_data_raw(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint32 time); -static void got_uri_list(GtkWidget *widget, - GdkDragContext *context, - const char *selection_data, - guint32 time); -static gboolean drag_drop(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - gpointer data); -static void drag_data_received(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - gpointer user_data); -static gboolean spring_now(gpointer data); -static void spring_win_destroyed(GtkWidget *widget, gpointer data); -static void menuitem_response(gpointer data, guint action, GtkWidget *widget); -static void prompt_action(GList *paths, gchar *dest); - -typedef enum { - MENU_COPY, - MENU_MOVE, - MENU_LINK_REL, - MENU_LINK_ABS, -} MenuActionType; - -#undef N_ -#define N_(x) x -static GtkItemFactoryEntry menu_def[] = { -{N_("Copy"), NULL, menuitem_response, MENU_COPY, NULL}, -{N_("Move"), NULL, menuitem_response, MENU_MOVE, NULL}, -{N_("Link (relative)"), NULL, menuitem_response, MENU_LINK_REL, NULL}, -{N_("Link (absolute)"), NULL, menuitem_response, MENU_LINK_ABS, NULL}, -}; -static GtkWidget *dnd_menu = NULL; - -/* Possible values for drop_dest_type (can also be NULL). - * In either case, drop_dest_path is the app/file/dir to use. - */ -const char *drop_dest_prog = "drop_dest_prog"; /* Run a program */ -const char *drop_dest_dir = "drop_dest_dir"; /* Save to path */ -const char *drop_dest_pass_through = "drop_dest_pass"; /* Pass to parent */ -const char *drop_dest_bookmark = "drop_dest_bookmark"; /* Add to bookmarks */ - -GdkAtom XdndDirectSave0; -GdkAtom xa_text_plain; -GdkAtom text_uri_list; -GdkAtom text_x_moz_url; -GdkAtom xa_application_octet_stream; -GdkAtom xa_string; /* Not actually used for DnD, but the others are here! */ - -int spring_in_progress = 0; /* Non-zero changes filer_opendir slightly */ - -Option o_dnd_drag_to_icons; -Option o_dnd_spring_open; -static Option o_dnd_spring_delay; -static Option o_dnd_middle_menu; -Option o_dnd_left_menu; -static Option o_dnd_uri_handler; - -void dnd_init(void) -{ - XdndDirectSave0 = gdk_atom_intern("XdndDirectSave0", FALSE); - xa_text_plain = gdk_atom_intern("text/plain", FALSE); - text_uri_list = gdk_atom_intern("text/uri-list", FALSE); - text_x_moz_url = gdk_atom_intern("text/x-moz-url", FALSE); - xa_application_octet_stream = gdk_atom_intern("application/octet-stream", - FALSE); - xa_string = gdk_atom_intern("STRING", FALSE); - - option_add_int(&o_dnd_drag_to_icons, "dnd_drag_to_icons", 1); - option_add_int(&o_dnd_spring_open, "dnd_spring_open", 0); - option_add_int(&o_dnd_spring_delay, "dnd_spring_delay", 400); - option_add_int(&o_dnd_left_menu, "dnd_left_menu", TRUE); - option_add_int(&o_dnd_middle_menu, "dnd_middle_menu", TRUE); - - option_add_string(&o_dnd_uri_handler, "dnd_uri_handler", - "xterm -e wget $1"); -} - -/* SUPPORT FUNCTIONS */ - -/* Set the XdndDirectSave0 property on the source window for this context */ -static void set_xds_prop(GdkDragContext *context, const char *text) -{ - gdk_property_change(context->source_window, - XdndDirectSave0, - xa_text_plain, 8, - GDK_PROP_MODE_REPLACE, - text, - strlen(text)); -} - -static char *get_xds_prop(GdkDragContext *context) -{ - guchar *prop_text; - gint length; - - if (gdk_property_get(context->source_window, - XdndDirectSave0, - xa_text_plain, - 0, MAXURILEN, - FALSE, - NULL, NULL, - &length, &prop_text) && prop_text) - { - /* Terminate the string */ - prop_text = g_realloc(prop_text, length + 1); - prop_text[length] = '\0'; - /* Note: assuming UTF-8 (should convert here) */ - return prop_text; - } - - return NULL; -} - -/* Is the sender willing to supply this target type? */ -gboolean provides(GdkDragContext *context, GdkAtom target) -{ - GList *targets = context->targets; - - while (targets && ((GdkAtom) targets->data != target)) - targets = targets->next; - - return targets != NULL; -} - -/* DRAGGING FROM US */ - -/* The user has held the mouse button down over a group of item and moved - - * start a drag. 'uri_list' is copied, so you can delete it straight away. - */ -void drag_selection(GtkWidget *widget, GdkEventMotion *event, guchar *uri_list) -{ - GdkPixbuf *pixbuf; - GdkDragContext *context; - GdkDragAction actions; - GtkTargetList *target_list; - GtkTargetEntry target_table[] = { - {"text/uri-list", 0, TARGET_URI_LIST}, - {"UTF8_STRING", 0, TARGET_UTF8}, - }; - - if (event->state & GDK_BUTTON1_MASK) - actions = GDK_ACTION_COPY | GDK_ACTION_MOVE - | GDK_ACTION_LINK | GDK_ACTION_ASK; - else - { - if (o_dnd_middle_menu.int_value) - actions = GDK_ACTION_ASK; - else - actions = GDK_ACTION_MOVE; - } - - target_list = gtk_target_list_new(target_table, - G_N_ELEMENTS(target_table)); - - context = gtk_drag_begin(widget, - target_list, - actions, - (event->state & GDK_BUTTON1_MASK) ? 1 : - (event->state & GDK_BUTTON2_MASK) ? 2 : 3, - (GdkEvent *) event); - - g_dataset_set_data_full(context, "uri_list", - g_strdup(uri_list), g_free); - - pixbuf = gtk_widget_render_icon(widget, GTK_STOCK_DND_MULTIPLE, - GTK_ICON_SIZE_DIALOG, NULL); - gtk_drag_set_icon_pixbuf(context, pixbuf, 0, 0); - g_object_unref(pixbuf); -} - -/* Copy/Load this item into another directory/application */ -void drag_one_item(GtkWidget *widget, - GdkEventMotion *event, - const guchar *full_path, - DirItem *item, - MaskedPixmap *image) -{ - guchar *uri, *tmp; - GdkDragContext *context; - GdkDragAction actions; - GtkTargetList *target_list; - GtkTargetEntry target_table[] = { - {"text/uri-list", 0, TARGET_URI_LIST}, - {"UTF8_STRING", 0, TARGET_UTF8}, - {"application/octet-stream", 0, TARGET_RAW}, - {"", 0, TARGET_RAW}, - }; - - g_return_if_fail(full_path != NULL); - g_return_if_fail(item != NULL); - - if (!image) - image = di_image(item); - - if (item->base_type == TYPE_FILE) - { - MIME_type *t = item->mime_type; - - target_table[3].target = g_strconcat(t->media_type, "/", - t->subtype, NULL); - target_list = gtk_target_list_new(target_table, - G_N_ELEMENTS(target_table)); - g_free(target_table[3].target); - } - else - target_list = gtk_target_list_new(target_table, 2); - - if (event->state & GDK_BUTTON1_MASK) - actions = GDK_ACTION_COPY | GDK_ACTION_ASK - | GDK_ACTION_MOVE | GDK_ACTION_LINK; - else - { - if (o_dnd_middle_menu.int_value) - actions = GDK_ACTION_ASK; - else - actions = GDK_ACTION_MOVE; - } - - context = gtk_drag_begin(widget, - target_list, - actions, - (event->state & GDK_BUTTON1_MASK) ? 1 : - (event->state & GDK_BUTTON2_MASK) ? 2 : 3, - (GdkEvent *) event); - - g_dataset_set_data_full(context, "full_path", - g_strdup(full_path), g_free); - tmp = (char *) encode_path_as_uri(full_path); - uri = g_strconcat(tmp, "\r\n", NULL); - /*printf("%s\n", tmp);*/ - g_free(tmp); - g_dataset_set_data_full(context, "uri_list", uri, g_free); - - g_return_if_fail(image != NULL); - - gtk_drag_set_icon_pixbuf(context, image->pixbuf, 0, 0); -} - -/* Convert text/uri-list data to UTF8_STRING. - * g_free() the result. - */ -static gchar *uri_list_to_utf8(const char *uri_list) -{ - GString *new; - GList *uris, *next_uri; - char *string; - - new = g_string_new(NULL); - - uris = uri_list_to_glist(uri_list); - - for (next_uri = uris; next_uri; next_uri = next_uri->next) - { - EscapedPath *uri = next_uri->data; - char *local; - - local = get_local_path(uri); - - if (new->len) - g_string_append_c(new, ' '); - - if (local) - { - g_string_append(new, local); - g_free(local); - } - else - g_warning("Not local!\n"); - - g_free(uri); - } - - if (uris) - g_list_free(uris); - - string = new->str; - g_string_free(new, FALSE); - - return string; -} - -/* Called when a remote app wants us to send it some data. - * TODO: Maybe we should handle errors better (ie, let the remote app know - * the drag has failed)? - */ -void drag_data_get(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint32 time, - gpointer data) -{ - char *to_send = "E"; /* Default to sending an error */ - long to_send_length = 1; - gboolean delete_once_sent = FALSE; - GdkAtom type; - guchar *path; - - type = selection_data->target; - - switch (info) - { - case TARGET_RAW: - path = g_dataset_get_data(context, "full_path"); - if (path && load_file(path, &to_send, &to_send_length)) - { - delete_once_sent = TRUE; - break; - } - g_warning("drag_data_get: Can't find path!\n"); - return; - case TARGET_UTF8: - { - char *uri_list; - uri_list = g_dataset_get_data(context, "uri_list"); - to_send = uri_list_to_utf8(uri_list); - to_send_length = strlen(to_send); - delete_once_sent = TRUE; - break; - } - case TARGET_URI_LIST: - to_send = g_dataset_get_data(context, "uri_list"); - to_send_length = strlen(to_send); - type = text_uri_list; /* (needed for xine) */ - delete_once_sent = FALSE; - break; - default: - delayed_error("drag_data_get: %s", - _("Internal error - bad info type")); - break; - } - - gtk_selection_data_set(selection_data, - type, - 8, - to_send, - to_send_length); - - if (delete_once_sent) - g_free(to_send); -} - -/* DRAGGING TO US */ - -/* Set up this widget as a drop-target. - * Does not attach any motion handlers. - */ -void make_drop_target(GtkWidget *widget, GtkDestDefaults defaults) -{ - GtkTargetEntry target_table[] = - { - {"text/uri-list", 0, TARGET_URI_LIST}, - {"text/x-moz-url", 0, TARGET_MOZ_URL}, - {"XdndDirectSave0", 0, TARGET_XDS}, - {"application/octet-stream", 0, TARGET_RAW}, - }; - - gtk_drag_dest_set(widget, - defaults, - target_table, - sizeof(target_table) / sizeof(*target_table), - GDK_ACTION_COPY | GDK_ACTION_ASK | GDK_ACTION_MOVE - | GDK_ACTION_LINK | GDK_ACTION_PRIVATE); - - g_signal_connect(widget, "drag_drop", G_CALLBACK(drag_drop), NULL); - g_signal_connect(widget, "drag_data_received", - G_CALLBACK(drag_data_received), NULL); -} - -/* Like drag_set_dest, but for a pinboard-type widget */ -void drag_set_pinboard_dest(GtkWidget *widget) -{ - GtkTargetEntry target_table[] = { - {"text/uri-list", 0, TARGET_URI_LIST}, - }; - - gtk_drag_dest_set(widget, - GTK_DEST_DEFAULT_DROP, - target_table, - sizeof(target_table) / sizeof(*target_table), - GDK_ACTION_LINK); - g_signal_connect(widget, "drag_data_received", - G_CALLBACK(desktop_drag_data_received), NULL); -} - -/* item is the item the file is held over, NULL for directory background. - * 'item' may be NULL on exit if the drop should be treated as onto the - * background. Disallow drags to a selected icon before calling this. - * - * Returns NULL to reject the drop, or drop_dest_prog/drop_dest_dir to - * accept. Build the path based on item. - */ -const guchar *dnd_motion_item(GdkDragContext *context, DirItem **item_p) -{ - DirItem *item = *item_p; - - if (item) - { - /* If we didn't drop onto a directory, application or - * executable file then act as though the drop is to the - * window background. - */ - if (item->base_type != TYPE_DIRECTORY && !EXECUTABLE_FILE(item)) - { - item = NULL; - *item_p = NULL; - } - } - - if (!item) - { - /* Drop onto the window background */ - - return drop_dest_dir; - } - - /* Drop onto a program/directory of some sort */ - - if (item->base_type == TYPE_DIRECTORY && - !(item->flags & ITEM_FLAG_APPDIR)) - { - /* A normal directory */ - if (provides(context, text_uri_list) || - provides(context, text_x_moz_url) || - provides(context, XdndDirectSave0)) - return drop_dest_dir; - } - else - { - if (provides(context, text_uri_list) || - provides(context, text_x_moz_url) || - provides(context, xa_application_octet_stream)) - return drop_dest_prog; - } - - return NULL; -} - -/* User has tried to drop some data on us. Decide what format we would - * like the data in. - */ -static gboolean drag_drop(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - gpointer data) -{ - const char *error = NULL; - char *leafname = NULL; - GdkAtom target = GDK_NONE; - char *dest_path; - char *dest_type = NULL; - - dest_path = g_dataset_get_data(context, "drop_dest_path"); - dest_type = g_dataset_get_data(context, "drop_dest_type"); - - if (dest_type == drop_dest_pass_through) - return FALSE; /* Let the parent widget handle it */ - - if (dest_type == drop_dest_bookmark) - { - if (provides(context, text_uri_list)) - gtk_drag_get_data(widget, context, text_uri_list, time); - else - { - gtk_drag_finish(context, FALSE, FALSE, time); - delayed_error(_("Drag a directory here to " - "bookmark it.")); - } - return TRUE; - } - - g_return_val_if_fail(dest_path != NULL, TRUE); - - if (dest_type == drop_dest_dir && provides(context, XdndDirectSave0)) - { - leafname = get_xds_prop(context); - if (leafname) - { - if (strchr(leafname, '/')) - { - error = _("XDS protocol error: " - "leafname may not contain '/'\n"); - null_g_free(&leafname); - } - else - { - char *dest_uri; - - /* Not escaped. */ - dest_uri = g_strconcat("file://", - our_host_name_for_dnd(), - dest_path, NULL); - - set_xds_prop(context, - make_path(dest_uri, leafname)); - - g_free(dest_uri); - - target = XdndDirectSave0; - g_dataset_set_data_full(context, "leafname", - leafname, g_free); - } - } - else - error = _( - "XdndDirectSave0 target provided, but the atom " - "XdndDirectSave0 (type text/plain) did not " - "contain a leafname\n"); - } - else if (provides(context, text_uri_list)) - target = text_uri_list; - else if (provides(context, text_x_moz_url)) - target = text_x_moz_url; - else if (provides(context, xa_application_octet_stream)) - target = xa_application_octet_stream; - else - { - if (dest_type == drop_dest_dir) - error = _("Sorry - I require a target type of " - "text/uri-list or XdndDirectSave0."); - else - error = _("Sorry - I require a target type of " - "text/uri-list or application/octet-stream."); - } - - if (error) - { - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - - delayed_error("%s", error); - } - else - gtk_drag_get_data(widget, context, target, time); - - return TRUE; -} - -/* Called when a text/uri-list arrives */ -static void desktop_drag_data_received(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - FilerWindow *filer_window) -{ - GList *uris, *next; - char *error_example = NULL; - gint dx, dy; - - if (!selection_data->data) - { - /* Timeout? */ - return; - } - - if (pinboard_drag_in_progress) - { - pinboard_move_icons(); - return; - } - - gdk_window_get_position(widget->window, &dx, &dy); - x += dx; - y += dy; - - uris = uri_list_to_glist(selection_data->data); - - for (next = uris; next; next = next->next) - { - guchar *path; - - path = get_local_path((EscapedPath *) next->data); - if (path) - { - pinboard_pin(path, NULL, x, y, NULL); - x += 64; - g_free(path); - } - else if (!error_example) - error_example = g_strdup(next->data); - - g_free(next->data); - } - - if (uris) - g_list_free(uris); - - if (error_example) - { - delayed_error(_("Failed to add some items to the pinboard, " - "because they are on a remote machine. For example:\n" - "\n%s"), error_example); - g_free(error_example); - } -} - -/* Convert Mozilla's text/x-moz-uri into a text/uri-list */ -static void got_moz_uri(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint32 time) -{ - gchar *utf8, *uri_list, *eol; - - utf8 = g_utf16_to_utf8((gunichar2 *) selection_data->data, - (glong) selection_data->length, - NULL, NULL, NULL); - - eol = utf8 ? strchr(utf8, '\n') : NULL; - if (!eol) - { - delayed_error("Invalid UTF16 from text/x-moz-url target"); - g_free(utf8); - gtk_drag_finish(context, FALSE, FALSE, time); - return; - } - - *eol = '\0'; - uri_list = g_strconcat(utf8, "\r\n", NULL); - g_free(utf8); - - got_uri_list(widget, context, uri_list, time); - - g_free(uri_list); -} - -/* Called when some data arrives from the remote app (which we asked for - * in drag_drop). - */ -static void drag_data_received(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - gpointer user_data) -{ - if (!selection_data->data) - { - /* Timeout? */ - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - return; - } - - switch (info) - { - case TARGET_XDS: - got_data_xds_reply(widget, context, - selection_data, time); - break; - case TARGET_RAW: - got_data_raw(widget, context, selection_data, time); - break; - case TARGET_URI_LIST: - got_uri_list(widget, context, selection_data->data, - time); - break; - case TARGET_MOZ_URL: - got_moz_uri(widget, context, selection_data, time); - break; - default: - gtk_drag_finish(context, FALSE, FALSE, time); - delayed_error("drag_data_received: %s", - _("Unknown target")); - break; - } -} - -static void got_data_xds_reply(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint32 time) -{ - gboolean mark_unsafe = TRUE; - char response = *selection_data->data; - const char *error = NULL; - char *dest_path; - - dest_path = g_dataset_get_data(context, "drop_dest_path"); - - if (selection_data->length != 1) - response = '?'; - - if (response == 'F') - { - /* Sender couldn't save there - ask for another - * type if possible. - */ - if (provides(context, xa_application_octet_stream)) - { - mark_unsafe = FALSE; /* Wait and see */ - - gtk_drag_get_data(widget, context, - xa_application_octet_stream, time); - } - else - error = _("Remote app can't or won't send me " - "the data - sorry"); - } - else if (response == 'S') - { - /* Success - data is saved */ - mark_unsafe = FALSE; /* It really is safe */ - gtk_drag_finish(context, TRUE, FALSE, time); - - refresh_dirs(dest_path); - } - else if (response != 'E') - { - error = _("XDS protocol error: " - "return code should be 'S', 'F' or 'E'\n"); - } - /* else: error has been reported by the sender */ - - if (mark_unsafe) - { - set_xds_prop(context, ""); - /* Unsave also implies that the drag failed */ - gtk_drag_finish(context, FALSE, FALSE, time); - } - - if (error) - delayed_error("%s", error); -} - -static void got_data_raw(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint32 time) -{ - const char *leafname; - int fd; - const char *error = NULL; - const char *dest_path; - - g_return_if_fail(selection_data->data != NULL); - - dest_path = g_dataset_get_data(context, "drop_dest_path"); - - if (context->action == GDK_ACTION_ASK) - { - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - delayed_error(_("Sorry, can't display a menu of actions " - "for a remote file / raw data.")); - return; - } - - if (g_dataset_get_data(context, "drop_dest_type") == drop_dest_prog) - { - /* The data needs to be sent to an application */ - run_with_data(dest_path, - selection_data->data, selection_data->length); - gtk_drag_finish(context, TRUE, FALSE, time); /* Success! */ - return; - } - - leafname = g_dataset_get_data(context, "leafname"); - if (!leafname) - leafname = _("UntitledData"); - - fd = open(make_path(dest_path, leafname), - O_WRONLY | O_CREAT | O_EXCL | O_NOCTTY, - S_IRUSR | S_IRGRP | S_IROTH | - S_IWUSR | S_IWGRP | S_IWOTH); - - if (fd == -1) - error = g_strerror(errno); - else - { - if (write(fd, - selection_data->data, - selection_data->length) == -1) - error = g_strerror(errno); - - if (close(fd) == -1 && !error) - error = g_strerror(errno); - - refresh_dirs(dest_path); - } - - if (error) - { - if (provides(context, XdndDirectSave0)) - set_xds_prop(context, ""); - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - delayed_error(_("Error saving file: %s"), error); - } - else - gtk_drag_finish(context, TRUE, FALSE, time); /* Success! */ -} - -static gboolean uri_is_local(const EscapedPath *uri) -{ - char *path; - path = get_local_path(uri); - if (!path) - return FALSE; - g_free(path); - return TRUE; -} - -/* Run the shell command 'command', replacing $1 with 'arg' */ -static void run_with_argument(const char *dir, - const char *command, - const char *arg) -{ - GPtrArray *argv; - - argv = g_ptr_array_new(); - - g_ptr_array_add(argv, "sh"); - g_ptr_array_add(argv, "-c"); - g_ptr_array_add(argv, (char *) command); - g_ptr_array_add(argv, "sh"); - g_ptr_array_add(argv, (char *) arg); - g_ptr_array_add(argv, NULL); - - rox_spawn(dir, (const gchar **) argv->pdata); - - g_ptr_array_free(argv, TRUE); -} - -/* We've got a list of URIs from somewhere (probably another filer window). - * If the files are on the local machine then try to copy them ourselves, - * otherwise, if there was only one file and application/octet-stream was - * provided, get the data via the X server. - * For http:, https: or ftp: schemes, use the download handler. - */ -static void got_uri_list(GtkWidget *widget, - GdkDragContext *context, - const char *selection_data, - guint32 time) -{ - GList *uri_list; - const char *error = NULL; - GList *next_uri; - gboolean send_reply = TRUE; - char *dest_path; - char *type; - - dest_path = g_dataset_get_data(context, "drop_dest_path"); - type = g_dataset_get_data(context, "drop_dest_type"); - - uri_list = uri_list_to_glist(selection_data); - - if (type == drop_dest_bookmark) - { - GList *next; - for (next = uri_list; next; next = next->next) - bookmarks_add_uri((EscapedPath *) next->data); - destroy_glist(&uri_list); - gtk_drag_finish(context, TRUE, FALSE, time); /* Success! */ - return; - } - - g_return_if_fail(dest_path != NULL); - - if (!uri_list) - error = _("No URIs in the text/uri-list (nothing to do!)"); - else if (context->action != GDK_ACTION_ASK && type == drop_dest_prog) - run_with_files(dest_path, uri_list); - else if ((!uri_list->next) && !uri_is_local(uri_list->data)) - { - /* There is one URI in the list, and it's not on the local - * machine. Get it via the X server if possible. - */ - - if (provides(context, xa_application_octet_stream)) - { - char *leaf; - leaf = strrchr(uri_list->data, '/'); - if (leaf) - leaf++; - else - leaf = uri_list->data; - g_dataset_set_data_full(context, "leafname", - unescape_uri((EscapedPath *) leaf), g_free); - gtk_drag_get_data(widget, context, - xa_application_octet_stream, time); - send_reply = FALSE; - } - else if ((strncasecmp(uri_list->data, "http:", 5) == 0) || - (strncasecmp(uri_list->data, "https:", 6) == 0) || - (strncasecmp(uri_list->data, "ftp:", 4) == 0)) - { - run_with_argument(dest_path, - o_dnd_uri_handler.value, - (char *) uri_list->data); - } - else - error = _("Can't get data from remote machine " - "(application/octet-stream not provided)"); - } - else - { - GList *local_paths = NULL; - - /* Either one local URI, or a list. If everything in the list - * isn't local then we are stuck. - */ - - for (next_uri = uri_list; next_uri; next_uri = next_uri->next) - { - char *path; - - path = get_local_path((EscapedPath *) next_uri->data); - /*printf("%s -> %s\n", (char *) next_uri->data, - path? path: "NULL");*/ - - if (path) - local_paths = g_list_append(local_paths, - path); - else - error = _("Some of these files are on a " - "different machine - they will be " - "ignored - sorry"); - } - - if (!local_paths) - { - error = _("None of these files are on the local " - "machine - I can't operate on multiple " - "remote files - sorry."); - } - else if (context->action == GDK_ACTION_ASK) - prompt_action(local_paths, dest_path); - else if (context->action == GDK_ACTION_MOVE) - action_move(local_paths, dest_path, NULL, -1); - else if (context->action == GDK_ACTION_COPY) - action_copy(local_paths, dest_path, NULL, -1); - else if (context->action == GDK_ACTION_LINK) - action_link(local_paths, dest_path, NULL, TRUE); - else - error = _("Unknown action requested"); - - destroy_glist(&local_paths); - } - - if (error) - { - gtk_drag_finish(context, FALSE, FALSE, time); /* Failure */ - delayed_error(_("Error getting file list: %s"), error); - } - else if (send_reply) - gtk_drag_finish(context, TRUE, FALSE, time); /* Success! */ - - destroy_glist(&uri_list); -} - -/* Called when an item from the ACTION_ASK menu is chosen */ -static void menuitem_response(gpointer data, guint action, GtkWidget *widget) -{ - if (action == MENU_MOVE) - action_move(prompt_local_paths, prompt_dest_path, NULL, -1); - else if (action == MENU_COPY) - action_copy(prompt_local_paths, prompt_dest_path, NULL, -1); - else if (action == MENU_LINK_REL) - action_link(prompt_local_paths, prompt_dest_path, NULL, TRUE); - else if (action == MENU_LINK_ABS) - action_link(prompt_local_paths, prompt_dest_path, NULL, FALSE); -} - -/* When some local files are dropped somewhere with ACTION_ASK, this - * function is called to display the menu. - */ -static void prompt_action(GList *paths, gchar *dest) -{ - GList *next; - GdkEvent *event; - - if (prompt_local_paths) - { - destroy_glist(&prompt_local_paths); - null_g_free(&prompt_dest_path); - } - - /* Make a copy of the arguments */ - for (next = paths; next; next = next->next) - prompt_local_paths = g_list_append(prompt_local_paths, - g_strdup((gchar *) next->data)); - prompt_dest_path = g_strdup(dest); - - if (!dnd_menu) - { - GtkItemFactory *item_factory; - - item_factory = menu_create(menu_def, - sizeof(menu_def) / sizeof(*menu_def), - "", NULL); - dnd_menu = gtk_item_factory_get_widget(item_factory, ""); - } - - /* Shade 'Set Icon' if there are multiple files */ - menu_set_items_shaded(dnd_menu, g_list_length(paths) != 1, 4, 1); - - event = gtk_get_current_event(); - show_popup_menu(dnd_menu, event, 1); - if (event) - gdk_event_free(event); -} - - -/* SPRING-LOADING */ - -/* This is the code that makes directories pop open if you hold a - * file over them... - * - * First, call dnd_spring_load(context) to arm the system. - * After a timeout (1/2 a second) the dest_path directory will be - * opened in a new window, unless dnd_spring_abort is called first. - */ - -static gint spring_timeout = -1; -static GdkDragContext *spring_context = NULL; -static FilerWindow *spring_window = NULL; -static FilerWindow *spring_src_window = NULL; - -void dnd_spring_load(GdkDragContext *context, FilerWindow *src_win) -{ - g_return_if_fail(context != NULL); - - if (!o_dnd_spring_open.int_value) - return; - - if (spring_context) - dnd_spring_abort(); - - spring_context = context; - g_object_ref(spring_context); - spring_src_window = src_win; - spring_timeout = gtk_timeout_add( - o_dnd_spring_delay.int_value, spring_now, NULL); -} - -void dnd_spring_abort(void) -{ - if (!spring_context) - return; - - g_object_unref(spring_context); - spring_context = NULL; - gtk_timeout_remove(spring_timeout); -} - -/* If all mod keys are released, no buttons are pressed, and the - * mouse is outside the spring window, then close it. - */ -static gboolean spring_check_idle(gpointer data) -{ - int p_x, p_y; - - if (!spring_window) - return FALSE; - - if (!get_pointer_xy(&p_x, &p_y)) - { - /* - GdkWindow *win = spring_window->window->window; - int x, y; - int w, h; - - gdk_window_get_position(win, &x, &y); - gdk_window_get_size(win, &w, &h); - - if (p_x < x || p_x > x + w || p_y < y || p_y > y + h) - { - */ - - gtk_widget_destroy(spring_window->window); - return FALSE; /* Got it! */ - } - - return TRUE; /* Try again later */ -} - -static gboolean spring_now(gpointer data) -{ - const char *type; - const guchar *dest_path; - gint x, y; - - g_return_val_if_fail(spring_context != NULL, FALSE); - g_return_val_if_fail(!spring_in_progress, FALSE); - - type = g_dataset_get_data(spring_context, "drop_dest_type"); - if (type == drop_dest_bookmark) - { - bookmarks_edit(); - goto out; - } - - dest_path = g_dataset_get_data(spring_context, "drop_dest_path"); - g_return_val_if_fail(dest_path != NULL, FALSE); - - /* - * Note: Due to a bug in gtk, if a window disappears during - * a drag and the pointer moves over where the window was, - * the sender crashes! Therefore, do not close any windows - * while dragging! (fixed in later versions) - */ - /* - if (spring_window) - gtk_widget_destroy(spring_window->window); - */ - - get_pointer_xy(&x, &y); - - spring_in_progress++; - if (spring_window) - { - view_cursor_to_iter(spring_window->view, NULL); - filer_change_to(spring_window, dest_path, NULL); - /* DON'T move the window. Gtk+ sometimes doesn't - * notice :-( - */ - } - else - { - spring_window = filer_opendir(dest_path, - spring_src_window, NULL); - if (spring_window) - { - gtk_timeout_add(500, spring_check_idle, NULL); - g_signal_connect(spring_window->window, "destroy", - G_CALLBACK(spring_win_destroyed), NULL); - centre_window(spring_window->window->window, x, y); - } - } - spring_in_progress--; - -out: - dnd_spring_abort(); - - return FALSE; -} - -static void spring_win_destroyed(GtkWidget *widget, gpointer data) -{ - spring_window = NULL; -} - -/* HANDLING MOTION EVENTS */ - -/* If not-NULL, then this widget has a grab */ -static GtkWidget *motion_widget = NULL; - -/* If TRUE, we must gdk_pointer_ungrab() too when finishing */ -static gboolean motion_pointer_grab = FALSE; - -/* Call this on a button press event. It stores the mouse position - * as the start of the new drag and returns TRUE if all is well. - * Further motions events are disabled at this point - you must - * then call dnd_motion_start() to set the type of motion expected. - * Grabs the widget on the first press. - * - * If the system is not ready to handle a motion event (because a - * button is already held down?) it does nothing and returns FALSE. - * - * If the event is not a single click then it simply returns TRUE. - */ -gboolean dnd_motion_press(GtkWidget *widget, GdkEventButton *event) -{ - if (event->type != GDK_BUTTON_PRESS) - return TRUE; /* Not a click event! */ - - motion_buttons_pressed++; - if (motion_buttons_pressed == 1) - { - /* g_print("[ grab! ]\n"); */ - gtk_grab_add(widget); - motion_widget = widget; - } - - if (motion_state != MOTION_NONE) - return FALSE; /* Ignore clicks - we're busy! */ - - motion_state = MOTION_DISABLED; - drag_start_x = event->x_root; - drag_start_y = event->y_root; - - return TRUE; -} - -/* After the button press event, decide what kind of motion is expected. - * If you don't call this then the motion system is disabled - call - * dnd_motion_release() to reset it. - * - * Note: If you open a popup menu or start DND call dnd_motion_ungrab() - * instead. - */ -void dnd_motion_start(MotionType motion) -{ - g_return_if_fail(motion_state == MOTION_DISABLED); - - motion_state = motion; -} - -/* Call this on a button release event. If some buttons are still pressed, - * returns TRUE and does nothing. - * - * Otherwise, it resets the motion system to be ready again and returns TRUE. - * - * If the motion system wasn't being used (MOTION_NONE) then it does nothing - * and returns FALSE - process the release event yourself as it isn't part - * of a motion. This also happens if a motion was primed but never happened. - */ -gboolean dnd_motion_release(GdkEventButton *event) -{ - MotionType motion = motion_state; - gint drag_threshold; - int dx, dy; - - if (motion_buttons_pressed == 0) - return TRUE; /* We were disabled */ - - if (motion_buttons_pressed == 1) - dnd_motion_ungrab(); - else - { - motion_buttons_pressed--; - return TRUE; - } - - if (motion == MOTION_REPOSITION || motion == MOTION_DISABLED) - return TRUE; /* Already done something - eat the event */ - - /* Eat release events that happen too far from the click - * source. Otherwise, allow the caller to treat this as a click - * that never became a motion. - */ - dx = event->x_root - drag_start_x; - dy = event->y_root - drag_start_y; - - g_object_get(gtk_settings_get_default(), - "gtk-dnd-drag-threshold", &drag_threshold, - NULL); - - return ABS(dx) > drag_threshold || ABS(dy) > drag_threshold; -} - -/* Use this to disable the motion system. The system will be reset once - * all mouse buttons are released. - */ -void dnd_motion_disable(void) -{ - g_return_if_fail(motion_state != MOTION_NONE && - motion_state != MOTION_DISABLED); - - motion_state = MOTION_DISABLED; -} - -/* Use this if something else is going to grab the pointer so that - * we won't get any more motion or release events. - */ -void dnd_motion_ungrab(void) -{ - if (motion_buttons_pressed > 0) - { - if (motion_pointer_grab) - { - gdk_pointer_ungrab(GDK_CURRENT_TIME); - motion_pointer_grab = FALSE; - /* g_print("[ ungrab_pointer ]\n"); */ - } - gtk_grab_remove(motion_widget); - motion_widget = NULL; - motion_buttons_pressed = 0; - /* g_print("[ ungrab ]\n"); */ - } - - motion_state = MOTION_NONE; -} - -/* Call this on motion events. If the mouse position is far enough - * from the click position, returns TRUE and does dnd_motion_ungrab(). - * You should then start regular drag-and-drop. - * - * Otherwise, returns FALSE. - */ -gboolean dnd_motion_moved(GdkEventMotion *event) -{ - gint drag_threshold; - int dx, dy; - - g_object_get(gtk_settings_get_default(), - "gtk-dnd-drag-threshold", &drag_threshold, - NULL); - - dx = event->x_root - drag_start_x; - dy = event->y_root - drag_start_y; - - if (ABS(dx) <= drag_threshold && ABS(dy) <= drag_threshold) - return FALSE; /* Not far enough */ - - dnd_motion_ungrab(); - - return TRUE; -} - -/* Normally, the X server will automatically grab the pointer on a - * button press and ungrab on release. However, if the grab widget - * is reparented then call this to re-aquire the grab. - */ -void dnd_motion_grab_pointer(void) -{ - g_return_if_fail(motion_widget != NULL); - - gdk_pointer_grab(motion_widget->window, FALSE, - GDK_POINTER_MOTION_MASK | - GDK_BUTTON_RELEASE_MASK, - FALSE, NULL, GDK_CURRENT_TIME); - - motion_pointer_grab = TRUE; -} diff --git a/ROX-Filer/src/dnd.h b/ROX-Filer/src/dnd.h deleted file mode 100644 index 8bd1dfc5..00000000 --- a/ROX-Filer/src/dnd.h +++ /dev/null @@ -1,74 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _DND_H -#define _DND_H - -#include - -enum -{ - TARGET_RAW, - TARGET_URI_LIST, - TARGET_UTF8, - TARGET_XDS, - TARGET_STRING, - TARGET_MOZ_URL, -}; - -typedef enum { - MOTION_NONE, /* Ignoring motion events - click to start! */ - MOTION_REPOSITION, /* Motion events move current_grab_icon */ - MOTION_READY_FOR_DND, /* Moving much will start dnd */ - MOTION_DISABLED, /* Release all buttons to go to MOTION_NONE */ -} MotionType; -extern MotionType motion_state; -extern gint drag_start_x, drag_start_y; -extern gint motion_buttons_pressed; - -extern gboolean o_no_hostnames; -extern int spring_in_progress; -extern Option o_dnd_spring_open, o_dnd_drag_to_icons; -extern Option o_dnd_left_menu; -extern const char *drop_dest_prog; -extern const char *drop_dest_dir; -extern const char *drop_dest_pass_through; -extern const char *drop_dest_bookmark; -extern GdkAtom XdndDirectSave0; -extern GdkAtom text_uri_list; -extern GdkAtom _rox_run_action; -extern GdkAtom xa_application_octet_stream; -extern GdkAtom xa_string; - -void drag_selection(GtkWidget *widget, GdkEventMotion *event, guchar *uri_list); -void drag_one_item(GtkWidget *widget, - GdkEventMotion *event, - const guchar *full_path, - DirItem *item, - MaskedPixmap *image); -void drag_data_get(GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint32 time, - gpointer data); -void make_drop_target(GtkWidget *widget, GtkDestDefaults defaults); -void drag_set_pinboard_dest(GtkWidget *widget); -void dnd_init(void); -gboolean provides(GdkDragContext *context, GdkAtom target); - -void dnd_spring_load(GdkDragContext *context, FilerWindow *src_win); -void dnd_spring_abort(void); -const guchar *dnd_motion_item(GdkDragContext *context, DirItem **item_p); - -gboolean dnd_motion_press(GtkWidget *widget, GdkEventButton *event); -void dnd_motion_start(MotionType motion); -gboolean dnd_motion_release(GdkEventButton *event); -void dnd_motion_disable(void); -void dnd_motion_ungrab(void); -gboolean dnd_motion_moved(GdkEventMotion *event); -void dnd_motion_grab_pointer(void); - -#endif /* _DND_H */ diff --git a/ROX-Filer/src/dropbox.c b/ROX-Filer/src/dropbox.c deleted file mode 100644 index 5f986bee..00000000 --- a/ROX-Filer/src/dropbox.c +++ /dev/null @@ -1,293 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* drop_box.c - the "drop something here" widget */ - -#include "config.h" - -#include -#include -#include - -#include "global.h" - -#include "dropbox.h" -#include "main.h" -#include "type.h" -#include "pixmaps.h" -#include "support.h" -#include "gui_support.h" -#include "run.h" - -struct _DropBoxClass { - GtkFrameClass parent; - - void (*path_dropped)(GtkWidget *drop_box, const guchar *path); - void (*clear)(GtkWidget *drop_box); -}; - -struct _DropBox { - GtkFrame frame; - - GtkWidget *buttons; - GtkWidget *label; - gchar *path; -}; - -/* Static prototypes */ -static void drop_box_class_init(gpointer gclass, gpointer data); -static void drop_box_init(GTypeInstance *object, gpointer gclass); -static void open_dir_clicked(GtkWidget *button, DropBox *drop_box); -static void clear_clicked(GtkWidget *button, DropBox *drop_box); -static void drop_box_drag_data_received(GtkWidget *drop_box, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint drag_info, - guint32 time); - - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -GtkWidget *drop_box_new(const char *message) -{ - GtkWidget *button, *label, *vbox, *icon; - MaskedPixmap *mp; - DropBox *drop_box; - GtkTargetEntry targets[] = { - {"text/uri-list", 0, 0}, - }; - - drop_box = g_object_new(drop_box_get_type(), NULL); - - gtk_frame_set_shadow_type(GTK_FRAME(drop_box), GTK_SHADOW_IN); - gtk_container_set_border_width(GTK_CONTAINER(drop_box), 4); - - gtk_drag_dest_set(GTK_WIDGET(drop_box), GTK_DEST_DEFAULT_ALL, - targets, sizeof(targets) / sizeof(*targets), - GDK_ACTION_COPY); - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(drop_box), vbox); - - label = gtk_label_new(message); - gtk_misc_set_padding(GTK_MISC(label), 10, 10); - gtk_box_pack_start(GTK_BOX(vbox), label, TRUE, TRUE, 0); - - drop_box->label = gtk_label_new(NULL); - gtk_box_pack_start(GTK_BOX(vbox), drop_box->label, FALSE, TRUE, 0); - gtk_misc_set_padding(GTK_MISC(drop_box->label), 2, 2); - - drop_box->buttons = gtk_hbutton_box_new(); - gtk_box_pack_start(GTK_BOX(vbox), drop_box->buttons, FALSE, TRUE, 0); - - button = gtk_button_new_from_stock(GTK_STOCK_CLEAR); - gtk_box_pack_start(GTK_BOX(drop_box->buttons), button, FALSE, TRUE, 0); - g_signal_connect(button, "clicked", - G_CALLBACK(clear_clicked), drop_box); - - mp = type_to_icon(inode_directory); - pixmap_make_small(mp); - icon = gtk_image_new_from_pixbuf(mp->sm_pixbuf); - g_object_unref(mp); - button = button_new_image_text(icon, _("Show")); - gtk_box_pack_start(GTK_BOX(drop_box->buttons), button, FALSE, TRUE, 0); - g_signal_connect(button, "clicked", - G_CALLBACK(open_dir_clicked), drop_box); - - gtk_tooltips_set_tip(tooltips, button, - _("Show the current choice in a filer window"), NULL); - - drop_box_set_path(drop_box, NULL); - - gtk_widget_show_all(vbox); - - return GTK_WIDGET(drop_box); -} - -GType drop_box_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (DropBoxClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - drop_box_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(DropBox), - 0, /* n_preallocs */ - drop_box_init - }; - - type = g_type_register_static(gtk_frame_get_type(), - "DropBox", &info, 0); - } - - return type; -} - -void drop_box_set_path(DropBox *drop_box, const guchar *path) -{ - char *copy; - - null_g_free(&drop_box->path); - drop_box->path = g_strdup(path); - - if (path) - { - int l; - l = strlen(path); - if (l > 40) - copy = g_strdup_printf("...%s", path + l - 38); - else - copy = g_strdup(path); - gtk_widget_set_sensitive(drop_box->buttons, TRUE); - } - else - { - copy = g_strdup(_("")); - gtk_widget_set_sensitive(drop_box->buttons, FALSE); - } - - gtk_label_set_text(GTK_LABEL(drop_box->label), copy); - g_free(copy); -} - -const gchar *drop_box_get_path(DropBox *drop_box) -{ - g_return_val_if_fail(drop_box != NULL, NULL); - - return drop_box->path; -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void drop_box_class_init(gpointer gclass, gpointer data) -{ - GtkWidgetClass *widget = (GtkWidgetClass *) gclass; - DropBoxClass *drop_box = (DropBoxClass *) gclass; - - drop_box->path_dropped = NULL; - drop_box->clear = NULL; - - widget->drag_data_received = drop_box_drag_data_received; - - g_signal_new("path_dropped", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(DropBoxClass, path_dropped), - NULL, NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, G_TYPE_STRING); - - g_signal_new("clear", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(DropBoxClass, clear), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); -} - -static void drop_box_init(GTypeInstance *object, gpointer gclass) -{ - DropBox *drop_box = (DropBox *) object; - - drop_box->path = NULL; - drop_box->label = NULL; - drop_box->buttons = NULL; -} - -static void clear_clicked(GtkWidget *button, DropBox *drop_box) -{ - g_signal_emit_by_name(drop_box, "clear"); -} - -static void open_dir_clicked(GtkWidget *button, DropBox *drop_box) -{ - if (drop_box->path) - open_to_show(drop_box->path); - else - delayed_error(_("I can't show you the currently set item, " - "because nothing is currently set. Drag " - "something onto me!")); -} - -static void drop_box_drag_data_received(GtkWidget *drop_box, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint drag_info, - guint32 time) -{ - GList *uris = NULL; - guchar *path = NULL; - gboolean success = FALSE; - - if (!selection_data->data) - goto err; /* Timeout? */ - - uris = uri_list_to_glist(selection_data->data); - - if (g_list_length(uris) != 1) - { - delayed_error(_("Sorry, you need to drop exactly one file " - "onto the drop area.")); - goto err; - } - - path = get_local_path((EscapedPath *) uris->data); - - if (!path) - { - delayed_error( - _("Sorry, I can't use '%s' because it's not a local " - "file."), (guchar *) uris->data); - goto err; - } - - if (!file_exists(path)) - { - delayed_error(_("Can't access '%s':\n%s"), path, - g_strerror(errno)); - goto err; - } - - g_signal_emit_by_name(drop_box, "path_dropped", path); - - success = TRUE; -err: - if (path) - g_free(path); - - if (uris) - g_list_free(uris); - gtk_drag_finish(context, success, FALSE, time); /* Failure */ -} diff --git a/ROX-Filer/src/dropbox.h b/ROX-Filer/src/dropbox.h deleted file mode 100644 index 8f06901b..00000000 --- a/ROX-Filer/src/dropbox.h +++ /dev/null @@ -1,21 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef __DROP_BOX_H__ -#define __DROP_BOX_H__ - -#include - -typedef struct _DropBoxClass DropBoxClass; -typedef struct _DropBox DropBox; - -#define DROP_BOX(obj) (GTK_CHECK_CAST((obj), drop_box_get_type(), DropBox)) - -GtkWidget *drop_box_new(const char *message); -GType drop_box_get_type(void); -void drop_box_set_path(DropBox *drop_box, const guchar *path); -const gchar *drop_box_get_path(DropBox *drop_box); - -#endif /* __DROP_BOX_H__ */ diff --git a/ROX-Filer/src/filer.c b/ROX-Filer/src/filer.c deleted file mode 100644 index b5e2e52a..00000000 --- a/ROX-Filer/src/filer.c +++ /dev/null @@ -1,3649 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* filer.c - code for handling filer windows */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "global.h" - -#include "filer.h" -#include "display.h" -#include "main.h" -#include "fscache.h" -#include "support.h" -#include "gui_support.h" -#include "choices.h" -#include "pixmaps.h" -#include "menu.h" -#include "dnd.h" -#include "dir.h" -#include "diritem.h" -#include "run.h" -#include "type.h" -#include "options.h" -#include "minibuffer.h" -#include "icon.h" -#include "toolbar.h" -#include "bind.h" -#include "appinfo.h" -#include "mount.h" -#include "xml.h" -#include "view_iface.h" -#include "view_collection.h" -#include "view_details.h" -#include "action.h" -#include "bookmarks.h" -#include "xtypes.h" - -static XMLwrapper *groups = NULL; - -/* Item we are about to display a tooltip for */ -static DirItem *tip_item = NULL; - -/* The window which the motion event for the tooltip came from. Use this - * to get the correct widget for finding the item under the pointer. - */ -static GdkWindow *motion_window = NULL; - -/* This is rather badly named. It's actually the filer window which received - * the last key press or Menu click event. - */ -FilerWindow *window_with_focus = NULL; - -GList *all_filer_windows = NULL; - -static GHashTable *window_with_id = NULL; - -static FilerWindow *window_with_primary = NULL; - -static GHashTable *settings_table=NULL; - -typedef struct { - gchar *path; - - guint flags; /* Which parts are valid, see below */ - - gint x, y; - gint width, height; - gboolean show_hidden; - ViewType view_type; - SortType sort_type; - GtkSortType sort_order; - gboolean show_thumbs; - - DetailsType details_type; - DisplayStyle display_style; - - FilterType filter_type; - char *filter; - gboolean filter_directories; -} Settings; - -enum settings_flags{ - SET_POSITION=1, /* x, y */ - SET_SIZE=2, /* width, height */ - SET_HIDDEN=4, /* show_hidden */ - SET_STYLE=8, /* display_style */ - SET_SORT=16, /* sort_type, sort_order */ - SET_DETAILS=32, /* view_type, details_type */ - SET_THUMBS=64, /* show_thumbs */ - SET_FILTER=128, /* filter_type, filter */ -}; - -static GHashTable *unmount_prompt_actions = NULL; - -/* Static prototypes */ -static void attach(FilerWindow *filer_window); -static void detach(FilerWindow *filer_window); -static void filer_window_destroyed(GtkWidget *widget, - FilerWindow *filer_window); -static void update_display(Directory *dir, - DirAction action, - GPtrArray *items, - FilerWindow *filer_window); -static void set_scanning_display(FilerWindow *filer_window, gboolean scanning); -static gboolean may_rescan(FilerWindow *filer_window, gboolean warning); -static gboolean minibuffer_show_cb(FilerWindow *filer_window); -static FilerWindow *find_filer_window(const char *sym_path, FilerWindow *diff); -static void filer_add_widgets(FilerWindow *filer_window, const gchar *wm_class); -static void filer_add_signals(FilerWindow *filer_window); - -static void set_selection_state(FilerWindow *filer_window, gboolean normal); -static void filer_next_thumb(GObject *window, const gchar *path); -static void start_thumb_scanning(FilerWindow *filer_window); -static void filer_options_changed(void); -static void drag_end(GtkWidget *widget, GdkDragContext *context, - FilerWindow *filer_window); -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - FilerWindow *filer_window); -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - FilerWindow *filer_window); - -static void load_learnt_mounts(void); -static void save_learnt_mounts(void); -static void load_settings(void); -static void save_settings(void); -static void check_settings(FilerWindow *filer_window); -static char *tip_from_desktop_file(const char *full_path); - -static GdkCursor *busy_cursor = NULL; -static GdkCursor *crosshair = NULL; - -/* Indicates whether the filer's display is different to the machine it - * is actually running on. - */ -static gboolean not_local = FALSE; - -static Option o_short_flag_names; -static Option o_filer_view_type; -Option o_filer_auto_resize, o_unique_filer_windows; -Option o_filer_size_limit; - -#define ROX_RESPONSE_EJECT 99 /**< User clicked on Eject button */ - -void filer_init(void) -{ - const gchar *ohost; - const gchar *dpy; - gchar *dpyhost, *tmp; - - option_add_int(&o_filer_size_limit, "filer_size_limit", 75); - option_add_int(&o_filer_auto_resize, "filer_auto_resize", - RESIZE_ALWAYS); - option_add_int(&o_unique_filer_windows, "filer_unique_windows", 0); - - option_add_int(&o_short_flag_names, "filer_short_flag_names", FALSE); - - option_add_int(&o_filer_view_type, "filer_view_type", - VIEW_TYPE_COLLECTION); - - option_add_notify(filer_options_changed); - - busy_cursor = gdk_cursor_new(GDK_WATCH); - crosshair = gdk_cursor_new(GDK_CROSSHAIR); - - window_with_id = g_hash_table_new_full(g_str_hash, g_str_equal, - NULL, NULL); - - /* Is the display on the local machine, or are we being - * run remotely? See filer_set_title(). - */ - ohost = our_host_name(); - dpy = gdk_get_display(); - dpyhost = g_strdup(dpy); - tmp = strchr(dpyhost, ':'); - if (tmp) - *tmp = '\0'; - - if (dpyhost[0] && strcmp(ohost, dpyhost) != 0) - { - /* Try the cannonical name for dpyhost (see our_host_name() - * in support.c). - */ - struct hostent *ent; - - ent = gethostbyname(dpyhost); - if (!ent || strcmp(ohost, ent->h_name) != 0) - not_local = TRUE; - } - - g_free(dpyhost); - - load_settings(); - load_learnt_mounts(); -} - -static gboolean if_deleted(gpointer item, gpointer removed) -{ - int i = ((GPtrArray *) removed)->len; - DirItem **r = (DirItem **) ((GPtrArray *) removed)->pdata; - char *leafname = ((DirItem *) item)->leafname; - - while (i--) - { - if (strcmp(leafname, r[i]->leafname) == 0) - return TRUE; - } - - return FALSE; -} - -#define DECOR_BORDER 32 - -/* Resize the filer window to w x h pixels, plus border (not clamped). - * If triggered by a key event, warp the pointer (for SloppyFocus users). - */ -void filer_window_set_size(FilerWindow *filer_window, int w, int h) -{ - GtkWidget *window; - - g_return_if_fail(filer_window != NULL); - - if (filer_window->scrollbar) - w += filer_window->scrollbar->allocation.width; - - if (o_toolbar.int_value != TOOLBAR_NONE) - h += filer_window->toolbar->allocation.height; - if (filer_window->message) - h += filer_window->message->allocation.height; - - window = filer_window->window; - - if (GTK_WIDGET_VISIBLE(window)) - { - gint x, y, m; - GtkRequisition *req = &window->requisition; - GdkWindow *gdk_window = window->window; - GdkEvent *event; - - w = MAX(req->width, w); - h = MAX(req->height, h); - gdk_window_get_pointer(NULL, &x, &y, NULL); - m = gdk_screen_get_monitor_at_point(gdk_screen_get_default(), - x, y); - gdk_window_get_position(gdk_window, &x, &y); - - if (x + w + DECOR_BORDER > - monitor_geom[m].x + monitor_geom[m].width || - y + h + DECOR_BORDER > - monitor_geom[m].y + monitor_geom[m].height) - { - if (x + w + DECOR_BORDER > - monitor_geom[m].x + monitor_geom[m].width) - { - x = monitor_geom[m].x + monitor_geom[m].width - - w - 4 - DECOR_BORDER; - } - if (y + h + DECOR_BORDER > - monitor_geom[m].y + monitor_geom[m].height) - { - y = monitor_geom[m].y + monitor_geom[m].height - - h - 4 - DECOR_BORDER; - } - gdk_window_move_resize(gdk_window, x, y, w, h); - } - else - gdk_window_resize(gdk_window, w, h); - - /* If the resize was triggered by a key press, keep - * the pointer inside the window so that it doesn't - * lose focus when using pointer-follows-mouse. - */ - event = gtk_get_current_event(); - if (event && event->type == GDK_KEY_PRESS) - { - int x, y; - int nx, ny; - - GdkWindow *win = filer_window->window->window; - - gdk_window_get_pointer(filer_window->window->window, - &x, &y, NULL); - - nx = CLAMP(x, 4, w - 4); - ny = CLAMP(y, 4, h - 4); - - if (nx != x || ny != y) - { - XWarpPointer(gdk_x11_drawable_get_xdisplay(win), - None, - gdk_x11_drawable_get_xid(win), - 0, 0, 0, 0, - nx, ny); - } - } - if (event) - gdk_event_free(event); - } - else - gtk_window_set_default_size(GTK_WINDOW(window), w, h); -} - -/* Called on a timeout while scanning or when scanning ends - * (whichever happens first). - */ -static gint open_filer_window(FilerWindow *filer_window) -{ - Settings *dir_settings; - gboolean force_resize; - - dir_settings = (Settings *) g_hash_table_lookup(settings_table, - filer_window->sym_path); - - force_resize = !(o_filer_auto_resize.int_value == RESIZE_NEVER && - dir_settings && dir_settings->flags & SET_POSITION); - - view_style_changed(filer_window->view, 0); - - if (filer_window->open_timeout) - { - g_source_remove(filer_window->open_timeout); - filer_window->open_timeout = 0; - } - - if (!GTK_WIDGET_VISIBLE(filer_window->window)) - { - display_set_actual_size(filer_window, force_resize); - gtk_widget_show(filer_window->window); - } - - return FALSE; -} - -/* Look through all items we want to display, and queue a recheck on any - * that require it. - */ -static void queue_interesting(FilerWindow *filer_window) -{ - DirItem *item; - ViewIter iter; - - view_get_iter(filer_window->view, &iter, 0); - while ((item = iter.next(&iter))) - { - if (item->flags & ITEM_FLAG_NEED_RESCAN_QUEUE) - dir_queue_recheck(filer_window->directory, item); - } -} - -static void update_display(Directory *dir, - DirAction action, - GPtrArray *items, - FilerWindow *filer_window) -{ - ViewIface *view = (ViewIface *) filer_window->view; - - switch (action) - { - case DIR_ADD: - view_add_items(view, items); - /* Open and resize if currently hidden */ - open_filer_window(filer_window); - break; - case DIR_REMOVE: - view_delete_if(view, if_deleted, items); - toolbar_update_info(filer_window); - break; - case DIR_START_SCAN: - set_scanning_display(filer_window, TRUE); - toolbar_update_info(filer_window); - break; - case DIR_END_SCAN: - if (filer_window->window->window) - gdk_window_set_cursor( - filer_window->window->window, - NULL); - set_scanning_display(filer_window, FALSE); - toolbar_update_info(filer_window); - open_filer_window(filer_window); - - if (filer_window->had_cursor && - !view_cursor_visible(view)) - { - ViewIter start; - view_get_iter(view, &start, 0); - if (start.next(&start)) - view_cursor_to_iter(view, &start); - view_show_cursor(view); - filer_window->had_cursor = FALSE; - } - if (filer_window->auto_select) - display_set_autoselect(filer_window, - filer_window->auto_select); - null_g_free(&filer_window->auto_select); - - filer_create_thumbs(filer_window); - - if (filer_window->thumb_queue) - start_thumb_scanning(filer_window); - break; - case DIR_UPDATE: - view_update_items(view, items); - break; - case DIR_ERROR_CHANGED: - filer_set_title(filer_window); - break; - case DIR_QUEUE_INTERESTING: - queue_interesting(filer_window); - break; - } -} - -static void attach(FilerWindow *filer_window) -{ - gdk_window_set_cursor(filer_window->window->window, busy_cursor); - view_clear(filer_window->view); - filer_window->scanning = TRUE; - dir_attach(filer_window->directory, (DirCallback) update_display, - filer_window); - filer_set_title(filer_window); - bookmarks_add_history(filer_window->sym_path); - - if (filer_window->directory->error) - { - if (spring_in_progress) - g_printerr(_("Error scanning '%s':\n%s\n"), - filer_window->sym_path, - filer_window->directory->error); - else - delayed_error(_("Error scanning '%s':\n%s"), - filer_window->sym_path, - filer_window->directory->error); - } -} - -static void detach(FilerWindow *filer_window) -{ - g_return_if_fail(filer_window->directory != NULL); - - dir_detach(filer_window->directory, - (DirCallback) update_display, filer_window); - g_object_unref(filer_window->directory); - filer_window->directory = NULL; -} - -/* If 'start' was mounted by ROX-Filer, return it. Otherwise, try the - * parents up the tree. - * NULL if we're not in a user mount point. - * g_free() the result. - */ -static char *get_ancestor_user_mount_point(const char *start) -{ - char *path; - - path = strdup(start); - - while (1) - { - char *slash; - - if (mount_is_user_mounted(path)) - return path; - - if (!path[1]) - { - g_free(path); - return NULL; - } - - slash = strrchr(path + 1, '/'); - if (!slash) - slash = path + 1; - *slash = '\0'; - } -} - -static void unmount_dialog_response(GtkWidget *dialog, - int response, char *mount) -{ - GList *list = NULL; - UnmountPrompt prompt_val = UNMOUNT_PROMPT_ASK; - - switch (response) - { - case GTK_RESPONSE_OK: - list = g_list_prepend(NULL, mount); - action_mount(list, FALSE, FALSE, TRUE); - prompt_val = UNMOUNT_PROMPT_UNMOUNT; - break; - - case ROX_RESPONSE_EJECT: - list = g_list_prepend(NULL, mount); - action_eject(list); - prompt_val = UNMOUNT_PROMPT_EJECT; - break; - - default: - prompt_val = UNMOUNT_PROMPT_NO_CHANGE; - break; - } - if (list) - g_list_free(list); - - if (gtk_toggle_button_get_active(g_object_get_data(G_OBJECT(dialog), - "unmount_mem_btn"))) - { - filer_set_unmount_action(mount, prompt_val); - } - - g_free(mount); - - gtk_widget_destroy(dialog); - - one_less_window(); -} - -/* 'filer_window' shows a directory under 'mount'. If no other window also - * shows a directory under it, display a non-modal dialog offering to - * unmount the directory. - * 'mount' is freed by this function, either directly, or after the dialog - * closes. - */ -static void may_offer_unmount(FilerWindow *filer_window, char *mount) -{ - GtkWidget *dialog, *button, *unmount_mem_btn; - GList *next; - int len; - - len = strlen(mount); - - for (next = all_filer_windows; next; next = next->next) - { - FilerWindow *other = (FilerWindow *) next->data; - - if (other == filer_window) - continue; - - if (strncmp(filer_window->real_path, other->real_path, - len) != 0) - continue; - - g_return_if_fail( - filer_window->real_path[len] != '/' || - filer_window->real_path[len] != '\0'); - - if (other->real_path[len] != '/' && - other->real_path[len] != '\0') - continue; - - /* Found another window. Don't offer to unmount. */ - g_free(mount); - return; - } - - if (unmount_prompt_actions) - { - GList *list = NULL; - UnmountPrompt unmount_val = filer_get_unmount_action(mount); - - switch (unmount_val) - { - case UNMOUNT_PROMPT_UNMOUNT: - list = g_list_prepend(NULL, mount); - action_mount(list, FALSE, FALSE, TRUE); - break; - - case UNMOUNT_PROMPT_EJECT: - list = g_list_prepend(NULL, mount); - action_eject(list); - break; - - default: - break; - } - if (list) - g_list_free(list); - if (unmount_val != UNMOUNT_PROMPT_ASK) - { - g_free(mount); - return; - } - } - - dialog = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, - _("Do you want to unmount this device?\n\n" - "Unmounting a device makes it safe to remove " - "the disk.")); - - unmount_mem_btn = gtk_check_button_new_with_label( - _("Perform the same action in future for this mount point")); - gtk_widget_show(unmount_mem_btn); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), unmount_mem_btn, - FALSE, FALSE, 0); - g_object_set_data(G_OBJECT(dialog), "unmount_mem_btn", - unmount_mem_btn); - - button = button_new_mixed(ROX_STOCK_MOUNTED, _("No change")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, - GTK_RESPONSE_CANCEL); - gtk_widget_show(button); - - button = button_new_mixed(ROX_STOCK_MOUNT, _("Unmount")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, - GTK_RESPONSE_OK); - gtk_widget_show(button); - - /* We need a better icon, but I can't draw */ - button = button_new_mixed(GTK_STOCK_UNDO, _("Eject")); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(dialog), button, - ROX_RESPONSE_EJECT); - gtk_widget_show(button); - - g_signal_connect(G_OBJECT(dialog), "response", - G_CALLBACK(unmount_dialog_response), mount); - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), - GTK_RESPONSE_OK); - - number_of_windows++; - gtk_widget_show(dialog); -} - -/* Returns TRUE to prevent closing the window. May offer to unmount a - * device. - */ -gboolean filer_window_delete(GtkWidget *window, - GdkEvent *unused, /* (may be NULL) */ - FilerWindow *filer_window) -{ - char *mount; - - mount = get_ancestor_user_mount_point(filer_window->real_path); - - if (mount) - may_offer_unmount(filer_window, mount); - - return FALSE; -} - -static void filer_window_destroyed(GtkWidget *widget, FilerWindow *filer_window) -{ - all_filer_windows = g_list_remove(all_filer_windows, filer_window); - - g_object_set_data(G_OBJECT(widget), "filer_window", NULL); - - if (window_with_primary == filer_window) - window_with_primary = NULL; - - if (window_with_focus == filer_window) - { - menu_popdown(); - window_with_focus = NULL; - } - - if (filer_window->directory) - detach(filer_window); - - if (filer_window->open_timeout) - { - g_source_remove(filer_window->open_timeout); - filer_window->open_timeout = 0; - } - - if (filer_window->auto_scroll != -1) - { - g_source_remove(filer_window->auto_scroll); - filer_window->auto_scroll = -1; - } - - if (filer_window->thumb_queue) - destroy_glist(&filer_window->thumb_queue); - - tooltip_show(NULL); - - filer_set_id(filer_window, NULL); - - if(filer_window->filter_string) - g_free(filer_window->filter_string); - if(filer_window->regexp) - g_free(filer_window->regexp); - - g_free(filer_window->auto_select); - g_free(filer_window->real_path); - g_free(filer_window->sym_path); - g_free(filer_window); - - one_less_window(); -} - -/* Returns TRUE iff the directory still exists. */ -static gboolean may_rescan(FilerWindow *filer_window, gboolean warning) -{ - Directory *dir; - - g_return_val_if_fail(filer_window != NULL, FALSE); - - /* We do a fresh lookup (rather than update) because the inode may - * have changed. - */ - dir = g_fscache_lookup(dir_cache, filer_window->real_path); - if (!dir) - { - if (warning) - info_message(_("Directory missing/deleted")); - gtk_widget_destroy(filer_window->window); - return FALSE; - } - if (dir == filer_window->directory) - g_object_unref(dir); - else - { - detach(filer_window); - filer_window->directory = dir; - attach(filer_window); - } - - return TRUE; -} - -/* No items are now selected. This might be because another app claimed - * the selection or because the user unselected all the items. - */ -void filer_lost_selection(FilerWindow *filer_window, guint time) -{ - if (window_with_primary == filer_window) - { - window_with_primary = NULL; - gtk_selection_owner_set(NULL, GDK_SELECTION_PRIMARY, time); - } -} - -/* Another app has claimed the primary selection */ -static void filer_lost_primary(GtkWidget *window, - GdkEventSelection *event, - gpointer user_data) -{ - FilerWindow *filer_window = (FilerWindow *) user_data; - - if (window_with_primary && window_with_primary == filer_window) - { - window_with_primary = NULL; - set_selection_state(filer_window, FALSE); - } -} - -/* Someone wants us to send them the selection */ -static void selection_get(GtkWidget *widget, - GtkSelectionData *selection_data, - guint info, - guint time, - gpointer data) -{ - GString *reply, *header; - FilerWindow *filer_window = (FilerWindow *) data; - ViewIter iter; - DirItem *item; - - reply = g_string_new(NULL); - header = g_string_new(NULL); - - switch (info) - { - case TARGET_STRING: - g_string_printf(header, " %s", - make_path(filer_window->sym_path, "")); - break; - case TARGET_URI_LIST: - g_string_printf(header, " file://%s%s", - our_host_name_for_dnd(), - make_path(filer_window->sym_path, "")); - break; - } - - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - - while ((item = iter.next(&iter))) - { - g_string_append(reply, header->str); - g_string_append(reply, item->leafname); - } - - if (reply->len > 0) - gtk_selection_data_set_text(selection_data, - reply->str + 1, reply->len - 1); - else - { - g_warning("Attempt to paste empty selection!"); - gtk_selection_data_set_text(selection_data, "", 0); - } - - g_string_free(reply, TRUE); - g_string_free(header, TRUE); -} - -/* Selection has been changed -- try to grab the primary selection - * if we don't have it. Also called when clicking on an insensitive selection - * to regain primary. - * Also updates toolbar info. - */ -void filer_selection_changed(FilerWindow *filer_window, gint time) -{ - g_return_if_fail(filer_window != NULL); - - toolbar_update_info(filer_window); - - if (window_with_primary == filer_window) - return; /* Already got primary */ - - if (!view_count_selected(filer_window->view)) - return; /* Nothing selected */ - - if (filer_window->temp_item_selected == FALSE && - gtk_selection_owner_set(GTK_WIDGET(filer_window->window), - GDK_SELECTION_PRIMARY, - time)) - { - window_with_primary = filer_window; - set_selection_state(filer_window, TRUE); - } - else - set_selection_state(filer_window, FALSE); -} - -/* Open the item (or add it to the shell command minibuffer) */ -void filer_openitem(FilerWindow *filer_window, ViewIter *iter, OpenFlags flags) -{ - gboolean shift = (flags & OPEN_SHIFT) != 0; - gboolean close_mini = flags & OPEN_FROM_MINI; - gboolean close_window = (flags & OPEN_CLOSE_WINDOW) != 0; - DirItem *item; - const guchar *full_path; - gboolean wink = TRUE; - Directory *old_dir; - - g_return_if_fail(filer_window != NULL && iter != NULL); - - item = iter->peek(iter); - - g_return_if_fail(item != NULL); - - if (filer_window->mini_type == MINI_SHELL) - { - minibuffer_add(filer_window, item->leafname); - return; - } - - if (item->base_type == TYPE_UNKNOWN) - dir_update_item(filer_window->directory, item->leafname); - - if (item->base_type == TYPE_DIRECTORY) - { - /* Never close a filer window when opening a directory - * (click on a dir or click on an app with shift). - */ - if (shift || !(item->flags & ITEM_FLAG_APPDIR)) - close_window = FALSE; - } - - full_path = make_path(filer_window->sym_path, item->leafname); - if (shift && (item->flags & ITEM_FLAG_SYMLINK)) - wink = FALSE; - - old_dir = filer_window->directory; - if (run_diritem(full_path, item, - flags & OPEN_SAME_WINDOW ? filer_window : NULL, - filer_window, - shift)) - { - if (old_dir != filer_window->directory) - return; - - if (close_window) - gtk_widget_destroy(filer_window->window); - else - { - if (wink) - view_wink_item(filer_window->view, iter); - if (close_mini) - minibuffer_hide(filer_window); - } - } -} - -static gint pointer_in(GtkWidget *widget, - GdkEventCrossing *event, - FilerWindow *filer_window) -{ - may_rescan(filer_window, TRUE); - return FALSE; -} - -static gint pointer_out(GtkWidget *widget, - GdkEventCrossing *event, - FilerWindow *filer_window) -{ - tooltip_show(NULL); - return FALSE; -} - -/* Move the cursor to the next selected item in direction 'dir' - * (+1 or -1). - */ -void filer_next_selected(FilerWindow *filer_window, int dir) -{ - ViewIter iter, cursor; - gboolean have_cursor; - ViewIface *view = filer_window->view; - - g_return_if_fail(dir == 1 || dir == -1); - - view_get_cursor(view, &cursor); - have_cursor = cursor.peek(&cursor) != NULL; - - view_get_iter(view, &iter, - VIEW_ITER_SELECTED | - (have_cursor ? VIEW_ITER_FROM_CURSOR : 0) | - (dir < 0 ? VIEW_ITER_BACKWARDS : 0)); - - if (have_cursor && view_get_selected(view, &cursor)) - iter.next(&iter); /* Skip the cursor itself */ - - if (iter.next(&iter)) - view_cursor_to_iter(view, &iter); - else - gdk_beep(); - - return; -} - -static void return_pressed(FilerWindow *filer_window, GdkEventKey *event) -{ - TargetFunc cb = filer_window->target_cb; - gpointer data = filer_window->target_data; - OpenFlags flags = 0; - ViewIter iter; - - filer_target_mode(filer_window, NULL, NULL, NULL); - - view_get_cursor(filer_window->view, &iter); - if (!iter.peek(&iter)) - return; - - if (cb) - { - cb(filer_window, &iter, data); - return; - } - - if (event->state & GDK_SHIFT_MASK) - flags |= OPEN_SHIFT; - if (event->state & GDK_MOD1_MASK) - flags |= OPEN_CLOSE_WINDOW; - else - flags |= OPEN_SAME_WINDOW; - - filer_openitem(filer_window, &iter, flags); -} - -/* Makes sure that 'groups' is up-to-date, reloading from file if it has - * changed. If no groups were loaded and there is no file then initialised - * groups to an empty document. - * Return the node for the 'name' group. - */ -static xmlNode *group_find(char *name) -{ - xmlNode *node; - gchar *path; - - /* Update the groups, if possible */ - path = choices_find_xdg_path_load("Groups.xml", PROJECT, SITE); - if (path) - { - XMLwrapper *wrapper; - wrapper = xml_cache_load(path); - if (wrapper) - { - if (groups) - g_object_unref(groups); - groups = wrapper; - } - - g_free(path); - } - - if (!groups) - { - groups = xml_new(NULL); - groups->doc = xmlNewDoc("1.0"); - - xmlDocSetRootElement(groups->doc, - xmlNewDocNode(groups->doc, NULL, "groups", NULL)); - return NULL; - } - - node = xmlDocGetRootElement(groups->doc); - - for (node = node->xmlChildrenNode; node; node = node->next) - { - guchar *gid; - - gid = xmlGetProp(node, "name"); - - if (!gid) - continue; - - if (strcmp(name, gid) != 0) - continue; - - g_free(gid); - - return node; - } - - return NULL; -} - -static void group_save(FilerWindow *filer_window, char *name) -{ - xmlNode *group; - guchar *save_path; - DirItem *item; - ViewIter iter; - - group = group_find(name); - if (group) - { - xmlUnlinkNode(group); - xmlFreeNode(group); - } - group = xmlNewChild(xmlDocGetRootElement(groups->doc), - NULL, "group", NULL); - xmlSetProp(group, "name", name); - - xmlNewTextChild(group, NULL, "directory", filer_window->sym_path); - - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - - while ((item = iter.next(&iter))) - xmlNewTextChild(group, NULL, "item", item->leafname); - - save_path = choices_find_xdg_path_save("Groups.xml", PROJECT, SITE, - TRUE); - if (save_path) - { - save_xml_file(groups->doc, save_path); - g_free(save_path); - } -} - -static gboolean group_restore_cb(ViewIter *iter, gpointer data) -{ - GHashTable *in_group = (GHashTable *) data; - - return g_hash_table_lookup(in_group, - iter->peek(iter)->leafname) != NULL; -} - -static void group_restore(FilerWindow *filer_window, char *name) -{ - GHashTable *in_group; - char *path; - xmlNode *group, *node; - - group = group_find(name); - - if (!group) - { - report_error(_("Group %s is not set. Select some files " - "and press Ctrl+%s to set the group. Press %s " - "on its own to reselect the files later.\n" - "Make sure NumLock is on if you use the keypad."), - name, name, name); - return; - } - - node = get_subnode(group, NULL, "directory"); - g_return_if_fail(node != NULL); - path = xmlNodeListGetString(groups->doc, node->xmlChildrenNode, 1); - g_return_if_fail(path != NULL); - - if (strcmp(path, filer_window->sym_path) != 0) - filer_change_to(filer_window, path, NULL); - g_free(path); - - in_group = g_hash_table_new(g_str_hash, g_str_equal); - for (node = group->xmlChildrenNode; node; node = node->next) - { - gchar *leaf; - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "item") != 0) - continue; - - leaf = xmlNodeListGetString(groups->doc, - node->xmlChildrenNode, 1); - if (!leaf) - g_warning("Missing leafname!\n"); - else - g_hash_table_insert(in_group, leaf, filer_window); - } - - view_select_if(filer_window->view, &group_restore_cb, in_group); - - g_hash_table_foreach(in_group, (GHFunc) g_free, NULL); - g_hash_table_destroy(in_group); -} - -static gboolean popup_menu(GtkWidget *widget, FilerWindow *filer_window) -{ - ViewIter iter; - GdkEvent *event; - - view_get_cursor(filer_window->view, &iter); - - event = gtk_get_current_event(); - show_filer_menu(filer_window, event, &iter); - if (event) - gdk_event_free(event); - - return TRUE; -} - -void filer_window_toggle_cursor_item_selected(FilerWindow *filer_window) -{ - ViewIface *view = filer_window->view; - ViewIter iter; - - view_get_iter(view, &iter, VIEW_ITER_FROM_CURSOR); - if (!iter.next(&iter)) - return; /* No cursor */ - - if (view_get_selected(view, &iter)) - view_set_selected(view, &iter, FALSE); - else - view_set_selected(view, &iter, TRUE); - - if (iter.next(&iter)) - view_cursor_to_iter(view, &iter); -} - -gint filer_key_press_event(GtkWidget *widget, - GdkEventKey *event, - FilerWindow *filer_window) -{ - ViewIface *view = filer_window->view; - ViewIter cursor; - GtkWidget *focus = GTK_WINDOW(widget)->focus_widget; - guint key = event->keyval; - char group[2] = "1"; - - window_with_focus = filer_window; - - /* Delay setting up the keys until now to speed loading... */ - if (ensure_filer_menu()) - { - /* Gtk updates in an idle-handler, so force a recheck now */ - g_signal_emit_by_name(widget, "keys_changed"); - } - - if (focus && focus == filer_window->minibuffer) - if (gtk_widget_event(focus, (GdkEvent *) event)) - return TRUE; /* Handled */ - - if (!focus) - gtk_widget_grab_focus(GTK_WIDGET(view)); - - view_get_cursor(view, &cursor); - if (!cursor.peek(&cursor) && (key == GDK_Up || key == GDK_Down)) - { - ViewIter iter; - view_get_iter(view, &iter, 0); - if (iter.next(&iter)) - view_cursor_to_iter(view, &iter); - gtk_widget_grab_focus(GTK_WIDGET(view)); /* Needed? */ - return TRUE; - } - - switch (key) - { - case GDK_Escape: - filer_target_mode(filer_window, NULL, NULL, NULL); - view_cursor_to_iter(filer_window->view, NULL); - view_clear_selection(filer_window->view); - return FALSE; - case GDK_Return: - return_pressed(filer_window, event); - break; - case GDK_ISO_Left_Tab: - filer_next_selected(filer_window, -1); - break; - case GDK_Tab: - filer_next_selected(filer_window, 1); - break; - case GDK_BackSpace: - change_to_parent(filer_window); - break; - case GDK_backslash: - { - ViewIter iter; - - tooltip_show(NULL); - - view_get_cursor(filer_window->view, &iter); - show_filer_menu(filer_window, - (GdkEvent *) event, &iter); - break; - } - case ' ': - filer_window_toggle_cursor_item_selected(filer_window); - break; - default: - if (key >= GDK_0 && key <= GDK_9) - group[0] = key - GDK_0 + '0'; - else if (key >= GDK_KP_0 && key <= GDK_KP_9) - group[0] = key - GDK_KP_0 + '0'; - else - { - if (focus && focus != widget && - gtk_widget_get_toplevel(focus) == widget) - if (gtk_widget_event(focus, - (GdkEvent *) event)) - return TRUE; /* Handled */ - return FALSE; - } - - if (event->state & GDK_CONTROL_MASK) - group_save(filer_window, group); - else - group_restore(filer_window, group); - } - - return TRUE; -} - -void filer_open_parent(FilerWindow *filer_window) -{ - char *dir; - const char *current = filer_window->sym_path; - - if (current[0] == '/' && current[1] == '\0') - return; /* Already in the root */ - - dir = g_path_get_dirname(current); - filer_opendir(dir, filer_window, NULL); - g_free(dir); -} - -void change_to_parent(FilerWindow *filer_window) -{ - char *dir; - const char *current = filer_window->sym_path; - - if (current[0] == '/' && current[1] == '\0') - return; /* Already in the root */ - - if (mount_is_user_mounted(filer_window->real_path)) - may_offer_unmount(filer_window, - g_strdup(filer_window->real_path)); - - dir = g_path_get_dirname(current); - filer_change_to(filer_window, dir, g_basename(current)); - g_free(dir); -} - -/* Removes trailing /s from path (modified in place) */ -static void tidy_sympath(gchar *path) -{ - int l; - - g_return_if_fail(path != NULL); - - l = strlen(path); - while (l > 1 && path[l - 1] == '/') - { - l--; - path[l] = '\0'; - } -} - -/* Make filer_window display path. When finished, highlight item 'from', or - * the first item if from is NULL. If there is currently no cursor then - * simply wink 'from' (if not NULL). - * If the cause was a key event and we resize, warp the pointer. - */ -void filer_change_to(FilerWindow *filer_window, - const char *path, const char *from) -{ - char *from_dup; - char *sym_path, *real_path; - Directory *new_dir; - - g_return_if_fail(filer_window != NULL); - - filer_cancel_thumbnails(filer_window); - - tooltip_show(NULL); - - sym_path = g_strdup(path); - real_path = pathdup(path); - new_dir = g_fscache_lookup(dir_cache, real_path); - - if (!new_dir) - { - delayed_error(_("Directory '%s' is not accessible"), - sym_path); - g_free(real_path); - g_free(sym_path); - return; - } - - if (o_unique_filer_windows.int_value && !spring_in_progress) - { - FilerWindow *fw; - - fw = find_filer_window(sym_path, filer_window); - if (fw) - gtk_widget_destroy(fw->window); - } - - from_dup = from && *from ? g_strdup(from) : NULL; - - detach(filer_window); - g_free(filer_window->real_path); - g_free(filer_window->sym_path); - filer_window->real_path = real_path; - filer_window->sym_path = sym_path; - tidy_sympath(filer_window->sym_path); - - filer_window->directory = new_dir; - - g_free(filer_window->auto_select); - filer_window->auto_select = from_dup; - - filer_window->had_cursor = filer_window->had_cursor || - view_cursor_visible(filer_window->view); - - filer_set_title(filer_window); - if (filer_window->window->window) - gdk_window_set_role(filer_window->window->window, - filer_window->sym_path); - view_cursor_to_iter(filer_window->view, NULL); - - attach(filer_window); - - check_settings(filer_window); - - display_set_actual_size(filer_window, FALSE); - - if (o_filer_auto_resize.int_value == RESIZE_ALWAYS) - view_autosize(filer_window->view); - - if (filer_window->mini_type == MINI_PATH) - g_idle_add((GSourceFunc) minibuffer_show_cb, filer_window); -} - -/* Returns a list containing the full (sym) pathname of every selected item. - * You must g_free() each item in the list. - */ -GList *filer_selected_items(FilerWindow *filer_window) -{ - GList *retval = NULL; - guchar *dir = filer_window->sym_path; - ViewIter iter; - DirItem *item; - - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - while ((item = iter.next(&iter))) - { - retval = g_list_prepend(retval, - g_strdup(make_path(dir, item->leafname))); - } - - return g_list_reverse(retval); -} - -/* Return the single selected item. Error if nothing is selected. */ -DirItem *filer_selected_item(FilerWindow *filer_window) -{ - ViewIter iter; - DirItem *item; - - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - - item = iter.next(&iter); - g_return_val_if_fail(item != NULL, NULL); - g_return_val_if_fail(iter.next(&iter) == NULL, NULL); - - return item; -} - -/* Creates and shows a new filer window. - * If src_win != NULL then display options can be taken from that source window. - * Returns the new filer window, or NULL on error. - * Note: if unique windows is in use, may return an existing window. - */ -FilerWindow *filer_opendir(const char *path, FilerWindow *src_win, - const gchar *wm_class) -{ - FilerWindow *filer_window; - char *real_path; - DisplayStyle dstyle; - DetailsType dtype; - SortType s_type; - GtkSortType s_order; - Settings *dir_settings = NULL; - gboolean force_resize = TRUE; - - /* Get the real pathname of the directory and copy it */ - real_path = pathdup(path); - - if (o_unique_filer_windows.int_value && !spring_in_progress) - { - FilerWindow *same_dir_window; - - same_dir_window = find_filer_window(path, NULL); - - if (same_dir_window) - { - gtk_window_present(GTK_WINDOW(same_dir_window->window)); - return same_dir_window; - } - } - - filer_window = g_new(FilerWindow, 1); - filer_window->message = NULL; - filer_window->minibuffer = NULL; - filer_window->minibuffer_label = NULL; - filer_window->minibuffer_area = NULL; - filer_window->temp_show_hidden = FALSE; - filer_window->sym_path = g_strdup(path); - filer_window->real_path = real_path; - filer_window->scanning = FALSE; - filer_window->had_cursor = FALSE; - filer_window->auto_select = NULL; - filer_window->toolbar_text = NULL; - filer_window->target_cb = NULL; - filer_window->mini_type = MINI_NONE; - filer_window->selection_state = GTK_STATE_INSENSITIVE; - filer_window->toolbar = NULL; - filer_window->toplevel_vbox = NULL; - filer_window->view_hbox = NULL; - filer_window->view = NULL; - filer_window->scrollbar = NULL; - filer_window->auto_scroll = -1; - filer_window->window_id = NULL; - - tidy_sympath(filer_window->sym_path); - - /* Finds the entry for this directory in the dir cache, creating - * a new one if needed. This does not cause a scan to start, - * so if a new entry is created then it will be empty. - */ - filer_window->directory = g_fscache_lookup(dir_cache, real_path); - if (!filer_window->directory) - { - delayed_error(_("Directory '%s' not found."), path); - g_free(filer_window->real_path); - g_free(filer_window->sym_path); - g_free(filer_window); - return NULL; - } - - filer_window->temp_item_selected = FALSE; - filer_window->flags = (FilerFlags) 0; - filer_window->details_type = DETAILS_TIMES; - filer_window->display_style = UNKNOWN_STYLE; - filer_window->display_style_wanted = UNKNOWN_STYLE; - filer_window->thumb_queue = NULL; - filer_window->max_thumbs = 0; - filer_window->sort_type = -1; - - filer_window->filter = FILER_SHOW_ALL; - filer_window->filter_string = NULL; - filer_window->regexp = NULL; - filer_window->filter_directories = FALSE; - - if (src_win && o_display_inherit_options.int_value) - { - s_type = src_win->sort_type; - s_order = src_win->sort_order; - dstyle = src_win->display_style_wanted; - dtype = src_win->details_type; - filer_window->show_hidden = src_win->show_hidden; - filer_window->show_thumbs = src_win->show_thumbs; - filer_window->view_type = src_win->view_type; - - filer_window->filter_directories = src_win->filter_directories; - filer_set_filter(filer_window, src_win->filter, - src_win->filter_string); - } - else - { - s_type = o_display_sort_by.int_value; - s_order = GTK_SORT_ASCENDING; - dstyle = o_display_size.int_value; - dtype = o_display_details.int_value; - filer_window->show_hidden = o_display_show_hidden.int_value; - filer_window->show_thumbs = o_display_show_thumbs.int_value; - filer_window->view_type = o_filer_view_type.int_value; - } - - dir_settings = (Settings *) g_hash_table_lookup(settings_table, - filer_window->sym_path); - if (dir_settings) - { - /* Override the current defaults with the per-directory - * user settings. - */ - if (dir_settings->flags & SET_HIDDEN) - filer_window->show_hidden = dir_settings->show_hidden; - - if (dir_settings->flags & SET_STYLE) - dstyle = dir_settings->display_style; - - if (dir_settings->flags & SET_DETAILS) - { - dtype = dir_settings->details_type; - filer_window->view_type = dir_settings->view_type; - } - - if (dir_settings->flags & SET_SORT) - { - s_type = dir_settings->sort_type; - s_order = dir_settings->sort_order; - } - - if (dir_settings->flags & SET_THUMBS) - filer_window->show_thumbs = dir_settings->show_thumbs; - - if (dir_settings->flags & SET_FILTER) - { - filer_set_filter(filer_window, - dir_settings->filter_type, - dir_settings->filter); - filer_set_filter_directories(filer_window, - dir_settings->filter_directories); - } - } - - /* Add all the user-interface elements & realise */ - filer_add_widgets(filer_window, wm_class); - if (src_win) - gtk_window_set_position(GTK_WINDOW(filer_window->window), - GTK_WIN_POS_MOUSE); - - if (dir_settings) - { - if (dir_settings->flags & SET_POSITION) - { - gtk_window_move(GTK_WINDOW(filer_window->window), - dir_settings->x, dir_settings->y); - } - if (dir_settings->flags & SET_SIZE) - { - filer_window_set_size(filer_window, - dir_settings->width, - dir_settings->height); - force_resize = o_filer_auto_resize.int_value != RESIZE_NEVER; - } - } - - /* Connect to all the signal handlers */ - filer_add_signals(filer_window); - - display_set_layout(filer_window, dstyle, dtype, force_resize); - display_set_sort_type(filer_window, s_type, s_order); - - /* Open the window after a timeout, or when scanning stops. - * Do this before attaching, because attach() might tell us to - * stop scanning (if a scan isn't needed). - */ - filer_window->open_timeout = g_timeout_add(500, - (GSourceFunc) open_filer_window, - filer_window); - - /* The view is created empty and then attach() is called, which - * links the filer window to the entry in the directory cache we - * looked up / created above. - * - * The attach() function will immediately callback to the filer window - * to deliver a list of all known entries in the directory (so, - * the number of items will be known after attach() returns). - * - * If the directory was not in the cache (because it hadn't been - * opened it before) then the types and icons for the entries are - * not know, but the list of names is. - */ - - attach(filer_window); - - number_of_windows++; - all_filer_windows = g_list_prepend(all_filer_windows, filer_window); - - return filer_window; -} - -void filer_set_view_type(FilerWindow *filer_window, ViewType type) -{ - GtkWidget *view = NULL; - Directory *dir = NULL; - GHashTable *selected = NULL; - - g_return_if_fail(filer_window != NULL); - - motion_window = NULL; - - if (filer_window->view) - { - /* Save the current selection */ - ViewIter iter; - DirItem *item; - - selected = g_hash_table_new(g_str_hash, g_str_equal); - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - while ((item = iter.next(&iter))) - g_hash_table_insert(selected, item->leafname, "yes"); - - /* Destroy the old view */ - gtk_widget_destroy(GTK_WIDGET(filer_window->view)); - filer_window->view = NULL; - - dir = filer_window->directory; - g_object_ref(dir); - detach(filer_window); - } - - switch (type) - { - case VIEW_TYPE_COLLECTION: - view = view_collection_new(filer_window); - break; - case VIEW_TYPE_DETAILS: - view = view_details_new(filer_window); - break; - } - - g_return_if_fail(view != NULL); - - filer_window->view = VIEW(view); - filer_window->view_type = type; - - gtk_box_pack_start(filer_window->view_hbox, view, TRUE, TRUE, 0); - gtk_widget_show(view); - - /* Drag and drop events */ - make_drop_target(view, 0); - g_signal_connect(view, "drag_motion", - G_CALLBACK(drag_motion), filer_window); - g_signal_connect(view, "drag_leave", - G_CALLBACK(drag_leave), filer_window); - g_signal_connect(view, "drag_end", - G_CALLBACK(drag_end), filer_window); - /* Dragging from us... */ - g_signal_connect(view, "drag_data_get", - GTK_SIGNAL_FUNC(drag_data_get), NULL); - - if (dir) - { - /* Only when changing type. Otherwise, will attach later. */ - filer_window->directory = dir; - attach(filer_window); - - if (o_filer_auto_resize.int_value != RESIZE_NEVER) - view_autosize(filer_window->view); - } - - if (selected) - { - ViewIter iter; - DirItem *item; - - view_get_iter(filer_window->view, &iter, 0); - while ((item = iter.next(&iter))) - { - if (g_hash_table_lookup(selected, item->leafname)) - view_set_selected(filer_window->view, - &iter, TRUE); - } - g_hash_table_destroy(selected); - } -} - -/* This adds all the widgets to a new filer window. It is in a separate - * function because filer_opendir() was getting too long... - */ -static void filer_add_widgets(FilerWindow *filer_window, const gchar *wm_class) -{ - GtkWidget *hbox, *vbox; - - /* Create the top-level window widget */ - filer_window->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - filer_set_title(filer_window); - gtk_widget_set_name(filer_window->window, "rox-filer"); - - if (wm_class) - gtk_window_set_wmclass(GTK_WINDOW(filer_window->window), - wm_class, PROJECT); - - /* This property is cleared when the window is destroyed. - * You can thus ref filer_window->window and use this to see - * if the window no longer exists. - */ - g_object_set_data(G_OBJECT(filer_window->window), - "filer_window", filer_window); - - /* Create this now to make the Adjustment before the View */ - filer_window->scrollbar = gtk_vscrollbar_new(NULL); - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(filer_window->window), vbox); - - filer_window->toplevel_vbox = GTK_BOX(vbox); - - /* If there's a message that should be displayed in each window (eg - * 'Running as root'), add it here. - */ - if (show_user_message) - { - filer_window->message = gtk_label_new(show_user_message); - gtk_box_pack_start(GTK_BOX(vbox), filer_window->message, - FALSE, TRUE, 0); - gtk_widget_show(filer_window->message); - } - - hbox = gtk_hbox_new(FALSE, 0); - filer_window->view_hbox = GTK_BOX(hbox); - gtk_box_pack_start_defaults(GTK_BOX(vbox), hbox); - /* Add the main View widget */ - filer_set_view_type(filer_window, filer_window->view_type); - /* Put the scrollbar next to the View */ - gtk_box_pack_end(GTK_BOX(hbox), - filer_window->scrollbar, FALSE, TRUE, 0); - gtk_widget_show(hbox); - - /* If we want a toolbar, create it now */ - toolbar_update_toolbar(filer_window); - - /* And the minibuffer (hidden to start with) */ - create_minibuffer(filer_window); - gtk_box_pack_end(GTK_BOX(vbox), filer_window->minibuffer_area, - FALSE, TRUE, 0); - - /* And the thumbnail progress bar (also hidden) */ - { - GtkWidget *cancel; - - filer_window->thumb_bar = gtk_hbox_new(FALSE, 2); - gtk_box_pack_end(GTK_BOX(vbox), filer_window->thumb_bar, - FALSE, TRUE, 0); - - filer_window->thumb_progress = gtk_progress_bar_new(); - - gtk_box_pack_start(GTK_BOX(filer_window->thumb_bar), - filer_window->thumb_progress, TRUE, TRUE, 0); - - cancel = gtk_button_new_with_label(_("Cancel")); - GTK_WIDGET_UNSET_FLAGS(cancel, GTK_CAN_FOCUS); - gtk_box_pack_start(GTK_BOX(filer_window->thumb_bar), - cancel, FALSE, TRUE, 0); - g_signal_connect_swapped(cancel, "clicked", - G_CALLBACK(filer_cancel_thumbnails), - filer_window); - } - - gtk_widget_show(vbox); - gtk_widget_show(filer_window->scrollbar); - - gtk_widget_realize(filer_window->window); - - gdk_window_set_role(filer_window->window->window, - filer_window->sym_path); - - filer_window_set_size(filer_window, 4, 4); -} - -static void filer_add_signals(FilerWindow *filer_window) -{ - GtkTargetEntry target_table[] = - { - {"text/uri-list", 0, TARGET_URI_LIST}, - {"UTF8_STRING", 0, TARGET_STRING}, - {"STRING", 0, TARGET_STRING}, - {"COMPOUND_TEXT", 0, TARGET_STRING},/* XXX: Treats as STRING */ - }; - - /* Events on the top-level window */ - gtk_widget_add_events(filer_window->window, GDK_ENTER_NOTIFY); - g_signal_connect(filer_window->window, "enter-notify-event", - G_CALLBACK(pointer_in), filer_window); - g_signal_connect(filer_window->window, "leave-notify-event", - G_CALLBACK(pointer_out), filer_window); - g_signal_connect(filer_window->window, "destroy", - G_CALLBACK(filer_window_destroyed), filer_window); - g_signal_connect(filer_window->window, "delete-event", - G_CALLBACK(filer_window_delete), filer_window); - - g_signal_connect(filer_window->window, "selection_clear_event", - G_CALLBACK(filer_lost_primary), filer_window); - - g_signal_connect(filer_window->window, "selection_get", - G_CALLBACK(selection_get), filer_window); - gtk_selection_add_targets(GTK_WIDGET(filer_window->window), - GDK_SELECTION_PRIMARY, - target_table, - sizeof(target_table) / sizeof(*target_table)); - - g_signal_connect(filer_window->window, "popup-menu", - G_CALLBACK(popup_menu), filer_window); - g_signal_connect(filer_window->window, "key_press_event", - G_CALLBACK(filer_key_press_event), filer_window); - - gtk_window_add_accel_group(GTK_WINDOW(filer_window->window), - filer_keys); -} - -static gint clear_scanning_display(FilerWindow *filer_window) -{ - if (filer_exists(filer_window)) - filer_set_title(filer_window); - return FALSE; -} - -static void set_scanning_display(FilerWindow *filer_window, gboolean scanning) -{ - if (scanning == filer_window->scanning) - return; - filer_window->scanning = scanning; - - if (scanning) - filer_set_title(filer_window); - else - g_timeout_add(300, (GSourceFunc) clear_scanning_display, - filer_window); -} - -/* Note that filer_window may not exist after this call. - * Returns TRUE iff the directory still exists. - */ -gboolean filer_update_dir(FilerWindow *filer_window, gboolean warning) -{ - gboolean still_exists; - - still_exists = may_rescan(filer_window, warning); - - if (still_exists) - dir_update(filer_window->directory, filer_window->sym_path); - - return still_exists; -} - -void filer_update_all(void) -{ - GList *next = all_filer_windows; - - while (next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - - /* Updating directory may remove it from list -- stop sending - * patches to move this line! - */ - next = next->next; - - /* Don't trigger a refresh if we're already scanning. - * Otherwise, two views of a single directory will trigger - * two scans. - */ - if (filer_window->directory && - !filer_window->directory->scanning) - filer_update_dir(filer_window, TRUE); - } -} - -/* Refresh the various caches even if we don't think we need to */ -void full_refresh(void) -{ - mount_update(TRUE); - reread_mime_files(); /* Refreshes all windows */ -} - -/* See whether a filer window with a given path already exists - * and is different from diff. - */ -static FilerWindow *find_filer_window(const char *sym_path, FilerWindow *diff) -{ - GList *next; - - for (next = all_filer_windows; next; next = next->next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - - if (filer_window != diff && - strcmp(sym_path, filer_window->sym_path) == 0) - return filer_window; - } - - return NULL; -} - -/* This path has been mounted/umounted/deleted some files - update all dirs */ -void filer_check_mounted(const char *real_path) -{ - GList *next = all_filer_windows; - gchar *parent; - int len; - gboolean resize = o_filer_auto_resize.int_value == RESIZE_ALWAYS; - - /* DOS disks, etc, often don't change the mtime of the root directory - * on modification, so force a refresh now. - */ - g_fscache_update(dir_cache, real_path); - - len = strlen(real_path); - - while (next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - - next = next->next; - - if (strncmp(real_path, filer_window->real_path, len) == 0) - { - char s = filer_window->real_path[len]; - - if (s == '/' || s == '\0') - { - if (filer_update_dir(filer_window, FALSE) && - resize) - view_autosize(filer_window->view); - } - } - } - - parent = g_path_get_dirname(real_path); - refresh_dirs(parent); - g_free(parent); - - icons_may_update(real_path); -} - -/* Close all windows displaying 'path' or subdirectories of 'path' */ -void filer_close_recursive(const char *path) -{ - GList *next = all_filer_windows; - gchar *real; - int len; - - real = pathdup(path); - len = strlen(real); - - while (next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - - next = next->next; - - if (strncmp(real, filer_window->real_path, len) == 0) - { - char s = filer_window->real_path[len]; - - if (len == 1 || s == '/' || s == '\0') - gtk_widget_destroy(filer_window->window); - } - } -} - -/* Like minibuffer_show(), except that: - * - It returns FALSE (to be used from an idle callback) - * - It checks that the filer window still exists. - */ -static gboolean minibuffer_show_cb(FilerWindow *filer_window) -{ - if (filer_exists(filer_window)) - minibuffer_show(filer_window, MINI_PATH); - return FALSE; -} - -/* TRUE iff filer_window points to an existing FilerWindow - * structure. - */ -gboolean filer_exists(FilerWindow *filer_window) -{ - GList *next; - - for (next = all_filer_windows; next; next = next->next) - { - FilerWindow *fw = (FilerWindow *) next->data; - - if (fw == filer_window) - return TRUE; - } - - return FALSE; -} - -FilerWindow *filer_get_by_id(const char *id) -{ - return g_hash_table_lookup(window_with_id, id); -} - -void filer_set_id(FilerWindow *filer_window, const char *id) -{ - g_return_if_fail(filer_window != NULL); - - if (filer_window->window_id) - { - g_hash_table_remove(window_with_id, filer_window->window_id); - g_free(filer_window->window_id); - filer_window->window_id = NULL; - } - - if (id) - { - filer_window->window_id = g_strdup(id); - g_hash_table_insert(window_with_id, - filer_window->window_id, - filer_window); - } -} - -/* Make sure the window title is up-to-date */ -void filer_set_title(FilerWindow *filer_window) -{ - gchar *title = NULL; - guchar *flags = ""; - - if (filer_window->scanning || - filer_window->filter != FILER_SHOW_ALL || - filer_window->show_hidden || filer_window->show_thumbs) - { - if (o_short_flag_names.int_value) - { - const gchar *hidden = ""; - - switch(filer_window->filter) { - case FILER_SHOW_ALL: - hidden=filer_window->show_hidden? _("A") : ""; - break; - case FILER_SHOW_GLOB: hidden = _("G"); break; - default: break; - } - - flags = g_strconcat(" +", - filer_window->scanning ? _("S") : "", - hidden, - filer_window->show_thumbs ? _("T") : "", - NULL); - } - else - { - gchar *hidden = NULL; - - switch(filer_window->filter) { - case FILER_SHOW_ALL: - hidden = g_strdup(filer_window->show_hidden - ? _("All, ") : ""); - break; - case FILER_SHOW_GLOB: - hidden = g_strdup_printf(_("Glob (%s), "), - filer_window->filter_string); - break; - default: - hidden =g_strdup(""); - break; - } - flags = g_strconcat(" (", - filer_window->scanning ? _("Scanning, ") : "", - hidden, - filer_window->show_thumbs ? _("Thumbs, ") : "", - NULL); - flags[strlen(flags) - 2] = ')'; - g_free(hidden); - } - } - - if (not_local) - title = g_strconcat("//", our_host_name(), - filer_window->sym_path, flags, NULL); - - if (!title && home_dir_len > 1 && - strncmp(filer_window->sym_path, home_dir, home_dir_len) == 0) - { - guchar sep = filer_window->sym_path[home_dir_len]; - - if (sep == '\0' || sep == '/') - title = g_strconcat("~", - filer_window->sym_path + home_dir_len, - flags, - NULL); - } - - if (!title) - title = g_strconcat(filer_window->sym_path, flags, NULL); - - ensure_utf8(&title); - - if (filer_window->directory->error) - { - gchar *old = title; - title = g_strconcat(old, ": ", filer_window->directory->error, - NULL); - g_free(old); - } - - gtk_window_set_title(GTK_WINDOW(filer_window->window), title); - - g_free(title); - - if (flags[0] != '\0') - g_free(flags); -} - -/* Reconnect to the same directory (used when the Show Hidden option is - * toggled). This has the side-effect of updating the window title. - */ -void filer_detach_rescan(FilerWindow *filer_window) -{ - Directory *dir = filer_window->directory; - - g_object_ref(dir); - detach(filer_window); - filer_window->directory = dir; - attach(filer_window); -} - -/* Puts the filer window into target mode. When an item is chosen, - * fn(filer_window, iter, data) is called. 'reason' will be displayed - * on the toolbar while target mode is active. - * - * Use fn == NULL to cancel target mode. - */ -void filer_target_mode(FilerWindow *filer_window, - TargetFunc fn, - gpointer data, - const char *reason) -{ - TargetFunc old_fn = filer_window->target_cb; - - if (fn != old_fn) - gdk_window_set_cursor( - GTK_WIDGET(filer_window->view)->window, - fn ? crosshair : NULL); - - filer_window->target_cb = fn; - filer_window->target_data = data; - - if (filer_window->toolbar_text == NULL) - return; - - if (fn) - gtk_label_set_text( - GTK_LABEL(filer_window->toolbar_text), reason); - else if (o_toolbar_info.int_value) - { - if (old_fn) - toolbar_update_info(filer_window); - } - else - gtk_label_set_text(GTK_LABEL(filer_window->toolbar_text), ""); -} - -static void set_selection_state(FilerWindow *filer_window, gboolean normal) -{ - GtkStateType old_state = filer_window->selection_state; - - filer_window->selection_state = normal - ? GTK_STATE_SELECTED : GTK_STATE_INSENSITIVE; - - if (old_state != filer_window->selection_state - && view_count_selected(filer_window->view)) - gtk_widget_queue_draw(GTK_WIDGET(filer_window->view)); -} - -void filer_cancel_thumbnails(FilerWindow *filer_window) -{ - gtk_widget_hide(filer_window->thumb_bar); - - destroy_glist(&filer_window->thumb_queue); - filer_window->max_thumbs = 0; -} - -/* Generate the next thumb for this window. The window object is - * unref'd when there is nothing more to do. - * If the window no longer has a filer window, nothing is done. - */ -static gboolean filer_next_thumb_real(GObject *window) -{ - FilerWindow *filer_window; - gchar *path; - int done, total; - - filer_window = g_object_get_data(window, "filer_window"); - - if (!filer_window) - { - g_object_unref(window); - return FALSE; - } - - if (!filer_window->thumb_queue) - { - filer_cancel_thumbnails(filer_window); - g_object_unref(window); - return FALSE; - } - - total = filer_window->max_thumbs; - done = total - g_list_length(filer_window->thumb_queue); - - path = (gchar *) filer_window->thumb_queue->data; - - pixmap_background_thumb(path, (GFunc) filer_next_thumb, window); - - filer_window->thumb_queue = g_list_remove(filer_window->thumb_queue, - path); - g_free(path); - - gtk_progress_bar_set_fraction( - GTK_PROGRESS_BAR(filer_window->thumb_progress), - done / (float) total); - - return FALSE; -} - -/* path is the thumb just loaded, if any. - * window is unref'd (eventually). - */ -static void filer_next_thumb(GObject *window, const gchar *path) -{ - if (path) - dir_force_update_path(path); - - g_idle_add((GSourceFunc) filer_next_thumb_real, window); -} - -static void start_thumb_scanning(FilerWindow *filer_window) -{ - if (GTK_WIDGET_VISIBLE(filer_window->thumb_bar)) - return; /* Already scanning */ - - gtk_widget_show_all(filer_window->thumb_bar); - - g_object_ref(G_OBJECT(filer_window->window)); - filer_next_thumb(G_OBJECT(filer_window->window), NULL); -} - -/* Set this image to be loaded some time in the future */ -void filer_create_thumb(FilerWindow *filer_window, const gchar *path) -{ - if (g_list_find_custom(filer_window->thumb_queue, path, - (GCompareFunc) strcmp)) - return; - - if (!filer_window->thumb_queue) - filer_window->max_thumbs=0; - filer_window->max_thumbs++; - - filer_window->thumb_queue = g_list_append(filer_window->thumb_queue, - g_strdup(path)); - - if (filer_window->scanning) - return; /* Will start when scan ends */ - - start_thumb_scanning(filer_window); -} - -/* If thumbnail display is on, look through all the items in this directory - * and start creating or updating the thumbnails as needed. - */ -void filer_create_thumbs(FilerWindow *filer_window) -{ - DirItem *item; - ViewIter iter; - - if (!filer_window->show_thumbs) - return; - - view_get_iter(filer_window->view, &iter, 0); - - while ((item = iter.next(&iter))) - { - MaskedPixmap *pixmap; - const guchar *path; - gboolean found; - - if (item->base_type != TYPE_FILE) - continue; - - /*if (strcmp(item->mime_type->media_type, "image") != 0) - continue;*/ - - path = make_path(filer_window->real_path, item->leafname); - - pixmap = g_fscache_lookup_full(pixmap_cache, path, - FSCACHE_LOOKUP_ONLY_NEW, &found); - if (pixmap) - g_object_unref(pixmap); - - /* If we didn't get an image, it could be because: - * - * - We're loading the image now. found is TRUE, - * and we'll update the item later. - * - We tried to load the image and failed. found - * is TRUE. - * - We haven't tried loading the image. found is - * FALSE, and we start creating the thumb here. - */ - if (!found) - filer_create_thumb(filer_window, path); - } -} - -static void filer_options_changed(void) -{ - if (o_short_flag_names.has_changed) - { - GList *next; - - for (next = all_filer_windows; next; next = next->next) - { - FilerWindow *filer_window = (FilerWindow *) next->data; - - filer_set_title(filer_window); - } - } -} - -/* Append interesting information to this GString */ -void filer_add_tip_details(FilerWindow *filer_window, - GString *tip, DirItem *item) -{ - const guchar *fullpath = NULL; - - fullpath = make_path(filer_window->real_path, item->leafname); - - if (item->flags & ITEM_FLAG_SYMLINK) - { - char *target; - - target = readlink_dup(fullpath); - if (target) - { - ensure_utf8(&target); - - g_string_append(tip, _("Symbolic link to ")); - g_string_append(tip, target); - g_string_append_c(tip, '\n'); - g_free(target); - } - } - - if (item->flags & ITEM_FLAG_APPDIR) - { - XMLwrapper *info; - xmlNode *node; - - info = appinfo_get(fullpath, item); - if (info && ((node = xml_get_section(info, NULL, "Summary")))) - { - guchar *str; - str = xmlNodeListGetString(node->doc, - node->xmlChildrenNode, 1); - if (str) - { - g_string_append(tip, str); - g_string_append_c(tip, '\n'); - g_free(str); - } - } - if (info) - g_object_unref(info); - } - else if (item->mime_type == application_x_desktop) - { - char *summary; - summary = tip_from_desktop_file(fullpath); - if (summary) - { - g_string_append(tip, summary); - g_string_append_c(tip, '\n'); - g_free(summary); - } - } - - if (!g_utf8_validate(item->leafname, -1, NULL)) - g_string_append(tip, - _("This filename is not valid UTF-8. " - "You should rename it.\n")); -} - -/* Return the selection as a text/uri-list. - * g_free() the result. - */ -static guchar *filer_create_uri_list(FilerWindow *filer_window) -{ - GString *string; - GString *leader; - ViewIter iter; - DirItem *item; - guchar *retval; - - g_return_val_if_fail(filer_window != NULL, NULL); - - string = g_string_new(NULL); - - leader = g_string_new(filer_window->sym_path); - if (leader->str[leader->len - 1] != '/') - g_string_append_c(leader, '/'); - - view_get_iter(filer_window->view, &iter, VIEW_ITER_SELECTED); - while ((item = iter.next(&iter))) - { - EscapedPath *uri; - char *path; - - path = g_strconcat(leader->str, item->leafname, NULL); - uri = encode_path_as_uri(path); - g_string_append(string, (char *) uri); - g_string_append(string, "\r\n"); - g_free(path); - g_free(uri); - } - - g_string_free(leader, TRUE); - retval = string->str; - g_string_free(string, FALSE); - - return retval; -} - -void filer_perform_action(FilerWindow *filer_window, GdkEventButton *event) -{ - BindAction action; - ViewIface *view = filer_window->view; - DirItem *item = NULL; - gboolean press = event->type == GDK_BUTTON_PRESS; - ViewIter iter; - OpenFlags flags = 0; - - if (event->button > 3) - return; - - view_get_iter_at_point(view, &iter, event->window, event->x, event->y); - item = iter.peek(&iter); - - if (item && view_cursor_visible(view)) - view_cursor_to_iter(view, &iter); - - if (item && event->button == 1 && - view_get_selected(view, &iter) && - filer_window->selection_state == GTK_STATE_INSENSITIVE) - { - /* Possibly a really slow DnD operation? */ - filer_window->temp_item_selected = FALSE; - - filer_selection_changed(filer_window, event->time); - return; - } - - if (filer_window->target_cb) - { - dnd_motion_ungrab(); - if (item && press && event->button == 1) - filer_window->target_cb(filer_window, &iter, - filer_window->target_data); - - filer_target_mode(filer_window, NULL, NULL, NULL); - - return; - } - - if (!o_single_click.int_value) - { - /* Make sure both parts of a double-click fall on - * the same file. - */ - static guchar *first_click = NULL; - static guchar *second_click = NULL; - - if (event->type == GDK_BUTTON_PRESS) - { - g_free(first_click); - first_click = second_click; - - if (item) - second_click = g_strdup(item->leafname); - else - second_click = NULL; - } - - if (event->type == GDK_2BUTTON_PRESS) - { - if (first_click && second_click && - strcmp(first_click, second_click) != 0) - return; - if ((first_click || second_click) && - !(first_click && second_click)) - return; - } - } - - action = bind_lookup_bev( - item ? BIND_DIRECTORY_ICON : BIND_DIRECTORY, - event); - - switch (action) - { - case ACT_CLEAR_SELECTION: - view_clear_selection(view); - break; - case ACT_TOGGLE_SELECTED: - view_set_selected(view, &iter, - !view_get_selected(view, &iter)); - break; - case ACT_SELECT_EXCL: - view_select_only(view, &iter); - break; - case ACT_EDIT_ITEM: - flags |= OPEN_SHIFT; - /* (no break) */ - case ACT_OPEN_ITEM: - if (event->button != 1 || event->state & GDK_MOD1_MASK) - flags |= OPEN_CLOSE_WINDOW; - else - flags |= OPEN_SAME_WINDOW; - if (o_new_button_1.int_value) - flags ^= OPEN_SAME_WINDOW; - if (event->type == GDK_2BUTTON_PRESS) - view_set_selected(view, &iter, FALSE); - dnd_motion_ungrab(); - - filer_openitem(filer_window, &iter, flags); - break; - case ACT_POPUP_MENU: - dnd_motion_ungrab(); - tooltip_show(NULL); - show_filer_menu(filer_window, - (GdkEvent *) event, &iter); - break; - case ACT_PRIME_AND_SELECT: - if (item && !view_get_selected(view, &iter)) - view_select_only(view, &iter); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_AND_TOGGLE: - view_set_selected(view, &iter, - !view_get_selected(view, &iter)); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_FOR_DND: - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_IGNORE: - if (press && event->button < 4) - { - if (item) - view_wink_item(view, &iter); - dnd_motion_start(MOTION_NONE); - } - break; - case ACT_LASSO_CLEAR: - view_clear_selection(view); - /* (no break) */ - case ACT_LASSO_MODIFY: - view_start_lasso_box(view, event); - break; - case ACT_RESIZE: - view_autosize(filer_window->view); - break; - default: - g_warning("Unsupported action : %d\n", action); - break; - } -} - -/* It's time to make the tooltip appear. If we're not over the item any - * more, or the item doesn't need a tooltip, do nothing. - */ -static gboolean tooltip_activate(GtkWidget *window) -{ - FilerWindow *filer_window; - ViewIface *view; - ViewIter iter; - gint x, y; - DirItem *item = NULL; - GString *tip = NULL; - - g_return_val_if_fail(tip_item != NULL, 0); - - filer_window = g_object_get_data(G_OBJECT(window), "filer_window"); - - if (!motion_window || !filer_window) - return FALSE; /* Window has been destroyed */ - - view = filer_window->view; - - tooltip_show(NULL); - - gdk_window_get_pointer(motion_window, &x, &y, NULL); - view_get_iter_at_point(view, &iter, motion_window, x, y); - - item = iter.peek(&iter); - if (item != tip_item) - return FALSE; /* Not still under the pointer */ - - /* OK, the filer window still exists and the pointer is still - * over the same item. Do we need to show a tip? - */ - - tip = g_string_new(NULL); - - view_extend_tip(filer_window->view, &iter, tip); - - filer_add_tip_details(filer_window, tip, tip_item); - - if (tip->len > 1) - { - g_string_truncate(tip, tip->len - 1); - - tooltip_show(tip->str); - } - - g_string_free(tip, TRUE); - - return FALSE; -} - -/* Motion detected on the View widget */ -gint filer_motion_notify(FilerWindow *filer_window, GdkEventMotion *event) -{ - ViewIface *view = filer_window->view; - ViewIter iter; - DirItem *item; - - view_get_iter_at_point(view, &iter, event->window, event->x, event->y); - item = iter.peek(&iter); - - if (item) - { - if (item != tip_item) - { - tooltip_show(NULL); - - tip_item = item; - motion_window = event->window; - tooltip_prime((GtkFunction) tooltip_activate, - G_OBJECT(filer_window->window)); - } - } - else - { - tooltip_show(NULL); - tip_item = NULL; - } - - if (motion_state != MOTION_READY_FOR_DND) - return FALSE; - - if (!dnd_motion_moved(event)) - return FALSE; - - view_get_iter_at_point(view, &iter, - event->window, - event->x - (event->x_root - drag_start_x), - event->y - (event->y_root - drag_start_y)); - item = iter.peek(&iter); - if (!item) - return FALSE; - - view_wink_item(view, NULL); - - if (!view_get_selected(view, &iter)) - { - /* If we drag an unselected item, select it only. - * Unless we're also holding down Ctrl, in which case - * it's probably unselected only because we - * mis-interpreted the click as toggle-selected. - */ - if ((event->state & GDK_BUTTON1_MASK) && - !(event->state & GDK_CONTROL_MASK)) - { - /* Select just this one */ - filer_window->temp_item_selected = TRUE; - view_select_only(view, &iter); - } - else - { - if (view_count_selected(view) == 0) - filer_window->temp_item_selected = TRUE; - view_set_selected(view, &iter, TRUE); - } - } - - g_return_val_if_fail(view_count_selected(view) > 0, TRUE); - - if (view_count_selected(view) == 1) - { - if (item->base_type == TYPE_UNKNOWN) - item = dir_update_item(filer_window->directory, - item->leafname); - - if (!item) - { - report_error(_("Item no longer exists!")); - return FALSE; - } - - drag_one_item(GTK_WIDGET(view), event, - make_path(filer_window->sym_path, item->leafname), - item, di_image(item)); -#if 0 - /* XXX: Use thumbnail */ - item, view ? view->image : NULL); -#endif - } - else - { - guchar *uris; - - uris = filer_create_uri_list(filer_window); - drag_selection(GTK_WIDGET(view), event, uris); - g_free(uris); - } - - return FALSE; -} - -static void drag_end(GtkWidget *widget, GdkDragContext *context, - FilerWindow *filer_window) -{ - filer_set_autoscroll(filer_window, FALSE); - - if (filer_window->temp_item_selected) - { - view_clear_selection(filer_window->view); - filer_window->temp_item_selected = FALSE; - } -} - -/* Remove highlights */ -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - FilerWindow *filer_window) -{ - dnd_spring_abort(); -} - -/* Called during the drag when the mouse is in a widget registered - * as a drop target. Returns TRUE if we can accept the drop. - */ -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - FilerWindow *filer_window) -{ - DirItem *item; - ViewIface *view = filer_window->view; - ViewIter iter; - GdkDragAction action = context->suggested_action; - const guchar *new_path = NULL; - const char *type = NULL; - gboolean retval = FALSE; - gboolean same_window; - - if ((context->actions & GDK_ACTION_ASK) && o_dnd_left_menu.int_value) - { - guint state; - gdk_window_get_pointer(NULL, NULL, NULL, &state); - if (state & GDK_BUTTON1_MASK) - action = GDK_ACTION_ASK; - } - - same_window = gtk_drag_get_source_widget(context) == widget; - - filer_set_autoscroll(filer_window, TRUE); - - if (filer_window->view_type == VIEW_TYPE_DETAILS) - { - GdkWindow *bin; - int bin_y; - /* Correct for position of bin window */ - bin = gtk_tree_view_get_bin_window(GTK_TREE_VIEW(view)); - gdk_window_get_position(bin, NULL, &bin_y); - y -= bin_y; - } - - if (o_dnd_drag_to_icons.int_value) - { - view_get_iter_at_point(view, &iter, widget->window, x, y); - item = iter.peek(&iter); - } - else - item = NULL; - - if (item && same_window && view_get_selected(view, &iter)) - type = NULL; - else - type = dnd_motion_item(context, &item); - - if (!type) - item = NULL; - - /* Don't allow drops to non-writeable directories. BUT, still - * allow drops on non-writeable SUBdirectories so that we can - * do the spring-open thing. - */ - if (item && type == drop_dest_dir && - !(item->flags & ITEM_FLAG_APPDIR)) - { - dnd_spring_load(context, filer_window); - } - else - dnd_spring_abort(); - - if (item) - view_cursor_to_iter(view, &iter); - else - { - view_cursor_to_iter(view, NULL); - - /* Disallow background drops within a single window */ - if (type && same_window) - type = NULL; - } - - if (type) - { - if (item) - new_path = make_path(filer_window->sym_path, - item->leafname); - else - new_path = filer_window->sym_path; - } - - /* Don't ask about dragging to an application! */ - if (type == drop_dest_prog && action == GDK_ACTION_ASK) - action = GDK_ACTION_COPY; - - g_dataset_set_data(context, "drop_dest_type", (gpointer) type); - if (type) - { - gdk_drag_status(context, action, time); - g_dataset_set_data_full(context, "drop_dest_path", - g_strdup(new_path), g_free); - retval = TRUE; - } - - return retval; -} - -static gboolean as_timeout(FilerWindow *filer_window) -{ - gboolean retval; - - retval = view_auto_scroll_callback(filer_window->view); - - if (!retval) - filer_window->auto_scroll = -1; - - return retval; -} - -/* When autoscroll is on, a timer keeps track of the pointer position. - * While it's near the top or bottom of the window, the window scrolls. - * - * If the mouse buttons are released, the pointer leaves the window, or - * a drag-and-drop operation finishes, auto_scroll is turned off. - */ -void filer_set_autoscroll(FilerWindow *filer_window, gboolean auto_scroll) -{ - g_return_if_fail(filer_window != NULL); - - if (auto_scroll) - { - if (filer_window->auto_scroll != -1) - return; /* Already on! */ - - filer_window->auto_scroll = g_timeout_add(50, - (GSourceFunc) as_timeout, - filer_window); - } - else - { - if (filer_window->auto_scroll == -1) - return; /* Already off! */ - - g_source_remove(filer_window->auto_scroll); - filer_window->auto_scroll = -1; - } -} - -#define ZERO_MNT "/uri/0install" - -static void refresh_done(FilerWindow *filer_window) -{ - if (filer_exists(filer_window)) - filer_update_dir(filer_window, TRUE); -} - -void filer_refresh(FilerWindow *filer_window) -{ - if (!strncmp(ZERO_MNT "/", filer_window->real_path, sizeof(ZERO_MNT))) - { - /* Try to run 0refresh */ - gint pid; - gchar *argv[] = {"0refresh", NULL, NULL}; - const char *host = filer_window->real_path + sizeof(ZERO_MNT); - const char *slash; - - slash = strchr(host, '/'); - if (slash) - argv[1] = g_strndup(host, slash - host); - else - argv[1] = g_strdup(host); - pid = rox_spawn(filer_window->real_path, (const char **) argv); - g_free(argv[1]); - if (pid) - on_child_death(pid, (CallbackFn) refresh_done, - filer_window); - } - - full_refresh(); -} - -static inline gboolean is_hidden(const char *dir, DirItem *item) -{ - /* If the leaf name starts with '.' then the item is hidden */ - if(item->leafname[0]=='.') - return TRUE; - - /*** Test disabled for now. The flags aren't set on the first pass... - */ -#if 0 - /* Most files will not have extended attributes, so this should - * be quick. */ - if(!o_xattr_ignore.int_value && (item->flags & ITEM_FLAG_HAS_XATTR)) { - gchar *path, *val; - int len; - gboolean hidden=FALSE; - - path=g_build_filename(dir, item->leafname, NULL); - val=xattr_get(path, XATTR_HIDDEN, &len); - if(val) { - hidden=atoi(val) || (strcmp(val, "true")==0); - g_free(val); - } - g_free(path); - - if(hidden) - return TRUE; - } -#endif - - /* Otherwise not hidden */ - return FALSE; -} - -gboolean filer_match_filter(FilerWindow *filer_window, DirItem *item) -{ - g_return_val_if_fail(item != NULL, FALSE); - - if(is_hidden(filer_window->real_path, item) && - (!filer_window->temp_show_hidden && !filer_window->show_hidden)) - return FALSE; - - switch(filer_window->filter) { - case FILER_SHOW_GLOB: - return fnmatch(filer_window->filter_string, - item->leafname, 0)==0 || - (item->base_type==TYPE_DIRECTORY && - !filer_window->filter_directories); - - case FILER_SHOW_ALL: - default: - break; - } - return TRUE; -} - -/* Provided to hide the implementation */ -void filer_set_hidden(FilerWindow *filer_window, gboolean hidden) -{ - filer_window->show_hidden=hidden; -} - -/* Provided to hide the implementation */ -void filer_set_filter_directories(FilerWindow *filer_window, - gboolean filter_directories) -{ - filer_window->filter_directories=filter_directories; -} - -/* Set the filter type. Returns TRUE if the type has changed - * (must call filer_detach_rescan). - */ -gboolean filer_set_filter(FilerWindow *filer_window, FilterType type, - const gchar *filter_string) -{ - /* Is this new filter the same as the old one? */ - if (filer_window->filter == type) - { - switch(filer_window->filter) - { - case FILER_SHOW_ALL: - return FALSE; - case FILER_SHOW_GLOB: - if (strcmp(filer_window->filter_string, - filter_string) == 0) - return FALSE; - break; - } - } - - /* Clean up old filter */ - if (filer_window->filter_string) - { - g_free(filer_window->filter_string); - filer_window->filter_string = NULL; - } - /* Also clean up compiled regexp when implemented */ - - filer_window->filter = type; - - switch(type) - { - case FILER_SHOW_ALL: - /* No extra work */ - break; - - case FILER_SHOW_GLOB: - filer_window->filter_string = g_strdup(filter_string); - break; - - default: - /* oops */ - filer_window->filter = FILER_SHOW_ALL; - g_warning("Impossible: filter type %d", type); - break; - } - - return TRUE; -} - -/* Setting stuff */ -static Settings *settings_new(const char *path) -{ - Settings *set; - - set=g_new(Settings, 1); - memset(set, 0, sizeof(Settings)); - if(path) - set->path=g_strdup(path); - - return set; -} - -static void settings_free(Settings *set) -{ - g_free(set->path); - if(set->filter) - g_free(set->filter); - g_free(set); -} - -static void store_settings(Settings *set) -{ - Settings *old; - - old=g_hash_table_lookup(settings_table, set->path); - if(old) - { - g_hash_table_remove(settings_table, set->path); - settings_free(old); - } - - g_hash_table_insert(settings_table, set->path, set); -} - -/* TODO: use symbolic names in the XML file where possible */ -static void load_from_node(Settings *set, xmlDocPtr doc, xmlNodePtr node) -{ - xmlChar *str=NULL; - - str=xmlNodeListGetString(doc, node->xmlChildrenNode, 1); - - if(strcmp(node->name, "X") == 0) { - set->x=atoi(str); - set->flags|=SET_POSITION; - } else if(strcmp(node->name, "Y") == 0) { - set->y=atoi(str); - set->flags|=SET_POSITION; - } else if(strcmp(node->name, "Width") == 0) { - set->width=atoi(str); - set->flags|=SET_SIZE; - } else if(strcmp(node->name, "Height") == 0) { - set->height=atoi(str); - set->flags|=SET_SIZE; - } else if(strcmp(node->name, "ShowHidden") == 0) { - set->show_hidden=atoi(str); - set->flags|=SET_HIDDEN; - } else if(strcmp(node->name, "ViewType") == 0) { - set->view_type=atoi(str); - set->flags|=SET_DETAILS; - } else if(strcmp(node->name, "DetailsType") == 0) { - set->details_type=atoi(str); - set->flags|=SET_DETAILS; - } else if(strcmp(node->name, "SortType") == 0) { - set->sort_type=atoi(str); - set->flags|=SET_SORT; - } else if(strcmp(node->name, "SortOrder") == 0) { - set->sort_order=atoi(str); - set->flags|=SET_SORT; - } else if(strcmp(node->name, "DisplayStyle") == 0) { - set->display_style=atoi(str); - set->flags|=SET_STYLE; - } else if(strcmp(node->name, "ShowThumbs") == 0) { - set->show_thumbs=atoi(str); - set->flags|=SET_THUMBS; - } else if(strcmp(node->name, "FilterType") == 0) { - set->filter_type=atoi(str); - set->flags|=SET_FILTER; - } else if(strcmp(node->name, "Filter") == 0) { - set->filter=g_strdup(str); - set->flags|=SET_FILTER; - } else if(strcmp(node->name, "FilterDirectories") == 0) { - set->filter_directories=atoi(str); - set->flags|=SET_FILTER; - } - - if(str) - xmlFree(str); -} - -static void load_learnt_mounts(void) -{ - gchar *path; - gchar *buffer = NULL; - gsize len = 0; - gchar **entries; - int n; - - unmount_prompt_actions = g_hash_table_new_full(g_str_hash, - g_str_equal, g_free, NULL); - - path = choices_find_xdg_path_load("Mounts", PROJECT, SITE); - if (!path) - return; - if (!g_file_get_contents(path, &buffer, &len, NULL)) - { - g_free(path); - return; - } - g_free(path); - if (len) - { - buffer[len - 1] = 0; - } - else - { - g_free(buffer); - return; - } - - entries = g_strsplit(buffer, "\n", 0); - g_free(buffer); - for (n = 0; entries[n]; ++n) - { - gchar *p; - buffer = entries[n]; - p = strrchr(buffer, ' '); - if (p && p > buffer) { - *p = 0; - g_hash_table_insert(unmount_prompt_actions, g_strdup(buffer), - GINT_TO_POINTER(atoi(p+1))); - } - } - g_strfreev(entries); -} - -static void save_mount(char *path, gpointer value, FILE **pfp) -{ - int v; - - if (!*pfp) - { - gchar *spath = choices_find_xdg_path_save("Mounts", - PROJECT, SITE, TRUE); - - if (!spath) - return; - *pfp = fopen(spath, "w"); - g_free(spath); - if (!*pfp) - return; - } - - if ((v = GPOINTER_TO_INT(value)) != UNMOUNT_PROMPT_ASK) - fprintf(*pfp, "%s %d\n", path, v); -} - -static void save_learnt_mounts(void) -{ - FILE *fp = NULL; - - /* A GHashTableIter would be easier, but it's a relatively new feature */ - if (unmount_prompt_actions) - g_hash_table_foreach(unmount_prompt_actions, (GHFunc) save_mount, &fp); - if (fp) - fclose(fp); -} - -static void load_settings(void) -{ - gchar *path; - XMLwrapper *settings_doc=NULL; - - path=choices_find_xdg_path_load("Settings.xml", PROJECT, SITE); - if(path) { - settings_doc=xml_new(path); - g_free(path); - } - - if(!settings_table) - settings_table=g_hash_table_new(g_str_hash, g_str_equal); - - if(settings_doc) { - xmlNodePtr node, subnode; - - node = xmlDocGetRootElement(settings_doc->doc); - - for (node = node->xmlChildrenNode; node; node = node->next) - { - Settings *set; - xmlChar *path; - - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "FilerWindow") != 0) - continue; - - path=xmlGetProp(node, "path"); - set=settings_new(path); - xmlFree(path); - - for (subnode=node->xmlChildrenNode; subnode; - subnode=subnode->next) { - - if (subnode->type != XML_ELEMENT_NODE) - continue; - load_from_node(set, settings_doc->doc, - subnode); - } - - store_settings(set); - } - g_object_unref(settings_doc); - } -} - -static void add_nodes(gpointer key, gpointer value, gpointer data) -{ - xmlNodePtr node=(xmlNodePtr) data; - xmlNodePtr sub; - Settings *set=(Settings *) value; - char *tmp; - - sub=xmlNewChild(node, NULL, "FilerWindow", NULL); - - xmlSetProp(sub, "path", set->path); - - if(set->flags & SET_POSITION) { - tmp=g_strdup_printf("%d", set->x); - xmlNewChild(sub, NULL, "X", tmp); - g_free(tmp); - tmp=g_strdup_printf("%d", set->y); - xmlNewChild(sub, NULL, "Y", tmp); - g_free(tmp); - } - if(set->flags & SET_SIZE) { - tmp=g_strdup_printf("%d", set->width); - xmlNewChild(sub, NULL, "Width", tmp); - g_free(tmp); - tmp=g_strdup_printf("%d", set->height); - xmlNewChild(sub, NULL, "Height", tmp); - g_free(tmp); - } - if(set->flags & SET_HIDDEN) { - tmp=g_strdup_printf("%d", set->show_hidden); - xmlNewChild(sub, NULL, "ShowHidden", tmp); - g_free(tmp); - } - if(set->flags & SET_STYLE) { - tmp=g_strdup_printf("%d", set->display_style); - xmlNewChild(sub, NULL, "DisplayStyle", tmp); - g_free(tmp); - } - if(set->flags & SET_SORT) { - tmp=g_strdup_printf("%d", set->sort_type); - xmlNewChild(sub, NULL, "SortType", tmp); - g_free(tmp); - tmp=g_strdup_printf("%d", set->sort_order); - xmlNewChild(sub, NULL, "SortOrder", tmp); - g_free(tmp); - } - if(set->flags & SET_DETAILS) { - tmp=g_strdup_printf("%d", set->view_type); - xmlNewChild(sub, NULL, "ViewType", tmp); - g_free(tmp); - tmp=g_strdup_printf("%d", set->details_type); - xmlNewChild(sub, NULL, "DetailsType", tmp); - g_free(tmp); - } - if(set->flags & SET_STYLE) { - tmp=g_strdup_printf("%d", set->show_thumbs); - xmlNewChild(sub, NULL, "ShowThumbs", tmp); - g_free(tmp); - } - if(set->flags & SET_FILTER) { - tmp=g_strdup_printf("%d", set->filter_type); - xmlNewChild(sub, NULL, "FilterType", tmp); - g_free(tmp); - if(set->filter && set->filter[0]) - xmlNewChild(sub, NULL, "Filter", set->filter); - tmp=g_strdup_printf("%d", set->filter_directories); - xmlNewChild(sub, NULL, "FilterDirectories", tmp); - } -} - -static void save_settings(void) -{ - gchar *path; - - path=choices_find_xdg_path_save("Settings.xml", PROJECT, SITE, TRUE); - if(path) { - xmlDocPtr doc = xmlNewDoc("1.0"); - xmlDocSetRootElement(doc, xmlNewDocNode(doc, NULL, - "Settings", NULL)); - - g_hash_table_foreach(settings_table, add_nodes, - xmlDocGetRootElement(doc)); - - save_xml_file(doc, path); - - g_free(path); - xmlFreeDoc(doc); - } - -} - -static void check_settings(FilerWindow *filer_window) -{ - Settings *set; - - set=(Settings *) g_hash_table_lookup(settings_table, - filer_window->sym_path); - - if(set) { - if(set->flags & SET_POSITION) - gtk_window_move(GTK_WINDOW(filer_window->window), - set->x, set->y); - if(set->flags & SET_SIZE) - filer_window_set_size(filer_window, set->width, - set->height); - if(set->flags & SET_HIDDEN) - filer_set_hidden(filer_window, set->show_hidden); - - if(set->flags & (SET_STYLE|SET_DETAILS)) { - DisplayStyle style=filer_window->display_style; - DetailsType details=filer_window->details_type; - - if(set->flags & SET_STYLE) - style=set->display_style; - - if(set->flags & SET_DETAILS) { - details=set->details_type; - - filer_set_view_type(filer_window, - set->view_type); - } - - display_set_layout(filer_window, style, - details, FALSE); - } - - if(set->flags & SET_SORT) - display_set_sort_type(filer_window, - set->sort_type, - set->sort_order); - - if(set->flags & SET_THUMBS) - display_set_thumbs(filer_window, - set->show_thumbs); - - if(set->flags & SET_FILTER) - { - display_set_filter(filer_window, - set->filter_type, - set->filter); - display_set_filter_directories(filer_window, - set->filter_directories); - } - } - -} - -typedef struct settings_window { - GtkWidget *window; - - GtkWidget *pos, *size, *hidden, *style, *sort, *details, - *thumbs, *filter; - - Settings *set; -} SettingsWindow; - - -static void settings_response(GtkWidget *window, gint response, - SettingsWindow *set_win) -{ - if(response==GTK_RESPONSE_OK) { - gint flags=0; - - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->pos))) - flags|=SET_POSITION; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->size))) - flags|=SET_SIZE; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->hidden))) - flags|=SET_HIDDEN; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->style))) - flags|=SET_STYLE; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->sort))) - flags|=SET_SORT; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->details))) - flags|=SET_DETAILS; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->thumbs))) - flags|=SET_THUMBS; - if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(set_win->filter))) - flags|=SET_FILTER; - - set_win->set->flags=flags; - store_settings(set_win->set); - save_settings(); - } - - gtk_widget_destroy(window); -} - -void filer_save_settings(FilerWindow *fwin) -{ - SettingsWindow *set_win; - GtkWidget *vbox, *frame; - GtkWidget *path, *lbl; - gint x, y; - - Settings *set=settings_new(fwin->sym_path); - - gtk_window_get_position(GTK_WINDOW(fwin->window),&x, &y); - set->flags|=SET_POSITION; - set->x=x; - set->y=y; - - gtk_window_get_size(GTK_WINDOW(fwin->window),&x, &y); - set->flags|=SET_SIZE; - set->width=x; - set->height=y; - - set->flags|=SET_HIDDEN; - set->show_hidden=fwin->show_hidden; - - set->flags|=SET_STYLE; - set->display_style=fwin->display_style; - - set->flags|=SET_SORT; - set->sort_type=fwin->sort_type; - set->sort_order=fwin->sort_order; - - set->flags|=SET_DETAILS; - set->view_type=fwin->view_type; - set->details_type=fwin->details_type; - - set->flags|=SET_THUMBS; - set->show_thumbs=fwin->show_thumbs; - - set->flags|=SET_FILTER; - set->filter_type=fwin->filter; - if(fwin->filter_string) - set->filter=g_strdup(fwin->filter_string); - set->filter_directories=fwin->filter_directories; - - /* Store other parameters - */ - set_win=g_new(SettingsWindow, 1); - - set_win->window=gtk_dialog_new(); - number_of_windows++; - - gtk_dialog_add_button(GTK_DIALOG(set_win->window), - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - gtk_dialog_add_button(GTK_DIALOG(set_win->window), - GTK_STOCK_OK, GTK_RESPONSE_OK); - - g_signal_connect(set_win->window, "destroy", - G_CALLBACK(one_less_window), NULL); - g_signal_connect_swapped(set_win->window, "destroy", - G_CALLBACK(g_free), set_win); - - gtk_window_set_title(GTK_WINDOW(set_win->window), - _("Select display properties to save")); - - vbox=GTK_DIALOG(set_win->window)->vbox; - - lbl=gtk_label_new(_("Save display settings for directory")); - gtk_label_set_use_markup(GTK_LABEL(lbl), TRUE); - gtk_box_pack_start(GTK_BOX(vbox), lbl, FALSE, FALSE, 2); - - path=gtk_label_new(set->path); - gtk_box_pack_start(GTK_BOX(vbox), path, FALSE, FALSE, 2); - - frame=gtk_frame_new(_("Select settings to save")); - gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 2); - - /*Make new vbox to go in the frame */ - vbox=gtk_vbox_new(FALSE, 2); - gtk_container_add(GTK_CONTAINER(frame), vbox); - - set_win->pos=gtk_check_button_new_with_label(_("Position")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->pos, FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->pos), - set->flags & SET_POSITION); - - set_win->size=gtk_check_button_new_with_label(_("Size")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->size, FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->size), - set->flags & SET_SIZE); - - set_win->hidden=gtk_check_button_new_with_label(_("Show hidden")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->hidden, - FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->hidden), - set->flags & SET_HIDDEN); - - set_win->style=gtk_check_button_new_with_label(_("Display style")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->style, - FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->style), - set->flags & SET_STYLE); - - set_win->sort=gtk_check_button_new_with_label(_("Sort type and order")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->sort, FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->sort), - set->flags & SET_SORT); - - set_win->details=gtk_check_button_new_with_label(_("Details")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->details, FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->details), - set->flags & SET_DETAILS); - - set_win->thumbs=gtk_check_button_new_with_label(_("Thumbnails")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->thumbs, - FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->thumbs), - set->flags & SET_THUMBS); - - set_win->filter=gtk_check_button_new_with_label(_("Filter")); - gtk_box_pack_start(GTK_BOX(vbox), set_win->filter, - FALSE, FALSE, 2); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(set_win->filter), - set->flags & SET_FILTER); - - set_win->set=set; - g_signal_connect(set_win->window, "response", - G_CALLBACK(settings_response), set_win); - - gtk_widget_show_all(set_win->window); -} - -static char *tip_from_desktop_file(const char *full_path) -{ - GError *error = NULL; - char *comment = NULL; - - comment = get_value_from_desktop_file(full_path, - "Desktop Entry", "Comment", &error); - if (error) - { - delayed_error("Failed to parse .desktop file '%s':\n%s", - full_path, error->message); - goto err; - } - -err: - if (error != NULL) - g_error_free(error); - - return comment; -} - -UnmountPrompt filer_get_unmount_action(const char *path) -{ - return GPOINTER_TO_INT(g_hash_table_lookup(unmount_prompt_actions, path)); -} - -void filer_set_unmount_action(const char *path, UnmountPrompt action) -{ - g_hash_table_insert(unmount_prompt_actions, g_strdup(path), - GINT_TO_POINTER(action)); - save_learnt_mounts(); -} diff --git a/ROX-Filer/src/filer.h b/ROX-Filer/src/filer.h deleted file mode 100644 index 597d69c5..00000000 --- a/ROX-Filer/src/filer.h +++ /dev/null @@ -1,182 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _FILER_H -#define _FILER_H - -#include - -enum { - RESIZE_STYLE = 0, - RESIZE_ALWAYS = 1, - RESIZE_NEVER = 2, -}; - -typedef enum -{ - OPEN_SHIFT = 0x01, /* Do ShiftOpen */ - OPEN_SAME_WINDOW = 0x02, /* Directories open in same window */ - OPEN_CLOSE_WINDOW = 0x04, /* Opening files closes the window */ - OPEN_FROM_MINI = 0x08, /* Non-dir => close minibuffer */ -} OpenFlags; - -typedef enum -{ - FILER_NEEDS_RESCAN = 0x01, /* Call may_rescan after scanning */ - FILER_UPDATING = 0x02, /* (scanning) items may already exist */ - FILER_CREATE_THUMBS = 0x04, /* Create thumbs when scan ends */ -} FilerFlags; - -/* Numbers used in options */ -typedef enum -{ - VIEW_TYPE_COLLECTION = 0, /* Icons view */ - VIEW_TYPE_DETAILS = 1 /* TreeView details list */ -} ViewType; - -/* Filter types */ -typedef enum -{ - FILER_SHOW_ALL, /* Show all files, modified by show_hidden */ - FILER_SHOW_GLOB, /* Show files that match a glob pattern */ -} FilterType; - -/* What to do when all a mount point's windows are closed */ -typedef enum { - UNMOUNT_PROMPT_ASK = GPOINTER_TO_INT(NULL), - UNMOUNT_PROMPT_NO_CHANGE, - UNMOUNT_PROMPT_UNMOUNT, - UNMOUNT_PROMPT_EJECT -} UnmountPrompt; - -/* iter's next method has just returned the clicked item... */ -typedef void (*TargetFunc)(FilerWindow *filer_window, - ViewIter *iter, - gpointer data); - -struct _FilerWindow -{ - GtkWidget *window; - GtkBox *toplevel_vbox, *view_hbox; - gboolean scanning; /* State of the 'scanning' indicator */ - gchar *sym_path; /* Path the user sees */ - gchar *real_path; /* realpath(sym_path) */ - ViewIface *view; - ViewType view_type; - gboolean temp_item_selected; - gboolean show_hidden; - gboolean filter_directories; - FilerFlags flags; - SortType sort_type; - GtkSortType sort_order; - - DetailsType details_type; - DisplayStyle display_style; - DisplayStyle display_style_wanted; - - Directory *directory; - - gboolean had_cursor; /* (before changing directory) */ - char *auto_select; /* If it we find while scanning */ - - GtkWidget *message; /* The 'Running as ...' message */ - - GtkWidget *minibuffer_area; /* The hbox to show/hide */ - GtkWidget *minibuffer_label; /* The operation name */ - GtkWidget *minibuffer; /* The text entry */ - int mini_cursor_base; /* XXX */ - MiniType mini_type; - - FilterType filter; - gchar *filter_string; /* Glob or regexp pattern */ - gchar *regexp; /* Compiled regexp pattern */ - /* TRUE if hidden files are shown because the minibuffer leafname - * starts with a dot. - */ - gboolean temp_show_hidden; - - TargetFunc target_cb; - gpointer target_data; - - GtkWidget *toolbar; - GtkWidget *toolbar_text; - GtkWidget *scrollbar; - - gint open_timeout; /* Will resize and show window... */ - - GtkStateType selection_state; /* for drawing selection */ - - gboolean show_thumbs; - GList *thumb_queue; /* paths to thumbnail */ - GtkWidget *thumb_bar, *thumb_progress; - int max_thumbs; /* total for this batch */ - - gint auto_scroll; /* Timer */ - - char *window_id; /* For remote control */ -}; - -extern FilerWindow *window_with_focus; -extern GList *all_filer_windows; -extern GHashTable *child_to_filer; -extern Option o_filer_auto_resize, o_unique_filer_windows; -extern Option o_filer_size_limit; - -/* Prototypes */ -void filer_init(void); -FilerWindow *filer_opendir(const char *path, FilerWindow *src_win, const gchar *wm_class); -gboolean filer_update_dir(FilerWindow *filer_window, gboolean warning); -void filer_update_all(void); -DirItem *filer_selected_item(FilerWindow *filer_window); -void change_to_parent(FilerWindow *filer_window); -void full_refresh(void); -void filer_openitem(FilerWindow *filer_window, ViewIter *iter, OpenFlags flags); -void filer_check_mounted(const char *real_path); -void filer_close_recursive(const char *path); -void filer_change_to(FilerWindow *filer_window, - const char *path, const char *from); -gboolean filer_exists(FilerWindow *filer_window); -FilerWindow *filer_get_by_id(const char *id); -void filer_set_id(FilerWindow *, const char *id); -void filer_open_parent(FilerWindow *filer_window); -void filer_detach_rescan(FilerWindow *filer_window); -void filer_target_mode(FilerWindow *filer_window, - TargetFunc fn, - gpointer data, - const char *reason); -GList *filer_selected_items(FilerWindow *filer_window); -void filer_create_thumb(FilerWindow *filer_window, const gchar *pathname); -void filer_cancel_thumbnails(FilerWindow *filer_window); -void filer_set_title(FilerWindow *filer_window); -void filer_create_thumbs(FilerWindow *filer_window); -void filer_add_tip_details(FilerWindow *filer_window, - GString *tip, DirItem *item); -void filer_selection_changed(FilerWindow *filer_window, gint time); -void filer_lost_selection(FilerWindow *filer_window, guint time); -void filer_window_set_size(FilerWindow *filer_window, int w, int h); -gboolean filer_window_delete(GtkWidget *window, - GdkEvent *unused, - FilerWindow *filer_window); -void filer_set_view_type(FilerWindow *filer_window, ViewType type); -void filer_window_toggle_cursor_item_selected(FilerWindow *filer_window); -void filer_perform_action(FilerWindow *filer_window, GdkEventButton *event); -gint filer_motion_notify(FilerWindow *filer_window, GdkEventMotion *event); -gint filer_key_press_event(GtkWidget *widget, GdkEventKey *event, - FilerWindow *filer_window); -void filer_set_autoscroll(FilerWindow *filer_window, gboolean auto_scroll); -void filer_refresh(FilerWindow *filer_window); - -gboolean filer_match_filter(FilerWindow *filer_window, DirItem *item); -gboolean filer_set_filter(FilerWindow *filer_window, - FilterType type, const gchar *filter_string); -void filer_set_filter_directories(FilerWindow *fwin, gboolean filter_directories); -void filer_set_hidden(FilerWindow *fwin, gboolean hidden); -void filer_next_selected(FilerWindow *filer_window, int dir); -void filer_save_settings(FilerWindow *fwin); - -UnmountPrompt filer_get_unmount_action(const char *path); -void filer_set_unmount_action(const char *path, UnmountPrompt action); - -#endif /* _FILER_H */ diff --git a/ROX-Filer/src/find.c b/ROX-Filer/src/find.c deleted file mode 100644 index eb5a82c6..00000000 --- a/ROX-Filer/src/find.c +++ /dev/null @@ -1,1005 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* find.c - processes the find conditions - * - * A Condition is a tree structure. Each node has a test() fn which - * can be used to see whether the current file matches, and a free() fn - * which frees it. Both will recurse down the tree as needed. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include "global.h" - -#include "main.h" -#include "find.h" - -typedef struct _Eval Eval; - -/* Static prototypes */ -static FindCondition *parse_expression(const gchar **expression); -static FindCondition *parse_case(const gchar **expression); -static FindCondition *parse_system(const gchar **expression); -static FindCondition *parse_condition(const gchar **expression); -static FindCondition *parse_match(const gchar **expression); -static FindCondition *parse_comparison(const gchar **expression); -static FindCondition *parse_dash(const gchar **expression); -static FindCondition *parse_is(const gchar **expression); -static Eval *parse_eval(const gchar **expression); -static Eval *parse_variable(const gchar **expression); - -static gboolean match(const gchar **expression, const gchar *word); - -typedef enum { - IS_DIR, - IS_REG, - IS_LNK, - IS_FIFO, - IS_SOCK, - IS_CHR, - IS_BLK, - IS_DEV, - IS_DOOR, - IS_SUID, - IS_SGID, - IS_STICKY, - IS_READABLE, - IS_WRITEABLE, - IS_EXEC, - IS_EMPTY, - IS_MINE, -} IsTest; - -typedef enum { - COMP_LT, - COMP_LE, - COMP_EQ, - COMP_NE, - COMP_GE, - COMP_GT, -} CompType; - -typedef enum { - V_ATIME, - V_CTIME, - V_MTIME, - V_SIZE, - V_INODE, - V_NLINKS, - V_UID, - V_GID, - V_BLOCKS, -} VarType; - -enum -{ - FLAG_AGO = 1 << 0, - FLAG_HENCE = 1 << 1, -}; - -typedef double (*EvalCalc)(Eval *eval, FindInfo *info); -typedef void (*EvalFree)(Eval *eval); - -struct _FindCondition -{ - FindTest test; - FindFree free; - /* These next three depend on the first two... */ - gpointer data1; - gpointer data2; - gint value; -}; - -struct _Eval -{ - EvalCalc calc; - EvalFree free; - gpointer data1; - gpointer data2; -}; - -#define EAT ((*expression)++) -#define NEXT (**expression) -#define SKIP while (NEXT == ' ' || NEXT == '\t') EAT -#define MATCH(word) (match(expression, word)) - -#ifndef S_ISVTX -# define S_ISVTX 0x0001000 -#endif - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Take a string and parse it, returning a condition object which - * can be passed to find_test_condition() later. NULL if the string - * is not a valid expression. - */ -FindCondition *find_compile(const gchar *string) -{ - FindCondition *cond; - const gchar **expression = &string; - - g_return_val_if_fail(string != NULL, NULL); - - cond = parse_expression(expression); - if (!cond) - return NULL; - - SKIP; - if (NEXT != '\0') - { - cond->free(cond); - cond = NULL; - } - - return cond; -} - -gboolean find_test_condition(FindCondition *condition, FindInfo *info) -{ - g_return_val_if_fail(condition != NULL, FALSE); - g_return_val_if_fail(info != NULL, FALSE); - - return condition->test(condition, info); -} - -void find_condition_free(FindCondition *condition) -{ - if (condition) - condition->free(condition); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Call this when you've just eaten '('. Returns the string upto the - * matching ')' (and eats that bracket), or NULL on failure. - * Brackets within the string may be quoted or escaped. - */ -static gchar *get_bracketed_string(const gchar **expression) -{ - GString *str; - int opens = 1; - gchar quote = '\0'; - - str = g_string_new(NULL); - - while (NEXT != '\0') - { - gchar c = NEXT; - - EAT; - - if (quote == '\0') - { - if (c == '\'' || c == '"') - quote = c; /* Start quoted section */ - else if (c == '\\' && (NEXT == '(' || NEXT == ')')) - { - c = NEXT; - EAT; - } - else if (c == ')') - { - opens--; - if (opens < 1) - { - gchar *retval = str->str; - - g_string_free(str, FALSE); - return retval; - } - } - else if (c == '(') - opens++; - } - else if (c == quote) - quote = '\0'; /* End quoted section */ - else if (c == '\\' && NEXT == quote) - { - g_string_append_c(str, c); - c = NEXT; - EAT; - } - - g_string_append_c(str, c); - } - - g_string_free(str, TRUE); - - return NULL; -} - - -/* TESTING CODE */ - -static gboolean test_prune(FindCondition *condition, FindInfo *info) -{ - info->prune = TRUE; - return FALSE; -} - -static gboolean test_leaf(FindCondition *condition, FindInfo *info) -{ - return fnmatch(condition->data1, info->leaf, 0) == 0; -} - -static gboolean test_path(FindCondition *condition, FindInfo *info) -{ - return fnmatch(condition->data1, info->fullpath, FNM_PATHNAME) == 0; -} - -static gboolean test_system(FindCondition *condition, FindInfo *info) -{ - gchar *command = (gchar *) condition->data1; - gchar *start = command; - GString *to_sys = NULL; - gchar *perc; - int retcode; - - to_sys = g_string_new(NULL); - - while ((perc = strchr(command, '%'))) - { - if (perc > start && perc[-1] == '\\') - perc--; - - while (command < perc) - g_string_append_c(to_sys, *(command++)); - - if (*perc == '%') - g_string_append(to_sys, info->fullpath); - else - { - g_string_append_c(to_sys, '%'); - perc++; - } - - command = perc + 1; - } - - g_string_append(to_sys, command); - - retcode = system(to_sys->str); - - g_string_free(to_sys, TRUE); - - return retcode == 0; -} - -static gboolean test_OR(FindCondition *condition, FindInfo *info) -{ - FindCondition *first = (FindCondition *) condition->data1; - FindCondition *second = (FindCondition *) condition->data2; - - return first->test(first, info) || second->test(second, info); -} - -static gboolean test_AND(FindCondition *condition, FindInfo *info) -{ - FindCondition *first = (FindCondition *) condition->data1; - FindCondition *second = (FindCondition *) condition->data2; - - return first->test(first, info) && second->test(second, info); -} - -static gboolean test_neg(FindCondition *condition, FindInfo *info) -{ - FindCondition *first = (FindCondition *) condition->data1; - - return !first->test(first, info); -} - -static gboolean test_is(FindCondition *condition, FindInfo *info) -{ - mode_t mode = info->stats.st_mode; - - switch ((IsTest) condition->value) - { - case IS_DIR: - return S_ISDIR(mode); - case IS_REG: - return S_ISREG(mode); - case IS_LNK: - return S_ISLNK(mode); - case IS_FIFO: - return S_ISFIFO(mode); - case IS_SOCK: - return S_ISSOCK(mode); - case IS_CHR: - return S_ISCHR(mode); - case IS_BLK: - return S_ISBLK(mode); - case IS_DEV: - return S_ISCHR(mode) - || S_ISBLK(mode); - case IS_DOOR: - return S_ISDOOR(mode); - case IS_SUID: - return (mode & S_ISUID) != 0; - case IS_SGID: - return (mode & S_ISGID) != 0; - case IS_STICKY: - return (mode & S_ISVTX) != 0; - /* NOTE: access() uses uid, not euid. Shouldn't matter? */ - case IS_READABLE: - return access(info->fullpath, R_OK) == 0; - case IS_WRITEABLE: - return access(info->fullpath, W_OK) == 0; - case IS_EXEC: - return access(info->fullpath, X_OK) == 0; - case IS_EMPTY: - return info->stats.st_size == 0; - case IS_MINE: - return info->stats.st_uid == euid; - } - - return FALSE; -} - -static gboolean test_comp(FindCondition *condition, FindInfo *info) -{ - Eval *first = (Eval *) condition->data1; - Eval *second = (Eval *) condition->data2; - double a, b; - - a = first->calc(first, info); - b = second->calc(second, info); - - switch ((CompType) condition->value) - { - case COMP_LT: - return a < b; - case COMP_LE: - return a <= b; - case COMP_EQ: - return a == b; - case COMP_NE: - return a != b; - case COMP_GE: - return a >= b; - case COMP_GT: - return a > b; - } - - return FALSE; -} - -/* FREEING CODE */ - -/* Frees the structure and g_free()s both data items (NULL is OK) */ -static void free_simple(FindCondition *condition) -{ - g_return_if_fail(condition != NULL); - - g_free(condition->data1); - g_free(condition->data2); - g_free(condition); -} - -/* Treats data1 and data2 as conditions (or NULL) and frees recursively */ -static void free_branch(FindCondition *condition) -{ - FindCondition *first = (FindCondition *) condition->data1; - FindCondition *second = (FindCondition *) condition->data2; - - if (first) - first->free(first); - if (second) - second->free(second); - g_free(condition); -} - -/* Treats data1 and data2 as evals (or NULL) and frees recursively */ -static void free_comp(FindCondition *condition) -{ - Eval *first = (Eval *) condition->data1; - Eval *second = (Eval *) condition->data2; - - if (first) - first->free(first); - if (second) - second->free(second); - g_free(condition); -} - -/* PARSING CODE */ - -/* These all work in the same way - you give them an expression and the - * parse as much as they can, returning a condition for everything that - * was parsed and updating the expression pointer to the first unknown - * token. NULL indicates an error. - */ - - -/* An expression is a series of comma-separated cases, any of which - * may match. - */ -static FindCondition *parse_expression(const gchar **expression) -{ - FindCondition *first, *second, *cond; - - first = parse_case(expression); - if (!first) - return NULL; - - SKIP; - if (NEXT != ',') - return first; - EAT; - - second = parse_expression(expression); - if (!second) - { - first->free(first); - return NULL; - } - - cond = g_new(FindCondition, 1); - cond->test = &test_OR; - cond->free = &free_branch; - cond->data1 = first; - cond->data2 = second; - - return cond; -} - -static FindCondition *parse_case(const gchar **expression) -{ - FindCondition *first, *second, *cond; - - first = parse_condition(expression); - if (!first) - return NULL; - - SKIP; - if (NEXT == '\0' || NEXT == ',' || NEXT == ')') - return first; - - (void) MATCH(_("And")); - - second = parse_case(expression); - if (!second) - { - first->free(first); - return NULL; - } - - cond = g_new(FindCondition, 1); - cond->test = &test_AND; - cond->free = &free_branch; - cond->data1 = first; - cond->data2 = second; - - return cond; -} - -static FindCondition *parse_condition(const gchar **expression) -{ - FindCondition *cond = NULL; - - SKIP; - - if (NEXT == '!' || MATCH(_("Not"))) - { - FindCondition *operand; - - EAT; - - operand = parse_condition(expression); - if (!operand) - return NULL; - cond = g_new(FindCondition, 1); - cond->test = test_neg; - cond->free = free_branch; - cond->data1 = operand; - cond->data2 = NULL; - return cond; - } - - if (NEXT == '(') - { - FindCondition *subcond; - - EAT; - - subcond = parse_expression(expression); - if (!subcond) - return NULL; - SKIP; - if (NEXT != ')') - { - subcond->free(subcond); - return NULL; - } - - EAT; - return subcond; - } - - if (NEXT == '\'') - { - EAT; - return parse_match(expression); - } - - if (MATCH(_("system"))) - { - SKIP; - if (NEXT != '(') - return NULL; - EAT; - return parse_system(expression); - } - else if (MATCH(_("prune"))) - { - cond = g_new(FindCondition, 1); - cond->test = test_prune; - cond->free = (FindFree) g_free; - cond->data1 = NULL; - cond->data2 = NULL; - - return cond; - } - - cond = parse_dash(expression); - if (cond) - return cond; - - cond = parse_is(expression); - if (cond) - return cond; - - return parse_comparison(expression); -} - -/* Call this when you've just eaten 'system(' */ -static FindCondition *parse_system(const gchar **expression) -{ - FindCondition *cond = NULL; - gchar *command_string; - - command_string = get_bracketed_string(expression); - if (!command_string) - return NULL; - - cond = g_new(FindCondition, 1); - cond->test = test_system; - cond->free = &free_simple; - cond->data1 = command_string; - cond->data2 = NULL; - - return cond; -} - -static FindCondition *parse_comparison(const gchar **expression) -{ - FindCondition *cond = NULL; - Eval *first; - Eval *second; - CompType comp; - - SKIP; - - first = parse_eval(expression); - if (!first) - return NULL; - - SKIP; - if (NEXT == '=') - { - comp = COMP_EQ; - EAT; - } - else if (NEXT == '>') - { - EAT; - if (NEXT == '=') - { - EAT; - comp = COMP_GE; - } - else - comp = COMP_GT; - } - else if (NEXT == '<') - { - EAT; - if (NEXT == '=') - { - EAT; - comp = COMP_LE; - } - else - comp = COMP_LT; - } - else if (NEXT == '!' && (*expression)[1] == '=') - { - EAT; - EAT; - comp = COMP_NE; - } - else if (MATCH(_("After"))) - comp = COMP_GT; - else if (MATCH(_("Before"))) - comp = COMP_LT; - else - return NULL; - - SKIP; - second = parse_eval(expression); - if (!second) - { - first->free(first); - return NULL; - } - - cond = g_new(FindCondition, 1); - cond->test = &test_comp; - cond->free = (FindFree) &free_comp; - cond->data1 = first; - cond->data2 = second; - cond->value = comp; - - return cond; -} - -static FindCondition *parse_dash(const gchar **expression) -{ - const gchar *exp = *expression; - FindCondition *cond, *retval = NULL; - IsTest test; - int i = 1; - - if (NEXT != '-') - return NULL; - - while (exp[i] && !g_ascii_isspace(exp[i])) - { - switch (exp[i]) - { - case 'f': test = IS_REG; break; - case 'l': test = IS_LNK; break; - case 'd': test = IS_DIR; break; - case 'b': test = IS_BLK; break; - case 'c': test = IS_CHR; break; - case 'D': test = IS_DEV; break; - case 'p': test = IS_FIFO; break; - case 'S': test = IS_SOCK; break; - case 'O': test = IS_DOOR; break; - case 'u': test = IS_SUID; break; - case 'g': test = IS_SGID; break; - case 'k': test = IS_STICKY; break; - case 'r': test = IS_READABLE; break; - case 'w': test = IS_WRITEABLE; break; - case 'x': test = IS_EXEC; break; - case 'o': test = IS_MINE; break; - case 'z': test = IS_EMPTY; break; - default: - find_condition_free(retval); - return NULL; - } - i++; - - cond = g_new(FindCondition, 1); - cond->test = &test_is; - cond->free = (FindFree) &g_free; - cond->data1 = NULL; - cond->data2 = NULL; - cond->value = test; - - if (retval) - { - FindCondition *new; - - new = g_new(FindCondition, 1); - new->test = &test_AND; - new->free = &free_branch; - new->data1 = retval; - new->data2 = cond; - - retval = new; - } - else - retval = cond; - } - - (*expression) += i; - - return retval; -} - -/* Returns NULL if expression is not an is-expression */ -static FindCondition *parse_is(const gchar **expression) -{ - FindCondition *cond; - IsTest test; - - if (MATCH(_("IsReg"))) - test = IS_REG; - else if (MATCH(_("IsLink"))) - test = IS_LNK; - else if (MATCH(_("IsDir"))) - test = IS_DIR; - else if (MATCH(_("IsChar"))) - test = IS_CHR; - else if (MATCH(_("IsBlock"))) - test = IS_BLK; - else if (MATCH(_("IsDev"))) - test = IS_DEV; - else if (MATCH(_("IsPipe"))) - test = IS_FIFO; - else if (MATCH(_("IsSocket"))) - test = IS_SOCK; - else if (MATCH(_("IsDoor"))) - test = IS_DOOR; - else if (MATCH(_("IsSUID"))) - test = IS_SUID; - else if (MATCH(_("IsSGID"))) - test = IS_SGID; - else if (MATCH(_("IsSticky"))) - test = IS_STICKY; - else if (MATCH(_("IsReadable"))) - test = IS_READABLE; - else if (MATCH(_("IsWriteable"))) - test = IS_WRITEABLE; - else if (MATCH(_("IsExecutable"))) - test = IS_EXEC; - else if (MATCH(_("IsEmpty"))) - test = IS_EMPTY; - else if (MATCH(_("IsMine"))) - test = IS_MINE; - else - return NULL; - - cond = g_new(FindCondition, 1); - cond->test = &test_is; - cond->free = (FindFree) &g_free; - cond->data1 = NULL; - cond->data2 = NULL; - cond->value = test; - - return cond; -} - -/* Call this just after reading a ' */ -static FindCondition *parse_match(const gchar **expression) -{ - FindCondition *cond = NULL; - GString *str; - FindTest test = &test_leaf; - str = g_string_new(NULL); - - while (NEXT != '\'') - { - gchar c = NEXT; - - if (c == '\0') - goto out; - EAT; - - if (c == '\\' && NEXT == '\'') - { - c = NEXT; - EAT; - } - - if (c == '/') - test = &test_path; - - g_string_append_c(str, c); - } - EAT; - - cond = g_new(FindCondition, 1); - cond->test = test; - cond->free = &free_simple; - cond->data1 = str->str; - cond->data2 = NULL; - -out: - g_string_free(str, cond ? FALSE : TRUE); - - return cond; -} - -/* NUMERIC EXPRESSIONS */ - -/* CALCULATIONS */ - -static double get_constant(Eval *eval, FindInfo *info) -{ - double value = *((double *) (eval->data1)); - gint flags = GPOINTER_TO_INT(eval->data2); - - if (flags & FLAG_AGO) - value = info->now - value; - else if (flags & FLAG_HENCE) - value = info->now + value; - - return value; -} - -static double get_var(Eval *eval, FindInfo *info) -{ - switch ((VarType) eval->data1) - { - case V_ATIME: - return info->stats.st_atime; - case V_CTIME: - return info->stats.st_ctime; - case V_MTIME: - return info->stats.st_mtime; - case V_SIZE: - return info->stats.st_size; - case V_INODE: - return info->stats.st_ino; - case V_NLINKS: - return info->stats.st_nlink; - case V_UID: - return info->stats.st_uid; - case V_GID: - return info->stats.st_gid; - case V_BLOCKS: - return info->stats.st_blocks; - } - - return 0; -} - -/* FREEING */ - -static void free_constant(Eval *eval) -{ - g_free(eval->data1); - g_free(eval); -} - -/* PARSING */ - -/* Parse something that evaluates to a number. - * This function tries to get a constant - if it fails then it tries - * interpreting the next token as a variable. - */ -static Eval *parse_eval(const gchar **expression) -{ - const char *start; - char *end; - double value; - Eval *eval; - gint flags = 0; - - SKIP; - start = *expression; - value = strtol(start, &end, 0); - - if (end == start) - { - if (MATCH(_("Now"))) - { - value = 0; - flags |= FLAG_HENCE; - } - else - return parse_variable(expression); - } - else - *expression = end; - - SKIP; - - if (MATCH(_("Byte")) || MATCH(_("Bytes"))) - ; - else if (MATCH(_("Kb")) || MATCH(_("K"))) - value *= 1<<10; - else if (MATCH(_("Mb")) || MATCH(_("M"))) - value *= 1<<20; - else if (MATCH(_("Gb")) || MATCH(_("G"))) - value *= 1<<30; - else if (MATCH(_("Sec")) || MATCH(_("Secs"))) - ; - else if (MATCH(_("Min")) || MATCH(_("Mins"))) - value *= 60; - else if (MATCH(_("Hour")) || MATCH(_("Hours"))) - value *= 60 * 60; - else if (MATCH(_("Day")) || MATCH(_("Days"))) - value *= 60 * 60 * 24; - else if (MATCH(_("Week")) || MATCH(_("Weeks"))) - value *= 60 * 60 * 24 * 7; - else if (MATCH(_("Year")) || MATCH(_("Years"))) - value *= 60 * 60 * 24 * 7 * 365.25; - - eval = g_new(Eval, 1); - eval->calc = &get_constant; - eval->free = &free_constant; - eval->data1 = g_memdup(&value, sizeof(value)); - - SKIP; - if (MATCH(_("Ago"))) - flags |= FLAG_AGO; - else if (MATCH(_("Hence"))) - flags |= FLAG_HENCE; - - eval->data2 = GINT_TO_POINTER(flags); - - return eval; -} - -static Eval *parse_variable(const gchar **expression) -{ - Eval *eval; - VarType var; - - SKIP; - - if (MATCH(_("atime"))) - var = V_ATIME; - else if (MATCH(_("ctime"))) - var = V_CTIME; - else if (MATCH(_("mtime"))) - var = V_MTIME; - else if (MATCH(_("size"))) - var = V_SIZE; - else if (MATCH(_("inode"))) - var = V_INODE; - else if (MATCH(_("nlinks"))) - var = V_NLINKS; - else if (MATCH(_("uid"))) - var = V_UID; - else if (MATCH(_("gid"))) - var = V_GID; - else if (MATCH(_("blocks"))) - var = V_BLOCKS; - else - return NULL; - - eval = g_new(Eval, 1); - eval->calc = &get_var; - eval->free = (EvalFree) &g_free; - eval->data1 = (gpointer) var; - eval->data2 = NULL; - - return eval; -} - -static gboolean match(const gchar **expression, const gchar *word) -{ - int len; - - len = strlen(word); - if (g_ascii_strncasecmp(*expression, word, len)) - return FALSE; - - if (g_ascii_isalpha(*(*expression + len))) - return FALSE; - - (*expression) += len; - - return TRUE; -} diff --git a/ROX-Filer/src/find.h b/ROX-Filer/src/find.h deleted file mode 100644 index da5ddf88..00000000 --- a/ROX-Filer/src/find.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#include -#include - -typedef struct _FindCondition FindCondition; -typedef struct _FindInfo FindInfo; -typedef gboolean (*FindTest)(FindCondition *condition, FindInfo *info); -typedef void (*FindFree)(FindCondition *condition); - -struct _FindInfo -{ - const guchar *fullpath; - const guchar *leaf; - struct stat stats; - time_t now; - gboolean prune; -}; - -FindCondition *find_compile(const gchar *string); -gboolean find_test_condition(FindCondition *condition, FindInfo *info); -void find_condition_free(FindCondition *condition); diff --git a/ROX-Filer/src/fscache.c b/ROX-Filer/src/fscache.c deleted file mode 100644 index b4033a53..00000000 --- a/ROX-Filer/src/fscache.c +++ /dev/null @@ -1,423 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * A cache object holds stat details about files in a hash table, along - * with user-specified data. When you want to read in a file try to - * get the data via the cache - if the file is cached AND has not been - * modified since it was last loaded the cached copy is returned, else the - * file is reloaded. - * - * The actual data need not be the raw file contents - a user specified - * function loads the file and associates data with the file in the cache. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "config.h" - -#include "global.h" - -#include "fscache.h" - -typedef struct _GFSCacheKey GFSCacheKey; -typedef struct _GFSCacheData GFSCacheData; - -struct _GFSCache -{ - GHashTable *inode_to_stats; - GFSLoadFunc load; - GFSUpdateFunc update; - gpointer user_data; -}; - -struct _GFSCacheKey -{ - dev_t device; - ino_t inode; -}; - -struct _GFSCacheData -{ - GObject *data; /* The object from the file */ - time_t last_lookup; - - /* Details of the file last time we checked it */ - time_t m_time, c_time; - off_t length; - mode_t mode; -}; - -#define UPTODATE(data, info) \ - (data->m_time == info.st_mtime \ - && data->c_time == info.st_ctime \ - && data->length == info.st_size \ - && data->mode == info.st_mode) \ - - -/* Static prototypes */ - -static guint hash_key(gconstpointer key); -static gint cmp_stats(gconstpointer a, gconstpointer b); -static void destroy_hash_entry(gpointer key, gpointer data, gpointer user_data); -static gboolean purge_hash_entry(gpointer key, gpointer data, - gpointer user_data); -static GFSCacheData *lookup_internal(GFSCache *cache, const char *pathname, - FSCacheLookup lookup_type); - - -struct PurgeInfo -{ - GFSCache *cache; - gint age; - time_t now; -}; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - - -/* Create a new GFSCache object and return a pointer to it. - * - * When someone tries to lookup a file which is not in the cache, - * load() is called. - * It should load the file and return a pointer to an object for the file. - * The object should have a ref count of 1. - * - * update() will be called to update an object which is cached, but - * out of date. If NULL, the object will be unref'd and load() used - * to make a new one. - * - * 'user_data' will be passed to all of the above functions. - */ -GFSCache *g_fscache_new(GFSLoadFunc load, - GFSUpdateFunc update, - gpointer user_data) -{ - GFSCache *cache; - - cache = g_new(GFSCache, 1); - cache->inode_to_stats = g_hash_table_new(hash_key, cmp_stats); - cache->load = load; - cache->update = update; - cache->user_data = user_data; - - return cache; -} - -void g_fscache_destroy(GFSCache *cache) -{ - g_return_if_fail(cache != NULL); - - g_hash_table_foreach(cache->inode_to_stats, destroy_hash_entry, NULL); - g_hash_table_destroy(cache->inode_to_stats); - - g_free(cache); -} - -/* Find the data for this file in the cache, loading it into - * the cache if it isn't there already. - * - * Remember to g_object_unref() the returned value when - * you're done with it. - * - * Returns NULL on failure. - */ -gpointer g_fscache_lookup(GFSCache *cache, const char *pathname) -{ - return g_fscache_lookup_full(cache, pathname, - FSCACHE_LOOKUP_CREATE, NULL); -} - -/* Force this already-loaded item into the cache. The cache will - * ref the object if it wants to keep it. - * If update_details is FALSE then the timestamp and size aren't recorded. - * Generally, you call this function with update_details = TRUE when you - * start loading some data and then with update_details = FALSE when you - * put in the loaded object. - */ -void g_fscache_insert(GFSCache *cache, const char *pathname, gpointer obj, - gboolean update_details) -{ - GFSCacheData *data; - - data = lookup_internal(cache, pathname, - update_details ? FSCACHE_LOOKUP_INIT - : FSCACHE_LOOKUP_INSERT); - - if (!data) - return; - - if (obj) - g_object_ref(obj); - if (data->data) - g_object_unref(data->data); - data->data = obj; -} - -/* As g_fscache_lookup, but 'lookup_type' controls what happens if the data - * is out-of-date. - * If found is not NULL, use it to indicate whether something is being - * returned (a NULL return could indicate that the data is cached, but - * the data is NULL). - * If returned value is not NULL, value is refd. - */ -gpointer g_fscache_lookup_full(GFSCache *cache, const char *pathname, - FSCacheLookup lookup_type, - gboolean *found) -{ - GFSCacheData *data; - - g_return_val_if_fail(lookup_type != FSCACHE_LOOKUP_INIT, NULL); - - data = lookup_internal(cache, pathname, lookup_type); - - if (!data) - { - if (found) - *found = FALSE; - return NULL; - } - - if (found) - *found = TRUE; - - if (data->data) - g_object_ref(data->data); - - return data->data; -} - -/* Call the update() function on this item if it's in the cache - * AND it's out-of-date. - */ -void g_fscache_may_update(GFSCache *cache, const char *pathname) -{ - GFSCacheKey key; - GFSCacheData *data; - struct stat info; - - g_return_if_fail(cache != NULL); - g_return_if_fail(pathname != NULL); - g_return_if_fail(cache->update != NULL); - - if (mc_stat(pathname, &info)) - return; - - key.device = info.st_dev; - key.inode = info.st_ino; - - data = g_hash_table_lookup(cache->inode_to_stats, &key); - - if (data && !UPTODATE(data, info)) - { - cache->update(data->data, pathname, cache->user_data); - data->m_time = info.st_mtime; - data->c_time = info.st_ctime; - data->length = info.st_size; - data->mode = info.st_mode; - } -} - -/* Call the update() function on this item iff it's in the cache. */ -void g_fscache_update(GFSCache *cache, const char *pathname) -{ - GFSCacheKey key; - GFSCacheData *data; - struct stat info; - - g_return_if_fail(cache != NULL); - g_return_if_fail(pathname != NULL); - g_return_if_fail(cache->update != NULL); - - if (mc_stat(pathname, &info)) - return; - - key.device = info.st_dev; - key.inode = info.st_ino; - - data = g_hash_table_lookup(cache->inode_to_stats, &key); - - if (data) - { - cache->update(data->data, pathname, cache->user_data); - data->m_time = info.st_mtime; - data->c_time = info.st_ctime; - data->length = info.st_size; - data->mode = info.st_mode; - } -} - -/* Remove all cache entries last accessed more than 'age' seconds - * ago. - */ -void g_fscache_purge(GFSCache *cache, gint age) -{ - struct PurgeInfo info; - - g_return_if_fail(cache != NULL); - - info.age = age; - info.cache = cache; - info.now = time(NULL); - - g_hash_table_foreach_remove(cache->inode_to_stats, purge_hash_entry, - (gpointer) &info); -} - - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - - -/* Generate a hash number for some stats */ -static guint hash_key(gconstpointer key) -{ - GFSCacheKey *stats = (GFSCacheKey *) key; - - return stats->inode; -} - -/* See if two stats blocks represent the same file */ -static gint cmp_stats(gconstpointer a, gconstpointer b) -{ - GFSCacheKey *c = (GFSCacheKey *) a; - GFSCacheKey *d = (GFSCacheKey *) b; - - return c->device == d->device && c->inode == d->inode; -} - -static void destroy_hash_entry(gpointer key, gpointer data, gpointer user_data) -{ - GFSCacheData *cache_data = (GFSCacheData *) data; - - if (cache_data->data) - g_object_unref(cache_data->data); - - g_free(key); - g_free(data); -} - -static gboolean purge_hash_entry(gpointer key, gpointer data, - gpointer user_data) -{ - struct PurgeInfo *info = (struct PurgeInfo *) user_data; - GFSCacheData *cache_data = (GFSCacheData *) data; - - /* It's wasteful to remove an entry if someone else is using it */ - if (cache_data->data && cache_data->data->ref_count > 1) - return FALSE; - - if (cache_data->last_lookup <= info->now - && cache_data->last_lookup >= info->now - info->age) - return FALSE; - - if (cache_data->data) - g_object_unref(cache_data->data); - - g_free(key); - g_free(data); - - return TRUE; -} - -/* As for g_fscache_lookup_full, but return the GFSCacheData rather than - * the data it contains. Doesn't increment the refcount. - */ -static GFSCacheData *lookup_internal(GFSCache *cache, const char *pathname, - FSCacheLookup lookup_type) -{ - struct stat info; - GFSCacheKey key; - GFSCacheData *data; - - g_return_val_if_fail(cache != NULL, NULL); - g_return_val_if_fail(pathname != NULL, NULL); - - if (mc_stat(pathname, &info)) - return NULL; - - key.device = info.st_dev; - key.inode = info.st_ino; - - data = g_hash_table_lookup(cache->inode_to_stats, &key); - - if (data) - { - /* We've cached this file already */ - - if (lookup_type == FSCACHE_LOOKUP_PEEK || - lookup_type == FSCACHE_LOOKUP_INSERT) - goto out; /* Never update on peeks */ - - if (lookup_type == FSCACHE_LOOKUP_INIT) - goto init; - - /* Is it up-to-date? */ - - if (UPTODATE(data, info)) - goto out; - - if (lookup_type == FSCACHE_LOOKUP_ONLY_NEW) - return NULL; - - /* Out-of-date */ - if (cache->update) - cache->update(data->data, pathname, cache->user_data); - else - { - if (data->data) - g_object_unref(data->data); - data->data = NULL; - } - } - else - { - GFSCacheKey *new_key; - - if (lookup_type != FSCACHE_LOOKUP_CREATE && - lookup_type != FSCACHE_LOOKUP_INIT) - return NULL; - - new_key = g_memdup(&key, sizeof(key)); - - data = g_new(GFSCacheData, 1); - data->data = NULL; - - g_hash_table_insert(cache->inode_to_stats, new_key, data); - } - -init: - data->m_time = info.st_mtime; - data->c_time = info.st_ctime; - data->length = info.st_size; - data->mode = info.st_mode; - - if (data->data == NULL && - lookup_type != FSCACHE_LOOKUP_INIT && - lookup_type != FSCACHE_LOOKUP_INSERT) - { - /* Create the object for the file (ie, not an update) */ - if (cache->load) - data->data = cache->load(pathname, cache->user_data); - } -out: - data->last_lookup = time(NULL); - - return data; -} - diff --git a/ROX-Filer/src/fscache.h b/ROX-Filer/src/fscache.h deleted file mode 100644 index be107ec7..00000000 --- a/ROX-Filer/src/fscache.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Thomas Leonard, - */ - - -#ifndef _FSCACHE_H -#define _FSCACHE_H - -#include -#include -#include -#include -#include -#include - -typedef GObject *(*GFSLoadFunc)(const char *pathname, gpointer user_data); -typedef void (*GFSUpdateFunc)(gpointer object, - const char *pathname, - gpointer user_data); -typedef enum { - FSCACHE_LOOKUP_CREATE, /* Load if missing. Update as needed. */ - FSCACHE_LOOKUP_ONLY_NEW,/* Return NULL if not present AND uptodate */ - FSCACHE_LOOKUP_PEEK, /* Lookup; don't load or update */ - FSCACHE_LOOKUP_INIT, /* Internal use */ - FSCACHE_LOOKUP_INSERT, /* Internal use */ -} FSCacheLookup; - -GFSCache *g_fscache_new(GFSLoadFunc load, - GFSUpdateFunc update, - gpointer user_data); -void g_fscache_destroy(GFSCache *cache); -gpointer g_fscache_lookup(GFSCache *cache, const char *pathname); -gpointer g_fscache_lookup_full(GFSCache *cache, const char *pathname, - FSCacheLookup lookup_type, - gboolean *found); -void g_fscache_may_update(GFSCache *cache, const char *pathname); -void g_fscache_update(GFSCache *cache, const char *pathname); -void g_fscache_purge(GFSCache *cache, gint age); - -void g_fscache_insert(GFSCache *cache, const char *pathname, gpointer obj, - gboolean update_details); - -#endif /* _FSCACHE_H */ diff --git a/ROX-Filer/src/global.h b/ROX-Filer/src/global.h deleted file mode 100644 index a93a8b65..00000000 --- a/ROX-Filer/src/global.h +++ /dev/null @@ -1,191 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -/* global.h is included by most of the other source files, just after - * including config.h and the system header files, but before any other - * ROX-Filer header files. - */ - -#include - -//#define UNIT_TESTS - -/* We put all the global typedefs here to avoid creating dependencies - * between header files. - */ - -/* Each filer window has one of these all to itself */ -typedef struct _FilerWindow FilerWindow; - -/* There is one Directory object per cached disk directory inode number. - * Multiple FilerWindows may share a single Directory. Directories - * are cached, so a Directory may exist without any filer windows - * referencing it at all. - */ -typedef struct _Directory Directory; - -/* Each item in a directory has a DirItem. This contains information from - * stat()ing the file, plus a few other bits. There may be several of these - * for a single file, if it appears (hard-linked) in several directories. - * Each pinboard and panel icon also has one of these (not shared). - */ -typedef struct _DirItem DirItem; - -/* Widgets which can display directories implement the View interface. - * This should be used in preference to the old collection interface because - * it isn't specific to a particular type of display. - */ -typedef struct _ViewIface ViewIface; - -/* A ViewIter specifies a single item in a View, rather like an index. - * They can be used to iterate over all the items in a View, and remain - * valid until the View is changed. If allocated on the stack, they do not need - * to be freed. - */ -typedef struct _ViewIter ViewIter; - -/* This contains the pixbufs for an image, in various sizes. - * Despite the name, it now contains neither pixmaps nor masks! - */ -typedef struct _MaskedPixmap MaskedPixmap; - -/* Each MIME type (eg 'text/plain') has one of these. It contains - * a link to the image and the type's name (used so that the image can - * be refreshed, among other things). - */ -typedef struct _MIME_type MIME_type; - -/* Icon is an abstract base class for pinboard and panel icons. - * It contains the name and path of the icon, as well as its DirItem. - */ -typedef struct _Icon Icon; - -/* There will be one of these if the pinboard is in use. It contains - * the name of the pinboard and links to the pinned Icons inside. - */ -typedef struct _Pinboard Pinboard; - -/* There is one of these for each panel window open. Panels work rather - * like little pinboards, but with a more rigid layout. - */ -typedef struct _Panel Panel; - -/* Each option has a static Option structure. This is initialised by - * calling option_add_int() or similar. See options.c for details. - * This structure is read-only. - */ -typedef struct _Option Option; - -/* A filesystem cache provides a quick and easy way to load files. - * When a cache is created, functions to load and update files are - * registered to it. Requesting an object from the cache will load - * or update it as needed, or return the cached copy if the current - * version of the file is already cached. - * Caches are used to access directories, images and XML files. - */ -typedef struct _GFSCache GFSCache; - -/* Each cached XML file is represented by one of these */ -typedef struct _XMLwrapper XMLwrapper; - -/* This holds a pre-parsed version of a filename, which can be quickly - * compared with another CollateKey for intelligent sorting. - */ -typedef struct _CollateKey CollateKey; - -/* Like a regular GtkLabel, except that the text can be wrapped to any - * width. Used for pinboard icons. - */ -typedef struct _WrappedLabel WrappedLabel; - -/* A filename where " " has been replaced by "%20", etc. - * This is really just a string, but we try to catch type errors. - */ -typedef struct _EscapedPath EscapedPath; - -/* The minibuffer is a text field which appears at the bottom of - * a filer window. It has various modes of operation: - */ -typedef enum { - MINI_NONE, - MINI_PATH, - MINI_SHELL, - MINI_SELECT_IF, - MINI_FILTER, - MINI_SELECT_BY_NAME, -} MiniType; - -/* The next three correspond to the styles on the Display submenu: */ - -typedef enum { /* Values used in options, must start at 0 */ - LARGE_ICONS = 0, - SMALL_ICONS = 1, - HUGE_ICONS = 2, - AUTO_SIZE_ICONS = 3, - UNKNOWN_STYLE -} DisplayStyle; - -typedef enum { /* Values used in options, must start at 0 */ - DETAILS_NONE = 0, - DETAILS_SIZE = 2, - DETAILS_PERMISSIONS = 3, - DETAILS_TYPE = 4, - DETAILS_TIMES = 5, - DETAILS_UNKNOWN = -1, -} DetailsType; - -typedef enum { /* Values used in options */ - SORT_NAME = 0, - SORT_TYPE = 1, - SORT_DATE = 2, - SORT_SIZE = 3, - SORT_OWNER = 4, - SORT_GROUP = 5 -} SortType; - -/* Each DirItem has a base type with indicates what kind of object it is. - * If the base_type is TYPE_FILE, then the MIME type field gives the exact - * type. - */ -enum -{ - /* Base types - this also determines the sort order */ - TYPE_ERROR, - TYPE_UNKNOWN, /* Not scanned yet */ - TYPE_DIRECTORY, - TYPE_PIPE, - TYPE_SOCKET, - TYPE_FILE, - TYPE_CHAR_DEVICE, - TYPE_BLOCK_DEVICE, - TYPE_DOOR, - - /* These are purely for colour allocation */ - TYPE_EXEC, - TYPE_APPDIR, -}; - -/* The namespaces for the SOAP messages */ -#define SOAP_ENV_NS_OLD "http://www.w3.org/2001/06/soap-envelope" -#define SOAP_ENV_NS "http://www.w3.org/2001/12/soap-envelope" -#define SOAP_RPC_NS "http://www.w3.org/2001/12/soap-rpc" -#define ROX_NS "http://rox.sourceforge.net/SOAP/ROX-Filer" - -/* Namespace for configuration */ -#define SITE "rox.sourceforge.net" - -/* Stock icons */ -#define ROX_STOCK_SHOW_DETAILS "rox-show-details" -#define ROX_STOCK_SHOW_HIDDEN "rox-show-hidden" -#define ROX_STOCK_SELECT "rox-select" -#define ROX_STOCK_MOUNT "rox-mount" -#define ROX_STOCK_MOUNTED "rox-mounted" -#define ROX_STOCK_XATTR "rox-xattr" -#define ROX_STOCK_SYMLINK "rox-symlink" - -/* Re-use an existing icon for a slightly different purpose */ -#define ROX_STOCK_BOOKMARKS GTK_STOCK_JUMP_TO - -#include diff --git a/ROX-Filer/src/gtksavebox.c b/ROX-Filer/src/gtksavebox.c deleted file mode 100644 index b2fd9902..00000000 --- a/ROX-Filer/src/gtksavebox.c +++ /dev/null @@ -1,709 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* gtksavebox.c - ROX-style savebox widget */ - -/* - * Note: This file is formatted like the Gtk+ sources, as it is/was hoped - * to include it in Gtk+ at some point. - */ - -#include "config.h" - -#include -#include -#include - -#include "gdk/gdkkeysyms.h" - -#include "gtksavebox.h" -#include "gtk/gtkwidget.h" -#include "gtk/gtkalignment.h" -#include "gtk/gtkdnd.h" -#include "gtk/gtkbutton.h" -#include "gtk/gtksignal.h" -#include "gtk/gtkhbox.h" -#include "gtk/gtkeventbox.h" -#include "gtk/gtkentry.h" -#include "gtk/gtkmessagedialog.h" -#include "gtk/gtkhseparator.h" -#include "gtk/gtkvbox.h" -#include "gtk/gtkdialog.h" -#include "gtk/gtklabel.h" -#include "gtk/gtkstock.h" - -#include "global.h" -#include "support.h" -#include "gui_support.h" - -/* - * Behaviour: - * - * - Clicking Save or pressing Return: - * - Emits 'save_to_file', - * - Emits 'saved_to_uri' (with the same pathname), - * - Destroys the widget. - * - * - Clicking Cancel or pressing Escape: - * - Destroys the widget. - * - * - Dragging the data somewhere: - * - Will either emit 'save_to_file' or get the selection, - * - Emits 'saved_to_uri' (possibly with a NULL URI), - * - Destroys the widget. - * - * - Clicking Discard: - * - Emits 'saved_to_uri' with a NULL URI, - * - Destroys the widget. - * - * To clarify: 'saved_to_uri' indicates that the save was successful. A - * NULL URI just means that the data was saved to another application rather - * than a fixed address. Data should only be marked unmodified when - * saved_to_uri is called with a non-NULL URI. - * - * Discard is a bit like a successful save to a null device. The data should - * be discarded when saved_to_uri is called, whatever URI is set to. - * - * - * Signals: - * - * gint save_to_file (GtkSavebox *savebox, const gchar *pathname) - * Save the data to disk using this pathname. Return GTK_XDS_SAVED - * on success, or GTK_XDS_SAVE_ERROR on failure (and report the error - * to the user somehow). DO NOT mark the data unmodified or change - * the pathname for the file - this might be a scrap file transfer. - * - * void saved_to_uri (GtkSavebox *savebox, const gchar *uri) - * The data is saved. If 'uri' is non-NULL, mark the file as unmodified - * and update the pathname/uri for the file to the one given. - * The URI is UTF-8 (not escaped). - */ - -enum { - PROP_0, - PROP_HAS_DISCARD -}; - -enum -{ - SAVE_TO_FILE, - SAVED_TO_URI, - - LAST_SIGNAL -}; - -static gpointer parent_class; -static guint savebox_signals[LAST_SIGNAL]; - -/* Longest possible XdndDirectSave0 property value */ -#define XDS_MAXURILEN 4096 - -static GdkAtom XdndDirectSave; -static GdkAtom text_plain; -static GdkAtom xa_string; - -static void gtk_savebox_class_init (GtkSaveboxClass *klass); -static void gtk_savebox_init (GtkSavebox *savebox); -static void button_press_over_icon (GtkWidget *drag_box, - GdkEventButton *event, - GtkSavebox *savebox); -static void drag_data_get (GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint32 time); -static guchar *read_xds_property (GdkDragContext *context, - gboolean delete); -static void write_xds_property (GdkDragContext *context, - const guchar *value); -static void drag_end (GtkWidget *widget, - GdkDragContext *context); -static void gtk_savebox_response (GtkDialog *savebox, - gint response); -static void discard_clicked (GtkWidget *button, - GtkWidget *savebox); -static void do_save (GtkSavebox *savebox); -static void gtk_savebox_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec); -static void gtk_savebox_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec); - -void -marshal_INT__STRING (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data); - -GType -gtk_savebox_get_type (void) -{ - static GType my_type = 0; - - if (!my_type) - { - static const GTypeInfo info = - { - sizeof (GtkSaveboxClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - (GClassInitFunc) gtk_savebox_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(GtkSavebox), - 0, /* n_preallocs */ - (GInstanceInitFunc) gtk_savebox_init - }; - - my_type = g_type_register_static(GTK_TYPE_DIALOG, "GtkSavebox", &info, 0); - } - - return my_type; -} - -static void -gtk_savebox_class_init (GtkSaveboxClass *class) -{ - GObjectClass *object_class; - GtkDialogClass *dialog = (GtkDialogClass *) class; - - XdndDirectSave = gdk_atom_intern ("XdndDirectSave0", FALSE); - text_plain = gdk_atom_intern ("text/plain", FALSE); - xa_string = gdk_atom_intern ("STRING", FALSE); - - parent_class = g_type_class_peek_parent (class); - - class->saved_to_uri = NULL; - class->save_to_file = NULL; - dialog->response = gtk_savebox_response; - - object_class = G_OBJECT_CLASS(class); - - savebox_signals[SAVE_TO_FILE] = g_signal_new( - "save_to_file", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GtkSaveboxClass, - save_to_file), - NULL, NULL, - marshal_INT__STRING, - G_TYPE_INT, 1, - G_TYPE_STRING); - - savebox_signals[SAVED_TO_URI] = g_signal_new( - "saved_to_uri", - G_TYPE_FROM_CLASS(object_class), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(GtkSaveboxClass, - saved_to_uri), - NULL, NULL, - g_cclosure_marshal_VOID__STRING, - G_TYPE_NONE, 1, - G_TYPE_STRING); - - object_class->set_property = gtk_savebox_set_property; - object_class->get_property = gtk_savebox_get_property; - - g_object_class_install_property(object_class, PROP_HAS_DISCARD, - g_param_spec_boolean("has_discard", - "Has Discard", - "The dialog has a Discard button", - TRUE, - G_PARAM_READWRITE)); -} - -static void -gtk_savebox_init (GtkSavebox *savebox) -{ - GtkWidget *alignment, *button; - GtkDialog *dialog = (GtkDialog *) savebox; - GtkTargetEntry targets[] = { {"XdndDirectSave0", 0, GTK_TARGET_XDS} }; - - gtk_dialog_set_has_separator (dialog, FALSE); - - savebox->targets = gtk_target_list_new (targets, - sizeof (targets) / sizeof (*targets)); - savebox->icon = NULL; - - gtk_window_set_title (GTK_WINDOW (savebox), _("Save As:")); - gtk_window_set_position (GTK_WINDOW (savebox), GTK_WIN_POS_MOUSE); - gtk_window_set_wmclass (GTK_WINDOW (savebox), "savebox", "Savebox"); - - alignment = gtk_alignment_new (0.5, 0.5, 0, 0); - gtk_box_pack_start (GTK_BOX (dialog->vbox), alignment, TRUE, TRUE, 0); - - savebox->drag_box = gtk_event_box_new (); - gtk_container_set_border_width (GTK_CONTAINER (savebox->drag_box), 4); - gtk_widget_add_events (savebox->drag_box, GDK_BUTTON_PRESS_MASK); - g_signal_connect (savebox->drag_box, "button_press_event", - G_CALLBACK (button_press_over_icon), savebox); - g_signal_connect (savebox, "drag_end", - G_CALLBACK (drag_end), savebox); - g_signal_connect (savebox, "drag_data_get", - G_CALLBACK (drag_data_get), savebox); - gtk_container_add (GTK_CONTAINER (alignment), savebox->drag_box); - - savebox->entry = gtk_entry_new (); - g_signal_connect_swapped (savebox->entry, "activate", - G_CALLBACK (do_save), savebox); - gtk_box_pack_start (GTK_BOX (dialog->vbox), savebox->entry, FALSE, TRUE, 4); - - gtk_widget_show_all (dialog->vbox); - gtk_widget_grab_focus (savebox->entry); - - savebox->discard_area = gtk_hbutton_box_new(); - - button = button_new_mixed (GTK_STOCK_DELETE, "_Discard"); - gtk_box_pack_start (GTK_BOX (savebox->discard_area), button, FALSE, TRUE, 2); - g_signal_connect (button, "clicked", G_CALLBACK (discard_clicked), savebox); - GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - - gtk_box_pack_end (GTK_BOX (dialog->vbox), savebox->discard_area, - FALSE, TRUE, 0); - gtk_box_reorder_child (GTK_BOX (dialog->vbox), savebox->discard_area, 0); - - savebox->dnd_action = GDK_ACTION_COPY; -} - -void -gtk_savebox_set_action (GtkSavebox *savebox, GdkDragAction action) -{ - g_return_if_fail (savebox != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (savebox)); - - savebox->dnd_action = action; -} - -GtkWidget* -gtk_savebox_new (const gchar *action) -{ - GtkWidget *button; - GtkDialog *dialog; - GList *list, *next; - - dialog = GTK_DIALOG (gtk_widget_new (gtk_savebox_get_type(), NULL)); - - gtk_dialog_add_button (dialog, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL); - - button = button_new_mixed (GTK_STOCK_SAVE, action); - GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_widget_show (button); - gtk_dialog_add_action_widget (dialog, button, GTK_RESPONSE_OK); - - gtk_dialog_set_default_response (dialog, GTK_RESPONSE_OK); - - list = gtk_container_get_children (GTK_CONTAINER (dialog->action_area)); - for (next = list; next; next = next->next) - GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET(next->data), GTK_CAN_FOCUS); - g_list_free(list); - - return GTK_WIDGET(dialog); -} - -void -gtk_savebox_set_icon (GtkSavebox *savebox, GdkPixbuf *pixbuf) -{ - g_return_if_fail (savebox != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (savebox)); - g_return_if_fail (pixbuf != NULL); - - if (savebox->icon) - gtk_image_set_from_pixbuf (GTK_IMAGE (savebox->icon), pixbuf); - else - { - savebox->icon = gtk_image_new_from_pixbuf (pixbuf); - gtk_container_add (GTK_CONTAINER (savebox->drag_box), savebox->icon); - gtk_widget_show(savebox->icon); - } -} - -void -gtk_savebox_set_pathname (GtkSavebox *savebox, const gchar *pathname) -{ - const gchar *slash, *dot; - gint leaf; - - g_return_if_fail (savebox != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (savebox)); - g_return_if_fail (pathname != NULL); - - gtk_entry_set_text (GTK_ENTRY (savebox->entry), pathname); - - slash = strrchr (pathname, '/'); - - leaf = slash ? g_utf8_pointer_to_offset(pathname, slash) + 1 : 0; - dot = strchr(pathname + leaf, '.'); - - gtk_editable_select_region (GTK_EDITABLE (savebox->entry), leaf, - dot ? g_utf8_pointer_to_offset (pathname, dot) - : -1); -} - -void -gtk_savebox_set_has_discard (GtkSavebox *savebox, gboolean setting) -{ - if (setting) - gtk_widget_show_all (savebox->discard_area); - else - gtk_widget_hide (savebox->discard_area); -} - -static void -button_press_over_icon (GtkWidget *drag_box, GdkEventButton *event, - GtkSavebox *savebox) -{ - GdkDragContext *context; - const gchar *uri = NULL, *leafname; - - g_return_if_fail (savebox != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (savebox)); - g_return_if_fail (event != NULL); - g_return_if_fail (savebox->icon != NULL); - - savebox->using_xds = FALSE; - savebox->data_sent = FALSE; - context = gtk_drag_begin (GTK_WIDGET (savebox), - savebox->targets, savebox->dnd_action, - event->button, (GdkEvent *) event); - - uri = gtk_entry_get_text (GTK_ENTRY (savebox->entry)); - if (uri && *uri) - leafname = g_basename (uri); - else - leafname = _("Unnamed"); - - write_xds_property (context, leafname); - - gtk_drag_set_icon_pixbuf (context, - gtk_image_get_pixbuf (GTK_IMAGE (savebox->icon)), - event->x, event->y); - -} - -static void -drag_data_get (GtkWidget *widget, - GdkDragContext *context, - GtkSelectionData *selection_data, - guint info, - guint32 time) -{ - GtkSavebox *savebox; - guchar to_send = 'E'; - gchar *uri; - gchar *pathname; - - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (widget)); - g_return_if_fail (context != NULL); - g_return_if_fail (selection_data != NULL); - - savebox = GTK_SAVEBOX (widget); - - /* We're only concerned with the XDS protocol. Responding to other requests - * (including application/octet-stream) is the job of the application. - */ - if (info != GTK_TARGET_XDS) - { - /* Assume that the data will be/has been sent */ - savebox->data_sent = TRUE; - return; - } - - uri = read_xds_property (context, FALSE); - - if (uri) - { - gint result = GTK_XDS_NO_HANDLER; - EscapedPath *escaped_uri; - - /* Escape and then unescape. A little inefficient. */ - escaped_uri = escape_uri_path (uri); - pathname = get_local_path (escaped_uri); -#if 0 - g_print("[ asked to save as '%s' (%s escaped) ]\n", - pathname, (char *) escaped_uri); -#endif - g_free (escaped_uri); - - if (!pathname) - to_send = 'F'; /* Not on the local machine */ - else - { - g_signal_emit (widget, savebox_signals[SAVE_TO_FILE], 0, - pathname, &result); - g_free (pathname); - - if (result == GTK_XDS_SAVED) - { - savebox->data_sent = TRUE; - to_send = 'S'; - } - else if (result != GTK_XDS_SAVE_ERROR) - g_warning ("No handler for saving to a file.\n"); - - g_free (uri); - } - } - else - { - g_warning (_("Remote application wants to use Direct Save, but I can't " - "read the XdndDirectSave0 (type text/plain) property.\n")); - } - - if (to_send != 'E') - savebox->using_xds = TRUE; - gtk_selection_data_set (selection_data, xa_string, 8, &to_send, 1); -} - -/* Result is a UTF-8 encoded path. Not escaped. g_free() the result. */ -static guchar * -read_xds_property (GdkDragContext *context, gboolean delete) -{ - guchar *prop_text; - guint length; - guchar *retval = NULL; - - g_return_val_if_fail (context != NULL, NULL); - - if (gdk_property_get (context->source_window, XdndDirectSave, text_plain, - 0, XDS_MAXURILEN, delete, - NULL, NULL, &length, &prop_text) - && prop_text) - { - /* Terminate the string */ - retval = g_realloc (prop_text, length + 1); - retval[length] = '\0'; - } - - /* Should really do a character set conversation here, but assume UTF-8 */ - - return retval; -} - -static void -write_xds_property (GdkDragContext *context, const guchar *value) -{ - /* XXX: Should set character set to UTF-8 here. Spec says default is - * ISO-8859-1! - */ - - if (value) - { - gdk_property_change (context->source_window, XdndDirectSave, - text_plain, 8, GDK_PROP_MODE_REPLACE, - value, strlen (value)); - } - else - gdk_property_delete (context->source_window, XdndDirectSave); -} - -static void drag_end (GtkWidget *widget, GdkDragContext *context) -{ - g_return_if_fail (widget != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (widget)); - g_return_if_fail (context != NULL); - - if (GTK_SAVEBOX (widget)->using_xds) - { - guchar *uri; - uri = read_xds_property (context, TRUE); - - if (uri) - { - gchar *path; - EscapedPath *escaped_uri; - - escaped_uri = escape_uri_path (uri); - path = get_local_path (escaped_uri); - g_free(escaped_uri); - - g_signal_emit (widget, savebox_signals[SAVED_TO_URI], 0, - path ? path : (const gchar *) uri); - if (path) - g_free (path); - g_free(uri); - - gtk_widget_destroy (widget); - - return; - } - } - else - write_xds_property (context, NULL); - - if (GTK_SAVEBOX (widget)->data_sent) - { - g_signal_emit (widget, savebox_signals[SAVED_TO_URI], 0, NULL); - gtk_widget_destroy (widget); - } -} - -static void discard_clicked (GtkWidget *button, GtkWidget *savebox) -{ - g_signal_emit (savebox, savebox_signals[SAVED_TO_URI], 0, NULL); - gtk_widget_destroy (savebox); -} - -/* User has clicked Save or pressed Return... */ -static void do_save (GtkSavebox *savebox) -{ - gint result = GTK_XDS_NO_HANDLER; - const gchar *uri; - gchar *pathname; - - g_return_if_fail (savebox != NULL); - g_return_if_fail (GTK_IS_SAVEBOX (savebox)); - - uri = gtk_entry_get_text (GTK_ENTRY (savebox->entry)); - - /* This is a bit inefficient... */ { - EscapedPath *escaped_uri; - - escaped_uri = escape_uri_path (uri); - pathname = get_local_path (escaped_uri); - g_free(escaped_uri); - } - - if (!pathname) - { - GtkWidget *dialog; - - dialog = gtk_message_dialog_new (GTK_WINDOW (savebox), - GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_INFO, GTK_BUTTONS_OK, - _("Drag the icon to a directory viewer\n" - "(or enter a full pathname)")); - - gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER); - - gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - return; - } - - g_signal_emit (savebox, savebox_signals[SAVE_TO_FILE], 0, pathname, &result); - - if (result == GTK_XDS_SAVED) - { - g_signal_emit (savebox, savebox_signals[SAVED_TO_URI], 0, pathname); - - gtk_widget_destroy (GTK_WIDGET (savebox)); - } - else if (result == GTK_XDS_NO_HANDLER) - g_warning ("No handler for saving to a file.\n"); - - g_free(pathname); -} - -static void -gtk_savebox_response (GtkDialog *savebox, gint response) -{ - if (response == GTK_RESPONSE_OK) - { - do_save(GTK_SAVEBOX(savebox)); - return; - } - else if (response == GTK_RESPONSE_CANCEL) - gtk_widget_destroy (GTK_WIDGET (savebox)); -} - -static void -gtk_savebox_set_property (GObject *object, - guint prop_id, - const GValue *value, - GParamSpec *pspec) -{ - switch (prop_id) - { - case PROP_HAS_DISCARD: - gtk_savebox_set_has_discard (GTK_SAVEBOX(object), - g_value_get_boolean (value)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gtk_savebox_get_property (GObject *object, - guint prop_id, - GValue *value, - GParamSpec *pspec) -{ - GtkSavebox *savebox; - - savebox = GTK_SAVEBOX (object); - - switch (prop_id) - { - case PROP_HAS_DISCARD: - g_value_set_boolean (value, GTK_WIDGET_VISIBLE(savebox->discard_area)); - break; - - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -void -marshal_INT__STRING (GClosure *closure, - GValue *return_value, - guint n_param_values, - const GValue *param_values, - gpointer invocation_hint, - gpointer marshal_data) -{ - typedef gint (*GMarshalFunc_INT__STRING) (gpointer data1, - gpointer arg_1, - gpointer data2); - register GMarshalFunc_INT__STRING callback; - register GCClosure *cc = (GCClosure*) closure; - register gpointer data1, data2; - gint v_return; - - g_return_if_fail (return_value != NULL); - g_return_if_fail (n_param_values == 2); - - if (G_CCLOSURE_SWAP_DATA (closure)) - { - data1 = closure->data; - data2 = g_value_peek_pointer (param_values + 0); - } - else - { - data1 = g_value_peek_pointer (param_values + 0); - data2 = closure->data; - } - callback = (GMarshalFunc_INT__STRING) - (marshal_data ? marshal_data : cc->callback); - - v_return = callback (data1, param_values[1].data[0].v_pointer, data2); - - g_value_set_int (return_value, v_return); -} diff --git a/ROX-Filer/src/gtksavebox.h b/ROX-Filer/src/gtksavebox.h deleted file mode 100644 index 04e16b48..00000000 --- a/ROX-Filer/src/gtksavebox.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * SaveBox widget for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef __GTK_SAVEBOX_H__ -#define __GTK_SAVEBOX_H__ - - -#include -#include -#include - - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* This is for the 'info' value of the GtkTargetList. - * It's for the XdndDirectSave0 target - ignore requests for this target - * because they're handled internally by the widget. Don't use this - * value for anything else! - */ -#define GTK_TARGET_XDS 0x584453 - -#define GTK_TYPE_SAVEBOX (gtk_savebox_get_type ()) - -#define GTK_SAVEBOX(obj) \ - (GTK_CHECK_CAST ((obj), GTK_TYPE_SAVEBOX, GtkSavebox)) - -#define GTK_SAVEBOX_CLASS(klass) \ - (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_SAVEBOX, GtkSaveboxClass)) - -#define GTK_IS_SAVEBOX(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SAVEBOX)) - -#define GTK_IS_SAVEBOX_CLASS(klass) \ - (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SAVEBOX)) - - -typedef struct _GtkSavebox GtkSavebox; -typedef struct _GtkSaveboxClass GtkSaveboxClass; -typedef struct _GtkSaveboxButton GtkSaveboxButton; - -enum { - GTK_XDS_SAVED, /* Done the save - no problem */ - GTK_XDS_SAVE_ERROR, /* Error during save - reported */ - GTK_XDS_NO_HANDLER, /* Used internally (sanity checking) */ -}; - -struct _GtkSavebox -{ - GtkDialog dialog; - - GtkWidget *discard_area; /* Normally hidden */ - GtkWidget *drag_box; /* Event box - contains pixmap, or NULL */ - GtkWidget *icon; /* The pixmap widget */ - GtkWidget *entry; /* Where the pathname goes */ - - GtkTargetList *targets; /* Formats that we can save in */ - gboolean using_xds; /* Have we sent XDS reply 'S' or 'F' yet? */ - gboolean data_sent; /* Did we send any data at all this drag? */ - - GdkDragAction dnd_action; -}; - -struct _GtkSaveboxClass -{ - GtkDialogClass parent_class; - - gint (*save_to_file) (GtkSavebox *savebox, guchar *pathname); - void (*saved_to_uri) (GtkSavebox *savebox, guchar *uri); -}; - - -GType gtk_savebox_get_type (void); -GtkWidget* gtk_savebox_new (const gchar *action); -void gtk_savebox_set_icon (GtkSavebox *savebox, - GdkPixbuf *pixbuf); -void gtk_savebox_set_pathname (GtkSavebox *savebox, - const gchar *pathname); -void gtk_savebox_set_has_discard (GtkSavebox *savebox, gboolean setting); -void gtk_savebox_set_action (GtkSavebox *savebox, - GdkDragAction action); - - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - - -#endif /* __GTK_SAVEBOX_H__ */ diff --git a/ROX-Filer/src/gui_support.c b/ROX-Filer/src/gui_support.c deleted file mode 100644 index d2435763..00000000 --- a/ROX-Filer/src/gui_support.c +++ /dev/null @@ -1,1748 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* gui_support.c - general (GUI) support routines */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include "global.h" - -#include "main.h" -#include "gui_support.h" -#include "support.h" -#include "pixmaps.h" -#include "choices.h" -#include "options.h" -#include "run.h" - -gint screen_width, screen_height; - -gint n_monitors; -GdkRectangle *monitor_geom = NULL; -gint monitor_width, monitor_height; -MonitorAdjacent *monitor_adjacent; - -static GdkAtom xa_cardinal; -GdkAtom xa__NET_WORKAREA = GDK_NONE; -GdkAtom xa__NET_WM_DESKTOP = GDK_NONE; -GdkAtom xa__NET_CURRENT_DESKTOP = GDK_NONE; -GdkAtom xa__NET_NUMBER_OF_DESKTOPS = GDK_NONE; - -static GtkWidget *current_dialog = NULL; - -static GtkWidget *tip_widget = NULL; -static time_t tip_time = 0; /* Time tip widget last closed */ -static gint tip_timeout = 0; /* When primed */ - -/* Static prototypes */ -static void run_error_info_dialog(GtkMessageType type, const char *message, - va_list args); -static GType simple_image_get_type(void); -static void gui_get_monitor_adjacent(int monitor, MonitorAdjacent *adj); - -void gui_store_screen_geometry(GdkScreen *screen) -{ - gint mon; - - screen_width = gdk_screen_get_width(screen); - screen_height = gdk_screen_get_height(screen); - - if (monitor_adjacent) - g_free(monitor_adjacent); - - monitor_width = monitor_height = G_MAXINT; - n_monitors = gdk_screen_get_n_monitors(screen); - if (monitor_geom) - g_free(monitor_geom); - monitor_geom = g_new(GdkRectangle, n_monitors ? n_monitors : 1); - - if (n_monitors) - { - for (mon = 0; mon < n_monitors; ++mon) - { - gdk_screen_get_monitor_geometry(screen, mon, - &monitor_geom[mon]); - if (monitor_geom[mon].width < monitor_width) - monitor_width = monitor_geom[mon].width; - if (monitor_geom[mon].height < monitor_height) - monitor_height = monitor_geom[mon].height; - } - monitor_adjacent = g_new(MonitorAdjacent, n_monitors); - for (mon = 0; mon < n_monitors; ++mon) - { - gui_get_monitor_adjacent(mon, &monitor_adjacent[mon]); - } - } - else - { - n_monitors = 1; - monitor_geom[0].x = monitor_geom[0].y = 0; - monitor_width = monitor_geom[0].width = screen_width; - monitor_height = monitor_geom[0].height = screen_height; - monitor_adjacent = g_new0(MonitorAdjacent, 1); - } - -} - -void gui_support_init() -{ - gpointer klass; - - xa_cardinal = gdk_atom_intern("CARDINAL", FALSE); - xa__NET_WORKAREA = gdk_atom_intern("_NET_WORKAREA", FALSE); - xa__NET_WM_DESKTOP = gdk_atom_intern("_NET_WM_DESKTOP", FALSE); - xa__NET_CURRENT_DESKTOP = gdk_atom_intern("_NET_CURRENT_DESKTOP", - FALSE); - xa__NET_NUMBER_OF_DESKTOPS = gdk_atom_intern("_NET_NUMBER_OF_DESKTOPS", - FALSE); - - gui_store_screen_geometry(gdk_screen_get_default()); - - /* Work around the scrollbar placement bug */ - klass = g_type_class_ref(gtk_scrolled_window_get_type()); - ((GtkScrolledWindowClass *) klass)->scrollbar_spacing = 0; - /* (don't unref, ever) */ -} - -/* Open a modal dialog box showing a message. - * The user can choose from a selection of buttons at the bottom. - * Returns -1 if the window is destroyed, or the number of the button - * if one is clicked (starting from zero). - * - * If a dialog is already open, returns -1 without waiting AND - * brings the current dialog to the front. - * - * Each button has two arguments, a GTK_STOCK icon and some text. If the - * text is NULL, the stock's text is used. - */ -int get_choice(const char *title, - const char *message, - int number_of_buttons, ...) -{ - GtkWidget *dialog; - GtkWidget *button = NULL; - int i, retval; - va_list ap; - - if (current_dialog) - { - gtk_widget_hide(current_dialog); - gtk_widget_show(current_dialog); - return -1; - } - - current_dialog = dialog = gtk_message_dialog_new(NULL, - GTK_DIALOG_MODAL, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_NONE, - "%s", message); - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); - - va_start(ap, number_of_buttons); - - for (i = 0; i < number_of_buttons; i++) - { - const char *stock = va_arg(ap, char *); - const char *text = va_arg(ap, char *); - - if (text) - button = button_new_mixed(stock, text); - else - button = gtk_button_new_from_stock(stock); - - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_widget_show(button); - - gtk_dialog_add_action_widget(GTK_DIALOG(current_dialog), - button, i); - } - - gtk_window_set_title(GTK_WINDOW(dialog), title); - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_CENTER); - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), i - 1); - - va_end(ap); - - retval = gtk_dialog_run(GTK_DIALOG(dialog)); - if (retval == GTK_RESPONSE_NONE) - retval = -1; - gtk_widget_destroy(dialog); - - current_dialog = NULL; - - return retval; -} - -void info_message(const char *message, ...) -{ - va_list args; - - va_start(args, message); - - run_error_info_dialog(GTK_MESSAGE_INFO, message, args); -} - -/* Display a message in a window with "ROX-Filer" as title */ -void report_error(const char *message, ...) -{ - va_list args; - - va_start(args, message); - - run_error_info_dialog(GTK_MESSAGE_ERROR, message, args); -} - -void set_cardinal_property(GdkWindow *window, GdkAtom prop, gulong value) -{ - gdk_property_change(window, prop, xa_cardinal, 32, - GDK_PROP_MODE_REPLACE, (gchar *) &value, 1); -} - -gboolean get_cardinal_property(GdkWindow *window, GdkAtom prop, gulong length, - gulong *data, gint *actual_length) -{ - GdkAtom actual_type; - gint actual_format, act_length; - guchar *d; - gulong *p; - int i; - gboolean ok; - - /* Cardinals are format=32 so the length in bytes is 4 * number of - * cardinals */ - ok=gdk_property_get(window, prop, xa_cardinal, - 0, length*4, FALSE, - &actual_type, &actual_format, - &act_length, &d); - - if(!ok) - return FALSE; - - /* Check correct format */ - if(actual_format!=32) - { - g_free(d); - return FALSE; - } - - /* Actual data for cardinals returned as longs, which may be 64 bit */ - if(act_length/sizeof(gulong)>length) - { - g_free(d); - return FALSE; - } - - /* Copy data into return array */ - p=(gulong *) d; - for(i=0; iwindow; - long wm_hints_values[] = {1, False, 0, 0, 0, 0, 0, 0}; - GdkAtom wm_protocols[2]; - - g_return_if_fail(window != NULL); - - if (o_override_redirect.int_value) - { - gdk_window_set_override_redirect(window, TRUE); - return; - } - - if (need_init) - { - xa_win_hints = gdk_atom_intern("_WIN_HINTS", FALSE); - xa_state = gdk_atom_intern("_WIN_STATE", FALSE); - xa_atom = gdk_atom_intern("ATOM", FALSE); - xa_hints = gdk_atom_intern("WM_HINTS", FALSE); - - need_init = FALSE; - } - - gdk_window_set_decorations(window, 0); - gdk_window_set_functions(window, 0); - gtk_window_set_resizable(GTK_WINDOW(widget), FALSE); - - /* Don't hide panel/pinboard windows initially (WIN_STATE_HIDDEN). - * Needed for IceWM - Christopher Arndt - */ - set_cardinal_property(window, xa_state, - WIN_STATE_STICKY | - WIN_STATE_FIXED_POSITION | WIN_STATE_ARRANGE_IGNORE); - - set_cardinal_property(window, xa_win_hints, - WIN_HINTS_SKIP_FOCUS | WIN_HINTS_SKIP_WINLIST | - WIN_HINTS_SKIP_TASKBAR); - - /* Appear on all workspaces */ - set_cardinal_property(window, xa__NET_WM_DESKTOP, 0xffffffff); - - gdk_property_change(window, xa_hints, xa_hints, 32, - GDK_PROP_MODE_REPLACE, (guchar *) wm_hints_values, - sizeof(wm_hints_values) / sizeof(long)); - - wm_protocols[0] = gdk_atom_intern("WM_DELETE_WINDOW", FALSE); - wm_protocols[1] = gdk_atom_intern("_NET_WM_PING", FALSE); - gdk_property_change(window, - gdk_atom_intern("WM_PROTOCOLS", FALSE), xa_atom, 32, - GDK_PROP_MODE_REPLACE, (guchar *) wm_protocols, - sizeof(wm_protocols) / sizeof(GdkAtom)); - - gdk_window_set_skip_taskbar_hint(window, TRUE); - gdk_window_set_skip_pager_hint(window, TRUE); - - if (g_object_class_find_property(G_OBJECT_GET_CLASS(widget), - "accept_focus")) - { - GValue vfalse = { 0, }; - g_value_init(&vfalse, G_TYPE_BOOLEAN); - g_value_set_boolean(&vfalse, FALSE); - g_object_set_property(G_OBJECT(widget), - "accept_focus", &vfalse); - g_value_unset(&vfalse); - } -} - -static gboolean error_idle_cb(gpointer data) -{ - char **error = (char **) data; - - report_error("%s", *error); - null_g_free(error); - - one_less_window(); - return FALSE; -} - -/* Display an error with "ROX-Filer" as title next time we are idle. - * If multiple errors are reported this way before the window is opened, - * all are displayed in a single window. - * If an error is reported while the error window is open, it is discarded. - */ -void delayed_error(const char *error, ...) -{ - static char *delayed_error_data = NULL; - char *old, *new; - va_list args; - - g_return_if_fail(error != NULL); - - old = delayed_error_data; - - va_start(args, error); - new = g_strdup_vprintf(error, args); - va_end(args); - - if (old) - { - delayed_error_data = g_strconcat(old, - _("\n---\n"), - new, NULL); - g_free(old); - g_free(new); - } - else - { - delayed_error_data = new; - g_idle_add(error_idle_cb, &delayed_error_data); - - number_of_windows++; - } -} - -/* Load the file into memory. Return TRUE on success. - * Block is zero terminated (but this is not included in the length). - */ -gboolean load_file(const char *pathname, char **data_out, long *length_out) -{ - gsize len; - GError *error = NULL; - - if (!g_file_get_contents(pathname, data_out, &len, &error)) - { - delayed_error("%s", error->message); - g_error_free(error); - return FALSE; - } - - if (length_out) - *length_out = len; - return TRUE; -} - -GtkWidget *new_help_button(HelpFunc show_help, gpointer data) -{ - GtkWidget *b, *icon; - - b = gtk_button_new(); - gtk_button_set_relief(GTK_BUTTON(b), GTK_RELIEF_NONE); - icon = gtk_image_new_from_stock(GTK_STOCK_HELP, - GTK_ICON_SIZE_SMALL_TOOLBAR); - gtk_container_add(GTK_CONTAINER(b), icon); - g_signal_connect_swapped(b, "clicked", G_CALLBACK(show_help), data); - - GTK_WIDGET_UNSET_FLAGS(b, GTK_CAN_FOCUS); - - return b; -} - -/* Read file into memory. Call parse_line(guchar *line) for each line - * in the file. Callback returns NULL on success, or an error message - * if something went wrong. Only the first error is displayed to the user. - */ -void parse_file(const char *path, ParseFunc *parse_line) -{ - char *data; - long length; - gboolean seen_error = FALSE; - - if (load_file(path, &data, &length)) - { - char *eol; - const char *error; - char *line = data; - int line_number = 1; - - if (strncmp(data, "message : "(null)"); - g_error_free(error); - - return 0; - } - - return pid; -} - -GtkWidget *button_new_image_text(GtkWidget *image, const char *message) -{ - GtkWidget *button, *align, *hbox, *label; - - button = gtk_button_new(); - label = gtk_label_new_with_mnemonic(message); - gtk_label_set_mnemonic_widget(GTK_LABEL(label), button); - - hbox = gtk_hbox_new(FALSE, 2); - - align = gtk_alignment_new(0.5, 0.5, 0.0, 0.0); - - gtk_box_pack_start(GTK_BOX(hbox), image, FALSE, FALSE, 0); - gtk_box_pack_end(GTK_BOX(hbox), label, FALSE, FALSE, 0); - - gtk_container_add(GTK_CONTAINER(button), align); - gtk_container_add(GTK_CONTAINER(align), hbox); - gtk_widget_show_all(align); - - return button; -} - -GtkWidget *button_new_mixed(const char *stock, const char *message) -{ - return button_new_image_text(gtk_image_new_from_stock(stock, - GTK_ICON_SIZE_BUTTON), - message); -} - -/* Highlight entry in red if 'error' is TRUE */ -void entry_set_error(GtkWidget *entry, gboolean error) -{ - const GdkColor red = {0, 0xffff, 0, 0}; - const GdkColor white = {0, 0xffff, 0xffff, 0xffff}; - - gtk_widget_modify_text(entry, GTK_STATE_NORMAL, error ? &red : NULL); - gtk_widget_modify_base(entry, GTK_STATE_NORMAL, error ? &white : NULL); -} - -/* Change stacking position of higher to be just above lower. - * If lower is NULL, put higher at the bottom of the stack. - */ -void window_put_just_above(GdkWindow *higher, GdkWindow *lower) -{ - if (o_override_redirect.int_value && lower) - { - XWindowChanges restack; - - gdk_error_trap_push(); - - restack.stack_mode = Above; - - restack.sibling = GDK_WINDOW_XWINDOW(lower); - - XConfigureWindow(gdk_display, GDK_WINDOW_XWINDOW(higher), - CWSibling | CWStackMode, &restack); - - gdk_flush(); - if (gdk_error_trap_pop()) - g_warning("window_put_just_above()\n"); - } - else - gdk_window_lower(higher); /* To bottom of stack */ -} - -/* Copied from Gtk */ -static GtkFixedChild* fixed_get_child(GtkFixed *fixed, GtkWidget *widget) -{ - GList *children; - - children = fixed->children; - while (children) - { - GtkFixedChild *child; - - child = children->data; - children = children->next; - - if (child->widget == widget) - return child; - } - - return NULL; -} - -/* Like gtk_fixed_move(), except not insanely slow */ -void fixed_move_fast(GtkFixed *fixed, GtkWidget *widget, int x, int y) -{ - GtkFixedChild *child; - - child = fixed_get_child(fixed, widget); - - g_assert(child); - - gtk_widget_freeze_child_notify(widget); - - child->x = x; - gtk_widget_child_notify(widget, "x"); - - child->y = y; - gtk_widget_child_notify(widget, "y"); - - gtk_widget_thaw_child_notify(widget); - - if (GTK_WIDGET_VISIBLE(widget) && GTK_WIDGET_VISIBLE(fixed)) - { - int border_width = GTK_CONTAINER(fixed)->border_width; - GtkAllocation child_allocation; - GtkRequisition child_requisition; - - gtk_widget_get_child_requisition(child->widget, - &child_requisition); - child_allocation.x = child->x + border_width; - child_allocation.y = child->y + border_width; - - child_allocation.x += GTK_WIDGET(fixed)->allocation.x; - child_allocation.y += GTK_WIDGET(fixed)->allocation.y; - - child_allocation.width = child_requisition.width; - child_allocation.height = child_requisition.height; - gtk_widget_size_allocate(child->widget, &child_allocation); - } -} - -/* Draw the black border */ -static gint tooltip_draw(GtkWidget *w) -{ - gdk_draw_rectangle(w->window, w->style->fg_gc[w->state], FALSE, 0, 0, - w->allocation.width - 1, w->allocation.height - 1); - - return FALSE; -} - -/* When the tips window closed, record the time. If we try to open another - * tip soon, it will appear more quickly. - */ -static void tooltip_destroyed(gpointer data) -{ - time(&tip_time); -} - -/* Display a tooltip-like widget near the pointer with 'text'. If 'text' is - * NULL, close any current tooltip. - */ -void tooltip_show(guchar *text) -{ - GtkWidget *label; - int x, y, py; - int w, h; - int m; - - if (tip_timeout) - { - g_source_remove(tip_timeout); - tip_timeout = 0; - } - - if (tip_widget) - { - gtk_widget_destroy(tip_widget); - tip_widget = NULL; - } - - if (!text) - return; - - /* Show the tip */ - tip_widget = gtk_window_new(GTK_WINDOW_POPUP); - gtk_widget_set_app_paintable(tip_widget, TRUE); - gtk_widget_set_name(tip_widget, "gtk-tooltips"); - - g_signal_connect_swapped(tip_widget, "expose_event", - G_CALLBACK(tooltip_draw), tip_widget); - - label = gtk_label_new(text); - gtk_misc_set_padding(GTK_MISC(label), 4, 2); - gtk_container_add(GTK_CONTAINER(tip_widget), label); - gtk_widget_show(label); - gtk_widget_realize(tip_widget); - - w = tip_widget->allocation.width; - h = tip_widget->allocation.height; - gdk_window_get_pointer(NULL, &x, &py, NULL); - - m = gdk_screen_get_monitor_at_point(gdk_screen_get_default(), x, py); - - x -= w / 2; - y = py + 12; /* I don't know the pointer height so I use a constant */ - - /* Now check for screen boundaries */ - x = CLAMP(x, monitor_geom[m].x, - monitor_geom[m].x + monitor_geom[m].width - w); - y = CLAMP(y, monitor_geom[m].y, - monitor_geom[m].y + monitor_geom[m].height - h); - - /* And again test if pointer is over the tooltip window */ - if (py >= y && py <= y + h) - y = py - h - 2; - gtk_window_move(GTK_WINDOW(tip_widget), x, y); - gtk_widget_show(tip_widget); - - g_signal_connect_swapped(tip_widget, "destroy", - G_CALLBACK(tooltip_destroyed), NULL); - time(&tip_time); -} - -/* Call callback(user_data) after a while, unless cancelled. - * Object is refd now and unref when cancelled / after callback called. - */ -void tooltip_prime(GtkFunction callback, GObject *object) -{ - time_t now; - int delay; - - g_return_if_fail(tip_timeout == 0); - - time(&now); - delay = now - tip_time > 2 ? 1000 : 200; - - g_object_ref(object); - tip_timeout = g_timeout_add_full(G_PRIORITY_DEFAULT_IDLE, - delay, - (GSourceFunc) callback, - object, - g_object_unref); -} - -/* Like gtk_widget_modify_font, but copes with font_desc == NULL */ -void widget_modify_font(GtkWidget *widget, PangoFontDescription *font_desc) -{ - GtkRcStyle *rc_style; - - g_return_if_fail(GTK_IS_WIDGET(widget)); - - rc_style = gtk_widget_get_modifier_style(widget); - - if (rc_style->font_desc) - pango_font_description_free(rc_style->font_desc); - - rc_style->font_desc = font_desc - ? pango_font_description_copy(font_desc) - : NULL; - - gtk_widget_modify_style(widget, rc_style); -} - -/* Confirm the action with the user. If action is NULL, the text from stock - * is used. - */ -gboolean confirm(const gchar *message, const gchar *stock, const gchar *action) -{ - return get_choice(PROJECT, message, 2, - GTK_STOCK_CANCEL, NULL, - stock, action) == 1; -} - -struct _Radios { - GList *widgets; - - void (*changed)(Radios *, gpointer data); - gpointer changed_data; -}; - -/* Create a new set of radio buttons. - * Use radios_add to add options, then radios_pack to put them into something. - * The radios object will self-destruct with the first widget it contains. - * changed(data) is called (if not NULL) when pack is called, and on any - * change after that. - */ -Radios *radios_new(void (*changed)(Radios *, gpointer data), gpointer data) -{ - Radios *radios; - - radios = g_new(Radios, 1); - - radios->widgets = NULL; - radios->changed = changed; - radios->changed_data = data; - - return radios; -} - -static void radios_free(GtkWidget *radio, Radios *radios) -{ - g_return_if_fail(radios != NULL); - - g_list_free(radios->widgets); - g_free(radios); -} - -void radios_add(Radios *radios, const gchar *tip, gint value, - const gchar *label, ...) -{ - GtkWidget *radio; - GSList *group = NULL; - gchar *s; - va_list args; - - g_return_if_fail(radios != NULL); - g_return_if_fail(label != NULL); - - va_start(args, label); - s = g_strdup_vprintf(label, args); - va_end(args); - - if (radios->widgets) - { - GtkRadioButton *first = GTK_RADIO_BUTTON(radios->widgets->data); - group = gtk_radio_button_get_group(first); - } - - radio = gtk_radio_button_new_with_label(group, s); - gtk_label_set_line_wrap(GTK_LABEL(GTK_BIN(radio)->child), TRUE); - gtk_widget_show(radio); - if (tip) - gtk_tooltips_set_tip(tooltips, radio, tip, NULL); - if (!group) - g_signal_connect(G_OBJECT(radio), "destroy", - G_CALLBACK(radios_free), radios); - - radios->widgets = g_list_prepend(radios->widgets, radio); - g_object_set_data(G_OBJECT(radio), "rox-radios-value", - GINT_TO_POINTER(value)); -} - -static void radio_toggled(GtkToggleButton *button, Radios *radios) -{ - g_return_if_fail(radios != NULL); - - if (button && !gtk_toggle_button_get_active(button)) - return; /* Stop double-notifies */ - - if (radios->changed) - radios->changed(radios, radios->changed_data); -} - -void radios_pack(Radios *radios, GtkBox *box) -{ - GList *next; - - g_return_if_fail(radios != NULL); - - for (next = g_list_last(radios->widgets); next; next = next->prev) - { - GtkWidget *button = GTK_WIDGET(next->data); - - gtk_box_pack_start(box, button, FALSE, TRUE, 0); - g_signal_connect(button, "toggled", - G_CALLBACK(radio_toggled), radios); - } - radio_toggled(NULL, radios); -} - -void radios_set_value(Radios *radios, gint value) -{ - GList *next; - - g_return_if_fail(radios != NULL); - - for (next = radios->widgets; next; next = next->next) - { - GtkToggleButton *radio = GTK_TOGGLE_BUTTON(next->data); - int radio_value; - - radio_value = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(radio), - "rox-radios-value")); - - if (radio_value == value) - { - gtk_toggle_button_set_active(radio, TRUE); - return; - } - } - - g_warning("Value %d not in radio group!", value); -} - -gint radios_get_value(Radios *radios) -{ - GList *next; - - g_return_val_if_fail(radios != NULL, -1); - - for (next = radios->widgets; next; next = next->next) - { - GtkToggleButton *radio = GTK_TOGGLE_BUTTON(next->data); - - if (gtk_toggle_button_get_active(radio)) - return GPOINTER_TO_INT(g_object_get_data( - G_OBJECT(radio), "rox-radios-value")); - } - - g_warning("Nothing in the radio group is selected!"); - - return -1; -} - -/* Convert a list of URIs as a string into a GList of EscapedPath URIs. - * No unescaping is done. - * Lines beginning with # are skipped. - * The text block passed in is zero terminated (after the final CRLF) - */ -GList *uri_list_to_glist(const char *uri_list) -{ - GList *list = NULL; - - while (*uri_list) - { - char *linebreak; - int length; - - linebreak = strchr(uri_list, 13); - - if (!linebreak || linebreak[1] != 10) - { - g_warning("uri_list_to_glist: %s", - _("Incorrect or missing line " - "break in text/uri-list data")); - /* If this is the first, append it anyway (Firefox - * 3.5) */ - if (!list && uri_list[0] != '#') - list = g_list_append(list, g_strdup(uri_list)); - return list; - } - - length = linebreak - uri_list; - - if (length && uri_list[0] != '#') - list = g_list_append(list, g_strndup(uri_list, length)); - - uri_list = linebreak + 2; - } - - return list; -} - -typedef struct _SimpleImageClass SimpleImageClass; -typedef struct _SimpleImage SimpleImage; - -struct _SimpleImageClass { - GtkWidgetClass parent; -}; - -struct _SimpleImage { - GtkWidget widget; - - GdkPixbuf *pixbuf; - int width, height; -}; - -#define SIMPLE_IMAGE(obj) (GTK_CHECK_CAST((obj), \ - simple_image_get_type(), SimpleImage)) - -static void simple_image_finialize(GObject *object) -{ - SimpleImage *image = SIMPLE_IMAGE(object); - - g_object_unref(G_OBJECT(image->pixbuf)); - image->pixbuf = NULL; -} - -static void simple_image_size_request(GtkWidget *widget, - GtkRequisition *requisition) -{ - SimpleImage *image = (SimpleImage *) widget; - - requisition->width = image->width; - requisition->height = image->height; -} - -/* Render a pixbuf without messing up the clipping */ -void render_pixbuf(GdkPixbuf *pixbuf, GdkDrawable *target, GdkGC *gc, - int x, int y, int width, int height) -{ - gdk_draw_pixbuf(target, gc, pixbuf, 0, 0, x, y, width, height, - GDK_RGB_DITHER_NORMAL, 0, 0); - -} - -static gint simple_image_expose(GtkWidget *widget, GdkEventExpose *event) -{ - SimpleImage *image = (SimpleImage *) widget; - int x; - - gdk_gc_set_clip_region(widget->style->black_gc, event->region); - - x = widget->allocation.x + - (widget->allocation.width - image->width) / 2; - - render_pixbuf(image->pixbuf, widget->window, widget->style->black_gc, - x, widget->allocation.y, - image->width, image->height); - - gdk_gc_set_clip_region(widget->style->black_gc, NULL); - return FALSE; -} - -static void simple_image_class_init(gpointer gclass, gpointer data) -{ - GObjectClass *object = (GObjectClass *) gclass; - GtkWidgetClass *widget = (GtkWidgetClass *) gclass; - - object->finalize = simple_image_finialize; - widget->size_request = simple_image_size_request; - widget->expose_event = simple_image_expose; -} - -static void simple_image_init(GTypeInstance *object, gpointer gclass) -{ - GTK_WIDGET_SET_FLAGS(object, GTK_NO_WINDOW); -} - -static GType simple_image_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (SimpleImageClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - simple_image_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(SimpleImage), - 0, /* n_preallocs */ - simple_image_init, - }; - - type = g_type_register_static(gtk_widget_get_type(), - "SimpleImage", &info, 0); - } - - return type; -} - -GtkWidget *simple_image_new(GdkPixbuf *pixbuf) -{ - SimpleImage *image; - - g_return_val_if_fail(pixbuf != NULL, NULL); - - image = g_object_new(simple_image_get_type(), NULL); - - image->pixbuf = pixbuf; - g_object_ref(G_OBJECT(pixbuf)); - - image->width = gdk_pixbuf_get_width(pixbuf); - image->height = gdk_pixbuf_get_height(pixbuf); - - return GTK_WIDGET(image); -} - -/* Whether a line l1 long starting from n1 overlaps a line l2 from n2 */ -inline static gboolean gui_ranges_overlap(int n1, int l1, int n2, int l2) -{ - return (n1 > n2 && n1 < n2 + l2) || - (n1 + l1 > n2 && n1 + l1 < n2 + l2) || - (n1 <= n2 && n1 + l1 >= n2 + l2); -} - -static void gui_get_monitor_adjacent(int monitor, MonitorAdjacent *adj) -{ - int m; - - adj->left = adj->right = adj->top = adj->bottom = FALSE; - - for (m = 0; m < n_monitors; ++m) - { - if (m == monitor) - continue; - if (gui_ranges_overlap(monitor_geom[m].y, - monitor_geom[m].height, - monitor_geom[monitor].y, - monitor_geom[monitor].height)) - { - if (monitor_geom[m].x < monitor_geom[monitor].x) - { - adj->left = TRUE; - } - else if (monitor_geom[m].x > monitor_geom[monitor].x) - { - adj->right = TRUE; - } - } - if (gui_ranges_overlap(monitor_geom[m].x, - monitor_geom[m].width, - monitor_geom[monitor].x, - monitor_geom[monitor].width)) - { - if (monitor_geom[m].y < monitor_geom[monitor].y) - { - adj->top = TRUE; - } - else if (monitor_geom[m].y > monitor_geom[monitor].y) - { - adj->bottom = TRUE; - } - } - } -} - -static void rox_wmspec_change_state(gboolean add, GdkWindow *window, - GdkAtom state1, GdkAtom state2) -{ - GdkDisplay *display = gdk_drawable_get_display(GDK_DRAWABLE(window)); - XEvent xev; - -#define _NET_WM_STATE_REMOVE 0 /* remove/unset property */ -#define _NET_WM_STATE_ADD 1 /* add/set property */ -#define _NET_WM_STATE_TOGGLE 2 /* toggle property */ - - xev.xclient.type = ClientMessage; - xev.xclient.serial = 0; - xev.xclient.send_event = True; - xev.xclient.window = GDK_WINDOW_XID(window); - xev.xclient.message_type = gdk_x11_get_xatom_by_name_for_display( - display, "_NET_WM_STATE"); - xev.xclient.format = 32; - xev.xclient.data.l[0] = add ? _NET_WM_STATE_ADD : _NET_WM_STATE_REMOVE; - xev.xclient.data.l[1] = gdk_x11_atom_to_xatom_for_display(display, - state1); - xev.xclient.data.l[2] = gdk_x11_atom_to_xatom_for_display(display, - state2); - xev.xclient.data.l[3] = 0; - xev.xclient.data.l[4] = 0; - - XSendEvent(GDK_DISPLAY_XDISPLAY(display), - GDK_WINDOW_XID( - gdk_screen_get_root_window( - gdk_drawable_get_screen(GDK_DRAWABLE(window)))), - False, - SubstructureRedirectMask | SubstructureNotifyMask, - &xev); -} - -/* Tell the window manager whether to keep this window below others. */ -void keep_below(GdkWindow *window, gboolean setting) -{ - g_return_if_fail(GDK_IS_WINDOW(window)); - - if (GDK_WINDOW_DESTROYED(window)) - return; - - if (gdk_window_is_visible(window)) - { - if (setting) - { - rox_wmspec_change_state(FALSE, window, - gdk_atom_intern("_NET_WM_STATE_ABOVE", FALSE), - GDK_NONE); - } - rox_wmspec_change_state(setting, window, - gdk_atom_intern("_NET_WM_STATE_BELOW", FALSE), - GDK_NONE); - } -#if 0 - else - { -#if GTK_CHECK_VERSION(2,4,0) - gdk_synthesize_window_state(window, - setting ? GDK_WINDOW_STATE_ABOVE : - GDK_WINDOW_STATE_BELOW, - setting ? GDK_WINDOW_STATE_BELOW : 0); -#endif - } -#endif -} - -static void -size_prepared_cb (GdkPixbufLoader *loader, - int width, - int height, - gpointer data) -{ - struct { - gint width; - gint height; - gboolean preserve_aspect_ratio; - } *info = data; - - g_return_if_fail (width > 0 && height > 0); - - if(info->preserve_aspect_ratio) { - if ((double)height * (double)info->width > - (double)width * (double)info->height) { - width = 0.5 + (double)width * (double)info->height / (double)height; - height = info->height; - } else { - height = 0.5 + (double)height * (double)info->width / (double)width; - width = info->width; - } - } else { - width = info->width; - height = info->height; - } - - gdk_pixbuf_loader_set_size (loader, width, height); -} - -/** - * rox_pixbuf_new_from_file_at_scale: - * @filename: Name of file to load. - * @width: The width the image should have - * @height: The height the image should have - * @preserve_aspect_ratio: %TRUE to preserve the image's aspect ratio - * @error: Return location for an error - * - * Creates a new pixbuf by loading an image from a file. The file format is - * detected automatically. If %NULL is returned, then @error will be set. - * Possible errors are in the #GDK_PIXBUF_ERROR and #G_FILE_ERROR domains. - * The image will be scaled to fit in the requested size, optionally preserving - * the image's aspect ratio. - * - * Return value: A newly-created pixbuf with a reference count of 1, or %NULL - * if any of several error conditions occurred: the file could not be opened, - * there was no loader for the file's format, there was not enough memory to - * allocate the image buffer, or the image file contained invalid data. - * - * Taken from GTK 2.6. - **/ -GdkPixbuf * -rox_pixbuf_new_from_file_at_scale (const char *filename, - int width, - int height, - gboolean preserve_aspect_ratio, - GError **error) -{ - - GdkPixbufLoader *loader; - GdkPixbuf *pixbuf; - - guchar buffer [4096]; - int length; - FILE *f; - struct { - gint width; - gint height; - gboolean preserve_aspect_ratio; - } info; - - g_return_val_if_fail (filename != NULL, NULL); - g_return_val_if_fail (width > 0 && height > 0, NULL); - - f = fopen (filename, "rb"); - if (!f) { - gchar *utf8_filename = g_filename_to_utf8 (filename, -1, - NULL, NULL, NULL); - g_set_error (error, - G_FILE_ERROR, - g_file_error_from_errno (errno), - _("Failed to open file '%s': %s"), - utf8_filename ? utf8_filename : "???", - g_strerror (errno)); - g_free (utf8_filename); - return NULL; - } - - loader = gdk_pixbuf_loader_new (); - - info.width = width; - info.height = height; - info.preserve_aspect_ratio = preserve_aspect_ratio; - - g_signal_connect (loader, "size-prepared", G_CALLBACK (size_prepared_cb), &info); - - while (!feof (f) && !ferror (f)) { - length = fread (buffer, 1, sizeof (buffer), f); - if (length > 0) - if (!gdk_pixbuf_loader_write (loader, buffer, length, error)) { - gdk_pixbuf_loader_close (loader, NULL); - fclose (f); - g_object_unref (loader); - return NULL; - } - } - - fclose (f); - - if (!gdk_pixbuf_loader_close (loader, error)) { - g_object_unref (loader); - return NULL; - } - - pixbuf = gdk_pixbuf_loader_get_pixbuf (loader); - - if (!pixbuf) { - gchar *utf8_filename = g_filename_to_utf8 (filename, -1, - NULL, NULL, NULL); - - g_object_unref (loader); - - g_set_error (error, - GDK_PIXBUF_ERROR, - GDK_PIXBUF_ERROR_FAILED, - _("Failed to load image '%s': reason not known, probably a corrupt image file"), - utf8_filename ? utf8_filename : "???"); - g_free (utf8_filename); - return NULL; - } - - g_object_ref (pixbuf); - - g_object_unref (loader); - - return pixbuf; -} - -/* Make the name bolder and larger. - * scale_factor can be PANGO_SCALE_X_LARGE, etc. - */ -void make_heading(GtkWidget *label, double scale_factor) -{ - PangoAttribute *attr; - PangoAttrList *list; - - list = pango_attr_list_new(); - - attr = pango_attr_weight_new(PANGO_WEIGHT_BOLD); - attr->start_index = 0; - attr->end_index = -1; - pango_attr_list_insert(list, attr); - - attr = pango_attr_scale_new(scale_factor); - attr->start_index = 0; - attr->end_index = -1; - pango_attr_list_insert(list, attr); - - gtk_label_set_attributes(GTK_LABEL(label), list); -} - -/* Launch a program using 0launch. - * If button-3 is used, open the GUI with -g. - */ -void launch_uri(GObject *button, const char *uri) -{ - const char *argv[] = {"0launch", NULL, NULL, NULL}; - const char *uri_0launch = "/uri/0install/zero-install.sourceforge.net" - "/bin/0launch"; - - if (!available_in_path(argv[0])) - { - if (access(uri_0launch, X_OK) == 0) - argv[0] = uri_0launch; - else - { - const char *appname=g_object_get_data(button, - "appname"); - - if (appname) - { - gchar *path=find_app(appname); - if(path) - { - run_by_path(path); - g_free(path); - return; - } - } - - delayed_error(_("This program (%s) cannot be run, " - "as the 0launch command is not available. " - "It can be downloaded from here:\n\n" - "http://0install.net/injector.html"), - uri); - return; - } - } - - if (current_event_button() == 3) - { - argv[1] = "-g"; - argv[2] = uri; - } - else - argv[1] = uri; - - rox_spawn(NULL, argv); -} - -static gint button3_button_pressed(GtkButton *button, - GdkEventButton *event, - gpointer date) -{ - if (event->button == 3) - { - gtk_grab_add(GTK_WIDGET(button)); - gtk_button_pressed(button); - - return TRUE; - } - - return FALSE; -} - -static gint button3_button_released(GtkButton *button, - GdkEventButton *event, - FilerWindow *filer_window) -{ - if (event->button == 3) - { - gtk_grab_remove(GTK_WIDGET(button)); - gtk_button_released(button); - - return TRUE; - } - - return FALSE; -} - -void allow_right_click(GtkWidget *button) -{ - g_signal_connect(button, "button_press_event", - G_CALLBACK(button3_button_pressed), NULL); - g_signal_connect(button, "button_release_event", - G_CALLBACK(button3_button_released), NULL); -} - -/* Return mouse button used in the current event, or -1 if none (no event, - * or not a click). - */ -gint current_event_button(void) -{ - GdkEventButton *bev; - gint button = -1; - - bev = (GdkEventButton *) gtk_get_current_event(); - - if (bev && - (bev->type == GDK_BUTTON_PRESS || bev->type == GDK_BUTTON_RELEASE)) - button = bev->button; - - gdk_event_free((GdkEvent *) bev); - - return button; -} - -/* Create a new pixbuf by colourizing 'src' to 'color'. If the function fails, - * 'src' will be returned (with an increased reference count, so it is safe to - * g_object_unref() the return value whether the function fails or not). - */ -GdkPixbuf *create_spotlight_pixbuf(GdkPixbuf *src, GdkColor *color) -{ - guchar opacity = 192; - guchar alpha = 255 - opacity; - GdkPixbuf *dst; - GdkColorspace colorspace; - int width, height, src_rowstride, dst_rowstride, x, y; - int n_channels, bps; - int r, g, b; - guchar *spixels, *dpixels, *src_pixels, *dst_pixels; - gboolean has_alpha; - - has_alpha = gdk_pixbuf_get_has_alpha(src); - colorspace = gdk_pixbuf_get_colorspace(src); - n_channels = gdk_pixbuf_get_n_channels(src); - bps = gdk_pixbuf_get_bits_per_sample(src); - - if ((colorspace != GDK_COLORSPACE_RGB) || - (!has_alpha && n_channels != 3) || - (has_alpha && n_channels != 4) || - (bps != 8)) - goto error; - - width = gdk_pixbuf_get_width(src); - height = gdk_pixbuf_get_height(src); - - dst = gdk_pixbuf_new(colorspace, has_alpha, bps, width, height); - if (dst == NULL) - goto error; - - src_pixels = gdk_pixbuf_get_pixels(src); - dst_pixels = gdk_pixbuf_get_pixels(dst); - src_rowstride = gdk_pixbuf_get_rowstride(src); - dst_rowstride = gdk_pixbuf_get_rowstride(dst); - - r = opacity * (color->red >> 8); - g = opacity * (color->green >> 8); - b = opacity * (color->blue >> 8); - - for (y = 0; y < height; y++) - { - spixels = src_pixels + y * src_rowstride; - dpixels = dst_pixels + y * dst_rowstride; - for (x = 0; x < width; x++) - { - *dpixels++ = (*spixels++ * alpha + r) >> 8; - *dpixels++ = (*spixels++ * alpha + g) >> 8; - *dpixels++ = (*spixels++ * alpha + b) >> 8; - if (has_alpha) - *dpixels++ = *spixels++; - } - - } - return dst; - -error: - g_object_ref(src); - return src; -} - -/* Load the Templates.ui file and build a component. */ -GtkBuilder *get_gtk_builder(gchar **ids) -{ - GError *error = NULL; - char *path; - GtkBuilder *builder = NULL; - - builder = gtk_builder_new(); - gtk_builder_set_translation_domain(builder, "ROX-Filer"); - - path = g_build_filename(app_dir, "Templates.ui", NULL); - if (!gtk_builder_add_objects_from_file(builder, path, ids, &error)) - { - g_warning("Failed to load builder file %s: %s", - path, error->message); - g_error_free(error); - } - - g_free(path); - - return builder; -} - -void add_stock_to_menu_item(GtkWidget *item, const char *stock) -{ - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), - gtk_image_new_from_stock(stock, GTK_ICON_SIZE_MENU)); -} diff --git a/ROX-Filer/src/gui_support.h b/ROX-Filer/src/gui_support.h deleted file mode 100644 index 4303fc8f..00000000 --- a/ROX-Filer/src/gui_support.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _GUI_SUPPORT_H -#define _GUI_SUPPORT_H - -#include - -#define WIN_STATE_STICKY (1<<0) /* Fixed relative to screen */ -#define WIN_STATE_HIDDEN (1<<4) /* Not on taskbar but window visible */ -#define WIN_STATE_FIXED_POSITION (1<<8) /* Window is fixed in position even */ -#define WIN_STATE_ARRANGE_IGNORE (1<<9) /* Ignore for auto arranging */ - -#define WIN_HINTS_SKIP_FOCUS (1<<0) /* Do not focus */ -#define WIN_HINTS_SKIP_WINLIST (1<<1) /* Not in win list */ -#define WIN_HINTS_SKIP_TASKBAR (1<<2) /* Not on taskbar */ - -typedef struct _Radios Radios; - -extern GdkFont *fixed_font; -extern gint screen_width, screen_height; - -/* Useful atoms (set by gui_support_init()) */ -extern GdkAtom xa__NET_WORKAREA; -extern GdkAtom xa__NET_WM_DESKTOP; -extern GdkAtom xa__NET_CURRENT_DESKTOP; -extern GdkAtom xa__NET_NUMBER_OF_DESKTOPS; - -/* For Xinerama */ -extern gint n_monitors; -extern GdkRectangle *monitor_geom; -/* Smallest monitor - use for sizing windows */ -extern gint monitor_width, monitor_height; -typedef struct { - gboolean left, right, top, bottom; -} MonitorAdjacent; -extern MonitorAdjacent *monitor_adjacent; - -typedef void (*HelpFunc)(gpointer data); -typedef const char *ParseFunc(gchar *line); - -void gui_store_screen_geometry(GdkScreen *screen); - -void gui_support_init(void); -int get_choice(const char *title, - const char *message, - int number_of_buttons, ...); -void report_error(const char *message, ...); -void info_message(const char *message, ...); -void set_cardinal_property(GdkWindow *window, GdkAtom prop, gulong value); -gboolean get_cardinal_property(GdkWindow *window, GdkAtom prop, gulong length, - gulong *data, gint *actual_length); -int get_current_desktop(void); -int get_number_of_desktops(void); -void get_work_area(int *x, int *y, int *width, int *height); -void make_panel_window(GtkWidget *widget); -void delayed_error(const char *error, ...); -gboolean load_file(const char *pathname, char **data_out, long *length_out); -GtkWidget *new_help_button(HelpFunc show_help, gpointer data); -void parse_file(const char *path, ParseFunc *parse_line); -gboolean get_pointer_xy(int *x, int *y); -int get_monitor_under_pointer(void); -void centre_window(GdkWindow *window, int x, int y); -void wink_widget(GtkWidget *widget); -void destroy_on_idle(GtkWidget *widget); -gint rox_spawn(const gchar *dir, const gchar **argv); -GtkWidget *button_new_mixed(const char *stock, const char *message); -GtkWidget *button_new_image_text(GtkWidget *image, const char *message); -void entry_set_error(GtkWidget *entry, gboolean error); -void window_put_just_above(GdkWindow *higher, GdkWindow *lower); -void fixed_move_fast(GtkFixed *fixed, GtkWidget *widget, int x, int y); -void tooltip_show(guchar *text); -void tooltip_prime(GtkFunction callback, GObject *object); -void widget_modify_font(GtkWidget *widget, PangoFontDescription *font_desc); -gboolean confirm(const gchar *message, const gchar *stock, const gchar *action); - -Radios *radios_new(void (*changed)(Radios *, gpointer data), gpointer data); -void radios_add(Radios *radios, const gchar *tip, gint value, - const gchar *label, ...); -void radios_pack(Radios *radios, GtkBox *box); -void radios_set_value(Radios *radios, gint value); -gint radios_get_value(Radios *radios); -GList *uri_list_to_glist(const char *uri_list); -GtkWidget *simple_image_new(GdkPixbuf *pixbuf); -void render_pixbuf(GdkPixbuf *pixbuf, GdkDrawable *target, GdkGC *gc, - int x, int y, int width, int height); -/* gdk_window_set_keep_below() only exists in GTK >= 2.4 and is broken until - * 2.4.6 */ -void keep_below(GdkWindow *window, gboolean setting); -GdkPixbuf * rox_pixbuf_new_from_file_at_scale (const char *filename, - int width, - int height, - gboolean preserve_aspect_ratio, - GError **error); -void make_heading(GtkWidget *label, double scale_factor); -void launch_uri(GObject *button, const char *uri); -void allow_right_click(GtkWidget *button); -gint current_event_button(void); -GdkPixbuf *create_spotlight_pixbuf(GdkPixbuf *src, GdkColor *color); -GtkBuilder *get_gtk_builder(gchar **ids); -void add_stock_to_menu_item(GtkWidget *item, const char *stock); - -#endif /* _GUI_SUPPORT_H */ diff --git a/ROX-Filer/src/i18n.c b/ROX-Filer/src/i18n.c deleted file mode 100644 index 461afdfd..00000000 --- a/ROX-Filer/src/i18n.c +++ /dev/null @@ -1,169 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include "config.h" - -#include -#include -#include -#include -#ifdef HAVE_LIBINTL_H -#include -#endif - -#include "global.h" - -#include "support.h" -#include "choices.h" -#include "options.h" -#include "i18n.h" -#include "gui_support.h" -#include "main.h" - -#define MESSAGE _("Note that you must save your choices " \ - "and restart the filer for the new language " \ - "setting to take full effect.") - -/* Two/five-char country_territory code, or NULL */ -char *current_lang = NULL; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - - -/* Set things up for internationalisation */ -void i18n_init(void) -{ - const char *lang; - - gtk_set_locale(); - -#ifdef HAVE_LIBINTL_H - gchar *path = g_strdup_printf("%s/Messages", app_dir); - bindtextdomain("ROX-Filer", path); - bind_textdomain_codeset("ROX-Filer", "UTF-8"); - g_free(path); -#endif - - /* This is a hang-over from when we did translations ourselves. - * Maybe we can get this info from the gettext library? - */ - lang = getenv("LANG"); - if (lang) - { - const char *end; - - /* Extract the language code from the locale name. - * language[_territory][.codeset][@modifier] - */ - - end = strchr(lang, '.'); - if (!end) - end = strchr(lang, '@'); - if (end) - current_lang = g_strndup(lang, end - lang); - else - current_lang = g_strdup(lang); - } -} - -/* These two stolen from dia :-). - * Slight modification though: '>' means 'same as above' so that - * if a translation is missing it doesn't muck up the whole menu structure! - */ -GtkItemFactoryEntry *translate_entries(GtkItemFactoryEntry *entries, gint n) -{ - guchar *first = NULL, *second = NULL; /* Previous menu, submenu */ - gint i; - GtkItemFactoryEntry *ret; - - ret = g_malloc(sizeof(GtkItemFactoryEntry) * n); - for (i = 0; i < n; i++) - { - const gchar *from = entries[i].path; - gchar *trans, *slash; - int indent; - - if (from[0] == '>') - { - if (from[1] == '>') - indent = 2; - else - indent = 1; - } - else - indent = 0; - - if (from[indent]) - from = _(from + indent); - else - from = ""; - - if (indent == 0) - trans = g_strdup_printf("/%s", from); - else if (indent == 1) - trans = g_strdup_printf("/%s/%s", first, from); - else - trans = g_strdup_printf("/%s/%s/%s", - first, second, from); - - ret[i].path = trans; - - g_free(first); - null_g_free(&second); - - trans++; - slash = strchr(trans, '/'); - if (slash) - { - first = g_strndup(trans, slash - trans); - trans = slash + 1; - - slash = strchr(trans, '/'); - if (slash) - second = g_strndup(trans, slash - trans); - else - second = g_strdup(trans); - } - else - first = g_strdup(trans); - - /* accelerator and item_type are not duped, only referenced */ - ret[i].accelerator = entries[i].accelerator; - ret[i].callback = entries[i].callback; - ret[i].callback_action = entries[i].callback_action; - ret[i].item_type = entries[i].item_type; - ret[i].extra_data = entries[i].extra_data; - } - - g_free(first); - g_free(second); - - return ret; -} - -void free_translated_entries(GtkItemFactoryEntry *entries, gint n) -{ - gint i; - - for (i=0; i. - */ - -#include - -extern char *current_lang; - -void i18n_init(void); -GtkItemFactoryEntry *translate_entries(GtkItemFactoryEntry *entries, gint n); -void free_translated_entries(GtkItemFactoryEntry *entries, gint n); diff --git a/ROX-Filer/src/icon.c b/ROX-Filer/src/icon.c deleted file mode 100644 index b098eacf..00000000 --- a/ROX-Filer/src/icon.c +++ /dev/null @@ -1,1428 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* icon.c - abstract base class for pinboard and panel icons. - * - * An Icon contains the full pathname of its file and the DirItem for that - * file. Icons emit the following signals: - * - * redraw - the image, details or selection state have changed. - * update - the name or path has changed. - * destroy - someone wishes to remove the icon. - * - * Note that an icon may be removed without emitting 'destroy'. - */ - -#include "config.h" - -#include -#include -#include -#include -#include - -#include "global.h" - -#include "main.h" -#include "gui_support.h" -#include "support.h" -#include "icon.h" -#include "diritem.h" -#include "menu.h" -#include "appmenu.h" -#include "dnd.h" -#include "run.h" -#include "infobox.h" -#include "pixmaps.h" -#include "mount.h" -#include "type.h" -#include "usericons.h" -#include "pinboard.h" /* For pinboard_set_backdrop_box */ - -static gboolean have_primary = FALSE; /* We own the PRIMARY selection? */ - -GtkWidget *icon_menu; /* The popup icon menu */ -static GtkWidget *icon_file_menu; /* The file submenu */ -static GtkWidget *icon_file_item; /* 'File' label */ -static GtkWidget *file_shift_item; /* 'Shift Open' label */ - -/* A list of selected Icons. Every icon in the list is from the same group - * (eg, you can't have icons from two different panels selected at the - * same time). - */ -GList *icon_selection = NULL; - -/* A list of Icons which have grabs in effect. The same combo may be - * listed more than once, but has only one X grab. - */ -GList *icon_shortcuts = NULL; - -#define CLICK_TO_SET _("(click to set)") - -static unsigned int AltMask; -static unsigned int MetaMask; -static unsigned int NumLockMask; -static unsigned int ScrollLockMask; -static unsigned int CapsLockMask; -static unsigned int SuperMask; -static unsigned int HyperMask; - -/* {MyKey -> Number of grabs} */ -static GHashTable *grab_counter = NULL; - -/* Each entry is a GList of Icons which have the given pathname. - * This allows us to update all necessary icons when something changes. - */ -static GHashTable *icons_hash = NULL; /* path -> [Icon] */ - -static Icon *menu_icon = NULL; /* Item clicked if there is no selection */ - -/* Static prototypes */ -static void rename_activate(GtkWidget *dialog); -static void menu_closed(GtkWidget *widget); -static void lose_selection(GtkClipboard *primary, gpointer data); -static void selection_get(GtkClipboard *primary, - GtkSelectionData *selection_data, - guint info, - gpointer data); -static void remove_items(gpointer data, guint action, GtkWidget *widget); -static void file_op(gpointer data, guint action, GtkWidget *widget); -static void show_rename_box(Icon *icon); -static void icon_set_selected_int(Icon *icon, gboolean selected); -static void icon_class_init(gpointer gclass, gpointer data); -static void icon_init(GTypeInstance *object, gpointer gclass); -static void icon_hash_path(Icon *icon); -static void icon_unhash_path(Icon *icon); -static void ungrab_key(Icon *icon); -static void grab_key(Icon *icon); -static void parseKeyString(MyKey *key, const char *str); -static void icon_wink(Icon *icon); -static void initModifiers(void); -static void create_menu(void); - -enum { - ACTION_SHIFT, - ACTION_PROPERTIES, - ACTION_RUN_ACTION, - ACTION_SET_ICON, - ACTION_EDIT, - ACTION_LOCATION, -}; - -#undef N_ -#define N_(x) x -static GtkItemFactoryEntry menu_def[] = { -{N_("ROX-Filer"), NULL, NULL, 0, ""}, -{">" N_("About ROX-Filer..."), NULL, menu_rox_help, HELP_ABOUT, "", GTK_STOCK_DIALOG_INFO}, -{">" N_("Show Help Files"), NULL, menu_rox_help, HELP_DIR, "", GTK_STOCK_HELP}, -{">" N_("Manual"), NULL, menu_rox_help, HELP_MANUAL, NULL}, -{">", NULL, NULL, 0, ""}, -{">" N_("Options..."), NULL, menu_show_options, 0, "", GTK_STOCK_PREFERENCES}, -{">" N_("Home Directory"), NULL, open_home, 0, "", GTK_STOCK_HOME}, -{N_("File"), NULL, NULL, 0, ""}, -{">" N_("Shift Open"), NULL, file_op, ACTION_SHIFT, NULL}, -{">" N_("Properties"), NULL, file_op, ACTION_PROPERTIES, "", GTK_STOCK_PROPERTIES}, -{">" N_("Set Run Action..."), NULL, file_op, ACTION_RUN_ACTION, "", GTK_STOCK_EXECUTE}, -{">" N_("Set Icon..."), NULL, file_op, ACTION_SET_ICON, NULL}, -{N_("Edit Item"), NULL, file_op, ACTION_EDIT, "", GTK_STOCK_PROPERTIES}, -{N_("Show Location"), NULL, file_op, ACTION_LOCATION, "", GTK_STOCK_JUMP_TO}, -{N_("Remove Item(s)"), NULL, remove_items, 0, "", GTK_STOCK_REMOVE}, -{"", NULL, NULL, 0, ""}, -}; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Called when the pointer moves over the icon */ -void icon_may_update(Icon *icon) -{ - MaskedPixmap *image; - int flags; - - g_return_if_fail(icon != NULL); - - image = di_image(icon->item); - flags = icon->item->flags; - - if (image) - g_object_ref(image); - mount_update(FALSE); - diritem_restat(icon->path, icon->item, NULL); - - if (di_image(icon->item) != image || icon->item->flags != flags) - { - /* Appearance changed; need to redraw */ - g_signal_emit_by_name(icon, "redraw"); - } - - if (image) - g_object_unref(image); -} - -/* If path is on an icon then it may have changed... check! */ -void icons_may_update(const gchar *path) -{ - GList *affected; - - if (icons_hash) - { - affected = g_hash_table_lookup(icons_hash, path); - - for (; affected; affected = affected->next) - icon_may_update((Icon *) affected->data); - } -} - -typedef struct _CheckData CheckData; -struct _CheckData { - const gchar *path; - gboolean found; -}; - -static void check_has(gpointer key, GList *icons, CheckData *check) -{ - Icon *icon; - - g_return_if_fail(icons != NULL); - - icon = icons->data; - - if (is_sub_dir(icon->path, check->path)) - check->found = TRUE; -} - -/* Returns TRUE if any icon links to this file (or any file inside - * this directory). Used to check that it's OK to delete 'path'. - */ -gboolean icons_require(const gchar *path) -{ - CheckData check; - - if (!icons_hash) - return FALSE; - - check.path = path; - check.found = FALSE; - g_hash_table_foreach(icons_hash, (GHFunc) check_has, &check); - - return check.found; -} - -static gboolean any_selected_item_is_locked() -{ - GList *next; - - for (next = icon_selection; next; next = next->next) - { - Icon *icon = (Icon *)next->data; - - if (icon->locked) - return TRUE; - } - - return FALSE; -} - -/* Menu was clicked over this icon. Set things up correctly (shade items, - * add app menu stuff, etc). - * You should show icon_menu after calling this... - * panel_name is NULL for the pinboard. - */ -void icon_prepare_menu(Icon *icon, GtkWidget *options_item, ...) -{ - gboolean shaded; - GSList *link; - va_list ap; - GtkWidget *trailing; - static GtkWidget *current_options_item; /* Pin/Pan Options */ - static GSList *current_trailing_items = NULL; - - appmenu_remove(); - - if (current_options_item) - { - gtk_widget_destroy(current_options_item); - current_options_item = NULL; - } - for (link = current_trailing_items; link; link = g_slist_next(link)) - { - gtk_widget_destroy(link->data); - } - if (current_trailing_items) - { - g_slist_free(current_trailing_items); - current_trailing_items = NULL; - } - - menu_icon = icon; - - if (!icon_menu) - create_menu(); - - current_options_item = options_item; - add_stock_to_menu_item(options_item, GTK_STOCK_PREFERENCES); - - gtk_menu_shell_append(GTK_MENU_SHELL(icon_menu), options_item); - gtk_widget_show_all(options_item); - - va_start(ap, options_item); - while ((trailing = va_arg(ap, GtkWidget *)) != NULL) - { - current_trailing_items = g_slist_prepend(current_trailing_items, - trailing); - gtk_menu_shell_append(GTK_MENU_SHELL(icon_menu), trailing); - gtk_widget_show(trailing); - } - va_end(ap); - - /* Shade Remove Item(s) if any item is locked or nothing is selected */ - if (icon_selection) - shaded = any_selected_item_is_locked(); - else if (menu_icon) - shaded = menu_icon->locked; - else - shaded = TRUE; - - menu_set_items_shaded(icon_menu, shaded, 4, 1); - - menu_show_shift_action(file_shift_item, icon ? icon->item : NULL, - FALSE); - - /* Shade the File/Edit/Show items unless an item was clicked */ - if (icon) - { - guchar *tmp; - - menu_set_items_shaded(icon_menu, FALSE, 1, 3); - menu_set_items_shaded(icon_file_menu, FALSE, 0, 5); - if (!can_set_run_action(icon->item)) - menu_set_items_shaded(icon_file_menu, TRUE, 2, 1); - - tmp = g_strdup_printf(_("%s '%s'"), - basetype_name(icon->item), - icon->item->leafname); - gtk_label_set_text(GTK_LABEL(icon_file_item), tmp); - g_free(tmp); - - /* Check for app-specific menu */ - appmenu_add(icon->path, icon->item, icon_menu); - } - else - { - menu_set_items_shaded(icon_menu, TRUE, 1, 3); - menu_set_items_shaded(icon_file_menu, TRUE, 0, 5); - gtk_label_set_text(GTK_LABEL(icon_file_item), _("Nothing")); - } -} - -/* Set whether this icon is selected. Will automatically clear the selection - * if it contains icons from a different group. - */ -void icon_set_selected(Icon *icon, gboolean selected) -{ - if (selected && icon_selection) - { - IconClass *iclass; - Icon *other = (Icon *) icon_selection->data; - - iclass = (IconClass *) G_OBJECT_GET_CLASS(icon); - if (!iclass->same_group(icon, other)) - { - icon_select_only(icon); - return; - } - } - - icon_set_selected_int(icon, selected); -} - -/* Clear everything, except 'select', which is selected. - * If select is NULL, unselects everything. - */ -void icon_select_only(Icon *select) -{ - GList *to_clear, *next; - - if (select) - icon_set_selected_int(select, TRUE); - - to_clear = g_list_copy(icon_selection); - - if (select) - to_clear = g_list_remove(to_clear, select); - - for (next = to_clear; next; next = next->next) - icon_set_selected_int((Icon *) next->data, FALSE); - - g_list_free(to_clear); -} - -/* Destroys this icon's widget, causing it to be removed from the screen */ -void icon_destroy(Icon *icon) -{ - g_return_if_fail(icon != NULL); - - icon_set_selected_int(icon, FALSE); - - if (!icon->locked) - g_signal_emit_by_name(icon, "destroy"); -} - -/* Return a text/uri-list of all the icons in the selection */ -gchar *icon_create_uri_list(void) -{ - GString *tmp; - guchar *retval; - GList *next; - - tmp = g_string_new(NULL); - - for (next = icon_selection; next; next = next->next) - { - Icon *icon = (Icon *) next->data; - EscapedPath *uri; - - uri = encode_path_as_uri(icon->path); - g_string_append(tmp, (char *) uri); - g_free(uri); - g_string_append(tmp, "\r\n"); - } - - retval = tmp->str; - g_string_free(tmp, FALSE); - - return retval; -} - -GType icon_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (IconClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - icon_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(Icon), - 0, /* n_preallocs */ - icon_init - }; - - type = g_type_register_static(G_TYPE_OBJECT, "Icon", - &info, 0); - } - - return type; -} - -/* Sets, unsets or changes the pathname and name for an icon. - * Updates icons_hash and (re)stats the item. - * If name is NULL then gets the leafname from pathname. - * If pathname is NULL, frees everything. - */ -void icon_set_path(Icon *icon, const char *pathname, const char *name) -{ - if (icon->path) - { - icon_unhash_path(icon); - icon->src_path = NULL; - icon->path = NULL; - - diritem_free(icon->item); - icon->item = NULL; - } - - if (pathname) - { - if (g_utf8_validate(pathname, -1, NULL)) - icon->src_path = g_strdup(pathname); - else - icon->src_path = to_utf8(pathname); - icon->path = expand_path(icon->src_path); - - icon_hash_path(icon); - - if (!name) - name = g_basename(icon->src_path); - - icon->item = diritem_new(name); - diritem_restat(icon->path, icon->item, NULL); - } -} - -void icon_set_shortcut(Icon *icon, const gchar *shortcut) -{ - g_return_if_fail(icon != NULL); - - if (shortcut && !*shortcut) - shortcut = NULL; - if (icon->shortcut == shortcut) - return; - if (icon->shortcut && shortcut && strcmp(icon->shortcut, shortcut) == 0) - return; - - initModifiers(); - - ungrab_key(icon); - - g_free(icon->shortcut); - icon->shortcut = g_strdup(shortcut); - parseKeyString(&icon->shortcut_key, shortcut); - - grab_key(icon); -} - -void icon_set_arguments(Icon *icon, const gchar *args) -{ - g_return_if_fail(icon != NULL); - g_return_if_fail(args == NULL || icon->args != args); - - if (args && !*args) - args = NULL; - if (icon->args && args && strcmp(icon->args, args) == 0) - return; - - g_free(icon->args); - icon->args = g_strdup(args); -} - -void icon_run(Icon *icon) -{ - if (icon->args == NULL) - run_diritem(icon->path, icon->item, NULL, NULL, FALSE); - else - run_with_args(icon->path, icon->item, icon->args); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* The icons_hash table allows us to convert from a path to a list - * of icons that use that path. - * Add this icon to the list for its path. - */ -static void icon_hash_path(Icon *icon) -{ - GList *list; - - g_return_if_fail(icon != NULL); - - /* g_print("[ hashing '%s' ]\n", icon->path); */ - - list = g_hash_table_lookup(icons_hash, icon->path); - list = g_list_prepend(list, icon); - g_hash_table_insert(icons_hash, icon->path, list); -} - -/* Remove this icon from the icons_hash table */ -static void icon_unhash_path(Icon *icon) -{ - GList *list; - - g_return_if_fail(icon != NULL); - - /* g_print("[ unhashing '%s' ]\n", icon->path); */ - - list = g_hash_table_lookup(icons_hash, icon->path); - g_return_if_fail(list != NULL); - - list = g_list_remove(list, icon); - - /* Remove it first; the hash key may have changed address */ - g_hash_table_remove(icons_hash, icon->path); - if (list) - g_hash_table_insert(icons_hash, - ((Icon *) list->data)->path, list); -} - -static void rename_activate(GtkWidget *dialog) -{ - GtkWidget *entry, *src, *shortcut, *arg, *lock_state; - Icon *icon; - const guchar *new_name, *new_src, *new_shortcut, *new_args; - gboolean new_lock_state; - - entry = g_object_get_data(G_OBJECT(dialog), "new_name"); - icon = g_object_get_data(G_OBJECT(dialog), "callback_icon"); - src = g_object_get_data(G_OBJECT(dialog), "new_path"); - shortcut = g_object_get_data(G_OBJECT(dialog), "new_shortcut"); - arg = g_object_get_data(G_OBJECT(dialog), "new_arg"); - lock_state = g_object_get_data(G_OBJECT(dialog), "new_lock_state"); - - g_return_if_fail(entry != NULL && - src != NULL && - icon != NULL && - shortcut != NULL && - arg != NULL && - lock_state != NULL); - - new_name = gtk_entry_get_text(GTK_ENTRY(entry)); - new_src = gtk_entry_get_text(GTK_ENTRY(src)); - new_shortcut = gtk_label_get_text(GTK_LABEL(shortcut)); - if (strcmp(new_shortcut, CLICK_TO_SET) == 0) - new_shortcut = NULL; - new_args = gtk_entry_get_text(GTK_ENTRY(arg)); - new_lock_state = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(lock_state)); - - if (*new_src == '\0') - report_error( - _("The location must contain at least one character!")); - else - { - icon_set_path(icon, new_src, new_name); - icon_set_shortcut(icon, new_shortcut); - icon_set_arguments(icon, new_args); - icon->locked = new_lock_state; - g_signal_emit_by_name(icon, "update"); - gtk_widget_destroy(dialog); - } -} - -static void menu_closed(GtkWidget *widget) -{ - appmenu_remove(); - menu_icon = NULL; -} - -/* Called when another application takes the selection away from us */ -static void lose_selection(GtkClipboard *primary, gpointer data) -{ - have_primary = FALSE; - icon_select_only(NULL); -} - -/* Called when another application wants the contents of our selection */ -static void selection_get(GtkClipboard *primary, - GtkSelectionData *selection_data, - guint info, - gpointer data) -{ - gchar *text; - - if (info == TARGET_URI_LIST) - text = icon_create_uri_list(); - else - { - GList *next; - GString *str; - - str = g_string_new(NULL); - - for (next = icon_selection; next; next = next->next) - { - Icon *icon = (Icon *) next->data; - - g_string_append(str, icon->path); - g_string_append_c(str, ' '); - } - - text = str->str; - g_string_free(str, FALSE); - } - - gtk_selection_data_set_text(selection_data, text, strlen(text)); -} - -static void remove_items(gpointer data, guint action, GtkWidget *widget) -{ - IconClass *iclass; - - if (menu_icon) - { - if (menu_icon->locked) - { - delayed_error(_("You must unlock '%s' before removing it"), - menu_icon->item->leafname); - return; - } - icon_set_selected(menu_icon, TRUE); - } - - if (!icon_selection) - { - delayed_error( - _("You must first select some items to remove")); - return; - } - - if (any_selected_item_is_locked()) - { - delayed_error(_("An item must be unlocked before it can be removed.")); - return; - } - - iclass = (IconClass *) - G_OBJECT_GET_CLASS(G_OBJECT(icon_selection->data)); - - iclass->remove_items(); -} - -static void file_op(gpointer data, guint action, GtkWidget *widget) -{ - if (!menu_icon) - { - delayed_error(_("You must open the menu over an item")); - return; - } - - switch (action) - { - case ACTION_SHIFT: - run_diritem(menu_icon->path, menu_icon->item, - NULL, NULL, TRUE); - break; - case ACTION_EDIT: - show_rename_box(menu_icon); - break; - case ACTION_LOCATION: - open_to_show(menu_icon->path); - break; - case ACTION_PROPERTIES: - infobox_new(menu_icon->path); - break; - case ACTION_RUN_ACTION: - if (can_set_run_action(menu_icon->item)) - type_set_handler_dialog( - menu_icon->item->mime_type); - else - report_error( - _("You can only set the run action for a " - "regular file")); - break; - case ACTION_SET_ICON: - icon_set_handler_dialog(menu_icon->item, - menu_icon->path); - break; - } -} - -static void edit_response(GtkWidget *dialog, gint response, gpointer data) -{ - if (response == GTK_RESPONSE_OK) - rename_activate(dialog); - else if (response == GTK_RESPONSE_CANCEL) - gtk_widget_destroy(dialog); -} - -static GdkFilterReturn filter_get_key(GdkXEvent *xevent, - GdkEvent *event, - gpointer data) -{ - XKeyEvent *kev = (XKeyEvent *) xevent; - GtkWidget *popup = (GtkWidget *) data; - Display *dpy = GDK_DISPLAY(); - - if (kev->type != KeyRelease && kev->type != ButtonPressMask) - return GDK_FILTER_CONTINUE; - - initModifiers(); - - if (kev->type == KeyRelease) - { - gchar *str; - KeySym sym; - unsigned int m = kev->state; - - sym = XKeycodeToKeysym(dpy, kev->keycode, 0); - if (!sym) - return GDK_FILTER_CONTINUE; - - str = g_strdup_printf("%s%s%s%s%s%s%s", - m & ControlMask ? "Control+" : "", - m & ShiftMask ? "Shift+" : "", - m & AltMask ? "Alt+" : "", - m & MetaMask ? "Meta+" : "", - m & SuperMask ? "Super+" : "", - m & HyperMask ? "Hyper+" : "", - XKeysymToString(sym)); - - g_object_set_data(G_OBJECT(popup), "chosen-key", str); - } - - gdk_window_remove_filter(popup->window, filter_get_key, data); - gtk_widget_destroy(popup); - - return GDK_FILTER_REMOVE; -} - -static void may_set_shortcut(GtkWidget *popup, GtkWidget *label) -{ - gchar *str; - - str = g_object_get_data(G_OBJECT(popup), "chosen-key"); - if (str) - { - gtk_label_set_text(GTK_LABEL(label), str); - g_free(str); - g_object_set_data(G_OBJECT(popup), "chosen-key", NULL); - } -} - -static void get_shortcut(GtkWidget *button, GtkWidget *label) -{ - GtkWidget *popup, *frame, *msg; - Window xid; - Display *dpy = GDK_DISPLAY(); - - popup = gtk_window_new(GTK_WINDOW_POPUP); - - gtk_window_set_position(GTK_WINDOW(popup), GTK_WIN_POS_CENTER); - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_container_add(GTK_CONTAINER(popup), frame); - - msg = gtk_label_new(_("Press the desired shortcut (eg, Control+F1)")); - - gtk_misc_set_padding(GTK_MISC(msg), 20, 20); - gtk_container_add(GTK_CONTAINER(frame), msg); - - gtk_window_set_modal(GTK_WINDOW(popup), TRUE); - - gtk_widget_add_events(popup, - GDK_KEY_RELEASE_MASK | GDK_BUTTON_PRESS_MASK); - - g_signal_connect(popup, "destroy", - G_CALLBACK(may_set_shortcut), label); - - gtk_widget_show_all(popup); - - gdk_window_add_filter(popup->window, filter_get_key, popup); - - xid = gdk_x11_drawable_get_xid(popup->window); - - if (XGrabKeyboard(dpy, xid, False, GrabModeAsync, GrabModeAsync, - gtk_get_current_event_time()) != Success) - { - delayed_error(_("Failed to get keyboard grab!")); - gtk_widget_destroy(popup); - } - - if (XGrabPointer(dpy, xid, False, ButtonPressMask, GrabModeAsync, - GrabModeAsync, xid, None, - gtk_get_current_event_time()) != Success) - { - g_warning("Failed to get mouse grab"); - } -} - -static void clear_shortcut(GtkButton *clear, GtkLabel *label) -{ - gtk_label_set_text(GTK_LABEL(label), CLICK_TO_SET); -} - -/* Opens a box allowing the user to change the name of a pinned icon. - * If the icon is destroyed then the box will close. - * If the user chooses OK then the callback is called once the icon's - * name, src_path and path fields have been updated and the item field - * restatted. - */ -static void show_rename_box(Icon *icon) -{ - GtkDialog *dialog; - GtkWidget *label, *entry, *button, *button2, *hbox, *spacer, *lock_state; - GtkBox *vbox; - - if (icon->dialog) - { - gtk_window_present(GTK_WINDOW(icon->dialog)); - return; - } - - icon->dialog = gtk_dialog_new(); - gtk_dialog_set_has_separator(GTK_DIALOG(icon->dialog), FALSE); - g_signal_connect(icon->dialog, "destroy", - G_CALLBACK(gtk_widget_destroyed), &icon->dialog); - - dialog = GTK_DIALOG(icon->dialog); - - vbox = GTK_BOX(gtk_vbox_new(FALSE, 1)); - gtk_box_pack_start(GTK_BOX(dialog->vbox), (GtkWidget *) vbox, - TRUE, TRUE, 0); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); - - gtk_window_set_title(GTK_WINDOW(dialog), _("Edit Item")); - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - - label = gtk_label_new(_("Clicking the icon opens:")); - gtk_box_pack_start(vbox, label, TRUE, TRUE, 0); - - entry = gtk_entry_new(); - gtk_box_pack_start(vbox, entry, TRUE, FALSE, 2); - gtk_entry_set_text(GTK_ENTRY(entry), icon->src_path); - g_object_set_data(G_OBJECT(dialog), "new_path", entry); - g_signal_connect_swapped(entry, "activate", - G_CALLBACK(rename_activate), dialog); - - label = gtk_label_new(_("Arguments to pass (for executables):")); - gtk_box_pack_start(vbox, label, TRUE, TRUE, 0); - - entry = gtk_entry_new(); - gtk_box_pack_start(vbox, entry, TRUE, FALSE, 2); - gtk_entry_set_text(GTK_ENTRY(entry), icon->args ? icon->args : ""); - g_object_set_data(G_OBJECT(dialog), "new_arg", entry); - g_signal_connect_swapped(entry, "activate", - G_CALLBACK(rename_activate), dialog); - - spacer = gtk_drawing_area_new(); - gtk_widget_set_size_request(spacer, 4, 4); - gtk_box_pack_start(vbox, spacer, FALSE, FALSE, 0); - - label = gtk_label_new(_("The text displayed under the icon is:")); - gtk_box_pack_start(vbox, label, TRUE, TRUE, 0); - entry = gtk_entry_new(); - gtk_box_pack_start(vbox, entry, TRUE, FALSE, 2); - gtk_entry_set_text(GTK_ENTRY(entry), icon->item->leafname); - gtk_widget_grab_focus(entry); - g_object_set_data(G_OBJECT(dialog), "new_name", entry); - gtk_entry_set_activates_default(GTK_ENTRY(entry), TRUE); - - spacer = gtk_drawing_area_new(); - gtk_widget_set_size_request(spacer, 4, 4); - gtk_box_pack_start(vbox, spacer, FALSE, FALSE, 0); - - label = gtk_label_new(_("The keyboard shortcut is:")); - gtk_box_pack_start(vbox, label, TRUE, TRUE, 0); - - hbox = gtk_hbox_new(FALSE, 2); - gtk_box_pack_start(vbox, hbox, TRUE, FALSE, 0); - button = gtk_button_new_with_label(icon->shortcut - ? icon->shortcut - : CLICK_TO_SET); - gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0); - g_object_set_data(G_OBJECT(dialog), "new_shortcut", - GTK_BIN(button)->child); - g_signal_connect(button, "clicked", - G_CALLBACK(get_shortcut), - GTK_BIN(button)->child); - button2 = gtk_button_new_from_stock(GTK_STOCK_CLEAR); - gtk_box_pack_start(GTK_BOX(hbox), button2, FALSE, FALSE, 0); - g_signal_connect(button2, "clicked", - G_CALLBACK(clear_shortcut), - GTK_BIN(button)->child); - - lock_state = gtk_check_button_new_with_label(_("Locked")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(lock_state), icon->locked); - gtk_box_pack_start(vbox, lock_state, TRUE, TRUE, 0); - g_object_set_data(G_OBJECT(dialog), "new_lock_state", lock_state); - gtk_tooltips_set_tip(tooltips, lock_state, - _("Locking an item prevents it from being accidentally removed"), - NULL); - - g_object_set_data(G_OBJECT(dialog), "callback_icon", icon); - - gtk_dialog_add_buttons(dialog, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_OK, GTK_RESPONSE_OK, - NULL); - gtk_dialog_set_default_response(dialog, GTK_RESPONSE_OK); - - g_signal_connect(dialog, "response", G_CALLBACK(edit_response), NULL); - - gtk_widget_show_all(GTK_WIDGET(dialog)); -} - -static gpointer parent_class = NULL; - -static void icon_finialize(GObject *object) -{ - Icon *icon = (Icon *) object; - - g_return_if_fail(!icon->selected); - - if (icon->dialog) - gtk_widget_destroy(icon->dialog); - - if (icon == menu_icon) - menu_icon = NULL; - - icon_set_path(icon, NULL, NULL); - icon_set_shortcut(icon, NULL); - icon_set_arguments(icon, NULL); - - G_OBJECT_CLASS(parent_class)->finalize(object); -} - -static void icon_class_init(gpointer gclass, gpointer data) -{ - GObjectClass *object = (GObjectClass *) gclass; - IconClass *icon = (IconClass *) gclass; - - parent_class = g_type_class_peek_parent(gclass); - - object->finalize = icon_finialize; - icon->destroy = NULL; - icon->redraw = NULL; - icon->update = NULL; - icon->same_group = NULL; - icon->wink = NULL; - - g_signal_new("update", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(IconClass, update), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - g_signal_new("destroy", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(IconClass, destroy), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - g_signal_new("redraw", - G_TYPE_FROM_CLASS(gclass), - G_SIGNAL_RUN_LAST, - G_STRUCT_OFFSET(IconClass, redraw), - NULL, NULL, - g_cclosure_marshal_VOID__VOID, - G_TYPE_NONE, 0); - - icons_hash = g_hash_table_new(g_str_hash, g_str_equal); -} - -static void icon_init(GTypeInstance *object, gpointer gclass) -{ - Icon *icon = (Icon *) object; - - icon->selected = FALSE; - icon->src_path = NULL; - icon->path = NULL; - icon->item = NULL; - icon->dialog = NULL; - icon->shortcut = NULL; - icon->shortcut_key.keycode = 0; - icon->shortcut_key.modifier = 0; - icon->args = NULL; - icon->locked = FALSE; -} - -/* As icon_set_selected(), but doesn't automatically unselect incompatible - * icons. - */ -static void icon_set_selected_int(Icon *icon, gboolean selected) -{ - static GtkClipboard *primary; - - g_return_if_fail(icon != NULL); - - if (icon->selected == selected) - return; - - if (!primary) - primary = gtk_clipboard_get(gdk_atom_intern("PRIMARY", FALSE)); - - if (selected) - { - icon_selection = g_list_prepend(icon_selection, icon); - if (!have_primary) - { - GtkTargetEntry target_table[] = - { - {"text/uri-list", 0, TARGET_URI_LIST}, - {"UTF8", 0, TARGET_STRING}, - {"COMPOUND_TEXT", 0, TARGET_STRING}, - {"STRING", 0, TARGET_STRING}, - }; - - /* Grab selection */ - have_primary = gtk_clipboard_set_with_data(primary, - target_table, - sizeof(target_table) / sizeof(*target_table), - selection_get, lose_selection, NULL); - } - } - else - { - icon_selection = g_list_remove(icon_selection, icon); - if (have_primary && !icon_selection) - { - have_primary = FALSE; - gtk_clipboard_clear(primary); - } - } - - icon->selected = selected; - g_signal_emit_by_name(icon, "redraw"); -} - -/* From xfwm4 */ -static void initModifiers(void) -{ - static gboolean need_init = TRUE; - Display *dpy = GDK_DISPLAY(); - XModifierKeymap *xmk = XGetModifierMapping(dpy); - int m, k; - - if (!need_init) - return; - need_init = FALSE; - - AltMask = MetaMask = NumLockMask = ScrollLockMask = CapsLockMask = - SuperMask = HyperMask = 0; - - /* Work out which mask to use for each modifier group */ - if (xmk) - { - KeyCode *c = xmk->modifiermap; - KeyCode numLockKeyCode; - KeyCode scrollLockKeyCode; - KeyCode capsLockKeyCode; - KeyCode altKeyCode; - KeyCode metaKeyCode; - KeyCode superKeyCode; - KeyCode hyperKeyCode; - - /* Find the codes to search for... */ - numLockKeyCode = XKeysymToKeycode(dpy, XK_Num_Lock); - scrollLockKeyCode = XKeysymToKeycode(dpy, XK_Scroll_Lock); - capsLockKeyCode = XKeysymToKeycode(dpy, XK_Caps_Lock); - altKeyCode = XKeysymToKeycode(dpy, XK_Alt_L); - metaKeyCode = XKeysymToKeycode(dpy, XK_Meta_L); - superKeyCode = XKeysymToKeycode(dpy, XK_Super_L); - hyperKeyCode = XKeysymToKeycode(dpy, XK_Hyper_L); - - /* If some are missing, try alternatives... */ - if (!altKeyCode) - altKeyCode = XKeysymToKeycode(dpy, XK_Alt_R); - if (!metaKeyCode) - metaKeyCode = XKeysymToKeycode(dpy, XK_Meta_R); - if (!superKeyCode) - superKeyCode = XKeysymToKeycode(dpy, XK_Super_R); - if (!hyperKeyCode) - hyperKeyCode = XKeysymToKeycode(dpy, XK_Hyper_R); - - /* Check each of the eight modifier lists. - * The idea (I think) is that we name the modifier group which - * includes the Alt key as the 'Alt group', and so on for - * the other modifiers. - */ - for (m = 0; m < 8; m++) - { - for (k = 0; k < xmk->max_keypermod; k++, c++) - { - if (*c == NoSymbol) - continue; - if (*c == numLockKeyCode) - NumLockMask = (1 << m); - if (*c == scrollLockKeyCode) - ScrollLockMask = (1 << m); - if (*c == capsLockKeyCode) - CapsLockMask = (1 << m); - if (*c == altKeyCode) - AltMask = (1 << m); - if (*c == metaKeyCode) - MetaMask = (1 << m); - if (*c == superKeyCode) - SuperMask = (1 << m); - if (*c == hyperKeyCode) - HyperMask = (1 << m); - } - } - XFreeModifiermap(xmk); - } - - if(MetaMask == AltMask) - MetaMask = 0; - - if (AltMask != 0 && MetaMask == Mod1Mask) - { - MetaMask = AltMask; - AltMask = Mod1Mask; - } - - if (AltMask == 0 && MetaMask != 0) - { - if (MetaMask != Mod1Mask) - AltMask = Mod1Mask; - else - { - AltMask = MetaMask; - MetaMask = 0; - } - } - - if (AltMask == 0) - AltMask = Mod1Mask; -} - - -/* Fill in key from str. Sets keycode to zero if str is NULL. - * Stolen from xfwm4 and modified. Call initModifiers before this. - */ -static void parseKeyString(MyKey *key, const char *str) -{ - char *k; - Display *dpy = GDK_DISPLAY(); - - key->keycode = 0; - key->modifier = 0; - - if (!str) - return; - - k = strrchr(str, '+'); - key->keycode = XKeysymToKeycode(dpy, XStringToKeysym(k ? k + 1 : str)); - if (k) - { - gchar *tmp; - - tmp = g_ascii_strdown(str, -1); - - if (strstr(tmp, "shift")) - key->modifier = key->modifier | ShiftMask; - if (strstr(tmp, "control")) - key->modifier = key->modifier | ControlMask; - if (strstr(tmp, "alt") || strstr(tmp, "mod1")) - key->modifier = key->modifier | AltMask; - if (strstr(tmp, "meta") || strstr(tmp, "mod2")) - key->modifier = key->modifier | MetaMask; - if (strstr(tmp, "hyper")) - key->modifier = key->modifier | HyperMask; - if (strstr(tmp, "super")) - key->modifier = key->modifier | SuperMask; - - g_free(tmp); - } - - if (!key->keycode) - g_warning("Can't parse key '%s'\n", str); -} - -static GdkFilterReturn filter_keys(GdkXEvent *xevent, - GdkEvent *event, - gpointer data) -{ - GList *next; - XKeyEvent *kev = (XKeyEvent *) xevent; - guint state; - - if (kev->type != KeyPress) - return GDK_FILTER_CONTINUE; - - state = kev->state & (ShiftMask | ControlMask | AltMask | MetaMask | - HyperMask | SuperMask); - - for (next = icon_shortcuts; next; next = next->next) - { - Icon *icon = (Icon *) next->data; - - if (icon->shortcut_key.keycode == kev->keycode && - icon->shortcut_key.modifier == state) - { - icon_wink(icon); - icon_run(icon); - } - } - - return GDK_FILTER_CONTINUE; -} - -#define GRAB(key, mods) XGrabKey(dpy, key->keycode, key->modifier | mods, \ - root, False, GrabModeAsync, GrabModeAsync) -#define UNGRAB(key, mods) XUngrabKey(dpy, key->keycode, key->modifier | mods, \ - root) - -static guint mykey_hash(gconstpointer key) -{ - MyKey *k = (MyKey *) key; - - return (k->keycode << 8) + k->modifier; -} - -static gboolean mykey_cmp(gconstpointer a, gconstpointer b) -{ - MyKey *ka = (MyKey *) a; - MyKey *kb = (MyKey *) b; - - return ka->keycode == kb->keycode && kb->modifier == kb->modifier; -} - -/* Stolen from xfwm4 and modified. - * FALSE on error. Call initModifiers before this. - */ -static gboolean grabKey(MyKey *key) -{ - Window root; - Display *dpy = GDK_DISPLAY(); - static gboolean need_init = TRUE; - - if (need_init) - { - need_init = FALSE; - gdk_window_add_filter(gdk_get_default_root_window(), - filter_keys, NULL); - } - - gdk_error_trap_push(); - - root = GDK_ROOT_WINDOW(); - - GRAB(key, 0); - - /* Here we grab all combinations of well known modifiers */ - GRAB(key, ScrollLockMask); - GRAB(key, NumLockMask); - GRAB(key, CapsLockMask); - GRAB(key, ScrollLockMask | NumLockMask); - GRAB(key, ScrollLockMask | CapsLockMask); - GRAB(key, CapsLockMask | NumLockMask); - GRAB(key, ScrollLockMask | CapsLockMask | NumLockMask); - - gdk_flush(); - return gdk_error_trap_pop() == Success; -} - -static gboolean ungrabKey(MyKey *key) -{ - Window root = GDK_ROOT_WINDOW(); - Display *dpy = GDK_DISPLAY(); - - gdk_error_trap_push(); - - UNGRAB(key, 0); - - UNGRAB(key, ScrollLockMask); - UNGRAB(key, NumLockMask); - UNGRAB(key, CapsLockMask); - UNGRAB(key, ScrollLockMask | NumLockMask); - UNGRAB(key, ScrollLockMask | CapsLockMask); - UNGRAB(key, CapsLockMask | NumLockMask); - UNGRAB(key, ScrollLockMask | CapsLockMask | NumLockMask); - - gdk_flush(); - return gdk_error_trap_pop() == Success; -} - -static void ungrab_key(Icon *icon) -{ - int *count; - - g_return_if_fail(icon != NULL); - - if (!icon->shortcut_key.keycode) - return; - - icon_shortcuts = g_list_remove(icon_shortcuts, icon); - - count = g_hash_table_lookup(grab_counter, &icon->shortcut_key); - g_return_if_fail(count != NULL); - - (*count)--; - - if (*count > 0) - return; - - g_hash_table_remove(grab_counter, &icon->shortcut_key); - - if (!ungrabKey(&icon->shortcut_key)) - g_warning("Failed to ungrab shortcut '%s' for '%s' icon.", - icon->shortcut, icon->item->leafname); -} - -static void grab_key(Icon *icon) -{ - MyKey *hash_key; - int *count; - - g_return_if_fail(icon != NULL); - - g_return_if_fail(g_list_find(icon_shortcuts, icon) == NULL); - - if (!icon->shortcut_key.keycode) - return; - - icon_shortcuts = g_list_prepend(icon_shortcuts, icon); - - if (!grab_counter) - grab_counter = g_hash_table_new_full(mykey_hash, mykey_cmp, - g_free, NULL); - - count = g_hash_table_lookup(grab_counter, &icon->shortcut_key); - if (count) - { - (*count)++; - return; /* Already grabbed */ - } - - hash_key = g_new(MyKey, 1); - *hash_key = icon->shortcut_key; - count = g_new(int, 1); - *count = 1; - g_hash_table_insert(grab_counter, hash_key, count); - - if (!grabKey(&icon->shortcut_key)) - g_warning("Failed to grab shortcut '%s' for '%s' icon.\n" - "Some other application may be already using it!\n", - icon->shortcut, icon->item->leafname); - -} - -static void icon_wink(Icon *icon) -{ - IconClass *iclass; - - iclass = (IconClass *) G_OBJECT_GET_CLASS(icon); - g_return_if_fail(iclass->wink != NULL); - - iclass->wink(icon); -} - -/* Sets icon_menu */ -static void create_menu(void) -{ - GList *items; - guchar *tmp; - GtkItemFactory *item_factory; - - g_return_if_fail(icon_menu == NULL); - - item_factory = menu_create(menu_def, - sizeof(menu_def) / sizeof(*menu_def), - "", NULL); - - tmp = g_strconcat("/", _("File"), NULL); - icon_menu = gtk_item_factory_get_widget(item_factory, ""); - icon_file_menu = gtk_item_factory_get_widget(item_factory, tmp); - g_free(tmp); - - /* File '' label... */ - items = gtk_container_get_children(GTK_CONTAINER(icon_menu)); - icon_file_item = GTK_BIN(g_list_nth(items, 1)->data)->child; - g_list_free(items); - - /* Shift Open... label */ - items = gtk_container_get_children(GTK_CONTAINER(icon_file_menu)); - file_shift_item = GTK_BIN(items->data)->child; - g_list_free(items); - - g_signal_connect(icon_menu, "unmap_event", - G_CALLBACK(menu_closed), NULL); -} - diff --git a/ROX-Filer/src/icon.h b/ROX-Filer/src/icon.h deleted file mode 100644 index fe67566b..00000000 --- a/ROX-Filer/src/icon.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _ICON_H -#define _ICON_H - -#include -#include - -extern GList *icon_selection; -extern GtkWidget *icon_menu; /* The popup icon menu */ - -typedef struct _IconClass IconClass; - -typedef struct { - KeyCode keycode; - int modifier; -} MyKey; - -struct _IconClass { - GObjectClass parent; - - gboolean (*same_group)(Icon *icon, Icon *other); - void (*destroy)(Icon *icon); - void (*redraw)(Icon *icon); - void (*update)(Icon *icon); - void (*wink)(Icon *icon); - - /* Acts on selected items */ - void (*remove_items)(void); -}; - -struct _Icon { - GObject object; - - gboolean selected; - guchar *src_path; /* Eg: ~/Apps */ - guchar *path; /* Eg: /home/fred/Apps */ - DirItem *item; - gchar *shortcut; /* Eg: Control + x */ - MyKey shortcut_key; /* Parsed version of shortcut */ - gchar *args; /* Arguments, or NULL if none */ - gboolean locked; /* TRUE if the icon can't be removed */ - - GtkWidget *dialog; /* Current rename box, if any */ -}; - -GType icon_get_type(void); -gboolean icons_require(const gchar *path); -void icon_may_update(Icon *icon); -void icons_may_update(const gchar *path); - -/* After options_item you may pass further MenuItems followed by NULL to - * terminate list */ -void icon_prepare_menu(Icon *icon, GtkWidget *options_item, ...); - -void icon_set_selected(Icon *icon, gboolean selected); -void icon_select_only(Icon *select); -void icon_set_path(Icon *icon, const char *pathname, const char *name); -gchar *icon_create_uri_list(void); -void icon_destroy(Icon *icon); -void icon_set_shortcut(Icon *icon, const gchar *shortcut); -void icon_set_arguments(Icon *icon, const gchar *args); -void icon_run(Icon *icon); - -#endif /* _ICON_H */ diff --git a/ROX-Filer/src/infobox.c b/ROX-Filer/src/infobox.c deleted file mode 100644 index 78117b0b..00000000 --- a/ROX-Filer/src/infobox.c +++ /dev/null @@ -1,1105 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* infobox.c - code for showing a file's attributes */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include - -#include "global.h" - -#include "support.h" -#include "main.h" -#include "gui_support.h" -#include "diritem.h" -#include "type.h" -#include "infobox.h" -#include "appinfo.h" -#include "dnd.h" /* For xa_string */ -#include "run.h" /* For show_help_files() */ -#include "xml.h" -#include "mount.h" -#include "pixmaps.h" -#include "xtypes.h" -#include "filer.h" - -typedef struct _FileStatus FileStatus; - -/* This is for the 'file(1) says...' thing */ -struct _FileStatus -{ - int fd; /* FD to read from, -1 if closed */ - int input; /* Input watcher tag if fd valid */ - GtkLabel *label; /* Widget to output to */ - gchar *text; /* String so far */ -}; - -typedef struct du { - gchar *path; - GtkListStore *store; - guint watch; - GIOChannel *chan; - gint child; -} DU; - -typedef struct _Permissions Permissions; - -struct _Permissions -{ - gchar *path; - DirItem *item; - GtkWidget *bits[12]; -}; - -/* Static prototypes */ -static void refresh_info(GObject *window); -static GtkWidget *make_vbox(const guchar *path, GObject *window); -static GtkWidget *make_details(const guchar *path, DirItem *item, - GObject *window); -static GtkWidget *make_about(const guchar *path, XMLwrapper *ai); -static GtkWidget *make_about_desktop(const gchar *path); -static GtkWidget *make_file_says(const guchar *path); -static GtkWidget *make_permissions(const gchar *path, DirItem *item); -static GtkWidget *make_unmount_options(const gchar *path); -static void add_file_output(FileStatus *fs, - gint source, GdkInputCondition condition); -static const gchar *pretty_type(DirItem *file, const guchar *path); -static void got_response(GObject *window, gint response, gpointer data); -static void file_info_destroyed(GtkWidget *widget, FileStatus *fs); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* Open each item in a new infobox. Confirms if there are a large - * number of items to show. - */ -void infobox_show_list(GList *paths) -{ - int n; - - n = g_list_length(paths); - - if (n >= 10) - { - gchar *message; - gboolean ok; - - message = g_strdup_printf( - _("Are you sure you want to open %d windows?"), n); - ok = confirm(message, GTK_STOCK_YES, _("Show Info")); - g_free(message); - if (!ok) - return; - } - - g_list_foreach(paths, (GFunc) infobox_new, NULL); -} - -/* Create and display a new info box showing details about this item */ -void infobox_new(const gchar *pathname) -{ - GtkWidget *window, *details; - gchar *path; - GObject *owindow; - - g_return_if_fail(pathname != NULL); - - path = g_strdup(pathname); /* Gets attached to window & freed later */ - - window = gtk_dialog_new_with_buttons( - g_utf8_validate(path, -1, NULL) ? path - : _("(bad utf-8)"), - NULL, GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_CLOSE, GTK_RESPONSE_CANCEL, - GTK_STOCK_REFRESH, GTK_RESPONSE_APPLY, - NULL); - - gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_MOUSE); - - owindow = G_OBJECT(window); - details = make_vbox(path, owindow); - gtk_box_pack_start_defaults(GTK_BOX(GTK_DIALOG(window)->vbox), - details); - - g_object_set_data(owindow, "details", details); - g_object_set_data_full(owindow, "path", path, g_free); - - g_signal_connect(window, "response", G_CALLBACK(got_response), NULL); - - number_of_windows++; - gtk_widget_show_all(window); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void got_response(GObject *window, gint response, gpointer data) -{ - if (response == GTK_RESPONSE_APPLY) - refresh_info(window); - else - { - gtk_widget_destroy(GTK_WIDGET(window)); - one_less_window(); - } -} - -static void refresh_info(GObject *window) -{ - GtkWidget *details, *vbox; - guchar *path; - - path = g_object_get_data(window, "path"); - details = g_object_get_data(window, "details"); - g_return_if_fail(details != NULL); - g_return_if_fail(path != NULL); - - vbox = details->parent; - gtk_widget_destroy(details); - - details = make_vbox(path, window); - g_object_set_data(window, "details", details); - gtk_box_pack_start_defaults(GTK_BOX(vbox), details); - gtk_widget_show_all(details); -} - -static void add_frame(GtkBox *vbox, GtkWidget *list) -{ - GtkWidget *frame; - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_container_add(GTK_CONTAINER(frame), list); - gtk_box_pack_start_defaults(vbox, frame); -} - -/* Create the VBox widget that contains the details. - * Note that 'path' must not be freed until the vbox is destroyed. - */ -static GtkWidget *make_vbox(const guchar *path, GObject *window) -{ - DirItem *item; - GtkBox *vbox; - XMLwrapper *ai; - xmlNode *about = NULL; - gchar *help_dir; - GtkWidget *hbox, *name, *label; - MaskedPixmap *thumb; - - g_return_val_if_fail(path[0] == '/', NULL); - - item = diritem_new(g_basename(path)); - diritem_restat(path, item, NULL); - - ai = appinfo_get(path, item); - if (ai) - about = xml_get_section(ai, NULL, "About"); - - vbox = GTK_BOX(gtk_vbox_new(FALSE, 4)); - gtk_container_set_border_width(GTK_CONTAINER(vbox), 4); - - /* Heading, with icon and name */ - hbox = gtk_hbox_new(FALSE, 4); - gtk_box_pack_start(vbox, hbox, FALSE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), - gtk_image_new_from_pixbuf(di_image(item)->pixbuf), - FALSE, FALSE, 4); - - if (g_utf8_validate(item->leafname, -1, NULL)) - name = gtk_label_new(item->leafname); - else - { - guchar *u8; - - u8 = to_utf8(item->leafname); - name = gtk_label_new(u8); - g_free(u8); - } - gtk_label_set_selectable(GTK_LABEL(name), TRUE); - gtk_label_set_line_wrap(GTK_LABEL(name), TRUE); - gtk_box_pack_start(GTK_BOX(hbox), name, FALSE, TRUE, 4); - - make_heading(name, PANGO_SCALE_X_LARGE); - - thumb=pixmap_try_thumb(path, FALSE); - if(thumb) - { - gtk_box_pack_start(GTK_BOX(hbox), - gtk_image_new_from_pixbuf(thumb->src_pixbuf), - FALSE, FALSE, 4); - g_object_unref(thumb); - } - - /* List of file attributes */ - add_frame(vbox, make_details(path, item, window)); - - help_dir = g_strconcat(path, "/Help", NULL); - - if (access(help_dir, F_OK) == 0) - { - GtkWidget *button, *align; - - align = gtk_alignment_new(0.5, 0.5, 0, 0); - - button = button_new_mixed(GTK_STOCK_JUMP_TO, - _("Show _Help Files")); - gtk_box_pack_start(vbox, align, FALSE, TRUE, 0); - gtk_container_add(GTK_CONTAINER(align), button); - g_signal_connect_swapped(button, "clicked", - G_CALLBACK(show_help_files), - (gpointer) path); - } - g_free(help_dir); - - if (!(item->flags & ITEM_FLAG_SYMLINK)) - { - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), - _("Permissions")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 1); - gtk_box_pack_start(vbox, label, FALSE, TRUE, 2); - - gtk_box_pack_start(vbox, make_permissions(path, item), - FALSE, TRUE, 0); - } - - if (about) - add_frame(vbox, make_about(path, ai)); - else if (item->mime_type == application_x_desktop) - { - add_frame(vbox, make_about_desktop(path)); - } - else if (item->base_type == TYPE_FILE) - { - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), - _("Contents indicate...")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 1); - gtk_box_pack_start(vbox, label, FALSE, TRUE, 2); - - gtk_box_pack_start_defaults(vbox, make_file_says(path)); - } - else if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - label = gtk_label_new(NULL); - gtk_label_set_markup(GTK_LABEL(label), - _("When all directories are closed")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 1); - gtk_box_pack_start(vbox, label, FALSE, TRUE, 2); - gtk_box_pack_start(vbox, make_unmount_options(path), FALSE, TRUE, 0); - } - - if (ai) - g_object_unref(ai); - - diritem_free(item); - - return (GtkWidget *) vbox; -} - -/* The selection has changed - grab or release the primary selection */ -static void set_selection(GtkTreeView *view, gpointer data) -{ - static GtkClipboard *primary = NULL; - GtkTreeModel *model; - GtkTreePath *path = NULL; - GtkTreeIter iter; - gchar *text; - - gtk_tree_view_get_cursor(view, &path, NULL); - if (!path) - return; - - if (!primary) - primary = gtk_clipboard_get(gdk_atom_intern("PRIMARY", FALSE)); - - model = gtk_tree_view_get_model(GTK_TREE_VIEW(view)); - - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_path_free(path); - - gtk_tree_model_get(model, &iter, 1, &text, -1); - - gtk_clipboard_set_text(primary, text, -1); - - g_free(text); -} - -/* Returns a GtkTreePath for the item */ -static const gchar *add_row(GtkListStore *store, const gchar *label, - const gchar *data) -{ - GtkTreeIter iter; - gchar *u8 = NULL; - GtkTreePath *tpath; - static gchar *last = NULL; - - if (!g_utf8_validate(data, -1, NULL)) - u8 = to_utf8(data); - - gtk_list_store_append(store, &iter); - gtk_list_store_set(store, &iter, 0, label, 1, u8 ? u8 : data, -1); - - g_free(u8); - - tpath = gtk_tree_model_get_path(GTK_TREE_MODEL(store), &iter); - if (last) - g_free(last); - last = gtk_tree_path_to_string(tpath); - gtk_tree_path_free(tpath); - - return last; -} - -static void add_row_and_free(GtkListStore *store, - const gchar *label, gchar *data) -{ - add_row(store, label, data); - g_free(data); -} - -/* Create an empty list view, ready to place some data in */ -static void make_list(GtkListStore **list_store, GtkWidget **list_view, - GCallback cell_edited) -{ - GtkListStore *store; - GtkTreeView *view; - GtkCellRenderer *cell_renderer; - - /* Field name, value, editable */ - store = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, - G_TYPE_BOOLEAN); - view = GTK_TREE_VIEW( - gtk_tree_view_new_with_model(GTK_TREE_MODEL(store))); - g_object_unref(G_OBJECT(store)); - gtk_tree_view_set_headers_visible(view, FALSE); - - cell_renderer = gtk_cell_renderer_text_new(); - g_object_set(G_OBJECT(cell_renderer), "xalign", 1.0, NULL); - gtk_tree_view_insert_column_with_attributes(view, - 0, NULL, cell_renderer, "text", 0, NULL); - - cell_renderer = gtk_cell_renderer_text_new(); - gtk_tree_view_insert_column_with_attributes(view, - 1, NULL, cell_renderer, "text", 1, "editable", 2, NULL); - - if (cell_edited) { - g_signal_connect(G_OBJECT(cell_renderer), "edited", - G_CALLBACK(cell_edited), store); - } - - g_signal_connect(view, "cursor_changed", - G_CALLBACK(set_selection), NULL); - - *list_store = store; - *list_view = (GtkWidget *) view; -} - -static void set_cell(GtkListStore *store, const gchar *path, - const gchar *ctext) -{ - GtkTreeIter iter; - - gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store), - &iter, path); - gtk_list_store_set(store, &iter, 1, ctext, -1); -} - -static void insert_size(DU *du, const char *line) -{ - off_t size; - gchar *cell; - -#ifdef LARGE_FILE_SUPPORT - size = strtoll(line, NULL, 10); -#else - size = strtol(line, NULL, 10); -#endif - size <<= 10; /* Because du reports in K */ - cell = (size >= PRETTY_SIZE_LIMIT) - ? g_strdup_printf("%s (%" SIZE_FMT " %s)", - format_size(size), - size, _("bytes")) - : g_strdup(format_size(size)); - - set_cell(du->store, du->path, cell); - - g_free(cell); -} - -static gboolean read_du_output(GIOChannel *source, GIOCondition cond, DU *du) -{ - GString *line; - GIOStatus stat; - GError *err = NULL; - - line = g_string_new(""); - stat = g_io_channel_read_line_string(source, line, NULL, &err); - switch (stat) - { - case G_IO_STATUS_NORMAL: - insert_size(du, line->str); - break; - case G_IO_STATUS_EOF: - set_cell(du->store, du->path, - _("Failed to read size")); - break; - case G_IO_STATUS_AGAIN: - g_string_free(line, TRUE); - return TRUE; - case G_IO_STATUS_ERROR: - set_cell(du->store, du->path, err->message); - break; - } - g_string_free(line, TRUE); - - return FALSE; -} - -static void kill_du_output(GtkWidget *widget, DU *du) -{ - g_source_remove(du->watch); - g_io_channel_shutdown(du->chan, FALSE, NULL); - g_io_channel_unref(du->chan); - kill((pid_t) du->child, SIGTERM); - g_object_unref(G_OBJECT(du->store)); - g_free(du->path); - g_free(du); -} - -static gboolean refresh_info_idle(gpointer data) -{ - GObject *window = G_OBJECT(data); - - refresh_info(window); - g_object_unref(window); - return FALSE; -} - -static void cell_edited(GtkCellRendererText *cell, - const gchar *path_string, - const gchar *new_text, - gpointer data) -{ - GtkTreeModel *model = (GtkTreeModel *) data; - GtkTreePath *path; - GtkTreeIter iter; - GObject *window; - const char *fullpath; - char *oldlink; - - window = g_object_get_data(G_OBJECT(model), "rox_window"); - g_return_if_fail(window != NULL); - - fullpath = g_object_get_data(window, "path"); - g_return_if_fail(fullpath != NULL); - - path = gtk_tree_path_new_from_string(path_string); - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_path_free(path); - - oldlink = readlink_dup(fullpath); - if (!oldlink) { - /* Must use delayed_error(), as this can be called - * from a focus-out event (causes a crash). - */ - delayed_error(_("'%s' is no longer a symlink"), fullpath); - return; - } - if (strcmp(oldlink, new_text) == 0) - return; /* No change */ - g_free(oldlink); - if (unlink(fullpath)) { - delayed_error(_("Failed to unlink '%s':\n%s"), - fullpath, g_strerror(errno)); - return; - } - if (symlink(new_text, fullpath)) { - delayed_error(_("Failed to create symlink from '%s':\n%s\n" - "(note: old link has been deleted)"), - fullpath, g_strerror(errno)); - return; - } - - g_object_ref(window); - g_idle_add(refresh_info_idle, window); -} - -/* Create the TreeView widget with the file's details */ -static GtkWidget *make_details(const guchar *path, DirItem *item, - GObject *window) -{ - GtkListStore *store; - GtkWidget *view; - gchar *tmp, *tmp2; - - make_list(&store, &view, G_CALLBACK(cell_edited)); - g_object_set_data(G_OBJECT(store), "rox_window", window); - - /* For a symlink to an error, don't show the error */ - if (item->base_type == TYPE_ERROR && item->lstat_errno) - { - add_row(store, _("Error:"), g_strerror(item->lstat_errno)); - return view; - } - - tmp = g_path_get_dirname(path); - tmp2 = pathdup(tmp); - if (strcmp(tmp, tmp2) != 0) - add_row_and_free(store, _("Real directory:"), tmp2); - g_free(tmp); - - add_row_and_free(store, _("Owner, Group:"), - g_strdup_printf("%s, %s", - user_name(item->uid), - group_name(item->gid))); - - if (item->base_type != TYPE_DIRECTORY) - { - add_row_and_free(store, _("Size:"), - item->size >= PRETTY_SIZE_LIMIT - ? g_strdup_printf("%s (%" SIZE_FMT " %s)", - format_size(item->size), - item->size, _("bytes")) - : g_strdup(format_size(item->size))); - } - else - { - gchar *stt=NULL; - - if(item->flags & ITEM_FLAG_MOUNTED) - stt=mount_get_fs_size(path); - - if(stt) { - add_row_and_free(store, _("Size:"), stt); - } else { - DU *du; - int out; - - gchar *args[] = {"du", "-sk", "", NULL}; - - du = g_new(DU, 1); - du->store = store; - du->path = g_strdup(add_row(store, _("Size:"), - _("Scanning"))); - - args[2] = (gchar *) path; - if (g_spawn_async_with_pipes(NULL, args, NULL, - G_SPAWN_SEARCH_PATH, - NULL, NULL, &du->child, - NULL, &out, NULL, - NULL)) - { - du->chan = g_io_channel_unix_new(out); - /* Select binary encoding so we don't get an - * error with non-UTF-8 filenames. - */ - g_io_channel_set_encoding(du->chan, NULL, NULL); - du->watch = g_io_add_watch(du->chan, - G_IO_IN|G_IO_ERR|G_IO_HUP, - (GIOFunc) read_du_output, du); - g_object_ref(G_OBJECT(du->store)); - g_signal_connect(G_OBJECT(view), - "destroy", - G_CALLBACK(kill_du_output), - du); - } - else - { - set_cell(store, du->path, _("Failed to scan")); - g_free(du->path); - g_free(du); - } - } - } - - add_row_and_free(store, _("Change time:"), pretty_time(&item->ctime)); - - add_row_and_free(store, _("Modify time:"), pretty_time(&item->mtime)); - - add_row_and_free(store, _("Access time:"), pretty_time(&item->atime)); - - add_row(store, _("Type:"), pretty_type(item, path)); - - if (item->mime_type) - add_row(store, "", mime_type_comment(item->mime_type)); - - if (xattr_supported(NULL)) { - add_row(store, _("Extended attributes:"), - (item->flags & ITEM_FLAG_HAS_XATTR) - ? _("Present") - : xattr_supported(path) ? _("None") - : _("Not supported")); - } - - if (item->flags & ITEM_FLAG_SYMLINK) - { - GtkTreeIter iter; - GtkTreeModel *model = GTK_TREE_MODEL(store); - char *target; - - target = readlink_dup(path); - if (!target) - target = g_strdup(g_strerror(errno)); - add_row_and_free(store, _("Link target:"), target); - - /* Make cell editable */ - gtk_tree_model_iter_nth_child(model, &iter, - NULL, gtk_tree_model_iter_n_children(model, NULL) - 1); - - gtk_list_store_set(store, &iter, 2, TRUE, -1); - } - - if (item->base_type != TYPE_DIRECTORY) - { - if (EXECUTABLE_FILE(item)) - add_row(store, _("Run action:"), _("Execute file")); - else - { - add_row_and_free(store, _("Run action:"), - describe_current_command(item->mime_type)); - } - } - - return view; -} - -/* Create the TreeView widget with the application's details */ -static GtkWidget *make_about(const guchar *path, XMLwrapper *ai) -{ - GtkListStore *store; - GtkWidget *view; - xmlNode *prop; - xmlNode *about, *about_trans; - GHashTable *translate; - - g_return_val_if_fail(ai != NULL, NULL); - - about_trans = xml_get_section(ai, NULL, "About"); - - about = xmlDocGetRootElement(ai->doc)->xmlChildrenNode; - for (; about; about = about->next) - { - if (about->type != XML_ELEMENT_NODE) - continue; - if (about->ns == NULL && strcmp(about->name, "About") == 0) - break; - } - - g_return_val_if_fail(about != NULL, NULL); - - make_list(&store, &view, NULL); - - /* Add each field in about to the list, but overriding each element - * with about_trans if a translation is supplied. - */ - translate = g_hash_table_new(g_str_hash, g_str_equal); - if (about_trans != about) - { - xmlNode *p; - for (p = about_trans->xmlChildrenNode; p; p = p->next) - { - if (p->type != XML_ELEMENT_NODE) - continue; - g_hash_table_insert(translate, (char *) p->name, p); - } - } - for (prop = about->xmlChildrenNode; prop; prop = prop->next) - { - if (prop->type == XML_ELEMENT_NODE) - { - char *label = NULL; - char *value = NULL; - char *tmp = NULL; - xmlNode *trans; - - trans = g_hash_table_lookup(translate, prop->name); - if (!trans) - trans = prop; - - tmp = xmlGetProp(trans, "label"); - label = g_strconcat(tmp ? tmp - : (char *) trans->name, - ":", NULL); - g_free(tmp); - value = xmlNodeListGetString(trans->doc, - trans->xmlChildrenNode, 1); - if (!value) - value = xmlNodeListGetString(prop->doc, - prop->xmlChildrenNode, 1); - if (!value) - value = g_strdup("-"); - add_row_and_free(store, label, value); - g_free(label); - } - } - - g_hash_table_destroy(translate); - - return view; -} - -/* Create the TreeView widget with the desktop entry's details */ -static GtkWidget *make_about_desktop(const gchar *path) -{ - GtkListStore *store; - GtkWidget *view; - GError *error=NULL; - gchar *name=NULL, *comment=NULL, *exec=NULL; - - make_list(&store, &view, NULL); - - if(!get_values_from_desktop_file(path, &error, - "Desktop Entry", "Name", &name, - "Desktop Entry", "Comment", &comment, - "Desktop Entry", "Exec", &exec, - NULL)) - { - /* Report it? */ - delayed_error("%s", error->message); - if(error) - g_error_free(error); - return view; - } - - if(name) - add_row_and_free(store, _("Name"), name); - if(comment) - add_row_and_free(store, _("Comment"), comment); - if(exec) - add_row_and_free(store, _("Execute"), exec); - - return view; -} - -static GtkWidget *make_file_says(const guchar *path) -{ - GtkWidget *w_file_label; - GtkLabel *l_file_label; - int file_data[2]; - char *argv[] = {"file", "-b", NULL, NULL}; - FileStatus *fs = NULL; - guchar *tmp; - - w_file_label = gtk_label_new(_("")); - l_file_label = GTK_LABEL(w_file_label); - gtk_label_set_line_wrap(l_file_label, TRUE); - gtk_label_set_selectable(l_file_label, TRUE); - - if (pipe(file_data)) - { - tmp = g_strdup_printf("pipe(): %s", g_strerror(errno)); - gtk_label_set_text(l_file_label, tmp); - g_free(tmp); - return w_file_label; - } - - switch (fork()) - { - case -1: - tmp = g_strdup_printf("pipe(): %s", g_strerror(errno)); - gtk_label_set_text(l_file_label, tmp); - g_free(tmp); - close(file_data[0]); - close(file_data[1]); - break; - case 0: - /* We are the child */ - close(file_data[0]); - dup2(file_data[1], STDOUT_FILENO); - dup2(file_data[1], STDERR_FILENO); -#ifdef FILE_B_FLAG - argv[2] = (char *) path; -#else - argv[1] = (char *) g_basename(path); - chdir(g_path_get_dirname(path)); -#endif - if (execvp(argv[0], argv)) - fprintf(stderr, "execvp() error: %s\n", - g_strerror(errno)); - _exit(0); - default: - /* We are the parent */ - close(file_data[1]); - fs = g_new(FileStatus, 1); - fs->label = l_file_label; - fs->fd = file_data[0]; - fs->text = g_strdup(""); - fs->input = gdk_input_add_full(fs->fd, GDK_INPUT_READ, - (GdkInputFunction) add_file_output, - fs, NULL); - g_signal_connect(w_file_label, "destroy", - G_CALLBACK(file_info_destroyed), fs); - break; - } - - return w_file_label; -} - -/* Got some data from file(1) - stick it in the window. */ -static void add_file_output(FileStatus *fs, - gint source, GdkInputCondition condition) -{ - char buffer[20]; - char *str; - int got; - - got = read(source, buffer, sizeof(buffer) - 1); - if (got <= 0) - { - int err = errno; - g_source_remove(fs->input); - close(source); - fs->fd = -1; - if (got < 0) - delayed_error(_("file(1) says... %s"), - g_strerror(err)); - return; - } - buffer[got] = '\0'; - - str = g_strconcat(fs->text, buffer, NULL); - g_free(fs->text); - fs->text = str; - - str = to_utf8(fs->text); - g_strstrip(str); - gtk_label_set_text(fs->label, str); - g_free(str); -} - -static void file_info_destroyed(GtkWidget *widget, FileStatus *fs) -{ - if (fs->fd != -1) - { - g_source_remove(fs->input); - close(fs->fd); - } - - g_free(fs->text); - g_free(fs); -} - -static void permissions_destroyed(GtkWidget *widget, Permissions *perm) -{ - g_free(perm->path); - diritem_free(perm->item); - - g_free(perm); -} - -static void permissions_apply(GtkWidget *widget, Permissions *perm) -{ - mode_t nmode; - int i; - - nmode=0; - - for (i = 0; i < 9; i++) - { - GtkToggleButton *bit = GTK_TOGGLE_BUTTON(perm->bits[i]); - if (gtk_toggle_button_get_active(bit)) - nmode |= 1 << i; - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm->bits[9]))) - nmode |= S_ISUID; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm->bits[10]))) - nmode |= S_ISGID; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(perm->bits[11]))) - nmode |= S_ISVTX; - - if (chmod(perm->path, nmode)) - report_error(_("Could not change permissions: %s"), - g_strerror(errno)); -} - -static GtkWidget *make_permissions(const gchar *path, DirItem *item) -{ - Permissions *perm; - GtkWidget *table; - GtkWidget *tick, *label; - int i, x, y; - - perm = g_new(Permissions, 1); - - perm->path = g_strdup(path); - perm->item = diritem_new(path); - - table = gtk_table_new(4, 5, TRUE); - - label = gtk_label_new(_("Owner")); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 1, 2); - label = gtk_label_new(_("Group")); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 2, 3); - label = gtk_label_new(_("World")); - gtk_table_attach_defaults(GTK_TABLE(table), label, 0, 1, 3, 4); - - label = gtk_label_new(_("Read")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), label, 1, 2, 0, 1); - label = gtk_label_new(_("Write")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), label, 2, 3, 0, 1); - label = gtk_label_new(_("Exec")); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - gtk_table_attach_defaults(GTK_TABLE(table), label, 3, 4, 0, 1); - - for (i = 0; i < 9; i++) - { - x = 1 + 2 - i % 3; - y = 1 + 2 - i / 3; - perm->bits[i] = tick = gtk_check_button_new(); - gtk_table_attach_defaults(GTK_TABLE(table), tick, - x, x + 1, y, y + 1); - if (item->mode & (1 << i)) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tick), - TRUE); - g_signal_connect(tick, "toggled", - G_CALLBACK(permissions_apply), perm); - } - - tick = gtk_check_button_new_with_label(_("SUID")); - gtk_table_attach_defaults(GTK_TABLE(table), tick, 4, 5, 1, 2); - if (item->mode & S_ISUID) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tick), TRUE); - g_signal_connect(tick, "toggled", G_CALLBACK(permissions_apply), perm); - perm->bits[9] = tick; - - tick = gtk_check_button_new_with_label(_("SGID")); - gtk_table_attach_defaults(GTK_TABLE(table), tick, 4, 5, 2, 3); - if (item->mode & S_ISGID) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tick), TRUE); - g_signal_connect(tick, "toggled", G_CALLBACK(permissions_apply), perm); - perm->bits[10] = tick; - - tick = gtk_check_button_new_with_label(_("Sticky")); - gtk_table_attach_defaults(GTK_TABLE(table), tick, 4, 5, 3, 4); - if (item->mode & S_ISVTX) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(tick), TRUE); - g_signal_connect(tick, "toggled", G_CALLBACK(permissions_apply), perm); - perm->bits[11] = tick; - - g_signal_connect(table, "destroy", - G_CALLBACK(permissions_destroyed), perm); - - gtk_widget_show_all(table); - return table; -} - -static void unmount_option_toggled(GtkToggleButton *toggle, const char *path) -{ - if (gtk_toggle_button_get_active(toggle)) - { - filer_set_unmount_action(path, - GPOINTER_TO_INT(g_object_get_data(G_OBJECT(toggle), - "unmount_action"))); - } -} - -static GtkWidget *pack_unmount_radio(const char *path, - UnmountPrompt path_value, const char *label, - UnmountPrompt btn_value, GtkWidget *group_owner, GtkWidget *hbox) -{ - GtkWidget *radio; - - if (group_owner) - { - radio = gtk_radio_button_new_with_label_from_widget( - GTK_RADIO_BUTTON(group_owner), label); - } - else - { - radio = gtk_radio_button_new_with_label(NULL, label); - } - if (path_value == btn_value) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(radio), TRUE); - g_object_set_data(G_OBJECT(radio), "unmount_action", - GINT_TO_POINTER(btn_value)); - g_signal_connect(radio, "toggled", G_CALLBACK(unmount_option_toggled), - (gpointer) path); - gtk_box_pack_start(GTK_BOX(hbox), radio, FALSE, FALSE, 0); - return radio; -} - -static GtkWidget *make_unmount_options(const char *path) -{ - GtkWidget *hbox, *radio; - UnmountPrompt upval = filer_get_unmount_action(path); - - hbox = gtk_hbox_new(TRUE, 4); - radio = pack_unmount_radio(path, upval, - _("Do nothing"), UNMOUNT_PROMPT_NO_CHANGE, NULL, hbox); - radio = pack_unmount_radio(path, upval, - _("Unmount"), UNMOUNT_PROMPT_UNMOUNT, radio, hbox); - radio = pack_unmount_radio(path, upval, - _("Eject"), UNMOUNT_PROMPT_EJECT, radio, hbox); - pack_unmount_radio(path, upval, - _("Ask"), UNMOUNT_PROMPT_ASK, radio, hbox); - return hbox; -} - -/* Don't g_free() the result */ -static const gchar *pretty_type(DirItem *file, const guchar *path) -{ - static gchar *text = NULL; - - null_g_free(&text); - - if (file->flags & ITEM_FLAG_SYMLINK) - return _("Symbolic link"); - - if (file->flags & ITEM_FLAG_APPDIR) - return _("ROX application"); - - if (file->flags & ITEM_FLAG_MOUNT_POINT) - { - MountPoint *mp; - const gchar *mounted; - - mounted = mount_is_mounted(path, NULL, NULL) - ? _("mounted") : _("unmounted"); - - mp = g_hash_table_lookup(fstab_mounts, path); - if (mp) - text = g_strdup_printf(_("Mount point for %s (%s)"), - mp->name, mounted); - else - text = g_strdup_printf(_("Mount point (%s)"), mounted); - return text; - } - - if (file->mime_type) - { - text = g_strconcat(file->mime_type->media_type, "/", - file->mime_type->subtype, NULL); - return text; - } - - return "-"; -} diff --git a/ROX-Filer/src/infobox.h b/ROX-Filer/src/infobox.h deleted file mode 100644 index 8d943fb9..00000000 --- a/ROX-Filer/src/infobox.h +++ /dev/null @@ -1,12 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _INFOBOX_H -#define _INFOBOX_H - -void infobox_show_list(GList *paths); -void infobox_new(const gchar *pathname); - -#endif /* _INFOBOX_H */ diff --git a/ROX-Filer/src/log.c b/ROX-Filer/src/log.c deleted file mode 100644 index 34b21a43..00000000 --- a/ROX-Filer/src/log.c +++ /dev/null @@ -1,183 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2007, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* logging.c - the action logger */ - -#include "config.h" - -#include -#include -#include -#include - -#include "global.h" - -#include "log.h" -#include "main.h" -#include "gui_support.h" - -static GtkTreeStore *log; - -/* The columns in the log list store */ -#define TIMESTAMP 0 -#define DIRECTORY 1 -#define MESSAGE 2 - -/* Static prototypes */ -static void log_dialog_response(GtkDialog *dialog, gint resp_id, - gpointer udata); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void log_init() -{ - log = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); - - log_info_paths(_("ROX-Filer started"), NULL, NULL); - -#if 0 - GList *paths = NULL; - - paths = g_list_prepend(paths, "/first"); - paths = g_list_prepend(paths, "/second"); - - log_info_paths("Test path", NULL, "/the/path"); - log_info_paths("Test paths", paths, NULL); - log_info_paths("Test both", paths, "/other/path"); - log_info_paths("Test one", paths->next, "/other/path"); - log_info_paths("Test promote", paths->next, NULL); -#endif -} - -/* Record a message in the log. - * paths is the list of items being processed, if any - * path is a single path (if only one is being processed) - * paths and path may both be given (e.g. for copying or moving) - */ -void log_info_paths(const gchar *message, GList *paths, const gchar *path) -{ - GtkTreeIter iter; - char timestamp[32]; - time_t t; - struct tm *now; - char *actual_message = NULL; - int n_paths; - - if (!message) - message = "(no log message!)"; - - t = time(NULL); - now = localtime(&t); - - if (now == NULL || !strftime(timestamp, sizeof(timestamp), "%Y-%m-%d %H:%M", now)) - { - g_warning("Failed to generate timestamp!"); - strcpy(timestamp, "ERROR"); - } - - gtk_tree_store_append(log, &iter, NULL); - - n_paths = g_list_length(paths); - - if (path == NULL && n_paths == 1) - { - /* Promote the single item to the main path */ - path = paths->data; - paths = NULL; - n_paths = 0; - } - - if (n_paths == 1) - actual_message = g_strdup_printf(_("%s '%s'"), message, g_basename((char *) paths->data)); - else if (n_paths > 1) - actual_message = g_strdup_printf(_("%s on %d items"), message, n_paths); - - gtk_tree_store_set(log, &iter, - TIMESTAMP, timestamp, - DIRECTORY, path, - MESSAGE, actual_message ? actual_message : message, - -1); - - while (paths) - { - GtkTreeIter child_iter; - gtk_tree_store_append(log, &child_iter, &iter); - gtk_tree_store_set(log, &child_iter, - MESSAGE, _("Item"), - DIRECTORY, paths->data, - -1); - paths = paths->next; - } - - g_free(actual_message); -} - -/* Open the log window. */ -void log_show_window() -{ - GtkWidget *dialog; - GtkBuilder *builder; - GtkTreeView *tv; - GtkTreeViewColumn *column; - GtkCellRenderer *renderer; - gchar *ids[] = {"Log viewer", NULL}; - - builder = get_gtk_builder(ids); - - tv = GTK_TREE_VIEW(gtk_builder_get_object(builder, "log_list")); - gtk_tree_view_set_model(tv, GTK_TREE_MODEL(log)); - - renderer = gtk_cell_renderer_text_new(); - - column = gtk_tree_view_column_new_with_attributes(_("Time"), renderer, - "text", TIMESTAMP, - NULL); - gtk_tree_view_append_column(tv, column); - - column = gtk_tree_view_column_new_with_attributes(_("Action"), renderer, - "text", MESSAGE, - NULL); - gtk_tree_view_column_set_resizable(column, TRUE); - gtk_tree_view_append_column(tv, column); - - column = gtk_tree_view_column_new_with_attributes(_("Path"), renderer, - "text", DIRECTORY, - NULL); - gtk_tree_view_append_column(tv, column); - - dialog = GTK_WIDGET(gtk_builder_get_object(builder, "Log viewer")); - g_signal_connect(G_OBJECT(dialog), - "response", (GCallback) log_dialog_response, NULL); - - gtk_widget_show(dialog); - g_object_unref(builder); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ -static void log_dialog_response(GtkDialog *dialog, gint resp_id, - gpointer udata) -{ - /* Only response we should get is CLOSE */ - gtk_widget_hide(GTK_WIDGET(dialog)); - gtk_widget_destroy(GTK_WIDGET(dialog)); -} diff --git a/ROX-Filer/src/log.h b/ROX-Filer/src/log.h deleted file mode 100644 index 6402efde..00000000 --- a/ROX-Filer/src/log.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _LOG_H -#define _LOG_H - -void log_init(void); -void log_info_paths(const gchar *message, GList *paths, const gchar *dest); -void log_show_window(void); - -#endif /* _LOG_H */ diff --git a/ROX-Filer/src/main.c b/ROX-Filer/src/main.c deleted file mode 100644 index 3f773b0e..00000000 --- a/ROX-Filer/src/main.c +++ /dev/null @@ -1,1032 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* main.c - parses command-line options and parameters, plus some global - * housekeeping. - * - * New to the code and feeling lost? Read global.h now. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HAVE_GETOPT_LONG -# include -#endif - -#include -#include /* For rox_x_error */ - -#include "global.h" - -#include "main.h" -#include "log.h" -#include "support.h" -#include "gui_support.h" -#include "filer.h" -#include "display.h" -#include "mount.h" -#include "menu.h" -#include "dnd.h" -#include "options.h" -#include "choices.h" -#include "type.h" -#include "pixmaps.h" -#include "dir.h" -#include "diritem.h" -#include "action.h" -#include "i18n.h" -#include "remote.h" -#include "pinboard.h" -#include "run.h" -#include "toolbar.h" -#include "bind.h" -#include "panel.h" -#include "session.h" -#include "minibuffer.h" -#include "xtypes.h" -#include "bulk_rename.h" -#include "gtksavebox.h" - -int number_of_windows = 0; /* Quit when this reaches 0 again... */ -int to_wakeup_pipe = -1; /* Write here to get noticed */ - -/* Information about the ROX-Filer process */ -uid_t euid; -gid_t egid; -int ngroups; /* Number of supplemental groups */ -gid_t *supplemental_groups = NULL; - -/* Message to display at the top of each filer window */ -const gchar *show_user_message = NULL; - -int home_dir_len; -const char *home_dir, *app_dir; - -GtkTooltips *tooltips = NULL; - -#define COPYING \ - N_("Copyright (C) 2005 Thomas Leonard.\n" \ - "ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" \ - "to the extent permitted by law.\n" \ - "You may redistribute copies of ROX-Filer\n" \ - "under the terms of the GNU General Public License.\n" \ - "For more information about these matters, " \ - "see the file named COPYING.\n") - -#ifdef HAVE_GETOPT_LONG -# define USAGE N_("Try `ROX-Filer/AppRun --help' for more information.\n") -# define SHORT_ONLY_WARNING "" -#else -# define USAGE N_("Try `ROX-Filer/AppRun -h' for more information.\n") -# define SHORT_ONLY_WARNING \ - _("NOTE: Your system does not support long options - \n" \ - "you must use the short versions instead.\n\n") -#endif - -#define BUGS_TO "" - -#define HELP N_("Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" \ - "Open each directory or file listed, or the current working\n" \ - "directory if no arguments are given.\n\n" \ - " -b, --border=PANEL open PANEL as a border panel\n" \ - " -B, --bottom=PANEL open PAN as a bottom-edge panel\n" \ - " -c, --client-id=ID used for session management\n" \ - " -d, --dir=DIR open DIR as directory (not application)\n" \ - " -D, --close=DIR close DIR and its subdirectories\n" \ - " -h, --help display this help and exit\n" \ - " -l, --left=PANEL open PAN as a left-edge panel\n" \ - " -m, --mime-type=FILE print MIME type of FILE and exit\n" \ - " -n, --new start new copy; for debugging the filer\n" \ - " -p, --pinboard=PIN use pinboard PIN as the pinboard\n" \ - " -r, --right=PANEL open PAN as a right-edge panel\n" \ - " -R, --RPC invoke method call read from stdin\n" \ - " -s, --show=FILE open a directory showing FILE\n" \ - " -S, --rox-session use default panel and pinboard options, and -n\n"\ - " -t, --top=PANEL open PANEL as a top-edge panel\n" \ - " -u, --user show user name in each window \n" \ - " -U, --url=URL open file or directory in URI form\n" \ - " -v, --version display the version information and exit\n" \ - " -x, --examine=FILE FILE has changed - re-examine it\n" \ - "\nReport bugs to %s.\n" \ - "Home page (including updated versions): http://rox.sourceforge.net/\n") - -#define SHORT_OPS "c:d:t:b:l:r:B:op:s:hvnux:m:D:RSU:" - -#ifdef HAVE_GETOPT_LONG -static struct option long_opts[] = -{ - {"dir", 1, NULL, 'd'}, - {"top", 1, NULL, 't'}, - {"bottom", 1, NULL, 'B'}, - {"border", 1, NULL, 'b'}, - {"left", 1, NULL, 'l'}, - {"override", 0, NULL, 'o'}, - {"pinboard", 1, NULL, 'p'}, - {"right", 1, NULL, 'r'}, - {"help", 0, NULL, 'h'}, - {"version", 0, NULL, 'v'}, - {"user", 0, NULL, 'u'}, - {"new", 0, NULL, 'n'}, - {"RPC", 0, NULL, 'R'}, - {"show", 1, NULL, 's'}, - {"rox-session", 0, NULL, 'S'}, - {"examine", 1, NULL, 'x'}, - {"close", 1, NULL, 'D'}, - {"mime-type", 1, NULL, 'm'}, - {"client-id", 1, NULL, 'c'}, - {"url", 1, NULL, 'u'}, - {NULL, 0, NULL, 0}, -}; -#endif - -/* Take control of panels away from WM? */ -Option o_override_redirect; - -/* Options used when we are called by ROX-Session */ -enum { - SESSION_PANEL_ONLY, - SESSION_PINBOARD_ONLY, - SESSION_BOTH, -}; -Option o_session_panel_or_pin; -Option o_session_pinboard_name; - -/* Always start a new filer, even if one seems to be already running */ -gboolean new_copy = FALSE; - -/* Maps child PIDs to Callback pointers */ -static GHashTable *death_callbacks = NULL; -static gboolean child_died_flag = FALSE; - -Option o_dnd_no_hostnames; - -/* Static prototypes */ -static void show_features(void); -static void soap_add(xmlNodePtr body, - xmlChar *function, - const xmlChar *arg1_name, const xmlChar *arg1_value, - const xmlChar *arg2_name, const xmlChar *arg2_value); -static void soap_reply(xmlDocPtr reply, gboolean rpc_mode); -static void child_died(int signum); -static void child_died_callback(void); -static void wake_up_cb(gpointer data, gint source, GdkInputCondition condition); -static void xrandr_size_change(GdkScreen *screen, gpointer user_data); -static void add_default_panel_and_pinboard(xmlNodePtr body); -static GList *build_launch(Option *option, xmlNode *node, guchar *label); -static GList *build_make_script(Option *option, xmlNode *node, guchar *label); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -/* The value that goes with an option */ -#define VALUE (*optarg == '=' ? optarg + 1 : optarg) - -static int rox_x_error(Display *display, XErrorEvent *error) -{ - gchar buf[64]; - - XGetErrorText(display, error->error_code, buf, 63); - - g_warning ("The program '%s' received an X Window System error.\n" - "This probably reflects a bug in the program.\n" - "The error was '%s'.\n" - " (Details: serial %ld error_code %d request_code %d minor_code %d)\n" - " (Note to programmers: normally, X errors are reported asynchronously;\n" - " that is, you will receive the error a while after causing it.\n" - " To debug your program, run it with the --sync command line\n" - " option to change this behavior. You can then get a meaningful\n" - " backtrace from your debugger.)", - g_get_prgname (), - buf, - error->serial, - error->error_code, - error->request_code, - error->minor_code); - - /* Try to cope with BadWindow errors */ - if (error->error_code == BadWindow || error->error_code == BadDrawable) - { - g_warning(_("We got a BadWindow error from the X server. " - "This might be due to this GTK bug (during drag-and-drop?):\n" - "http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" - "Trying to continue...")); - return 0; - } - - abort(); -} - -/* Parses the command-line to work out what the user wants to do. - * Tries to send the request to an already-running copy of the filer. - * If that fails, it initialises all the other modules and executes the - * request itself. - */ -int main(int argc, char **argv) -{ - int wakeup_pipe[2]; - int i; - struct sigaction act; - guchar *tmp, *dir; - gchar *client_id = NULL; - gboolean show_user = FALSE; - gboolean rpc_mode = FALSE; - xmlDocPtr rpc, soap_rpc = NULL, reply; - xmlNodePtr body; - int fd, ofd0=-1; - - /* Relocate stdin. We do need it (-R), but it can cause problems if - * a child process wants a password, etc... - * Do this BEFORE opening anything (e.g., the X connection), in - * case fd 0 isn't open at this point. - */ - fd = open("/dev/null", O_RDONLY); - if (fd > 0) - { - ofd0=dup(0); - close(0); - dup2(fd, 0); - close(fd); - } - - home_dir = g_get_home_dir(); - home_dir_len = strlen(home_dir); - app_dir = g_strdup(getenv("APP_DIR")); - - /* Get internationalisation up and running. This requires the - * choices system, to discover the user's preferred language. - */ - choices_init(); - options_init(); - i18n_init(); - xattr_init(); - - if (!app_dir) - { - g_warning("APP_DIR environment variable was unset!\n" - "Use the AppRun script to invoke ROX-Filer...\n"); - app_dir = g_get_current_dir(); - } -#ifdef HAVE_UNSETENV - else - { - /* Don't pass it on to our child processes... */ - unsetenv("APP_DIR"); - } -#endif - - /* Sometimes we want to take special action when a child - * process exits. This hash table is used to convert the - * child's PID to the callback function. - */ - death_callbacks = g_hash_table_new(NULL, NULL); - - /* Find out some information about ourself */ - euid = geteuid(); - egid = getegid(); - ngroups = getgroups(0, NULL); - if (ngroups < 0) - ngroups = 0; - else if (ngroups > 0) - { - supplemental_groups = g_malloc(sizeof(gid_t) * ngroups); - getgroups(ngroups, supplemental_groups); - } - - if (argc == 2 && strcmp(argv[1], "-v") == 0) - { - /* This is used by install.sh to test if the filer - * compiled OK. Do this test before gtk_init so that - * we don't need an X server to install. - */ - g_print("ROX-Filer %s\n", VERSION); - g_print(_(COPYING)); - show_features(); - return EXIT_SUCCESS; - } - - option_add_int(&o_override_redirect, "override_redirect", FALSE); - - option_add_int(&o_session_panel_or_pin, "session_panel_or_pin", - SESSION_BOTH); - option_add_string(&o_session_pinboard_name, "session_pinboard_name", - "Default"); - option_register_widget("launch", build_launch); - option_register_widget("make-script", build_make_script); - -#ifdef UNIT_TESTS - bulk_rename_tests(); -#endif - - /* The idea here is to convert the command-line arguments - * into a SOAP RPC. - * We attempt to invoke the call on an already-running copy of - * the filer if possible, or execute it ourselves if not. - */ - rpc = soap_new(&body); - - /* Note: must do this before checking our options, - * otherwise we report an error for Gtk's options. - */ - gtk_init(&argc, &argv); - /* Set a default style for the collection widget */ - gtk_rc_parse_string("style \"rox-default-collection-style\" {\n" - " bg[NORMAL] = \"#f3f3f3\"\n" - " fg[NORMAL] = \"#000000\"\n" - " bg[INSENSITIVE] = \"#bfbfbf\"\n" - " fg[INSENSITIVE] = \"#000000\"\n" - "}\n" - "style \"rox-default-pinboard-style\" {\n" - " bg[NORMAL] = \"#666666\"\n" - "}\n" - "widget \"rox-pinboard\" style : gtk " - "\"rox-default-pinboard-style\"\n" - - "class \"Collection\" style : gtk " - "\"rox-default-collection-style\"\n"); - - g_signal_connect(gdk_screen_get_default(), "size-changed", - G_CALLBACK(xrandr_size_change), NULL); - - /* Process each option in turn */ - while (1) - { - int c; -#ifdef HAVE_GETOPT_LONG - int long_index; - c = getopt_long(argc, argv, SHORT_OPS, - long_opts, &long_index); -#else - c = getopt(argc, argv, SHORT_OPS); -#endif - - if (c == EOF) - break; /* No more options */ - - switch (c) - { - case 'n': - new_copy = TRUE; - break; - case 'o': - info_message(_("The -o argument is no longer " - "used. You can turn on override " - "redirect from the Options box " - "instead.")); - break; - case 'v': - g_print("ROX-Filer %s\n", VERSION); - g_print("%s", _(COPYING)); - show_features(); - return EXIT_SUCCESS; - case 'h': - g_print(_(HELP), BUGS_TO); - g_print("%s", _(SHORT_ONLY_WARNING)); - return EXIT_SUCCESS; - case 'D': - case 'd': - case 'x': - /* Argument is a path */ - if (c == 'd' && VALUE[0] == '/') - tmp = g_strdup(VALUE); - else - tmp = pathdup(VALUE); - soap_add(body, - c == 'D' ? "CloseDir" : - c == 'd' ? "OpenDir" : - c == 'x' ? "Examine" : "Unknown", - "Filename", tmp, - NULL, NULL); - g_free(tmp); - break; - case 's': - tmp = g_path_get_dirname(VALUE); - - if (tmp[0] == '/') - dir = NULL; - else - dir = pathdup(tmp); - - soap_add(body, "Show", - "Directory", dir ? dir : tmp, - "Leafname", g_basename(VALUE)); - g_free(tmp); - g_free(dir); - break; - case 'l': - case 'r': - case 't': - case 'B': - /* Argument is a leaf (or starts with /) */ - soap_add(body, "Panel", "Name", VALUE, - "Side", c == 'l' ? "Left" : - c == 'r' ? "Right" : - c == 't' ? "Top" : - c == 'B' ? "Bottom" : - "Unkown"); - break; - case 'b': - /* Argument is a leaf (or starts with /) */ - if (*VALUE) - soap_add(body, "Panel", "Name", VALUE, - NULL, NULL); - else - soap_add(body, "Panel", - "Side", "Bottom", - NULL, NULL); - break; - case 'p': - soap_add(body, "Pinboard", - "Name", VALUE, NULL, NULL); - break; - case 'u': - show_user = TRUE; - break; - case 'm': - { - MIME_type *type; - type_init(); - diritem_init(); - pixmaps_init(); - type = type_get_type(VALUE); - printf("%s/%s\n", type->media_type, - type->subtype); - return EXIT_SUCCESS; - } - case 'c': - client_id = g_strdup(VALUE); - break; - case 'R': - /* Reconnect stdin */ - if(ofd0>-1) { - close(0); - dup2(ofd0, 0); - } - soap_rpc = xmlParseFile("-"); - if (!soap_rpc) - g_error("Invalid XML in RPC"); - /* Disconnect stdin again */ - fd = open("/dev/null", O_RDONLY); - if (fd > 0) - { - close(0); - dup2(fd, 0); - close(fd); - } - /* Want to print return uninterpreted */ - rpc_mode=TRUE; - - break; - - case 'S': - new_copy = TRUE; - add_default_panel_and_pinboard(body); - session_auto_respawn = TRUE; - break; - - case 'U': - soap_add(body, "RunURI", - "URI", VALUE, NULL, NULL); - break; - - default: - printf(_(USAGE)); - return EXIT_FAILURE; - } - } - - tooltips = gtk_tooltips_new(); - - if (euid == 0 || show_user) - show_user_message = g_strdup_printf(_("Running as user '%s'"), - user_name(euid)); - - /* Add each remaining (non-option) argument to the list of files - * to run. - */ - i = optind; - while (i < argc) - { - tmp = pathdup(argv[i++]); - - soap_add(body, "Run", "Filename", tmp, NULL, NULL); - - g_free(tmp); - } - - if (soap_rpc) - { - if (body->xmlChildrenNode) - g_error("Can't use -R with other options - sorry!"); - xmlFreeDoc(rpc); - body = NULL; - rpc = soap_rpc; - } - else if (!body->xmlChildrenNode) - { - /* The user didn't request any action. Open the current - * directory. - */ - guchar *dir; - - dir = g_get_current_dir(); - soap_add(body, "OpenDir", "Filename", dir, NULL, NULL); - g_free(dir); - } - - option_add_int(&o_dnd_no_hostnames, "dnd_no_hostnames", 1); - - /* Try to send the request to an already-running copy of the filer */ - gui_support_init(); - if (remote_init(rpc, new_copy)) - return EXIT_SUCCESS; /* It worked - exit */ - - /* Put ourselves into the background (so 'rox' always works the - * same, whether we're already running or not). - * Not for -n, though (helps when debugging). - */ - if (!new_copy) - { - pid_t child; - - child = fork(); - if (child > 0) - _exit(0); /* Parent exits */ - /* Otherwise we're the child (or an error occurred - ignore - * it!). - */ - } - - /* Initialize the rest of the filer... */ - - pixmaps_init(); - - log_init(); - dnd_init(); - bind_init(); - dir_init(); - diritem_init(); - menu_init(); - minibuffer_init(); - filer_init(); - toolbar_init(); - display_init(); - mount_init(); - type_init(); - action_init(); - - pinboard_init(); - panel_init(); - - /* Let everyone update */ - options_notify(); - - /* When we get a signal, we can't do much right then. Instead, - * we send a char down this pipe, which causes the main loop to - * deal with the event next time we're idle. - */ - pipe(wakeup_pipe); - close_on_exec(wakeup_pipe[0], TRUE); - close_on_exec(wakeup_pipe[1], TRUE); - gdk_input_add_full(wakeup_pipe[0], GDK_INPUT_READ, wake_up_cb, - NULL, NULL); - to_wakeup_pipe = wakeup_pipe[1]; - - /* If the pipe is full then we're going to get woken up anyway... */ - set_blocking(to_wakeup_pipe, FALSE); - - /* Let child processes die */ - act.sa_handler = child_died; - sigemptyset(&act.sa_mask); - act.sa_flags = SA_NOCLDSTOP; - sigaction(SIGCHLD, &act, NULL); - - /* Ignore SIGPIPE - check for EPIPE errors instead */ - act.sa_handler = SIG_IGN; - sigemptyset(&act.sa_mask); - act.sa_flags = 0; - sigaction(SIGPIPE, &act, NULL); - - /* Set up session managament if available */ - session_init(client_id); - g_free(client_id); - - /* See if we need to migrate the Choices directories*/ - choices_migrate(); - - /* Finally, execute the request */ - reply = run_soap(rpc); - xmlFreeDoc(rpc); - soap_reply(reply, rpc_mode); - - /* Try to find out why we crash with GTK 2.4 */ - XSetErrorHandler(rox_x_error); - - /* Enter the main loop, processing events until all our windows - * are closed. - */ - if (number_of_windows > 0) - gtk_main(); - - return EXIT_SUCCESS; -} - -/* Register a function to be called when process number 'child' dies. */ -void on_child_death(gint child, CallbackFn callback, gpointer data) -{ - Callback *cb; - - g_return_if_fail(callback != NULL); - - cb = g_new(Callback, 1); - - cb->callback = callback; - cb->data = data; - - g_hash_table_insert(death_callbacks, GINT_TO_POINTER(child), cb); -} - -void one_less_window(void) -{ - if (--number_of_windows < 1) - gtk_main_quit(); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void show_features(void) -{ - g_print("\n"); - g_print(_("Compiled with GTK version %s\n"), GTK_VERSION); - g_print(_("Running with GTK version %d.%d.%d\n"), - gtk_major_version, - gtk_minor_version, - gtk_micro_version); - g_print("\n-- %s --\n\n", _("features set at compile time")); - g_print("%s... %s\n", _("Large File Support"), -#ifdef LARGE_FILE_SUPPORT - _("Yes") -#else - _("No") -#endif - ); - g_print("%s... %s\n", _("Inotify support"), -#ifdef USE_INOTIFY - _("Yes") -#else - _("No") -#endif - ); - g_print("%s... %s\n", _("Dnotify support"), -#ifdef USE_DNOTIFY - _("Yes") -#else - _("No") -#endif - ); - g_print("%s... %s\n", _("Binary compatibility"), -#if defined(HAVE_APSYMBOLS_H) || defined(HAVE_APBUILD_APSYMBOLS_H) - _("Yes (can run with older glibc versions)") -#else - _("No (apsymbols.h not found)") -#endif - ); - - g_print("%s... %s\n", _("Extended attribute support"), - xattr_supported(NULL)? _("Yes"): _("No")); -} - -static void soap_add(xmlNodePtr body, - xmlChar *function, - const xmlChar *arg1_name, const xmlChar *arg1_value, - const xmlChar *arg2_name, const xmlChar *arg2_value) -{ - xmlNodePtr node; - xmlNs *rox; - - rox = xmlSearchNsByHref(body->doc, body, ROX_NS); - - node = xmlNewChild(body, rox, function, NULL); - - if (arg1_name) - { - xmlNewTextChild(node, rox, arg1_name, arg1_value); - if (arg2_name) - xmlNewTextChild(node, rox, arg2_name, arg2_value); - } -} - -static void soap_reply(xmlDocPtr reply, gboolean rpc_mode) -{ - gboolean print=TRUE; - - if(!reply) - return; - - if(!rpc_mode) { - gchar **errs=extract_soap_errors(reply); - - if(errs) { - int i; - - print=FALSE; - - for(i=0; errs[i]; i++) - fprintf(stderr, "%s\n", errs[i]); - - g_strfreev(errs); - } - } - - /* Write the result, if any, to stdout */ - if(print) - save_xml_file(reply, "-"); - xmlFreeDoc(reply); -} - -/* This is called as a signal handler; simply ensures that - * child_died_callback() will get called later. - */ -static void child_died(int signum) -{ - child_died_flag = TRUE; - write(to_wakeup_pipe, "\0", 1); /* Wake up! */ -} - -static void child_died_callback(void) -{ - int status; - gint child; - - child_died_flag = FALSE; - - /* Find out which children exited and allow them to die */ - do - { - Callback *cb; - - child = waitpid(-1, &status, WNOHANG); - - if (child == 0 || child == -1) - return; - - cb = g_hash_table_lookup(death_callbacks, - GINT_TO_POINTER(child)); - if (cb) - { - cb->callback(cb->data); - g_hash_table_remove(death_callbacks, - GINT_TO_POINTER(child)); - } - - } while (1); -} - -#define BUFLEN 40 -/* When data is written to_wakeup_pipe, this gets called from the event - * loop some time later. Useful for getting out of signal handlers, etc. - */ -static void wake_up_cb(gpointer data, gint source, GdkInputCondition condition) -{ - char buf[BUFLEN]; - - read(source, buf, BUFLEN); - - if (child_died_flag) - child_died_callback(); -#ifdef USE_DNOTIFY - if (dnotify_wakeup_flag) - dnotify_wakeup(); -#endif -} - -static void xrandr_size_change(GdkScreen *screen, gpointer user_data) -{ - gui_store_screen_geometry(screen); - - panel_update_size(); - pinboard_update_size(); -} - -static void add_default_panel_and_pinboard(xmlNodePtr body) -{ - const char *name; - - if (o_session_panel_or_pin.int_value != SESSION_PANEL_ONLY) - { - name=o_session_pinboard_name.value; - if (!name[0]) - name="Default"; - soap_add(body, "Pinboard","Name", name, NULL, NULL); - } - - if (o_session_panel_or_pin.int_value != SESSION_PINBOARD_ONLY) - { - gboolean use_old_option = TRUE; - GIOChannel *fp = NULL; - GError *err = NULL; - char *line = NULL; - gsize term; - char *filename = choices_find_xdg_path_load("panels", - "ROX-Filer", "rox.sourceforge.net"); - - if (filename) - fp = g_io_channel_new_file(filename, "r", &err); - while (fp && g_io_channel_read_line(fp, &line, NULL, &term, &err) == - G_IO_STATUS_NORMAL) - { - if (line && (line[term] = 0, line[0])) - { - soap_add(body, "Panel", "Name", line, NULL, NULL); - use_old_option = FALSE; - } - } - if (err) - { - g_critical(_("Unable to read '%s': %s"), - filename, err->message); - g_error_free(err); - } - if (fp) - g_io_channel_shutdown(fp, FALSE, NULL); - if (use_old_option) - { - soap_add(body, "Panel", "Name", "Default", NULL, NULL); - } - g_free(filename); - } -} - -static GtkWidget *launch_button_new(const char *label, const char *uri, - const char *appname) -{ - GtkWidget *button; - GClosure *closure; - const gchar *slash; - gchar *tip; - - button = button_new_mixed(GTK_STOCK_PREFERENCES, label); - closure = g_cclosure_new(G_CALLBACK(launch_uri), - g_strdup(uri), - (GClosureNotify) g_free); - g_signal_connect_closure(button, "clicked", closure, FALSE); - if(appname) { - g_object_set_data_full(G_OBJECT(button), "appname", - g_strdup(appname), - (GDestroyNotify) g_free); - } - - allow_right_click(button); - - slash = strrchr(uri, '/'); - if (!slash) - slash = uri - 1; - tip = g_strdup_printf( - _("Left-click to run %s.\n" - "Right-click for a list of versions."), - slash + 1); - - gtk_tooltips_set_tip(tooltips, button, tip, NULL); - - g_free(tip); - - return button; -} - -static GList *build_launch(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *align; - char *uri; - char *appname; - - g_return_val_if_fail(option == NULL, NULL); - g_return_val_if_fail(label != NULL, NULL); - - uri = xmlGetProp(node, "uri"); - appname = xmlGetProp(node, "appname"); - - g_return_val_if_fail(uri != NULL, NULL); - - align = gtk_alignment_new(0, 0.5, 0, 0); - - gtk_container_add(GTK_CONTAINER(align), - launch_button_new(_(label), uri, appname)); - - g_free(uri); - if(appname) - g_free(appname); - - return g_list_append(NULL, align); -} - -/* Call back from save box to create a rox script */ -static gint new_script_cb(GObject *savebox, - const gchar *path, gpointer data) -{ - FILE *fp; - - fp = fopen(path, "w"); - - if (fp == NULL) - { - report_error(_("Error creating '%s': %s"), - path, g_strerror(errno)); - return GTK_XDS_SAVE_ERROR; - } - - fprintf(fp, "#!/bin/sh\n"); - fprintf(fp, "exec %s/AppRun \"$@\"\n", app_dir); - - fclose(fp); - chmod(path, 0755); - - dir_check_this(path); - - return GTK_XDS_SAVED; -} - -/* Option button to create the rox script clicked */ -static void make_script_clicked(GtkWidget *button, gpointer udata) -{ - const gchar *filename; - GtkWidget *savebox; - MaskedPixmap *image; - - /* Default to saving in current filer window */ - if(window_with_focus) - filename=make_path(window_with_focus->sym_path, "rox"); - else - filename="rox"; - image = type_to_icon(application_x_shellscript); - - /* Create a save box to save the script */ - savebox = gtk_savebox_new(_("Save")); - gtk_savebox_set_action(GTK_SAVEBOX(savebox), GDK_ACTION_COPY); - g_signal_connect(savebox, "save_to_file", - G_CALLBACK(new_script_cb), NULL); - - gtk_window_set_title(GTK_WINDOW(savebox), _("Start script")); - - gtk_savebox_set_pathname(GTK_SAVEBOX(savebox), filename); - gtk_savebox_set_icon(GTK_SAVEBOX(savebox), image->pixbuf); - g_object_unref(image); - - gtk_widget_show(savebox); -} - -/* Build option button to create rox script */ -static GList *build_make_script(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *align; - GtkWidget *button; - gchar *tip; - - g_return_val_if_fail(option == NULL, NULL); - g_return_val_if_fail(label != NULL, NULL); - - align = gtk_alignment_new(0, 0.5, 0, 0); - - button = gtk_button_new_with_label(_(label)); - g_signal_connect(button, "clicked", G_CALLBACK(make_script_clicked), - NULL); - - tip = _("Click to save a script to run ROX-Filer.\n" - "If you are using Zero Install you should use 0alias " - "instead."); - gtk_tooltips_set_tip(tooltips, button, tip, NULL); - - gtk_container_add(GTK_CONTAINER(align), button); - - return g_list_append(NULL, align); -} diff --git a/ROX-Filer/src/main.h b/ROX-Filer/src/main.h deleted file mode 100644 index 44262cae..00000000 --- a/ROX-Filer/src/main.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _MAIN_H -#define _MAIN_H - -#include -#include - -typedef struct _Callback Callback; -typedef void (*CallbackFn)(gpointer data); - -extern GtkTooltips *tooltips; - -struct _Callback -{ - CallbackFn callback; - gpointer data; -}; - -extern int number_of_windows; -extern Option o_override_redirect; -extern int to_wakeup_pipe; - -extern uid_t euid; -extern gid_t egid; -extern int ngroups; /* Number of supplemental groups */ -extern gid_t *supplemental_groups; -extern const gchar *show_user_message; -extern int home_dir_len; -extern const char *home_dir, *app_dir; -extern Option o_dnd_no_hostnames; - -/* Prototypes */ -int main(int argc, char **argv); -void on_child_death(gint child, CallbackFn callback, gpointer data); -void one_less_window(void); - -#endif /* _MAIN_H */ diff --git a/ROX-Filer/src/makedist b/ROX-Filer/src/makedist deleted file mode 100755 index ecc7f3bd..00000000 --- a/ROX-Filer/src/makedist +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env perl - -chdir "../../../rox"; - -system "cvs rel ."; - -open(VER, "ROX-Filer/AppRun --version 2>&1 |") or die "open(): $!"; -while () { - last if /^ROX-Filer/; -} -close(VER); - -/(\d+(\.\d+)*)$/; - -$version = $1; -$_=$1; -s/\./_/g; -$dash = $_; - -print "Check the manual is up-to-date!\n"; -print "Version $version ($dash) --- OK?\n"; - - =~ /^[yY]/ or die "OK, fix the version number!\n"; - -system "cvs tag -F Release-$dash"; -system "cd ROX-Filer/src/po; ./update-po; ./dist"; - -chdir; - -mkdir "rox-$version", 0775 or warn "mkdir() failed: $!\n"; -chdir "rox-$version"; - -system "cvs -dtal197\@cvs.sourceforge.net:/cvsroot/rox export -r Release-$dash rox"; -#system "cvs -d:pserver:anonymous\@cvs.sourceforge.net:/cvsroot/rox export -r Release-$a-$b-$c rox"; - -system "cd rox/ROX-Filer/src; autoconf; cd Docs; make"; -system "cp -r ~/Projects/rox/ROX-Filer/Messages/*.gmo rox/ROX-Filer/Messages"; - -system "mv rox/* ."; -rmdir "rox"; - -system "find -name '.cvsignore' | xargs rm"; - -chdir ".."; -system "tar czf rox-$version.tgz rox-$version"; -system "rm -r rox-$version"; - -print "OK, done\n"; diff --git a/ROX-Filer/src/menu.c b/ROX-Filer/src/menu.c deleted file mode 100644 index 07728a13..00000000 --- a/ROX-Filer/src/menu.c +++ /dev/null @@ -1,2093 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* menu.c - code for handling the popup menus */ - -#ifndef GTK_STOCK_INFO -# define GTK_STOCK_INFO "gtk-info" -#endif - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "global.h" - -#include "menu.h" -#include "run.h" -#include "action.h" -#include "filer.h" -#include "pixmaps.h" -#include "type.h" -#include "support.h" -#include "gui_support.h" -#include "options.h" -#include "choices.h" -#include "gtksavebox.h" -#include "mount.h" -#include "minibuffer.h" -#include "i18n.h" -#include "main.h" -#include "pinboard.h" -#include "dir.h" -#include "diritem.h" -#include "appmenu.h" -#include "usericons.h" -#include "infobox.h" -#include "view_iface.h" -#include "display.h" -#include "bookmarks.h" -#include "panel.h" -#include "bulk_rename.h" -#include "xtypes.h" -#include "log.h" - -typedef enum { - FILE_COPY_ITEM, - FILE_RENAME_ITEM, - FILE_LINK_ITEM, - FILE_OPEN_FILE, - FILE_PROPERTIES, - FILE_RUN_ACTION, - FILE_SET_ICON, - FILE_SEND_TO, - FILE_DELETE, - FILE_USAGE, - FILE_CHMOD_ITEMS, - FILE_FIND, - FILE_SET_TYPE, -} FileOp; - -typedef void (*ActionFn)(GList *paths, - const char *dest_dir, const char *leaf, int quiet); -typedef void MenuCallback(GtkWidget *widget, gpointer data); - -typedef gboolean (*SaveCb)(GObject *savebox, - const gchar *current, const gchar *new); - -GtkAccelGroup *filer_keys = NULL; -static gboolean filer_keys_need_init = TRUE; - -static GtkWidget *popup_menu = NULL; /* Currently open menu */ - -static gint updating_menu = 0; /* Non-zero => ignore activations */ -static GList *send_to_paths = NULL; - -static Option o_menu_iconsize, o_menu_xterm, o_menu_quick; - -/* Static prototypes */ - -static void save_menus(void); -static void menu_closed(GtkWidget *widget); -static void shade_file_menu_items(gboolean shaded); -static void savebox_show(const gchar *action, const gchar *path, - MaskedPixmap *image, SaveCb callback, - GdkDragAction dnd_action); -static gint save_to_file(GObject *savebox, - const gchar *pathname, gpointer data); -static gboolean action_with_leaf(ActionFn action, - const gchar *current, const gchar *new); -static gboolean link_cb(GObject *savebox, - const gchar *initial, const gchar *path); -static void select_nth_item(GtkMenuShell *shell, int n); -static void new_file_type(gchar *templ); -static void do_send_to(gchar *templ); -static void show_send_to_menu(GList *paths, GdkEvent *event); -static GList *set_keys_button(Option *option, xmlNode *node, guchar *label); - -/* Note that for most of these callbacks none of the arguments are used. */ - -static void view_type(gpointer data, guint action, GtkWidget *widget); - -/* (action used in these three - DetailsType) */ -static void change_size(gpointer data, guint action, GtkWidget *widget); -static void change_size_auto(gpointer data, guint action, GtkWidget *widget); -static void set_with(gpointer data, guint action, GtkWidget *widget); - -static void set_sort(gpointer data, guint action, GtkWidget *widget); -static void reverse_sort(gpointer data, guint action, GtkWidget *widget); - -static void filter_directories(gpointer data, guint action, GtkWidget *widget); -static void hidden(gpointer data, guint action, GtkWidget *widget); -static void show_thumbs(gpointer data, guint action, GtkWidget *widget); -static void refresh(gpointer data, guint action, GtkWidget *widget); -static void save_settings(gpointer data, guint action, GtkWidget *widget); - -static void file_op(gpointer data, FileOp action, GtkWidget *widget); - -static void select_all(gpointer data, guint action, GtkWidget *widget); -static void clear_selection(gpointer data, guint action, GtkWidget *widget); -static void invert_selection(gpointer data, guint action, GtkWidget *widget); -static void new_directory(gpointer data, guint action, GtkWidget *widget); -static void new_file(gpointer data, guint action, GtkWidget *widget); -static void customise_new(gpointer data); -static void xterm_here(gpointer data, guint action, GtkWidget *widget); - -static void open_parent_same(gpointer data, guint action, GtkWidget *widget); -static void open_parent(gpointer data, guint action, GtkWidget *widget); -static void home_directory(gpointer data, guint action, GtkWidget *widget); -static void show_bookmarks(gpointer data, guint action, GtkWidget *widget); -static void show_log(gpointer data, guint action, GtkWidget *widget); -static void new_window(gpointer data, guint action, GtkWidget *widget); -/* static void new_user(gpointer data, guint action, GtkWidget *widget); */ -static void close_window(gpointer data, guint action, GtkWidget *widget); -static void follow_symlinks(gpointer data, guint action, GtkWidget *widget); - -/* (action used in this - MiniType) */ -static void mini_buffer(gpointer data, guint action, GtkWidget *widget); -static void resize(gpointer data, guint action, GtkWidget *widget); - -#define MENUS_NAME "menus2" - -static GtkWidget *filer_menu; /* The popup filer menu */ -static GtkWidget *filer_file_item; /* The File '' label */ -static GtkWidget *filer_file_menu; /* The File '' menu */ -static GtkWidget *file_shift_item; /* Shift Open label */ -static GtkWidget *filer_auto_size_menu; /* The Automatic item */ -static GtkWidget *filer_hidden_menu; /* The Show Hidden item */ -static GtkWidget *filer_filter_dirs_menu;/* The Filter Dirs item */ -static GtkWidget *filer_reverse_menu; /* The Reversed item */ -static GtkWidget *filer_thumb_menu; /* The Show Thumbs item */ -static GtkWidget *filer_new_window; /* The New Window item */ -static GtkWidget *filer_new_menu; /* The New submenu */ -static GtkWidget *filer_follow_sym; /* Follow symbolic links item */ -static GtkWidget *filer_set_type; /* Set type item */ - -#undef N_ -#define N_(x) x - -static GtkItemFactoryEntry filer_menu_def[] = { -{N_("Display"), NULL, NULL, 0, ""}, -{">" N_("Icons View"), NULL, view_type, VIEW_TYPE_COLLECTION, NULL}, -{">" N_("Icons, With..."), NULL, NULL, 0, ""}, -{">>" N_("Sizes"), NULL, set_with, DETAILS_SIZE, NULL}, -{">>" N_("Permissions"), NULL, set_with, DETAILS_PERMISSIONS, NULL}, -{">>" N_("Types"), NULL, set_with, DETAILS_TYPE, NULL}, -{">>" N_("Times"), NULL, set_with, DETAILS_TIMES, NULL}, -{">" N_("List View"), NULL, view_type, VIEW_TYPE_DETAILS, "", ROX_STOCK_SHOW_DETAILS}, -{">", NULL, NULL, 0, ""}, -{">" N_("Bigger Icons"), "equal", change_size, 1, "", GTK_STOCK_ZOOM_IN}, -{">" N_("Smaller Icons"), "minus", change_size, -1, "", GTK_STOCK_ZOOM_OUT}, -{">" N_("Automatic"), NULL, change_size_auto, 0, ""}, -{">", NULL, NULL, 0, ""}, -{">" N_("Sort by Name"), NULL, set_sort, SORT_NAME, NULL}, -{">" N_("Sort by Type"), NULL, set_sort, SORT_TYPE, NULL}, -{">" N_("Sort by Date"), NULL, set_sort, SORT_DATE, NULL}, -{">" N_("Sort by Size"), NULL, set_sort, SORT_SIZE, NULL}, -{">" N_("Sort by Owner"), NULL, set_sort, SORT_OWNER, NULL}, -{">" N_("Sort by Group"), NULL, set_sort, SORT_GROUP, NULL}, -{">" N_("Reversed"), NULL, reverse_sort, 0, ""}, -{">", NULL, NULL, 0, ""}, -{">" N_("Show Hidden"), "H", hidden, 0, ""}, -{">" N_("Filter Files..."), NULL, mini_buffer, MINI_FILTER, NULL}, -{">" N_("Filter Directories With Files"), NULL, filter_directories, 0, ""}, -{">" N_("Show Thumbnails"), NULL, show_thumbs, 0, ""}, -{">" N_("Refresh"), NULL, refresh, 0, "", GTK_STOCK_REFRESH}, -{">" N_("Save Current Display Settings..."), NULL, save_settings, 0, NULL}, -{N_("File"), NULL, NULL, 0, ""}, -{">" N_("Copy..."), "C", file_op, FILE_COPY_ITEM, "", GTK_STOCK_COPY}, -{">" N_("Rename..."), NULL, file_op, FILE_RENAME_ITEM, NULL}, -{">" N_("Link..."), NULL, file_op, FILE_LINK_ITEM, NULL}, -{">" N_("Delete"), "X", file_op, FILE_DELETE, "", GTK_STOCK_DELETE}, -{">", NULL, NULL, 0, ""}, -{">" N_("Shift Open"), NULL, file_op, FILE_OPEN_FILE}, -{">" N_("Send To..."), NULL, file_op, FILE_SEND_TO, NULL}, -{">", NULL, NULL, 0, ""}, -{">" N_("Set Run Action..."), "asterisk", file_op, FILE_RUN_ACTION, "", GTK_STOCK_EXECUTE}, -{">" N_("Set Icon..."), NULL, file_op, FILE_SET_ICON, NULL}, -{">" N_("Properties"), "P", file_op, FILE_PROPERTIES, "", GTK_STOCK_PROPERTIES}, -{">" N_("Count"), NULL, file_op, FILE_USAGE, NULL}, -{">" N_("Set Type..."), NULL, file_op, FILE_SET_TYPE, NULL}, -{">" N_("Permissions"), NULL, file_op, FILE_CHMOD_ITEMS, NULL}, -{">", NULL, NULL, 0, ""}, -{">" N_("Find"), "F", file_op, FILE_FIND, "", GTK_STOCK_FIND}, -{N_("Select"), NULL, NULL, 0, ""}, -{">" N_("Select All"), "A", select_all, 0, NULL}, -{">" N_("Clear Selection"), NULL, clear_selection, 0, NULL}, -{">" N_("Invert Selection"), NULL, invert_selection, 0, NULL}, -{">" N_("Select by Name..."), "period", mini_buffer, MINI_SELECT_BY_NAME, NULL}, -{">" N_("Select If..."), "question", mini_buffer, MINI_SELECT_IF, NULL}, -{N_("Options..."), NULL, menu_show_options, 0, "", GTK_STOCK_PREFERENCES}, -{N_("New"), NULL, NULL, 0, ""}, -{">" N_("Directory"), NULL, new_directory, 0, NULL}, -{">" N_("Blank file"), NULL, new_file, 0, "", GTK_STOCK_NEW}, -{">" N_("Customise Menu..."), NULL, customise_new, 0, NULL}, -{N_("Window"), NULL, NULL, 0, ""}, -{">" N_("Parent, New Window"), NULL, open_parent, 0, "", GTK_STOCK_GO_UP}, -{">" N_("Parent, Same Window"), NULL, open_parent_same, 0, NULL}, -{">" N_("New Window"), NULL, new_window, 0, NULL}, -{">" N_("Home Directory"), "Home", home_directory, 0, "", GTK_STOCK_HOME}, -{">" N_("Show Bookmarks"), "B", show_bookmarks, 0, "", ROX_STOCK_BOOKMARKS}, -{">" N_("Show Log"), NULL, show_log, 0, "", GTK_STOCK_INFO}, -{">" N_("Follow Symbolic Links"), NULL, follow_symlinks, 0, NULL}, -{">" N_("Resize Window"), "E", resize, 0, NULL}, -/* {">" N_("New, As User..."), NULL, new_user, 0, NULL}, */ - -{">" N_("Close Window"), "Q", close_window, 0, "", GTK_STOCK_CLOSE}, -{">", NULL, NULL, 0, ""}, -{">" N_("Enter Path..."), "slash", mini_buffer, MINI_PATH, NULL}, -{">" N_("Shell Command..."), "exclam", mini_buffer, MINI_SHELL, NULL}, -{">" N_("Terminal Here"), "grave", xterm_here, FALSE, NULL}, -{">" N_("Switch to Terminal"), NULL, xterm_here, TRUE, NULL}, -{N_("Help"), NULL, NULL, 0, ""}, -{">" N_("About ROX-Filer..."), NULL, menu_rox_help, HELP_ABOUT, NULL}, -{">" N_("Show Help Files"), "F1", menu_rox_help, HELP_DIR, "", GTK_STOCK_HELP}, -{">" N_("Manual"), NULL, menu_rox_help, HELP_MANUAL, NULL}, -}; - - -#define GET_MENU_ITEM(var, menu) \ - var = gtk_item_factory_get_widget(item_factory, "<" menu ">"); - -#define GET_SMENU_ITEM(var, menu, sub) \ - do { \ - tmp = g_strdup_printf("<" menu ">/%s", _(sub)); \ - var = gtk_item_factory_get_widget(item_factory, tmp); \ - g_free(tmp); \ - } while (0) - -#define GET_SSMENU_ITEM(var, menu, sub, subsub) \ - do { \ - tmp = g_strdup_printf("<" menu ">/%s/%s", _(sub), _(subsub)); \ - var = gtk_item_factory_get_widget(item_factory, tmp); \ - g_free(tmp); \ - } while (0) - -/* Returns TRUE if the keys were installed (first call only) */ -gboolean ensure_filer_menu(void) -{ - GList *items; - guchar *tmp; - GtkWidget *item; - GtkItemFactory *item_factory; - - if (!filer_keys_need_init) - return FALSE; - filer_keys_need_init = FALSE; - - item_factory = menu_create(filer_menu_def, - sizeof(filer_menu_def) / sizeof(*filer_menu_def), - "", filer_keys); - - GET_MENU_ITEM(filer_menu, "filer"); - GET_SMENU_ITEM(filer_file_menu, "filer", "File"); - GET_SSMENU_ITEM(filer_hidden_menu, "filer", "Display", "Show Hidden"); - GET_SSMENU_ITEM(filer_filter_dirs_menu, "filer", "Display", "Filter Directories With Files"); - GET_SSMENU_ITEM(filer_reverse_menu, "filer", "Display", "Reversed"); - GET_SSMENU_ITEM(filer_auto_size_menu, "filer", "Display", "Automatic"); - GET_SSMENU_ITEM(filer_thumb_menu, "filer", "Display", - "Show Thumbnails"); - GET_SSMENU_ITEM(item, "filer", "File", "Set Type..."); - filer_set_type = GTK_BIN(item)->child; - - GET_SMENU_ITEM(filer_new_menu, "filer", "New"); - GET_SSMENU_ITEM(item, "filer", "Window", "Follow Symbolic Links"); - filer_follow_sym = GTK_BIN(item)->child; - - /* File '' label... */ - items = gtk_container_get_children(GTK_CONTAINER(filer_menu)); - filer_file_item = GTK_BIN(g_list_nth(items, 1)->data)->child; - g_list_free(items); - - /* Shift Open... label */ - items = gtk_container_get_children(GTK_CONTAINER(filer_file_menu)); - file_shift_item = GTK_BIN(g_list_nth(items, 5)->data)->child; - g_list_free(items); - - GET_SSMENU_ITEM(item, "filer", "Window", "New Window"); - filer_new_window = GTK_BIN(item)->child; - - g_signal_connect(filer_menu, "selection-done", - G_CALLBACK(menu_closed), NULL); - g_signal_connect(filer_file_menu, "selection-done", - G_CALLBACK(menu_closed), NULL); - - g_signal_connect(filer_keys, "accel_changed", - G_CALLBACK(save_menus), NULL); - - return TRUE; -} - -void menu_init(void) -{ - char *menurc; - - menurc = choices_find_xdg_path_load(MENUS_NAME, PROJECT, SITE); - if (menurc) - { - gtk_accel_map_load(menurc); - g_free(menurc); - } - - option_add_string(&o_menu_xterm, "menu_xterm", "xterm"); - option_add_int(&o_menu_iconsize, "menu_iconsize", MIS_SMALL); - option_add_int(&o_menu_quick, "menu_quick", FALSE); - option_add_saver(save_menus); - - option_register_widget("menu-set-keys", set_keys_button); - - filer_keys = gtk_accel_group_new(); -} - -/* Name is in the form "" */ -GtkItemFactory *menu_create(GtkItemFactoryEntry *def, int n_entries, - const gchar *name, GtkAccelGroup *keys) -{ - GtkItemFactory *item_factory; - GtkItemFactoryEntry *translated; - - if (!keys) - { - keys = gtk_accel_group_new(); - gtk_accel_group_lock(keys); - } - - item_factory = gtk_item_factory_new(GTK_TYPE_MENU, name, keys); - - translated = translate_entries(def, n_entries); - gtk_item_factory_create_items(item_factory, n_entries, - translated, NULL); - free_translated_entries(translated, n_entries); - - return item_factory; -} - -/* Prevent the user from setting a short-cut on this item */ -static void menuitem_no_shortcuts(GtkWidget *item) -{ - /* XXX */ -#if 0 - GtkMenuItem *menuitem = GTK_MENU_ITEM(item); - - _gtk_widget_set_accel_path(item, NULL, NULL); - null_g_free(&menuitem->accel_path); -#endif -} - -/* Shade items that only work on single files */ -static void shade_file_menu_items(gboolean shaded) -{ - menu_set_items_shaded(filer_file_menu, shaded, 0, 1); - menu_set_items_shaded(filer_file_menu, shaded, 2, 1); - menu_set_items_shaded(filer_file_menu, shaded, 5, 1); - menu_set_items_shaded(filer_file_menu, shaded, 8, 2); -} - -/* 'data' is an array of three ints: - * [ pointer_x, pointer_y, item_under_pointer ] - */ -void position_menu(GtkMenu *menu, gint *x, gint *y, - gboolean *push_in, gpointer data) -{ - int *pos = (int *) data; - GtkRequisition requisition; - GList *items, *next; - int y_shift = 0; - int item = pos[2]; - - next = items = gtk_container_get_children(GTK_CONTAINER(menu)); - - while (item >= 0 && next) - { - int h = ((GtkWidget *) next->data)->requisition.height; - - if (item > 0) - y_shift += h; - else - y_shift += h / 2; - - next = next->next; - item--; - } - - g_list_free(items); - - gtk_widget_size_request(GTK_WIDGET(menu), &requisition); - - *x = pos[0] - (requisition.width * 7 / 8); - *y = pos[1] - y_shift; - - *x = CLAMP(*x, 0, screen_width - requisition.width); - *y = CLAMP(*y, 0, screen_height - requisition.height); - - *push_in = FALSE; -} - -GtkWidget *make_send_to_item(DirItem *ditem, const char *label, - MenuIconStyle style) -{ - GtkWidget *item; - - if (style != MIS_NONE && di_image(ditem)) - { - GdkPixbuf *pixbuf; - MaskedPixmap *image; - - image = di_image(ditem); - - switch (style) - { - case MIS_LARGE: - pixbuf = image->pixbuf; - break; - default: - if (!image->sm_pixbuf) - pixmap_make_small(image); - pixbuf = image->sm_pixbuf; - break; - } - - item = gtk_image_menu_item_new_with_label(label); - /* TODO: Find a way to allow short-cuts */ - menuitem_no_shortcuts(item); - - gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item), - gtk_image_new_from_pixbuf(pixbuf)); - gtk_widget_show_all(item); - } - else - item = gtk_menu_item_new_with_label(label); - - return item; -} - -static GList *menu_from_dir(GtkWidget *menu, const gchar *dir_name, - MenuIconStyle style, CallbackFn func, - gboolean separator, gboolean strip_ext, - gboolean recurse) -{ - GList *widgets = NULL; - DirItem *ditem; - int i; - GtkWidget *item; - char *dname = NULL; - GPtrArray *names; - - dname = pathdup(dir_name); - - names = list_dir(dname); - if (!names) - goto out; - - for (i = 0; i < names->len; i++) - { - char *leaf = names->pdata[i]; - gchar *fname; - - if (separator) - { - item = gtk_menu_item_new(); - widgets = g_list_append(widgets, item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - separator = FALSE; - } - - fname = g_strconcat(dname, "/", leaf, NULL); - - /* Strip off extension, if any */ - if (strip_ext) - { - char *dot; - dot = strchr(leaf, '.'); - if (dot) - *dot = '\0'; - } - - ditem = diritem_new(""); - diritem_restat(fname, ditem, NULL); - - item = make_send_to_item(ditem, leaf, style); - - g_free(leaf); - - /* If it is a directory (but NOT an AppDir) and we are - * recursing then set up a sub menu. - */ - if (recurse && ditem->base_type == TYPE_DIRECTORY && - !(ditem->flags & ITEM_FLAG_APPDIR)) - { - GtkWidget *sub; - GList *new_widgets; - - sub = gtk_menu_new(); - new_widgets = menu_from_dir(sub, fname, style, func, - separator, strip_ext, TRUE); - g_list_free(new_widgets); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(item), sub); - } - else - g_signal_connect_swapped(item, "activate", - G_CALLBACK(func), fname); - - diritem_free(ditem); - - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - g_signal_connect_swapped(item, "destroy", - G_CALLBACK(g_free), fname); - - widgets = g_list_append(widgets, item); - } - - g_ptr_array_free(names, TRUE); -out: - g_free(dname); - - return widgets; -} - -/* Scan the templates dir and create entries for the New menu */ -static void update_new_files_menu(MenuIconStyle style) -{ - static GList *widgets = NULL; - - gchar *templ_dname = NULL; - - if (widgets) - { - GList *next; - - for (next = widgets; next; next = next->next) - gtk_widget_destroy((GtkWidget *) next->data); - - g_list_free(widgets); - widgets = NULL; - } - - templ_dname = choices_find_xdg_path_load("Templates", "", SITE); - if (templ_dname) - { - widgets = menu_from_dir(filer_new_menu, templ_dname, style, - (CallbackFn) new_file_type, TRUE, TRUE, - FALSE); - g_free(templ_dname); - } - gtk_widget_show_all(filer_new_menu); -} - -/* 'item' is the number of the item to appear under the pointer. */ -void show_popup_menu(GtkWidget *menu, GdkEvent *event, int item) -{ - int pos[3]; - int button = 0; - guint32 time = 0; - - if (event && (event->type == GDK_BUTTON_PRESS || - event->type == GDK_BUTTON_RELEASE)) - { - GdkEventButton *bev = (GdkEventButton *) event; - - pos[0] = bev->x_root; - pos[1] = bev->y_root; - button = bev->button; - time = bev->time; - } - else if (event && event->type == GDK_KEY_PRESS) - { - GdkEventKey *kev = (GdkEventKey *) event; - - get_pointer_xy(pos, pos + 1); - time = kev->time; - } - else - get_pointer_xy(pos, pos + 1); - - pos[2] = item; - - gtk_widget_show_all(menu); - gtk_menu_popup(GTK_MENU(menu), NULL, NULL, - position_menu, (gpointer) pos, button, time); - select_nth_item(GTK_MENU_SHELL(menu), item); -} - -/* Hide the popup menu, if any */ -void menu_popdown(void) -{ - if (popup_menu) - gtk_menu_popdown(GTK_MENU(popup_menu)); -} - -static MenuIconStyle get_menu_icon_style(void) -{ - MenuIconStyle mis; - int display; - - mis = o_menu_iconsize.int_value; - - switch (mis) - { - case MIS_NONE: case MIS_SMALL: case MIS_LARGE: - return mis; - default: - break; - } - - if (mis == MIS_CURRENT && window_with_focus) - { - switch (window_with_focus->display_style) - { - case HUGE_ICONS: - case LARGE_ICONS: - return MIS_LARGE; - case SMALL_ICONS: - return MIS_SMALL; - default: - break; - } - } - - display = o_display_size.int_value; - switch (display) - { - case HUGE_ICONS: - case LARGE_ICONS: - return MIS_LARGE; - case SMALL_ICONS: - return MIS_SMALL; - default: - break; - } - - return MIS_SMALL; -} - -/* iter->peek() is the clicked item, or NULL if none */ -void show_filer_menu(FilerWindow *filer_window, GdkEvent *event, ViewIter *iter) -{ - DirItem *file_item = NULL; - GdkModifierType state = 0; - int n_selected; - int n_added = 0; - - g_return_if_fail(event != NULL); - - n_selected = view_count_selected(filer_window->view); - - ensure_filer_menu(); - - updating_menu++; - - /* Remove previous AppMenu, if any */ - appmenu_remove(); - - window_with_focus = filer_window; - - if (event->type == GDK_BUTTON_PRESS) - state = ((GdkEventButton *) event)->state; - else if (event->type == GDK_KEY_PRESS) - state = ((GdkEventKey *) event)->state; - - if (n_selected == 0 && iter && iter->peek(iter) != NULL) - { - filer_window->temp_item_selected = TRUE; - view_set_selected(filer_window->view, iter, TRUE); - n_selected = view_count_selected(filer_window->view); - } - else - { - filer_window->temp_item_selected = FALSE; - } - - /* Short-cut to the Send To menu */ - if (state & GDK_SHIFT_MASK) - { - GList *paths; - - updating_menu--; - - if (n_selected == 0) - { - report_error( - _("You should Shift+Menu click over a file to " - "send it somewhere")); - return; - } - - paths = filer_selected_items(filer_window); - - show_send_to_menu(paths, event); /* (paths eaten) */ - - return; - } - - { - GtkWidget *file_label; - GString *buffer; - DirItem *item; - - file_label = filer_file_item; - gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(filer_thumb_menu), - filer_window->show_thumbs); - gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(filer_hidden_menu), - filer_window->show_hidden); - gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(filer_filter_dirs_menu), - filer_window->filter_directories); - gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(filer_reverse_menu), - filer_window->sort_order != GTK_SORT_ASCENDING); - gtk_check_menu_item_set_active( - GTK_CHECK_MENU_ITEM(filer_auto_size_menu), - filer_window->display_style_wanted == AUTO_SIZE_ICONS); - buffer = g_string_new(NULL); - - switch (n_selected) - { - case 0: - g_string_assign(buffer, _("Next Click")); - shade_file_menu_items(FALSE); - break; - case 1: - item = filer_selected_item(filer_window); - if (item->base_type == TYPE_UNKNOWN) - dir_update_item(filer_window->directory, - item->leafname); - shade_file_menu_items(FALSE); - file_item = filer_selected_item(filer_window); - g_string_printf(buffer, _("%s '%s'"), - basetype_name(file_item), - g_utf8_validate(file_item->leafname, - -1, NULL) - ? file_item->leafname - : _("(bad utf-8)")); - if (!can_set_run_action(file_item)) - menu_set_items_shaded(filer_file_menu, - TRUE, 8, 1); - break; - default: - shade_file_menu_items(TRUE); - g_string_printf(buffer, _("%d items"), - n_selected); - break; - } - gtk_label_set_text(GTK_LABEL(file_label), buffer->str); - g_string_free(buffer, TRUE); - - menu_show_shift_action(file_shift_item, file_item, - n_selected == 0); - if (file_item) - n_added = appmenu_add(make_path(filer_window->sym_path, - file_item->leafname), - file_item, filer_file_menu); - } - - update_new_files_menu(get_menu_icon_style()); - - gtk_widget_set_sensitive(filer_new_window, - !o_unique_filer_windows.int_value); - gtk_widget_set_sensitive(filer_follow_sym, - strcmp(filer_window->sym_path, filer_window->real_path) != 0); - gtk_widget_set_sensitive(filer_set_type, - xattr_supported(filer_window->real_path)); - - if (n_selected && o_menu_quick.int_value) - popup_menu = (state & GDK_CONTROL_MASK) - ? filer_menu - : filer_file_menu; - else - popup_menu = (state & GDK_CONTROL_MASK) - ? filer_file_menu - : filer_menu; - - updating_menu--; - - show_popup_menu(popup_menu, event, - popup_menu == filer_file_menu ? n_added : 1); -} - -static void menu_closed(GtkWidget *widget) -{ - if (window_with_focus == NULL || widget != popup_menu) - return; /* Close panel item chosen? */ - - popup_menu = NULL; - - if (window_with_focus->temp_item_selected) - { - view_clear_selection(window_with_focus->view); - window_with_focus->temp_item_selected = FALSE; - } - - appmenu_remove(); -} - -static void target_callback(FilerWindow *filer_window, - ViewIter *iter, - gpointer action) -{ - g_return_if_fail(filer_window != NULL); - - window_with_focus = filer_window; - - /* Don't grab the primary selection */ - filer_window->temp_item_selected = TRUE; - - view_wink_item(filer_window->view, iter); - view_select_only(filer_window->view, iter); - file_op(NULL, GPOINTER_TO_INT(action), NULL); - - view_clear_selection(filer_window->view); - filer_window->temp_item_selected = FALSE; -} - -/* Set the text of the 'Shift Open...' menu item. - * If icon is NULL, reset the text and also shade it, unless 'next'. - */ -void menu_show_shift_action(GtkWidget *menu_item, DirItem *item, gboolean next) -{ - guchar *shift_action = NULL; - - if (item) - { - if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - if (item->flags & ITEM_FLAG_MOUNTED) - shift_action = N_("Unmount"); - else - shift_action = N_("Open unmounted"); - } - else if (item->flags & ITEM_FLAG_SYMLINK) - shift_action = N_("Show Target"); - else if (item->base_type == TYPE_DIRECTORY) - shift_action = N_("Look Inside"); - else if (item->base_type == TYPE_FILE) - shift_action = N_("Open As Text"); - } - gtk_label_set_text(GTK_LABEL(menu_item), - shift_action ? _(shift_action) - : _("Shift Open")); - gtk_widget_set_sensitive(menu_item, shift_action != NULL || next); -} - -/* Actions */ - -static void view_type(gpointer data, guint action, GtkWidget *widget) -{ - ViewType view_type = (ViewType) action; - - g_return_if_fail(window_with_focus != NULL); - - if (view_type == VIEW_TYPE_COLLECTION) - display_set_layout(window_with_focus, - window_with_focus->display_style_wanted, - DETAILS_NONE, FALSE); - - filer_set_view_type(window_with_focus, (ViewType) action); -} - -static void change_size(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - display_change_size(window_with_focus, action == 1); -} - -static void change_size_auto(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - if (updating_menu) - return; - - if (window_with_focus->display_style_wanted == AUTO_SIZE_ICONS) - display_set_layout(window_with_focus, - window_with_focus->display_style, - window_with_focus->details_type, FALSE); - else - display_set_layout(window_with_focus, AUTO_SIZE_ICONS, - window_with_focus->details_type, FALSE); -} - -static void set_with(gpointer data, guint action, GtkWidget *widget) -{ - DisplayStyle size; - - g_return_if_fail(window_with_focus != NULL); - - size = window_with_focus->display_style_wanted; - - filer_set_view_type(window_with_focus, VIEW_TYPE_COLLECTION); - display_set_layout(window_with_focus, size, action, FALSE); -} - -static void set_sort(gpointer data, guint action, GtkWidget *widget) -{ - if (updating_menu) - return; - - g_return_if_fail(window_with_focus != NULL); - - display_set_sort_type(window_with_focus, action, GTK_SORT_ASCENDING); -} - -static void reverse_sort(gpointer data, guint action, GtkWidget *widget) -{ - GtkSortType order; - - if (updating_menu) - return; - - g_return_if_fail(window_with_focus != NULL); - - order = window_with_focus->sort_order; - if (order == GTK_SORT_ASCENDING) - order = GTK_SORT_DESCENDING; - else - order = GTK_SORT_ASCENDING; - - display_set_sort_type(window_with_focus, window_with_focus->sort_type, - order); -} - -static void hidden(gpointer data, guint action, GtkWidget *widget) -{ - if (updating_menu) - return; - - g_return_if_fail(window_with_focus != NULL); - - display_set_hidden(window_with_focus, - !window_with_focus->show_hidden); -} - -static void filter_directories(gpointer data, guint action, GtkWidget *widget) -{ - if (updating_menu) - return; - - g_return_if_fail(window_with_focus != NULL); - - display_set_filter_directories(window_with_focus, - !window_with_focus->filter_directories); -} - -static void show_thumbs(gpointer data, guint action, GtkWidget *widget) -{ - if (updating_menu) - return; - - g_return_if_fail(window_with_focus != NULL); - - display_set_thumbs(window_with_focus, !window_with_focus->show_thumbs); -} - -static void refresh(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - filer_refresh(window_with_focus); -} - -static void save_settings(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - filer_save_settings(window_with_focus); -} - -static void delete(FilerWindow *filer_window) -{ - GList *paths; - paths = filer_selected_items(filer_window); - action_delete(paths); - destroy_glist(&paths); -} - -static void usage(FilerWindow *filer_window) -{ - GList *paths; - paths = filer_selected_items(filer_window); - action_usage(paths); - destroy_glist(&paths); -} - -static void chmod_items(FilerWindow *filer_window) -{ - GList *paths; - paths = filer_selected_items(filer_window); - action_chmod(paths, FALSE, NULL); - destroy_glist(&paths); -} - -static void set_type_items(FilerWindow *filer_window) -{ - GList *paths, *p; - int npass=0, nfail=0; - - paths = filer_selected_items(filer_window); - for(p=paths; p; p=g_list_next(p)) { - if(xattr_supported((const char *) p->data)) - npass++; - else - nfail++; - } - if(npass==0) - report_error(_("Extended attributes, used to store types, are not supported for this " - "file or files.\n" - "This may be due to lack of support from the filesystem or the C library, " - "or it may simply be that the filesystem needs to be mounted with " - "the right mount option ('user_xattr' on Linux).")); - else if(nfail>0) - report_error(_("Setting type not supported for some of these files")); - if(npass>0) - action_settype(paths, FALSE, NULL); - destroy_glist(&paths); -} - -static void find(FilerWindow *filer_window) -{ - GList *paths; - paths = filer_selected_items(filer_window); - action_find(paths); - destroy_glist(&paths); -} - -static gboolean last_symlink_check_relative = TRUE; - -/* This creates a new savebox widget, and allows the user to pick a new path - * for the file. - * Once the new path has been picked, the callback will be called with - * both the current and new paths. - * NOTE: This function unrefs 'image'! - */ -static void savebox_show(const gchar *action, const gchar *path, - MaskedPixmap *image, SaveCb callback, - GdkDragAction dnd_action) -{ - GtkWidget *savebox = NULL; - GtkWidget *check_relative = NULL; - - g_return_if_fail(image != NULL); - - savebox = gtk_savebox_new(action); - gtk_savebox_set_action(GTK_SAVEBOX(savebox), dnd_action); - - if (callback == link_cb) - { - check_relative = gtk_check_button_new_with_mnemonic( - _("_Relative link")); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check_relative), - last_symlink_check_relative); - - GTK_WIDGET_UNSET_FLAGS(check_relative, GTK_CAN_FOCUS); - gtk_tooltips_set_tip(tooltips, check_relative, - _("If on, the symlink will store the path from the " - "symlink to the target file. Use this if the symlink " - "and the target will be moved together.\n" - "If off, the path from the root directory is stored - " - "use this if the symlink may move but the target will " - "stay put."), NULL); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(savebox)->vbox), - check_relative, FALSE, TRUE, 0); - gtk_widget_show(check_relative); - } - - g_signal_connect(savebox, "save_to_file", - G_CALLBACK(save_to_file), NULL); - - g_object_set_data_full(G_OBJECT(savebox), "current_path", - g_strdup(path), g_free); - g_object_set_data(G_OBJECT(savebox), "action_callback", callback); - g_object_set_data(G_OBJECT(savebox), "check_relative", check_relative); - - gtk_window_set_title(GTK_WINDOW(savebox), action); - - if (g_utf8_validate(path, -1, NULL)) - gtk_savebox_set_pathname(GTK_SAVEBOX(savebox), path); - else - { - gchar *u8, *dir; - dir = g_path_get_dirname(path); - u8 = to_utf8(g_basename(path)); - gtk_savebox_set_pathname(GTK_SAVEBOX(savebox), - make_path(dir, u8)); - g_free(u8); - g_free(dir); - } - gtk_savebox_set_icon(GTK_SAVEBOX(savebox), image->pixbuf); - g_object_unref(image); - - gtk_widget_show(savebox); -} - -static gint save_to_file(GObject *savebox, - const gchar *pathname, gpointer data) -{ - SaveCb callback; - const gchar *current_path; - - callback = g_object_get_data(savebox, "action_callback"); - current_path = g_object_get_data(savebox, "current_path"); - - g_return_val_if_fail(callback != NULL, GTK_XDS_SAVE_ERROR); - g_return_val_if_fail(current_path != NULL, GTK_XDS_SAVE_ERROR); - - return callback(savebox, current_path, pathname) - ? GTK_XDS_SAVED : GTK_XDS_SAVE_ERROR; -} - -static gboolean copy_cb(GObject *savebox, - const gchar *current, const gchar *new) -{ - return action_with_leaf(action_copy, current, new); -} - -static gboolean action_with_leaf(ActionFn action, - const gchar *current, const gchar *new) -{ - const char *leaf; - char *new_dir; - GList *local_paths; - - if (new[0] != '/') - { - report_error(_("New pathname is not absolute")); - return FALSE; - } - - if (new[strlen(new) - 1] == '/') - { - new_dir = g_strdup(new); - leaf = NULL; - } - else - { - const gchar *slash; - - slash = strrchr(new, '/'); - new_dir = g_strndup(new, slash - new); - leaf = slash + 1; - } - - local_paths = g_list_append(NULL, (gchar *) current); - action(local_paths, new_dir, leaf, -1); - g_list_free(local_paths); - - g_free(new_dir); - - return TRUE; -} - -/* Open a savebox to act on the selected file. - * Call 'callback' later to perform the operation. - */ -static void src_dest_action_item(const gchar *path, MaskedPixmap *image, - const gchar *action, SaveCb callback, - GdkDragAction dnd_action) -{ - g_object_ref(image); - savebox_show(action, path, image, callback, dnd_action); -} - -static gboolean rename_cb(GObject *savebox, - const gchar *current, const gchar *new) -{ - return action_with_leaf(action_move, current, new); -} - -static gboolean link_cb(GObject *savebox, - const gchar *initial, const gchar *path) -{ - GtkToggleButton *check_relative; - struct stat info; - int err; - gchar *link_path; - - check_relative = g_object_get_data(savebox, "check_relative"); - - last_symlink_check_relative = gtk_toggle_button_get_active(check_relative); - - if (last_symlink_check_relative) - link_path = get_relative_path(path, initial); - else - link_path = g_strdup(initial); - - if (mc_lstat(path, &info) == 0 && S_ISLNK(info.st_mode)) - { - GtkWidget *box, *button; - gint ans; - - box = gtk_message_dialog_new(NULL, 0, GTK_MESSAGE_QUESTION, - GTK_BUTTONS_CANCEL, - _("Symlink from '%s' already exists. " - "Replace it with a link to '%s'?"), - path, link_path); - - gtk_window_set_position(GTK_WINDOW(box), GTK_WIN_POS_MOUSE); - - button = button_new_mixed(GTK_STOCK_YES, _("_Replace")); - gtk_widget_show(button); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_dialog_add_action_widget(GTK_DIALOG(box), - button, GTK_RESPONSE_OK); - gtk_dialog_set_default_response(GTK_DIALOG(box), - GTK_RESPONSE_OK); - - ans = gtk_dialog_run(GTK_DIALOG(box)); - gtk_widget_destroy(box); - - if (ans != GTK_RESPONSE_OK) - { - g_free(link_path); - return FALSE; - } - - unlink(path); - } - - err = symlink(link_path, path); - g_free(link_path); - - if (err) - { - report_error("symlink: %s", g_strerror(errno)); - return FALSE; - } - - dir_check_this(path); - - return TRUE; -} - -static void run_action(DirItem *item) -{ - if (can_set_run_action(item)) - type_set_handler_dialog(item->mime_type); - else - report_error( - _("You can only set the run action for a " - "regular file")); -} - -void open_home(gpointer data, guint action, GtkWidget *widget) -{ - filer_opendir(home_dir, NULL, NULL); -} - -static void select_all(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - window_with_focus->temp_item_selected = FALSE; - view_select_all(window_with_focus->view); -} - -static void clear_selection(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - window_with_focus->temp_item_selected = FALSE; - view_clear_selection(window_with_focus->view); -} - -static gboolean invert_cb(ViewIter *iter, gpointer data) -{ - return !view_get_selected((ViewIface *) data, iter); -} - -static void invert_selection(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - window_with_focus->temp_item_selected = FALSE; - - view_select_if(window_with_focus->view, invert_cb, - window_with_focus->view); -} - -void menu_show_options(gpointer data, guint action, GtkWidget *widget) -{ - GtkWidget *win; - - win = options_show(); - - if (win) - { - number_of_windows++; - g_signal_connect(win, "destroy", - G_CALLBACK(one_less_window), NULL); - } -} - -static gboolean new_directory_cb(GObject *savebox, - const gchar *initial, const gchar *path) -{ - if (mkdir(path, S_IRWXU | S_IRWXG | S_IRWXO)) - { - report_error("mkdir: %s", g_strerror(errno)); - return FALSE; - } - - dir_check_this(path); - - if (filer_exists(window_with_focus)) - { - guchar *leaf; - leaf = strrchr(path, '/'); - if (leaf) - display_set_autoselect(window_with_focus, leaf + 1); - } - - return TRUE; -} - -static void new_directory(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - savebox_show(_("Create"), - make_path(window_with_focus->sym_path, _("NewDir")), - type_to_icon(inode_directory), new_directory_cb, - GDK_ACTION_COPY); -} - -static gboolean new_file_cb(GObject *savebox, - const gchar *initial, const gchar *path) -{ - int fd; - - fd = open(path, O_CREAT | O_EXCL, 0666); - - if (fd == -1) - { - report_error(_("Error creating '%s': %s"), - path, g_strerror(errno)); - return FALSE; - } - - if (close(fd)) - report_error(_("Error creating '%s': %s"), - path, g_strerror(errno)); - - dir_check_this(path); - - if (filer_exists(window_with_focus)) - { - guchar *leaf; - leaf = strrchr(path, '/'); - if (leaf) - display_set_autoselect(window_with_focus, leaf + 1); - } - - return TRUE; -} - -static void new_file(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - savebox_show(_("Create"), - make_path(window_with_focus->sym_path, _("NewFile")), - type_to_icon(text_plain), - new_file_cb, GDK_ACTION_COPY); -} - -static gboolean new_file_type_cb(GObject *savebox, - const gchar *initial, const gchar *path) -{ - const gchar *oleaf, *leaf; - gchar *templ, *rtempl, *templ_dname, *dest; - GList *paths; - - /* We can work out the template path from the initial name */ - oleaf = g_basename(initial); - templ_dname = choices_find_xdg_path_load("Templates", "", SITE); - if (!templ_dname) - { - report_error( - _("Error creating file: could not find the template for %s"), - oleaf); - return FALSE; - } - - templ = g_strconcat(templ_dname, "/", oleaf, NULL); - g_free(templ_dname); - rtempl = pathdup(templ); - g_free(templ); - - dest = g_path_get_dirname(path); - leaf = g_basename(path); - paths = g_list_append(NULL, rtempl); - - action_copy(paths, dest, leaf, TRUE); - - g_list_free(paths); - g_free(dest); - g_free(rtempl); - - if (filer_exists(window_with_focus)) - display_set_autoselect(window_with_focus, leaf); - - return TRUE; -} - -static void do_send_to(gchar *templ) -{ - g_return_if_fail(send_to_paths != NULL); - - run_with_files(templ, send_to_paths); -} - -static void new_file_type(gchar *templ) -{ - const gchar *leaf; - MIME_type *type; - - g_return_if_fail(window_with_focus != NULL); - - leaf = g_basename(templ); - type = type_get_type(templ); - - savebox_show(_("Create"), - make_path(window_with_focus->sym_path, leaf), - type_to_icon(type), - new_file_type_cb, GDK_ACTION_COPY); -} - -static void customise_send_to(gpointer data) -{ - GPtrArray *path; - guchar *save; - GString *dirs; - int i; - - dirs = g_string_new(NULL); - - path = choices_list_xdg_dirs("", SITE); - for (i = 0; i < path->len; i++) - { - guchar *old = (guchar *) path->pdata[i]; - - g_string_append(dirs, old); - g_string_append(dirs, "/SendTo\n"); - } - choices_free_list(path); - - save = choices_find_xdg_path_save("", "SendTo", SITE, TRUE); - if (save) - mkdir(save, 0777); - - info_message( - _("The `Send To' menu provides a quick way to send some files " - "to an application. The applications listed are those in " - "the following directories:\n\n%s\n%s\n" - "The `Send To' menu may be opened by Shift+Menu clicking " - "over a file.\n\n" - "Advanced use:\n" - "You can also create subdirectories called " - "`.text_html', `.text', etc which will only be " - "shown for files of that type. `.group' is shown " - "only when multiple files are selected."), - dirs->str, - save ? _("I'll show you your SendTo directory now; you should " - "symlink (Ctrl+Shift drag) any applications you want " - "into it.") - : _("Your CHOICESPATH variable setting prevents " - "customisations - sorry.")); - - g_string_free(dirs, TRUE); - - if (save) - filer_opendir(save, NULL, NULL); -} - -static void customise_new(gpointer data) -{ - GPtrArray *path; - guchar *save; - GString *dirs; - int i; - - dirs = g_string_new(NULL); - - path = choices_list_xdg_dirs("", SITE); - for (i = 0; i < path->len; i++) - { - guchar *old = (guchar *) path->pdata[i]; - - g_string_append(dirs, old); - g_string_append(dirs, "/Templates\n"); - } - choices_free_list(path); - - save = choices_find_xdg_path_save("", "Templates", SITE, TRUE); - if (save) - mkdir(save, 0777); - - info_message( - _("Any files placed in your Templates directories will " - "appear on the `New' menu. Choosing one of them will make " - "a copy of it as the new file.\n\n" - "The following directories contain templates:\n\n%s\n%s\n"), - dirs->str, - save ? _("I'll show you your Templates directory now; you " - "should place any template files you want inside it.") - : _("Your CHOICESPATH variable setting prevents " - "customisations - sorry.")); - - g_string_free(dirs, TRUE); - - if (save) - filer_opendir(save, NULL, NULL); -} - -/* Add everything in the directory /SendTo/[.type[_subtype]] - * to the menu. - */ -static void add_sendto(GtkWidget *menu, const gchar *type, const gchar *subtype) -{ - gchar *searchdir; - GPtrArray *paths; - int i; - - if (subtype) - searchdir = g_strdup_printf("SendTo/.%s_%s", type, subtype); - else if (type) - searchdir = g_strdup_printf("SendTo/.%s", type); - else - searchdir = g_strdup("SendTo"); - - paths = choices_list_xdg_dirs(searchdir, SITE); - g_free(searchdir); - - for (i = 0; i < paths->len; i++) - { - GList *widgets = NULL; - guchar *dir = (guchar *) paths->pdata[i]; - - widgets = menu_from_dir(menu, dir, get_menu_icon_style(), - (CallbackFn) do_send_to, - FALSE, FALSE, TRUE); - - if (widgets) - gtk_menu_shell_append(GTK_MENU_SHELL(menu), - gtk_menu_item_new()); - - g_list_free(widgets); /* TODO: Get rid of this */ - } - - choices_free_list(paths); -} - -/* Scan the SendTo dir and create and show the Send To menu. - * The 'paths' list and every path in it is claimed, and will be - * freed later -- don't free it yourself! - */ -static void show_send_to_menu(GList *paths, GdkEvent *event) -{ - GtkWidget *menu, *item; - - menu = gtk_menu_new(); - - if (g_list_length(paths) == 1) - { - DirItem *item; - - item = diritem_new(""); - diritem_restat(paths->data, item, NULL); - - add_sendto(menu, - item->mime_type->media_type, - item->mime_type->subtype); - - add_sendto(menu, item->mime_type->media_type, NULL); - - diritem_free(item); - } - else - { - GList *rover; - gboolean same=TRUE, same_media=TRUE; - MIME_type *type=NULL; - DirItem *item; - - item = diritem_new(""); - for(rover=paths; rover; rover=g_list_next(rover)) - { - diritem_restat(rover->data, item, NULL); - if(!type) - type=item->mime_type; - else - { - if(type!=item->mime_type) - { - same=FALSE; - if(strcmp(type->media_type, - item->mime_type->media_type)!=0) - { - same_media=FALSE; - break; - } - } - } - } - diritem_free(item); - - if(type) - { - if(same) - add_sendto(menu, type->media_type, - type->subtype); - if(same_media) - add_sendto(menu, type->media_type, NULL); - } - - add_sendto(menu, "group", NULL); - } - - add_sendto(menu, NULL, NULL); - - item = gtk_menu_item_new_with_label(_("Customise")); - g_signal_connect_swapped(item, "activate", - G_CALLBACK(customise_send_to), NULL); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - - if (send_to_paths) - destroy_glist(&send_to_paths); - - send_to_paths = paths; - - g_signal_connect(menu, "selection-done", G_CALLBACK(menu_closed), NULL); - - popup_menu = menu; - show_popup_menu(menu, event, 0); -} - -static void send_to(FilerWindow *filer_window) -{ - GList *paths; - GdkEvent *event; - - paths = filer_selected_items(filer_window); - event = gtk_get_current_event(); - - /* Eats paths */ - show_send_to_menu(paths, event); - - if (event) - gdk_event_free(event); -} - -static void xterm_here(gpointer data, guint action, GtkWidget *widget) -{ - const char *argv[] = {"sh", "-c", NULL, NULL}; - gboolean close = action; - - argv[2] = o_menu_xterm.value; - - g_return_if_fail(window_with_focus != NULL); - - if (rox_spawn(window_with_focus->sym_path, argv) && close) - gtk_widget_destroy(window_with_focus->window); -} - -static void home_directory(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - filer_change_to(window_with_focus, home_dir, NULL); -} - -static void show_bookmarks(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - bookmarks_show_menu(window_with_focus); -} - -static void show_log(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - log_show_window(); -} - -static void follow_symlinks(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - if (strcmp(window_with_focus->real_path, window_with_focus->sym_path)) - filer_change_to(window_with_focus, - window_with_focus->real_path, NULL); - else - delayed_error(_("This is already the canonical name " - "for this directory.")); -} - -static void open_parent(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - filer_open_parent(window_with_focus); -} - -static void open_parent_same(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - change_to_parent(window_with_focus); -} - -static void resize(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - view_autosize(window_with_focus->view); -} - -static void new_window(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - if (o_unique_filer_windows.int_value) - { - report_error(_("You can't open a second view onto " - "this directory because the `Unique Windows' option " - "is turned on in the Options window.")); - } - else - filer_opendir(window_with_focus->sym_path, window_with_focus, NULL); -} - -static void close_window(gpointer data, guint action, GtkWidget *widget) -{ - g_return_if_fail(window_with_focus != NULL); - - if (!filer_window_delete(window_with_focus->window, NULL, - window_with_focus)) - gtk_widget_destroy(window_with_focus->window); -} - -static void mini_buffer(gpointer data, guint action, GtkWidget *widget) -{ - MiniType type = (MiniType) action; - - g_return_if_fail(window_with_focus != NULL); - - /* Item needs to remain selected... */ - if (type == MINI_SHELL) - window_with_focus->temp_item_selected = FALSE; - - minibuffer_show(window_with_focus, type); -} - -void menu_rox_help(gpointer data, guint action, GtkWidget *widget) -{ - if (action == HELP_ABOUT) - infobox_new(app_dir); - else if (action == HELP_DIR) - filer_opendir(make_path(app_dir, "Help"), NULL, NULL); - else if (action == HELP_MANUAL) - { - gchar *manual = NULL; - - if (current_lang) - { - manual = g_strconcat(app_dir, "/Help/Manual-", - current_lang, ".html", NULL); - if (!file_exists(manual) && strchr(current_lang, '_')) - { - /* Try again without the territory */ - strcpy(strrchr(manual, '_'), ".html"); - } - if (!file_exists(manual)) - null_g_free(&manual); - } - - if (!manual) - manual = g_strconcat(app_dir, - "/Help/Manual.html", NULL); - - run_by_path(manual); - - g_free(manual); - } - else - g_warning("Unknown help action %d\n", action); -} - -/* Set n items from position 'from' in 'menu' to the 'shaded' state */ -void menu_set_items_shaded(GtkWidget *menu, gboolean shaded, int from, int n) -{ - GList *items, *item; - - items = gtk_container_get_children(GTK_CONTAINER(menu)); - - item = g_list_nth(items, from); - while (item && n--) - { - gtk_widget_set_sensitive(GTK_BIN(item->data)->child, !shaded); - item = item->next; - } - g_list_free(items); -} - -static void save_menus(void) -{ - char *menurc; - - menurc = choices_find_xdg_path_save(MENUS_NAME, PROJECT, SITE, TRUE); - if (menurc) - { - gtk_accel_map_save(menurc); - g_free(menurc); - } -} - -static void select_nth_item(GtkMenuShell *shell, int n) -{ - GList *items; - GtkWidget *item; - - items = gtk_container_get_children(GTK_CONTAINER(shell)); - item = g_list_nth_data(items, n); - - g_return_if_fail(item != NULL); - - g_list_free(items); - - gtk_menu_shell_select_item(shell, item); -} - -static void file_op(gpointer data, FileOp action, GtkWidget *unused) -{ - DirItem *item; - const guchar *path; - int n_selected; - ViewIter iter; - - g_return_if_fail(window_with_focus != NULL); - - n_selected = view_count_selected(window_with_focus->view); - - if (n_selected < 1) - { - const char *prompt; - - switch (action) - { - case FILE_COPY_ITEM: - prompt = _("Copy ... ?"); - break; - case FILE_RENAME_ITEM: - prompt = _("Rename ... ?"); - break; - case FILE_LINK_ITEM: - prompt = _("Symlink ... ?"); - break; - case FILE_OPEN_FILE: - prompt = _("Shift Open ... ?"); - break; - case FILE_PROPERTIES: - prompt = _("Properties of ... ?"); - break; - case FILE_SET_TYPE: - prompt = _("Set type of ... ?"); - break; - case FILE_RUN_ACTION: - prompt = _("Set run action for ... ?"); - break; - case FILE_SET_ICON: - prompt = _("Set icon for ... ?"); - break; - case FILE_SEND_TO: - prompt = _("Send ... to ... ?"); - break; - case FILE_DELETE: - prompt = _("DELETE ... ?"); - break; - case FILE_USAGE: - prompt = _("Count the size of ... ?"); - break; - case FILE_CHMOD_ITEMS: - prompt = _("Set permissions on ... ?"); - break; - case FILE_FIND: - prompt = _("Search inside ... ?"); - break; - default: - g_warning("Unknown action!"); - return; - } - filer_target_mode(window_with_focus, target_callback, - GINT_TO_POINTER(action), prompt); - return; - } - - switch (action) - { - case FILE_SEND_TO: - send_to(window_with_focus); - return; - case FILE_DELETE: - delete(window_with_focus); - return; - case FILE_USAGE: - usage(window_with_focus); - return; - case FILE_CHMOD_ITEMS: - chmod_items(window_with_focus); - return; - case FILE_SET_TYPE: - set_type_items(window_with_focus); - return; - case FILE_FIND: - find(window_with_focus); - return; - case FILE_PROPERTIES: - { - GList *items; - - items = filer_selected_items(window_with_focus); - infobox_show_list(items); - destroy_glist(&items); - return; - } - case FILE_RENAME_ITEM: - if (n_selected > 1) - { - GList *items = NULL; - ViewIter iter; - - view_get_iter(window_with_focus->view, &iter, VIEW_ITER_SELECTED); - while ((item = iter.next(&iter))) - items = g_list_prepend(items, item->leafname); - items = g_list_reverse(items); - - bulk_rename(window_with_focus->sym_path, items); - g_list_free(items); - return; - } - break; /* Not a bulk rename... see below */ - default: - break; - } - - /* All the following actions require exactly one file selected */ - - if (n_selected > 1) - { - report_error(_("You cannot do this to more than " - "one item at a time")); - return; - } - - view_get_iter(window_with_focus->view, &iter, VIEW_ITER_SELECTED); - - item = iter.next(&iter); - g_return_if_fail(item != NULL); - /* iter may be passed to filer_openitem... */ - - if (item->base_type == TYPE_UNKNOWN) - item = dir_update_item(window_with_focus->directory, - item->leafname); - - if (!item) - { - report_error(_("Item no longer exists!")); - return; - } - - path = make_path(window_with_focus->sym_path, item->leafname); - - switch (action) - { - case FILE_COPY_ITEM: - src_dest_action_item(path, di_image(item), - _("Copy"), copy_cb, - GDK_ACTION_COPY); - break; - case FILE_RENAME_ITEM: - src_dest_action_item(path, di_image(item), - _("Rename"), rename_cb, - GDK_ACTION_MOVE); - break; - case FILE_LINK_ITEM: - src_dest_action_item(path, di_image(item), - _("Symlink"), link_cb, - GDK_ACTION_LINK); - break; - case FILE_OPEN_FILE: - filer_openitem(window_with_focus, &iter, - OPEN_SAME_WINDOW | OPEN_SHIFT); - break; - case FILE_RUN_ACTION: - run_action(item); - break; - case FILE_SET_ICON: - icon_set_handler_dialog(item, path); - break; - default: - g_warning("Unknown action!"); - return; - } -} - -static void show_key_help(GtkWidget *button, gpointer data) -{ - gboolean can_change_accels; - - g_object_get(G_OBJECT(gtk_settings_get_default()), - "gtk-can-change-accels", &can_change_accels, - NULL); - - if (!can_change_accels) - { - info_message(_("User-definable shortcuts are disabled by " - "default in Gtk2, and you have not enabled " - "them. You can turn this feature on by:\n\n" - "1) using an XSettings manager, such as ROX-Session " - "or gnome-settings-daemon, or\n\n" - "2) adding this line to ~/.gtkrc-2.0:\n" - "\tgtk-can-change-accels = 1\n" - "\t(this only works if NOT using XSETTINGS)")); - return; - } - - info_message(_("To set a keyboard short-cut for a menu item:\n\n" - "- Open the menu over a filer window,\n" - "- Move the pointer over the item you want to use,\n" - "- Press the key you want attached to it.\n\n" - "The key will appear next to the menu item and you can just press " - "that key without opening the menu in future.")); -} - -static GList *set_keys_button(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *button, *align; - - g_return_val_if_fail(option == NULL, NULL); - - align = gtk_alignment_new(0, 0.5, 0, 0); - button = gtk_button_new_with_label(_("Set keyboard shortcuts")); - gtk_container_add(GTK_CONTAINER(align), button); - g_signal_connect(button, "clicked", G_CALLBACK(show_key_help), NULL); - - return g_list_append(NULL, align); -} diff --git a/ROX-Filer/src/menu.h b/ROX-Filer/src/menu.h deleted file mode 100644 index ac9f7e63..00000000 --- a/ROX-Filer/src/menu.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _MENU_H -#define _MENU_H - -/* 'action's for menu_rox_help */ -enum {HELP_ABOUT, HELP_DIR, HELP_MANUAL}; - -typedef enum menu_icon_style { - MIS_NONE, MIS_SMALL, MIS_LARGE, - MIS_HUGE_UNUSED, - MIS_CURRENT, /* As per current filer window */ - MIS_DEFAULT -} MenuIconStyle; - -extern GtkAccelGroup *filer_keys; - -void menu_init(void); - -GtkItemFactory *menu_create(GtkItemFactoryEntry *def, int n_entries, - const gchar *name, GtkAccelGroup *keys); -void menu_set_items_shaded(GtkWidget *menu, gboolean shaded, int from, int n); -void position_menu(GtkMenu *menu, gint *x, gint *y, - gboolean *push_in, gpointer data); -void show_popup_menu(GtkWidget *menu, GdkEvent *event, int item); - -gboolean ensure_filer_menu(void); -void show_filer_menu(FilerWindow *filer_window, - GdkEvent *event, - ViewIter *item); -void menu_popdown(void); -GtkWidget *make_send_to_item(DirItem *ditem, const char *label, - MenuIconStyle style); - -/* Public menu handlers */ -void menu_rox_help(gpointer data, guint action, GtkWidget *widget); -void menu_show_options(gpointer data, guint action, GtkWidget *widget); -void open_home(gpointer data, guint action, GtkWidget *widget); -void menu_show_shift_action(GtkWidget *menu_item, DirItem *item, gboolean next); - -#endif /* _MENU_H */ diff --git a/ROX-Filer/src/minibuffer.c b/ROX-Filer/src/minibuffer.c deleted file mode 100644 index 002b53e9..00000000 --- a/ROX-Filer/src/minibuffer.c +++ /dev/null @@ -1,1139 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* minibuffer.c - for handling the path entry box at the bottom */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include -#include - -#include "global.h" - -#include "options.h" -#include "find.h" -#include "gui_support.h" -#include "support.h" -#include "minibuffer.h" -#include "filer.h" -#include "display.h" -#include "main.h" -#include "action.h" -#include "diritem.h" -#include "type.h" -#include "view_iface.h" - -static GList *shell_history = NULL; - -/* Static prototypes */ -static gint key_press_event(GtkWidget *widget, - GdkEventKey *event, - FilerWindow *filer_window); -static void changed(GtkEditable *mini, FilerWindow *filer_window); -static gboolean find_next_match(FilerWindow *filer_window, - const char *pattern, - int dir); -static gboolean find_exact_match(FilerWindow *filer_window, - const gchar *pattern); -static gboolean matches(ViewIter *iter, const char *pattern); -static void search_in_dir(FilerWindow *filer_window, int dir); -static const gchar *mini_contents(FilerWindow *filer_window); -static void show_help(FilerWindow *filer_window); -static gboolean grab_focus(GtkWidget *minibuffer); -static gboolean select_if_glob(ViewIter *iter, gpointer data); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -static Option o_filer_beep_fail, o_filer_beep_multi; - -void minibuffer_init(void) -{ - option_add_int(&o_filer_beep_fail, "filer_beep_fail", 1); - option_add_int(&o_filer_beep_multi, "filer_beep_multi", 1); -} - -/* Creates the minibuffer widgets, setting the appropriate fields - * in filer_window. - */ -void create_minibuffer(FilerWindow *filer_window) -{ - GtkWidget *hbox, *label, *mini; - - hbox = gtk_hbox_new(FALSE, 0); - - gtk_box_pack_start(GTK_BOX(hbox), - new_help_button((HelpFunc) show_help, filer_window), - FALSE, TRUE, 0); - - label = gtk_label_new(""); - gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, TRUE, 2); - - mini = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), mini, TRUE, TRUE, 0); - gtk_widget_set_name(mini, "fixed-style"); - g_signal_connect(mini, "key_press_event", - G_CALLBACK(key_press_event), filer_window); - g_signal_connect(mini, "changed", G_CALLBACK(changed), filer_window); - - /* Grabbing focus musn't select the text... */ - g_signal_connect_swapped(mini, "grab-focus", - G_CALLBACK(grab_focus), mini); - - filer_window->minibuffer = mini; - filer_window->minibuffer_label = label; - filer_window->minibuffer_area = hbox; -} - -void minibuffer_show(FilerWindow *filer_window, MiniType mini_type) -{ - GtkEntry *mini; - int pos = -1; - ViewIter cursor; - - g_return_if_fail(filer_window != NULL); - g_return_if_fail(filer_window->minibuffer != NULL); - - mini = GTK_ENTRY(filer_window->minibuffer); - entry_set_error(filer_window->minibuffer, FALSE); - - filer_window->mini_type = MINI_NONE; - gtk_label_set_text(GTK_LABEL(filer_window->minibuffer_label), - mini_type == MINI_PATH ? _("Goto:") : - mini_type == MINI_SHELL ? _("Shell:") : - mini_type == MINI_SELECT_IF ? _("Select If:") : - mini_type == MINI_SELECT_BY_NAME ? _("Select Named:") : - mini_type == MINI_FILTER ? _("Pattern:") : - "?"); - - switch (mini_type) - { - case MINI_PATH: - view_show_cursor(filer_window->view); - view_get_cursor(filer_window->view, &cursor); - view_set_base(filer_window->view, &cursor); - - gtk_entry_set_text(mini, - make_path(filer_window->sym_path, "")); - if (filer_window->temp_show_hidden) - { - filer_window->temp_show_hidden = FALSE; - display_update_hidden(filer_window); - } - break; - case MINI_SELECT_IF: - gtk_entry_set_text(mini, ""); - filer_window->mini_cursor_base = -1; /* History */ - break; - case MINI_SELECT_BY_NAME: - view_show_cursor(filer_window->view); - view_get_cursor(filer_window->view, &cursor); - view_set_base(filer_window->view, &cursor); - - gtk_entry_set_text(mini, "*."); - filer_window->mini_cursor_base = -1; /* History */ - view_select_if(filer_window->view, select_if_glob, "*."); - break; - case MINI_FILTER: - if(filer_window->filter!=FILER_SHOW_GLOB || - !filer_window->filter_string) - gtk_entry_set_text(mini, "*"); - else - gtk_entry_set_text(mini, - filer_window->filter_string); - break; - case MINI_SHELL: - { - DirItem *item; - view_get_cursor(filer_window->view, &cursor); - item = cursor.peek(&cursor); - pos = 0; - if (view_count_selected(filer_window->view) > 0) - gtk_entry_set_text(mini, " \"$@\""); - else if (item) - { - guchar *escaped; - guchar *tmp; - - escaped = shell_escape(item->leafname); - tmp = g_strconcat(" ", escaped, NULL); - g_free(escaped); - gtk_entry_set_text(mini, tmp); - g_free(tmp); - } - else - gtk_entry_set_text(mini, ""); - filer_window->mini_cursor_base = -1; /* History */ - break; - } - default: - g_warning("Bad minibuffer type\n"); - return; - } - - filer_window->mini_type = mini_type; - - gtk_editable_set_position(GTK_EDITABLE(mini), pos); - - gtk_widget_show_all(filer_window->minibuffer_area); - - gtk_widget_grab_focus(filer_window->minibuffer); -} - -void minibuffer_hide(FilerWindow *filer_window) -{ - filer_window->mini_type = MINI_NONE; - - gtk_widget_hide(filer_window->minibuffer_area); - - gtk_widget_child_focus(filer_window->window, GTK_DIR_TAB_FORWARD); - - if (filer_window->temp_show_hidden) - { - DirItem *item; - ViewIter iter; - - view_get_cursor(filer_window->view, &iter); - item = iter.peek(&iter); - - if (item == NULL || item->leafname[0] != '.') - display_update_hidden(filer_window); - filer_window->temp_show_hidden = FALSE; - } -} - -/* Insert this leafname at the cursor (replacing the selection, if any). - * Must be in SHELL mode. - */ -void minibuffer_add(FilerWindow *filer_window, const gchar *leafname) -{ - guchar *esc; - GtkEditable *edit = GTK_EDITABLE(filer_window->minibuffer); - GtkEntry *entry = GTK_ENTRY(edit); - int pos; - - g_return_if_fail(filer_window->mini_type == MINI_SHELL); - - esc = shell_escape(leafname); - - gtk_editable_delete_selection(edit); - pos = gtk_editable_get_position(edit); - - if (pos > 0 && gtk_entry_get_text(entry)[pos - 1] != ' ') - gtk_editable_insert_text(edit, " ", 1, &pos); - - gtk_editable_insert_text(edit, esc, strlen(esc), &pos); - gtk_editable_set_position(edit, pos); - - g_free(esc); -} - - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void show_help(FilerWindow *filer_window) -{ - switch (filer_window->mini_type) - { - case MINI_PATH: - info_message( - _("Enter the name of a file and I'll display " - "it for you. Press Tab to fill in the longest " - "match. Escape to close the minibuffer.")); - break; - case MINI_SHELL: - info_message( - _("Enter a shell command to execute. Click " - "on a file to add it to the buffer.")); - break; - case MINI_SELECT_BY_NAME: - info_message( - _("Enter a file name pattern to select all matching files:\n\n" - "? means any character\n" - "* means zero or more characters\n" - "[aA] means 'a' or 'A'\n" - "[a-z] means any character from a to z (lowercase)\n" - "*.png means any name ending in '.png'")); - break; - case MINI_SELECT_IF: - show_condition_help(NULL); - break; - case MINI_FILTER: - info_message( - _("Enter a pattern to match for files to " - "be shown. An empty filter turns the " - "filter off.")); - break; - default: - g_warning("Unknown minibuffer type!"); - break; - } -} - - -/* PATH ENTRY */ - -static void path_return_pressed(FilerWindow *filer_window, GdkEventKey *event) -{ - const gchar *path, *pattern; - int flags = OPEN_FROM_MINI | OPEN_SAME_WINDOW; - ViewIter iter; - DirItem *item; - - path = gtk_entry_get_text(GTK_ENTRY(filer_window->minibuffer)); - pattern = g_basename(path); - - view_get_cursor(filer_window->view, &iter); - - item = iter.peek(&iter); - if (item == NULL || !matches(&iter, pattern)) - { - gdk_beep(); - return; - } - - if ((event->state & GDK_SHIFT_MASK) != 0) - flags |= OPEN_SHIFT; - - filer_openitem(filer_window, &iter, flags); -} - -/* Use the cursor item to fill in the minibuffer. - * If there are multiple matches then fill in as much as possible and - * (possibly) beep. - */ -static void complete(FilerWindow *filer_window) -{ - GtkEntry *entry; - DirItem *item, *other; - int shortest_stem = -1; - int current_stem; - const gchar *text, *leaf; - ViewIter cursor, iter; - - view_get_cursor(filer_window->view, &cursor); - item = cursor.peek(&cursor); - - if (!item) - { - gdk_beep(); - return; - } - - entry = GTK_ENTRY(filer_window->minibuffer); - - text = gtk_entry_get_text(entry); - leaf = strrchr(text, '/'); - if (!leaf) - { - gdk_beep(); - return; - } - - leaf++; - if (!matches(&cursor, leaf)) - { - gdk_beep(); - return; - } - - current_stem = strlen(leaf); - - /* Find the longest other match of this name. If it's longer than - * the currently entered text then complete only up to that length. - */ - view_get_iter(filer_window->view, &iter, 0); - while ((other = iter.next(&iter))) - { - int stem = 0; - - if (iter.i == cursor.i) /* XXX */ - continue; - - while (other->leafname[stem] && item->leafname[stem]) - { - gchar a, b; - /* Like the matches() function below, the comparison of - * leafs must be case-insensitive. - */ - a = g_ascii_tolower(item->leafname[stem]); - b = g_ascii_tolower(other->leafname[stem]); - if (a != b) - break; - stem++; - } - - /* stem is the index of the first difference */ - if (stem >= current_stem && - (shortest_stem == -1 || stem < shortest_stem)) - shortest_stem = stem; - } - - if (current_stem == shortest_stem) - { - /* We didn't add anything... */ - if (o_filer_beep_fail.int_value) - gdk_beep(); - } - else if (current_stem < shortest_stem) - { - gint tmp_pos; - - /* Have to replace the leafname text in the minibuffer rather - * than just append to it. Here's an example: - * Suppose we have two dirs, /tmp and /TMP. - * The user enters /t in the minibuffer and hits Tab. - * With the g_ascii_tolower() code above, this would result - * in /tMP being bisplayed in the minibuffer which isn't - * intuitive. Therefore all text after the / must be replaced. - */ - tmp_pos = leaf - text; /* index of start of leaf */ - gtk_editable_delete_text(GTK_EDITABLE(entry), - tmp_pos, entry->text_length); - gtk_editable_insert_text(GTK_EDITABLE(entry), - item->leafname, shortest_stem, - &tmp_pos); - - gtk_editable_set_position(GTK_EDITABLE(entry), -1); - - if (o_filer_beep_multi.int_value) - gdk_beep(); - } - else - { - const guchar *new; - - new = make_path(filer_window->sym_path, item->leafname); - - if (item->base_type == TYPE_DIRECTORY && - (item->flags & ITEM_FLAG_APPDIR) == 0) - new = make_path(new, ""); - - gtk_entry_set_text(entry, new); - gtk_editable_set_position(GTK_EDITABLE(entry), -1); - } -} - -static void path_changed(FilerWindow *filer_window) -{ - GtkWidget *mini = filer_window->minibuffer; - const char *rawnew, *leaf; - char *path; - char *new = NULL; - gboolean error = FALSE; - - rawnew = gtk_entry_get_text(GTK_ENTRY(mini)); - if (!*rawnew) - { - /* Entry may be blank because we're in the middle of changing - * to something else... - */ - entry_set_error(mini, FALSE); - return; - } - - switch (rawnew[0]) - { - case '/': - new=g_strdup(rawnew); - break; - - case '~': - if (!rawnew[1] || rawnew[1]=='/') - { - new=g_strconcat(g_get_home_dir(), "/", - rawnew[1]? rawnew+2: "", "/", - NULL); - } - else - { - const char *sl; - gchar *username; - struct passwd *passwd; - - - /* Need to lookup user name */ - for(sl=rawnew+2; *sl && *sl!='/'; sl++) - ; - username=g_strndup(rawnew+1, sl-rawnew-1); - passwd=getpwnam(username); - g_free(username); - - if(passwd) - { - new=g_strconcat(passwd->pw_dir, "/", - sl+1, "/", - NULL); - } - else - new=g_strdup(rawnew); - } - break; - - default: - new=g_strdup(rawnew); - break; - } - - - leaf = g_basename(new); - if (leaf == new) - path = g_strdup("/"); - else - path = g_path_get_dirname(new); - - if (strcmp(path, filer_window->sym_path) != 0) - { - /* The new path is in a different directory */ - struct stat info; - - if (stat_with_timeout(path, &info) == 0 && - S_ISDIR(info.st_mode)) - { - filer_change_to(filer_window, path, leaf); - } - else - error = TRUE; - } - else - { - if (*leaf == '.' && !filer_window->temp_show_hidden) - { - filer_window->temp_show_hidden = TRUE; - display_update_hidden(filer_window); - } - - if (find_exact_match(filer_window, leaf) == FALSE && - find_next_match(filer_window, leaf, 0) == FALSE) - error = TRUE; - } - - g_free(new); - g_free(path); - - entry_set_error(mini, error); -} - -/* Look for an exact match, and move the cursor to it if found. - * TRUE on success. - */ -static gboolean find_exact_match(FilerWindow *filer_window, - const gchar *pattern) -{ - DirItem *item; - ViewIter iter; - ViewIface *view = filer_window->view; - - view_get_iter(view, &iter, 0); - - while ((item = iter.next(&iter))) - { - if (strcmp(item->leafname, pattern) == 0) - { - view_cursor_to_iter(view, &iter); - return TRUE; - } - } - - return FALSE; -} - -/* Find the next item in the view that matches 'pattern'. Start from - * cursor_base and loop at either end. dir is 1 for a forward search, - * -1 for backwards. 0 means forwards, but may stay the same. - * - * Does not automatically update cursor_base. - * - * Returns TRUE if a match is found. - */ -static gboolean find_next_match(FilerWindow *filer_window, - const char *pattern, - int dir) -{ - ViewIface *view = filer_window->view; - ViewIter iter; - - if (view_count_items(view) < 1) - return FALSE; - - view_get_iter(view, &iter, - VIEW_ITER_FROM_BASE | - (dir >= 0 ? 0 : VIEW_ITER_BACKWARDS)); - - if (dir != 0) - iter.next(&iter); /* Don't look at the base itself */ - - while (iter.next(&iter)) - { - if (matches(&iter, pattern)) - { - view_cursor_to_iter(view, &iter); - return TRUE; - } - } - - /* No matches (except possibly base itself) */ - view_get_iter(view, &iter, - VIEW_ITER_FROM_BASE | VIEW_ITER_ONE_ONLY | - (dir >= 0 ? 0 : VIEW_ITER_BACKWARDS)); - - view_cursor_to_iter(view, &iter); - - return FALSE; -} - -static gboolean matches(ViewIter *iter, const char *pattern) -{ - DirItem *item; - - item = iter->peek(iter); - - return strncasecmp(item->leafname, pattern, strlen(pattern)) == 0; -} - -/* Find next match and set base for future matches. */ -static void search_in_dir(FilerWindow *filer_window, int dir) -{ - const char *path, *pattern; - ViewIter iter; - - path = gtk_entry_get_text(GTK_ENTRY(filer_window->minibuffer)); - pattern = g_basename(path); - - view_get_cursor(filer_window->view, &iter); - view_set_base(filer_window->view, &iter); - find_next_match(filer_window, pattern, dir); - view_get_cursor(filer_window->view, &iter); - view_set_base(filer_window->view, &iter); -} - -/* SHELL COMMANDS */ - -static void add_to_history(const gchar *line) -{ - guchar *last; - - last = shell_history ? (guchar *) shell_history->data : NULL; - - if (last && strcmp(last, line) == 0) - return; /* Duplicating last entry */ - - shell_history = g_list_prepend(shell_history, g_strdup(line)); -} - -static void shell_done(FilerWindow *filer_window) -{ - if (filer_exists(filer_window)) - filer_update_dir(filer_window, TRUE); -} - -/* Given a list of matches, return the longest stem. g_free() the result. - * Special chars are escaped. If there is only a single (non-dir) match - * then a trailing space is added. - */ -static guchar *best_match(FilerWindow *filer_window, glob_t *matches) -{ - gchar *first = matches->gl_pathv[0]; - int i; - int longest, path_len; - guchar *path, *tmp; - - longest = strlen(first); - - for (i = 1; i < matches->gl_pathc; i++) - { - int j; - guchar *m = matches->gl_pathv[i]; - - for (j = 0; j < longest; j++) - if (m[j] != first[j]) - longest = j; - } - - path_len = strlen(filer_window->sym_path); - if (strncmp(filer_window->sym_path, first, path_len) == 0 && - first[path_len] == '/' && first[path_len + 1]) - { - path = g_strndup(first + path_len + 1, longest - path_len - 1); - } - else - path = g_strndup(first, longest); - - tmp = shell_escape(path); - g_free(path); - - if (matches->gl_pathc == 1 && tmp[strlen(tmp) - 1] != '/') - { - path = g_strdup_printf("%s ", tmp); - g_free(tmp); - return path; - } - - return tmp; -} - -static void shell_tab(FilerWindow *filer_window) -{ - const gchar *entry; - int i; - int pos; - GString *leaf; - glob_t matches; - int leaf_start; - - entry = gtk_entry_get_text(GTK_ENTRY(filer_window->minibuffer)); - pos = gtk_editable_get_position(GTK_EDITABLE(filer_window->minibuffer)); - leaf = g_string_new(NULL); - - for (i = 0; i < pos; i++) - { - guchar c = entry[i]; - - if (leaf->len == 0) - leaf_start = i; - - if (c == ' ') - { - g_string_truncate(leaf, 0); - continue; - } - else if (c == '\\' && i + 1 < pos) - c = entry[++i]; - else if (c == '"' || c == '\'') - { - for (++i; i < pos; i++) - { - guchar cc = entry[i]; - - if (cc == '\\' && i + 1 < pos) - cc = entry[++i]; - else if (cc == c) - break; - g_string_append_c(leaf, cc); - } - continue; - } - - g_string_append_c(leaf, c); - } - - if (leaf->len == 0) - leaf_start = pos; - - if (leaf->str[0] != '/' && leaf->str[0] != '~') - { - g_string_prepend_c(leaf, '/'); - g_string_prepend(leaf, filer_window->sym_path); - } - - g_string_append_c(leaf, '*'); - - if (glob(leaf->str, -#ifdef GLOB_TILDE - GLOB_TILDE | -#endif - GLOB_MARK, NULL, &matches) == 0) - { - if (matches.gl_pathc > 0) - { - guchar *best; - GtkEditable *edit = - GTK_EDITABLE(filer_window->minibuffer); - - best = best_match(filer_window, &matches); - - gtk_editable_delete_text(edit, leaf_start, pos); - gtk_editable_insert_text(edit, best, strlen(best), - &leaf_start); - gtk_editable_set_position(edit, leaf_start); - - g_free(best); - } - if (matches.gl_pathc != 1) - gdk_beep(); - - globfree(&matches); - } - - g_string_free(leaf, TRUE); -} - -static void run_child(gpointer unused) -{ - /* Ensure output is noticed - send stdout to stderr */ - dup2(STDERR_FILENO, STDOUT_FILENO); - close_on_exec(STDOUT_FILENO, FALSE); -} - -/* Either execute the command or make it the default run action */ -static void shell_return_pressed(FilerWindow *filer_window) -{ - GPtrArray *argv; - const gchar *entry; - GError *error = NULL; - pid_t child; - DirItem *item; - ViewIter iter; - - entry = mini_contents(filer_window); - - if (!entry) - goto out; - - add_to_history(entry); - - argv = g_ptr_array_new(); - g_ptr_array_add(argv, "sh"); - g_ptr_array_add(argv, "-c"); - g_ptr_array_add(argv, (gchar *) entry); - g_ptr_array_add(argv, "sh"); - - view_get_iter(filer_window->view, &iter, 0); - while ((item = iter.next(&iter))) - { - if (view_get_selected(filer_window->view, &iter)) - g_ptr_array_add(argv, item->leafname); - } - - g_ptr_array_add(argv, NULL); - - if (!g_spawn_async_with_pipes(filer_window->sym_path, - (gchar **) argv->pdata, NULL, - G_SPAWN_DO_NOT_REAP_CHILD | - G_SPAWN_SEARCH_PATH, - run_child, NULL, /* Child setup fn */ - &child, /* Child PID */ - NULL, NULL, NULL, /* Standard pipes */ - &error)) - { - delayed_error("%s", error ? error->message : "(null)"); - g_error_free(error); - } - else - on_child_death(child, (CallbackFn) shell_done, filer_window); - - g_ptr_array_free(argv, TRUE); - -out: - minibuffer_hide(filer_window); -} - -/* Move through the shell history */ -static void shell_recall(FilerWindow *filer_window, int dir) -{ - guchar *command; - int pos = filer_window->mini_cursor_base; - - pos += dir; - if (pos >= 0) - { - command = g_list_nth_data(shell_history, pos); - if (!command) - return; - } - else - command = ""; - - if (pos < -1) - pos = -1; - filer_window->mini_cursor_base = pos; - - gtk_entry_set_text(GTK_ENTRY(filer_window->minibuffer), command); -} - -/* SELECT IF */ - -typedef struct { - FindInfo info; - FilerWindow *filer_window; - FindCondition *cond; -} SelectData; - -static gboolean select_if_test(ViewIter *iter, gpointer user_data) -{ - DirItem *item; - SelectData *data = user_data; - - item = iter->peek(iter); - g_return_val_if_fail(item != NULL, FALSE); - - data->info.leaf = item->leafname; - data->info.fullpath = make_path(data->filer_window->sym_path, - data->info.leaf); - - return mc_lstat(data->info.fullpath, &data->info.stats) == 0 && - find_test_condition(data->cond, &data->info); -} - -static void select_return_pressed(FilerWindow *filer_window, guint etime) -{ - const gchar *entry; - SelectData data; - - entry = mini_contents(filer_window); - - if (!entry) - goto out; - - add_to_history(entry); - - data.cond = find_compile(entry); - if (!data.cond) - { - delayed_error(_("Invalid Find condition")); - return; - } - - data.info.now = time(NULL); - data.info.prune = FALSE; /* (don't care) */ - data.filer_window = filer_window; - - view_select_if(filer_window->view, select_if_test, &data); - - find_condition_free(data.cond); -out: - minibuffer_hide(filer_window); -} - -static void filter_return_pressed(FilerWindow *filer_window, guint etime) -{ - const gchar *entry; - - entry = mini_contents(filer_window); - - if (entry && *entry && strcmp(entry, "*")!=0) { - display_set_filter(filer_window, FILER_SHOW_GLOB, - entry); - } else { - display_set_filter(filer_window, FILER_SHOW_ALL, NULL); - } - minibuffer_hide(filer_window); -} - - -/* EVENT HANDLERS */ - -static gint key_press_event(GtkWidget *widget, - GdkEventKey *event, - FilerWindow *filer_window) -{ - if (event->keyval == GDK_Escape) - { - if (filer_window->mini_type == MINI_SHELL) - { - const gchar *line; - - line = mini_contents(filer_window); - if (line) - add_to_history(line); - } - - minibuffer_hide(filer_window); - return TRUE; - } - - switch (filer_window->mini_type) - { - case MINI_PATH: - switch (event->keyval) - { - case GDK_Up: - search_in_dir(filer_window, -1); - break; - case GDK_Down: - search_in_dir(filer_window, 1); - break; - case GDK_Return: - case GDK_KP_Enter: - path_return_pressed(filer_window, - event); - break; - case GDK_Tab: - complete(filer_window); - break; - default: - return FALSE; - } - break; - - case MINI_SHELL: - switch (event->keyval) - { - case GDK_Up: - shell_recall(filer_window, 1); - break; - case GDK_Down: - shell_recall(filer_window, -1); - break; - case GDK_Tab: - shell_tab(filer_window); - break; - case GDK_Return: - case GDK_KP_Enter: - shell_return_pressed(filer_window); - break; - default: - return FALSE; - } - break; - case MINI_SELECT_IF: - switch (event->keyval) - { - case GDK_Up: - shell_recall(filer_window, 1); - break; - case GDK_Down: - shell_recall(filer_window, -1); - break; - case GDK_Tab: - break; - case GDK_Return: - case GDK_KP_Enter: - select_return_pressed(filer_window, - event->time); - break; - default: - return FALSE; - } - break; - case MINI_SELECT_BY_NAME: - switch (event->keyval) - { - case GDK_Up: - filer_next_selected(filer_window, -1); - break; - case GDK_Down: - filer_next_selected(filer_window, 1); - break; - case GDK_Tab: - break; - case GDK_Return: - case GDK_KP_Enter: - minibuffer_hide(filer_window); - break; - default: - return FALSE; - } - break; - - case MINI_FILTER: - switch (event->keyval) - { - case GDK_Return: - case GDK_KP_Enter: - filter_return_pressed(filer_window, - event->time); - break; - default: - return FALSE; - } - break; - default: - break; - } - - return TRUE; -} - -static gboolean select_if_glob(ViewIter *iter, gpointer data) -{ - DirItem *item; - const char *pattern = (char *) data; - - item = iter->peek(iter); - g_return_val_if_fail(item != NULL, FALSE); - - return fnmatch(pattern, item->leafname, 0) == 0; -} - -static void changed(GtkEditable *mini, FilerWindow *filer_window) -{ - ViewIter iter; - - switch (filer_window->mini_type) - { - case MINI_PATH: - path_changed(filer_window); - return; - case MINI_SELECT_IF: - set_find_string_colour(GTK_WIDGET(mini), - gtk_entry_get_text( - GTK_ENTRY(filer_window->minibuffer))); - return; - case MINI_SELECT_BY_NAME: - view_select_if(filer_window->view, - select_if_glob, - (gpointer) gtk_entry_get_text( - GTK_ENTRY(filer_window->minibuffer))); - view_get_iter(filer_window->view, &iter, - VIEW_ITER_FROM_BASE | VIEW_ITER_SELECTED); - if (iter.next(&iter)) - view_cursor_to_iter(filer_window->view, &iter); - return; - default: - break; - } -} - -/* Returns a string (which must NOT be freed), or NULL if the buffer - * is blank (whitespace only). - */ -static const gchar *mini_contents(FilerWindow *filer_window) -{ - const gchar *entry, *c; - - entry = gtk_entry_get_text(GTK_ENTRY(filer_window->minibuffer)); - - for (c = entry; *c; c++) - if (!g_ascii_isspace(*c)) - return entry; - - return NULL; -} - -/* This is a really ugly hack to get around Gtk+-2.0's broken auto-select - * behaviour. - */ -static gboolean grab_focus(GtkWidget *minibuffer) -{ - GtkWidgetClass *class; - - class = GTK_WIDGET_CLASS(gtk_type_class(GTK_TYPE_WIDGET)); - - class->grab_focus(minibuffer); - - g_signal_stop_emission(minibuffer, - g_signal_lookup("grab_focus", G_OBJECT_TYPE(minibuffer)), 0); - - - return 1; -} diff --git a/ROX-Filer/src/minibuffer.h b/ROX-Filer/src/minibuffer.h deleted file mode 100644 index 9c441bb9..00000000 --- a/ROX-Filer/src/minibuffer.h +++ /dev/null @@ -1,17 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _MINIBUFFER_H -#define _MINIBUFFER_H - -#include - -void minibuffer_init(void); -void create_minibuffer(FilerWindow *filer_window); -void minibuffer_show(FilerWindow *filer_window, MiniType mini_type); -void minibuffer_hide(FilerWindow *filer_window); -void minibuffer_add(FilerWindow *filer_window, const gchar *leafname); - -#endif /* _MINIBUFFER_H */ diff --git a/ROX-Filer/src/modechange.c b/ROX-Filer/src/modechange.c deleted file mode 100644 index 94fc5f28..00000000 --- a/ROX-Filer/src/modechange.c +++ /dev/null @@ -1,311 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* modechange.c -- file mode manipulation - * - * This rest of this file was taken from GNU FileUtils, with minor - * modifications (eg changing the memory handling to use GLib). - */ - -/* Written by David MacKenzie */ - -/* The ASCII mode string is compiled into a linked list of `struct - modechange', which can then be applied to each file to be changed. - We do this instead of re-parsing the ASCII string for each file - because the compiled form requires less computation to use; when - changing the mode of many files, this probably results in a - performance gain. */ - -#include "config.h" - -#include -#include -#include - -#include - -#include "modechange.h" - -#define isodigit(c) ((c) >= '0' && (c) <= '7') - -/* Return a positive integer containing the value of the ASCII - octal number S. If S is not an octal number or is more than - 4 digits, return -1. */ - -static int -oatoi (const char *s) -{ - register int i; - - if (*s == 0 || strlen (s) > 4) - return -1; - for (i = 0; isodigit (*s); ++s) - i = i * 8 + *s - '0'; - if (*s) - return -1; - return i; -} - -/* Return a linked list of file mode change operations created from - MODE_STRING, an ASCII string that contains either an octal number - specifying an absolute mode, or symbolic mode change operations with - the form: - [ugoa...][[+-=][rwxXstugo...]...][,...] - MASKED_OPS is a bitmask indicating which symbolic mode operators (=+-) - should not affect bits set in the umask when no users are given. - Operators not selected in MASKED_OPS ignore the umask. - - Return NULL if `mode_string' does not contain a valid - representation of file mode change operations. */ - -struct mode_change * -mode_compile (const char *mode_string, unsigned int masked_ops) -{ - struct mode_change *head; /* First element of the linked list. */ - struct mode_change *change; /* An element of the linked list. */ - int i; /* General purpose temporary. */ - int umask_value; /* The umask value (surprise). */ - unsigned short affected_bits; /* Which bits in the mode are operated on. */ - unsigned short affected_masked; /* `affected_bits' modified by umask. */ - unsigned ops_to_mask; /* Operators to actually use umask on. */ - - i = oatoi (mode_string); - if (i >= 0) - { - if (i > 07777) - return NULL; - head = g_new(struct mode_change, 1); - head->next = NULL; - head->op = '='; - head->flags = 0; - head->value = i; - head->affected = 07777; /* Affect all permissions. */ - return head; - } - - umask_value = umask (0); - umask (umask_value); /* Restore the old value. */ - - head = NULL; - change = NULL; - --mode_string; - - /* One loop iteration for each "ugoa...=+-rwxXstugo...[=+-rwxXstugo...]". */ - do - { - affected_bits = 0; - ops_to_mask = 0; - /* Turn on all the bits in `affected_bits' for each group given. */ - for (++mode_string;; ++mode_string) - switch (*mode_string) - { - case 'u': - affected_bits |= 04700; - break; - case 'g': - affected_bits |= 02070; - break; - case 'o': - affected_bits |= 01007; - break; - case 'a': - affected_bits |= 07777; - break; - default: - goto no_more_affected; - } - - no_more_affected: - /* If none specified, affect all bits, except perhaps those - set in the umask. */ - if (affected_bits == 0) - { - affected_bits = 07777; - ops_to_mask = masked_ops; - } - - while (*mode_string == '=' || *mode_string == '+' || *mode_string == '-') - { - /* Add the element to the tail of the list, so the operations - are performed in the correct order. */ - if (head == NULL) - { - head = g_new(struct mode_change, 1); - change = head; - } - else - { - change->next = g_new(struct mode_change, 1); - change = change->next; - } - - change->next = NULL; - change->op = *mode_string; /* One of "=+-". */ - affected_masked = affected_bits; - if (ops_to_mask & (*mode_string == '=' ? MODE_MASK_EQUALS - : *mode_string == '+' ? MODE_MASK_PLUS - : MODE_MASK_MINUS)) - affected_masked &= ~umask_value; - change->affected = affected_masked; - change->value = 0; - change->flags = 0; - - /* Set `value' according to the bits set in `affected_masked'. */ - for (++mode_string;; ++mode_string) - switch (*mode_string) - { - case 'r': - change->value |= 00444 & affected_masked; - break; - case 'w': - change->value |= 00222 & affected_masked; - break; - case 'X': - change->flags |= MODE_X_IF_ANY_X; - /* Fall through. */ - case 'x': - change->value |= 00111 & affected_masked; - break; - case 's': - /* Set the setuid/gid bits if `u' or `g' is selected. */ - change->value |= 06000 & affected_masked; - break; - case 't': - /* Set the "save text image" bit if `o' is selected. */ - change->value |= 01000 & affected_masked; - break; - case 'u': - /* Set the affected bits to the value of the `u' bits - on the same file. */ - if (change->value) - goto invalid; - change->value = 00700; - change->flags |= MODE_COPY_EXISTING; - break; - case 'g': - /* Set the affected bits to the value of the `g' bits - on the same file. */ - if (change->value) - goto invalid; - change->value = 00070; - change->flags |= MODE_COPY_EXISTING; - break; - case 'o': - /* Set the affected bits to the value of the `o' bits - on the same file. */ - if (change->value) - goto invalid; - change->value = 00007; - change->flags |= MODE_COPY_EXISTING; - break; - default: - goto no_more_values; - } - no_more_values:; - } - } while (*mode_string == ','); - if (*mode_string == 0) - return head; -invalid: - mode_free (head); - return NULL; -} - -/* Return file mode OLDMODE, adjusted as indicated by the list of change - operations CHANGES. If OLDMODE is a directory, the type `X' - change affects it even if no execute bits were set in OLDMODE. - The returned value has the S_IFMT bits cleared. */ - -unsigned short -mode_adjust (unsigned int oldmode, const struct mode_change *changes) -{ - unsigned short newmode; /* The adjusted mode and one operand. */ - unsigned short value; /* The other operand. */ - - newmode = oldmode & 07777; - - for (; changes; changes = changes->next) - { - if (changes->flags & MODE_COPY_EXISTING) - { - /* Isolate in `value' the bits in `newmode' to copy, given in - the mask `changes->value'. */ - value = newmode & changes->value; - - if (changes->value & 00700) - /* Copy `u' permissions onto `g' and `o'. */ - value |= (value >> 3) | (value >> 6); - else if (changes->value & 00070) - /* Copy `g' permissions onto `u' and `o'. */ - value |= (value << 3) | (value >> 3); - else - /* Copy `o' permissions onto `u' and `g'. */ - value |= (value << 3) | (value << 6); - - /* In order to change only `u', `g', or `o' permissions, - or some combination thereof, clear unselected bits. - This can not be done in mode_compile because the value - to which the `changes->affected' mask is applied depends - on the old mode of each file. */ - value &= changes->affected; - } - else - { - value = changes->value; - /* If `X', do not affect the execute bits if the file is not a - directory and no execute bits are already set. */ - if ((changes->flags & MODE_X_IF_ANY_X) - && !S_ISDIR (oldmode) - && (newmode & 00111) == 0) - value &= ~00111; /* Clear the execute bits. */ - } - - switch (changes->op) - { - case '=': - /* Preserve the previous values in `newmode' of bits that are - not affected by this change operation. */ - newmode = (newmode & ~changes->affected) | value; - break; - case '+': - newmode |= value; - break; - case '-': - newmode &= ~value; - break; - } - } - return newmode; -} - -/* Free the memory used by the list of file mode change operations - CHANGES. */ - -void -mode_free (register struct mode_change *changes) -{ - register struct mode_change *next; - - while (changes) - { - next = changes->next; - g_free (changes); - changes = next; - } -} diff --git a/ROX-Filer/src/modechange.h b/ROX-Filer/src/modechange.h deleted file mode 100644 index a8e96717..00000000 --- a/ROX-Filer/src/modechange.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - * - * This rest of this file was taken from GNU FileUtils, with minor - * modifications. - */ - -/* Masks for the `flags' field in a `struct mode_change'. */ - -#if ! defined MODECHANGE_H_ -# define MODECHANGE_H_ - -/* Affect the execute bits only if at least one execute bit is set already, - or if the file is a directory. */ -# define MODE_X_IF_ANY_X 01 - -/* If set, copy some existing permissions for u, g, or o onto the other two. - Which of u, g, or o is copied is determined by which bits are set in the - `value' field. */ -# define MODE_COPY_EXISTING 02 - -struct mode_change -{ - char op; /* One of "=+-". */ - char flags; /* Special operations. */ - unsigned short affected; /* Set for u/g/o/s/s/t, if to be affected. */ - unsigned short value; /* Bits to add/remove. */ - struct mode_change *next; /* Link to next change in list. */ -}; - -/* Masks for mode_compile argument. */ -# define MODE_MASK_EQUALS 1 -# define MODE_MASK_PLUS 2 -# define MODE_MASK_MINUS 4 -# define MODE_MASK_ALL (MODE_MASK_EQUALS | MODE_MASK_PLUS | MODE_MASK_MINUS) - -struct mode_change *mode_compile(const char *, unsigned); -unsigned short mode_adjust(unsigned, const struct mode_change *); -void mode_free(struct mode_change *); - -#endif diff --git a/ROX-Filer/src/mount.c b/ROX-Filer/src/mount.c deleted file mode 100644 index 9bb9bce8..00000000 --- a/ROX-Filer/src/mount.c +++ /dev/null @@ -1,401 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* mount.c - code for handling mount points */ - -#include "config.h" -#include -#include -#include -#ifdef HAVE_FCNTL_H -#include -#endif -#ifdef HAVE_MNTENT_H - /* Linux, etc */ -# include -#elif HAVE_SYS_UCRED_H - /* NetBSD, OSF1, etc */ -# include -# include -# include -# include -# include -# include -#elif HAVE_SYS_MNTENT_H - /* SunOS */ -# include -# include -#endif -#include -#ifdef HAVE_SYS_VFS_H -#include -#endif -#ifdef HAVE_SYS_STATVFS_H -#include -#endif - -#include - -#include "global.h" - -#include "mount.h" -#include "support.h" - -/* Map mount points to mntent structures */ -GHashTable *fstab_mounts = NULL; -time_t fstab_time; - -/* Keys are mount points that the user mounted. Values are ignored. */ -static GHashTable *user_mounts = NULL; - -#ifdef HAVE_SYS_MNTENT_H -#define THE_FSTAB VFSTAB -#else -#define THE_FSTAB "/etc/fstab" -#endif - -/* Static prototypes */ -#ifdef DO_MOUNT_POINTS -static void read_table(void); -static void clear_table(void); -static time_t read_time(char *path); -static gboolean free_mp(gpointer key, gpointer value, gpointer data); -#endif - - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void mount_init(void) -{ - fstab_mounts = g_hash_table_new(g_str_hash, g_str_equal); - user_mounts = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, NULL); - -#ifdef DO_MOUNT_POINTS - if(file_exists(THE_FSTAB)) - { - fstab_time = read_time(THE_FSTAB); - - } else { - fstab_time = 0; - -#if defined(HAVE_MNTENT_H) || defined(HAVE_SYS_MNTENT_H) - /* We need THE_FSTAB for these implementations, but - * it is missing */ - g_warning(_("File system table \"%s\" not found, cannot monitor system mounts"), THE_FSTAB); -#endif - } - read_table(); -#endif -} - -/* If force is true then ignore the timestamps */ -void mount_update(gboolean force) -{ -#ifdef DO_MOUNT_POINTS - time_t time; - - time = read_time(THE_FSTAB); - if (force || time != fstab_time) - { - fstab_time = time; - read_table(); - } -#endif /* DO_MOUNT_POINTS */ -} - -/* The user has just finished mounting/unmounting this path. - * Update the list of user-mounted filesystems. - */ -void mount_user_mount(const char *path) -{ - if (mount_is_mounted(path, NULL, NULL)) - g_hash_table_insert(user_mounts, pathdup(path), "yes"); - else - g_hash_table_remove(user_mounts, path); -} - -/* TRUE iff this directory is a mount point. Uses python's method to - * check: - * The function checks whether path's parent, path/.., is on a different device - * than path, or whether path/.. and path point to the same i-node on the same - * device -- this should detect mount points for all Unix and POSIX variants. - * - * 'info' and 'parent' are both optional, saving one stat() each. - */ -gboolean mount_is_mounted(const guchar *path, struct stat *info, - struct stat *parent) -{ - struct stat info_path, info_parent; - - if (!info) - { - info = &info_path; - if (stat(path, &info_path)) - return FALSE; /* Doesn't exist => not mount point :-) */ - } - - if (!parent) - { - guchar *tmp; - parent = &info_parent; - tmp = g_strconcat(path, "/..", NULL); - if (stat(tmp, &info_parent)) - { - g_free(tmp); - return FALSE; - } - g_free(tmp); - } - - if (info->st_dev != parent->st_dev) - return TRUE; - - if (info->st_ino == parent->st_ino) - return TRUE; /* Same device and inode */ - - return FALSE; -} - -/* TRUE if this mount point was mounted by the user, and still is */ -gboolean mount_is_user_mounted(const gchar *path) -{ - gboolean retval; - gchar *real; - - real = pathdup(path); - - retval = g_hash_table_lookup(user_mounts, path) != NULL; - - if (retval) - { - /* Check the status is up-to-date */ - mount_user_mount(real); - retval = g_hash_table_lookup(user_mounts, path) != NULL; - } - - g_free(real); - - return retval; -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - - -#ifdef DO_MOUNT_POINTS - -static gboolean free_mp(gpointer key, gpointer value, gpointer data) -{ - MountPoint *mp = (MountPoint *) value; - - g_free(mp->name); - g_free(mp->dir); - g_free(mp); - - return TRUE; -} - -/* Remove all entries from mounts table, freeing them as we go */ -static void clear_table(void) -{ - g_hash_table_foreach_remove(fstab_mounts, free_mp, NULL); -} - -/* Return the mtime of a file - only used for the fstab file */ -static time_t read_time(char *path) -{ - struct stat info; - int err = 0; - - err = stat(path, &info); - - /* Don't print an error if the file is missing, just return the - * epoch (change if used for more than the fstab?) */ - if(err && errno==ENOENT) - return 0; - g_return_val_if_fail(err == 0, 0); - - return info.st_mtime; -} - -# ifdef HAVE_MNTENT_H -static void read_table(void) -{ - FILE *tab; - struct mntent *ent; - MountPoint *mp; -# ifdef HAVE_FCNTL_H - struct flock lb; -# endif - - clear_table(); - if(!file_exists(THE_FSTAB)) - return; - - tab = setmntent(THE_FSTAB, "r"); - g_return_if_fail(tab != NULL); - -# ifdef HAVE_FCNTL_H - lb.l_type = F_RDLCK; - lb.l_whence = 0; - lb.l_start = 0; - lb.l_len = 0; - fcntl(fileno(tab), F_SETLKW, &lb); -# endif - - while ((ent = getmntent(tab))) - { - if (strcmp(ent->mnt_dir, "swap") == 0) - continue; - - mp = g_malloc(sizeof(MountPoint)); - mp->name = g_strdup(ent->mnt_fsname); - mp->dir = g_strdup(ent->mnt_dir); - - g_hash_table_insert(fstab_mounts, mp->dir, mp); - } - - endmntent(tab); -} - -# elif HAVE_SYS_MNTENT_H -static void read_table(void) -{ - FILE *tab; - struct mnttab ent; - MountPoint *mp; -# ifdef HAVE_FCNTL_H - struct flock lb; -# endif - - clear_table(); - if(!file_exists(THE_FSTAB)) - return; - - tab = fopen(THE_FSTAB, "r"); - g_return_if_fail(tab != NULL); - -# ifdef HAVE_FCNTL_H - lb.l_type = F_RDLCK; - lb.l_whence = 0; - lb.l_start = 0; - lb.l_len = 0; - fcntl(fileno(tab), F_SETLKW, &lb); -# endif - - while (getmntent(tab, &ent)==0) - { - if (strcmp(ent.mnt_special, "swap") == 0) - continue; - - mp = g_malloc(sizeof(MountPoint)); - mp->dir = g_strdup(ent.mnt_mountp); - mp->name = g_strdup(ent.mnt_special); - - g_hash_table_insert(fstab_mounts, mp->dir, mp); - } - - fclose(tab); -} - -# elif HAVE_SYS_UCRED_H /* We don't have getmntent(), etc */ - -static void read_table(void) -{ - int tab; - struct fstab *ent; - MountPoint *mp; - - clear_table(); - - tab = setfsent(); - g_return_if_fail(tab != 0); - - while ((ent = getfsent())) - { - if (strcmp(ent->fs_vfstype, "swap") == 0) - continue; - if (strcmp(ent->fs_vfstype, "kernfs") == 0) - continue; - - mp = g_malloc(sizeof(MountPoint)); - mp->name = g_strdup(ent->fs_spec); /* block special device name */ - mp->dir = g_strdup(ent->fs_file); /* file system path prefix */ - - g_hash_table_insert(fstab_mounts, mp->dir, mp); - } - - endfsent(); -} - -# endif /* HAVE_MNTENT_H */ - -#endif /* DO_MOUNT_POINTS */ - -gchar *mount_get_fs_size(const gchar *dir) -{ - int ok=FALSE; - -#if defined(HAVE_STATVFS) - struct statvfs buf; -#elif defined(HAVE_STATFS) - struct statfs buf; -#endif - unsigned long long total, used, avail; - gdouble fused; - gchar *str; - gchar *tmp1, *tmp2; - -#if defined(HAVE_STATVFS) - ok=statvfs(dir, &buf)==0; -#elif defined(HAVE_STATFS) - ok=statfs(dir, &buf)==0; -#endif - if(!ok) - return NULL; - -#if defined(HAVE_STATVFS) - total=buf.f_frsize*(unsigned long long) buf.f_blocks; - used=buf.f_frsize*(unsigned long long) (buf.f_blocks-buf.f_bfree); - avail=buf.f_frsize*(unsigned long long) buf.f_bavail; -#elif defined(HAVE_STATFS) - total=buf.f_bsize*(unsigned long long) buf.f_blocks; - used=buf.f_bsize*(unsigned long long) (buf.f_blocks-buf.f_bfree); - avail=buf.f_bsize*(unsigned long long) buf.f_bavail; -#endif - if(total>0) - fused=100.*(total-used)/((gdouble) total); - else - fused=0.0; - - tmp1=g_strdup(format_size(total)); - tmp2=g_strdup(format_size(used)); - str=g_strdup_printf(_("%s total, %s used, %s free (%.1f %%)"), - tmp1, tmp2, format_size(avail), fused); - - g_free(tmp1); - g_free(tmp2); - - return str; -} - diff --git a/ROX-Filer/src/mount.h b/ROX-Filer/src/mount.h deleted file mode 100644 index c5b07f10..00000000 --- a/ROX-Filer/src/mount.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _MOUNT_H -#define _MOUNT_H - -# if defined(HAVE_MNTENT_H) || defined(HAVE_SYS_UCRED_H) || \ - defined(HAVE_SYS_MNTENT_H) -# define DO_MOUNT_POINTS -# endif - -extern GHashTable *fstab_mounts; - -typedef struct _MountPoint MountPoint; - -struct _MountPoint -{ - char *name; /* eg: /dev/hda4 */ - char *dir; /* eg: /home */ -}; - -/* Prototypes */ -void mount_init(void); -void mount_update(gboolean force); -void mount_user_mount(const char *path); -gboolean mount_is_user_mounted(const gchar *path); -gboolean mount_is_mounted(const guchar *path, struct stat *info, - struct stat *parent); -gchar *mount_get_fs_size(const gchar *dir); - -#endif /* _MOUNT_H */ diff --git a/ROX-Filer/src/my_vfs.h b/ROX-Filer/src/my_vfs.h deleted file mode 100644 index 1ae372ec..00000000 --- a/ROX-Filer/src/my_vfs.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _MY_VFS_H -#define _MY_VFS_H - -#ifdef HAVE_LIBVFS - -/* We have the VFS library. Include the header file if possible, or define - * stuff ourselves if not. - */ - -# define VFS_STANDALONE 1 -# ifdef HAVE_VFS_H -# include "vfs.h" -# else -# include -# include -# include -# include -void mc_vfs_init(void); -DIR *mc_opendir (char *dirname); -struct dirent *mc_readdir(DIR *dirp); -int mc_closedir (DIR *dir); -int mc_telldir (DIR *dir); -void mc_seekdir (DIR *dir, int offset); - -int mc_open (const char *filename, int flags, ...); -int mc_close (int handle); -int mc_read (int handle, char *buffer, int count); -int mc_write (int hanlde, char *buffer, int count); - -int mc_stat (char *path, struct stat *buf); -int mc_lstat (char *path, struct stat *buf); -int mc_fstat (int fd, struct stat *buf); -# endif - -#else /* HAVE_LIBVFS */ - -/* We don't have VFS installed. Just use the normal functions instead. */ - -/* Include these here so that we don't get code that compiles with - * VFS but not without. - */ -# include -# include -# include -# include - -# define mc_open open -# define mc_close close -# define mc_read read -# define mc_write write - -# define mc_stat(x, y) stat(x, y) -# define mc_lstat(x, y) lstat(x, y) -# define mc_fstat(x, y) fstat(x, y) -# define mc_opendir(x) opendir(x) -# define mc_closedir(x) closedir(x) -# define mc_readdir(x) readdir(x) -# define mc_seekdir(x, o) seekdir(x, o) -# define mc_telldir(x) telldir(x) - -#endif - -#endif /* _MY_VFS_H */ diff --git a/ROX-Filer/src/options.c b/ROX-Filer/src/options.c deleted file mode 100644 index ab9eac02..00000000 --- a/ROX-Filer/src/options.c +++ /dev/null @@ -1,1809 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* options.c - code for handling user choices */ - -/* How it works: - * - * On startup: - * - * - The /PROJECT/Options file is read in, which contains a list of - * name/value pairs, and these are stored in the 'loading' hash table. - * - * - Each part of the filer then calls option_add_int(), or a related function, - * supplying the name for each option and a default value. Once an option is - * registered, it is removed from the loading table. - * - * - If things need to happen when values change, modules register with - * option_add_notify(). - * - * - option_register_widget() can be used during initialisation (any time - * before the Options box is displayed) to tell the system how to render a - * particular type of option. - * - * - Finally, all notify callbacks are called. Use the Option->has_changed - * field to work out what has changed from the defaults. - * - * When the user opens the Options box: - * - * - The Options.xml file is read and used to create the Options dialog box. - * Each element in the file has a key corresponding to an option named - * above. - * - * - For each widget in the box, the current value of the option is used to - * set the widget's state. - * - * - All current values are saved for a possible Revert later. - * - * When the user changes an option or clicks on Revert: - * - * - The option values are updated. - * - * - All notify callbacks are called. Use the Option->has_changed field - * to see what changed. - * - * When OK is clicked: - * - * - If anything changed then: - * - All the options are written to the filesystem - * - The saver_callbacks are called. - */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "global.h" - -#include "choices.h" -#include "options.h" -#include "main.h" -#include "gui_support.h" -#include "support.h" - -/* Add all option tooltips to this group */ -static GtkTooltips *option_tooltips = NULL; -#define OPTION_TIP(widget, tip) \ - gtk_tooltips_set_tip(option_tooltips, widget, tip, NULL) - -/* The Options window. NULL if not yet created. */ -static GtkWidget *window = NULL; - -/* "filer_unique" -> (Option *) */ -static GHashTable *option_hash = NULL; - -/* A mapping (name -> value) for options which have been loaded by not - * yet registered. The options in this table cannot be used until - * option_add_*() is called to move them into option_hash. - */ -static GHashTable *loading = NULL; - -/* A mapping (XML name -> OptionBuildFn). When reading the Options.xml - * file, this table gives the function used to create the widgets. - */ -static GHashTable *widget_builder = NULL; - -/* A mapping (name -> GtkSizeGroup) of size groups used by the widgets - * in the options box. This hash table is created/destroyed every time - * the box is opened/destroyed. - */ -static GHashTable *size_groups = NULL; - -/* List of functions to call after all option values are updated */ -static GList *notify_callbacks = NULL; - -/* List of functions to call after all options are saved */ -static GList *saver_callbacks = NULL; - -static int updating_widgets = 0; /* Ignore change signals when set */ - -static GtkWidget *revert_widget = NULL; - -/* Static prototypes */ -static void save_options(void); -static void revert_options(GtkWidget *widget, gpointer data); -static void build_options_window(void); -static GtkWidget *build_window_frame(GtkTreeView **tree_view); -static void update_option_widgets(void); -static void button_patch_set_colour(GtkWidget *button, GdkColor *color); -static void option_add(Option *option, const gchar *key); -static void set_not_changed(gpointer key, gpointer value, gpointer data); -static void load_options(xmlDoc *doc); -static gboolean check_anything_changed(void); -static int get_int(xmlNode *node, guchar *attr); -static void may_add_tip(GtkWidget *widget, xmlNode *element); -static void add_to_size_group(xmlNode *node, GtkWidget *widget); - -static const char *process_option_line(gchar *line); - -static GList *build_label(Option *option, xmlNode *node, guchar *label); -static GList *build_spacer(Option *option, xmlNode *node, guchar *label); -static GList *build_frame(Option *option, xmlNode *node, guchar *label); - -static GList *build_toggle(Option *option, xmlNode *node, guchar *label); -static GList *build_slider(Option *option, xmlNode *node, guchar *label); -static GList *build_entry(Option *option, xmlNode *node, guchar *label); -static GList *build_radio_group(Option *option, xmlNode *node, guchar *label); -static GList *build_colour(Option *option, xmlNode *node, guchar *label); -static GList *build_menu(Option *option, xmlNode *node, guchar *label); -static GList *build_font(Option *option, xmlNode *node, guchar *label); -static GList *build_numentry(Option *option, xmlNode *node, guchar *label); -static void update_numentry(Option *option); -static guchar *read_numentry(Option *option); - -static gboolean updating_file_format = FALSE; - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void options_init(void) -{ - char *path; - xmlDoc *doc; - - loading = g_hash_table_new(g_str_hash, g_str_equal); - option_hash = g_hash_table_new(g_str_hash, g_str_equal); - widget_builder = g_hash_table_new(g_str_hash, g_str_equal); - - path = choices_find_xdg_path_load("Options", PROJECT, SITE); - if (path) - { - /* Load in all the options set in the filer, storing them - * temporarily in the loading hash table. - * They get moved to option_hash when they're registered. - */ - doc = xmlParseFile(path); - if (doc) - { - load_options(doc); - xmlFreeDoc(doc); - } - else - { - parse_file(path, process_option_line); - updating_file_format = TRUE; - } - - g_free(path); - } - - option_register_widget("label", build_label); - option_register_widget("spacer", build_spacer); - option_register_widget("frame", build_frame); - - option_register_widget("toggle", build_toggle); - option_register_widget("slider", build_slider); - option_register_widget("entry", build_entry); - option_register_widget("numentry", build_numentry); - option_register_widget("radio-group", build_radio_group); - option_register_widget("colour", build_colour); - option_register_widget("menu", build_menu); - option_register_widget("font", build_font); -} - -/* When parsing the XML file, process an element named 'name' by - * calling 'builder(option, xml_node, label)'. - * builder returns the new widgets to add to the options box. - * 'name' should be a static string. Call 'option_check_widget' when - * the widget's value is modified. - * - * Functions to set or get the widget's state can be stored in 'option'. - * If the option doesn't have a name attribute in Options.xml then - * ui will be NULL on entry (this is used for buttons). - */ -void option_register_widget(char *name, OptionBuildFn builder) -{ - g_hash_table_insert(widget_builder, name, builder); -} - -/* This is called when the widget's value is modified by the user. - * Reads the new value of the widget into the option and calls - * the notify callbacks. - */ -void option_check_widget(Option *option) -{ - guchar *new = NULL; - - if (updating_widgets) - return; /* Not caused by the user... */ - - g_return_if_fail(option->read_widget != NULL); - - new = option->read_widget(option); - - g_return_if_fail(new != NULL); - - g_hash_table_foreach(option_hash, set_not_changed, NULL); - - option->has_changed = strcmp(option->value, new) != 0; - - if (!option->has_changed) - { - g_free(new); - return; - } - - g_free(option->value); - option->value = new; - option->int_value = atoi(new); - - options_notify(); -} - -/* Call all the notify callbacks. This should happen after any options - * have their values changed. - * Set each option->has_changed flag before calling this function. - */ -void options_notify(void) -{ - GList *next; - - for (next = notify_callbacks; next; next = next->next) - { - OptionNotify *cb = (OptionNotify *) next->data; - - cb(); - } - - if (updating_file_format) - { - updating_file_format = FALSE; - save_options(); - info_message(_("ROX-Filer has converted your Options file " - "to the new XML format")); - } - - if (revert_widget) - gtk_widget_set_sensitive(revert_widget, - check_anything_changed()); -} - -/* Store values used by Revert */ -static void store_backup(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - - g_free(option->backup); - option->backup = g_strdup(option->value); -} - -/* Allow the user to edit the options. Returns the window widget (you don't - * normally need this). NULL if already open. - */ -GtkWidget *options_show(void) -{ - if (!option_tooltips) - option_tooltips = gtk_tooltips_new(); - - /* For debugging - if (g_hash_table_size(loading) != 0) - { - g_print(PROJECT ": Some options loaded but not used:\n"); - g_hash_table_foreach(loading, (GHFunc) puts, NULL); - } - */ - - if (window) - { - gtk_window_present(GTK_WINDOW(window)); - return NULL; - } - - g_hash_table_foreach(option_hash, store_backup, NULL); - - build_options_window(); - - update_option_widgets(); - - gtk_widget_show_all(window); - - return window; -} - -/* Initialise and register a new integer option */ -void option_add_int(Option *option, const gchar *key, int value) -{ - option->value = g_strdup_printf("%d", value); - option->int_value = value; - option_add(option, key); -} - -void option_add_string(Option *option, const gchar *key, const gchar *value) -{ - option->value = g_strdup(value); - option->int_value = atoi(value); - option_add(option, key); -} - -/* Add a callback which will be called after any options have changed their - * values. If several options change at once, this is called after all - * changes. - */ -void option_add_notify(OptionNotify *callback) -{ - g_return_if_fail(callback != NULL); - - notify_callbacks = g_list_append(notify_callbacks, callback); -} - -/* Call 'callback' after all the options have been saved */ -void option_add_saver(OptionNotify *callback) -{ - g_return_if_fail(callback != NULL); - - saver_callbacks = g_list_append(saver_callbacks, callback); -} - -/* Base class for building numentry widgets with particular ranges */ -GList *build_numentry_base(Option *option, xmlNode *node, - guchar *label, GtkAdjustment *adj) -{ - GtkWidget *hbox; - GtkWidget *spin; - GtkWidget *label_wid; - guchar *unit; - int width; - - width = get_int(node, "width"); - unit = xmlGetProp(node, "unit"); - - hbox = gtk_hbox_new(FALSE, 4); - - if (label) - { - label_wid = gtk_label_new(_(label)); - gtk_misc_set_alignment(GTK_MISC(label_wid), 1.0, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), label_wid, FALSE, TRUE, 0); - add_to_size_group(node, label_wid); - } - - spin = gtk_spin_button_new(adj, adj->step_increment, 0); - gtk_entry_set_width_chars(GTK_ENTRY(spin), - width > 1 ? width + 1 : 2); - gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, TRUE, 0); - may_add_tip(spin, node); - - if (unit) - { - gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(_(unit)), - FALSE, TRUE, 0); - g_free(unit); - } - - option->update_widget = update_numentry; - option->read_widget = read_numentry; - option->widget = spin; - - g_signal_connect_swapped(spin, "value-changed", - G_CALLBACK(option_check_widget), option); - - return g_list_append(NULL, hbox); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Option should contain the default value. - * It must never be destroyed after being registered (Options are typically - * statically allocated). - * The key corresponds to the option's name in Options.xml, and to the key - * in the saved options file. - * - * On exit, the value will have been updated to the loaded value, if - * different to the default. - */ -static void option_add(Option *option, const gchar *key) -{ - gpointer okey, value; - - g_return_if_fail(option_hash != NULL); - g_return_if_fail(g_hash_table_lookup(option_hash, key) == NULL); - g_return_if_fail(option->value != NULL); - - option->has_changed = FALSE; - - option->widget = NULL; - option->update_widget = NULL; - option->read_widget = NULL; - option->backup = NULL; - - g_hash_table_insert(option_hash, (gchar *) key, option); - - /* Use the value loaded from the file, if any */ - if (g_hash_table_lookup_extended(loading, key, &okey, &value)) - { - option->has_changed = strcmp(option->value, value) != 0; - - g_free(option->value); - option->value = value; - option->int_value = atoi(value); - g_hash_table_remove(loading, key); - g_free(okey); - } -} - -static GtkColorSelectionDialog *current_csel_box = NULL; -static GtkFontSelectionDialog *current_fontsel_box = NULL; - -static void get_new_colour(GtkWidget *ok, Option *option) -{ - GtkWidget *csel; - GdkColor c; - - g_return_if_fail(current_csel_box != NULL); - - csel = current_csel_box->colorsel; - - gtk_color_selection_get_current_color(GTK_COLOR_SELECTION(csel), &c); - - button_patch_set_colour(option->widget, &c); - - gtk_widget_destroy(GTK_WIDGET(current_csel_box)); - - option_check_widget(option); -} - -static void open_coloursel(GtkWidget *button, Option *option) -{ - GtkColorSelectionDialog *csel; - GtkWidget *dialog, *patch; - - if (current_csel_box) - gtk_widget_destroy(GTK_WIDGET(current_csel_box)); - - dialog = gtk_color_selection_dialog_new(NULL); - csel = GTK_COLOR_SELECTION_DIALOG(dialog); - current_csel_box = csel; - gtk_window_set_position(GTK_WINDOW(csel), GTK_WIN_POS_MOUSE); - - g_signal_connect(dialog, "destroy", - G_CALLBACK(gtk_widget_destroyed), ¤t_csel_box); - gtk_widget_hide(csel->help_button); - g_signal_connect_swapped(csel->cancel_button, "clicked", - G_CALLBACK(gtk_widget_destroy), dialog); - g_signal_connect(csel->ok_button, "clicked", - G_CALLBACK(get_new_colour), option); - - patch = GTK_BIN(button)->child; - - gtk_color_selection_set_current_color( - GTK_COLOR_SELECTION(csel->colorsel), - &patch->style->bg[GTK_STATE_NORMAL]); - - gtk_widget_show(dialog); -} - -static void font_chosen(GtkWidget *dialog, gint response, Option *option) -{ - gchar *font; - - if (response != GTK_RESPONSE_OK) - goto out; - - font = gtk_font_selection_dialog_get_font_name( - GTK_FONT_SELECTION_DIALOG(dialog)); - - gtk_label_set_text(GTK_LABEL(option->widget), font); - - g_free(font); - - option_check_widget(option); - -out: - gtk_widget_destroy(dialog); - -} - -static void toggle_active_font(GtkToggleButton *toggle, Option *option) -{ - if (current_fontsel_box) - gtk_widget_destroy(GTK_WIDGET(current_fontsel_box)); - - if (gtk_toggle_button_get_active(toggle)) - { - gtk_widget_set_sensitive(option->widget->parent, TRUE); - gtk_label_set_text(GTK_LABEL(option->widget), "Sans 12"); - } - else - { - gtk_widget_set_sensitive(option->widget->parent, FALSE); - gtk_label_set_text(GTK_LABEL(option->widget), - _("(use default)")); - } - - option_check_widget(option); -} - -static void open_fontsel(GtkWidget *button, Option *option) -{ - if (current_fontsel_box) - gtk_widget_destroy(GTK_WIDGET(current_fontsel_box)); - - current_fontsel_box = GTK_FONT_SELECTION_DIALOG( - gtk_font_selection_dialog_new(PROJECT)); - - gtk_window_set_position(GTK_WINDOW(current_fontsel_box), - GTK_WIN_POS_MOUSE); - - g_signal_connect(current_fontsel_box, "destroy", - G_CALLBACK(gtk_widget_destroyed), ¤t_fontsel_box); - - gtk_font_selection_dialog_set_font_name(current_fontsel_box, - option->value); - - g_signal_connect(current_fontsel_box, "response", - G_CALLBACK(font_chosen), option); - - gtk_widget_show(GTK_WIDGET(current_fontsel_box)); -} - -/* These are used during parsing... */ -static xmlDocPtr options_doc = NULL; - -#define DATA(node) (xmlNodeListGetString(options_doc, node->xmlChildrenNode, 1)) - -static void may_add_tip(GtkWidget *widget, xmlNode *element) -{ - guchar *data, *tip; - - data = DATA(element); - if (!data) - return; - - tip = g_strstrip(g_strdup(data)); - g_free(data); - if (*tip) - OPTION_TIP(widget, _(tip)); - g_free(tip); -} - -/* Returns zero if attribute is not present */ -static int get_int(xmlNode *node, guchar *attr) -{ - guchar *txt; - int retval; - - txt = xmlGetProp(node, attr); - if (!txt) - return 0; - - retval = atoi(txt); - g_free(txt); - - return retval; -} - -/* Adds 'widget' to the GtkSizeGroup selected by 'index'. This function - * does nothing if 'node' has no "sizegroup" attribute. - * The value of "sizegroup" is either a key. All widgets with the same - * key request the same size. - * Size groups are created on the fly and get destroyed when the options - * box is closed. - */ -static void add_to_size_group(xmlNode *node, GtkWidget *widget) -{ - GtkSizeGroup *sg; - guchar *name; - - g_return_if_fail(node != NULL); - g_return_if_fail(widget != NULL); - - name = xmlGetProp(node, "sizegroup"); - if (!name) - return; - - if (size_groups == NULL) - size_groups = g_hash_table_new_full(g_str_hash, g_str_equal, - g_free, NULL); - - sg = (GtkSizeGroup *) g_hash_table_lookup(size_groups, name); - if (sg == NULL) - { - - sg = (GtkSizeGroup *) gtk_size_group_new( - GTK_SIZE_GROUP_HORIZONTAL); - g_hash_table_insert(size_groups, name, sg); - gtk_size_group_add_widget(sg, widget); - g_object_unref(G_OBJECT(sg)); - } - else - { - gtk_size_group_add_widget(sg, widget); - g_free(name); - } -} - -static GtkWidget *build_radio(xmlNode *radio, GtkWidget *prev) -{ - GtkWidget *button; - GtkRadioButton *prev_button = (GtkRadioButton *) prev; - guchar *label; - - label = xmlGetProp(radio, "label"); - - button = gtk_radio_button_new_with_label( - prev_button ? gtk_radio_button_get_group(prev_button) - : NULL, - _(label)); - g_free(label); - - may_add_tip(button, radio); - - g_object_set_data(G_OBJECT(button), "value", - xmlGetProp(radio, "value")); - - return button; -} - -static void build_menu_item(xmlNode *node, GtkWidget *menu) -{ - GtkWidget *item; - guchar *label; - - g_return_if_fail(strcmp(node->name, "item") == 0); - - label = xmlGetProp(node, "label"); - item = gtk_menu_item_new_with_label(_(label)); - g_free(label); - - gtk_widget_show(item); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - - g_object_set_data(G_OBJECT(item), "value", xmlGetProp(node, "value")); -} - -static void build_widget(xmlNode *widget, GtkWidget *box) -{ - const char *name = widget->name; - OptionBuildFn builder; - guchar *oname; - Option *option; - guchar *label; - - label = xmlGetProp(widget, "label"); - - if (strcmp(name, "hbox") == 0 || strcmp(name, "vbox") == 0) - { - GtkWidget *nbox; - xmlNode *hw; - - if (name[0] == 'h') - nbox = gtk_hbox_new(FALSE, 4); - else - nbox = gtk_vbox_new(FALSE, 0); - - if (label) - gtk_box_pack_start(GTK_BOX(nbox), - gtk_label_new(_(label)), FALSE, TRUE, 4); - gtk_box_pack_start(GTK_BOX(box), nbox, FALSE, TRUE, 0); - - for (hw = widget->xmlChildrenNode; hw; hw = hw->next) - { - if (hw->type == XML_ELEMENT_NODE) - build_widget(hw, nbox); - } - - g_free(label); - return; - } - - oname = xmlGetProp(widget, "name"); - - if (oname) - { - option = g_hash_table_lookup(option_hash, oname); - - if (!option) - { - g_warning("No Option for '%s'!\n", oname); - g_free(oname); - return; - } - - g_free(oname); - } - else - option = NULL; - - builder = g_hash_table_lookup(widget_builder, name); - if (builder) - { - GList *widgets, *next; - - if (option && option->widget) - g_warning("Widget for option already exists!"); - - widgets = builder(option, widget, label); - - for (next = widgets; next; next = next->next) - { - GtkWidget *w = (GtkWidget *) next->data; - gtk_box_pack_start(GTK_BOX(box), w, FALSE, TRUE, 0); - } - g_list_free(widgets); - } - else - g_warning("Unknown option type '%s'\n", name); - - g_free(label); -} - -static void build_section(xmlNode *section, GtkWidget *notebook, - GtkTreeStore *tree_store, GtkTreeIter *parent) -{ - guchar *title = NULL; - GtkWidget *page; - GtkTreeIter iter; - xmlNode *widget; - - title = xmlGetProp(section, "title"); - page = gtk_vbox_new(FALSE, 4); - gtk_container_set_border_width(GTK_CONTAINER(page), 4); - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), page, NULL); - - gtk_tree_store_append(tree_store, &iter, parent); - gtk_tree_store_set(tree_store, &iter, 0, _(title), 1, page, -1); - g_free(title); - - widget = section->xmlChildrenNode; - for (; widget; widget = widget->next) - { - if (widget->type == XML_ELEMENT_NODE) - { - if (strcmp(widget->name, "section") == 0) - build_section(widget, notebook, - tree_store, &iter); - else - build_widget(widget, page); - } - } -} - -/* Parse /Options.xml to create the options window. - * Sets the global 'window' variable. - */ -static void build_options_window(void) -{ - GtkTreeView *tree; - GtkTreeStore *store; - GtkWidget *notebook; - xmlDocPtr options_doc; - xmlNode *options, *section; - gchar *path; - - notebook = build_window_frame(&tree); - - path = g_strconcat(app_dir, "/Options.xml", NULL); - options_doc = xmlParseFile(path); - - if (!options_doc) - { - report_error(_("Internal error: %s unreadable"), path); - g_free(path); - return; - } - - g_free(path); - - options = xmlDocGetRootElement(options_doc); - if (strcmp(options->name, "options") == 0) - { - GtkTreePath *treepath; - - store = (GtkTreeStore *) gtk_tree_view_get_model(tree); - section = options->xmlChildrenNode; - for (; section; section = section->next) - if (section->type == XML_ELEMENT_NODE) - build_section(section, notebook, store, NULL); - - gtk_tree_view_expand_all(tree); - treepath = gtk_tree_path_new_first(); - if (treepath) - { - gtk_tree_view_set_cursor(tree, treepath, NULL, FALSE); - gtk_tree_path_free(treepath); - } - } - - xmlFreeDoc(options_doc); - options_doc = NULL; -} - -static void null_widget(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - - option->widget = NULL; -} - -static void options_destroyed(GtkWidget *widget, gpointer data) -{ - if (current_csel_box) - gtk_widget_destroy(GTK_WIDGET(current_csel_box)); - if (current_fontsel_box) - gtk_widget_destroy(GTK_WIDGET(current_fontsel_box)); - - revert_widget = NULL; - - if (check_anything_changed()) - save_options(); - - if (widget == window) - { - window = NULL; - - g_hash_table_foreach(option_hash, null_widget, NULL); - - if (size_groups) - { - g_hash_table_destroy(size_groups); - size_groups = NULL; - - } - } -} - -/* The cursor has been changed in the tree view, so switch to the new - * page in the notebook. - */ -static void tree_cursor_changed(GtkTreeView *tv, gpointer data) -{ - GtkTreePath *path = NULL; - GtkNotebook *nbook = GTK_NOTEBOOK(data); - GtkTreeModel *model; - GtkWidget *page = NULL; - GtkTreeIter iter; - - gtk_tree_view_get_cursor(tv, &path, NULL); - if (!path) - return; - - model = gtk_tree_view_get_model(tv); - gtk_tree_model_get_iter(model, &iter, path); - gtk_tree_path_free(path); - gtk_tree_model_get(model, &iter, 1, &page, -1); - - if (page) - { - gtk_notebook_set_current_page(nbook, - gtk_notebook_page_num(nbook, page)); - g_object_unref(page); - } -} - -/* Creates the window and adds the various buttons to it. - * Returns the notebook to add sections to and sets the global - * 'window'. If 'tree_view' is non-NULL, it stores the address - * of the tree view widget there. - */ -static GtkWidget *build_window_frame(GtkTreeView **tree_view) -{ - GtkWidget *notebook; - GtkWidget *tl_vbox, *hbox, *frame, *tv; - GtkWidget *actions, *button; - GtkTreeStore *model; - char *string, *save_path; - - window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - - gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); - gtk_window_set_title(GTK_WINDOW(window), _("Options")); - g_signal_connect(window, "destroy", - G_CALLBACK(options_destroyed), NULL); - gtk_container_set_border_width(GTK_CONTAINER(window), 4); - - tl_vbox = gtk_vbox_new(FALSE, 4); - gtk_container_add(GTK_CONTAINER(window), tl_vbox); - - hbox = gtk_hbox_new(FALSE, 4); - gtk_box_pack_start(GTK_BOX(tl_vbox), hbox, TRUE, TRUE, 0); - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_end(GTK_BOX(hbox), frame, TRUE, TRUE, 0); - - notebook = gtk_notebook_new(); - gtk_notebook_set_show_tabs(GTK_NOTEBOOK(notebook), FALSE); - gtk_notebook_set_show_border(GTK_NOTEBOOK(notebook), FALSE); - gtk_container_add(GTK_CONTAINER(frame), notebook); - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN); - gtk_box_pack_start(GTK_BOX(hbox), frame, FALSE, TRUE, 0); - - /* tree view */ - model = gtk_tree_store_new(2, G_TYPE_STRING, GTK_TYPE_WIDGET); - tv = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model)); - g_object_unref(model); - gtk_tree_selection_set_mode( - gtk_tree_view_get_selection(GTK_TREE_VIEW(tv)), - GTK_SELECTION_BROWSE); - gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(tv), FALSE); - gtk_tree_view_insert_column_with_attributes(GTK_TREE_VIEW(tv), -1, - NULL, gtk_cell_renderer_text_new(), "text", 0, NULL); - gtk_container_add(GTK_CONTAINER(frame), tv); - g_signal_connect(tv, "cursor_changed", - G_CALLBACK(tree_cursor_changed), notebook); - - actions = gtk_hbutton_box_new(); - gtk_button_box_set_layout(GTK_BUTTON_BOX(actions), - GTK_BUTTONBOX_END); - gtk_box_set_spacing(GTK_BOX(actions), 10); - - gtk_box_pack_start(GTK_BOX(tl_vbox), actions, FALSE, TRUE, 0); - - revert_widget = button_new_mixed(GTK_STOCK_UNDO, _("_Revert")); - GTK_WIDGET_SET_FLAGS(revert_widget, GTK_CAN_DEFAULT); - gtk_box_pack_start(GTK_BOX(actions), revert_widget, FALSE, TRUE, 0); - g_signal_connect(revert_widget, "clicked", - G_CALLBACK(revert_options), NULL); - gtk_tooltips_set_tip(option_tooltips, revert_widget, - _("Restore all choices to how they were when the " - "Options box was opened."), NULL); - gtk_widget_set_sensitive(revert_widget, check_anything_changed()); - - button = gtk_button_new_from_stock(GTK_STOCK_OK); - GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); - gtk_box_pack_start(GTK_BOX(actions), button, FALSE, TRUE, 0); - g_signal_connect_swapped(button, "clicked", - G_CALLBACK(gtk_widget_destroy), window); - gtk_widget_grab_default(button); - gtk_widget_grab_focus(button); - - save_path = choices_find_xdg_path_save("...", PROJECT, SITE, FALSE); - if (save_path) - { - string = g_strdup_printf(_("Choices will be saved as:\n%s"), - save_path); - gtk_tooltips_set_tip(option_tooltips, button, string, NULL); - g_free(string); - g_free(save_path); - } - else - gtk_tooltips_set_tip(option_tooltips, button, - _("(saving disabled by CHOICESPATH)"), NULL); - - if (tree_view) - *tree_view = GTK_TREE_VIEW(tv); - - return notebook; -} - -/* Given the last radio button in the group, select whichever - * radio button matches the given value. - */ -static void radio_group_set_value(GtkRadioButton *last, guchar *value) -{ - GSList *next; - - for (next = gtk_radio_button_get_group(last); next; next = next->next) - { - GtkToggleButton *button = (GtkToggleButton *) next->data; - guchar *val; - - val = g_object_get_data(G_OBJECT(button), "value"); - g_return_if_fail(val != NULL); - - if (strcmp(val, value) == 0) - { - gtk_toggle_button_set_active(button, TRUE); - return; - } - } - - g_warning("Can't find radio button with value %s\n", value); -} - -/* Given the last radio button in the group, return a copy of the - * value for the selected radio item. - */ -static guchar *radio_group_get_value(GtkRadioButton *last) -{ - GSList *next; - - for (next = gtk_radio_button_get_group(last); next; next = next->next) - { - GtkToggleButton *button = (GtkToggleButton *) next->data; - - if (gtk_toggle_button_get_active(button)) - { - guchar *val; - - val = g_object_get_data(G_OBJECT(button), "value"); - g_return_val_if_fail(val != NULL, NULL); - - return g_strdup(val); - } - } - - return NULL; -} - -/* Select this item with this value */ -static void option_menu_set(GtkOptionMenu *om, guchar *value) -{ - GtkWidget *menu; - GList *list, *next; - int i = 0; - - menu = gtk_option_menu_get_menu(om); - list = gtk_container_get_children(GTK_CONTAINER(menu)); - - for (next = list; next; next = next->next) - { - GObject *item = (GObject *) next->data; - guchar *data; - - data = g_object_get_data(item, "value"); - g_return_if_fail(data != NULL); - - if (strcmp(data, value) == 0) - { - gtk_option_menu_set_history(om, i); - break; - } - - i++; - } - - g_list_free(list); -} - -/* Get the value (static) of the selected item */ -static guchar *option_menu_get(GtkOptionMenu *om) -{ - GtkWidget *menu, *item; - - menu = gtk_option_menu_get_menu(om); - item = gtk_menu_get_active(GTK_MENU(menu)); - - return g_object_get_data(G_OBJECT(item), "value"); -} - -static void restore_backup(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - - g_return_if_fail(option->backup != NULL); - - option->has_changed = strcmp(option->value, option->backup) != 0; - if (!option->has_changed) - return; - - g_free(option->value); - option->value = g_strdup(option->backup); - option->int_value = atoi(option->value); -} - -static void revert_options(GtkWidget *widget, gpointer data) -{ - g_hash_table_foreach(option_hash, restore_backup, NULL); - options_notify(); - update_option_widgets(); -} - -static void check_changed_cb(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - gboolean *changed = (gboolean *) data; - - g_return_if_fail(option->backup != NULL); - - if (*changed) - return; - - if (strcmp(option->value, option->backup) != 0) - *changed = TRUE; -} - -static gboolean check_anything_changed(void) -{ - gboolean retval = FALSE; - - g_hash_table_foreach(option_hash, check_changed_cb, &retval); - - return retval; -} - -static void write_option(gpointer key, gpointer value, gpointer data) -{ - xmlNodePtr doc = (xmlNodePtr) data; - Option *option = (Option *) value; - xmlNodePtr tree; - - tree = xmlNewTextChild(doc, NULL, "Option", option->value); - xmlSetProp(tree, "name", (gchar *) key); -} - -static void save_options(void) -{ - xmlDoc *doc; - GList *next; - guchar *save, *save_new; - - save = choices_find_xdg_path_save("Options", PROJECT, SITE, TRUE); - if (!save) - goto out; - - save_new = g_strconcat(save, ".new", NULL); - - doc = xmlNewDoc("1.0"); - xmlDocSetRootElement(doc, xmlNewDocNode(doc, NULL, "Options", NULL)); - - g_hash_table_foreach(option_hash, write_option, - xmlDocGetRootElement(doc)); - - if (save_xml_file(doc, save_new) || rename(save_new, save)) - report_error(_("Error saving %s: %s"), save, g_strerror(errno)); - - g_free(save_new); - g_free(save); - xmlFreeDoc(doc); - - for (next = saver_callbacks; next; next = next->next) - { - OptionNotify *cb = (OptionNotify *) next->data; - cb(); - } - -out: - if (window) - gtk_widget_destroy(window); -} - -/* Make the widget reflect the current value of the option */ -static void update_cb(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - - g_return_if_fail(option != NULL); - if (option->widget == NULL) - return; - - updating_widgets++; - - if (option->update_widget) - option->update_widget(option); - - updating_widgets--; -} - -/* Reflect the values in the Option structures by changing the widgets - * in the Options window. - */ -static void update_option_widgets(void) -{ - g_hash_table_foreach(option_hash, update_cb, NULL); -} - -/* Each of the following update the widget to make it show the current - * value of the option. - */ - -static void update_toggle(Option *option) -{ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(option->widget), - option->int_value); -} - -static void update_entry(Option *option) -{ - gtk_entry_set_text(GTK_ENTRY(option->widget), option->value); -} - -static void update_numentry(Option *option) -{ - gtk_spin_button_set_value(GTK_SPIN_BUTTON(option->widget), - option->int_value); -} - -static void update_radio_group(Option *option) -{ - radio_group_set_value(GTK_RADIO_BUTTON(option->widget), option->value); -} - -static void update_slider(Option *option) -{ - gtk_adjustment_set_value( - gtk_range_get_adjustment(GTK_RANGE(option->widget)), - option->int_value); -} - -static void update_menu(Option *option) -{ - option_menu_set(GTK_OPTION_MENU(option->widget), option->value); -} - -static void update_font(Option *option) -{ - GtkToggleButton *active; - gboolean have_font = option->value[0] != '\0'; - - active = g_object_get_data(G_OBJECT(option->widget), "rox_override"); - - if (active) - { - gtk_toggle_button_set_active(active, have_font); - gtk_widget_set_sensitive(option->widget->parent, have_font); - } - - gtk_label_set_text(GTK_LABEL(option->widget), - have_font ? option->value - : (guchar *) _("(use default)")); -} - -static void update_colour(Option *option) -{ - GdkColor colour; - - gdk_color_parse(option->value, &colour); - button_patch_set_colour(option->widget, &colour); -} - -/* Each of these read_* calls get the new (string) value of an option - * from the widget. - */ - -static guchar *read_toggle(Option *option) -{ - GtkToggleButton *toggle = GTK_TOGGLE_BUTTON(option->widget); - - return g_strdup_printf("%d", gtk_toggle_button_get_active(toggle)); -} - -static guchar *read_entry(Option *option) -{ - return gtk_editable_get_chars(GTK_EDITABLE(option->widget), 0, -1); -} - -static guchar *read_numentry(Option *option) -{ - return g_strdup_printf("%d", (int) - gtk_spin_button_get_value(GTK_SPIN_BUTTON(option->widget))); -} - -static guchar *read_slider(Option *option) -{ - return g_strdup_printf("%d", (int) - gtk_range_get_adjustment(GTK_RANGE(option->widget))->value); -} - -static guchar *read_radio_group(Option *option) -{ - return radio_group_get_value(GTK_RADIO_BUTTON(option->widget)); -} - -static guchar *read_menu(Option *option) -{ - return g_strdup(option_menu_get(GTK_OPTION_MENU(option->widget))); -} - -static guchar *read_font(Option *option) -{ - GtkToggleButton *active; - - active = g_object_get_data(G_OBJECT(option->widget), "rox_override"); - if (active && !gtk_toggle_button_get_active(active)) - return g_strdup(""); - - return g_strdup(gtk_label_get_text(GTK_LABEL(option->widget))); -} - -static guchar *read_colour(Option *option) -{ - GtkStyle *style = GTK_BIN(option->widget)->child->style; - - return g_strdup_printf("#%04x%04x%04x", - style->bg[GTK_STATE_NORMAL].red, - style->bg[GTK_STATE_NORMAL].green, - style->bg[GTK_STATE_NORMAL].blue); -} - -static void set_not_changed(gpointer key, gpointer value, gpointer data) -{ - Option *option = (Option *) value; - - option->has_changed = FALSE; -} - -/* Builders for decorations (no corresponding option) */ - -static GList *build_label(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *widget; - guchar *text; - int help; - - g_return_val_if_fail(option == NULL, NULL); - g_return_val_if_fail(label == NULL, NULL); - - text = DATA(node); - widget = gtk_label_new(_(text)); - g_free(text); - - help = get_int(node, "help"); - - gtk_misc_set_alignment(GTK_MISC(widget), 0, help ? 0.5 : 1); - gtk_label_set_justify(GTK_LABEL(widget), GTK_JUSTIFY_LEFT); - gtk_label_set_line_wrap(GTK_LABEL(widget), TRUE); - - if (help) - { - GtkWidget *hbox, *image, *align, *spacer; - - hbox = gtk_hbox_new(FALSE, 4); - image = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, - GTK_ICON_SIZE_BUTTON); - align = gtk_alignment_new(0, 0, 0, 0); - - gtk_container_add(GTK_CONTAINER(align), image); - gtk_box_pack_start(GTK_BOX(hbox), align, FALSE, TRUE, 0); - gtk_box_pack_start(GTK_BOX(hbox), widget, FALSE, TRUE, 0); - - spacer = gtk_event_box_new(); - gtk_widget_set_size_request(spacer, 6, 6); - - return g_list_append(g_list_append(NULL, hbox), spacer); - } - - return g_list_append(NULL, widget); -} - -static GList *build_spacer(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *eb; - - g_return_val_if_fail(option == NULL, NULL); - g_return_val_if_fail(label == NULL, NULL); - - eb = gtk_event_box_new(); - gtk_widget_set_size_request(eb, 12, 12); - - return g_list_append(NULL, eb); -} - -static GList *build_frame(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *nbox, *frame, *label_widget; - xmlNode *hw; - PangoAttrList *list; - PangoAttribute *attr; - - g_return_val_if_fail(option == NULL, NULL); - g_return_val_if_fail(label != NULL, NULL); - - frame = gtk_frame_new(_(label)); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); - - /* Make the title bold */ - label_widget = gtk_frame_get_label_widget(GTK_FRAME(frame)); - attr = pango_attr_weight_new(PANGO_WEIGHT_BOLD); - - attr->start_index = 0; - attr->end_index = -1; - list = pango_attr_list_new(); - pango_attr_list_insert(list, attr); - gtk_label_set_attributes(GTK_LABEL(label_widget), list); - - nbox = gtk_vbox_new(FALSE, 0); - gtk_container_set_border_width(GTK_CONTAINER(nbox), 12); - gtk_container_add(GTK_CONTAINER(frame), nbox); - - for (hw = node->xmlChildrenNode; hw; hw = hw->next) - if (hw->type == XML_ELEMENT_NODE) - build_widget(hw, nbox); - - return g_list_append(NULL, frame); -} - -/* These create new widgets in the options window and set the appropriate - * callbacks. - */ - -static GList *build_toggle(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *toggle; - - g_return_val_if_fail(option != NULL, NULL); - - toggle = gtk_check_button_new_with_label(_(label)); - - may_add_tip(toggle, node); - - option->update_widget = update_toggle; - option->read_widget = read_toggle; - option->widget = toggle; - - g_signal_connect_swapped(toggle, "toggled", - G_CALLBACK(option_check_widget), option); - - return g_list_append(NULL, toggle); -} - -static GList *build_slider(Option *option, xmlNode *node, guchar *label) -{ - GtkAdjustment *adj; - GtkWidget *hbox, *slide, *label_wid; - int min, max; - int fixed; - int showvalue; - guchar *end; - - g_return_val_if_fail(option != NULL, NULL); - - min = get_int(node, "min"); - max = get_int(node, "max"); - fixed = get_int(node, "fixed"); - showvalue = get_int(node, "showvalue"); - - adj = GTK_ADJUSTMENT(gtk_adjustment_new(0, - min, max, 1, 10, 0)); - - hbox = gtk_hbox_new(FALSE, 4); - - if (label) - { - label_wid = gtk_label_new(_(label)); - gtk_misc_set_alignment(GTK_MISC(label_wid), 0, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), label_wid, FALSE, TRUE, 0); - add_to_size_group(node, label_wid); - } - - end = xmlGetProp(node, "end"); - if (end) - { - gtk_box_pack_end(GTK_BOX(hbox), gtk_label_new(_(end)), - FALSE, TRUE, 0); - g_free(end); - } - - slide = gtk_hscale_new(adj); - - if (fixed) - gtk_widget_set_size_request(slide, adj->upper, 24); - if (showvalue) - { - gtk_scale_set_draw_value(GTK_SCALE(slide), TRUE); - gtk_scale_set_value_pos(GTK_SCALE(slide), - GTK_POS_LEFT); - gtk_scale_set_digits(GTK_SCALE(slide), 0); - } - else - gtk_scale_set_draw_value(GTK_SCALE(slide), FALSE); - GTK_WIDGET_UNSET_FLAGS(slide, GTK_CAN_FOCUS); - - may_add_tip(slide, node); - - gtk_box_pack_start(GTK_BOX(hbox), slide, !fixed, TRUE, 0); - - option->update_widget = update_slider; - option->read_widget = read_slider; - option->widget = slide; - - g_signal_connect_swapped(adj, "value-changed", - G_CALLBACK(option_check_widget), option); - - return g_list_append(NULL, hbox); -} - -static GList *build_entry(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *hbox; - GtkWidget *entry; - GtkWidget *label_wid; - - g_return_val_if_fail(option != NULL, NULL); - - hbox = gtk_hbox_new(FALSE, 4); - - if (label) - { - label_wid = gtk_label_new(_(label)); - gtk_misc_set_alignment(GTK_MISC(label_wid), 1.0, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), label_wid, FALSE, TRUE, 0); - } - - entry = gtk_entry_new(); - gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 0); - add_to_size_group(node, entry); - may_add_tip(entry, node); - - option->update_widget = update_entry; - option->read_widget = read_entry; - option->widget = entry; - - g_signal_connect_data(entry, "changed", - G_CALLBACK(option_check_widget), option, - NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED); - - return g_list_append(NULL, hbox); -} - -static GList *build_numentry(Option *option, xmlNode *node, guchar *label) -{ - GtkObject *adj; - int min, max, step; - - g_return_val_if_fail(option != NULL, NULL); - - min = get_int(node, "min"); - max = get_int(node, "max"); - step = MAX(1, get_int(node, "step")); - - adj = gtk_adjustment_new(min, min, max, step, step * 10, 0); - - return build_numentry_base(option, node, label, GTK_ADJUSTMENT(adj)); -} - -static GList *build_radio_group(Option *option, xmlNode *node, guchar *label) -{ - GList *list = NULL; - GtkWidget *button = NULL; - xmlNode *rn; - int cols; - - g_return_val_if_fail(option != NULL, NULL); - - for (rn = node->xmlChildrenNode; rn; rn = rn->next) - { - if (rn->type == XML_ELEMENT_NODE) - { - button = build_radio(rn, button); - g_signal_connect_swapped(button, "toggled", - G_CALLBACK(option_check_widget), option); - list = g_list_append(list, button); - } - } - - option->update_widget = update_radio_group; - option->read_widget = read_radio_group; - option->widget = button; - - cols = get_int(node, "columns"); - if (cols > 1) - { - GtkWidget *table; - GList *next; - int i, n; - int rows; - - n = g_list_length(list); - rows = (n + cols - 1) / cols; - - table = gtk_table_new(rows, cols, FALSE); - - i = 0; - for (next = list; next; next = next->next) - { - GtkWidget *button = GTK_WIDGET(next->data); - int left = i / rows; - int top = i % rows; - - gtk_table_attach_defaults(GTK_TABLE(table), button, - left, left + 1, top, top + 1); - - i++; - } - - g_list_free(list); - list = g_list_prepend(NULL, table); - } - - return list; -} - -static GList *build_colour(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *hbox, *da, *button, *label_wid; - - g_return_val_if_fail(option != NULL, NULL); - - hbox = gtk_hbox_new(FALSE, 4); - - if (label) - { - label_wid = gtk_label_new(_(label)); - gtk_misc_set_alignment(GTK_MISC(label_wid), 1.0, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), label_wid, TRUE, TRUE, 0); - } - - button = gtk_button_new(); - da = gtk_drawing_area_new(); - gtk_widget_set_size_request(da, 64, 12); - gtk_container_add(GTK_CONTAINER(button), da); - g_signal_connect(button, "clicked", G_CALLBACK(open_coloursel), option); - - may_add_tip(button, node); - - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - - option->update_widget = update_colour; - option->read_widget = read_colour; - option->widget = button; - - return g_list_append(NULL, hbox); -} - -static GList *build_menu(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *hbox, *om, *option_menu, *label_wid; - xmlNode *item; - - g_return_val_if_fail(option != NULL, NULL); - - hbox = gtk_hbox_new(FALSE, 4); - - label_wid = gtk_label_new(_(label)); - gtk_misc_set_alignment(GTK_MISC(label_wid), 1.0, 0.5); - gtk_box_pack_start(GTK_BOX(hbox), label_wid, TRUE, TRUE, 0); - - option_menu = gtk_option_menu_new(); - gtk_box_pack_start(GTK_BOX(hbox), option_menu, FALSE, TRUE, 0); - - om = gtk_menu_new(); - - for (item = node->xmlChildrenNode; item; item = item->next) - { - if (item->type == XML_ELEMENT_NODE) - build_menu_item(item, om); - } - - gtk_widget_show(om); - gtk_option_menu_set_menu(GTK_OPTION_MENU(option_menu), om); - add_to_size_group(node, option_menu); - - option->update_widget = update_menu; - option->read_widget = read_menu; - option->widget = option_menu; - - g_signal_connect_data(option_menu, "changed", - G_CALLBACK(option_check_widget), option, - NULL, G_CONNECT_AFTER | G_CONNECT_SWAPPED); - - return g_list_append(NULL, hbox); -} - -static GList *build_font(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *hbox, *button; - GtkWidget *active = NULL; - int override; - - g_return_val_if_fail(option != NULL, NULL); - - override = get_int(node, "override"); - - hbox = gtk_hbox_new(FALSE, 4); - - if (override) - { - /* Add a check button to enable the font chooser. If off, - * the option's value is "". - */ - active = gtk_check_button_new_with_label(_(label)); - gtk_box_pack_start(GTK_BOX(hbox), active, FALSE, TRUE, 0); - g_signal_connect(active, "toggled", - G_CALLBACK(toggle_active_font), option); - } - else - gtk_box_pack_start(GTK_BOX(hbox), gtk_label_new(_(label)), - FALSE, TRUE, 0); - - button = gtk_button_new_with_label(""); - gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, TRUE, 0); - - option->update_widget = update_font; - option->read_widget = read_font; - option->widget = GTK_BIN(button)->child; - may_add_tip(button, node); - - g_object_set_data(G_OBJECT(option->widget), "rox_override", active); - - g_signal_connect(button, "clicked", G_CALLBACK(open_fontsel), option); - - return g_list_append(NULL, hbox); -} - -static void button_patch_set_colour(GtkWidget *button, GdkColor *colour) -{ - GtkStyle *style; - GtkWidget *patch; - - patch = GTK_BIN(button)->child; - - style = gtk_style_copy(GTK_WIDGET(patch)->style); - style->bg[GTK_STATE_NORMAL].red = colour->red; - style->bg[GTK_STATE_NORMAL].green = colour->green; - style->bg[GTK_STATE_NORMAL].blue = colour->blue; - gtk_widget_set_style(patch, style); - g_object_unref(G_OBJECT(style)); - - if (GTK_WIDGET_REALIZED(patch)) - gdk_window_clear(patch->window); -} - -static void load_options(xmlDoc *doc) -{ - xmlNode *root, *node; - - root = xmlDocGetRootElement(doc); - - g_return_if_fail(strcmp(root->name, "Options") == 0); - - for (node = root->xmlChildrenNode; node; node = node->next) - { - gchar *value, *name; - - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "Option") != 0) - continue; - name = xmlGetProp(node, "name"); - if (!name) - continue; - - value = xmlNodeGetContent(node); - - if (g_hash_table_lookup(loading, name)) - g_warning("Duplicate option found!"); - - g_hash_table_insert(loading, name, value); - - /* (don't need to free name or value) */ - } -} - -/* Process one line from the options file (\0 term'd). - * Returns NULL on success, or a pointer to an error message. - * The line is modified. - */ -static const char *process_option_line(gchar *line) -{ - gchar *eq, *c; - gchar *name = line; - - g_return_val_if_fail(option_hash != NULL, "No registered options!"); - - eq = strchr(line, '='); - if (!eq) - return _("Missing '='"); - - c = eq - 1; - while (c > line && (*c == ' ' || *c == '\t')) - c--; - c[1] = '\0'; - c = eq + 1; - while (*c == ' ' || *c == '\t') - c++; - - if (g_hash_table_lookup(loading, name)) - return "Duplicate option found!"; - - g_hash_table_insert(loading, g_strdup(name), g_strdup(g_strstrip(c))); - - return NULL; -} diff --git a/ROX-Filer/src/options.h b/ROX-Filer/src/options.h deleted file mode 100644 index f149cf23..00000000 --- a/ROX-Filer/src/options.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _OPTIONS_H -#define _OPTIONS_H - -#include - -typedef void OptionNotify(void); -typedef GList * (*OptionBuildFn)(Option *option, xmlNode *node, guchar *label); - -struct _Option { - guchar *value; - long int_value; - gboolean has_changed; - - guchar *backup; /* Copy of value to Revert to */ - - GtkWidget *widget; /* NULL => No UI yet */ - void (*update_widget)(Option *option); - guchar * (*read_widget)(Option *option); -}; - -/* Prototypes */ - -void options_init(void); - -void option_register_widget(char *name, OptionBuildFn builder); -void option_check_widget(Option *option); - -void option_add_int(Option *option, const gchar *key, int value); -void option_add_string(Option *option, const gchar *key, const gchar *value); - -void options_notify(void); -void option_add_notify(OptionNotify *callback); -void option_add_saver(OptionNotify *callback); -GList *build_numentry_base(Option *option, xmlNode *node, - guchar *label, GtkAdjustment *adj); - -GtkWidget *options_show(void); - -#endif /* _OPTIONS_H */ diff --git a/ROX-Filer/src/panel.c b/ROX-Filer/src/panel.c deleted file mode 100644 index ff6b6a1e..00000000 --- a/ROX-Filer/src/panel.c +++ /dev/null @@ -1,2926 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* panel.c - code for dealing with panel windows */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "global.h" - -#include "panel.h" -#include "options.h" -#include "choices.h" -#include "main.h" -#include "type.h" -#include "gui_support.h" -#include "diritem.h" -#include "pixmaps.h" -#include "filer.h" -#include "display.h" -#include "bind.h" -#include "dnd.h" -#include "support.h" -#include "icon.h" -#include "run.h" -#include "appinfo.h" -#include "pixmaps.h" -#include "xml.h" -#include "pinboard.h" /* For pinboard_get_window() */ - -/* The width of the separator at the inner edge of the panel */ -#define EDGE_WIDTH 1 - -/* The gap between panel icons */ -#define PANEL_ICON_SPACING 8 - -enum {TEXT_BESIDE_ICON, TEXT_UNDER_ICON}; - -static gboolean tmp_icon_selected = FALSE; /* When dragging */ - -typedef struct _PanelIconClass PanelIconClass; -typedef struct _PanelIcon PanelIcon; - -struct _PanelIconClass { - IconClass parent; -}; - -struct _PanelIcon { - Icon icon; - GdkPixbuf *image; - - Panel *panel; - GtkWidget *widget; /* The drawing area for the icon */ - GtkWidget *label; - GtkWidget *socket; /* For applets */ - - int style; -}; - -#define PANEL_ICON(obj) GTK_CHECK_CAST((obj), panel_icon_get_type(), PanelIcon) -#define IS_PANEL_ICON(obj) \ - G_TYPE_CHECK_INSTANCE_TYPE((obj), panel_icon_get_type()) - -Panel *current_panel[PANEL_NUMBER_OF_SIDES]; - -/* NULL => Not loading a panel */ -static Panel *loading_panel = NULL; - -static GtkWidget *panel_options_dialog = NULL; - -/* Static prototypes */ -static int panel_delete(GtkWidget *widget, GdkEvent *event, Panel *panel); -static void panel_destroyed(GtkWidget *widget, Panel *panel); -static const char *pan_from_file(gchar *line); -static gint icon_button_release(GtkWidget *widget, - GdkEventButton *event, - PanelIcon *pi); -static gint icon_button_press(GtkWidget *widget, - GdkEventButton *event, - PanelIcon *pi); -static void reposition_panel(GtkWidget *window, - GtkAllocation *alloc, Panel *panel); -static gint expose_icon(GtkWidget *widget, - GdkEventExpose *event, - PanelIcon *pi); -static gint draw_icon(GtkWidget *widget, - GdkRectangle *badarea, - PanelIcon *pi); -static gint panel_button_release(GtkWidget *widget, - GdkEventButton *event, - Panel *panel); -static gint panel_button_press(GtkWidget *widget, - GdkEventButton *event, - Panel *panel); -static void panel_post_resize(GtkWidget *box, - GtkRequisition *req, Panel *panel); -static void drag_set_panel_dest(PanelIcon *pi); -static void add_uri_list(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - Panel *panel); -static void panel_add_item(Panel *panel, - const gchar *path, - const gchar *name, - gboolean after, - const gchar *shortcut, - const gchar *args, - gboolean locked); -static gboolean panel_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - Panel *panel); -static gboolean insert_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - Panel *panel); -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - PanelIcon *pi); -static void panel_drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - Panel *panel); -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - Icon *icon); -static GtkWidget *make_insert_frame(Panel *panel); -static gboolean enter_icon(GtkWidget *widget, - GdkEventCrossing *event, - Icon *icon); -static gint icon_motion_event(GtkWidget *widget, - GdkEventMotion *event, - PanelIcon *pi); -static gint panel_leave_event(GtkWidget *widget, - GdkEventCrossing *event, - Panel *panel); -static gint panel_motion_event(GtkWidget *widget, - GdkEventMotion *event, - Panel *panel); -static void reposition_icon(PanelIcon *pi, int index); -static void start_drag(PanelIcon *pi, GdkEventMotion *event); -static void drag_end(GtkWidget *widget, - GdkDragContext *context, - Icon *icon); -static void perform_action(Panel *panel, - PanelIcon *pi, - GdkEventButton *event); -static void run_applet(PanelIcon *pi); -static void size_request(GtkWidget *widget, GtkRequisition *req, PanelIcon *pi); -static void panel_load_from_xml(Panel *panel, xmlDocPtr doc); -static gboolean draw_panel_edge(GtkWidget *widget, GdkEventExpose *event, - Panel *panel); -static PanelIcon *panel_icon_new(Panel *panel, - const char *pathname, - const char *name); -static GType panel_icon_get_type(void); -static gboolean panel_want_show_text(PanelIcon *pi); -static void panel_show_menu(GdkEventButton *event, PanelIcon *pi, Panel *panel); -static void panel_style_changed(void); -static void motion_may_raise(Panel *panel, int x, int y); -static void panel_update(Panel *panel); -static GList *build_monitor_number(Option *option, - xmlNode *node, guchar *label); -static gboolean may_autoscroll(Panel *panel); -static void panel_update_geometry(Panel *panel); -static gboolean panel_keep_below(Panel *panel, gboolean setting); - - -static GtkWidget *dnd_highlight = NULL; /* (stops flickering) */ - -#define SHOW_BOTH 0 -#define SHOW_APPS_SMALL 1 -#define SHOW_ICON 2 -static Option o_panel_style; -static Option o_panel_width; -static Option o_panel_xinerama; -static Option o_panel_monitor; -static Option o_panel_avoid; -static Option o_panel_is_dock; -static Option o_panel_on_top; -static Option o_panel_obey_workarea; - -static gint panel_monitor = -1; - -static int closing_panel = 0; /* Don't panel_save; destroying! */ - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void panel_init(void) -{ - option_add_int(&o_panel_style, "panel_style", SHOW_APPS_SMALL); - option_add_int(&o_panel_width, "panel_width", 52); - - option_add_int(&o_panel_xinerama, "panel_xinerama", 0); - option_add_int(&o_panel_monitor, "panel_monitor", 0); - - option_add_int(&o_panel_avoid, "panel_avoid", TRUE); - option_add_int(&o_panel_is_dock, "panel_is_dock", TRUE); - option_add_int(&o_panel_on_top, "panel_on_top", FALSE); - - option_add_int(&o_panel_obey_workarea, "panel_obey_workarea", FALSE); - - option_add_notify(panel_style_changed); - - option_register_widget("monitor-number", build_monitor_number); -} - -/* Return a free edge for a new panel. - * If no edge is free, returns PANEL_BOTTOM. - */ -static PanelSide find_free_side() -{ - if (!current_panel[PANEL_BOTTOM]) - return PANEL_BOTTOM; - - if (!current_panel[PANEL_TOP]) - return PANEL_TOP; - - if (!current_panel[PANEL_LEFT]) - return PANEL_LEFT; - - if (!current_panel[PANEL_RIGHT]) - return PANEL_RIGHT; - - return PANEL_BOTTOM; -} - -/* Returns TRUE and sets *target if the property exists, otherwise returns - * FALSE and leaves *target unchanged */ -static gboolean get_int_prop(xmlNodePtr node, const char *name, int *target) -{ - char *prop = xmlGetProp(node, name); - - if (prop) - { - *target = atoi(prop); - g_free(prop); - return TRUE; - } - return FALSE; -} - -static void set_int_prop(xmlNodePtr node, const char *name, int value) -{ - char prop[16]; - - sprintf(prop, "%d", value); - xmlSetProp(node, name, prop); -} - -static void panel_load_options_from_xml(Panel *panel, xmlDocPtr doc) -{ - xmlNodePtr root; - xmlNodePtr options; - - root = xmlDocGetRootElement(doc); - options = get_subnode(root, NULL, "options"); - if (!options) - return; - get_int_prop(options, "style", &panel->style); - get_int_prop(options, "width", &panel->width); - get_int_prop(options, "avoid", &panel->avoid); - get_int_prop(options, "xinerama", &panel->xinerama); - get_int_prop(options, "monitor", &panel->monitor); -} - -static void save_panels(void) -{ - char *filename = choices_find_xdg_path_save("panels", - "ROX-Filer", "rox.sourceforge.net", TRUE); - char *tmp = g_strconcat(filename, ".new", NULL); - FILE *fp = fopen(tmp, "w"); - - if (fp) - { - PanelSide n; - - for (n = 0; n < PANEL_NUMBER_OF_SIDES; ++n) - { - if (current_panel[n]) - fprintf(fp, "%s\n", current_panel[n]->name); - } - fclose(fp); - if (rename(tmp, filename)) - g_critical(_("Unable to replace '%s'"), filename); - } - else - { - g_critical(_("Unable to save '%s'"), tmp); - } - g_free(tmp); - g_free(filename); -} - -/* 'name' may be NULL or "" to remove the panel */ -Panel *panel_new(const gchar *name, PanelSide side) -{ - guchar *load_path; - Panel *panel; - GtkWidget *vp, *box, *frame, *align; - xmlDocPtr panel_doc = NULL; - gboolean need_resave = FALSE; - - g_return_val_if_fail(side == PANEL_DEFAULT_SIDE || - (side >= 0 && side < PANEL_NUMBER_OF_SIDES), NULL); - g_return_val_if_fail(loading_panel == NULL, NULL); - - if (name && *name == '\0') - name = NULL; - - if (!name) - load_path = NULL; - else if (strchr(name, '/')) - load_path = g_strdup(name); - else - { - guchar *leaf; - - leaf = g_strconcat("pan_", name, NULL); - load_path = choices_find_xdg_path_load(leaf, PROJECT, SITE); - g_free(leaf); - } - - if (load_path && access(load_path, F_OK) == 0) - { - char *saved_side; - xmlNodePtr root; - - panel_doc = xmlParseFile(load_path); - root = xmlDocGetRootElement(panel_doc); - - saved_side = xmlGetProp(root, "side"); - if (saved_side) - { - PanelSide old_side; - old_side = panel_name_to_side(saved_side); - g_free(saved_side); - - if (side == PANEL_DEFAULT_SIDE) - side = old_side; - else if (side != old_side) - need_resave = TRUE; - } - else - need_resave = TRUE; - } - - if (side == PANEL_DEFAULT_SIDE) - side = find_free_side(); - - if (current_panel[side]) - { - if (name) - number_of_windows++; - closing_panel++; - gtk_widget_destroy(current_panel[side]->window); - closing_panel--; - if (name) - number_of_windows--; - } - - if (name == NULL || *name == '\0') - { - save_panels(); - return NULL; - } - - panel = g_new(Panel, 1); - panel->name = g_strdup(name); - panel->side = side; - panel->window = gtk_window_new(GTK_WINDOW_TOPLEVEL); - panel->autoscroll_speed = 0; - - /* These are fallbacks from legacy global options */ - panel->style = o_panel_style.int_value; - panel->width = o_panel_width.int_value; - panel->xinerama = o_panel_xinerama.int_value; - panel->monitor = o_panel_monitor.int_value; - panel->avoid = o_panel_avoid.int_value; - - /* Now try to load options from this panel's XML */ - if (panel_doc) - { - panel_load_options_from_xml(panel, panel_doc); - } - else - { - /* Otherwise ensure old settings are migrated */ - need_resave = TRUE; - } - - panel_update_geometry(panel); - - gtk_window_set_resizable(GTK_WINDOW(panel->window), FALSE); - gtk_window_set_wmclass(GTK_WINDOW(panel->window), "ROX-Panel", PROJECT); - gtk_widget_set_name(panel->window, "rox-panel"); - gtk_widget_set_events(panel->window, - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK); - - /* We make the panel a drop target only so that we can auto-raise! */ - gtk_drag_dest_set(panel->window, 0, NULL, 0, GDK_ACTION_PRIVATE); - g_signal_connect(panel->window, "drag_leave", - G_CALLBACK(panel_drag_leave), panel); - g_signal_connect(panel->window, "drag_motion", - G_CALLBACK(panel_drag_motion), panel); - - g_signal_connect(panel->window, "delete-event", - G_CALLBACK(panel_delete), panel); - g_signal_connect(panel->window, "destroy", - G_CALLBACK(panel_destroyed), panel); - g_signal_connect(panel->window, "button_press_event", - G_CALLBACK(panel_button_press), panel); - g_signal_connect(panel->window, "button_release_event", - G_CALLBACK(panel_button_release), panel); - g_signal_connect(panel->window, "motion-notify-event", - G_CALLBACK(panel_motion_event), panel); - g_signal_connect(panel->window, "leave-notify-event", - G_CALLBACK(panel_leave_event), panel); - - if (panel->side == PANEL_RIGHT) - align = gtk_alignment_new(1.0, 0.0, 0.0, 1.0); - else if (panel->side == PANEL_BOTTOM) - align = gtk_alignment_new(0.0, 1.0, 1.0, 0.0); - else if (panel->side == PANEL_TOP) - align = gtk_alignment_new(0.0, 0.0, 1.0, 0.0); - else - align = gtk_alignment_new(0.0, 0.0, 0.0, 1.0); - - gtk_container_add(GTK_CONTAINER(panel->window), align); - - vp = gtk_viewport_new(NULL, NULL); - gtk_container_set_resize_mode(GTK_CONTAINER(vp), GTK_RESIZE_PARENT); - gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); - gtk_container_add(GTK_CONTAINER(align), vp); - - g_signal_connect(align, "expose-event", - G_CALLBACK(draw_panel_edge), panel); - - if (side == PANEL_TOP || side == PANEL_BOTTOM) - { - panel->adj = gtk_viewport_get_hadjustment(GTK_VIEWPORT(vp)); - box = gtk_hbox_new(FALSE, 0); - panel->before = gtk_hbox_new(FALSE, 0); - panel->after = gtk_hbox_new(FALSE, 0); - } - else - { - panel->adj = gtk_viewport_get_vadjustment(GTK_VIEWPORT(vp)); - box = gtk_vbox_new(FALSE, 0); - panel->before = gtk_vbox_new(FALSE, 0); - panel->after = gtk_vbox_new(FALSE, 0); - } - - gtk_container_add(GTK_CONTAINER(vp), box); - gtk_box_pack_start(GTK_BOX(box), panel->before, FALSE, TRUE, 0); - gtk_box_pack_end(GTK_BOX(box), panel->after, FALSE, TRUE, 0); - - frame = make_insert_frame(panel); - gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 4); - - /* This is used so that we can find the middle easily! */ - panel->gap = gtk_event_box_new(); - gtk_box_pack_start(GTK_BOX(box), panel->gap, FALSE, FALSE, 0); - - frame = make_insert_frame(panel); - g_object_set_data(G_OBJECT(frame), "after", "yes"); - gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 4); - - if (o_panel_is_dock.int_value) - gtk_window_set_type_hint(GTK_WINDOW(panel->window), - GDK_WINDOW_TYPE_HINT_DOCK); - - gtk_widget_realize(panel->window); - make_panel_window(panel->window); - gtk_window_stick(GTK_WINDOW(panel->window)); - - gtk_widget_show_all(align); - - loading_panel = panel; - if (panel_doc) - { - panel_load_from_xml(panel, panel_doc); - xmlFreeDoc(panel_doc); - - if (need_resave) - panel_save(panel); - } - else if (load_path) - { - parse_file(load_path, pan_from_file); - info_message(_("Your old panel file has been " - "converted to the new XML format.")); - panel_save(panel); - } - else - { - /* Don't scare users with an empty panel... */ - guchar *apps; - - panel_add_item(panel, "~", "Home", FALSE, NULL, NULL, FALSE); - - apps = pathdup(make_path(app_dir, "..")); - if (apps) - { - panel_add_item(panel, apps, "Apps", FALSE, NULL, NULL, FALSE); - g_free(apps); - } - } - loading_panel = NULL; - g_free(load_path); - - current_panel[side] = panel; - - gtk_widget_queue_resize(box); - g_signal_connect(panel->window, "size-request", - G_CALLBACK(panel_post_resize), panel); - g_signal_connect(panel->window, "size-allocate", - G_CALLBACK(reposition_panel), panel); - - number_of_windows++; - gdk_window_lower(panel->window->window); - gtk_widget_show(panel->window); - /* This has no effect until after window is showing; GTK+ bug? */ - if (panel_keep_below(panel, TRUE)) - { - GdkWindow *pinboard; - - pinboard = pinboard_get_window(); - /* (if pinboard is NULL, will go right to the back) */ - window_put_just_above(panel->window->window, pinboard); - } - - save_panels(); - - return panel; -} - -/* Externally visible function to add an item to a panel */ -gboolean panel_add(PanelSide side, - const gchar *path, const gchar *label, gboolean after, const gchar *shortcut, const gchar *args, - gboolean locked) -{ - g_return_val_if_fail(side >= 0 && side < PANEL_NUMBER_OF_SIDES, FALSE); - - g_return_val_if_fail(current_panel[side] != NULL, FALSE); - - panel_add_item(current_panel[side], path, label, after, shortcut, args, locked); - - return TRUE; -} - -/* Add the area covered by the panels to the region */ -void panel_mark_used(GdkRegion *used) -{ - int i; - - for (i = 0; i < PANEL_NUMBER_OF_SIDES; i++) - { - Panel *panel = current_panel[i]; - GdkRectangle rect; - - if (!panel) - continue; - - gdk_window_get_root_origin(panel->window->window, - &rect.x, &rect.y); - rect.width = panel->window->allocation.width; - rect.height = panel->window->allocation.height; - - gdk_region_union_with_rect(used, &rect); - } -} - -/* On xrandr screen size changes, update all panels */ -void panel_update_size(void) -{ - int i; - - for (i = 0; i < PANEL_NUMBER_OF_SIDES; i++) - { - if (current_panel[i]) - { - panel_update_geometry(current_panel[i]); - reposition_panel(current_panel[i]->window, - ¤t_panel[i]->window->allocation, - current_panel[i]); - gtk_widget_queue_resize(current_panel[i]->window); - } - } -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* User has tried to close the panel via the window manager - confirm */ -static int panel_delete(GtkWidget *widget, GdkEvent *event, Panel *panel) -{ - return !confirm(_("You have tried to close a panel via the window " - "manager - I usually find that this is accidental... " - "really close?"), - GTK_STOCK_CLOSE, NULL); -} - -static void panel_destroyed(GtkWidget *widget, Panel *panel) -{ - if (panel_options_dialog) - { - Panel *dlg_panel = g_object_get_data(G_OBJECT(panel_options_dialog), - "rox-panel"); - - if (dlg_panel == panel) - gtk_widget_destroy(panel_options_dialog); - } - - if (current_panel[panel->side] == panel) - current_panel[panel->side] = NULL; - - if (panel->side == PANEL_TOP || panel->side == PANEL_BOTTOM) - { - if (current_panel[PANEL_RIGHT]) - gtk_widget_queue_resize( - current_panel[PANEL_RIGHT]->window); - if (current_panel[PANEL_LEFT]) - gtk_widget_queue_resize( - current_panel[PANEL_LEFT]->window); - } - - if (panel->autoscroll_speed) - g_source_remove(panel->autoscroll_to); - - g_free(panel->name); - g_free(panel); - - one_less_window(); -} - -static void panel_load_side(Panel *panel, xmlNodePtr side, gboolean after) -{ - xmlNodePtr node; - char *label, *path, *shortcut, *args, *tmp; - gboolean locked; - - for (node = side->xmlChildrenNode; node; node = node->next) - { - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "icon") != 0) - continue; - - label = xmlGetProp(node, "label"); - if (!label) - label = g_strdup(""); - path = xmlNodeGetContent(node); - if (!path) - path = g_strdup(""); - shortcut = xmlGetProp(node, "shortcut"); - args = xmlGetProp(node, "args"); - tmp = xmlGetProp(node, "locked"); - if (tmp) - { - locked = text_to_boolean(tmp, FALSE); - g_free(tmp); - } - else - locked = FALSE; - - panel_add_item(panel, path, label, after, shortcut, args, locked); - - g_free(path); - g_free(label); - g_free(shortcut); - g_free(args); - } -} - -/* Create one panel icon for each icon in the doc */ -static void panel_load_from_xml(Panel *panel, xmlDocPtr doc) -{ - xmlNodePtr root; - - root = xmlDocGetRootElement(doc); - panel_load_side(panel, get_subnode(root, NULL, "start"), FALSE); - panel_load_side(panel, get_subnode(root, NULL, "end"), TRUE); -} - -/* Called for each line in the config file while loading a new panel */ -static const char *pan_from_file(gchar *line) -{ - gchar *sep, *leaf; - - g_return_val_if_fail(line != NULL, NULL); - g_return_val_if_fail(loading_panel != NULL, NULL); - - if (*line == '\0') - return NULL; - - sep = strpbrk(line, "<>"); - if (!sep) - return _("Missing < or > in panel config file"); - - if (sep != line) - leaf = g_strndup(line, sep - line); - else - leaf = NULL; - - panel_add_item(loading_panel, sep + 1, leaf, sep[0] == '>', - NULL, NULL, FALSE); - - g_free(leaf); - - return NULL; -} - -static gboolean icon_pointer_in(GtkWidget *widget, - GdkEventCrossing *event, - Icon *icon) -{ - gtk_widget_set_state(widget, - icon->selected ? GTK_STATE_SELECTED : GTK_STATE_PRELIGHT); - - return 0; -} - -static gboolean icon_pointer_out(GtkWidget *widget, - GdkEventCrossing *event, - Icon *icon) -{ - gtk_widget_set_state(widget, - icon->selected ? GTK_STATE_SELECTED : GTK_STATE_NORMAL); - - return 0; -} - -static void panel_icon_destroyed(PanelIcon *pi) -{ - g_return_if_fail(pi->widget != NULL); - - pi->widget = NULL; - - g_object_unref(pi); -} - -/* Set the tooltip AND hide/show the label */ -static void panel_icon_set_tip(PanelIcon *pi) -{ - XMLwrapper *ai; - xmlNode *node; - Icon *icon = (Icon *) pi; - - g_return_if_fail(pi != NULL); - - if (pi->label) - { - if (panel_want_show_text(pi)) - gtk_widget_show(pi->label); - else - gtk_widget_hide(pi->label); - } - - if (pi->socket) - ai = NULL; - else - ai = appinfo_get(icon->path, icon->item); - - if (ai && ((node = xml_get_section(ai, NULL, "Summary")))) - { - guchar *str; - str = xmlNodeListGetString(node->doc, - node->xmlChildrenNode, 1); - if (str) - { - gtk_tooltips_set_tip(tooltips, pi->widget, str, NULL); - g_free(str); - } - } - else if ((!panel_want_show_text(pi)) && !pi->socket) - { - if (icon->item->leafname && icon->item->leafname[0]) - gtk_tooltips_set_tip(tooltips, pi->widget, - icon->item->leafname, NULL); - } - else - gtk_tooltips_set_tip(tooltips, pi->widget, NULL, NULL); - - if (ai) - g_object_unref(ai); -} - -/* Add an icon with this path to the panel. If after is TRUE then the - * icon is added to the right/bottom end of the panel. - * - * If name is NULL a suitable name is taken from path. - */ -static void panel_add_item(Panel *panel, - const gchar *path, - const gchar *name, - gboolean after, - const gchar *shortcut, - const gchar *args, - gboolean locked) -{ - GtkWidget *widget; - PanelIcon *pi; - Icon *icon; - - g_return_if_fail(panel != NULL); - g_return_if_fail(path != NULL); - - widget = gtk_event_box_new(); - gtk_widget_set_events(widget, - GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON3_MOTION_MASK | - GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | - GDK_BUTTON_RELEASE_MASK); - - gtk_box_pack_start(GTK_BOX(after ? panel->after : panel->before), - widget, FALSE, TRUE, 0); - if (after) - gtk_box_reorder_child(GTK_BOX(panel->after), widget, 0); - - gtk_widget_realize(widget); - - pi = panel_icon_new(panel, path, name); - icon = (Icon *) pi; - - /* Widget takes the initial ref of Icon */ - g_object_set_data(G_OBJECT(widget), "icon", pi); - - pi->widget = widget; - g_object_ref(widget); - - gtk_widget_set_name(pi->widget, "panel-icon"); - - g_signal_connect_swapped(widget, "destroy", - G_CALLBACK(panel_icon_destroyed), pi); - - if (icon->item->base_type == TYPE_DIRECTORY) - run_applet(pi); - - g_signal_connect(widget, "button_release_event", - G_CALLBACK(icon_button_release), pi); - g_signal_connect(widget, "button_press_event", - G_CALLBACK(icon_button_press), pi); - g_signal_connect(widget, "motion-notify-event", - G_CALLBACK(icon_motion_event), pi); - g_signal_connect(widget, "enter-notify-event", - G_CALLBACK(icon_pointer_in), pi); - g_signal_connect(widget, "leave-notify-event", - G_CALLBACK(icon_pointer_out), pi); - - if (!pi->socket) - { - g_signal_connect(widget, "enter-notify-event", - G_CALLBACK(enter_icon), pi); - g_signal_connect_after(widget, "expose_event", - G_CALLBACK(expose_icon), pi); - g_signal_connect(widget, "drag_data_get", - G_CALLBACK(drag_data_get), NULL); - - g_signal_connect(widget, "size_request", - G_CALLBACK(size_request), pi); - - drag_set_panel_dest(pi); - - pi->label = gtk_label_new(icon->item->leafname); - gtk_container_add(GTK_CONTAINER(pi->widget), pi->label); - gtk_misc_set_alignment(GTK_MISC(pi->label), 0.5, 1); - gtk_misc_set_padding(GTK_MISC(pi->label), 1, 2); - } - - icon_set_shortcut(icon, shortcut); - icon_set_arguments(icon, args); - icon->locked = locked; - - if (!loading_panel) - panel_save(panel); - - panel_icon_set_tip(pi); - gtk_widget_show(widget); -} - -static gboolean remove_item_from_side(GtkWidget *container, const gchar *path, - const gchar *label) -{ - GList *kids, *next; - gboolean found = FALSE; - - kids = gtk_container_get_children(GTK_CONTAINER(container)); - - for (next = kids; next; next = next->next) - { - Icon *icon; - icon = g_object_get_data(G_OBJECT(next->data), "icon"); - if (!icon) - continue; - - if ((!path || strcmp(path, icon->src_path) == 0) && - (!label || strcmp(label, icon->item->leafname)==0)) - { - icon->locked = FALSE; - icon_destroy(icon); - found = TRUE; - break; - } - } - - g_list_free(kids); - - return found; -} - -/* Remove an item with this path. If more than one item matches, only - * one is removed. If label is not NULL then it must also match the item. - * Returns TRUE if an item was successfully removed. - */ -gboolean panel_remove_item(PanelSide side, const gchar *path, - const gchar *label) -{ - Panel *panel; - - g_return_val_if_fail(side >= 0 && side < PANEL_NUMBER_OF_SIDES, FALSE); - - g_return_val_if_fail(path != NULL || label != NULL, FALSE); - - panel = current_panel[side]; - if (!panel) - { - g_warning("No panel on this side of the screen!"); - return FALSE; - } - - if (remove_item_from_side(panel->before, path, label) || - remove_item_from_side(panel->after, path, label)) - { - panel_save(panel); - panel_update(panel); - return TRUE; - } - - g_warning("Panel item path='%s', label='%s' not found", path, label); - return FALSE; -} - -/* Called when Gtk+ wants to know how much space an icon needs. - * 'req' is already big enough for the label, if shown. - */ -static void size_request(GtkWidget *widget, GtkRequisition *req, PanelIcon *pi) -{ - Icon *icon = (Icon *) pi; - gboolean horz = (pi->panel->side == PANEL_TOP || - pi->panel->side == PANEL_BOTTOM); - int max_width = 100; - int max_height = 100; - int image_width, image_height; - Panel *panel = pi->panel; - - if (horz) - max_height = panel->width - req->height; - else - max_width = MAX(panel->width, req->width); - - /* TODO: really need to recreate? */ - if (pi->image) - g_object_unref(pi->image); - - pi->image = scale_pixbuf(di_image(icon->item)->src_pixbuf, - MAX(20, max_width), MAX(20, max_height)); - - image_width = gdk_pixbuf_get_width(pi->image); - image_height = gdk_pixbuf_get_height(pi->image); - - if (req->height > 0 && max_height < req->height) - { - pi->style = TEXT_BESIDE_ICON; - req->width += image_width; - req->height = MAX(req->height, image_height); - gtk_misc_set_alignment(GTK_MISC(pi->label), 1, 0.5); - } - else - { - pi->style = TEXT_UNDER_ICON; - req->width = MAX(req->width, image_width); - req->height += image_height; - gtk_misc_set_alignment(GTK_MISC(pi->label), 0.5, 1); - } - - if (horz) - req->width += PANEL_ICON_SPACING; - else - req->height += PANEL_ICON_SPACING; -} - -static gint expose_icon(GtkWidget *widget, - GdkEventExpose *event, - PanelIcon *pi) -{ - return draw_icon(widget, &event->area, pi); -} - -static gint draw_icon(GtkWidget *widget, GdkRectangle *badarea, PanelIcon *pi) -{ - GdkRectangle area; - int width, height; - Icon *icon = (Icon *) pi; - int image_x; - int image_y; - GdkPixbuf *image; - int text_height = 0; - - gdk_drawable_get_size(widget->window, &area.width, &area.height); - - if (panel_want_show_text(pi)) - text_height = pi->label->requisition.height; - - g_return_val_if_fail(pi->image != NULL, FALSE); - - image = pi->image; - - width = gdk_pixbuf_get_width(image); - height = gdk_pixbuf_get_height(image); - - if (pi->style == TEXT_UNDER_ICON) - { - image_x = (area.width - width) >> 1; - image_y = (area.height - height - text_height) >> 1; - } - else - { - image_x = PANEL_ICON_SPACING - 2; - image_y = (area.height - height) >> 1; - } - - gdk_pixbuf_render_to_drawable_alpha( - image, - widget->window, - 0, 0, /* src */ - image_x, image_y, /* dest */ - width, height, - GDK_PIXBUF_ALPHA_FULL, 128, /* (unused) */ - GDK_RGB_DITHER_NORMAL, 0, 0); - - if (icon->item->flags & ITEM_FLAG_SYMLINK) - { - draw_emblem_on_icon(widget->window, widget->style, - ROX_STOCK_SYMLINK, &image_x, image_y+2); - } - if (icon->item->flags & ITEM_FLAG_MOUNT_POINT) - { - draw_emblem_on_icon(widget->window, widget->style, - icon->item->flags & ITEM_FLAG_MOUNTED - ? ROX_STOCK_MOUNTED - : ROX_STOCK_MOUNT, - &image_x, image_y+2); - } - return FALSE; -} - -static void panel_icon_wink(Icon *icon) -{ - PanelIcon *pi = (PanelIcon *) icon; - - wink_widget(pi->widget); -} - -/* icon may be NULL if the event is on the background */ -static void perform_action(Panel *panel, PanelIcon *pi, GdkEventButton *event) -{ - BindAction action; - Icon *icon = (Icon *) pi; - - action = bind_lookup_bev(icon ? BIND_PANEL_ICON : BIND_PANEL, event); - - if (pi && pi->socket) - if (action != ACT_POPUP_MENU && action != ACT_MOVE_ICON) - return; - - switch (action) - { - case ACT_OPEN_ITEM: - dnd_motion_ungrab(); - wink_widget(pi->widget); - icon_run(icon); - break; - case ACT_EDIT_ITEM: - dnd_motion_ungrab(); - wink_widget(pi->widget); - run_diritem(icon->path, icon->item, NULL, NULL, TRUE); - break; - case ACT_POPUP_MENU: - dnd_motion_ungrab(); - panel_show_menu(event, pi, panel); - break; - case ACT_MOVE_ICON: - dnd_motion_start(MOTION_REPOSITION); - break; - case ACT_PRIME_AND_SELECT: - if (!icon->selected) - icon_select_only(icon); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_AND_TOGGLE: - icon_set_selected(icon, !icon->selected); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_FOR_DND: - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_TOGGLE_SELECTED: - icon_set_selected(icon, !icon->selected); - break; - case ACT_SELECT_EXCL: - icon_set_selected(icon, TRUE); - break; - case ACT_IGNORE: - break; - case ACT_CLEAR_SELECTION: - dnd_motion_ungrab(); - icon_select_only(NULL); - break; - default: - g_warning("Unsupported action : %d\n", action); - break; - } -} - -static gint panel_button_release(GtkWidget *widget, - GdkEventButton *event, - Panel *panel) -{ - if (dnd_motion_release(event)) - return TRUE; - - perform_action(panel, NULL, event); - - return TRUE; -} - -static gint panel_button_press(GtkWidget *widget, - GdkEventButton *event, - Panel *panel) -{ - if (dnd_motion_press(panel->window, event)) - perform_action(panel, NULL, event); - - return TRUE; -} - -static gint icon_button_release(GtkWidget *widget, - GdkEventButton *event, - PanelIcon *pi) -{ - if (pi->socket && event->button == 1) - return FALSE; /* Restart button */ - - if (dnd_motion_release(event)) - return TRUE; - - perform_action(pi->panel, pi, event); - - return TRUE; -} - -static gint icon_button_press(GtkWidget *widget, - GdkEventButton *event, - PanelIcon *pi) -{ - if (pi->socket && event->button == 1) - return FALSE; /* Restart button */ - - if (dnd_motion_press(widget, event)) - perform_action(pi->panel, pi, event); - - return TRUE; -} - -/* Stop windows from maximising over all/part of us */ -static void panel_setup_struts(Panel *panel, GtkAllocation *alloc) -{ - int thickness; - struct { - gulong left, right, top, bottom; - gulong left_start_y, left_end_y; - gulong right_start_y, right_end_y; - gulong top_start_x, top_end_x; - gulong bottom_start_x, bottom_end_x; - } strut = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - - if (panel->avoid == FALSE) - thickness = 2; - else if (panel->side == PANEL_TOP || - panel->side == PANEL_BOTTOM) - thickness = alloc->height; - else - thickness = alloc->width; - - switch (panel->side) - { - case PANEL_LEFT: - if (!panel->xinerama || !monitor_adjacent[panel->monitor].left) - { - strut.left = panel->geometry.x + thickness; - strut.left_start_y = panel->geometry.y; - strut.left_end_y = panel->geometry.y + - panel->geometry.height - 1; - } - /* else there is (part of) a monitor - * to the left */ - else - { - thickness = 0; - } - break; - case PANEL_RIGHT: - if (!panel->xinerama || !monitor_adjacent[panel->monitor].right) - { - /* RHS of monitor might not abut edge - * of total virtual screen */ - strut.right = screen_width - - panel->geometry.x - - panel->geometry.width + - thickness; - strut.right_start_y = panel->geometry.y; - strut.right_end_y = panel->geometry.y + - panel->geometry.height - 1; - } - /* else there is (part of) a monitor - * to the right */ - else - { - thickness = 0; - } - break; - case PANEL_TOP: - if (!panel->xinerama || !monitor_adjacent[panel->monitor].top) - { - strut.top = panel->geometry.y + thickness; - strut.top_start_x = panel->geometry.x; - strut.top_end_x = panel->geometry.x + - panel->geometry.width - 1; - } - /* else there is (part of) a monitor above */ - else - { - thickness = 0; - } - break; - default: /* PANEL_BOTTOM */ - if (!panel->xinerama || - !monitor_adjacent[panel->monitor].bottom) - { - /* Bottom of monitor might not abut - * edge of total virtual screen */ - strut.bottom = screen_height - - panel->geometry.y - - panel->geometry.height + - thickness; - strut.bottom_start_x = panel->geometry.x; - strut.bottom_end_x = panel->geometry.x + - panel->geometry.width - 1; - } - /* else there is (part of) a monitor below */ - else - { - thickness = 0; - } - break; - } - - if (thickness) - { - /* Set full-width strut as well as partial in case - * partial isn't supported by wm */ - gdk_property_change(panel->window->window, - gdk_atom_intern("_NET_WM_STRUT", - FALSE), - gdk_atom_intern("CARDINAL", FALSE), - 32, GDK_PROP_MODE_REPLACE, - (gchar *) &strut, 4); - gdk_property_change(panel->window->window, - gdk_atom_intern("_NET_WM_STRUT_PARTIAL", - FALSE), - gdk_atom_intern("CARDINAL", FALSE), - 32, GDK_PROP_MODE_REPLACE, - (gchar *) &strut, 12); - } - else - { - gdk_property_delete(panel->window->window, - gdk_atom_intern("_NET_WM_STRUT_PARTIAL", - FALSE)); - gdk_property_delete(panel->window->window, - gdk_atom_intern("_NET_WM_STRUT", - FALSE)); - } -} - -static void reposition_panel(GtkWidget *window, - GtkAllocation *alloc, Panel *panel) -{ - int x = panel->geometry.x; - int y = panel->geometry.y; - PanelSide side = panel->side; - - if (side == PANEL_LEFT || side == PANEL_RIGHT) - { - if (side == PANEL_RIGHT) - x += panel->geometry.width - alloc->width; - - if (current_panel[PANEL_TOP]) - { - GtkWidget *win = current_panel[PANEL_TOP]->window; - y += win->allocation.height; - } - } - - if (side == PANEL_BOTTOM) - y += panel->geometry.height - alloc->height; - - gtk_window_move(GTK_WINDOW(panel->window), x, y); - gdk_window_move(panel->window->window, x, y); - - if (side == PANEL_BOTTOM || side == PANEL_TOP) - { - if (current_panel[PANEL_RIGHT]) - gtk_widget_queue_resize( - current_panel[PANEL_RIGHT]->window); - if (current_panel[PANEL_LEFT]) - gtk_widget_queue_resize( - current_panel[PANEL_LEFT]->window); - } - - panel_setup_struts(panel, alloc); -} - -/* Same as drag_set_dest(), but for panel icons */ -static void drag_set_panel_dest(PanelIcon *pi) -{ - GtkWidget *obj = pi->widget; - - make_drop_target(pi->widget, 0); - - g_signal_connect(obj, "drag_motion", G_CALLBACK(drag_motion), pi); - g_signal_connect(obj, "drag_leave", G_CALLBACK(drag_leave), pi); - g_signal_connect(obj, "drag_end", G_CALLBACK(drag_end), pi); -} - -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - PanelIcon *pi) -{ - GdkDragAction action = context->suggested_action; - const char *type = NULL; - Icon *icon = (Icon *) pi; - DirItem *item = icon->item; - int panel_x, panel_y; - - gdk_window_get_pointer(pi->panel->window->window, - &panel_x, &panel_y, NULL); - motion_may_raise(pi->panel, panel_x, panel_y); - - /* Should we scroll the panel when dragging? */ - if (motion_state != MOTION_REPOSITION) - if (pi->panel->autoscroll_speed == 0) - may_autoscroll(pi->panel); - - if (icon->selected) - goto out; /* Can't drag a selection to itself */ - - type = dnd_motion_item(context, &item); - - if ((context->actions & GDK_ACTION_ASK) && o_dnd_left_menu.int_value - && type != drop_dest_prog) - { - guint state; - gdk_window_get_pointer(NULL, NULL, NULL, &state); - if (state & GDK_BUTTON1_MASK) - action = GDK_ACTION_ASK; - } - - if (!item) - type = NULL; -out: - /* We actually must pretend to accept the drop, even if the - * directory isn't writeable, so that the spring-opening - * thing works. - */ - - /* Don't allow drops to non-writeable directories */ - if (o_dnd_spring_open.int_value == FALSE && - type == drop_dest_dir && - access(icon->path, W_OK) != 0) - { - type = NULL; - } - - g_dataset_set_data(context, "drop_dest_type", (gpointer) type); - if (type) - { - gdk_drag_status(context, action, time); - g_dataset_set_data_full(context, "drop_dest_path", - g_strdup(icon->path), g_free); - if (type == drop_dest_dir) - dnd_spring_load(context, NULL); - - if (dnd_highlight && dnd_highlight != pi->widget) - { - gtk_drag_unhighlight(dnd_highlight); - dnd_highlight = NULL; - } - - if (dnd_highlight == NULL) - { - gtk_drag_highlight(pi->widget); - dnd_highlight = pi->widget; - } - } - - return type != NULL; -} - - -static void add_uri_list(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - GtkSelectionData *selection_data, - guint info, - guint32 time, - Panel *panel) -{ - gboolean after = FALSE; - GList *uris, *next; - - if (!selection_data->data) - return; - - g_return_if_fail(selection_data->data[selection_data->length] == '\0'); - - if (g_object_get_data(G_OBJECT(widget), "after")) - after = TRUE; - - uris = uri_list_to_glist(selection_data->data); - - for (next = uris; next; next = next->next) - { - guchar *path; - - path = get_local_path((EscapedPath *) next->data); - - if (path) { - panel_add_item(panel, path, NULL, after, NULL, NULL, FALSE); - g_free(path); - } - } - - g_list_free(uris); -} - -static void drag_end(GtkWidget *widget, - GdkDragContext *context, - Icon *icon) -{ - if (tmp_icon_selected) - { - icon_select_only(NULL); - tmp_icon_selected = FALSE; - } -} - -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - Icon *icon) -{ - panel_drag_leave(widget, context, time, ((PanelIcon *) icon)->panel); - - if (dnd_highlight && dnd_highlight == widget) - { - gtk_drag_unhighlight(dnd_highlight); - dnd_highlight = NULL; - } - - dnd_spring_abort(); -} - -/* Create XML icon nodes for these widgets. - * Always frees the widgets list. - */ -static void make_widgets(xmlNodePtr side, GList *widgets) -{ - GList *next; - - for (next = widgets; next; next = next->next) - { - Icon *icon; - xmlNodePtr tree; - - icon = g_object_get_data(G_OBJECT(next->data), "icon"); - - if (!icon) - { - g_warning("Can't find Icon from widget\n"); - continue; - } - - tree = xmlNewTextChild(side, NULL, "icon", icon->src_path); - - xmlSetProp(tree, "label", icon->item->leafname); - if (icon->shortcut) - xmlSetProp(tree, "shortcut", icon->shortcut); - if (icon->args) - xmlSetProp(tree, "args", icon->args); - if (icon->locked) - xmlSetProp(tree, "locked", "true"); - } - - if (widgets) - g_list_free(widgets); -} - -void panel_save(Panel *panel) -{ - xmlDocPtr doc; - xmlNodePtr root; - xmlNodePtr options; - guchar *save = NULL; - guchar *save_new = NULL; - - g_return_if_fail(panel != NULL); - - if (strchr(panel->name, '/')) - save = g_strdup(panel->name); - else - { - guchar *leaf; - - leaf = g_strconcat("pan_", panel->name, NULL); - save = choices_find_xdg_path_save(leaf, PROJECT, SITE, TRUE); - g_free(leaf); - } - - if (!save) - return; - - doc = xmlNewDoc("1.0"); - xmlDocSetRootElement(doc, xmlNewDocNode(doc, NULL, "panel", NULL)); - - root = xmlDocGetRootElement(doc); - - xmlSetProp(root, "side", panel_side_to_name(panel->side)); - - options = xmlNewChild(root, NULL, "options", NULL); - set_int_prop(options, "style", panel->style); - set_int_prop(options, "width", panel->width); - set_int_prop(options, "avoid", panel->avoid); - set_int_prop(options, "xinerama", panel->xinerama); - set_int_prop(options, "monitor", panel->monitor); - - make_widgets(xmlNewChild(root, NULL, "start", NULL), - gtk_container_get_children(GTK_CONTAINER(panel->before))); - - make_widgets(xmlNewChild(root, NULL, "end", NULL), - g_list_reverse(gtk_container_get_children( - GTK_CONTAINER(panel->after)))); - - save_new = g_strconcat(save, ".new", NULL); - if (save_xml_file(doc, save_new) || rename(save_new, save)) - delayed_error(_("Error saving panel %s: %s"), - save, g_strerror(errno)); - g_free(save_new); - - g_free(save); - if (doc) - xmlFreeDoc(doc); -} - -/* Create a frame widget which can be used to add icons to the panel */ -static GtkWidget *make_insert_frame(Panel *panel) -{ - GtkWidget *frame; - GtkTargetEntry target_table[] = { - {"text/uri-list", 0, TARGET_URI_LIST}, - }; - - frame = gtk_frame_new(NULL); - gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_NONE); - gtk_widget_set_size_request(frame, 16, 16); - - g_signal_connect(frame, "drag-motion", - G_CALLBACK(insert_drag_motion), panel); - g_signal_connect(frame, "drag-leave", - G_CALLBACK(panel_drag_leave), panel); - - g_signal_connect(frame, "drag-data-received", - G_CALLBACK(add_uri_list), panel); - gtk_drag_dest_set(frame, - GTK_DEST_DEFAULT_ALL, - target_table, - sizeof(target_table) / sizeof(*target_table), - GDK_ACTION_COPY); - - return frame; -} - -static gboolean enter_icon(GtkWidget *widget, - GdkEventCrossing *event, - Icon *icon) -{ - icon_may_update(icon); - panel_icon_set_tip((PanelIcon *) icon); - - return FALSE; -} - -static gint panel_leave_event(GtkWidget *widget, - GdkEventCrossing *event, - Panel *panel) -{ - GdkWindow *pinboard; - - if (event->mode != GDK_CROSSING_NORMAL) - return FALSE; /* Grab for menu, DnD, etc */ - - if (event->x >= 0 && - event->y >= 0 && - event->x < widget->allocation.width && - event->y < widget->allocation.height) - { - /* Still inside the panel's area. - * Probably we've moved over a panel applet. */ - return FALSE; - } - - if (panel_keep_below(panel, TRUE)) - { - /* Shouldn't need this as well as keep_below but some WMs don't - * automatically lower as soon as the hint is set */ - pinboard = pinboard_get_window(); - window_put_just_above(panel->window->window, pinboard); - } - - return FALSE; -} - -/* If (x, y) is at the edge of the panel then raise */ -static void motion_may_raise(Panel *panel, int x, int y) -{ - gboolean raise; - - if (panel->side == PANEL_TOP) - raise = y == 0; - else if (panel->side == PANEL_BOTTOM) - raise = y == panel->window->allocation.height - 1; - else if (panel->side == PANEL_LEFT) - raise = x == 0; - else - raise = x == panel->window->allocation.width - 1; - - if (raise && panel_keep_below(panel, FALSE)) - { - /* Shouldn't need this as well as keep_below but some WMs don't - * automatically raise as soon as the hint is set */ - gdk_window_raise(panel->window->window); - } -} - -static gboolean may_autoscroll(Panel *panel) -{ - gboolean horz = panel->side == PANEL_TOP || panel->side == PANEL_BOTTOM; - gint max, panel_x, panel_y, delta, new; - - if (panel->adj->upper <= panel->adj->page_size) - goto stop_scrolling; /* Can see everything already */ - - gdk_window_get_pointer(panel->window->window, &panel_x, &panel_y, NULL); - - if (horz) - { - delta = panel_x; - max = panel->window->allocation.width; - if (panel_y < 0 || panel_y > panel->window->allocation.height) - goto stop_scrolling; /* Not over the panel */ - } - else - { - delta = panel_y; - max = panel->window->allocation.height; - if (panel_x < 0 || panel_x > panel->window->allocation.width) - goto stop_scrolling; /* Not over the panel */ - } - - if (delta >= 20 && delta <= max - 20) - goto stop_scrolling; /* Not at either end */ - - panel->autoscroll_speed = MIN(panel->autoscroll_speed + 2, 200); - - new = panel->adj->value - ((delta < 20) ? panel->autoscroll_speed - : -panel->autoscroll_speed); - new = CLAMP(new, 0, panel->adj->upper - panel->adj->page_size); - gtk_adjustment_set_value(panel->adj, new); - - panel->autoscroll_to = g_timeout_add(40, - (GSourceFunc) may_autoscroll, panel); - - return FALSE; - -stop_scrolling: - panel->autoscroll_speed = 0; - return FALSE; -} - -static gint panel_motion_event(GtkWidget *widget, - GdkEventMotion *event, - Panel *panel) -{ - motion_may_raise(panel, event->x, event->y); - - if (motion_state != MOTION_REPOSITION) - if (panel->autoscroll_speed == 0) - may_autoscroll(panel); - - return FALSE; -} - -static gint icon_motion_event(GtkWidget *widget, - GdkEventMotion *event, - PanelIcon *pi) -{ - Panel *panel = pi->panel; - GList *list, *me; - gboolean horz = panel->side == PANEL_TOP || panel->side == PANEL_BOTTOM; - int val; - int dir = 0; - - if (motion_state == MOTION_READY_FOR_DND) - { - if (dnd_motion_moved(event)) - start_drag(pi, event); - return TRUE; - } - else if (motion_state != MOTION_REPOSITION) - return FALSE; - - list = gtk_container_get_children(GTK_CONTAINER(panel->before)); - list = g_list_append(list, NULL); /* The gap in the middle */ - list = g_list_concat(list, - gtk_container_get_children(GTK_CONTAINER(panel->after))); - me = g_list_find(list, widget); - - g_return_val_if_fail(me != NULL, TRUE); - - val = horz ? event->x_root : event->y_root; - - if (me->prev) - { - GtkWidget *prev; - int x, y; - - if (me->prev->data) - prev = GTK_WIDGET(me->prev->data); - else - prev = panel->gap; - - gdk_window_get_origin(prev->window, &x, &y); - - if (val <= (horz ? x : y)) - dir = -1; - } - - if (dir == 0 && me->next) - { - GtkWidget *next; - int x, y, w, h; - - if (me->next->data) - next = GTK_WIDGET(me->next->data); - else - next = panel->gap; - - gdk_window_get_origin(next->window, &x, &y); - - gdk_drawable_get_size(next->window, &w, &h); - - x += w; - y += h; - - if (val >= (horz ? x : y)-1) - { - if (next == panel->gap) - dir = +2; - else - dir = +1; - } - } - - if (dir) - reposition_icon(pi, g_list_index(list, widget) + dir); - - return TRUE; -} - -static void reposition_icon_on_side(GtkWidget *side, GtkWidget *widget, - int index) -{ - GList *list; - - list = gtk_container_get_children(GTK_CONTAINER(side)); - - /* Want to move icon to the list in the given 'side'. Is it there - * already? - */ - - if (!g_list_find(list, widget)) - { - /* No, reparent */ - gtk_grab_remove(widget); - gtk_widget_reparent(widget, side); - dnd_motion_grab_pointer(); - gtk_grab_add(widget); - } - - gtk_box_reorder_child(GTK_BOX(side), widget, index); - - g_list_free(list); -} - -/* Move icon to this index in the complete widget list. - * 0 makes the icon the left-most icon. The gap in the middle has - * an index number, which allows you to specify that the icon should - * go on the left or right side. - */ -static void reposition_icon(PanelIcon *pi, int index) -{ - Panel *panel = pi->panel; - GtkWidget *widget = pi->widget; - GList *list; - int before_len; - - list = gtk_container_get_children(GTK_CONTAINER(panel->before)); - before_len = g_list_length(list); - g_list_free(list); - - if (index <= before_len) - reposition_icon_on_side(panel->before, widget, index); - else - reposition_icon_on_side(panel->after, widget, - index - (before_len + 1)); - - panel_save(panel); -} - -static void start_drag(PanelIcon *pi, GdkEventMotion *event) -{ - GtkWidget *widget = pi->widget; - Icon *icon = (Icon *) pi; - - if (!icon->selected) - { - if (event->state & GDK_BUTTON1_MASK) - { - /* Select just this one */ - icon_select_only(icon); - tmp_icon_selected = TRUE; - } - else - icon_set_selected(icon, TRUE); - } - - g_return_if_fail(icon_selection != NULL); - - if (icon_selection->next == NULL) - drag_one_item(widget, event, icon->path, icon->item, NULL); - else - { - guchar *uri_list; - - uri_list = icon_create_uri_list(); - drag_selection(widget, event, uri_list); - g_free(uri_list); - } -} - -static void applet_died(GtkWidget *socket) -{ - gboolean never_plugged; - - never_plugged = (!g_object_get_data(G_OBJECT(socket), "lost_plug")) - && !GTK_SOCKET(socket)->plug_window; - - if (never_plugged) - { - report_error( - _("Applet quit without ever creating a widget!")); - gtk_widget_destroy(socket); - } - - gtk_widget_unref(socket); -} - -static void socket_destroyed(GtkWidget *socket, GtkWidget *widget) -{ - g_object_set_data(G_OBJECT(socket), "lost_plug", "yes"); - - gtk_widget_unref(socket); - - gtk_widget_destroy(widget); /* Remove from panel */ - - if (!closing_panel) - panel_save(g_object_get_data(G_OBJECT(socket), "panel")); -} - -/* Try to run this applet. - * Cases: - * - * - No executable AppletRun: - * icon->socket == NULL (unchanged) on return. - * - * Otherwise, create socket (setting icon->socket) and ref it twice. - * - * - AppletRun quits without connecting a plug: - * On child death lost_plug is unset and socket is empty. - * Unref socket. - * Report error and destroy widget (to 'socket destroyed'). - * - * - AppletRun quits while plug is in socket: - * Unref socket once. Socket will be destroyed later. - * - * - Socket is destroyed. - * Set lost_plug = "yes" and remove widget from panel. - * Unref socket. - */ -static void run_applet(PanelIcon *pi) -{ - GError *error = NULL; - char *argv[3]; - gint pid; - Icon *icon = (Icon *) pi; - - argv[0] = (char *) make_path(icon->path, "AppletRun"); - - if (access(argv[0], X_OK) != 0) - return; - - pi->socket = gtk_socket_new(); - - gtk_container_add(GTK_CONTAINER(pi->widget), pi->socket); - gtk_widget_show_all(pi->socket); - gtk_widget_realize(pi->socket); - - /* Always get button-2 events so we can drag */ - XGrabButton(gdk_display, Button2, AnyModifier, - GDK_WINDOW_XWINDOW(pi->socket->window), - False, - ButtonPressMask | ButtonReleaseMask | Button2MotionMask, - GrabModeAsync, /* Pointer */ - GrabModeAsync, /* Keyboard */ - None, None); - - { - gchar *pos; - PanelSide side = pi->panel->side; - - /* Set a hint to let applets position their menus correctly */ - pos = g_strdup_printf("%s,%d", - panel_side_to_name(side), MENU_MARGIN(side)); - gdk_property_change(pi->socket->window, - gdk_atom_intern("_ROX_PANEL_MENU_POS", FALSE), - gdk_atom_intern("STRING", FALSE), - 8, GDK_PROP_MODE_REPLACE, - pos, strlen(pos)); - g_free(pos); - - /* Ensure that the properties are set before starting the - * applet. - */ - gdk_flush(); - } - - g_object_set_data(G_OBJECT(pi->widget), "icon", pi); - g_object_set_data(G_OBJECT(pi->socket), "panel", pi->panel); - - argv[1] = g_strdup_printf("%ld", - GDK_WINDOW_XWINDOW(pi->socket->window)); - argv[2] = NULL; - - if (!g_spawn_async(NULL, argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD, - NULL, NULL, &pid, &error)) - { - delayed_error(_("Error running applet:\n%s"), error->message); - g_error_free(error); - gtk_widget_destroy(pi->socket); - pi->socket = NULL; - } - else - { - gtk_widget_ref(pi->socket); - on_child_death(pid, (CallbackFn) applet_died, pi->socket); - - gtk_widget_ref(pi->socket); - g_signal_connect(pi->socket, "destroy", - G_CALLBACK(socket_destroyed), pi->widget); - } - - g_free(argv[1]); -} - -static void panel_post_resize(GtkWidget *win, GtkRequisition *req, Panel *panel) -{ - if (panel->side == PANEL_TOP || panel->side == PANEL_BOTTOM) - { - req->width = panel->geometry.width; - req->height += EDGE_WIDTH; - } - else - { - int h = panel->geometry.height; - - if (current_panel[PANEL_TOP]) - { - GtkWidget *win = current_panel[PANEL_TOP]->window; - h -= win->allocation.height; - } - - if (current_panel[PANEL_BOTTOM]) - { - GtkWidget *win = current_panel[PANEL_BOTTOM]->window; - h -= win->allocation.height; - } - - req->height = h; - req->width += EDGE_WIDTH; - } -} - -static void update_side(GtkWidget *side) -{ - GList *kids, *next; - - kids = gtk_container_get_children(GTK_CONTAINER(side)); - for (next = kids; next; next = next->next) - { - PanelIcon *pi; - pi = g_object_get_data(next->data, "icon"); - panel_icon_set_tip(pi); - } - g_list_free(kids); -} - -/* Tips or style has changed -- update everything on this panel */ -static void panel_set_style(Panel *panel) -{ - update_side(panel->before); - update_side(panel->after); - gtk_widget_queue_resize(panel->window); -} - -static gboolean recreate_panels(char **names) -{ - int i; - - for (i = 0; i < PANEL_NUMBER_OF_SIDES; i++) - { - if (names[i]) - { - panel_new(names[i], i); - g_free(names[i]); - } - } - - g_free(names); - - return FALSE; -} - -static void update_side_size(GtkWidget *side) -{ - GList *kids, *next; - - kids = gtk_container_get_children(GTK_CONTAINER(side)); - for (next = kids; next; next = next->next) - { - PanelIcon *pi; - pi = g_object_get_data(next->data, "icon"); - gtk_widget_queue_resize(pi->widget); - } - g_list_free(kids); -} - -/* Update panel size and redraw */ -static void panel_update(Panel *panel) -{ - update_side_size(panel->before); - update_side_size(panel->after); - gtk_widget_queue_resize(panel->window); - gtk_widget_queue_draw(panel->window); -} - -static void panel_style_changed(void) -{ - int i; - - if (o_override_redirect.has_changed) - { - gchar **names; - - names = g_new(char *, PANEL_NUMBER_OF_SIDES); - - for (i = 0; i < PANEL_NUMBER_OF_SIDES; i++) - { - Panel *panel = current_panel[i]; - names[i] = panel ? g_strdup(panel->name) : NULL; - panel_new(NULL, i); - } - - g_idle_add((GtkFunction) recreate_panels, names); - } -} - -static gboolean draw_panel_edge(GtkWidget *widget, GdkEventExpose *event, - Panel *panel) -{ - int x, y, width, height; - - if (panel->side == PANEL_TOP || panel->side == PANEL_BOTTOM) - { - width = panel->geometry.width; - height = EDGE_WIDTH; - - x = 0; - if (panel->side == PANEL_BOTTOM) - y = 0; - else - y = widget->allocation.height - EDGE_WIDTH; - } - else - { - width = EDGE_WIDTH; - height = panel->geometry.height; - - y = 0; - if (panel->side == PANEL_RIGHT) - x = 0; - else - x = widget->allocation.width - EDGE_WIDTH; - } - - gdk_draw_rectangle(widget->window, - widget->style->fg_gc[GTK_STATE_NORMAL], TRUE, - x, y, width, height); - - return FALSE; -} - -static gpointer parent_class; - -static void panel_icon_destroy(Icon *icon) -{ - PanelIcon *pi = (PanelIcon *) icon; - - g_return_if_fail(pi != NULL); - - if (pi->image) - g_object_unref(pi->image); - - g_return_if_fail(pi->widget != NULL); - - gtk_widget_destroy(pi->widget); -} - -static void panel_remove_items(void) -{ - Panel *panel; - - g_return_if_fail(icon_selection != NULL); - - panel = ((PanelIcon *) icon_selection->data)->panel; - - while (icon_selection) - icon_destroy((Icon *) icon_selection->data); - - panel_save(panel); -} - -/* Icon's size, shape or appearance has changed - update the display */ -static void panel_icon_redraw(Icon *icon) -{ - PanelIcon *pi = (PanelIcon *) icon; - - gtk_widget_set_state(pi->widget, - icon->selected ? GTK_STATE_SELECTED - : GTK_STATE_NORMAL); - - /* Will regenerate the scaled icon from the new image */ - gtk_widget_queue_resize(pi->widget); - - panel_icon_set_tip((PanelIcon *) icon); -} - -static void panel_icon_update(Icon *icon) -{ - PanelIcon *pi = (PanelIcon *) icon; - - gtk_widget_queue_draw(pi->widget); - gtk_label_set_text(GTK_LABEL(pi->label), icon->item->leafname); - panel_save(pi->panel); -} - -/* The point of this is to clear the selection if the existing icons - * aren't from the same panel... - */ -static gboolean panel_icon_same_group(Icon *icon, Icon *other) -{ - if (IS_PANEL_ICON(other)) - { - PanelIcon *a = (PanelIcon *) icon; - PanelIcon *b = (PanelIcon *) other; - - return a->panel == b->panel; - } - else - return FALSE; -} - -static void panel_icon_class_init(gpointer gclass, gpointer data) -{ - IconClass *icon = (IconClass *) gclass; - - parent_class = g_type_class_peek_parent(gclass); - - icon->destroy = panel_icon_destroy; - icon->redraw = panel_icon_redraw; - icon->update = panel_icon_update; - icon->remove_items = panel_remove_items; - icon->same_group = panel_icon_same_group; - icon->wink = panel_icon_wink; -} - -static void panel_icon_init(GTypeInstance *object, gpointer gclass) -{ - PanelIcon *pi = (PanelIcon *) object; - - pi->widget = NULL; - pi->image = NULL; - pi->label = NULL; - pi->socket = NULL; - pi->style = TEXT_UNDER_ICON; -} - -static GType panel_icon_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (PanelIconClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - panel_icon_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(PanelIcon), - 0, /* n_preallocs */ - panel_icon_init - }; - - type = g_type_register_static(icon_get_type(), - "PanelIcon", &info, 0); - } - - return type; -} - -static PanelIcon *panel_icon_new(Panel *panel, - const char *pathname, - const char *name) -{ - PanelIcon *pi; - Icon *icon; - - pi = g_object_new(panel_icon_get_type(), NULL); - icon = (Icon *) pi; - - icon_set_path(icon, pathname, name); - pi->panel = panel; - - return pi; -} - -static gboolean panel_want_show_text(PanelIcon *pi) -{ - Icon *icon = (Icon *) pi; - Panel *panel = pi->panel; - - if (!icon->item->leafname[0]) - return FALSE; - - if (panel->style == SHOW_BOTH) - return TRUE; - if (panel->style == SHOW_ICON) - return FALSE; - - if (icon->item->flags & ITEM_FLAG_APPDIR) - return FALSE; - - if (EXECUTABLE_FILE(icon->item)) - return FALSE; - - return TRUE; -} - -static void xinerama_sensitive(GtkBuilder *builder, gboolean sensitive) -{ - gtk_widget_set_sensitive( - GTK_WIDGET(gtk_builder_get_object(builder, "panel_xinerama_monitor")), - sensitive); -} - -inline static Panel *panel_from_opts_widget(GtkWidget *widget) -{ - return g_object_get_data(G_OBJECT(gtk_widget_get_toplevel(widget)), - "rox-panel"); -} - -static void panel_style_radio_toggled(GtkToggleButton *widget, int style) -{ - Panel *panel; - - if (!gtk_toggle_button_get_active(widget)) - return; - panel = panel_from_opts_widget(GTK_WIDGET(widget)); - if (style != panel->style) - { - panel->style = style; - panel_set_style(panel); - panel_save(panel); - } -} - -static void panel_xinerama_changed(Panel *panel) -{ - panel_update_geometry(panel); - reposition_panel(panel->window, &panel->window->allocation, panel); - gtk_widget_queue_resize(panel->window); - panel_save(panel); -} - -static void panel_side_radio_toggled(GtkWidget *widget, PanelSide new_side) -{ - Panel *panel; - PanelSide old_side; - char *name, *other_side_name; - - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) - return; - - panel = panel_from_opts_widget(widget); - old_side = panel->side; - if (new_side == old_side) - return; - - name = g_strdup(panel->name); - other_side_name = current_panel[new_side] - ? g_strdup(current_panel[new_side]->name) - : NULL; - - panel_new(name, new_side); - g_object_set_data(G_OBJECT(gtk_widget_get_toplevel(widget)), - "rox-panel", current_panel[new_side]); - panel_new(other_side_name, old_side); - - g_free(name); - g_free(other_side_name); -} - -static void panel_style_radio_0_toggled_cb(GtkToggleButton *widget) -{ - panel_style_radio_toggled(widget, 0); -} - -static void panel_style_radio_1_toggled_cb(GtkToggleButton *widget) -{ - panel_style_radio_toggled(widget, 1); -} - -static void panel_style_radio_2_toggled_cb(GtkToggleButton *widget) -{ - panel_style_radio_toggled(widget, 2); -} - -static void panel_width_changed_cb(GtkSpinButton *widget) -{ - Panel *panel = panel_from_opts_widget(GTK_WIDGET(widget)); - int width = gtk_spin_button_get_value_as_int(widget); - - if (width != panel->width) - { - panel->width = width; - panel_update(panel); - panel_save(panel); - } -} - -static void panel_avoid_toggled_cb(GtkToggleButton *widget) -{ - Panel *panel = panel_from_opts_widget(GTK_WIDGET(widget)); - gboolean avoid = gtk_toggle_button_get_active(widget); - - if (avoid != panel->avoid) - { - panel->avoid = avoid; - panel_setup_struts(panel, &panel->window->allocation); - panel_save(panel); - } -} - -static void panel_xinerama_confine_toggled_cb(GtkWidget *widget, GtkWidget *spinner) -{ - Panel *panel = panel_from_opts_widget(widget); - gboolean xinerama = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); - - gtk_widget_set_sensitive(spinner, xinerama); - - if (xinerama != panel->xinerama) - { - panel->xinerama = xinerama; - panel_xinerama_changed(panel); - } -} - -static void panel_xinerama_monitor_changed_cb(GtkSpinButton *widget) -{ - Panel *panel = panel_from_opts_widget(GTK_WIDGET(widget)); - int monitor = gtk_spin_button_get_value_as_int(widget); - - if (monitor != panel->monitor) - { - panel->monitor = monitor; - panel_xinerama_changed(panel); - } -} - -static void panel_pos_top_toggled_cb(GtkWidget *widget) -{ - panel_side_radio_toggled(widget, PANEL_TOP); -} - -static void panel_pos_bottom_toggled_cb(GtkWidget *widget) -{ - panel_side_radio_toggled(widget, PANEL_BOTTOM); -} - -static void panel_pos_left_toggled_cb(GtkWidget *widget) -{ - panel_side_radio_toggled(widget, PANEL_LEFT); -} - -static void panel_pos_right_toggled_cb(GtkWidget *widget) -{ - panel_side_radio_toggled(widget, PANEL_RIGHT); -} - -static void panel_connect_dialog_signal_handlers(GtkBuilder *builder, - GObject *object, - const gchar *signal_name, - const gchar *handler_name, - GObject *connect_object, - GConnectFlags flags, - gpointer user_data) -{ - void *fn = NULL; - - if (strcmp(handler_name, "gtk_widget_destroy") == 0) - fn = gtk_widget_destroy; - else if (strcmp(handler_name, "panel_style_radio_0_toggled_cb") == 0) - fn = panel_style_radio_0_toggled_cb; - else if (strcmp(handler_name, "panel_style_radio_0_toggled_cb") == 0) - fn = panel_style_radio_0_toggled_cb; - else if (strcmp(handler_name, "panel_style_radio_1_toggled_cb") == 0) - fn = panel_style_radio_1_toggled_cb; - else if (strcmp(handler_name, "panel_style_radio_2_toggled_cb") == 0) - fn = panel_style_radio_2_toggled_cb; - else if (strcmp(handler_name, "panel_width_changed_cb") == 0) - fn = panel_width_changed_cb; - else if (strcmp(handler_name, "panel_avoid_toggled_cb") == 0) - fn = panel_avoid_toggled_cb; - else if (strcmp(handler_name, "panel_xinerama_confine_toggled_cb") == 0) - fn = panel_xinerama_confine_toggled_cb; - else if (strcmp(handler_name, "panel_xinerama_monitor_changed_cb") == 0) - fn = panel_xinerama_monitor_changed_cb; - else if (strcmp(handler_name, "panel_pos_top_toggled_cb") == 0) - fn = panel_pos_top_toggled_cb; - else if (strcmp(handler_name, "panel_pos_bottom_toggled_cb") == 0) - fn = panel_pos_bottom_toggled_cb; - else if (strcmp(handler_name, "panel_pos_left_toggled_cb") == 0) - fn = panel_pos_left_toggled_cb; - else if (strcmp(handler_name, "panel_pos_right_toggled_cb") == 0) - fn = panel_pos_right_toggled_cb; - - if (fn != NULL) - { - g_signal_connect(object, signal_name, fn, connect_object); - } - else - { - g_warning("Unknown handler '%s'", handler_name); - } -} - -static void panel_setup_options_dialog(GtkBuilder *builder, Panel *panel) -{ - char *wnm; - const char *pos_radio; - - wnm = g_strdup_printf("panel_style_radio_%d", panel->style); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, wnm)), - TRUE); - g_free(wnm); - gtk_spin_button_set_value( - GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "panel_width")), - panel->width); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, "panel_avoid")), - panel->avoid); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, - "panel_xinerama_confine")), - panel->xinerama); - gtk_spin_button_set_adjustment( - GTK_SPIN_BUTTON(gtk_builder_get_object(builder, "panel_xinerama_monitor")), - GTK_ADJUSTMENT(gtk_adjustment_new(MAX(0, panel->monitor), - 0, n_monitors - 1, 1, 10, 0))); - xinerama_sensitive(builder, panel->xinerama); - switch (panel->side) - { - case PANEL_TOP: - pos_radio = "panel_pos_top"; - break; - case PANEL_BOTTOM: - pos_radio = "panel_pos_bottom"; - break; - case PANEL_LEFT: - pos_radio = "panel_pos_left"; - break; - case PANEL_RIGHT: - pos_radio = "panel_pos_right"; - break; - default: - pos_radio = NULL; - break; - } - g_return_if_fail(pos_radio != NULL); - gtk_toggle_button_set_active( - GTK_TOGGLE_BUTTON(gtk_builder_get_object(builder, pos_radio)), - TRUE); -} - -static void panel_show_options(Panel *panel) -{ - GtkWidget *dialog; - gboolean already_showing = FALSE; - GtkBuilder *builder; - gchar *ids[] = {"adjustment1", "adjustment2", "Panel Options", NULL}; - - builder = get_gtk_builder(ids); - - if (panel_options_dialog) - { - dialog = panel_options_dialog; - already_showing = TRUE; - } - else - { - dialog = GTK_WIDGET(gtk_builder_get_object(builder, "Panel Options")); - panel_options_dialog = dialog; - g_signal_connect(dialog, "destroy", - G_CALLBACK(gtk_widget_destroyed), - &panel_options_dialog); - gtk_builder_connect_signals_full(builder, &panel_connect_dialog_signal_handlers, NULL); - } - g_object_set_data(G_OBJECT(panel_options_dialog), "rox-panel", panel); - - panel_setup_options_dialog(builder, panel); - - if (already_showing) - { - GtkWindow *win = GTK_WINDOW(dialog); - - gtk_widget_hide(dialog); - /* This extra set_position() should ensure it moves to new position - * under pointer */ - gtk_window_set_position(win, GTK_WIN_POS_CENTER_ALWAYS); - gtk_window_set_position(win, GTK_WIN_POS_MOUSE); - gtk_window_present(win); - } - else - { - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - gtk_widget_show_all(dialog); - } - - g_object_unref(builder); -} - -static void panel_position_menu(GtkMenu *menu, gint *x, gint *y, - gboolean *push_in, gpointer data) -{ - int *pos = (int *) data; - GtkRequisition requisition; - int margin = pos[2]; - int mon = pos[3]; - int mon_right = monitor_geom[mon].x + - monitor_geom[mon].width; - int mon_bottom = monitor_geom[mon].y + - monitor_geom[mon].height; - - gtk_widget_size_request(GTK_WIDGET(menu), &requisition); - - if (pos[0] == -1) - *x = mon_right - margin - requisition.width; - else if (pos[0] == -2) - *x = monitor_geom[mon].x + margin; - else - *x = pos[0] - (requisition.width >> 2); - - if (pos[1] == -1) - *y = mon_bottom - margin - requisition.height; - else if (pos[1] == -2) - *y = monitor_geom[mon].y + margin; - else - *y = pos[1] - (requisition.height >> 2); - - *x = CLAMP(*x, 0, mon_right - requisition.width); - *y = CLAMP(*y, 0, mon_bottom - requisition.height); - - *push_in = FALSE; -} - -static void panel_remove_callback(PanelSide side) -{ - GtkWidget *dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL, - GTK_MESSAGE_QUESTION, GTK_BUTTONS_OK_CANCEL, - _("Are you sure you want to remove this panel from the desktop?")); - - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); - gtk_window_set_title(GTK_WINDOW(dialog), _("Remove Panel")); - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_OK) - panel_new(NULL, side); - gtk_widget_destroy(dialog); -} - -static void panel_show_menu(GdkEventButton *event, PanelIcon *pi, Panel *panel) -{ - GtkWidget *option_item; - GtkWidget *del_item; - PanelSide side = panel->side; - int pos[4]; - - pos[0] = event->x_root; - pos[1] = event->y_root; - pos[2] = MENU_MARGIN(side); - /* FIXME: Should we read screen from event's window rather than - * using default? */ - pos[3] = gdk_screen_get_monitor_at_point( - gdk_screen_get_default(), - event->x_root, event->y_root); - - option_item = gtk_image_menu_item_new_with_label(_("Panel Options...")); - g_signal_connect_swapped(option_item, "activate", - G_CALLBACK(panel_show_options), panel); - - del_item = gtk_image_menu_item_new_with_label(_("Remove Panel")); - add_stock_to_menu_item(del_item, GTK_STOCK_REMOVE); - g_signal_connect_swapped(del_item, "activate", - G_CALLBACK(panel_remove_callback), GINT_TO_POINTER(side)); - - icon_prepare_menu((Icon *) pi, option_item, del_item, NULL); - - if (side == PANEL_LEFT) - pos[0] = -2; - else if (side == PANEL_RIGHT) - pos[0] = -1; - - if (side == PANEL_TOP) - pos[1] = -2; - else if (side == PANEL_BOTTOM) - pos[1] = -1; - - gtk_menu_popup(GTK_MENU(icon_menu), NULL, NULL, - panel_position_menu, - (gpointer) pos, event->button, event->time); -} - -/* Note: also called from icon handler */ -static gboolean panel_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - Panel *panel) -{ - int panel_x, panel_y; - - gdk_window_get_pointer(panel->window->window, &panel_x, &panel_y, NULL); - - motion_may_raise(panel, panel_x, panel_y); - gdk_drag_status(context, 0, time); - - return TRUE; -} - -static gboolean insert_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - Panel *panel) -{ - int panel_x, panel_y; - - gdk_window_get_pointer(panel->window->window, &panel_x, &panel_y, NULL); - motion_may_raise(panel, panel_x, panel_y); - - return FALSE; -} - -/* Note: also called from icon handler */ -static void panel_drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - Panel *panel) -{ - GdkWindow *pinboard, *window; - GtkAllocation *alloc = &panel->window->allocation; - int x, y; - - window = panel->window->window; - gdk_window_get_pointer(window, &x, &y, NULL); - if ((x < 0 || y < 0 || x > alloc->width || y > alloc->height) && - panel_keep_below(panel, TRUE)) - { - /* Shouldn't need this as well as keep_below but some WMs don't - * automatically lower as soon as the hint is set */ - pinboard = pinboard_get_window(); - window_put_just_above(panel->window->window, pinboard); - } -} - -static void panel_update_geometry(Panel *panel) -{ - if (panel->xinerama && panel->monitor >= n_monitors) - { - g_warning(_("Xinerama monitor %d unavailable"), panel->monitor); - panel->xinerama = FALSE; - } - - if (panel->xinerama) - { - panel->geometry = monitor_geom[panel->monitor]; - } - else if (o_panel_obey_workarea.int_value) - { - get_work_area(&panel->geometry.x, &panel->geometry.y, - &panel->geometry.width, &panel->geometry.height); - } - else - { - panel->geometry.x = panel->geometry.y = 0; - panel->geometry.width = screen_width; - panel->geometry.height = screen_height; - } -} - -static GList *build_monitor_number(Option *option, xmlNode *node, guchar *label) -{ - GtkObject *adj; - - adj = gtk_adjustment_new(MAX(0, panel_monitor), - 0, n_monitors - 1, 1, 10, 1); - return build_numentry_base(option, node, label, GTK_ADJUSTMENT(adj)); -} - -static const char *panel_side_to_translated_name(PanelSide side) -{ - switch (side) - { - case PANEL_TOP: - return _("Top"); - case PANEL_BOTTOM: - return _("Bottom"); - case PANEL_LEFT: - return _("Left"); - case PANEL_RIGHT: - return _("Right"); - case PANEL_DEFAULT_SIDE: - return _("Default"); - default: - break; - } - return _("Unknown side"); -} - -const char *panel_side_to_name(PanelSide side) -{ - switch (side) - { - case PANEL_TOP: - return "Top"; - case PANEL_BOTTOM: - return "Bottom"; - case PANEL_LEFT: - return "Left"; - case PANEL_RIGHT: - return "Right"; - case PANEL_DEFAULT_SIDE: - return "Default"; - default: - break; - } - return "UnknownSide"; -} - -/* Returns PANEL_NUMBER_OF_SIDES if name is invalid */ -PanelSide panel_name_to_side(gchar *side) -{ - if (strcmp(side, "Top") == 0) - return PANEL_TOP; - else if (strcmp(side, "Bottom") == 0) - return PANEL_BOTTOM; - else if (strcmp(side, "Left") == 0) - return PANEL_LEFT; - else if (strcmp(side, "Right") == 0) - return PANEL_RIGHT; - else - g_warning("Unknown panel side '%s'", side); - return PANEL_NUMBER_OF_SIDES; -} - -static void panel_add_callback(PanelSide side) -{ - g_return_if_fail(current_panel[side] == NULL); - panel_new(panel_side_to_name(side), side); -} - -GtkWidget *panel_new_panel_submenu(void) -{ - GtkWidget *menu = gtk_menu_new(); - PanelSide side; - - for (side = 0; side < PANEL_NUMBER_OF_SIDES; ++side) - { - GtkWidget *item = gtk_menu_item_new_with_label( - panel_side_to_translated_name(side)); - - g_signal_connect_swapped(item, "activate", - G_CALLBACK(panel_add_callback), GINT_TO_POINTER(side)); - gtk_widget_set_sensitive(item, current_panel[side] == NULL); - gtk_menu_shell_append(GTK_MENU_SHELL(menu), item); - gtk_widget_show(item); - } - return menu; -} - -/* Set the panel to be above/below other windows (setting = TRUE for below), - * and return TRUE. - * - * If o_panel_on_top is set then do nothing and return FALSE. - */ -static gboolean panel_keep_below(Panel *panel, gboolean setting) -{ - if (!o_panel_on_top.int_value) - { - keep_below(panel->window->window, setting); - return TRUE; - } - return FALSE; -} - diff --git a/ROX-Filer/src/panel.h b/ROX-Filer/src/panel.h deleted file mode 100644 index 14480227..00000000 --- a/ROX-Filer/src/panel.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _PANEL_H -#define _PANEL_H - -typedef enum { - PANEL_TOP, - PANEL_BOTTOM, - PANEL_LEFT, - PANEL_RIGHT, - - PANEL_NUMBER_OF_SIDES, /* (goes after valid sides) */ - - PANEL_DEFAULT_SIDE /* Read from file, or use free side */ -} PanelSide; - -#define MENU_MARGIN(side) ((side) == PANEL_BOTTOM ? 32 : 8) - -struct _Panel { - GtkWidget *window; - GtkAdjustment *adj; /* Scroll position of the bar */ - PanelSide side; - guchar *name; /* Leaf name */ - - GtkWidget *before; /* Icons at the left/top end */ - GtkWidget *after; /* Icons at the right/bottom end */ - - GtkWidget *gap; /* Event box between sides */ - - int autoscroll_to; /* Timeout */ - int autoscroll_speed; /* 0 => not scrolling */ - GdkRectangle geometry; - /* Options */ - int style; /* Possible values defined in panel.c */ - int width; - gboolean xinerama; - int monitor; - gboolean avoid; -}; - -extern Panel *current_panel[PANEL_NUMBER_OF_SIDES]; - -void panel_init(void); -Panel *panel_new(const gchar *name, PanelSide side); -void panel_icon_may_update(Icon *icon); -void panel_save(Panel *panel); - -gboolean panel_add(PanelSide side, - const gchar *path, const gchar *label, gboolean after, const gchar *shortcut, const gchar *args, - gboolean locked); -gboolean panel_remove_item(PanelSide side, const gchar *path, - const gchar *label); -void panel_mark_used(GdkRegion *used); -void panel_update_size(void); - -/* Side names here are English for implementation */ -PanelSide panel_name_to_side(gchar *side); -const char *panel_side_to_name(PanelSide side); - -GtkWidget *panel_new_panel_submenu(void); - -#endif /* _PANEL_H */ diff --git a/ROX-Filer/src/pinboard.c b/ROX-Filer/src/pinboard.c deleted file mode 100644 index 86ffa1cc..00000000 --- a/ROX-Filer/src/pinboard.c +++ /dev/null @@ -1,2897 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* pinboard.c - icons on the desktop background */ - -#include "config.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "global.h" - -#include "pinboard.h" -#include "main.h" -#include "dnd.h" -#include "pixmaps.h" -#include "type.h" -#include "choices.h" -#include "support.h" -#include "gui_support.h" -#include "options.h" -#include "diritem.h" -#include "bind.h" -#include "icon.h" -#include "run.h" -#include "appinfo.h" -#include "menu.h" -#include "xml.h" -#include "tasklist.h" -#include "panel.h" /* For panel_mark_used() */ -#include "wrapped.h" -#include "dropbox.h" - -static gboolean tmp_icon_selected = FALSE; /* When dragging */ - -static GtkWidget *set_backdrop_dialog = NULL; - -struct _Pinboard { - guchar *name; /* Leaf name */ - GList *icons; - GtkStyle *style; - - gchar *backdrop; /* Pathname */ - BackdropStyle backdrop_style; - gint to_backdrop_app; /* pipe FD, or -1 */ - gint from_backdrop_app; /* pipe FD, or -1 */ - gint input_tag; - GString *input_buffer; - - GtkWidget *window; /* Screen-sized window */ - GtkWidget *fixed; - GdkGC *shadow_gc; -}; - -#define IS_PIN_ICON(obj) G_TYPE_CHECK_INSTANCE_TYPE((obj), pin_icon_get_type()) - -typedef struct _PinIconClass PinIconClass; -typedef struct _PinIcon PinIcon; - -struct _PinIconClass { - IconClass parent; -}; - -struct _PinIcon { - Icon icon; - - int x, y; - GtkWidget *win; - GtkWidget *widget; /* The drawing area for the icon */ - GtkWidget *label; -}; - -/* The number of pixels between the bottom of the image and the top - * of the text. - */ -#define GAP 4 - -/* The size of the border around the icon which is used when winking */ -#define WINK_FRAME 2 - -/* Grid sizes */ -#define GRID_STEP_FINE 2 -#define GRID_STEP_MED 16 -#define GRID_STEP_COARSE 32 - -/* Used in options */ -#define CORNER_TOP_LEFT 0 -#define CORNER_TOP_RIGHT 1 -#define CORNER_BOTTOM_LEFT 2 -#define CORNER_BOTTOM_RIGHT 3 - -#define DIR_HORZ 0 -#define DIR_VERT 1 - -static PinIcon *current_wink_icon = NULL; -static gint wink_timeout; - -/* Used for the text colours (only) in the icons */ -GdkColor pin_text_fg_col, pin_text_bg_col; -PangoFontDescription *pinboard_font = NULL; /* NULL => Gtk default */ - -static GdkColor pin_text_shadow_col; - -Pinboard *current_pinboard = NULL; -static gint loading_pinboard = 0; /* Non-zero => loading */ - -/* The Icon that was used to start the current drag, if any */ -Icon *pinboard_drag_in_progress = NULL; - -/* For selecting groups of icons */ -static gboolean lasso_in_progress = FALSE; -static int lasso_rect_x1, lasso_rect_x2; -static int lasso_rect_y1, lasso_rect_y2; - -/* Tracking icon positions */ -static GHashTable *placed_icons=NULL; - -Option o_pinboard_tasklist_per_workspace; -static Option o_pinboard_clamp_icons, o_pinboard_grid_step; -static Option o_pinboard_fg_colour, o_pinboard_bg_colour; -static Option o_pinboard_tasklist, o_forward_buttons_13; -static Option o_iconify_start, o_iconify_dir; -static Option o_label_font, o_pinboard_shadow_colour; -static Option o_pinboard_shadow_labels; -static Option o_blackbox_hack; - -static Option o_top_margin, o_bottom_margin, o_left_margin, o_right_margin; -static Option o_pinboard_image_scaling; - -/* Static prototypes */ -static GType pin_icon_get_type(void); -static void set_size_and_style(PinIcon *pi); -static gint draw_icon(GtkWidget *widget, GdkEventExpose *event, PinIcon *pi); -static gint end_wink(gpointer data); -static gboolean button_release_event(GtkWidget *widget, - GdkEventButton *event, - PinIcon *pi); -static gboolean enter_notify(GtkWidget *widget, - GdkEventCrossing *event, - PinIcon *pi); -static gint leave_notify(GtkWidget *widget, - GdkEventCrossing *event, - PinIcon *pi); -static gboolean button_press_event(GtkWidget *widget, - GdkEventButton *event, - PinIcon *pi); -static gboolean scroll_event(GtkWidget *widget, - GdkEventScroll *event); -static gint icon_motion_notify(GtkWidget *widget, - GdkEventMotion *event, - PinIcon *pi); -static const char *pin_from_file(gchar *line); -static void snap_to_grid(int *x, int *y); -static void offset_from_centre(PinIcon *pi, int *x, int *y); -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - PinIcon *pi); -static void drag_set_pinicon_dest(PinIcon *pi); -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - PinIcon *pi); -static gboolean bg_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - gpointer data); -static gboolean bg_drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - gpointer data); -static gboolean bg_expose(GtkWidget *window, - GdkEventExpose *event, gpointer data); -static void drag_end(GtkWidget *widget, - GdkDragContext *context, - PinIcon *pi); -static void reshape_all(void); -static void pinboard_check_options(void); -static void pinboard_load_from_xml(xmlDocPtr doc); -static void pinboard_clear(void); -static void pinboard_save(void); -static PinIcon *pin_icon_new(const char *pathname, const char *name); -static void pin_icon_destroyed(PinIcon *pi); -static void pin_icon_set_tip(PinIcon *pi); -static void pinboard_show_menu(GdkEventButton *event, PinIcon *pi); -static void create_pinboard_window(Pinboard *pinboard); -static void reload_backdrop(Pinboard *pinboard, - const gchar *backdrop, - BackdropStyle backdrop_style); -static void pinboard_reshape_icon(Icon *icon); -static gint draw_wink(GtkWidget *widget, GdkEventExpose *event, PinIcon *pi); -static void abandon_backdrop_app(Pinboard *pinboard); -static void drag_backdrop_dropped(GtkWidget *drop_box, - const guchar *path, - GtkWidget *dialog); -static void backdrop_response(GtkWidget *dialog, gint response, gpointer data); -static void find_free_rect(Pinboard *pinboard, GdkRectangle *rect, - gboolean old, int start, int direction); -static void update_pinboard_font(void); -static void draw_lasso(void); -static gint lasso_motion(GtkWidget *widget, GdkEventMotion *event, gpointer d); -static void clear_backdrop(GtkWidget *drop_box, gpointer data); -static void radios_changed(Radios *radios, gpointer data); -static void update_radios(GtkWidget *dialog); -static void pinboard_set_backdrop_box(void); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void pinboard_init(void) -{ - option_add_string(&o_pinboard_fg_colour, "pinboard_fg_colour", "#fff"); - option_add_string(&o_pinboard_bg_colour, "pinboard_bg_colour", "#888"); - option_add_string(&o_pinboard_shadow_colour, "pinboard_shadow_colour", - "#000"); - option_add_string(&o_label_font, "label_font", ""); - option_add_int(&o_pinboard_shadow_labels, "pinboard_shadow_labels", 1); - - option_add_int(&o_pinboard_clamp_icons, "pinboard_clamp_icons", 1); - option_add_int(&o_pinboard_grid_step, "pinboard_grid_step", - GRID_STEP_COARSE); - option_add_int(&o_pinboard_tasklist, "pinboard_tasklist", TRUE); - option_add_int(&o_pinboard_tasklist_per_workspace, "pinboard_tasklist_per_workspace", FALSE); - option_add_int(&o_forward_buttons_13, "pinboard_forward_buttons_13", - FALSE); - - option_add_int(&o_iconify_start, "iconify_start", CORNER_TOP_RIGHT); - option_add_int(&o_iconify_dir, "iconify_dir", DIR_VERT); - - option_add_int(&o_blackbox_hack, "blackbox_hack", FALSE); - - option_add_int(&o_top_margin, "pinboard_top_margin", 0); - option_add_int(&o_bottom_margin, "pinboard_bottom_margin", 0); - option_add_int(&o_left_margin, "pinboard_left_margin", 0); - option_add_int(&o_right_margin, "pinboard_right_margin", 0); - - option_add_int(&o_pinboard_image_scaling, "pinboard_image_scaling", 0); - - option_add_notify(pinboard_check_options); - - gdk_color_parse(o_pinboard_fg_colour.value, &pin_text_fg_col); - gdk_color_parse(o_pinboard_bg_colour.value, &pin_text_bg_col); - gdk_color_parse(o_pinboard_shadow_colour.value, &pin_text_shadow_col); - update_pinboard_font(); - - placed_icons=g_hash_table_new(g_str_hash, g_str_equal); -} - -/* Load 'pb_' config file from Choices (if it exists) - * and make it the current pinboard. - * Any existing pinned items are removed. You must call this - * at least once before using the pinboard. NULL disables the - * pinboard. - */ -void pinboard_activate(const gchar *name) -{ - Pinboard *old_board = current_pinboard; - guchar *path, *slash; - - /* Treat an empty name the same as NULL */ - if (name && !*name) - name = NULL; - - if (old_board) - pinboard_clear(); - - if (!name) - { - if (number_of_windows < 1 && gtk_main_level() > 0) - gtk_main_quit(); - - gdk_property_delete(gdk_get_default_root_window(), - gdk_atom_intern("_XROOTPMAP_ID", FALSE)); - return; - } - - number_of_windows++; - - slash = strchr(name, '/'); - if (slash) - { - if (access(name, F_OK)) - path = NULL; /* File does not (yet) exist */ - else - path = g_strdup(name); - } - else - { - guchar *leaf; - - leaf = g_strconcat("pb_", name, NULL); - path = choices_find_xdg_path_load(leaf, PROJECT, SITE); - g_free(leaf); - } - - current_pinboard = g_new(Pinboard, 1); - current_pinboard->name = g_strdup(name); - current_pinboard->icons = NULL; - current_pinboard->window = NULL; - current_pinboard->backdrop = NULL; - current_pinboard->backdrop_style = BACKDROP_NONE; - current_pinboard->to_backdrop_app = -1; - current_pinboard->from_backdrop_app = -1; - current_pinboard->input_tag = -1; - current_pinboard->input_buffer = NULL; - - create_pinboard_window(current_pinboard); - - loading_pinboard++; - if (path) - { - xmlDocPtr doc; - doc = xmlParseFile(path); - if (doc) - { - pinboard_load_from_xml(doc); - xmlFreeDoc(doc); - reload_backdrop(current_pinboard, - current_pinboard->backdrop, - current_pinboard->backdrop_style); - } - else - { - parse_file(path, pin_from_file); - info_message(_("Your old pinboard file has been " - "converted to the new XML format.")); - pinboard_save(); - } - g_free(path); - } - else - pinboard_pin(home_dir, "Home", - 4 + ICON_WIDTH / 2, - 4 + ICON_HEIGHT / 2, - NULL); - loading_pinboard--; - - if (o_pinboard_tasklist.int_value) - tasklist_set_active(TRUE); -} - -/* Return the window of the current pinboard, or NULL. - * Used to make sure lowering the panels doesn't lose them... - */ -GdkWindow *pinboard_get_window(void) -{ - if (current_pinboard) - return current_pinboard->window->window; - return NULL; -} - -const char *pinboard_get_name(void) -{ - g_return_val_if_fail(current_pinboard != NULL, NULL); - - return current_pinboard->name; -} - -/* Add widget to the pinboard. Caller is responsible for coping with pinboard - * being cleared. - */ -void pinboard_add_widget(GtkWidget *widget, const gchar *name) -{ - GtkRequisition req; - GdkRectangle *rect=NULL; - gboolean found=FALSE; - - g_return_if_fail(current_pinboard != NULL); - - gtk_fixed_put(GTK_FIXED(current_pinboard->fixed), widget, 0, 0); - - gtk_widget_size_request(widget, &req); - - if(name) { - rect=g_hash_table_lookup(placed_icons, name); - if(rect) - found=TRUE; - } - /*printf("%s at %p %d\n", name? name: "(nil)", rect, found);*/ - - if(rect) { - if(rect->widthheightwidth = req.width; - rect->height = req.height; - } - /*printf("%s at %d,%d %d\n", name? name: "(nil)", rect->x, - rect->y, found);*/ - find_free_rect(current_pinboard, rect, found, - o_iconify_start.int_value, o_iconify_dir.int_value); - /*printf("%s at %d,%d %d\n", name? name: "(nil)", rect->x, - rect->y, found);*/ - - gtk_fixed_move(GTK_FIXED(current_pinboard->fixed), - widget, rect->x, rect->y); - - /* Store the new position (key and value are never freed) */ - if(name) - g_hash_table_insert(placed_icons, g_strdup(name), - rect); -} - -void pinboard_moved_widget(GtkWidget *widget, const gchar *name, - int x, int y) -{ - GdkRectangle *rect; - - if(!name) - return; - rect=g_hash_table_lookup(placed_icons, name); - if(!rect) - return; - - rect->x=x; - rect->y=y; -} - -/* Add a new icon to the background. - * 'path' should be an absolute pathname. - * 'x' and 'y' are the coordinates of the point in the middle of the text. - * If they are negative, the icon is placed automatically. - * The values then indicate where they should be added. - * x: -1 means left, -2 means right - * y: -1 means top, -2 means bottom - * 'name' is the name to use. If NULL then the leafname of path is used. - * If update is TRUE and there's already an icon for that path, it is updated. - */ -void pinboard_pin_with_args(const gchar *path, const gchar *name, - int x, int y, const gchar *shortcut, - const gchar *args, gboolean locked, gboolean update) -{ - GtkWidget *align, *vbox; - GdkWindow *events; - PinIcon *pi; - Icon *icon; - - g_return_if_fail(path != NULL); - g_return_if_fail(current_pinboard != NULL); - - pi = NULL; - - if (update) - { - GList *iter; - - for (iter = current_pinboard->icons; iter; iter = iter->next) - { - icon = (Icon *) iter->data; - if (strcmp(icon->path, path) == 0) - { - pi = (PinIcon *) icon; - break; - } - } - if (pi) - { - if (x < 0) - x = pi->x; - if (y < 0) - y = pi->y; - icon_set_path(icon, path, name); - goto out; /* The icon is already on the pinboard. */ - } - } - - pi = pin_icon_new(path, name); - icon = (Icon *) pi; - - /* This is a bit complicated... - * - * An icon needs to be a NO_WINDOW widget so that the image can - * blend with the background (A ParentRelative window also works, but - * is slow, causes the xfree86's memory consumption to grow without - * bound, and doesn't even get freed when the filer quits!). - * - * However, the icon also needs to have a window, so we get events - * delivered correctly. The solution is to float an InputOnly window - * over the icon. Since GtkButton works the same way, we just use - * that :-) - */ - - /* Button takes the initial ref of Icon */ - pi->win = gtk_button_new(); - gtk_container_set_border_width(GTK_CONTAINER(pi->win), WINK_FRAME); - g_signal_connect(pi->win, "expose-event", G_CALLBACK(draw_wink), pi); - gtk_button_set_relief(GTK_BUTTON(pi->win), GTK_RELIEF_NONE); - - vbox = gtk_vbox_new(FALSE, 0); - gtk_container_add(GTK_CONTAINER(pi->win), vbox); - - align = gtk_alignment_new(0.5, 0.5, 0, 0); - pi->widget = gtk_hbox_new(FALSE, 0); /* Placeholder */ - gtk_container_add(GTK_CONTAINER(align), pi->widget); - - gtk_box_pack_start(GTK_BOX(vbox), align, FALSE, TRUE, 0); - drag_set_pinicon_dest(pi); - g_signal_connect(pi->win, "drag_data_get", - G_CALLBACK(drag_data_get), NULL); - - pi->label = wrapped_label_new(icon->item->leafname, 180); - gtk_box_pack_start(GTK_BOX(vbox), pi->label, TRUE, TRUE, 0); - - gtk_fixed_put(GTK_FIXED(current_pinboard->fixed), pi->win, 0, 0); - - /* find free space for item if position is not given */ - if (x < 0 || y < 0) - { - GtkRequisition req; - GdkRectangle rect; - int placement = CORNER_TOP_LEFT; - - switch (x) - { - case -1: - if (y == -2) - placement = CORNER_BOTTOM_LEFT; - break; - case -2: - switch (y) - { - case -1: - placement = CORNER_TOP_RIGHT; - break; - case -2: - placement = CORNER_BOTTOM_RIGHT; - break; - } - break; - } - - pinboard_reshape_icon((Icon *) pi); - gtk_widget_size_request(pi->widget, &req); - rect.width = req.width; - rect.height = req.height; - gtk_widget_size_request(pi->label, &req); - rect.width = MAX(rect.width, req.width); - rect.height += req.height; - find_free_rect(current_pinboard, &rect, FALSE, placement, DIR_VERT); - x = rect.x + rect.width/2; - y = rect.y + rect.height/2; - } - - gtk_widget_show_all(pi->win); - - events = GTK_BUTTON(pi->win)->event_window; - gdk_window_set_events(events, - GDK_EXPOSURE_MASK | - GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK | - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_BUTTON1_MOTION_MASK | GDK_BUTTON2_MOTION_MASK | - GDK_BUTTON3_MOTION_MASK); - g_signal_connect(pi->win, "enter-notify-event", - G_CALLBACK(enter_notify), pi); - g_signal_connect(pi->win, "leave-notify-event", - G_CALLBACK(leave_notify), pi); - g_signal_connect(pi->win, "button-press-event", - G_CALLBACK(button_press_event), pi); - g_signal_connect(pi->win, "button-release-event", - G_CALLBACK(button_release_event), pi); - g_signal_connect(pi->win, "motion-notify-event", - G_CALLBACK(icon_motion_notify), pi); - g_signal_connect(pi->win, "expose-event", - G_CALLBACK(draw_icon), pi); - g_signal_connect_swapped(pi->win, "style-set", - G_CALLBACK(pinboard_reshape_icon), pi); - g_signal_connect_swapped(pi->win, "destroy", - G_CALLBACK(pin_icon_destroyed), pi); - - current_pinboard->icons = g_list_prepend(current_pinboard->icons, pi); - -out: - snap_to_grid(&x, &y); - - pi->x = x; - pi->y = y; - - pinboard_reshape_icon((Icon *) pi); - - gtk_widget_realize(pi->win); - - pin_icon_set_tip(pi); - - icon_set_shortcut(icon, shortcut); - icon_set_arguments(icon, args); - icon->locked = locked; - - if (!loading_pinboard) - pinboard_save(); -} - -void pinboard_pin(const gchar *path, const gchar *name, int x, int y, - const gchar *shortcut) -{ - pinboard_pin_with_args(path, name, x, y, shortcut, NULL, FALSE, FALSE); -} - -/* - * Remove an icon from the background. The first icon with a matching - * path is removed. If name is not NULL then that also must match - */ -gboolean pinboard_remove(const gchar *path, const gchar *name) -{ - GList *item; - PinIcon *pi; - Icon *icon; - - g_return_val_if_fail(current_pinboard != NULL, FALSE); - - for(item=current_pinboard->icons; item; item=g_list_next(item)) { - pi=(PinIcon *) item->data; - icon=(Icon *) pi; - - if(strcmp(icon->path, path)!=0) - continue; - - if(name && strcmp(name, icon->item->leafname)!=0) - continue; - - icon->locked = FALSE; - icon_destroy(icon); - - pinboard_save(); - - return TRUE; - } - - return FALSE; -} - -/* Put a border around the icon, briefly. - * If icon is NULL then cancel any existing wink. - * The icon will automatically unhighlight unless timeout is FALSE, - * in which case you must call this function again (with NULL or another - * icon) to remove the highlight. - */ -static void pinboard_wink_item(PinIcon *pi, gboolean timeout) -{ - PinIcon *old = current_wink_icon; - - if (old == pi) - return; - - current_wink_icon = pi; - - if (old) - { - gtk_widget_queue_draw(old->win); - gdk_window_process_updates(old->widget->window, TRUE); - - if (wink_timeout != -1) - g_source_remove(wink_timeout); - } - - if (pi) - { - gtk_widget_queue_draw(pi->win); - gdk_window_process_updates(pi->widget->window, TRUE); - - if (timeout) - wink_timeout = g_timeout_add(300, end_wink, NULL); - else - wink_timeout = -1; - } -} - -/* 'app' is saved as the new application to set the backdrop. It will then be - * run, and should communicate with the filer as described in the manual. - */ -void pinboard_set_backdrop_app(const gchar *app) -{ - XMLwrapper *ai; - DirItem *item; - gboolean can_set; - - item = diritem_new(""); - diritem_restat(app, item, NULL); - if (!(item->flags & ITEM_FLAG_APPDIR)) - { - delayed_error(_("The backdrop handler must be an application " - "directory. Drag an application directory " - "into the Set Backdrop dialog box, or (for " - "programmers) pass it to the SOAP " - "SetBackdropApp method.")); - diritem_free(item); - return; - } - - ai = appinfo_get(app, item); - diritem_free(item); - - can_set = ai && xml_get_section(ai, ROX_NS, "CanSetBackdrop") != NULL; - if (ai) - g_object_unref(ai); - - if (can_set) - pinboard_set_backdrop(app, BACKDROP_PROGRAM); - else - delayed_error(_("You can only set the backdrop to an image " - "or to a program which knows how to " - "manage ROX-Filer's backdrop.\n\n" - "Programmers: the application's AppInfo.xml " - "must contain the CanSetBackdrop element, as " - "described in ROX-Filer's manual.")); -} - -/* Open a dialog box allowing the user to set the backdrop */ -static void pinboard_set_backdrop_box(void) -{ - GtkWidget *dialog, *frame, *label, *hbox; - GtkBox *vbox; - Radios *radios; - - g_return_if_fail(current_pinboard != NULL); - - if (set_backdrop_dialog) - gtk_widget_destroy(set_backdrop_dialog); - - dialog = gtk_dialog_new_with_buttons(_("Set backdrop"), NULL, - GTK_DIALOG_NO_SEPARATOR, - GTK_STOCK_CLOSE, GTK_RESPONSE_OK, - NULL); - set_backdrop_dialog = dialog; - g_signal_connect(dialog, "destroy", - G_CALLBACK(gtk_widget_destroyed), &set_backdrop_dialog); - vbox = GTK_BOX(GTK_DIALOG(dialog)->vbox); - - gtk_window_set_position(GTK_WINDOW(dialog), GTK_WIN_POS_MOUSE); - - label = gtk_label_new(_("Choose a style and drag an image in:")); - gtk_misc_set_padding(GTK_MISC(label), 4, 0); - gtk_misc_set_alignment(GTK_MISC(label), 0, 0); - gtk_box_pack_start(vbox, label, TRUE, TRUE, 4); - - /* The Centred, Scaled, Fit, Tiled radios... */ - hbox = gtk_hbox_new(TRUE, 2); - gtk_box_pack_start(vbox, hbox, TRUE, TRUE, 4); - - radios = radios_new(radios_changed, dialog); - g_object_set_data(G_OBJECT(dialog), "rox-radios", radios); - g_object_set_data(G_OBJECT(dialog), "rox-radios-hbox", hbox); - - radios_add(radios, _("Centre the image without scaling it"), - BACKDROP_CENTRE, _("Centre")); - radios_add(radios, _("Scale the image to fit the backdrop area, " - "without distorting it"), - BACKDROP_SCALE, _("Scale")); - radios_add(radios, _("Scale the image to fit the backdrop area, " - "regardless of image dimensions - overscale"), - BACKDROP_FIT, _("Fit")); - radios_add(radios, _("Stretch the image to fill the backdrop area"), - BACKDROP_STRETCH, _("Stretch")); - radios_add(radios, _("Tile the image over the backdrop area"), - BACKDROP_TILE, _("Tile")); - - update_radios(dialog); - - /* The drop area... */ - frame = drop_box_new(_("Drop an image here")); - g_object_set_data(G_OBJECT(dialog), "rox-dropbox", frame); - - radios_pack(radios, GTK_BOX(hbox)); - gtk_box_pack_start(vbox, frame, TRUE, TRUE, 4); - - drop_box_set_path(DROP_BOX(frame), current_pinboard->backdrop); - - g_signal_connect(frame, "path_dropped", - G_CALLBACK(drag_backdrop_dropped), dialog); - g_signal_connect(frame, "clear", - G_CALLBACK(clear_backdrop), dialog); - - g_signal_connect(dialog, "response", - G_CALLBACK(backdrop_response), NULL); - gtk_dialog_set_default_response(GTK_DIALOG(dialog), GTK_RESPONSE_OK); - - gtk_widget_show_all(dialog); -} - -/* Also used by tasklist.c */ -void draw_label_shadow(WrappedLabel *wl, GdkRegion *region) -{ - GtkWidget *widget; - gint x, y; - - if (!o_pinboard_shadow_labels.int_value) - return; - - gdk_gc_set_clip_region(current_pinboard->shadow_gc, region); - - widget = GTK_WIDGET(wl); - - y = widget->allocation.y - wl->y_off; - x = widget->allocation.x - wl->x_off - - ((wl->text_width - widget->allocation.width) >> 1); - - gdk_draw_layout(widget->window, current_pinboard->shadow_gc, - x + 1, y + 1, wl->layout); - - if (o_pinboard_shadow_labels.int_value > 1) - gdk_draw_layout(widget->window, current_pinboard->shadow_gc, - x + 2, y + 2, wl->layout); - - gdk_gc_set_clip_region(current_pinboard->shadow_gc, NULL); -} - -/* Set and save (path, style) as the new backdrop. - * If style is BACKDROP_PROGRAM, the program is run to get the backdrop. - * Otherwise, the image is displayed now. - */ -void pinboard_set_backdrop(const gchar *path, BackdropStyle style) -{ - g_return_if_fail((path == NULL && style == BACKDROP_NONE) || - (path != NULL && style != BACKDROP_NONE)); - - if (!current_pinboard) - { - if (!path) - return; - pinboard_activate("Default"); - delayed_error(_("No pinboard was in use... " - "the 'Default' pinboard has been selected. " - "Use 'rox -p=Default' to turn it on in " - "future.")); - g_return_if_fail(current_pinboard != NULL); - } - - /* We might have just run the old backdrop program and now - * we're going to set a new one! Seems a bit mean... - */ - - abandon_backdrop_app(current_pinboard); - - g_free(current_pinboard->backdrop); - current_pinboard->backdrop = g_strdup(path); - current_pinboard->backdrop_style = style; - reload_backdrop(current_pinboard, - current_pinboard->backdrop, - current_pinboard->backdrop_style); - - pinboard_save(); - - if (set_backdrop_dialog) - { - DropBox *box = g_object_get_data(G_OBJECT(set_backdrop_dialog), - "rox-dropbox"); - g_return_if_fail(box != NULL); - drop_box_set_path(box, current_pinboard->backdrop); - update_radios(set_backdrop_dialog); - } -} - -/* Called on xrandr screen resizes */ -void pinboard_update_size(void) -{ - int width, height; - - if (!current_pinboard) - return; - - gtk_window_get_size(GTK_WINDOW(current_pinboard->window), - &width, &height); - - /* Only update the pinboard's size if the screen gets bigger, - * not smaller. Not sure what to do about icons that end up - * offscreen if the screen shrinks, but perhaps a good policy - * is to leave them there until the screen size is increased - * again rather than mess them around. */ - width = MAX(width, screen_width); - height = MAX(height, screen_height); - - gtk_widget_set_size_request(current_pinboard->window, width, height); -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -static void backdrop_response(GtkWidget *dialog, gint response, gpointer data) -{ - gtk_widget_destroy(dialog); -} - -static void clear_backdrop(GtkWidget *drop_box, gpointer data) -{ - pinboard_set_backdrop(NULL, BACKDROP_NONE); -} - -static void drag_backdrop_dropped(GtkWidget *drop_box, - const guchar *path, - GtkWidget *dialog) -{ - struct stat info; - Radios *radios; - - radios = g_object_get_data(G_OBJECT(dialog), "rox-radios"); - g_return_if_fail(radios != NULL); - - if (mc_stat(path, &info)) - { - delayed_error( - _("Can't access '%s':\n%s"), path, - g_strerror(errno)); - return; - } - - if (S_ISDIR(info.st_mode)) - { - /* Use this program to set the backdrop */ - pinboard_set_backdrop_app(path); - } - else if (S_ISREG(info.st_mode)) - pinboard_set_backdrop(path, radios_get_value(radios)); - else - delayed_error(_("Only files (and certain applications) can be " - "used to set the background image.")); -} - -/* Do this in the idle loop so that we don't try to put an unmanaged - * pinboard behind a managed panel (crashes some WMs). - */ -static gboolean recreate_pinboard(gchar *name) -{ - pinboard_activate(name); - g_free(name); - - return FALSE; -} - -static void pinboard_check_options(void) -{ - GdkColor n_fg, n_bg, n_shadow; - - gdk_color_parse(o_pinboard_fg_colour.value, &n_fg); - gdk_color_parse(o_pinboard_bg_colour.value, &n_bg); - gdk_color_parse(o_pinboard_shadow_colour.value, &n_shadow); - - if (o_override_redirect.has_changed && current_pinboard) - { - gchar *name; - name = g_strdup(current_pinboard->name); - pinboard_activate(NULL); - g_idle_add((GtkFunction) recreate_pinboard, name); - } - - tasklist_set_active(o_pinboard_tasklist.int_value && current_pinboard); - - if (gdk_color_equal(&n_fg, &pin_text_fg_col) == 0 || - gdk_color_equal(&n_bg, &pin_text_bg_col) == 0 || - gdk_color_equal(&n_shadow, &pin_text_shadow_col) == 0 || - o_pinboard_shadow_labels.has_changed || - o_label_font.has_changed) - { - pin_text_fg_col = n_fg; - pin_text_bg_col = n_bg; - pin_text_shadow_col = n_shadow; - update_pinboard_font(); - - if (current_pinboard) - { - GtkWidget *w = current_pinboard->window; - GdkColormap *cm; - - cm = gtk_widget_get_colormap(w); - - gdk_colormap_alloc_color(cm, &n_bg, FALSE, TRUE); - gtk_widget_modify_bg(w, GTK_STATE_NORMAL, &n_bg); - - gdk_gc_set_rgb_fg_color(current_pinboard->shadow_gc, - &n_shadow); - - abandon_backdrop_app(current_pinboard); - reload_backdrop(current_pinboard, - current_pinboard->backdrop, - current_pinboard->backdrop_style); - - reshape_all(); - } - - tasklist_style_changed(); - } -} - -static gint end_wink(gpointer data) -{ - pinboard_wink_item(NULL, FALSE); - return FALSE; -} - -/* Sets the appearance from the options and updates the size request of - * the image. - */ -static void set_size_and_style(PinIcon *pi) -{ - Icon *icon = (Icon *) pi; - MaskedPixmap *image = di_image(icon->item); - int iwidth = image->width; - int iheight = image->height; - - gtk_widget_modify_fg(pi->label, GTK_STATE_PRELIGHT, &pin_text_fg_col); - gtk_widget_modify_bg(pi->label, GTK_STATE_PRELIGHT, &pin_text_bg_col); - gtk_widget_modify_fg(pi->label, GTK_STATE_NORMAL, &pin_text_fg_col); - gtk_widget_modify_bg(pi->label, GTK_STATE_NORMAL, &pin_text_bg_col); - widget_modify_font(pi->label, pinboard_font); - - wrapped_label_set_text(WRAPPED_LABEL(pi->label), icon->item->leafname); - - gtk_widget_set_size_request(pi->widget, iwidth, iheight); -} - -static GdkPixbuf *get_stock_icon(GtkWidget *widget, - const char *stock_id) -{ - GtkIconSet *icon_set; - GdkPixbuf *pixbuf; - - icon_set = gtk_style_lookup_icon_set(widget->style, - stock_id); - if (icon_set) - { - pixbuf = gtk_icon_set_render_icon(icon_set, - widget->style, - GTK_TEXT_DIR_LTR, - GTK_STATE_NORMAL, - mount_icon_size, - NULL, - NULL); - } - else - { - pixbuf=im_unknown->pixbuf; - g_object_ref(pixbuf); - } - - return pixbuf; -} - -static gint draw_icon(GtkWidget *widget, GdkEventExpose *event, PinIcon *pi) -{ - static GtkWidgetClass *parent_class = NULL; - Icon *icon = (Icon *) pi; - DirItem *item = icon->item; - MaskedPixmap *image = di_image(item); - int iwidth = image->width; - int iheight = image->height; - int x, y; - GdkPixbuf *pixbuf; - - if (!parent_class) - { - gpointer c = ((GTypeInstance *) widget)->g_class; - parent_class = (GtkWidgetClass *) g_type_class_peek_parent(c); - } - - x = pi->widget->allocation.x; - y = pi->widget->allocation.y; - - gdk_gc_set_clip_region(pi->widget->style->black_gc, event->region); - - pixbuf = icon->selected - ? create_spotlight_pixbuf(image->pixbuf, - &pi->widget->style->base[GTK_STATE_SELECTED]) - : image->pixbuf; - - render_pixbuf(pixbuf, - pi->widget->window, - pi->widget->style->black_gc, - x, y, iwidth, iheight); - - if (icon->selected) - g_object_unref(pixbuf); - - if (item->flags & ITEM_FLAG_SYMLINK) - { - GdkPixbuf *emblem = get_stock_icon(pi->widget, - ROX_STOCK_SYMLINK); - render_pixbuf(emblem, pi->widget->window, - pi->widget->style->black_gc, - x, y, -1, -1); - g_object_unref(emblem); - } - else if (item->flags & ITEM_FLAG_MOUNT_POINT) - { - GdkPixbuf *emblem = get_stock_icon(pi->widget, - item->flags & ITEM_FLAG_MOUNTED - ? ROX_STOCK_MOUNTED - : ROX_STOCK_MOUNT); - - render_pixbuf(emblem, pi->widget->window, - pi->widget->style->black_gc, - x, y, -1, -1); - g_object_unref(emblem); - } - - gdk_gc_set_clip_region(pi->widget->style->black_gc, NULL); - - if (icon->selected) - { - GtkStyle *style = pi->label->style; - GdkGC *gc = style->bg_gc[GTK_STATE_SELECTED]; - - gdk_gc_set_clip_region(gc, event->region); - gdk_draw_rectangle(pi->label->window, gc, TRUE, - pi->label->allocation.x, - pi->label->allocation.y, - pi->label->allocation.width, - pi->label->allocation.height); - gdk_gc_set_clip_region(gc, NULL); - } - else if (o_pinboard_shadow_labels.int_value) - draw_label_shadow((WrappedLabel *) pi->label, event->region); - - /* Draw children */ - gdk_gc_set_clip_region(pi->label->style->fg_gc[GTK_STATE_NORMAL], - event->region); - (parent_class->expose_event)(widget, event); - gdk_gc_set_clip_region(pi->label->style->fg_gc[GTK_STATE_NORMAL], NULL); - - /* Stop the button effect */ - return TRUE; -} - -static gint draw_wink(GtkWidget *widget, GdkEventExpose *event, PinIcon *pi) -{ - gint x, y, width, height; - - if (current_wink_icon != pi) - return FALSE; - - x = widget->allocation.x; - y = widget->allocation.y; - width = widget->allocation.width; - height = widget->allocation.height; - - gdk_draw_rectangle(widget->window, - pi->widget->style->white_gc, - FALSE, - x, y, width - 1, height - 1); - gdk_draw_rectangle(widget->window, - pi->widget->style->black_gc, - FALSE, - x + 1, y + 1, width - 3, height - 3); - - return FALSE; -} - -static gboolean enter_notify(GtkWidget *widget, - GdkEventCrossing *event, - PinIcon *pi) -{ - icon_may_update((Icon *) pi); - pin_icon_set_tip(pi); - return TRUE; -} - -static gint leave_notify(GtkWidget *widget, - GdkEventCrossing *event, - PinIcon *pi) -{ - return TRUE; -} - -static void select_lasso(void) -{ - GList *next; - int minx, miny, maxx, maxy; - - g_return_if_fail(lasso_in_progress == TRUE); - - minx = MIN(lasso_rect_x1, lasso_rect_x2); - miny = MIN(lasso_rect_y1, lasso_rect_y2); - maxx = MAX(lasso_rect_x1, lasso_rect_x2); - maxy = MAX(lasso_rect_y1, lasso_rect_y2); - - for (next = current_pinboard->icons; next; next = next->next) - { - PinIcon *pi = (PinIcon *) next->data; - GtkAllocation *alloc = &pi->win->allocation; - int cx = alloc->x + alloc->width / 2; - int cy = alloc->y + alloc->height / 2; - - if (cx > minx && cx < maxx && cy > miny && cy < maxy) - icon_set_selected((Icon *) pi, TRUE); - } -} - -static void cancel_lasso(void) -{ - draw_lasso(); - lasso_in_progress = FALSE; -} - -static void pinboard_lasso_box(int start_x, int start_y) -{ - if (lasso_in_progress) - cancel_lasso(); - lasso_in_progress = TRUE; - lasso_rect_x1 = lasso_rect_x2 = start_x; - lasso_rect_y1 = lasso_rect_y2 = start_y; - - draw_lasso(); -} - -static gint lasso_motion(GtkWidget *widget, GdkEventMotion *event, gpointer d) -{ - if (!lasso_in_progress) - return FALSE; - - if (lasso_rect_x2 != event->x || lasso_rect_y2 != event->y) - { - draw_lasso(); - lasso_rect_x2 = event->x; - lasso_rect_y2 = event->y; - draw_lasso(); - } - - return FALSE; -} - -/* Mark the area of the screen covered by the lasso box for redraw */ -static void draw_lasso(void) -{ - GdkRectangle area, edge; - - if (!lasso_in_progress) - return; - - area.x = MIN(lasso_rect_x1, lasso_rect_x2); - area.y = MIN(lasso_rect_y1, lasso_rect_y2); - area.width = ABS(lasso_rect_x1 - lasso_rect_x2); - area.height = ABS(lasso_rect_y1 - lasso_rect_y2); - - edge.x = area.x; - edge.y = area.y; - edge.width = area.width; - - edge.height = 2; /* Top */ - gdk_window_invalidate_rect(current_pinboard->window->window, - &edge, TRUE); - - edge.y += area.height - 2; /* Bottom */ - gdk_window_invalidate_rect(current_pinboard->window->window, - &edge, TRUE); - - edge.y = area.y; - edge.height = area.height; - edge.width = 2; /* Left */ - gdk_window_invalidate_rect(current_pinboard->window->window, - &edge, TRUE); - - edge.x += area.width - 2; /* Right */ - gdk_window_invalidate_rect(current_pinboard->window->window, - &edge, TRUE); -} - -static void perform_action(PinIcon *pi, GdkEventButton *event) -{ - BindAction action; - Icon *icon = (Icon *) pi; - - action = bind_lookup_bev(pi ? BIND_PINBOARD_ICON : BIND_PINBOARD, - event); - - /* Actions that can happen with or without an icon */ - switch (action) - { - case ACT_LASSO_CLEAR: - icon_select_only(NULL); - /* (no break) */ - case ACT_LASSO_MODIFY: - pinboard_lasso_box(event->x, event->y); - return; - case ACT_CLEAR_SELECTION: - icon_select_only(NULL); - return; - case ACT_POPUP_MENU: - dnd_motion_ungrab(); - pinboard_show_menu(event, pi); - return; - case ACT_IGNORE: - return; - default: - break; - } - - g_return_if_fail(pi != NULL); - - switch (action) - { - case ACT_OPEN_ITEM: - dnd_motion_ungrab(); - pinboard_wink_item(pi, TRUE); - if (event->type == GDK_2BUTTON_PRESS) - icon_set_selected(icon, FALSE); - icon_run(icon); - break; - case ACT_EDIT_ITEM: - dnd_motion_ungrab(); - pinboard_wink_item(pi, TRUE); - if (event->type == GDK_2BUTTON_PRESS) - icon_set_selected(icon, FALSE); - run_diritem(icon->path, icon->item, NULL, NULL, TRUE); - break; - case ACT_PRIME_AND_SELECT: - if (!icon->selected) - icon_select_only(icon); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_AND_TOGGLE: - icon_set_selected(icon, !icon->selected); - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_PRIME_FOR_DND: - dnd_motion_start(MOTION_READY_FOR_DND); - break; - case ACT_TOGGLE_SELECTED: - icon_set_selected(icon, !icon->selected); - break; - case ACT_SELECT_EXCL: - icon_select_only(icon); - break; - default: - g_warning("Unsupported action : %d\n", action); - break; - } -} - -static void forward_to_root(GdkEventButton *event) -{ - XButtonEvent xev; - - if (event->type == GDK_BUTTON_PRESS) - { - xev.type = ButtonPress; - if (!o_blackbox_hack.int_value) - { - gdk_display_pointer_ungrab(gdk_x11_lookup_xdisplay(gdk_display), - event->time); - } - } - else - xev.type = ButtonRelease; - - xev.window = gdk_x11_get_default_root_xwindow(); - xev.root = xev.window; - xev.subwindow = None; - xev.time = event->time; - xev.x = event->x_root; /* Needed for icewm */ - xev.y = event->y_root; - xev.x_root = event->x_root; - xev.y_root = event->y_root; - xev.state = event->state; - xev.button = event->button; - xev.same_screen = True; - - XSendEvent(gdk_display, xev.window, False, - ButtonPressMask | ButtonReleaseMask, (XEvent *) &xev); -} - -#define FORWARDED_BUTTON(pi, b) ((b) == 2 || \ - (((b) == 3 || (b) == 1) && o_forward_buttons_13.int_value && !pi)) - -/* pi is NULL if this is a root event */ -static gboolean button_release_event(GtkWidget *widget, - GdkEventButton *event, - PinIcon *pi) -{ - if (FORWARDED_BUTTON(pi, event->button)) - forward_to_root(event); - else if (dnd_motion_release(event)) - { - if (motion_buttons_pressed == 0 && lasso_in_progress) - { - select_lasso(); - cancel_lasso(); - } - return FALSE; - } - - perform_action(pi, event); - - return TRUE; -} - -/* pi is NULL if this is a root event */ -static gboolean button_press_event(GtkWidget *widget, - GdkEventButton *event, - PinIcon *pi) -{ - /* Just in case we've jumped in front of everything... */ - gdk_window_lower(current_pinboard->window->window); - - if (FORWARDED_BUTTON(pi, event->button)) - forward_to_root(event); - else if (dnd_motion_press(widget, event)) - perform_action(pi, event); - - return TRUE; -} - -/* Forward mouse scroll events as buttons 4 and 5 to the window manager - * (for old window managers that don't catch the buttons themselves) - */ -static gboolean scroll_event(GtkWidget *widget, GdkEventScroll *event) -{ - XButtonEvent xev; - - xev.type = ButtonPress; - xev.window = gdk_x11_get_default_root_xwindow(); - xev.root = xev.window; - xev.subwindow = None; - xev.time = event->time; - xev.x = event->x_root; /* Needed for icewm */ - xev.y = event->y_root; - xev.x_root = event->x_root; - xev.y_root = event->y_root; - xev.state = event->state; - xev.same_screen = True; - - if (event->direction == GDK_SCROLL_UP) - xev.button = 4; - else if (event->direction == GDK_SCROLL_DOWN) - xev.button = 5; - else - return FALSE; - - XSendEvent(gdk_display, xev.window, False, - ButtonPressMask, (XEvent *) &xev); - - return TRUE; -} - -static void start_drag(PinIcon *pi, GdkEventMotion *event) -{ - GtkWidget *widget = pi->win; - Icon *icon = (Icon *) pi; - - if (!icon->selected) - { - tmp_icon_selected = TRUE; - icon_select_only(icon); - } - - g_return_if_fail(icon_selection != NULL); - - pinboard_drag_in_progress = icon; - - if (icon_selection->next == NULL) - drag_one_item(widget, event, icon->path, icon->item, NULL); - else - { - guchar *uri_list; - - uri_list = icon_create_uri_list(); - drag_selection(widget, event, uri_list); - g_free(uri_list); - } -} - -/* An icon is being dragged around... */ -static gint icon_motion_notify(GtkWidget *widget, - GdkEventMotion *event, - PinIcon *pi) -{ - if (motion_state == MOTION_READY_FOR_DND) - { - if (dnd_motion_moved(event)) - start_drag(pi, event); - return TRUE; - } - - return FALSE; -} - -static void backdrop_from_xml(xmlNode *node) -{ - gchar *style; - - g_free(current_pinboard->backdrop); - current_pinboard->backdrop = xmlNodeGetContent(node); - - style = xmlGetProp(node, "style"); - - if (style) - { - current_pinboard->backdrop_style = - g_ascii_strcasecmp(style, "Tiled") == 0 ? BACKDROP_TILE : - g_ascii_strcasecmp(style, "Scaled") == 0 ? BACKDROP_SCALE : - g_ascii_strcasecmp(style, "Fit") == 0 ? BACKDROP_FIT : - g_ascii_strcasecmp(style, "Stretched") == 0 ? BACKDROP_STRETCH : - g_ascii_strcasecmp(style, "Centred") == 0 ? BACKDROP_CENTRE : - g_ascii_strcasecmp(style, "Program") == 0 ? BACKDROP_PROGRAM : - BACKDROP_NONE; - g_free(style); - } - else - current_pinboard->backdrop_style = BACKDROP_TILE; -} - -/* Create one pinboard icon for each icon in the doc */ -static void pinboard_load_from_xml(xmlDocPtr doc) -{ - xmlNodePtr node, root; - char *tmp, *label, *path, *shortcut, *args; - int x, y; - gboolean locked; - - root = xmlDocGetRootElement(doc); - - for (node = root->xmlChildrenNode; node; node = node->next) - { - if (node->type != XML_ELEMENT_NODE) - continue; - if (strcmp(node->name, "backdrop") == 0) - { - backdrop_from_xml(node); - continue; - } - if (strcmp(node->name, "icon") != 0) - continue; - - tmp = xmlGetProp(node, "x"); - if (!tmp) - continue; - x = atoi(tmp); - g_free(tmp); - - tmp = xmlGetProp(node, "y"); - if (!tmp) - continue; - y = atoi(tmp); - g_free(tmp); - - label = xmlGetProp(node, "label"); - if (!label) - label = g_strdup(""); - path = xmlNodeGetContent(node); - if (!path) - path = g_strdup(""); - shortcut = xmlGetProp(node, "shortcut"); - args = xmlGetProp(node, "args"); - - tmp = xmlGetProp(node, "locked"); - if (tmp) - { - locked = text_to_boolean(tmp, FALSE); - g_free(tmp); - } - else - locked = FALSE; - - pinboard_pin_with_args(path, label, x, y, shortcut, args, locked, FALSE); - - g_free(path); - g_free(label); - g_free(shortcut); - g_free(args); - } -} - -/* Called for each line in the pinboard file while loading a new board. - * Only used for old-format files when converting to XML. - */ -static const char *pin_from_file(gchar *line) -{ - gchar *leaf = NULL; - int x, y, n; - - if (*line == '<') - { - gchar *end; - - end = strchr(line + 1, '>'); - if (!end) - return _("Missing '>' in icon label"); - - leaf = g_strndup(line + 1, end - line - 1); - - line = end + 1; - - while (g_ascii_isspace(*line)) - line++; - if (*line != ',') - return _("Missing ',' after icon label"); - line++; - } - - if (sscanf(line, " %d , %d , %n", &x, &y, &n) < 2) - return NULL; /* Ignore format errors */ - - pinboard_pin(line + n, leaf, x, y, NULL); - - g_free(leaf); - - return NULL; -} - -/* Write the current state of the pinboard to the current pinboard file */ -static void pinboard_save(void) -{ - guchar *save = NULL; - guchar *save_new = NULL; - GList *next; - xmlDocPtr doc = NULL; - xmlNodePtr root; - - g_return_if_fail(current_pinboard != NULL); - - if (strchr(current_pinboard->name, '/')) - save = g_strdup(current_pinboard->name); - else - { - guchar *leaf; - - leaf = g_strconcat("pb_", current_pinboard->name, NULL); - save = choices_find_xdg_path_save(leaf, PROJECT, SITE, TRUE); - g_free(leaf); - } - - if (!save) - return; - - doc = xmlNewDoc("1.0"); - xmlDocSetRootElement(doc, xmlNewDocNode(doc, NULL, "pinboard", NULL)); - - root = xmlDocGetRootElement(doc); - - if (current_pinboard->backdrop) - { - BackdropStyle style = current_pinboard->backdrop_style; - xmlNodePtr tree; - - tree = xmlNewTextChild(root, NULL, "backdrop", - current_pinboard->backdrop); - xmlSetProp(tree, "style", - style == BACKDROP_TILE ? "Tiled" : - style == BACKDROP_CENTRE ? "Centred" : - style == BACKDROP_SCALE ? "Scaled" : - style == BACKDROP_FIT ? "Fit" : - style == BACKDROP_STRETCH ? "Stretched" : - "Program"); - } - - for (next = current_pinboard->icons; next; next = next->next) - { - xmlNodePtr tree; - PinIcon *pi = (PinIcon *) next->data; - Icon *icon = (Icon *) pi; - char *tmp; - - tree = xmlNewTextChild(root, NULL, "icon", icon->src_path); - - tmp = g_strdup_printf("%d", pi->x); - xmlSetProp(tree, "x", tmp); - g_free(tmp); - - tmp = g_strdup_printf("%d", pi->y); - xmlSetProp(tree, "y", tmp); - g_free(tmp); - - xmlSetProp(tree, "label", icon->item->leafname); - if (icon->shortcut) - xmlSetProp(tree, "shortcut", icon->shortcut); - if (icon->args) - xmlSetProp(tree, "args", icon->args); - if (icon->locked) - xmlSetProp(tree, "locked", "true"); - } - - save_new = g_strconcat(save, ".new", NULL); - if (save_xml_file(doc, save_new) || rename(save_new, save)) - delayed_error(_("Error saving pinboard %s: %s"), - save, g_strerror(errno)); - g_free(save_new); - - g_free(save); - if (doc) - xmlFreeDoc(doc); -} - -static void snap_to_grid(int *x, int *y) -{ - int step = o_pinboard_grid_step.int_value; - - *x = ((*x + step / 2) / step) * step; - *y = ((*y + step / 2) / step) * step; -} - -/* Convert (x,y) from a centre point to a window position */ -static void offset_from_centre(PinIcon *pi, int *x, int *y) -{ - gboolean clamp = o_pinboard_clamp_icons.int_value; - GtkRequisition req; - - gtk_widget_size_request(pi->win, &req); - - *x -= req.width >> 1; - *y -= req.height >> 1; - *x = CLAMP(*x, 0, screen_width - (clamp ? req.width : 0)); - *y = CLAMP(*y, 0, screen_height - (clamp ? req.height : 0)); -} - -/* Same as drag_set_dest(), but for pinboard icons */ -static void drag_set_pinicon_dest(PinIcon *pi) -{ - GtkObject *obj = GTK_OBJECT(pi->win); - - make_drop_target(pi->win, 0); - - g_signal_connect(obj, "drag_motion", G_CALLBACK(drag_motion), pi); - g_signal_connect(obj, "drag_leave", G_CALLBACK(drag_leave), pi); - g_signal_connect(obj, "drag_end", G_CALLBACK(drag_end), pi); -} - -/* Called during the drag when the mouse is in a widget registered - * as a drop target. Returns TRUE if we can accept the drop. - */ -static gboolean drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - PinIcon *pi) -{ - GdkDragAction action = context->suggested_action; - const char *type = NULL; - Icon *icon = (Icon *) pi; - DirItem *item = icon->item; - - if (gtk_drag_get_source_widget(context) == widget) - { - g_dataset_set_data(context, "drop_dest_type", - (gpointer) drop_dest_pass_through); - return FALSE; /* Can't drag something to itself! */ - } - - if (icon->selected) - goto out; /* Can't drag a selection to itself */ - - type = dnd_motion_item(context, &item); - - if ((context->actions & GDK_ACTION_ASK) && o_dnd_left_menu.int_value - && type != drop_dest_prog) - { - guint state; - gdk_window_get_pointer(NULL, NULL, NULL, &state); - if (state & GDK_BUTTON1_MASK) - action = GDK_ACTION_ASK; - } - - if (!item) - type = NULL; -out: - /* We actually must pretend to accept the drop, even if the - * directory isn't writeable, so that the spring-opening - * thing works. - */ - - /* Don't allow drops to non-writeable directories */ - if (o_dnd_spring_open.int_value == FALSE && - type == drop_dest_dir && - access(icon->path, W_OK) != 0) - { - type = NULL; - } - - g_dataset_set_data(context, "drop_dest_type", (gpointer) type); - if (type) - { - gdk_drag_status(context, action, time); - g_dataset_set_data_full(context, "drop_dest_path", - g_strdup(icon->path), g_free); - if (type == drop_dest_dir) - dnd_spring_load(context, NULL); - - pinboard_wink_item(pi, FALSE); - } - else - gdk_drag_status(context, 0, time); - - /* Always return TRUE to stop the pinboard getting the events */ - return TRUE; -} - -static gboolean pinboard_shadow = FALSE; -static gint shadow_x, shadow_y; -#define SHADOW_SIZE (ICON_WIDTH) - -static gboolean bg_expose(GtkWidget *widget, - GdkEventExpose *event, gpointer data) -{ - GdkRectangle clipbox; - gpointer gclass = ((GTypeInstance *) widget)->g_class; - gboolean double_buffer; - - gdk_gc_set_clip_region(widget->style->white_gc, event->region); - gdk_gc_set_clip_region(widget->style->black_gc, event->region); - - gdk_region_get_clipbox(event->region, &clipbox); - - double_buffer = (clipbox.width * clipbox.height) < 20000; - if (double_buffer) - gdk_window_begin_paint_region(widget->window, event->region); - - /* Clear the area to the background image */ - { - GtkStyle *style = current_pinboard->window->style; - GdkGC *gc = style->bg_gc[GTK_STATE_NORMAL]; - - gdk_gc_set_clip_region(gc, event->region); - if (style->bg_pixmap[GTK_STATE_NORMAL]) - { - gdk_gc_set_ts_origin(gc, 0, 0); - gdk_gc_set_fill(gc, GDK_TILED); - gdk_gc_set_tile(gc, style->bg_pixmap[GTK_STATE_NORMAL]); - } - - gdk_draw_rectangle(current_pinboard->window->window, gc, TRUE, - clipbox.x, clipbox.y, - clipbox.width, clipbox.height); - if (style->bg_pixmap[GTK_STATE_NORMAL]) - gdk_gc_set_fill(gc, GDK_SOLID); - - gdk_gc_set_clip_region(gc, NULL); - } - - if (pinboard_shadow) - { - gdk_draw_rectangle(widget->window, - widget->style->white_gc, FALSE, - shadow_x, shadow_y, - SHADOW_SIZE, SHADOW_SIZE); - gdk_draw_rectangle(widget->window, - widget->style->black_gc, FALSE, - shadow_x + 1, shadow_y + 1, - SHADOW_SIZE - 2, SHADOW_SIZE - 2); - } - - if (lasso_in_progress) - { - GdkRectangle area; - - area.x = MIN(lasso_rect_x1, lasso_rect_x2); - area.y = MIN(lasso_rect_y1, lasso_rect_y2); - area.width = ABS(lasso_rect_x1 - lasso_rect_x2); - area.height = ABS(lasso_rect_y1 - lasso_rect_y2); - - if (area.width > 4 && area.height > 4) - { - gdk_draw_rectangle(widget->window, - widget->style->white_gc, FALSE, - area.x, area.y, - area.width - 1, area.height - 1); - gdk_draw_rectangle(widget->window, - widget->style->black_gc, FALSE, - area.x + 1, area.y + 1, - area.width - 3, area.height - 3); - } - } - - gdk_gc_set_clip_region(widget->style->white_gc, NULL); - gdk_gc_set_clip_region(widget->style->black_gc, NULL); - - ((GtkWidgetClass *) gclass)->expose_event(widget, event); - - if (double_buffer) - gdk_window_end_paint(widget->window); - - return TRUE; -} - -/* Draw a 'shadow' under an icon being dragged, showing where - * it will land. - */ -static void pinboard_set_shadow(gboolean on) -{ - GdkRectangle area; - - if (pinboard_shadow) - { - area.x = shadow_x; - area.y = shadow_y; - area.width = SHADOW_SIZE + 1; - area.height = SHADOW_SIZE + 1; - - gdk_window_invalidate_rect(current_pinboard->window->window, - &area, TRUE); - } - - if (on) - { - int old_x = shadow_x, old_y = shadow_y; - - gdk_window_get_pointer(current_pinboard->fixed->window, - &shadow_x, &shadow_y, NULL); - snap_to_grid(&shadow_x, &shadow_y); - shadow_x -= SHADOW_SIZE / 2; - shadow_y -= SHADOW_SIZE / 2; - - - if (pinboard_shadow && shadow_x == old_x && shadow_y == old_y) - return; - - area.x = shadow_x; - area.y = shadow_y; - area.width = SHADOW_SIZE + 1; - area.height = SHADOW_SIZE + 1; - - gdk_window_invalidate_rect(current_pinboard->window->window, - &area, TRUE); - } - - pinboard_shadow = on; -} - -/* Called when dragging some pinboard icons finishes */ -void pinboard_move_icons(void) -{ - int x = shadow_x, y = shadow_y; - PinIcon *pi = (PinIcon *) pinboard_drag_in_progress; - int width, height; - int dx, dy; - GList *next; - - g_return_if_fail(pi != NULL); - - x += SHADOW_SIZE / 2; - y += SHADOW_SIZE / 2; - snap_to_grid(&x, &y); - - if (pi->x == x && pi->y == y) - return; - - /* Find out how much the dragged icon moved (after snapping). - * Move all selected icons by the same amount. - */ - dx = x - pi->x; - dy = y - pi->y; - - /* Move the other selected icons to keep the same relative - * position. - */ - for (next = icon_selection; next; next = next->next) - { - PinIcon *pi = (PinIcon *) next->data; - int nx, ny; - - g_return_if_fail(IS_PIN_ICON(pi)); - - pi->x += dx; - pi->y += dy; - nx = pi->x; - ny = pi->y; - - gdk_drawable_get_size(pi->win->window, &width, &height); - offset_from_centre(pi, &nx, &ny); - - fixed_move_fast(GTK_FIXED(current_pinboard->fixed), - pi->win, nx, ny); - } - - pinboard_save(); -} - -static void drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - PinIcon *pi) -{ - pinboard_wink_item(NULL, FALSE); - dnd_spring_abort(); -} - -static gboolean bg_drag_leave(GtkWidget *widget, - GdkDragContext *context, - guint32 time, - gpointer data) -{ - pinboard_set_shadow(FALSE); - return TRUE; -} - -static gboolean bg_drag_motion(GtkWidget *widget, - GdkDragContext *context, - gint x, - gint y, - guint time, - gpointer data) -{ - /* Dragging from the pinboard to the pinboard is not allowed */ - - if (!provides(context, text_uri_list)) - return FALSE; - - pinboard_set_shadow(TRUE); - - gdk_drag_status(context, - context->suggested_action == GDK_ACTION_ASK - ? GDK_ACTION_LINK : context->suggested_action, - time); - return TRUE; -} - -static void drag_end(GtkWidget *widget, - GdkDragContext *context, - PinIcon *pi) -{ - pinboard_drag_in_progress = NULL; - if (tmp_icon_selected) - { - icon_select_only(NULL); - tmp_icon_selected = FALSE; - } -} - -/* Something which affects all the icons has changed - reshape - * and redraw all of them. - */ -static void reshape_all(void) -{ - GList *next; - - g_return_if_fail(current_pinboard != NULL); - - for (next = current_pinboard->icons; next; next = next->next) - { - Icon *icon = (Icon *) next->data; - pinboard_reshape_icon(icon); - } -} - -/* Turns off the pinboard. Does not call gtk_main_quit. */ -static void pinboard_clear(void) -{ - GList *next; - - g_return_if_fail(current_pinboard != NULL); - - tasklist_set_active(FALSE); - - next = current_pinboard->icons; - while (next) - { - PinIcon *pi = (PinIcon *) next->data; - - next = next->next; - - gtk_widget_destroy(pi->win); - } - - gtk_widget_destroy(current_pinboard->window); - - abandon_backdrop_app(current_pinboard); - - g_object_unref(current_pinboard->shadow_gc); - current_pinboard->shadow_gc = NULL; - - g_free(current_pinboard->name); - null_g_free(¤t_pinboard); - - number_of_windows--; -} - -static gpointer parent_class; - -static void pin_icon_destroy(Icon *icon) -{ - PinIcon *pi = (PinIcon *) icon; - - g_return_if_fail(pi->win != NULL); - - gtk_widget_hide(pi->win); /* Stops flicker - stupid GtkFixed! */ - gtk_widget_destroy(pi->win); -} - -static void pinboard_remove_items(void) -{ - g_return_if_fail(icon_selection != NULL); - - while (icon_selection) - icon_destroy((Icon *) icon_selection->data); - - pinboard_save(); -} - -static void pin_icon_update(Icon *icon) -{ - pinboard_reshape_icon(icon); - pinboard_save(); -} - -static gboolean pin_icon_same_group(Icon *icon, Icon *other) -{ - return IS_PIN_ICON(other); -} - -static void pin_wink_icon(Icon *icon) -{ - pinboard_wink_item((PinIcon *) icon, TRUE); -} - -static void pin_icon_class_init(gpointer gclass, gpointer data) -{ - IconClass *icon = (IconClass *) gclass; - - parent_class = g_type_class_peek_parent(gclass); - - icon->destroy = pin_icon_destroy; - icon->redraw = pinboard_reshape_icon; - icon->update = pin_icon_update; - icon->wink = pin_wink_icon; - icon->remove_items = pinboard_remove_items; - icon->same_group = pin_icon_same_group; -} - -static void pin_icon_init(GTypeInstance *object, gpointer gclass) -{ -} - -static GType pin_icon_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (PinIconClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - pin_icon_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(PinIcon), - 0, /* n_preallocs */ - pin_icon_init - }; - - type = g_type_register_static(icon_get_type(), - "PinIcon", &info, 0); - } - - return type; -} - -static PinIcon *pin_icon_new(const char *pathname, const char *name) -{ - PinIcon *pi; - Icon *icon; - - pi = g_object_new(pin_icon_get_type(), NULL); - icon = (Icon *) pi; - - icon_set_path(icon, pathname, name); - - return pi; -} - -/* Called when the window widget is somehow destroyed */ -static void pin_icon_destroyed(PinIcon *pi) -{ - g_return_if_fail(pi->win != NULL); - - pi->win = NULL; - - pinboard_wink_item(NULL, FALSE); - - if (pinboard_drag_in_progress == (Icon *) pi) - pinboard_drag_in_progress = NULL; - - if (current_pinboard) - current_pinboard->icons = - g_list_remove(current_pinboard->icons, pi); - - g_object_unref(pi); -} - -/* Set the tooltip */ -static void pin_icon_set_tip(PinIcon *pi) -{ - XMLwrapper *ai; - xmlNode *node; - Icon *icon = (Icon *) pi; - - g_return_if_fail(pi != NULL); - - ai = appinfo_get(icon->path, icon->item); - - if (ai && ((node = xml_get_section(ai, NULL, "Summary")))) - { - guchar *str; - str = xmlNodeListGetString(node->doc, - node->xmlChildrenNode, 1); - if (str) - { - gtk_tooltips_set_tip(tooltips, pi->win, str, NULL); - g_free(str); - } - } - else - gtk_tooltips_set_tip(tooltips, pi->widget, NULL, NULL); - - if (ai) - g_object_unref(ai); -} - -static void pinboard_show_menu(GdkEventButton *event, PinIcon *pi) -{ - GtkWidget *option_item; - GtkWidget *new_panel_item; - int pos[3]; - GList *list; - - pos[0] = event->x_root; - pos[1] = event->y_root; - - option_item = gtk_image_menu_item_new_with_label(_("Backdrop...")); - g_signal_connect(option_item, "activate", - G_CALLBACK(pinboard_set_backdrop_box), NULL); - new_panel_item = gtk_image_menu_item_new_with_label(_("Add Panel")); - add_stock_to_menu_item(new_panel_item, GTK_STOCK_ADD); - gtk_menu_item_set_submenu(GTK_MENU_ITEM(new_panel_item), - panel_new_panel_submenu()); - icon_prepare_menu((Icon *) pi, option_item, new_panel_item, NULL); - - list = gtk_container_get_children(GTK_CONTAINER(icon_menu)); - pos[2] = g_list_length(list) - 6; - g_list_free(list); - - gtk_menu_popup(GTK_MENU(icon_menu), NULL, NULL, - position_menu, - (gpointer) pos, event->button, event->time); -} - -static void create_pinboard_window(Pinboard *pinboard) -{ - GtkWidget *win; - - g_return_if_fail(pinboard->window == NULL); - - win = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_widget_set_style(win, gtk_widget_get_default_style()); - - gtk_widget_set_double_buffered(win, FALSE); - gtk_widget_set_app_paintable(win, TRUE); - gtk_widget_set_name(win, "rox-pinboard"); - pinboard->window = win; - pinboard->fixed = gtk_fixed_new(); - gtk_container_add(GTK_CONTAINER(win), pinboard->fixed); - - gtk_window_set_wmclass(GTK_WINDOW(win), "ROX-Pinboard", PROJECT); - - gtk_widget_set_size_request(win, screen_width, screen_height); - gtk_widget_realize(win); - gtk_window_move(GTK_WINDOW(win), 0, 0); - make_panel_window(win); - - /* TODO: Use gdk function when it supports this type */ - { - GdkAtom desktop_type; - - desktop_type = gdk_atom_intern("_NET_WM_WINDOW_TYPE_DESKTOP", - FALSE); - gdk_property_change(win->window, - gdk_atom_intern("_NET_WM_WINDOW_TYPE", FALSE), - gdk_atom_intern("ATOM", FALSE), 32, - GDK_PROP_MODE_REPLACE, (guchar *) &desktop_type, 1); - } - - gtk_widget_add_events(win, - GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | - GDK_EXPOSURE_MASK | - GDK_BUTTON1_MOTION_MASK | - GDK_BUTTON2_MOTION_MASK | GDK_BUTTON3_MOTION_MASK); - g_signal_connect(win, "button-press-event", - G_CALLBACK(button_press_event), NULL); - g_signal_connect(win, "button-release-event", - G_CALLBACK(button_release_event), NULL); - g_signal_connect(win, "motion-notify-event", - G_CALLBACK(lasso_motion), NULL); - g_signal_connect(pinboard->fixed, "expose_event", - G_CALLBACK(bg_expose), NULL); - - /* Some window managers use scroll events on the root to switch - * desktops, but don't cope with our pinboard window, so we forward - * them manually in that case. - */ - g_signal_connect(win, "scroll-event", G_CALLBACK(scroll_event), NULL); - - /* Drag and drop handlers */ - drag_set_pinboard_dest(win); - g_signal_connect(win, "drag_motion", G_CALLBACK(bg_drag_motion), NULL); - g_signal_connect(win, "drag_leave", G_CALLBACK(bg_drag_leave), NULL); - - pinboard->shadow_gc = gdk_gc_new(win->window); - gdk_gc_set_rgb_fg_color(pinboard->shadow_gc, &pin_text_shadow_col); - - reload_backdrop(current_pinboard, NULL, BACKDROP_NONE); - - gtk_widget_show_all(win); - gdk_window_lower(win->window); -} - -/* Load image 'path' and scale according to 'style' */ -static GdkPixmap *load_backdrop(const gchar *path, BackdropStyle style) -{ - GdkPixmap *pixmap; - GdkPixbuf *pixbuf; - GError *error = NULL; - - pixbuf = gdk_pixbuf_new_from_file(path, &error); - if (error) - { - delayed_error(_("Error loading backdrop image:\n%s\n" - "Backdrop removed."), - error->message); - g_error_free(error); - pinboard_set_backdrop(NULL, BACKDROP_NONE); - return NULL; - } - - if (style == BACKDROP_STRETCH) - { - GdkPixbuf *old = pixbuf; - - pixbuf = gdk_pixbuf_scale_simple(old, - screen_width, screen_height, - GDK_INTERP_HYPER); - - g_object_unref(old); - } - else if (style == BACKDROP_CENTRE || style == BACKDROP_SCALE || style == BACKDROP_FIT) - { - GdkPixbuf *old = pixbuf; - int x, y, width, height; - int offset_x, offset_y; - float scale; - - width = gdk_pixbuf_get_width(pixbuf); - height = gdk_pixbuf_get_height(pixbuf); - - if (style == BACKDROP_SCALE) - { - float scale_x, scale_y; - scale_x = screen_width / ((float) width); - scale_y = screen_height / ((float) height); - scale = MIN(scale_x, scale_y); - } - else if (style == BACKDROP_FIT) - { - float scale_x, scale_y; - scale_x = screen_width / ((float) width); - scale_y = screen_height / ((float) height); - scale = MAX(scale_x, scale_y); - } - else - scale = 1; - - pixbuf = gdk_pixbuf_new( - gdk_pixbuf_get_colorspace(pixbuf), FALSE, - 8, screen_width, screen_height); - gdk_pixbuf_fill(pixbuf, ((pin_text_bg_col.red & 0xff00) << 16) | - ((pin_text_bg_col.green & 0xff00) << 8) | - ((pin_text_bg_col.blue & 0xff00))); - - x = (screen_width - width * scale) / 2; - y = (screen_height - height * scale) / 2; - - if (style == BACKDROP_CENTRE) - { - offset_x = x; - offset_y = y; - x = MAX(x, 0); - y = MAX(y, 0); - } - else { - x = MAX(x, 0); - y = MAX(y, 0); - offset_x = x; - offset_y = y; - } - - - gdk_pixbuf_composite(old, pixbuf, - x, y, - MIN(screen_width, width * scale), - MIN(screen_height, height * scale), - offset_x, offset_y, scale, scale, - o_pinboard_image_scaling.int_value? - GDK_INTERP_BILINEAR: GDK_INTERP_HYPER, - 255); - g_object_unref(old); - } - - gdk_pixbuf_render_pixmap_and_mask(pixbuf, - &pixmap, NULL, 0); - g_object_unref(pixbuf); - - return pixmap; -} - -static void abandon_backdrop_app(Pinboard *pinboard) -{ - g_return_if_fail(pinboard != NULL); - - if (pinboard->to_backdrop_app != -1) - { - close(pinboard->to_backdrop_app); - close(pinboard->from_backdrop_app); - g_source_remove(pinboard->input_tag); - g_string_free(pinboard->input_buffer, TRUE); - pinboard->to_backdrop_app = -1; - pinboard->from_backdrop_app = -1; - pinboard->input_tag = -1; - pinboard->input_buffer = NULL; - } - - g_return_if_fail(pinboard->to_backdrop_app == -1); - g_return_if_fail(pinboard->from_backdrop_app == -1); - g_return_if_fail(pinboard->input_tag == -1); - g_return_if_fail(pinboard->input_buffer == NULL); -} - -/* A single line has been read from the child. - * Processes the command, and replies 'ok' (or abandons the child on error). - */ -static void command_from_backdrop_app(Pinboard *pinboard, const gchar *command) -{ - BackdropStyle style; - const char *ok = "ok\n"; - - if (strncmp(command, "tile ", 5) == 0) - { - style = BACKDROP_TILE; - command += 5; - } - else if (strncmp(command, "scale ", 6) == 0) - { - style = BACKDROP_SCALE; - command += 6; - } - else if (strncmp(command, "fit ", 4) == 0) - { - style = BACKDROP_FIT; - command += 4; - } - else if (strncmp(command, "stretch ", 8) == 0) - { - style = BACKDROP_STRETCH; - command += 8; - } - else if (strncmp(command, "centre ", 7) == 0) - { - style = BACKDROP_CENTRE; - command += 7; - } - else - { - g_warning("Invalid command '%s' from backdrop app\n", - command); - abandon_backdrop_app(pinboard); - return; - } - - /* Load the backdrop. May abandon the program if loading fails. */ - reload_backdrop(pinboard, command, style); - - if (pinboard->to_backdrop_app == -1) - return; - - while (*ok) - { - int sent; - - sent = write(pinboard->to_backdrop_app, ok, strlen(ok)); - if (sent <= 0) - { - /* Remote app quit? Not an error. */ - abandon_backdrop_app(pinboard); - break; - } - ok += sent; - } -} - -static void backdrop_from_child(Pinboard *pinboard, - int src, GdkInputCondition cond) -{ - char buf[256]; - int got; - - got = read(src, buf, sizeof(buf)); - - if (got <= 0) - { - if (got < 0) - g_warning("backdrop_from_child: %s\n", - g_strerror(errno)); - abandon_backdrop_app(pinboard); - return; - } - - g_string_append_len(pinboard->input_buffer, buf, got); - - while (pinboard->from_backdrop_app != -1) - { - int len; - char *nl, *command; - - nl = strchr(pinboard->input_buffer->str, '\n'); - if (!nl) - return; /* Haven't got a whole line yet */ - - len = nl - pinboard->input_buffer->str; - command = g_strndup(pinboard->input_buffer->str, len); - g_string_erase(pinboard->input_buffer, 0, len + 1); - - command_from_backdrop_app(pinboard, command); - - g_free(command); - } -} - -static void reload_backdrop(Pinboard *pinboard, - const gchar *backdrop, - BackdropStyle backdrop_style) -{ - GtkStyle *style; - - if (backdrop && backdrop_style == BACKDROP_PROGRAM) - { - const char *argv[] = {NULL, "--backdrop", NULL}; - GError *error = NULL; - - g_return_if_fail(pinboard->to_backdrop_app == -1); - g_return_if_fail(pinboard->from_backdrop_app == -1); - g_return_if_fail(pinboard->input_tag == -1); - g_return_if_fail(pinboard->input_buffer == NULL); - - argv[0] = make_path(backdrop, "AppRun"); - - /* Run the program. It'll send us a SOAP message and we'll - * get back here with a different style and image. - */ - - if (g_spawn_async_with_pipes(NULL, (gchar **) argv, NULL, - G_SPAWN_DO_NOT_REAP_CHILD | - G_SPAWN_SEARCH_PATH, - NULL, NULL, /* Child setup fn */ - NULL, /* Child PID */ - &pinboard->to_backdrop_app, - &pinboard->from_backdrop_app, - NULL, /* Standard error */ - &error)) - { - pinboard->input_buffer = g_string_new(NULL); - pinboard->input_tag = gdk_input_add_full( - pinboard->from_backdrop_app, - GDK_INPUT_READ, - (GdkInputFunction) backdrop_from_child, - pinboard, NULL); - } - else - { - delayed_error("%s", error ? error->message : "(null)"); - g_error_free(error); - } - return; - } - - /* Note: Copying a style does not ref the pixmaps! */ - - style = gtk_style_copy(gtk_widget_get_style(pinboard->window)); - style->bg_pixmap[GTK_STATE_NORMAL] = NULL; - - if (backdrop) - style->bg_pixmap[GTK_STATE_NORMAL] = - load_backdrop(backdrop, backdrop_style); - - gdk_color_parse(o_pinboard_bg_colour.value, - &style->bg[GTK_STATE_NORMAL]); - - gtk_widget_set_style(pinboard->window, style); - - g_object_unref(style); - - gtk_widget_queue_draw(pinboard->window); - - /* Also update root window property (for transparent xterms, etc) */ - if (style->bg_pixmap[GTK_STATE_NORMAL]) - { - XID id = GDK_DRAWABLE_XID(style->bg_pixmap[GTK_STATE_NORMAL]); - gdk_property_change(gdk_get_default_root_window(), - gdk_atom_intern("_XROOTPMAP_ID", FALSE), - gdk_atom_intern("PIXMAP", FALSE), - 32, GDK_PROP_MODE_REPLACE, - (guchar *) &id, 1); - } - else - { - gdk_property_delete(gdk_get_default_root_window(), - gdk_atom_intern("_XROOTPMAP_ID", FALSE)); - } -} - -#define SEARCH_STEP 32 - -/* Search the area (omin, imin) to (omax, imax) for a free region the size of - * 'rect' that doesn't overlap 'used'. Which of inner and outer is the - * vertical axis depends on the configuration. - * - * id and od give the direction of the search (step size). - * - * Returns the start of the found region in inner/outer, or -1 if there is no - * free space. - */ -static void search_free(GdkRectangle *rect, GdkRegion *used, - int *outer, int od, int omin, int omax, - int *inner, int id, int imin, int imax) -{ - *outer = od > 0 ? omin : omax; - while (*outer >= omin && *outer <= omax) - { - *inner = id > 0 ? imin : imax; - while (*inner >= imin && *inner <= imax) - { - if (gdk_region_rect_in(used, rect) == - GDK_OVERLAP_RECTANGLE_OUT) - return; - *inner += id; - } - - *outer += od; - } - - rect->x = -1; - rect->y = -1; -} - -/* Search the width x height area from (x0, y0) for a free region of size - * 'rect'. direction indicates whether to search rows or columns. dx, dy gives - * the direction of the search. - */ -static void search_free_area(GdkRectangle *rect, GdkRegion *used, - int direction, int dx, int dy, int x0, int y0, int width, int height) -{ - if (direction == DIR_VERT) - { - search_free(rect, used, - &rect->x, dx, x0, width, - &rect->y, dy, y0, height); - } - else - { - search_free(rect, used, - &rect->y, dy, x0, height, - &rect->x, dx, y0, width); - } -} - -static gboolean search_free_xinerama(GdkRectangle *rect, GdkRegion *used, - int direction, int dx, int dy, int rwidth, int rheight) -{ - GdkRectangle *geom = &monitor_geom[get_monitor_under_pointer()]; - - search_free_area(rect, used, direction, dx, dy, - geom->x, geom->y, geom->width - rwidth, geom->height - rheight); - return rect->x != -1; -} - -/* Finds a free area on the pinboard large enough for the width and height - * of the given rectangle, by filling in the x and y fields of 'rect'. - * If 'old' is true, 'rect' has a previous position and we first check - * if it is viable. - * The search order respects user preferences. - * If no area is free, returns any old area. - */ -static void find_free_rect(Pinboard *pinboard, GdkRectangle *rect, - gboolean old, int start, int direction) -{ - GdkRegion *used; - GList *next; - GdkRectangle used_rect; - int dx = SEARCH_STEP, dy = SEARCH_STEP; - - used = gdk_region_new(); - - panel_mark_used(used); - - /* Subtract the no-go areas... */ - - if (o_top_margin.int_value > 0) - { - used_rect.x = 0; - used_rect.y = 0; - used_rect.width = gdk_screen_width(); - used_rect.height = o_top_margin.int_value; - gdk_region_union_with_rect(used, &used_rect); - } - - if (o_bottom_margin.int_value > 0) - { - used_rect.x = 0; - used_rect.y = gdk_screen_height() - o_bottom_margin.int_value; - used_rect.width = gdk_screen_width(); - used_rect.height = o_bottom_margin.int_value; - gdk_region_union_with_rect(used, &used_rect); - } - - if (o_left_margin.int_value > 0) - { - used_rect.x = 0; - used_rect.y = 0; - used_rect.width = o_left_margin.int_value; - used_rect.height = gdk_screen_height(); - gdk_region_union_with_rect(used, &used_rect); - } - - if (o_right_margin.int_value > 0) - { - used_rect.x = gdk_screen_width() - o_right_margin.int_value; - used_rect.y = 0; - used_rect.width = o_right_margin.int_value; - used_rect.height = gdk_screen_height(); - gdk_region_union_with_rect(used, &used_rect); - } - - /* Subtract the used areas... */ - - next = GTK_FIXED(pinboard->fixed)->children; - for (; next; next = next->next) - { - GtkFixedChild *fix = (GtkFixedChild *) next->data; - - if (!GTK_WIDGET_VISIBLE(fix->widget)) - continue; - - used_rect.x = fix->x; - used_rect.y = fix->y; - used_rect.width = fix->widget->requisition.width; - used_rect.height = fix->widget->requisition.height; - - gdk_region_union_with_rect(used, &used_rect); - } - - /* Check the previous area */ - if(old) { - if(gdk_region_rect_in(used, rect)==GDK_OVERLAP_RECTANGLE_OUT) { - gdk_region_destroy(used); - return; - } - } - - /* Find the first free area (yes, this isn't exactly pretty, but - * it works). If you know a better (fast!) algorithm, let me know! - */ - - if (start == CORNER_TOP_RIGHT || - start == CORNER_BOTTOM_RIGHT) - dx = -SEARCH_STEP; - - if (start == CORNER_BOTTOM_LEFT || - start == CORNER_BOTTOM_RIGHT) - dy = -SEARCH_STEP; - - /* If pinboard covers more than one monitor, try to find free space on - * monitor under pointer first, then whole screen if that fails */ - if (n_monitors == 1 || !search_free_xinerama(rect, used, - direction, dx, dy, rect->width, rect->height)) - { - search_free_area(rect, used, direction, dx, dy, - 0, 0, screen_width - rect->width, screen_height - rect->height); - } - - gdk_region_destroy(used); - - if (rect->x == -1) - { - rect->x = 0; - rect->y = 0; - } -} - -/* Icon's size, shape or appearance has changed - update the display */ -static void pinboard_reshape_icon(Icon *icon) -{ - PinIcon *pi = (PinIcon *) icon; - int x = pi->x, y = pi->y; - - set_size_and_style(pi); - offset_from_centre(pi, &x, &y); - - if (pi->win->allocation.x != x || pi->win->allocation.y != y) - { - fixed_move_fast(GTK_FIXED(current_pinboard->fixed), - pi->win, x, y); - } - - /* Newer versions of GTK seem to need this, or the icon doesn't - * get redrawn. - */ - gtk_widget_queue_draw(pi->win); -} - -/* Sets the pinboard_font global from the option. Doesn't do anything else. */ -static void update_pinboard_font(void) -{ - if (pinboard_font) - pango_font_description_free(pinboard_font); - pinboard_font = o_label_font.value[0] != '\0' - ? pango_font_description_from_string(o_label_font.value) - : NULL; -} - -static void radios_changed(Radios *radios, gpointer data) -{ - GObject *dialog = G_OBJECT(data); - DropBox *drop_box; - const guchar *path; - - g_return_if_fail(dialog != NULL); - - drop_box = g_object_get_data(G_OBJECT(dialog), "rox-dropbox"); - - g_return_if_fail(radios != NULL); - g_return_if_fail(drop_box != NULL); - g_return_if_fail(current_pinboard != NULL); - - if (current_pinboard->backdrop_style != BACKDROP_PROGRAM) - { - path = drop_box_get_path(drop_box); - if (path) - pinboard_set_backdrop(path, radios_get_value(radios)); - } -} - -static void update_radios(GtkWidget *dialog) -{ - Radios *radios; - GtkWidget *hbox; - - g_return_if_fail(dialog != NULL); - - radios = g_object_get_data(G_OBJECT(dialog), "rox-radios"); - hbox = g_object_get_data(G_OBJECT(dialog), "rox-radios-hbox"); - - g_return_if_fail(current_pinboard != NULL); - g_return_if_fail(radios != NULL); - g_return_if_fail(hbox != NULL); - - switch (current_pinboard->backdrop_style) - { - case BACKDROP_TILE: - case BACKDROP_STRETCH: - case BACKDROP_SCALE: - case BACKDROP_CENTRE: - case BACKDROP_FIT: - radios_set_value(radios, - current_pinboard->backdrop_style); - gtk_widget_set_sensitive(hbox, TRUE); - break; - default: - gtk_widget_set_sensitive(hbox, FALSE); - radios_set_value(radios, BACKDROP_TILE); - break; - } -} diff --git a/ROX-Filer/src/pinboard.h b/ROX-Filer/src/pinboard.h deleted file mode 100644 index 90d398d2..00000000 --- a/ROX-Filer/src/pinboard.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _PINBOARD_H -#define _PINBOARD_H - -extern Pinboard *current_pinboard; - -extern Icon *pinboard_drag_in_progress; - -extern Option o_pinboard_tasklist_per_workspace; - -extern PangoFontDescription *pinboard_font; -extern GdkColor pin_text_fg_col, pin_text_bg_col; - -typedef enum { - BACKDROP_NONE, - BACKDROP_PROGRAM, - BACKDROP_CENTRE, BACKDROP_SCALE, BACKDROP_STRETCH, BACKDROP_TILE, BACKDROP_FIT -} BackdropStyle; - -void pinboard_init(void); -void pinboard_activate(const gchar *name); -void pinboard_pin(const gchar *path, const gchar *name, int x, int y, - const gchar *shortcut); -void pinboard_pin_with_args(const gchar *path, const gchar *name, int x, int y, - const gchar *shortcut, const char *arg, - gboolean locked, gboolean update); -gboolean pinboard_remove(const gchar *path, const gchar *name); -void pinboard_move_icons(void); -const gchar *pinboard_get_name(void); -void pinboard_set_backdrop_app(const gchar *app); -GdkWindow *pinboard_get_window(void); -void pinboard_add_widget(GtkWidget *widget, const gchar *name); -void pinboard_moved_widget(GtkWidget *widget, const gchar *name, - int x, int y); -void pinboard_update_size(void); -void draw_label_shadow(WrappedLabel *wl, GdkRegion *region); -void pinboard_set_backdrop(const gchar *path, BackdropStyle style); - -#endif /* _PINBOARD_H */ diff --git a/ROX-Filer/src/pixmaps.c b/ROX-Filer/src/pixmaps.c deleted file mode 100644 index fcc29447..00000000 --- a/ROX-Filer/src/pixmaps.c +++ /dev/null @@ -1,1192 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * Copyright (C) 2006, Thomas Leonard and others (see changelog for details). - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of the GNU General Public License as published by the Free - * Software Foundation; either version 2 of the License, or (at your option) - * any later version. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - * more details. - * - * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 59 Temple - * Place, Suite 330, Boston, MA 02111-1307 USA - */ - -/* pixmaps.c - code for handling pixbufs (despite the name!) */ - -#include "config.h" -#define PIXMAPS_C - -/* Remove pixmaps from the cache when they haven't been accessed for - * this period of time (seconds). - */ - -#define PIXMAP_PURGE_TIME 1200 -#define PIXMAP_THUMB_SIZE 128 -#define PIXMAP_THUMB_TOO_OLD_TIME 5 - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "global.h" - -#include "fscache.h" -#include "support.h" -#include "gui_support.h" -#include "pixmaps.h" -#include "main.h" -#include "filer.h" -#include "dir.h" -#include "diritem.h" -#include "choices.h" -#include "options.h" -#include "action.h" -#include "type.h" - -GFSCache *pixmap_cache = NULL; -GFSCache *desktop_icon_cache = NULL; - -static const char * bad_xpm[] = { -"12 12 3 1", -" c #000000000000", -". c #FFFF00000000", -"x c #FFFFFFFFFFFF", -" ", -" ..xxxxxx.. ", -" ...xxxx... ", -" x...xx...x ", -" xx......xx ", -" xxx....xxx ", -" xxx....xxx ", -" xx......xx ", -" x...xx...x ", -" ...xxxx... ", -" ..xxxxxx.. ", -" "}; - -MaskedPixmap *im_error; -MaskedPixmap *im_unknown; - -MaskedPixmap *im_appdir; - -MaskedPixmap *im_dirs; - -GtkIconSize mount_icon_size = -1; - -typedef struct _ChildThumbnail ChildThumbnail; - -/* There is one of these for each active child process */ -struct _ChildThumbnail { - gchar *path; - GFunc callback; - gpointer data; -}; - -static const char *stocks[] = { - ROX_STOCK_SHOW_DETAILS, - ROX_STOCK_SHOW_HIDDEN, - ROX_STOCK_SELECT, - ROX_STOCK_MOUNT, - ROX_STOCK_MOUNTED, - ROX_STOCK_SYMLINK, - ROX_STOCK_XATTR, -}; - -/* Static prototypes */ - -static void load_default_pixmaps(void); -static gint purge(gpointer data); -static MaskedPixmap *image_from_file(const char *path); -static MaskedPixmap *image_from_desktop_file(const char *path); -static MaskedPixmap *get_bad_image(void); -static GdkPixbuf *scale_pixbuf_up(GdkPixbuf *src, int max_w, int max_h); -static GdkPixbuf *get_thumbnail_for(const char *path); -static void thumbnail_child_done(ChildThumbnail *info); -static void child_create_thumbnail(const gchar *path, MIME_type *type); -static GList *thumbs_purge_cache(Option *option, xmlNode *node, guchar *label); -static gchar *thumbnail_path(const gchar *path); -static gchar *thumbnail_program(MIME_type *type); -static GdkPixbuf *extract_tiff_thumbnail(const gchar *path); - -/**************************************************************** - * EXTERNAL INTERFACE * - ****************************************************************/ - -void pixmaps_init(void) -{ - GtkIconFactory *factory; - int i; - - gtk_widget_push_colormap(gdk_rgb_get_colormap()); - - pixmap_cache = g_fscache_new((GFSLoadFunc) image_from_file, NULL, NULL); - desktop_icon_cache = g_fscache_new((GFSLoadFunc) image_from_desktop_file, NULL, NULL); - - g_timeout_add(10000, purge, NULL); - - factory = gtk_icon_factory_new(); - for (i = 0; i < G_N_ELEMENTS(stocks); i++) - { - GdkPixbuf *pixbuf; - GError *error = NULL; - gchar *path; - GtkIconSet *iset; - const gchar *name = stocks[i]; - - path = g_strconcat(app_dir, "/images/", name, ".png", NULL); - pixbuf = gdk_pixbuf_new_from_file(path, &error); - if (!pixbuf) - { - g_warning("%s", error->message); - g_error_free(error); - pixbuf = gdk_pixbuf_new_from_xpm_data(bad_xpm); - } - g_free(path); - - iset = gtk_icon_set_new_from_pixbuf(pixbuf); - g_object_unref(G_OBJECT(pixbuf)); - gtk_icon_factory_add(factory, name, iset); - gtk_icon_set_unref(iset); - } - gtk_icon_factory_add_default(factory); - - mount_icon_size = gtk_icon_size_register("rox-mount-size", 14, 14); - - load_default_pixmaps(); - - option_register_widget("thumbs-purge-cache", thumbs_purge_cache); -} - -/* Load image /images/name.png. - * Always returns with a valid image. - */ -MaskedPixmap *load_pixmap(const char *name) -{ - guchar *path; - MaskedPixmap *retval; - - path = g_strconcat(app_dir, "/images/", name, ".png", NULL); - retval = image_from_file(path); - g_free(path); - - if (!retval) - retval = get_bad_image(); - - return retval; -} - -/* Create a MaskedPixmap from a GTK stock ID. Always returns - * a valid image. - */ -static MaskedPixmap *mp_from_stock(const char *stock_id, int size) -{ - GtkIconSet *icon_set; - GdkPixbuf *pixbuf; - MaskedPixmap *retval; - - /*icon_set = gtk_icon_factory_lookup_default(stock_id);*/ - icon_set = gtk_style_lookup_icon_set(gtk_widget_get_default_style(), - stock_id); - if (!icon_set) - return get_bad_image(); - - pixbuf = gtk_icon_set_render_icon(icon_set, - gtk_widget_get_default_style(), /* Gtk bug */ - GTK_TEXT_DIR_LTR, - GTK_STATE_NORMAL, - size, - NULL, - NULL); - retval = masked_pixmap_new(pixbuf); - g_object_unref(pixbuf); - - return retval; -} - -void pixmap_make_huge(MaskedPixmap *mp) -{ - if (mp->huge_pixbuf) - return; - - g_return_if_fail(mp->src_pixbuf != NULL); - - /* Limit to small size now, otherwise they get scaled up in mixed mode. - * Also looked ugly. - */ - mp->huge_pixbuf = scale_pixbuf_up(mp->src_pixbuf, - SMALL_WIDTH, SMALL_HEIGHT); - - if (!mp->huge_pixbuf) - { - mp->huge_pixbuf = mp->src_pixbuf; - g_object_ref(mp->huge_pixbuf); - } - - mp->huge_width = gdk_pixbuf_get_width(mp->huge_pixbuf); - mp->huge_height = gdk_pixbuf_get_height(mp->huge_pixbuf); -} - -void pixmap_make_small(MaskedPixmap *mp) -{ - if (mp->sm_pixbuf) - return; - - g_return_if_fail(mp->src_pixbuf != NULL); - - mp->sm_pixbuf = scale_pixbuf(mp->src_pixbuf, SMALL_WIDTH, SMALL_HEIGHT); - - if (!mp->sm_pixbuf) - { - mp->sm_pixbuf = mp->src_pixbuf; - g_object_ref(mp->sm_pixbuf); - } - - mp->sm_width = gdk_pixbuf_get_width(mp->sm_pixbuf); - mp->sm_height = gdk_pixbuf_get_height(mp->sm_pixbuf); -} - -/* Load image 'path' in the background and insert into pixmap_cache. - * Call callback(data, path) when done (path is NULL => error). - * If the image is already uptodate, or being created already, calls the - * callback right away. - */ -void pixmap_background_thumb(const gchar *path, GFunc callback, gpointer data) -{ - gboolean found; - MaskedPixmap *image; - pid_t child; - ChildThumbnail *info; - MIME_type *type; - gchar *thumb_prog; - - image = pixmap_try_thumb(path, TRUE); - - if (image) - { - /* Thumbnail loaded */ - callback(data, (gpointer)path); - return; - } - - /* Is it currently being created? */ - image = g_fscache_lookup_full(pixmap_cache, path, - FSCACHE_LOOKUP_ONLY_NEW, &found); - - if (found) - { - /* Thumbnail is known, or being created */ - if (image) - g_object_unref(image); - callback(data, image? (gpointer)path: NULL); - return; - } - - /* Not in memory, nor in the thumbnails directory. We need to - * generate it */ - - type = type_from_path(path); - if (!type) - type = text_plain; - - /* Add an entry, set to NULL, so no-one else tries to load this - * image. - */ - g_fscache_insert(pixmap_cache, path, NULL, TRUE); - - thumb_prog = thumbnail_program(type); - - /* Only attempt to load 'images' types ourselves */ - if (thumb_prog == NULL && strcmp(type->media_type, "image") != 0) - { - callback(data, NULL); - return; /* Don't know how to handle this type */ - } - - child = fork(); - - if (child == -1) - { - g_free(thumb_prog); - delayed_error("fork(): %s", g_strerror(errno)); - callback(data, NULL); - return; - } - - if (child == 0) - { - /* We are the child process. (We are sloppy with freeing - memory, but since we go away very quickly, that's ok.) */ - if (thumb_prog) - { - DirItem *item; - - item = diritem_new(g_basename(thumb_prog)); - - diritem_restat(thumb_prog, item, NULL); - if (item->flags & ITEM_FLAG_APPDIR) - thumb_prog = g_strconcat(thumb_prog, "/AppRun", - NULL); - - execl(thumb_prog, thumb_prog, path, - thumbnail_path(path), - g_strdup_printf("%d", PIXMAP_THUMB_SIZE), - NULL); - _exit(1); - } - - child_create_thumbnail(path, type); - _exit(0); - } - - g_free(thumb_prog); - - info = g_new(ChildThumbnail, 1); - info->path = g_strdup(path); - info->callback = callback; - info->data = data; - on_child_death(child, (CallbackFn) thumbnail_child_done, info); -} - -/* - * Return the thumbnail for a file, only if available. If the - * can_load flags is set this includes loading from the cache, otherwise - * only if already in memory - */ -MaskedPixmap *pixmap_try_thumb(const gchar *path, gboolean can_load) -{ - gboolean found; - MaskedPixmap *image; - GdkPixbuf *pixbuf; - - image = g_fscache_lookup_full(pixmap_cache, path, - FSCACHE_LOOKUP_ONLY_NEW, &found); - - if (found) - { - /* Thumbnail is known, or being created */ - if (image) - return image; - } - - if(!can_load) - return NULL; - - pixbuf = get_thumbnail_for(path); - - if (!pixbuf) - { - struct stat info1, info2; - char *dir; - - /* Skip zero-byte files. They're either empty, or - * special (may cause us to hang, e.g. /proc/kmsg). */ - if (mc_stat(path, &info1) == 0 && info1.st_size == 0) { - return NULL; - } - - dir = g_path_get_dirname(path); - - /* If the image itself is in ~/.thumbnails, load it now - * (ie, don't create thumbnails for thumbnails!). - */ - if (mc_stat(dir, &info1) != 0) - { - g_free(dir); - return NULL; - } - g_free(dir); - - if (mc_stat(make_path(home_dir, ".thumbnails/normal"), - &info2) == 0 && - info1.st_dev == info2.st_dev && - info1.st_ino == info2.st_ino) - { - pixbuf = rox_pixbuf_new_from_file_at_scale(path, - PIXMAP_THUMB_SIZE, PIXMAP_THUMB_SIZE, - TRUE, NULL); - if (!pixbuf) - { - return NULL; - } - } - } - - if (pixbuf) - { - MaskedPixmap *image; - - image = masked_pixmap_new(pixbuf); - g_object_unref(pixbuf); - g_fscache_insert(pixmap_cache, path, image, TRUE); - return image; - } - - return NULL; -} - -/**************************************************************** - * INTERNAL FUNCTIONS * - ****************************************************************/ - -/* Create a thumbnail file for this image */ -static void save_thumbnail(const char *pathname, GdkPixbuf *full) -{ - struct stat info; - gchar *path; - int original_width, original_height; - GString *to; - char *md5, *swidth, *sheight, *ssize, *smtime, *uri; - mode_t old_mask; - int name_len; - GdkPixbuf *thumb; - - thumb = scale_pixbuf(full, PIXMAP_THUMB_SIZE, PIXMAP_THUMB_SIZE); - - original_width = gdk_pixbuf_get_width(full); - original_height = gdk_pixbuf_get_height(full); - - if (mc_stat(pathname, &info) != 0) - return; - - swidth = g_strdup_printf("%d", original_width); - sheight = g_strdup_printf("%d", original_height); - ssize = g_strdup_printf("%" SIZE_FMT, info.st_size); - smtime = g_strdup_printf("%ld", (long) info.st_mtime); - - path = pathdup(pathname); - uri = g_filename_to_uri(path, NULL, NULL); - if (!uri) - uri = g_strconcat("file://", path, NULL); - md5 = md5_hash(uri); - g_free(path); - - to = g_string_new(home_dir); - g_string_append(to, "/.thumbnails"); - mkdir(to->str, 0700); - g_string_append(to, "/normal/"); - mkdir(to->str, 0700); - g_string_append(to, md5); - name_len = to->len + 4; /* Truncate to this length when renaming */ - g_string_append_printf(to, ".png.ROX-Filer-%ld", (long) getpid()); - - g_free(md5); - - old_mask = umask(0077); - gdk_pixbuf_save(thumb, to->str, "png", NULL, - "tEXt::Thumb::Image::Width", swidth, - "tEXt::Thumb::Image::Height", sheight, - "tEXt::Thumb::Size", ssize, - "tEXt::Thumb::MTime", smtime, - "tEXt::Thumb::URI", uri, - "tEXt::Software", PROJECT, - NULL); - umask(old_mask); - - /* We create the file ###.png.ROX-Filer-PID and rename it to avoid - * a race condition if two programs create the same thumb at - * once. - */ - { - gchar *final; - - final = g_strndup(to->str, name_len); - if (rename(to->str, final)) - g_warning("Failed to rename '%s' to '%s': %s", - to->str, final, g_strerror(errno)); - g_free(final); - } - - g_string_free(to, TRUE); - g_free(swidth); - g_free(sheight); - g_free(ssize); - g_free(smtime); - g_free(uri); -} - -static gchar *thumbnail_path(const char *path) -{ - gchar *uri, *md5; - GString *to; - gchar *ans; - - uri = g_filename_to_uri(path, NULL, NULL); - if(!uri) - uri = g_strconcat("file://", path, NULL); - md5 = md5_hash(uri); - - to = g_string_new(home_dir); - g_string_append(to, "/.thumbnails"); - mkdir(to->str, 0700); - g_string_append(to, "/normal/"); - mkdir(to->str, 0700); - g_string_append(to, md5); - g_string_append(to, ".png"); - - g_free(md5); - g_free(uri); - - ans=to->str; - g_string_free(to, FALSE); - - return ans; -} - -/* Return a program to create thumbnails for files of this type. - * NULL to try to make it ourself (using gdk). - * g_free the result. - */ -static gchar *thumbnail_program(MIME_type *type) -{ - gchar *leaf; - gchar *path; - - if (!type) - return NULL; - - leaf = g_strconcat(type->media_type, "_", type->subtype, NULL); - path = choices_find_xdg_path_load(leaf, "MIME-thumb", SITE); - g_free(leaf); - if (path) - { - return path; - } - - path = choices_find_xdg_path_load(type->media_type, "MIME-thumb", - SITE); - - return path; -} - -/* Called in a subprocess. Load path and create the thumbnail - * file. Parent will notice when we die. - */ -static void child_create_thumbnail(const gchar *path, MIME_type *type) -{ - GdkPixbuf *image=NULL; - - if(strcmp(type->subtype, "jpeg")==0) - image=extract_tiff_thumbnail(path); - - if(!image) - image = rox_pixbuf_new_from_file_at_scale(path, - PIXMAP_THUMB_SIZE, PIXMAP_THUMB_SIZE, TRUE, NULL); - - if (image) - save_thumbnail(path, image); - - /* (no need to unref, as we're about to exit) */ -} - -/* Called when the child process exits */ -static void thumbnail_child_done(ChildThumbnail *info) -{ - GdkPixbuf *thumb; - - thumb = get_thumbnail_for(info->path); - - if (thumb) - { - MaskedPixmap *image; - - image = masked_pixmap_new(thumb); - g_object_unref(thumb); - - g_fscache_insert(pixmap_cache, info->path, image, FALSE); - g_object_unref(image); - - info->callback(info->data, info->path); - } - else - info->callback(info->data, NULL); - - g_free(info->path); - g_free(info); -} - -/* Check if we have an up-to-date thumbnail for this image. - * If so, return it. Otherwise, returns NULL. - */ -static GdkPixbuf *get_thumbnail_for(const char *pathname) -{ - GdkPixbuf *thumb = NULL; - char *thumb_path, *md5, *uri, *path; - const char *ssize, *smtime; - struct stat info; - time_t ttime, now; - - path = pathdup(pathname); - uri = g_filename_to_uri(path, NULL, NULL); - if(!uri) - uri = g_strconcat("file://", path, NULL); - md5 = md5_hash(uri); - g_free(uri); - - thumb_path = g_strdup_printf("%s/.thumbnails/normal/%s.png", - home_dir, md5); - g_free(md5); - - thumb = gdk_pixbuf_new_from_file(thumb_path, NULL); - if (!thumb) - goto err; - - /* Note that these don't need freeing... */ - ssize = gdk_pixbuf_get_option(thumb, "tEXt::Thumb::Size"); - /* This is optional, so don't flag an error if it is missing */ - - smtime = gdk_pixbuf_get_option(thumb, "tEXt::Thumb::MTime"); - if (!smtime) - goto err; - - if (mc_stat(path, &info) != 0) - goto err; - - ttime=(time_t) atol(smtime); - time(&now); - if (info.st_mtime != ttime && now>ttime+PIXMAP_THUMB_TOO_OLD_TIME) - goto err; - - if (ssize && info.st_size < atol(ssize)) - goto err; - - goto out; -err: - if (thumb) - g_object_unref(thumb); - thumb = NULL; -out: - g_free(path); - g_free(thumb_path); - return thumb; -} - -/* Load the image 'path' and return a pointer to the resulting - * MaskedPixmap. NULL on failure. - * Doesn't check for thumbnails (this is for small icons). - */ -static MaskedPixmap *image_from_file(const char *path) -{ - GdkPixbuf *pixbuf; - MaskedPixmap *image; - GError *error = NULL; - - pixbuf = gdk_pixbuf_new_from_file(path, &error); - if (!pixbuf) - { - g_warning("%s\n", error->message); - g_error_free(error); - return NULL; - } - - image = masked_pixmap_new(pixbuf); - - g_object_unref(pixbuf); - - return image; -} - -/* Load this icon named by this .desktop file from the current theme. - * NULL on failure. - */ -static MaskedPixmap *image_from_desktop_file(const char *path) -{ - GError *error = NULL; - MaskedPixmap *image = NULL; - char *icon = NULL; - - icon = get_value_from_desktop_file(path, - "Desktop Entry", "Icon", &error); - if (error) - { - g_warning("Failed to parse .desktop file '%s':\n%s", - path, error->message); - goto err; - } - if (!icon) - goto err; - - if (icon[0] == '/') - image = image_from_file(icon); - else - { - GdkPixbuf *pixbuf; - int tmp_fd; - char *extension; - - /* For some unknown reason, some icon names have extensions. - * Remove them. - */ - extension = strrchr(icon, '.'); - if (extension && (strcmp(extension, ".png") == 0 - || strcmp(extension, ".xpm") == 0 - || strcmp(extension, ".svg") == 0)) - { - *extension = '\0'; - } - - /* SVG reader is very noisy, so redirect stderr to stdout */ - tmp_fd = dup(2); - dup2(1, 2); - pixbuf = theme_load_icon(icon, HUGE_WIDTH, 0, NULL); - dup2(tmp_fd, 2); - close(tmp_fd); - - if (pixbuf == NULL) - goto err; /* Might just not be in the theme */ - - image = masked_pixmap_new(pixbuf); - g_object_unref(pixbuf); - } -err: - if (error != NULL) - g_error_free(error); - if (icon != NULL) - g_free(icon); - return image; -} - -/* Scale src down to fit in max_w, max_h and return the new pixbuf. - * If src is small enough, then ref it and return that. - */ -GdkPixbuf *scale_pixbuf(GdkPixbuf *src, int max_w, int max_h) -{ - int w, h; - - w = gdk_pixbuf_get_width(src); - h = gdk_pixbuf_get_height(src); - - if (w <= max_w && h <= max_h) - { - g_object_ref(src); - return src; - } - else - { - float scale_x = ((float) w) / max_w; - float scale_y = ((float) h) / max_h; - float scale = MAX(scale_x, scale_y); - int dest_w = w / scale; - int dest_h = h / scale; - - return gdk_pixbuf_scale_simple(src, - MAX(dest_w, 1), - MAX(dest_h, 1), - GDK_INTERP_BILINEAR); - } -} - -/* Scale src up to fit in max_w, max_h and return the new pixbuf. - * If src is that size or bigger, then ref it and return that. - */ -static GdkPixbuf *scale_pixbuf_up(GdkPixbuf *src, int max_w, int max_h) -{ - int w, h; - - w = gdk_pixbuf_get_width(src); - h = gdk_pixbuf_get_height(src); - - if (w == 0 || h == 0 || w >= max_w || h >= max_h) - { - g_object_ref(src); - return src; - } - else - { - float scale_x = max_w / ((float) w); - float scale_y = max_h / ((float) h); - float scale = MIN(scale_x, scale_y); - - return gdk_pixbuf_scale_simple(src, - w * scale, - h * scale, - GDK_INTERP_BILINEAR); - } -} - -/* Return a pointer to the (static) bad image. The ref counter will ensure - * that the image is never freed. - */ -static MaskedPixmap *get_bad_image(void) -{ - GdkPixbuf *bad; - MaskedPixmap *mp; - - bad = gdk_pixbuf_new_from_xpm_data(bad_xpm); - mp = masked_pixmap_new(bad); - g_object_unref(bad); - - return mp; -} - -/* Called now and then to clear out old pixmaps */ -static gint purge(gpointer data) -{ - g_fscache_purge(pixmap_cache, PIXMAP_PURGE_TIME); - - return TRUE; -} - -static gpointer parent_class; - -static void masked_pixmap_finialize(GObject *object) -{ - MaskedPixmap *mp = (MaskedPixmap *) object; - - if (mp->src_pixbuf) - { - g_object_unref(mp->src_pixbuf); - mp->src_pixbuf = NULL; - } - - if (mp->huge_pixbuf) - { - g_object_unref(mp->huge_pixbuf); - mp->huge_pixbuf = NULL; - } - if (mp->pixbuf) - { - g_object_unref(mp->pixbuf); - mp->pixbuf = NULL; - } - - if (mp->sm_pixbuf) - { - g_object_unref(mp->sm_pixbuf); - mp->sm_pixbuf = NULL; - } - - G_OBJECT_CLASS(parent_class)->finalize(object); -} - -static void masked_pixmap_class_init(gpointer gclass, gpointer data) -{ - GObjectClass *object = (GObjectClass *) gclass; - - parent_class = g_type_class_peek_parent(gclass); - - object->finalize = masked_pixmap_finialize; -} - -static void masked_pixmap_init(GTypeInstance *object, gpointer gclass) -{ - MaskedPixmap *mp = (MaskedPixmap *) object; - - mp->src_pixbuf = NULL; - - mp->huge_pixbuf = NULL; - mp->huge_width = -1; - mp->huge_height = -1; - - mp->pixbuf = NULL; - mp->width = -1; - mp->height = -1; - - mp->sm_pixbuf = NULL; - mp->sm_width = -1; - mp->sm_height = -1; -} - -static GType masked_pixmap_get_type(void) -{ - static GType type = 0; - - if (!type) - { - static const GTypeInfo info = - { - sizeof (MaskedPixmapClass), - NULL, /* base_init */ - NULL, /* base_finalise */ - masked_pixmap_class_init, - NULL, /* class_finalise */ - NULL, /* class_data */ - sizeof(MaskedPixmap), - 0, /* n_preallocs */ - masked_pixmap_init - }; - - type = g_type_register_static(G_TYPE_OBJECT, "MaskedPixmap", - &info, 0); - } - - return type; -} - -MaskedPixmap *masked_pixmap_new(GdkPixbuf *full_size) -{ - MaskedPixmap *mp; - GdkPixbuf *src_pixbuf, *normal_pixbuf; - - g_return_val_if_fail(full_size != NULL, NULL); - - src_pixbuf = scale_pixbuf(full_size, HUGE_WIDTH, HUGE_HEIGHT); - g_return_val_if_fail(src_pixbuf != NULL, NULL); - - normal_pixbuf = scale_pixbuf(src_pixbuf, ICON_WIDTH, ICON_HEIGHT); - g_return_val_if_fail(normal_pixbuf != NULL, NULL); - - mp = g_object_new(masked_pixmap_get_type(), NULL); - - mp->src_pixbuf = src_pixbuf; - - mp->pixbuf = normal_pixbuf; - mp->width = gdk_pixbuf_get_width(normal_pixbuf); - mp->height = gdk_pixbuf_get_height(normal_pixbuf); - - return mp; -} - -/* Load all the standard pixmaps. Also sets the default window icon. */ -static void load_default_pixmaps(void) -{ - GdkPixbuf *pixbuf; - GError *error = NULL; - - im_error = mp_from_stock(GTK_STOCK_DIALOG_WARNING, - GTK_ICON_SIZE_DIALOG); - im_unknown = mp_from_stock(GTK_STOCK_DIALOG_QUESTION, - GTK_ICON_SIZE_DIALOG); - - im_dirs = load_pixmap("dirs"); - im_appdir = load_pixmap("application"); - - pixbuf = gdk_pixbuf_new_from_file( - make_path(app_dir, ".DirIcon"), &error); - if (pixbuf) - { - GList *icon_list; - - icon_list = g_list_append(NULL, pixbuf); - gtk_window_set_default_icon_list(icon_list); - g_list_free(icon_list); - - g_object_unref(G_OBJECT(pixbuf)); - } - else - { - g_warning("%s\n", error->message); - g_error_free(error); - } -} - -/* Also purges memory cache */ -static void purge_disk_cache(GtkWidget *button, gpointer data) -{ - char *path; - GList *list = NULL; - DIR *dir; - struct dirent *ent; - - g_fscache_purge(pixmap_cache, 0); - - path = g_strconcat(home_dir, "/.thumbnails/normal/", NULL); - - dir = opendir(path); - if (!dir) - { - report_error(_("Can't delete thumbnails in %s:\n%s"), - path, g_strerror(errno)); - goto out; - } - - while ((ent = readdir(dir))) - { - if (ent->d_name[0] == '.') - continue; - list = g_list_prepend(list, - g_strconcat(path, ent->d_name, NULL)); - } - - closedir(dir); - - if (list) - { - action_delete(list); - destroy_glist(&list); - } - else - info_message(_("There are no thumbnails to delete")); -out: - g_free(path); -} - -static GList *thumbs_purge_cache(Option *option, xmlNode *node, guchar *label) -{ - GtkWidget *button, *align; - - g_return_val_if_fail(option == NULL, NULL); - - align = gtk_alignment_new(0, 0.5, 0, 0); - button = button_new_mixed(GTK_STOCK_CLEAR, - _("Purge thumbnails disk cache")); - gtk_container_add(GTK_CONTAINER(align), button); - g_signal_connect(button, "clicked", G_CALLBACK(purge_disk_cache), NULL); - - return g_list_append(NULL, align); -} - -/* Exif reading. - * Based on Thierry Bousch's public domain exifdump.py. - */ - -#define JPEG_FORMAT 0x201 -#define JPEG_FORMAT_LENGTH 0x202 - -/* - * Extract n-byte integer in Motorola (big-endian) format - */ -static inline long long s2n_motorola(const unsigned char *p, int len) -{ - long long a=0; - int i; - - for(i=0; ilength) - tlength=length-thumb; - - loader=gdk_pixbuf_loader_new(); - gdk_pixbuf_loader_write(loader, data+thumb, tlength, &err); - if(err) { - g_error_free(err); - return NULL; - } - - gdk_pixbuf_loader_close(loader, &err); - if(err) { - g_error_free(err); - return NULL; - } - - buf=gdk_pixbuf_loader_get_pixbuf(loader); - g_object_ref(buf); /* Ref the image before we unref the loader */ - g_object_unref(loader); - } - - g_free(data); - - return buf; -} - diff --git a/ROX-Filer/src/pixmaps.h b/ROX-Filer/src/pixmaps.h deleted file mode 100644 index 9ff96104..00000000 --- a/ROX-Filer/src/pixmaps.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * ROX-Filer, filer for the ROX desktop project - * By Thomas Leonard, . - */ - -#ifndef _PIXMAP_H -#define _PIXMAP_H - -#include - -extern GFSCache *pixmap_cache; -extern GFSCache *desktop_icon_cache; - -extern MaskedPixmap *im_error; -extern MaskedPixmap *im_unknown; - -extern MaskedPixmap *im_exec_file; -extern MaskedPixmap *im_appdir; - -extern MaskedPixmap *im_dirs; - -extern GtkIconSize mount_icon_size; - -/* If making the huge size larger, be sure to update SMALL_IMAGE_THRESHOLD! */ -#define HUGE_WIDTH 96 -#define HUGE_HEIGHT 96 - -#define ICON_HEIGHT 52 -#define ICON_WIDTH 48 - -#define SMALL_HEIGHT 18 -#define SMALL_WIDTH 22 - -typedef struct _MaskedPixmapClass MaskedPixmapClass; - -struct _MaskedPixmapClass { - GObjectClass parent; -}; - -/* When a MaskedPixmap is created we load the image from disk and - * scale the pixbuf down to the 'huge' size (if it's bigger). - * The 'normal' pixmap and mask are created automatically - you have - * to request the other sizes. - * - * Note that any of the masks be also be NULL if the image has no - * mask. - */ -struct _MaskedPixmap -{ - GObject object; - - GdkPixbuf *src_pixbuf; /* Limited to 'huge' size */ - - /* If huge_pixbuf is NULL then call pixmap_make_huge() */ - GdkPixbuf *huge_pixbuf; - int huge_width, huge_height; - - GdkPixbuf *pixbuf; /* Normal size image, always valid */ - int width, height; - - /* If sm_pixbuf is NULL then call pixmap_make_small() */ - GdkPixbuf *sm_pixbuf; - int sm_width, sm_height; -}; - -void pixmaps_init(void); -void pixmap_make_huge(MaskedPixmap *mp); -void pixmap_make_small(MaskedPixmap *mp); -MaskedPixmap *load_pixmap(const char *name); -void pixmap_background_thumb(const gchar *path, GFunc callback, gpointer data); -MaskedPixmap *pixmap_try_thumb(const gchar *path, gboolean can_load); -MaskedPixmap *masked_pixmap_new(GdkPixbuf *full_size); -GdkPixbuf *scale_pixbuf(GdkPixbuf *src, int max_w, int max_h); - -#endif /* _PIXMAP_H */ diff --git a/ROX-Filer/src/po/cs.po b/ROX-Filer/src/po/cs.po deleted file mode 100644 index 5443c70c..00000000 --- a/ROX-Filer/src/po/cs.po +++ /dev/null @@ -1,4821 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: rox\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Jan 'jenik' Provaznik \n" -"Language-Team:\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-2\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Potichu" - -#: abox.c:228 -msgid "Quiet" -msgstr "Potichu" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Nepotvrzovat ka¾dou operaci" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Jméno" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Adresáø" - -#: abox.c:550 -msgid "Expression:" -msgstr "Výraz:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "" - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "" - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "" - -#: action.c:188 -msgid "Find expression reference" -msgstr "Najít referenci výrazu" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Rychlý Start\n" -"Jméno souboru, který hledáte vlo¾te mezi jednoduché uvozovky:\n" -"'index.html' (pokud chcete najít soubor 'index.html')\n" -"\n" -"Pøíklady\n" -"'*.htm', '*.html' (najde HTML soubory)\n" -"IsDir 'lib' (najde adresáøe 'lib')\n" -"IsReg 'core' (najde bì¾ný soubor 'core')\n" -"! (IsDir, IsReg) (není ani adresáø ani bì¾ný soubor)\n" -"mtime after 1 day ago and size > 1Mb (velký a nedávno modifikovaný)\n" -"'CVS' prune, isreg (bì¾ný soubor, který není v CVS)\n" -"IsReg system(grep -q fred \"%\") (obsahuje slovo 'fred')\n" -"\n" -"Jednoduché Testy\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (typy)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(práva)\n" -"IsEmpty, IsMine\n" -"Výraz v jednoduchých závorkách je výraz shellového typu, mù¾e obsahovat " -"magické znaky. Pokud\n" -"obsahuje lomítko, kontroluje se shoda vzhledem k celé cestì; jinak pouze\n" -"ke jménu bez cesty.\n" -"\n" -"Porovnání\n" -"<, <=, =, !=, >, >=, After, Before (porovnají dvì " -"hodnoty)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (velikosti souborù)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (èasy)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(hodnoty)\n" -"\n" -"Zvlá¹tní pøíkazy\n" -"system(command) (true pokud 'command' vrátil 0;\n" -"% v 'command' je nahrazen cestou souèasného souboru)\n" -"prune (false, zabrání prohledávání obsahu adresáøe)." - -#: action.c:246 -#, fuzzy -msgid "Change permissions reference" -msgstr "Najít referenci výrazu" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normálnì staèí vybrat pøíkaz z nabídky (kliknìte \n" -"na ¹ipku vedle pøíkazového boxu). Nìkdy je potøeba více...\n" -"\n" -"Formát pøíkazu je: ZMÌNA, ZMÌNA, ...\n" -"Ka¾dá ZMÌNA je: KDO JAK PRÁVA\n" -"KDO je kombinace u, g a o, která urèuje, jestli\n" -"zmìnit práva pro U¾ivatele (vlastník), Skupinu nebo Ostatní.\n" -"JAK je +, - nebo = pro pøidání, odebrání nebo " -"pøesné nastavení práv.\n" -"PRÁVA je kombinace znakù rwxXstugo\n" -"\n" -"Uzávorkovaný text a mezery jsou ignorovány.\n" -"\n" -"Pøíklady\n" -"u+rw: vlastník souboru získá práva ètení a zápisu\n" -"g=u: práva skupiny jsou nastavena na stejná práva jako má u¾ivatel\n" -"o=u-w: ostatní získají stejná práva jako vlastník kromì práva zápisu\n" -"a+x: V¹ichni získají právo provedení/pøístupu - stejné jako " -"ugo+x\n" -"a+X: adresáøe se stanou pøístupné pro v¹echny; soubory, které mìly\n" -"pro nìkoho právo spu¹tìní se stanou spustitelné pro v¹echny\n" -"u+rw, go+r: dva pøíkazy v jednom!\n" -"u+s: nastaví SetUID bit - èasto nemá efekt u skriptù\n" -"755: nastaví práva pøímo\n" -"\n" -"Pro úplné informace ètìte manovou stránku chmod(1)." - -#: action.c:298 -#, fuzzy -msgid "Set type reference" -msgstr "Najít referenci výrazu" - -#: action.c:309 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Proces pøeru¹en.\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Nastala jedna chyba.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Nastalo %d chyb.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "CHYBA ètení" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Hotovo\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "CHYBA" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Ano" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Ne" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"®ádost o ukonèení potomka...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Zkou¹ím zabít run-away proces...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Count contents of %s?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Smazat %s'%s'?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "CHRÁNÌNO PROTI ZÁPISU" - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "Ma¾u '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "Adresáø '%s' smazán\n" - -#: action.c:982 -#, fuzzy, c-format -msgid "?Eject '%s'?" -msgstr "?Zkontrolovat '%s'?" - -#: action.c:989 -#, fuzzy, c-format -msgid "'Eject '%s'\n" -msgstr "Ma¾u '%s'\n" - -#: action.c:1008 -#, fuzzy, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"Pøipojení selhalo\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?Zkontrolovat '%s'?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Neplatná podmínka pro vyhledávání - zmìòte ji a zkuste znovu\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(pøi kontrole '%s')\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Zmìnit práva '%s'?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Mìním práva '%s'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Neplatný mód pøíkazu - zmìòte jej a zkuste znovu\n" - -#: action.c:1207 action.c:1227 -#, fuzzy, c-format -msgid "?Change type of '%s'?" -msgstr "?Zmìnit práva '%s'?" - -#: action.c:1224 -#, fuzzy -msgid "!Invalid type - change it and try again\n" -msgstr "!Neplatný mód pøíkazu - zmìòte jej a zkuste znovu\n" - -#: action.c:1246 -#, fuzzy, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Mìním práva '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' u¾ existuje - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "spojit obsah" - -#: action.c:1328 -msgid "overwrite" -msgstr "pøepsat" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Pøesto zkou¹ím zkopírovat...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Zkopírovat %s jako %s?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Kopíruji %s jako %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!CHYBA: Cíl u¾ existuje, ale není to adresáø\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Kopírování '%s' selhalo\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' u¾ existuje - pøepsat?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Pøesto zkou¹ím zkopírovat...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Pøesunout %s na %s?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Pøesunuji %s na %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Pøesunutí %s do %s selhalo\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!CHYBA: Nelze zkopírovat objekt do sebe\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!CHYBA: Nelze pøesunout/pøejmenovat objekt do sebe\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Vytváøím odkaz %s na %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Vytvoøit odkaz %s na %s?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Pøipojuji %s\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Odpojuji %s\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?Pøipojit %s?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?Odpojit %s?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Pøipojení selhalo\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Odpojení selhalo\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Celkem: %s (" - -#: action.c:1704 -msgid "file" -msgstr "soubor" - -#: action.c:1704 -msgid "files" -msgstr "soubory" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "¾ádné adresáøe)\n" - -#: action.c:1712 -msgid "directory" -msgstr "adresáø" - -#: action.c:1713 -msgid "directories" -msgstr "adresáøe" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Nejsou zvoleny ¾ádné body pro pøipojení!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Dal¹í hledání?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' je symbolický odkaz\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Musíte zvolit nìjaké polo¾ky ve kterých se má hledat" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Najít" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Musíte zvolit nìjaké polo¾ky pro spoèítání velikosti" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Vyu¾ití disku" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Pøipojit / Odpojit" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "" -"ROX-Filer zatím nepodporuje pøipojovací body na Va¹em systému. Promiòte." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Smazat" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Bez potvrzení" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Nepotvrzovat smazání polo¾ek, které nemají právo zápisu" - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Struènì" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Vypisovat pouze smazané adresáøe?" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "Musíte zvolit polo¾ky, u kterých chcete zmìnit práva" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Povolit spou¹tìní/pøístup)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Zakázat spou¹tìní/pøístup)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Povolit vlastníkovi èíst+zapisovat)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Soukromé - pøístup povolen pouze vlastníkovi)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Pøístup povolen v¹em, bez práva zápisu)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Pøístupová práva" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Nevypisovat zpracované soubory" - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Rekurzivnì" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Zmìnit i obsah podadresáøù" - -#: action.c:2123 -msgid "Command:" -msgstr "Pøíkaz:" - -#: action.c:2151 -#, fuzzy -msgid "You need to select the items whose type you want to change" -msgstr "Musíte zvolit polo¾ky, u kterých chcete zmìnit práva" - -#: action.c:2164 -#, fuzzy -msgid "Set type" -msgstr "Tøídit podle typu" - -#: action.c:2178 -#, fuzzy -msgid "Change contents of subdirectories" -msgstr "Zmìnit i obsah podadresáøù" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Typ:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopírovat" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Novìj¹í" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Pøepsat jen kdy¾ je zdroj novìj¹í ne¾ cíl." - -#: action.c:2228 -#, fuzzy -msgid "Only log directories as they are copied" -msgstr "Vypisovat pouze smazané adresáøe?" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Pøesunout" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Vytvoøit odkaz" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Ma¾u polo¾ky jako " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Ma¾u polo¾ku " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Ma¾u polo¾ky " - -#: action.c:2385 -msgid " and " -msgstr " a " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " po¹kodí nìkteré polo¾ky na plo¹e nebo panelu - opravdu smazat?" - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " po¹kodí nìkteré polo¾ky na plo¹e nebo panelu - opravdu smazat?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" - -#: appmenu.c:339 menu.c:234 -#, fuzzy -msgid "Customise Menu..." -msgstr "Nastavit" - -#: appmenu.c:396 menu.c:251 toolbar.c:159 -msgid "Help" -msgstr "Nápovìda" - -#: bookmarks.c:147 -msgid "Path" -msgstr "" - -#: bookmarks.c:155 -#, fuzzy -msgid "Title" -msgstr "Dla¾dice" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Nelze vytvoøit zálo¾ku nelokálního zdroje '%s'\n" - -#: bookmarks.c:312 bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' není adresáø" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Nejprve zvolte nìjaké øádky ke smazání" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Pro pøesun umístìte kurzor na polo¾ku seznamu" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Tato polo¾ka u¾ je na konci" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Nelze vytvoøit zálo¾ku nelokálních adresáøù jako je '%s'" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Pøidat novou zálo¾ku" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Upravit zálo¾ky" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "Nedávno nav¹tívené" - -#: bulk_rename.c:68 -msgid "Bulk rename files" -msgstr "" - -#: bulk_rename.c:71 -#, fuzzy -msgid "Reset" -msgstr "_Vrátit zpìt" - -#: bulk_rename.c:76 -msgid "Make the New column a copy of Old" -msgstr "" - -#: bulk_rename.c:81 -#, fuzzy -msgid "_Rename" -msgstr "Pøejmenovat" - -#: bulk_rename.c:94 -#, fuzzy -msgid "Replace:" -msgstr "_Nahradit" - -#: bulk_rename.c:101 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" - -#: bulk_rename.c:109 -#, fuzzy -msgid "With:" -msgstr "polo¾ka" - -#: bulk_rename.c:116 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "" - -#: bulk_rename.c:123 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "" - -#: bulk_rename.c:151 -#, fuzzy -msgid "New name" -msgstr "Pøejmenovat" - -#: bulk_rename.c:259 -msgid "No strings (in the New column) matched the given expression" -msgstr "" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "" - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "" - -#: bulk_rename.c:293 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" - -#: bulk_rename.c:310 -#, c-format -msgid "%s (for '%s')" -msgstr "" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" - -#: bulk_rename.c:410 -#, fuzzy, c-format -msgid "A file called '%s' already exists" -msgstr "?'%s' u¾ existuje - %s?" - -#: bulk_rename.c:421 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "" - -#: choices.c:428 -#, fuzzy -msgid "Choices migration" -msgstr "Èínsky (tradièní)" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Can't stat directory: %s" - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Nelze otevøít adresáø: %s" - -#: display.c:588 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) selhalo: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Interní chyba - bad info type" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "K pøidání adresáøe mezi zálo¾ky jej sem pøetáhnìte." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "Chyba protokolu XDS: leafname nemá obsahovat '/'\n" - -#: dnd.c:605 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Promiòte - je vy¾adován cíl typu text/uri-list nebo XdndDirectSave0." - -#: dnd.c:621 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Promiòte - je vy¾adován cíl typu text/uri-list nebo application/octet-stream." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Neznámý cíl" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Vzdálená aplikace mi nemù¾e nebo nechce poslat data - sorry" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "chyba protokolu XDS: návratový kód by mìl být 'S', 'F' nebo 'E'\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Promiòte, nemohu zobrazit nabídku akcí pro vzdálené soubory / nezpracovaná" -"(syrová) data." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "NepojmenovanáData" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Chyba pøi ukládání souboru: %s" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "®ádné URI v text/uri-seznamu (není co dìlat)" - -#: dnd.c:993 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Nelze získat data ze vzdáleného poèítaèe (application/octet-stream není " -"poskytován)" - -#: dnd.c:1016 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Nìkteré z tìchto souborù jsou na vzdáleném poèítaèi - tyto soubory budou " -"ignorovány - sorry" - -#: dnd.c:1023 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"®ádný z tìchto souborù není na tomto poèítaèi - nemohu pracovat s více " -"vzdálenými soubory - promiòte." - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Po¾adována neznámá akce" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Chyba pøi získání seznamu souborù: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Ukázat" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Ukázat souèasný výbìr v oknì správce souborù" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"Nemohu zobrazit nastavenou polo¾ku, proto¾e ¾ádná není nastavena. Pøetáhnìte " -"nìjakou na toto místo!" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Promiòte, na toto místo musíte pøetáhnout právì jeden soubor." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Promiòte, nemohu pou¾ít '%s' proto¾e to není místní soubor." - -#: dropbox.c:280 pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Nemám pøístup k '%s':\n" -"%s" - -#: filer.c:453 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Chyba pøi prozkoumávání '%s':\n" -"%s\n" - -#: filer.c:457 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Chyba pøi prozkoumávání '%s':\n" -"%s" - -#: filer.c:562 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Chcete odpojit toto zaøízení?\n" -"\n" -"Odpojení disku umo¾òuje bezpeèné vyjmutí disku." - -#: filer.c:566 -#, fuzzy -msgid "No change" -msgstr "Nic" - -#: filer.c:572 menu.c:862 -msgid "Unmount" -msgstr "Odpojit" - -#: filer.c:669 -msgid "Directory missing/deleted" -msgstr "Adresáø chybí/je smazán" - -#: filer.c:1031 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Skupina %s není nastavena. Pro nastavení skupiny vyberte nìjaké soubory a " -"stisknìte Ctrl+%s. Pozdìji mù¾ete tyto soubory znovu vybrat stisknutím %s.\n" -"Ujistìte se, ¾e je zapnutý NumLock v pøípadì, ¾e pou¾íváte keypad." - -#: filer.c:1267 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Adresáø '%s' není pøístupný" - -#: filer.c:1419 -#, c-format -msgid "Directory '%s' not found." -msgstr "Adresáø '%s' nenalezen." - -#: filer.c:1713 -msgid "Cancel" -msgstr "Zavøít" - -#: filer.c:2002 -msgid "S" -msgstr "S" - -#: filer.c:2004 -msgid "T" -msgstr "T" - -#: filer.c:2026 -msgid "Scanning, " -msgstr "Prozkoumávám" - -#: filer.c:2028 -msgid "Thumbs, " -msgstr "Náhledy, " - -#: filer.c:2304 -msgid "Symbolic link to " -msgstr "Symbolický odkaz na " - -#: filer.c:2335 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "" -"Toto není platné jméno souboru v kódování UTF-8. Mìli by jste jej " -"pøejmenovat.\n" - -#: filer.c:2643 menu.c:1989 -msgid "Item no longer exists!" -msgstr "Polo¾ka u¾ neexistuje" - -#: filer.c:3327 -msgid "Select display properties to save" -msgstr "" - -#: filer.c:3334 -#, fuzzy -msgid "Position" -msgstr "®ádný popis" - -#: filer.c:3339 toolbar.c:135 toolbar.c:139 tips:63 -msgid "Size" -msgstr "Velikost" - -#: filer.c:3344 -#, fuzzy -msgid "Show hidden" -msgstr "Zobrazit skryté" - -#: filer.c:3350 -#, fuzzy -msgid "Display style" -msgstr "Zobrazit" - -#: filer.c:3356 -#, fuzzy -msgid "Sort type and order" -msgstr "Tøídit podle vlastníka" - -#: filer.c:3361 toolbar.c:143 -msgid "Details" -msgstr "Podrobnosti" - -#: filer.c:3366 tips:114 tips:115 -msgid "Thumbnails" -msgstr "Náhledy" - -#: filer.c:3372 -#, fuzzy -msgid "Filter" -msgstr "Soubor" - -#: find.c:487 -msgid "And" -msgstr "And" - -#: find.c:511 -msgid "Not" -msgstr "Not" - -#: find.c:554 -msgid "system" -msgstr "system" - -#: find.c:562 -msgid "prune" -msgstr "prune" - -#: find.c:650 -msgid "After" -msgstr "After" - -#: find.c:652 -msgid "Before" -msgstr "Before" - -#: find.c:746 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:748 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:750 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:752 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:754 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:756 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:758 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:760 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:762 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:764 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:766 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:768 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:770 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:772 -msgid "IsWriteable" -msgstr "IsWriteable" - -#: find.c:774 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:776 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:778 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:906 -msgid "Now" -msgstr "Now" - -#: find.c:919 -msgid "Byte" -msgstr "Byte" - -#: find.c:919 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:921 -msgid "Kb" -msgstr "" - -#: find.c:921 -msgid "K" -msgstr "" - -#: find.c:923 -msgid "Mb" -msgstr "" - -#: find.c:923 -msgid "M" -msgstr "" - -#: find.c:925 -msgid "Gb" -msgstr "" - -#: find.c:925 -msgid "G" -msgstr "" - -#: find.c:927 -msgid "Sec" -msgstr "Sec" - -#: find.c:927 -msgid "Secs" -msgstr "Secs" - -#: find.c:929 -msgid "Min" -msgstr "Min" - -#: find.c:929 -msgid "Mins" -msgstr "Mins" - -#: find.c:931 -msgid "Hour" -msgstr "Hour" - -#: find.c:931 -msgid "Hours" -msgstr "Hours" - -#: find.c:933 -msgid "Day" -msgstr "Day" - -#: find.c:933 -msgid "Days" -msgstr "Days" - -#: find.c:935 -msgid "Week" -msgstr "Week" - -#: find.c:935 -msgid "Weeks" -msgstr "Weeks" - -#: find.c:937 -msgid "Year" -msgstr "Year" - -#: find.c:937 -msgid "Years" -msgstr "Years" - -#: find.c:946 -msgid "Ago" -msgstr "Ago" - -#: find.c:948 -msgid "Hence" -msgstr "Hence" - -#: find.c:963 -msgid "atime" -msgstr "atime" - -#: find.c:965 -msgid "ctime" -msgstr "ctime" - -#: find.c:967 -msgid "mtime" -msgstr "mtime" - -#: find.c:969 -msgid "size" -msgstr "size" - -#: find.c:971 -msgid "inode" -msgstr "inode" - -#: find.c:973 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "blocks" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Ulo¾ jako:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Nepojmenované" - -#: gtksavebox.c:473 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"Vzdálená aplikace chce pou¾ít Direct Save, ale nemù¾u èíst XdndDirectSave0 " -"(typ text/plain) vlastnost.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Pøetáhnìte ikonu do prohlí¾eèe adresáøù\n" -"(nebo zadejte celou cestu)" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "Ètu XML soubor jako textový soubor. Soubor '%s' mù¾e být po¹kozen." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and click on Save.\n" -"Further errors will be ignored." -msgstr "" -"Chyba v souboru '%s' na øádku %d: \n" -"\"%s\"\n" -"Toto mù¾e být zpùsobeno upgradem z pøedchozí verze ROX-Fileru. Otevøete okno " -"Mo¾nosti a kliknìte na Ulo¾it.\n" -"Dal¹í chyby budou ignorovány." - -#: gui_support.c:1000 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Chybný nebo chybìjící konec øádku v text/uri-list datech" - -#: gui_support.c:1332 -#, fuzzy, c-format -msgid "Failed to open file '%s': %s" -msgstr "" -"!%s\n" -"Kopírování '%s' selhalo\n" - -#: gui_support.c:1376 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" - -#: gui_support.c:1427 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can " -"be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" - -#: i18n.c:38 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Musíte ulo¾it Va¹e volby a restartovat filer, aby bylo nové nastavení jazyka " -"plnì funkèní." - -#: icon.c:78 -msgid "(click to set)" -msgstr "(kliknìte pro nastavení)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 menu.c:252 -msgid "About ROX-Filer..." -msgstr "O programu ROX-Filer..." - -#: icon.c:135 menu.c:253 -msgid "Show Help Files" -msgstr "Zobrazit Nápovìdu" - -#: icon.c:136 menu.c:254 -msgid "Manual" -msgstr "Manuál" - -#: icon.c:138 menu.c:230 -msgid "Options..." -msgstr "Mo¾nosti..." - -#: icon.c:139 menu.c:239 -msgid "Home Directory" -msgstr "Domovský adresáø" - -#: icon.c:140 icon.c:1340 menu.c:206 type.c:212 -msgid "File" -msgstr "Soubor" - -#: icon.c:141 menu.c:212 menu.c:875 -msgid "Shift Open" -msgstr "Shift Otevøení" - -#: icon.c:142 menu.c:218 -msgid "Properties" -msgstr "" - -#: icon.c:143 menu.c:216 -msgid "Set Run Action..." -msgstr "Nastavit spou¹tìcí akci..." - -#: icon.c:144 menu.c:217 -msgid "Set Icon..." -msgstr "Nastavit ikonu..." - -#: icon.c:145 icon.c:806 -msgid "Edit Item" -msgstr "Upravit polo¾ku" - -#: icon.c:146 -msgid "Show Location" -msgstr "Zobrazit umístìní" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Odebrat polo¾ku(y)" - -#: icon.c:278 menu.c:764 -#, c-format -msgid "%s '%s'" -msgstr "" - -#: icon.c:291 -msgid "Nothing" -msgstr "Nic" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Umístìní musí obsahovat alespoò jeden znak!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Nejprve musíte oznaèit nìjaké polo¾ky pro odebrání" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Nabídku musíte otevøít nad polo¾kou" - -#: icon.c:652 menu.c:1260 -msgid "You can only set the run action for a regular file" -msgstr "Spou¹tìcí akci mù¾ete nastavit jen pro bì¾né soubory" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Stisknìte po¾adovanou zkratku (napø. Control+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Chyba pøi snímání klávesové zkratky!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Kliknutí na ikonu otevøe:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Text zobrazen pod ikonou je:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "Klávesová zkratka je:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Opravdu otevøít %d oken?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Zobrazit Info" - -#: infobox.c:135 menu.c:769 -msgid "(bad utf-8)" -msgstr "(¹patné utf-8)" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "Zobrazit _Help soubory" - -#: infobox.c:272 -#, fuzzy -msgid "Permissions" -msgstr "Pøístupová práva" - -#: infobox.c:286 -msgid "Contents indicate..." -msgstr "" - -#: infobox.c:423 infobox.c:560 support.c:349 -msgid "bytes" -msgstr "bytù" - -#: infobox.c:446 -#, fuzzy -msgid "Failed to read size" -msgstr "" -"!%s\n" -"Kopírování '%s' selhalo\n" - -#: infobox.c:504 -#, fuzzy, c-format -msgid "'%s' is no longer a symlink" -msgstr "!'%s' je symbolický odkaz\n" - -#: infobox.c:511 -#, fuzzy, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"!%s\n" -"Kopírování '%s' selhalo\n" - -#: infobox.c:516 -#, fuzzy, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"!%s\n" -"Kopírování '%s' selhalo\n" - -#: infobox.c:539 tips:270 -msgid "Error:" -msgstr "Chyba:" - -#: infobox.c:546 -msgid "Real directory:" -msgstr "Skuteèný adresáø:" - -#: infobox.c:549 -msgid "Owner, Group:" -msgstr "Vlastník, Skupina:" - -#: infobox.c:556 infobox.c:571 infobox.c:580 -msgid "Size:" -msgstr "Velikost:" - -#: infobox.c:581 -#, fuzzy -msgid "Scanning" -msgstr "Prozkoumávám" - -#: infobox.c:602 -msgid "Failed to scan" -msgstr "" - -#: infobox.c:609 -msgid "Change time:" -msgstr "Èas zmìny:" - -#: infobox.c:611 -msgid "Modify time:" -msgstr "Èas úpravy:" - -#: infobox.c:613 -msgid "Access time:" -msgstr "Èas pøístupu:" - -#: infobox.c:621 -msgid "Extended attributes:" -msgstr "" - -#: infobox.c:623 -msgid "Present" -msgstr "" - -#: infobox.c:624 -msgid "None" -msgstr "®ádný" - -#: infobox.c:625 -#, fuzzy -msgid "Not supported" -msgstr "Dnotify support" - -#: infobox.c:637 -#, fuzzy -msgid "Link target:" -msgstr "Neznámý cíl" - -#: infobox.c:649 infobox.c:652 -msgid "Run action:" -msgstr "Spou¹tìcí akce" - -#: infobox.c:649 -msgid "Execute file" -msgstr "Spustitelný soubor" - -#: infobox.c:744 -msgid "" -msgstr "" - -#: infobox.c:814 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) identifikuje polo¾ku jako... %s" - -#: infobox.c:871 -#, fuzzy, c-format -msgid "Could not change permissions: %s" -msgstr "?Zmìnit práva '%s'?" - -#: infobox.c:889 -#, fuzzy -msgid "Owner" -msgstr "_Vlastník" - -#: infobox.c:891 -#, fuzzy -msgid "Group" -msgstr "_Skupina" - -#: infobox.c:893 -msgid "World" -msgstr "" - -#: infobox.c:896 -#, fuzzy -msgid "Read" -msgstr "Pøejmenovat" - -#: infobox.c:898 -#, fuzzy -msgid "Write" -msgstr "polo¾ka" - -#: infobox.c:900 -msgid "Exec" -msgstr "" - -#: infobox.c:917 -#, fuzzy -msgid "SUID" -msgstr "IsSUID" - -#: infobox.c:924 -#, fuzzy -msgid "SGID" -msgstr "IsSGID" - -#: infobox.c:931 -#, fuzzy -msgid "Sticky" -msgstr "IsSticky" - -#: infobox.c:953 -msgid "Symbolic link" -msgstr "Symbolický odkaz" - -#: infobox.c:956 -msgid "ROX application" -msgstr "ROX aplikace" - -#: infobox.c:964 -msgid "mounted" -msgstr "pøipojeno" - -#: infobox.c:964 -msgid "unmounted" -msgstr "odpojeno" - -#: infobox.c:968 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Bod pøipojení pro %s (%s)" - -#: infobox.c:971 -#, c-format -msgid "Mount point (%s)" -msgstr "Bod pøipojení (%s)" - -#: main.c:95 -#, fuzzy -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2003 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Zkuste `ROX-Filer/AppRun --help' pro více informací.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Zkuste `ROX-Filer/AppRun -h' pro více informací.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"POZNÁMKA: Vá¹ systém nepodporuje dlouhé volby - \n" -"musíte pou¾ít krátké verze.\n" -"\n" - -#: main.c:115 -#, fuzzy -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Pou¾ití: ROX-Filer/AppRun [VOLBY]... [SOUBOR]...\n" -"Otevøe v¹echny zadané adresáøe a soubory, nebo pracovní\n" -"adresáø, pokud nejsou zadány ¾ádné argumenty.\n" -"\n" -" -b, --bottom=PANEL\totevøe PAN jako panel na dolním okraji\n" -" -c, --client-id=ID\tpou¾ito pro správce sezení\n" -" -d, --dir=ADR\t\totevøe ADR jako adresáø (ne jako aplikaci)\n" -" -D, --close=ADR\tzavøe ADR a jeho podadresáøe\n" -" -h, --help\t\tzobrazí tuto nápovìdu a skonèí\n" -" -l, --left=PANEL\totevøe PAN jako panel na levém okraji\n" -" -m, --mime-type=SOUB\tvypí¹e MIME typ souboru SOUB a skonèí\n" -" -n, --new\t\tspustí novou kopii; pro ladìní správce souborù\n" -" -p, --pinboard=PIN\tpou¾ije pluchu PIN jako plochu\n" -" -r, --right=PANEL\totevøe panel PAN panel na pravém okraji\n" -" -R, --RPC\t\tnastavit ètení volání metod ze stand. vstupu\n" -" -s, --show=SOUB\totevøe adresáø a soubor SOUB je zobrazen\n" -" -t, --top=PANEL\totevøe PANEL jako panel na horním okraji\n" -" -u, --user\t\tzobrazí u¾ivatelské jméno v ka¾dém oknì \n" -" -v, --version\t\tzobrazí informace o verzi a skonèí\n" -" -x, --examine=SOUB\tSOUB se zmìnil - znovu jej prozkoumat\n" -"\n" -"Chyby hlaste na .\n" -"Domovská stránka (vèetnì nových verzí): http://rox.sourceforge.net/\n" - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" - -#: main.c:382 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." - -#: main.c:489 -#, c-format -msgid "Running as user '%s'" -msgstr "Bì¾í pod u¾ivatelem '%s'" - -#: main.c:666 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Pøelo¾eno s GTK verzí %s\n" - -#: main.c:667 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Spu¹tìno s GTK verzí %d.%d.%d\n" - -#: main.c:671 -msgid "features set at compile time" -msgstr "vlastnosti nastavené v dobì pøekladu" - -#: main.c:672 -msgid "Large File Support" -msgstr "Podpora velkých souborù" - -#: main.c:679 -msgid "GNOME-VFS library" -msgstr "GNOME-VFS knihovna" - -#: main.c:683 -msgid "No (need 2.8.0 or later)" -msgstr "" - -#: main.c:686 -msgid "Dnotify support" -msgstr "Dnotify support" - -#: main.c:693 -#, fuzzy -msgid "Binary compatibility" -msgstr "Kompatibilita" - -#: main.c:695 -msgid "Yes (can run with older glibc versions)" -msgstr "" - -#: main.c:697 -msgid "No (apsymbols.h not found)" -msgstr "" - -#: menu.c:180 tips:52 -msgid "Display" -msgstr "Zobrazit" - -#: menu.c:181 tips:57 -msgid "Icons View" -msgstr "Ikonový pohled" - -#: menu.c:182 -msgid "Icons, With..." -msgstr "Ikony, S..." - -#: menu.c:183 tips:74 -msgid "Sizes" -msgstr "Velikostmi" - -#: menu.c:185 tips:254 -msgid "Types" -msgstr "Typy" - -#: menu.c:186 tips:77 -msgid "Times" -msgstr "Èasy" - -#: menu.c:187 tips:58 tips:92 -msgid "List View" -msgstr "Seznamový pohled" - -#: menu.c:189 -msgid "Bigger Icons" -msgstr "Vìt¹í ikony" - -#: menu.c:190 -msgid "Smaller Icons" -msgstr "Men¹í ikony" - -#: menu.c:191 tips:71 -msgid "Automatic" -msgstr "Automaticky" - -#: menu.c:193 -msgid "Sort by Name" -msgstr "Tøídit podle jména" - -#: menu.c:194 -msgid "Sort by Type" -msgstr "Tøídit podle typu" - -#: menu.c:195 -msgid "Sort by Date" -msgstr "Tøídit podle data" - -#: menu.c:196 -msgid "Sort by Size" -msgstr "Tøídit podle velikosti" - -#: menu.c:197 -msgid "Sort by Owner" -msgstr "Tøídit podle vlastníka" - -#: menu.c:198 -msgid "Sort by Group" -msgstr "Tøídit podle skupiny" - -#: menu.c:199 -msgid "Reversed" -msgstr "Opaènì" - -#: menu.c:201 -msgid "Show Hidden" -msgstr "Zobrazit skryté" - -#: menu.c:202 -msgid "Filter Files..." -msgstr "" - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Zobrazit náhledy" - -#: menu.c:204 -msgid "Refresh" -msgstr "Obnovit" - -#: menu.c:205 -msgid "Save Display Settings..." -msgstr "" - -#: menu.c:207 -msgid "Copy..." -msgstr "Kopírovat..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Pøejmenovat..." - -#: menu.c:209 -msgid "Link..." -msgstr "Vytvoøit odkaz..." - -#: menu.c:213 -msgid "Open AVFS" -msgstr "Otevøít AFVS" - -#: menu.c:214 -msgid "Send To..." -msgstr "Poslat na..." - -#: menu.c:219 -msgid "Count" -msgstr "Poèet" - -#: menu.c:220 -#, fuzzy -msgid "Set Type..." -msgstr "Poslat na..." - -#: menu.c:224 toolbar.c:155 -msgid "Select" -msgstr "Vybrat" - -#: menu.c:225 -msgid "Select All" -msgstr "Vybrat v¹e" - -#: menu.c:226 -msgid "Clear Selection" -msgstr "Odznaèit vybrané" - -#: menu.c:227 -msgid "Invert Selection" -msgstr "Invertovat výbìr" - -#: menu.c:228 -#, fuzzy -msgid "Select by Name..." -msgstr "Tøídit podle jména" - -#: menu.c:229 -msgid "Select If..." -msgstr "Vybrat pokud..." - -#: menu.c:231 -msgid "New" -msgstr "Nový" - -#: menu.c:233 -msgid "Blank file" -msgstr "Prázdný soubor" - -#: menu.c:235 tasklist.c:308 -msgid "Window" -msgstr "Okno" - -#: menu.c:236 -msgid "Parent, New Window" -msgstr "Nadøazený adresáø, Nové okno" - -#: menu.c:237 -msgid "Parent, Same Window" -msgstr "Nadøazený adresáø, Stejné okno" - -#: menu.c:238 -msgid "New Window" -msgstr "Nové okno" - -#: menu.c:240 -msgid "Show Bookmarks" -msgstr "Zobrazit zálo¾ky" - -#: menu.c:241 -msgid "Follow Symbolic Links" -msgstr "Následovat symbolické odkazy" - -#: menu.c:242 -msgid "Resize Window" -msgstr "Upravit velikost okna" - -#: menu.c:245 -msgid "Close Window" -msgstr "Zavøít okno" - -#: menu.c:247 -msgid "Enter Path..." -msgstr "Zadat cestu..." - -#: menu.c:248 -msgid "Shell Command..." -msgstr "Shell pøíkaz" - -#: menu.c:249 -msgid "Xterm Here" -msgstr "Xterm v tomto adresáøi" - -#: menu.c:250 -msgid "Switch to xterm" -msgstr "Pøepnout do xtermu" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "" -"Mìli by jste stisknout Shift a menu tlaèítko nad souborem, abyste jej nìkam " -"poslali" - -#: menu.c:754 -msgid "Next Click" -msgstr "Dal¹í kliknutí" - -#: menu.c:776 -#, c-format -msgid "%d items" -msgstr "%d polo¾ek" - -#: menu.c:864 -msgid "Open unmounted" -msgstr "Otevøít odpojené" - -#: menu.c:867 -msgid "Show Target" -msgstr "Zobrazit cíl" - -#: menu.c:869 -msgid "Look Inside" -msgstr "Podívat se dovnitø" - -#: menu.c:871 -msgid "Open As Text" -msgstr "Otevøít jako text" - -#: menu.c:1031 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" - -#: menu.c:1037 -msgid "Setting type not supported for some of these files" -msgstr "" - -#: menu.c:1072 -msgid "_Relative link" -msgstr "_Relativní odkaz" - -#: menu.c:1078 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Pokud je zapnuto, symbolický odkaz ulo¾í cestu ze symb. odkazu do cílového " -"souboru. Pou¾ijte, pokud symb. odkaz a cíl budou pøesunuty spoleènì.\n" -"Pokud je vypnuto, je ulo¾ena cesta z koøenového adresáøe - pu¾ijte, pokud se " -"symb. odkaz mù¾e pøesunout, ale cíl ne." - -#: menu.c:1148 -msgid "New pathname is not absolute" -msgstr "Nová cesta není absolutní" - -#: menu.c:1214 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "Symbolický odkaz z '%s' u¾ existuje. Nahradit ho odkazem na '%s'?" - -#: menu.c:1220 -msgid "_Replace" -msgstr "_Nahradit" - -#: menu.c:1351 menu.c:1392 menu.c:1452 -msgid "Create" -msgstr "Vytvoøit" - -#: menu.c:1352 -msgid "NewDir" -msgstr "Nový adresáø" - -#: menu.c:1366 menu.c:1372 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Chyba pøi vytváøení '%s': %s" - -#: menu.c:1393 -msgid "NewFile" -msgstr "Nový soubor" - -#: menu.c:1411 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Chyba pøi vytváøení souboru: nemohu najít ¹ablonu pro %s" - -#: menu.c:1482 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"Menu `Poslat na' je rychlý zpùsob, jak poslat soubory nìjaké aplikaci. " -"Nabízené aplikace jsou ty, které jsou v tìchto adresáøích:\n" -"\n" -"%s\n" -"%s\n" -"Menu `Poslat na' je mo¾né otevøít pomocí Shift+Menu kliknutí na souboru.\n" -"\n" -"Pokroèilé pou¾ití:\n" -"Mù¾ete také vytváøet podadresáøe nazvané `.text_html', `.text', atd., které " -"budou zobrazeny pouze pro daný typ. `.group' je zobrazeno jen kdy¾ je " -"vybráno více souborù" - -#: menu.c:1493 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Nyní zobrazím Vá¹ `Poslat na' adresáø; meli by jste vytvoøit symbolické " -"odkazy (Ctrl+Shift pøetáhnutí) na aplikace, které tam chcete mít." - -#: menu.c:1496 menu.c:1536 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "Nastavení Va¹í promìnné CHOICESPATH znemo¾òuje zmìny - promiòte." - -#: menu.c:1529 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" - -#: menu.c:1534 -#, fuzzy -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Nyní zobrazím Vá¹ `Poslat na' adresáø; meli by jste vytvoøit symbolické " -"odkazy (Ctrl+Shift pøetáhnutí) na aplikace, které tam chcete mít." - -#: menu.c:1651 -msgid "Customise" -msgstr "Nastavit" - -#: menu.c:1717 -msgid "This is already the canonical name for this directory." -msgstr "Toto u¾ je kanonické jméno pro tento adresáø." - -#: menu.c:1748 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Nemù¾ete otevøít druhý pohled na tento adresáø, proto¾e volba `Unikátní " -"okna' je zapnuta v oknì Mo¾nosti." - -#: menu.c:1869 -msgid "Copy ... ?" -msgstr "Kopírovat ... ?" - -#: menu.c:1872 -msgid "Rename ... ?" -msgstr "Pøejmenovat ... ?" - -#: menu.c:1875 -msgid "Symlink ... ?" -msgstr "Symbolický odkaz ... ?" - -#: menu.c:1878 -msgid "Shift Open ... ?" -msgstr "Shift Otevøení ... ?" - -#: menu.c:1881 -#, fuzzy -msgid "Properties of ... ?" -msgstr "Spoèítat velikost ... ?" - -#: menu.c:1884 -#, fuzzy -msgid "Set type of ... ?" -msgstr "Nastavit ikonu pro ... ?" - -#: menu.c:1887 -msgid "Set run action for ... ?" -msgstr "Nastavit spou¹tìcí akci pro ... ?" - -#: menu.c:1890 -msgid "Set icon for ... ?" -msgstr "Nastavit ikonu pro ... ?" - -#: menu.c:1893 -msgid "Send ... to ... ?" -msgstr "Poslat ... na ... ?" - -#: menu.c:1896 -msgid "DELETE ... ?" -msgstr "SMAZAT ... ?" - -#: menu.c:1899 -msgid "Count the size of ... ?" -msgstr "Spoèítat velikost ... ?" - -#: menu.c:1902 -msgid "Set permissions on ... ?" -msgstr "Nastavit práva pro ... ?" - -#: menu.c:1905 -msgid "Search inside ... ?" -msgstr "Hledat uvnitø ... ?" - -#: menu.c:1908 -msgid "Look inside ... ?" -msgstr "Podívat se do ... ?" - -#: menu.c:1972 -msgid "You cannot do this to more than one item at a time" -msgstr "Nemù¾ete pou¾ít souèasnì na více polo¾ek" - -#: menu.c:2004 -msgid "Rename" -msgstr "Pøejmenovat" - -#: menu.c:2009 -msgid "Symlink" -msgstr "Symbolický odkaz" - -#: menu.c:2041 -#, fuzzy -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"V Gtk2 jsou u¾ivatelsky definovatelné klávesové zkratky defaultnì zakázané a " -"Vy jste je nepovolili. Tuto volbu mù¾ete zapnout takto:\n" -"1) pomocí správce X vlastností, jako je ROX-Session\n" -"nebo\n" -"2) pøidáním této øádky do ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1" - -#: menu.c:2052 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Pro nastavení klávesové zkratky pro polo¾ku nabídky:\n" -"\n" -"- Otevøete nabídku ve správci souborù,\n" -"- Pøesuòte kurzor na polo¾ku, kterou chcete pou¾ít ,\n" -"- Stisknìte klávesouvou zkratku, kterou jí chcete pøiøadit.\n" -"\n" -"Zkratka se pøí¹tì objeví vedle polo¾ky nabídky a mù¾ete rovnou pou¾ívat " -"zkratku bez otevírání nabídky." - -#: menu.c:2067 -msgid "Set keyboard shortcuts" -msgstr "Nastavit klávesovou zkratku" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Jít do:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Vybrat pokud:" - -#: minibuffer.c:134 -#, fuzzy -msgid "Select Named:" -msgstr "Vybrat pokud:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "" - -#: minibuffer.c:264 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Zadejte jméno souboru a já ho zobrazím. Stisknìte Tab pro doplnìní " -"nejdel¹ího odpovídajícího jména, Escape pokud chcete zavøít minibuffer." - -#: minibuffer.c:270 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Zadejte shellový pøíkaz k provedení. Kliknìte na soubor pro jeho pøidání do " -"bufferu." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" - -#: minibuffer.c:287 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" - -#: minibuffer.c:895 -msgid "Invalid Find condition" -msgstr "Neplatná podmínka pro Hledání" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer pøevedl Vá¹ soubor s nastavením do nového XML formátu" - -#: options.c:535 options.c:1258 -msgid "(use default)" -msgstr "(pou¾ít defaultní)" - -#: options.c:806 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Intern9 chyba: %s nejde pøeèíst" - -#: options.c:917 -msgid "Options" -msgstr "Mo¾nosti" - -#: options.c:962 -msgid "_Revert" -msgstr "_Vrátit zpìt" - -#: options.c:968 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Obnovit v¹echny volby tak jak byly pøi otevøení boxu Mo¾nosti." - -#: options.c:983 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Volby budou ulo¾eny jako:\n" -"%s" - -#: options.c:991 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(ulo¾ení není povoleno kvùli CHOICESPATH)" - -#: options.c:1164 usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Chyba pøi ukládání %s: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "Chybí '='" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "" -"Vá¹ starý soubor s nastavením panelu byl oøeveden do nového XML formátu." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Zkusili jste zavøít panel pøes správce oken - to mù¾e zpùsobit problémy... " -"opravdu zavøít?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "V konfiguraèním souboru panelu chybí < nebo >" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Chyba pøi ukládání panelu %s: %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Applet skonèil ani¾ by vytvoøil widget!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Chyba pøi spu¹tìní appletu:\n" -"%s" - -#: panel.c:2335 -#, fuzzy -msgid "Panel Options..." -msgstr "Mo¾nosti..." - -#: panel.c:2427 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "" - -#: panel.c:2502 -#, fuzzy -msgid "Panel Options" -msgstr "Mo¾nosti" - -#: panel.c:2517 -#, fuzzy, c-format -msgid "Panel: %s" -msgstr "Panely" - -#: panel.c:2525 -msgid "Select the panel's position:" -msgstr "" - -#: panel.c:2531 -msgid "Top-edge panel" -msgstr "" - -#: panel.c:2532 -msgid "Top edge" -msgstr "" - -#: panel.c:2533 -msgid "Bottom edge panel" -msgstr "" - -#: panel.c:2534 -msgid "Bottom edge" -msgstr "" - -#: panel.c:2535 -msgid "Left edge panel" -msgstr "" - -#: panel.c:2536 -msgid "Left edge" -msgstr "" - -#: panel.c:2537 -msgid "Right-edge panel" -msgstr "" - -#: panel.c:2538 -msgid "Right edge" -msgstr "" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "" -"Vá¹ starý soubor s nastavením plochy byl pøeveden do nového XML formátu." - -#: pinboard.c:635 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Ovladaè pro nastavení pozadí musí být aplikaèní adresáø. Pøetáhnìte " -"aplikaèní adresáø na dialog Nastavení pozadí, nebo (pro programátory) jej " -"pøedejte SOAP metodì SetBackdropApp." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Na pozadí mù¾ete nastavit pouze obrázek nebo aplikaci, která ví, jak ovládat " -"pozadí ROX-Fileru.\n" -"\n" -"Programátorùm: AppInfo.xml aplikace musí obsahovat CanSetBackdrop element, " -"jak je popsáno v manuálu ROX-Fileru." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Nastavit pozadí" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Vyberte styl a pøetáhnìte obrázek na:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Umístit obrázek do støedu a nemìnit jeho velikost" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Umístit do støedu" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Zmìnit velikost obrázku na velikost plochy a nezkreslovat ho" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Zmìnit velikost" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Roztáhnout obrázek na velikost plochy" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Roztáhnout" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Umístit obrázek na plo¹e jako dla¾dice" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Dla¾dice" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Sem umístìte obrázek" - -#: pinboard.c:772 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Nebylo pou¾ito ¾ádné pozadí... 'Default' pozadí bylo vybráno. Pou¾ijte 'rox -" -"p=Default' pro zapnutí." - -#: pinboard.c:866 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Jen soubory (a nìkteré aplikace) mohou být pou¾ity pro nastavení obrázku na " -"pozadí." - -#: pinboard.c:1471 -msgid "Missing '>' in icon label" -msgstr "Chybí '>' ve jmenovce ikony" - -#: pinboard.c:1480 -msgid "Missing ',' after icon label" -msgstr "Chybí ',' za jmenovkou ikony" - -#: pinboard.c:1565 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Chyba pøi ukládání pozadí %s: %s" - -#: pinboard.c:2109 -msgid "Backdrop..." -msgstr "Nastavit pozadí..." - -#: pinboard.c:2202 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Chyba pøi naèítání pozadí:\n" -"%s\n" -"Pozadí odstranìno." - -#: pixmaps.c:991 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Nemohu smazat náhledy v %s:\n" -"%s" - -#: pixmaps.c:1012 -msgid "There are no thumbnails to delete" -msgstr "Nejsou ¾ádné náhledy ke smazání" - -#: pixmaps.c:1025 -msgid "Purge thumbnails disk cache" -msgstr "Smazat náhledy ulo¾ené v ke¹i" - -#: remote.c:624 -#, c-format -msgid "Unknown style '%s'" -msgstr "Neznámý styl '%s'" - -#: remote.c:646 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Neznámý typ '%s' podrobností" - -#: remote.c:674 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Neznámý typ tøídìní '%s'" - -#: remote.c:1117 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Attempt to invoke unknown SOAP method '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Neplatný .gmo soubor pøekladu (pøíli¹ krátký): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Neplatný .gmo soubor pøekladu (GNU magické èíslo nenalezeno): %s" - -#: run.c:96 run.c:141 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Program %s nenalezen - je smazán?" - -#: run.c:287 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Soubor neexistuje nebo k ìnu nemám pøístup: %s" - -#: run.c:292 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Nevím, jak otevøít '%s'" - -#: run.c:323 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Aplikace:\n" -"Toto je aplikaèní adresáø - mù¾ete ho spou¹tìt jako program nebo ho otevøít " -"(pøi jeho otevírání stidknìte Shift). Vìt¹ina aplikací má na tomto místì " -"vlastní nápovìdu, tato aplikace ale ne." - -#: run.c:407 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Nemohu poslat data programu: %s" - -#: run.c:437 -#, c-format -msgid "Could not read link: %s" -msgstr "Nemohu èíst odkaz: %s" - -#: run.c:465 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Poru¹ený symbolický odkaz (nebo nemáte práva pro jeho následování): %s" - -#: run.c:502 -#, fuzzy, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Pro soubory typu (%s/%s) nebyla specifikována ¾ádná spou¹tìcí akce - " -"spou¹tìcí akci mù¾ete nastavit vybráním `Nastavit spou¹tìcí akci' v menu " -"souboru, nebo jen pøetáhnìte soubor na aplikaci" - -#: run.c:508 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: toolbar.c:115 -msgid "Close" -msgstr "Zavøít" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Zavøít okno správce souborù" - -#: toolbar.c:119 -msgid "Up" -msgstr "Nahoru" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Pøejít do vy¹¹ího adresáøe" - -#: toolbar.c:123 -msgid "Home" -msgstr "Domù" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Pøejít do domovského adresáøe" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Zálo¾ky" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Menu zálo¾ek" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Naèíst" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Znovu naèíst obsah adresáøe" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Zmìnit velikost ikony" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Mód Automatická velikost" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Zobrazit extra podrobnosti" - -#: toolbar.c:147 -#, fuzzy -msgid "Sort" -msgstr "Tøídìní" - -#: toolbar.c:147 -#, fuzzy -msgid "Change sort criteria" -msgstr "Èas zmìny:" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Skrytý" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Zobrazit/skrýt skryté soubory" - -#: toolbar.c:155 -#, fuzzy -msgid "Select all/invert selection" -msgstr "Invertovat výbìr" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "Zobrazit nápovìdu programu ROX-Filer" - -#: toolbar.c:220 -#, c-format -msgid " (%u hidden)" -msgstr "(%u skrytých)" - -#: toolbar.c:228 tips:80 -msgid "items" -msgstr "polo¾ek" - -#: toolbar.c:228 -msgid "item" -msgstr "polo¾ka" - -#: toolbar.c:231 -#, c-format -msgid "No items%s" -msgstr "®ádné polo¾ky%s" - -#: toolbar.c:250 -#, c-format -msgid "%u selected (%s)" -msgstr "%u vybrán (%s)" - -#: toolbar.c:422 -#, fuzzy -msgid "Sort by name" -msgstr "Tøídit podle jména" - -#: toolbar.c:422 -#, fuzzy -msgid "Sort by type" -msgstr "Tøídit podle typu" - -#: toolbar.c:422 -#, fuzzy -msgid "Sort by date" -msgstr "Tøídit podle data" - -#: toolbar.c:423 -#, fuzzy -msgid "Sort by size" -msgstr "Tøídit podle velikosti" - -#: toolbar.c:423 -#, fuzzy -msgid "Sort by owner" -msgstr "Tøídit podle vlastníka" - -#: toolbar.c:423 -#, fuzzy -msgid "Sort by group" -msgstr "Tøídit podle skupiny" - -#: toolbar.c:457 -msgid "ascending" -msgstr "" - -#: toolbar.c:457 -msgid "descending" -msgstr "" - -#: type.c:203 -msgid "Sym link" -msgstr "Symbolický odkaz" - -#: type.c:205 -msgid "Mount point" -msgstr "Bod pøipojení" - -#: type.c:207 -msgid "App dir" -msgstr "Aplikaèní adresáø" - -#: type.c:214 -msgid "Dir" -msgstr "Adresáø" - -#: type.c:216 -msgid "Char dev" -msgstr "Znakové zaøízení" - -#: type.c:218 -msgid "Block dev" -msgstr "Blokové zaøízení" - -#: type.c:220 -msgid "Pipe" -msgstr "Roura" - -#: type.c:222 -msgid "Socket" -msgstr "Soket" - -#: type.c:224 -msgid "Door" -msgstr "Door" - -#: type.c:227 -msgid "Unknown" -msgstr "Neznámé" - -#: type.c:355 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"Spustitelný '%s' má právo zápisu pro v¹echny! Odmítám spustit. Zmìòte teï " -"jeho práva (tento problém mù¾e být zpùsoben chybou v døívìj¹ích verzích " -"správce souborù).\n" -"\n" -"Právo zápisu (kromì symb. odkazù) u spustitelných souborù znamená, ¾e " -"ostatní lidé, kteøí pou¾ívají Vá¹ poèítaè, mohou nahradit Va¹e programy " -"¹patnou verzí.\n" -"\n" -"Pokud vìøíte ka¾dému, kdo mù¾e do tìchto souborù zapisovat, pak se nemusíte " -"obávat. Jinak by jste mìli zkontrolovat, nebo je¹tì lépe smazat, v¹echny " -"existující programy." - -#: type.c:368 -msgid "go-w (Fix security problem)" -msgstr "go-w (Opravit bezpeènostní problém)" - -#: type.c:498 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Zadejte shellový pøíkaz, který otevøe \"$@\" ve vhodném programu. Napø.:\n" -"\n" -"gimp \"$@\"" - -#: type.c:679 -msgid "This is not a program! Give me an application instead!" -msgstr "Toto není program! Zadejte aplikaci!" - -#: type.c:740 -msgid "No run action defined" -msgstr "Není definována ¾ádná spou¹tìcí akce" - -#: type.c:766 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Chyba v ovladaèi %s: %s" - -#: type.c:781 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Neplatná aplikace %s (¹patný AppRun)" - -#: type.c:792 -#, c-format -msgid "Non-executable %s" -msgstr "Nespustitelný %s" - -#: type.c:825 -msgid "Set run action" -msgstr "Nastavit spou¹tìcí akci" - -#: type.c:831 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Pokud není nastaven ovladaè pro specifický typ, pou¾ije se tento jako " -"defaultní." - -#: type.c:833 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Nastavit jako defaultní pro v¹echny typy `%s/'" - -#: type.c:837 -msgid "Use this application for all files with this MIME type." -msgstr "Pou¾ít tuto aplikaci pro v¹echny soubory s tímto MIME typem." - -#: type.c:839 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Pouze pro typ `%s' (%s/%s)" - -#: type.c:845 -msgid "Drop a suitable application here" -msgstr "Pøetáhnìte sem vhodnou aplikaci" - -#: type.c:860 -msgid "OR" -msgstr "NEBO" - -#: type.c:867 -msgid "Enter a shell command:" -msgstr "Zadejte shellový pøíkaz" - -#: type.c:896 -#, fuzzy -msgid "_Use Command" -msgstr "Pøíkaz:" - -#: type.c:926 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Spou¹tìcí akce u¾ existuje a je to celkem velký program - chcete ji smazat?" - -#: type.c:937 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Nelze odebrat %s: %s" - -#: type.c:974 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "Ulo¾ení Choices je zakázáno promìnnou CHOICESPATH" - -#: type.c:1249 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" - -#: type.c:1263 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason)" -msgstr "" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Cesta, kterou jste zadali, neexistuje. Ikona nebyla zmìnìna." - -#: usericons.c:191 usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Nejde naèíst obrázek -- mo¾ná je ve formátu, který neznám, nebo jsou ¹patná " -"pøístupová práva?\n" -"Ikona nebyla zmìnìna." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Opravdu smazat ikonu '%s'?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Nemohu smazat '%s':\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Nastavit ikonu" - -#: usericons.c:279 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "" -"Pou¾ít kopii obrázku jako defaultní pro v¹echny soubory tohoto MIME typu." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Nastavit ikonu pro v¹echny `%s/'" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Pou¾ít kopii obrázku pro v¹echny soubory tohoto MIME typu." - -#: usericons.c:288 -#, fuzzy, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Pouze pro typ `%s' (%s/%s)" - -#: usericons.c:294 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Pøidat jméno souboru a obrázku do osobního seznamu. Nastavení bude ztraceno, " -"pokud obrázek nebo soubor bude pøesunut." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "Pouze pro soubor `%s'" - -#: usericons.c:305 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Zkopírovat obrázek do adresáøe jako skrytý soubor nazvaný '.DirIcon'. " -"V¹ichni u¾ivatelé potom uvidí tuto ikonu a Vy mù¾ete bezpeènì pøesunovat " -"adresáø. Toto je obvykle nejlep¹í volba v pøípadì, ¾e mù¾ete zapisovat do " -"adresáøe." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Zkopírovat obrázek do adresáøe" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Sem umístìte ikonu" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Nastavení ikony zakázáno kvùli CHOICESPATH" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Chyba pøi vytváøení obrázku '%s':\n" -"%s" - -#: view_details.c:1009 -msgid "_Name" -msgstr "_Jméno" - -#: view_details.c:1012 -msgid "_Type" -msgstr "_Typ" - -#: view_details.c:1015 -msgid "_Permissions" -msgstr "_Práva" - -#: view_details.c:1016 -msgid "_Owner" -msgstr "_Vlastník" - -#: view_details.c:1018 -msgid "_Group" -msgstr "_Skupina" - -#: view_details.c:1020 -msgid "_Size" -msgstr "_Velikost" - -#: view_details.c:1022 -msgid "Last _Modified" -msgstr "Poslední _Modifikace" - -#: tips:1 -msgid "Translation" -msgstr "Pøeklad" - -#: tips:2 -msgid "Language" -msgstr "Jazyk" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "Pou¾ít promìnnou prostøedí LANG" - -#: tips:4 -msgid "Basque" -msgstr "" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Èínsky (tradièní)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Èínsky (zjednodu¹ená)" - -#: tips:7 -msgid "Czech" -msgstr "" - -#: tips:8 -msgid "Danish" -msgstr "Dánsky" - -#: tips:9 -msgid "Dutch" -msgstr "Holandsky" - -#: tips:10 -msgid "English (no translation)" -msgstr "Anglicky (bez pøekladu)" - -#: tips:11 -msgid "Estonian" -msgstr "" - -#: tips:12 -#, fuzzy -msgid "Finnish" -msgstr "Dánsky" - -#: tips:13 -msgid "French" -msgstr "Francouzsky" - -#: tips:14 -msgid "German" -msgstr "Nìmecky" - -#: tips:15 -msgid "Hungarian" -msgstr "Maïarsky" - -#: tips:16 -msgid "Japanese" -msgstr "Japonsky" - -#: tips:17 -msgid "Norwegian" -msgstr "Norsky" - -#: tips:18 -msgid "Italian" -msgstr "Italsky" - -#: tips:19 -msgid "Polish" -msgstr "Polsky" - -#: tips:20 -msgid "Portuguese (Brasil)" -msgstr "" - -#: tips:21 -msgid "Romanian" -msgstr "" - -#: tips:22 -msgid "Russian" -msgstr "Rusky" - -#: tips:23 -msgid "Spanish" -msgstr "©panìlsky" - -#: tips:24 -msgid "Swedish" -msgstr "©védsky" - -#: tips:25 -msgid "Filer windows" -msgstr "Okna správce souborù" - -#: tips:26 -msgid "Auto-resize filer windows" -msgstr "Automaticky mìnit velikost oken správce souborù" - -#: tips:27 -msgid "Never automatically resize" -msgstr "Nikdy automaticky nìmìnit velikost" - -#: tips:28 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Budete muset mìnit velikost oken ruènì pomocí správce oken, pomcí nabídky " -"`Resize Window' v menu nebo pomocí dvojkliku na pozadí okna." - -#: tips:29 -msgid "Resize when changing the display style" -msgstr "Zmìnit velikost pøi zmìnì stylu pohledu" - -#: tips:30 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Zmìna velikosti ikon nebo toho, které podrobnosti mají být zobrazeny, zmìní " -"velikost okna." - -#: tips:31 -msgid "Always resize" -msgstr "V¾dy mìnit velikost" - -#: tips:32 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Správce souborù bude mìnit velikost oken kdykoliv to bude potøeba (pøi zmìnì " -"adresáøe nebo stylu pohledu)." - -#: tips:33 -msgid "Largest window size:" -msgstr "Nejvìt¹í velikost okna" - -#: tips:34 -msgid "%" -msgstr "%" - -#: tips:35 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"Nejvìt¹í velikost v procentech plochy obrazovky, která mù¾e být pou¾ita pøi " -"automatické zmìnì velikosti." - -#: tips:36 -msgid "Window behaviour" -msgstr "Chování okna" - -#: tips:37 -msgid "Short titlebar flags" -msgstr "Krátké popisky v titulku" - -#: tips:38 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." - -#: tips:39 -msgid "Unique windows" -msgstr "Unikátní okna" - -#: tips:40 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Pokud otevøete adresáø a tento adresáø je u¾ zobrazen v jimém, oknì, potom " -"toto nastavení zpùsobí, ¾e jiná okna budou zavøena." - -#: tips:41 -msgid "New window on button 1" -msgstr "Nové okno po stisku tlaèítka 1" - -#: tips:42 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Tato volba zpùsobí, ¾e kliknutí tlaèítka 1 na my¹i (obvykle levé tlaèítko) " -"otevøe adresáø v v novém oknì. Kliknutí tlaèítka 2 na my¹i (prostøední) " -"pou¾ije souèasné okno." - -#: tips:43 -msgid "Single-click navigation" -msgstr "Procházení pomocí jednoho kliknutí" - -#: tips:44 tips:137 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Tato volba zpùsobí, ¾e kliknutí na polo¾ku tuto plo¾ku otevøe. Pokud ji " -"chcete vybrat, musíte pøi kliknutí dr¾et Control. Pokud není tato volba " -"zapnutá, jedno kliknutí polo¾ku vybere, dvojklik ji otevøe.things." - -#: tips:45 -msgid "Double-click on background resizes" -msgstr "" - -#: tips:46 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" - -#: tips:47 -msgid "Sorting" -msgstr "Tøídìní" - -#: tips:48 -msgid "Directories come first (for sort by name)" -msgstr "Adresáøe jsou zobrazovány první (u tøídìní podle jména)" - -#: tips:49 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Tato volba zpùsobí, ¾e pokud se tøídí podle jména, adresáøe budou zobrazeny " -"v¾dy pøed v¹ím ostatním." - -#: tips:50 -msgid "Capitalised names first (for sort by name)" -msgstr "Velká písmena první (u tøídìní podle jména)" - -#: tips:51 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Tato volba zpùsobí, ¾e jména souborù zaèínající velkým písmenem mají " -"pøednost pøed soubory, které zaèínají malým písmenem" - -#: tips:53 -msgid "Default settings for new windows" -msgstr "Defaultní nastavení pro nová okna" - -#: tips:54 -msgid "Inherit options from source window" -msgstr "Zdìdit nastavení ze zdrojového okna" - -#: tips:55 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Tato volba zpùsobí, ¾e nastavení zobrazení pro nové okno je zdìdìno od " -"zdrojového okna, pokud je to mo¾né, jinak je nastaveno na ní¾e uvedené " -"defaultní hodnoty." - -#: tips:56 -msgid "View type:" -msgstr "Typ pohledu:" - -#: tips:59 -msgid "Sort by:" -msgstr "Tøídit podle:" - -#: tips:61 tips:76 -msgid "Type" -msgstr "Typu" - -#: tips:62 -msgid "Date" -msgstr "Data" - -#: tips:64 -msgid "Show hidden files" -msgstr "Zobrazovat skryté soubory" - -#: tips:65 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Tato volba zpùsobí, ¾e jsou zobrazovány i soubory, jejich¾ jméno zaèíná " -"teèkou, jinak jsou tyto soubory skryté." - -#: tips:66 -msgid "Icon View" -msgstr "Ikonový pohled" - -#: tips:67 -msgid "Default size:" -msgstr "Defaultní velikost" - -#: tips:68 -msgid "Huge Icons" -msgstr "Obrovské ikony" - -#: tips:69 tips:245 -msgid "Large Icons" -msgstr "Velké ikony" - -#: tips:70 tips:244 -msgid "Small Icons" -msgstr "Malé ikony" - -#: tips:72 -msgid "Default details:" -msgstr "Defaultní podrobnosti:" - -#: tips:73 -msgid "No details" -msgstr "®ádné podrobnosti" - -#: tips:78 -msgid "Automatic small icons:" -msgstr "Automaticky nastavit malé ikony:" - -#: tips:79 -msgid "Change at:" -msgstr "Zmìnit u:" - -#: tips:81 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Pokud je nastaveno automatické nastavení velikosti ikon: Pokud adresáø " -"obsahuje alespoò tolik polo¾ek, potom jsou zobrazovány malé ikony, jinak " -"jsou pou¾ity velké ikony " - -#: tips:82 -msgid "Max width (Large icons):" -msgstr "Maximální velikost (Velké ikony):" - -#: tips:83 tips:86 -msgid "pixels" -msgstr "pixelù" - -#: tips:84 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Text, který je ¹ir¹í je rozdìlen na dva øádky, pokud je pou¾it mód Velké " -"ikony. V módu Obrovské ikony je text rozdìlen, kdy¾ je ¹ir¹í o 50%." - -#: tips:85 -msgid "(Small Icons):" -msgstr "(Malé ikony)" - -#: tips:87 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Maximání ¹íøka textu vedle malých ikon." - -#: tips:88 -msgid "Order small icons vertically" -msgstr "" - -#: tips:89 -msgid "" -"If this option is on, then small icons are ordered vertically, not " -"horizontally." -msgstr "" - -#: tips:90 -msgid "Order large icons vertically" -msgstr "" - -#: tips:91 -msgid "" -"If this option is on, then large icons are sorted vertically, not " -"horizontally." -msgstr "" - -#: tips:93 -msgid "Show column headings" -msgstr "Ukazovat nadpisy sloupcù" - -#: tips:94 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Tato volb zpùsobí, ¾e nadpisy sloupcù budou zobrazeny v seznamovém pohledu." - -#: tips:95 -#, fuzzy -msgid "Show full type" -msgstr "Tøídit podle typu" - -#: tips:96 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" - -#: tips:97 -msgid "Tools/Minibuffer" -msgstr "Nástroje/Minibuffer" - -#: tips:98 -msgid "Toolbar" -msgstr "Panel nástrojù" - -#: tips:99 -msgid "Toolbar type:" -msgstr "Typ panelu nástrojù:" - -#: tips:100 -#, fuzzy -msgid "No toolbar" -msgstr "Panel nástrojù" - -#: tips:101 -msgid "Icons only" -msgstr "Pouze ikony" - -#: tips:102 -msgid "Text under icons" -msgstr "Text pod ikonami" - -#: tips:103 -msgid "Text beside icons" -msgstr "Text vedle ikon" - -#: tips:104 -msgid "Show totals of items" -msgstr "" -"Zobrazovat souhrnné \n" -"informace o polo¾kách" - -#: tips:105 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Zobrazuje poèet polo¾ek zobrazených v oknì a poèet skrytých souborù (pokud " -"existují. Pokud jsou vybrány nìjaké polo¾ky, je zobrazen jejich poèet a " -"celková velikost." - -#: tips:106 -msgid "Select the buttons you want on the bar:" -msgstr "Vyberte tlaèítka, které mají být zobrazeny na panelu:" - -#: tips:107 -msgid "Width of toolbar sets minimum width of window" -msgstr "" - -#: tips:108 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" - -#: tips:109 -msgid "Minibuffer" -msgstr "Minibuffer" - -#: tips:110 -msgid "Beep if Tab-completion fails" -msgstr "Pípnout, pokud Tab-doplnìní sel¾e" - -#: tips:111 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Pøi pou¾ívání minibufferu `Zadat cestu...' a pøi stisku Tab pípnout, kdy¾ se " -"nic nestane (napø. proto¾e existuje více mo¾ností závislých na dal¹ím znaku)." - -#: tips:112 -msgid "Beep if there are several matches" -msgstr "Pípnout, kdy¾ existuje více shod" - -#: tips:113 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Pøi pou¾ívání minibufferu `Zadat cestu...' a pøi stisku Tab pípnout, kdy¾ " -"existuje více odpovídajících souborù, even though some more letters were " -"added." - -#: tips:116 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Pokud jsou zapnuty náhledy, ka¾dý obrázek v adresáøi je naèten a je zobrazen " -"jeho malý náhled." - -#: tips:117 -msgid "Show image thumbnails" -msgstr "Zobrazovat náhledy obrázkù" - -#: tips:118 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Toto je dafultní nastavení pro nová okna. Pou¾ijte menu Zobrazit pro " -"zapnutía vypnutí náhledù v individuálních oknech." - -#: tips:119 -#, fuzzy -msgid "Video thumbnails" -msgstr "Zobrazit náhledy" - -#: tips:120 -msgid "Thumbnails cache" -msgstr "Ke¹ náhledù" - -#: tips:121 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Kvùli urychlení jsou vygenerované náhledy ulo¾eny ve skrytém adresáøi ~/." -"thumbnails. Kliknìte sem pro odtranìní v¹ech ke¹ovaných náhledù. V pøípadì " -"potøeby budou znovu vytvoøeny." - -#: tips:122 tips:195 -msgid "Pinboard" -msgstr "Plocha" - -#: tips:123 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Pokud pou¾íváte plochu, mù¾ete pøetáhnout soubory a aplikace na plochu a tím " -"na nì vytvoøíte odkaz." - -#: tips:124 tips:241 -msgid "Appearance" -msgstr "Vzhled" - -#: tips:125 -msgid "Foreground:" -msgstr "Popøedí" - -#: tips:126 -msgid "Text shadow:" -msgstr "Stín textu:" - -#: tips:127 -msgid "Background:" -msgstr "Pozadí" - -#: tips:128 -#, fuzzy -msgid "No shadow" -msgstr "Stín textu:" - -#: tips:129 -msgid "Thin" -msgstr "Tenký" - -#: tips:130 -msgid "Thick" -msgstr "Tlustý" - -#: tips:131 -msgid "Use custom font:" -msgstr "Pou¾ít vlastní písmo:" - -#: tips:132 -msgid "The font used for the text displayed under the icons" -msgstr "Písmo pou¾ité pro text zobrazovaný pod ikonami" - -#: tips:133 -msgid "Fast scaling of images" -msgstr "" - -#: tips:134 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" - -#: tips:135 -msgid "Pinboard behaviour" -msgstr "Chování plochy" - -#: tips:136 -msgid "Single-click to open" -msgstr "Jednoduché kliknutí pro otevøení" - -#: tips:138 -msgid "Keep icons within screen limits" -msgstr "Dr¾et ikony v mezích obrazovky" - -#: tips:139 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Tato volba zpùsobí, ¾e ikony na plo¹e jsou v¾dy úplnì umístìny v mezích " -"obrazovky vèetnì jejich popisku." - -#: tips:140 -msgid "Icon grid step:" -msgstr "Møí¾ka pro umístìní ikon:" - -#: tips:141 -msgid "Fine" -msgstr "Jemná" - -#: tips:142 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Pou¾ije se 2-pixelová møí¾ka pro umís»ování ikon na plo¹e." - -#: tips:143 -msgid "Medium" -msgstr "Støední" - -#: tips:144 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Pou¾ije se 16-pixelová møí¾ka pro umís»ování ikon na plo¹e." - -#: tips:145 -msgid "Coarse" -msgstr "Hrubá" - -#: tips:146 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Pou¾ije se 32-pixelová møí¾ka pro umís»ování ikon na plo¹e." - -#: tips:147 tips:149 -msgid "Iconified windows" -msgstr "Ikonifikovaná okna" - -#: tips:148 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"Vìt¹ina správcù oken umo¾òuje ikonifikovat (nebo 'minimalizovat') okna, a " -"rùzné programy, vèetnì ROX-Fileru, mohou být pou¾ity ke zobrazování " -"ikonifikovaných oken." - -#: tips:150 -msgid "Show iconified windows" -msgstr "Zobrazovat ikonifikovaná okna" - -#: tips:151 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Tato volba zpùsobí, ¾e správce souborù zobrazí ka¾dé ikonifikované okno jako " -"malé tlaèítko na plo¹e. Je potøeba kompatibilní správce oken a musí být " -"pou¾ívána plocha." - -#: tips:152 -msgid "Show per workspace" -msgstr "" - -#: tips:153 -#, fuzzy -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Tato volba zpùsobí, ¾e správce souborù zobrazí ka¾dé ikonifikované okno jako " -"malé tlaèítko na plo¹e. Je potøeba kompatibilní správce oken a musí být " -"pou¾ívána plocha." - -#: tips:154 -msgid "Iconify to the" -msgstr "Ikonifikovat " - -#: tips:155 -msgid "top-left" -msgstr "nahoøe-vlevo" - -#: tips:156 -msgid "top-right" -msgstr "nahoøe-vpravo" - -#: tips:157 -msgid "bottom-left" -msgstr "dole-vlevo" - -#: tips:158 -msgid "bottom-right" -msgstr "dole-vpravo" - -#: tips:159 -msgid ", going" -msgstr ", smìrem" - -#: tips:160 -msgid "horizontally" -msgstr "horizontálním" - -#: tips:161 -msgid "vertically" -msgstr "vertikálním" - -#: tips:162 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" - -#: tips:163 -msgid "Top margin" -msgstr "" - -#: tips:164 -msgid "Height of no-go area at top of screen." -msgstr "" - -#: tips:165 -msgid "Bottom margin" -msgstr "" - -#: tips:166 -msgid "Height of no-go area at bottom of screen." -msgstr "" - -#: tips:167 -msgid "Panels" -msgstr "Panely" - -#: tips:168 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Panely jsou pásy ikon umístìné podél okraje obrazovky. Více informací o " -"pu¾ití panelù je v manuálu." - -#: tips:169 -msgid "Panel style" -msgstr "Styl panelu" - -#: tips:170 -msgid "Image and text" -msgstr "Obrázek a text" - -#: tips:171 -msgid "Every panel icon is shown with an image and some text." -msgstr "Ka¾dá ikona panelu je zobrazena s obrázkem a nìjakým textem." - -#: tips:172 -msgid "Image only for applications" -msgstr "Obrázek pouze pro aplikace" - -#: tips:173 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "Aplikace mají pouze obrázek, v¹echno ostatní má orázek i text." - -#: tips:174 -msgid "Image only" -msgstr "Jen obrázek" - -#: tips:175 -msgid "Only the image is shown." -msgstr "Je zobrazen pouze obrázek." - -#: tips:176 -msgid "Panel width (thin)" -msgstr "©íøka panelu (úzký)" - -#: tips:177 -msgid "(thick)" -msgstr "(¹iroký)" - -#: tips:178 -msgid "The size of the panels." -msgstr "Velikost panelù." - -#: tips:179 -msgid "Do not cover panel" -msgstr "" - -#: tips:180 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" - -#: tips:181 -msgid "Xinerama" -msgstr "" - -#: tips:182 -msgid "Confine to Xinerama monitor" -msgstr "" - -#: tips:183 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" - -#: tips:184 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "" - -#: tips:185 -msgid "Desktop" -msgstr "" - -#: tips:186 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" - -#: tips:187 -#, fuzzy -msgid "Panel only" -msgstr "Jen obrázek" - -#: tips:188 -#, fuzzy -msgid "Only a panel is shown." -msgstr "Je zobrazen pouze obrázek." - -#: tips:189 -#, fuzzy -msgid "Pinboard only" -msgstr "Plocha" - -#: tips:190 -#, fuzzy -msgid "Only the pinboard is shown." -msgstr "Je zobrazen pouze obrázek." - -#: tips:191 -#, fuzzy -msgid "Panel and pinboard" -msgstr "Plocha" - -#: tips:192 -msgid "Both a panel and a pinboard are shown." -msgstr "" - -#: tips:193 -#, fuzzy -msgid "Panel" -msgstr "Panely" - -#: tips:194 -msgid "Enter the name of the panel to show here." -msgstr "" - -#: tips:196 -msgid "Enter the name of the pinboard to show here." -msgstr "" - -#: tips:197 -msgid "Changes here take effect the next time the filer is run." -msgstr "" - -#: tips:198 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" - -#: tips:199 -msgid "Action windows" -msgstr "Okna akcí" - -#: tips:200 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Okna akcí se zobrazí, kdy¾ spustíte nìjakou operaci\n" -"na pozadí, napøíklad kopírování nebo mazání souborù." - -#: tips:201 -msgid "Auto-start (Quiet) these actions" -msgstr "Automaticky (bez upozornìní) provést tyto operace" - -#: tips:203 -msgid "Copy files without confirming first." -msgstr "Kopírovat soubory bez upozornìní." - -#: tips:205 -msgid "Move files without confirming first." -msgstr "Pøesunout soubory bez upozornìní." - -#: tips:207 -msgid "Create links to files without confirming first." -msgstr "Vytváøet symbolické odkazy na soubory bez upozornìní." - -#: tips:209 -msgid "Delete files without confirming first." -msgstr "Smazat soubory bez upozornìní." - -#: tips:210 -msgid "Mount" -msgstr "Pøipojit" - -#: tips:211 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Pøipojit a odpojit soubory bez upozornìní." - -#: tips:212 -msgid "Default settings" -msgstr "Defaultní nastavení" - -#: tips:214 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Nepotvrzovat smazání polo¾ek, které nemají právo zápisu." - -#: tips:216 -msgid "Don't display so much information in the message area." -msgstr "Nezobrazovat moc informací v oknì zpráv." - -#: tips:218 -msgid "Also change contents of subdirectories." -msgstr "Mìnit také obsah podadresáøù." - -#: tips:221 -msgid "Drag and Drop" -msgstr "Táhni a pus»" - -#: tips:222 -msgid "Dragging to icons" -msgstr "Pøetáhnutí na ikony" - -#: tips:223 -msgid "Allow dragging to icons in filer windows" -msgstr "Povolit pøetahování na ikony ve správci souborù" - -#: tips:224 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Tato volba zpùsobí, ¾e pøetahovat soubor pøes podadresáøe nebo programy ve " -"správci oken. Polo¾ka pøi tom bude zvýraznìna a upu¹tìní souboru ho umístí " -"do tohoto adresáøe nebo v pøípadì programu bude do tohoto programu naèten." - -#: tips:225 -msgid "Directories spring open" -msgstr "Pru¾né otvírání adresáøù" - -#: tips:226 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Tato volba, která vy¾aduje zapnutou i pøedchozí volbu, zpùsobí, ¾e adresáø " -"je 'pru¾nì otevøen', kdy¾ je nad nimi soubor podr¾en po urèitou dobu." - -#: tips:227 -msgid "Spring delay:" -msgstr "Zpo¾dìní pro pru¾né otevøení:" - -#: tips:228 -msgid "ms" -msgstr "ms" - -#: tips:229 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Tato volba nastavuje, jak dlouho v ms musíte podr¾et soubor nad adresáøem " -"pøedtím, ne¾ bude otevøen. Pøedchozí volba musí být zapnuta, aby mìla tado " -"volba nìjaký efekt." - -#: tips:230 -msgid "When dragging files with the left mouse button" -msgstr "Pøi pøetahování souborù levým tlaèítkem my¹i" - -#: tips:231 tips:235 -msgid "Show a menu of possible actions" -msgstr "Zobrazit nabídku mo¾ných akcí" - -#: tips:232 -msgid "Copy the files" -msgstr "Kopírovat soubory" - -#: tips:233 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Zobrazit nabídku mù¾ete také v pøípadì, ¾e pøi pøetahování byl stisknut Alt." - -#: tips:234 -msgid "When dragging files with the middle mouse button" -msgstr "Pøi pøetahování souborù prostøedním tlaèítkem my¹i" - -#: tips:236 -msgid "Move the files" -msgstr "Pøesunout soubory" - -#: tips:237 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Zobrazit nabídku mù¾ete také v pøípadì, ¾e pøi pøetahování lev7m tlaèítkem " -"byl stisknut Alt." - -#: tips:238 -msgid "Download handler" -msgstr "" - -#: tips:239 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" - -#: tips:240 -msgid "Menus" -msgstr "Nabídky" - -#: tips:242 -msgid "Size of icons in menus:" -msgstr "Velikost ikon v nabídkách:" - -#: tips:243 -msgid "No Icons" -msgstr "®ádné ikony" - -#: tips:246 -msgid "Same as current window" -msgstr "Stejná jako v souèasném oknì" - -#: tips:247 -msgid "Same as default" -msgstr "Stajná jako defaultní" - -#: tips:248 -msgid "Behaviour" -msgstr "Chování" - -#: tips:249 -msgid "File menu on right-click" -msgstr "" - -#: tips:250 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" - -#: tips:251 -msgid "`Xterm Here' program" -msgstr "`Xterm v tomto adresáøi' program" - -#: tips:252 -msgid "The program to launch when you choose `Xterm Here' from the menu." -msgstr "" -"Program, který je spu¹tìn, kdy¾ vyberete `Xterm v tomto adresáøi' z nabídky" - -#: tips:253 -msgid "Keyboard shortcuts" -msgstr "Klávesové zkratky" - -#: tips:255 -msgid "MIME types" -msgstr "MIME typy" - -#: tips:256 -#, fuzzy -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Správce souborù pou¾ívá sadu pravidel k urèení správného MIME typu pro ka¾dý " -"soubor, potom vybírá vhodnou ikonu pro tento typ. Pou¾ijte aplikaci MIME-" -"Editor pro zmìnu pøiøazení souborù k typùm:\n" -"\n" -"http://rox.sourceforge.net/mime_editor.html" - -#: tips:257 -msgid "Edit MIME rules" -msgstr "" - -#: tips:258 -#, fuzzy -msgid "Themes" -msgstr "Èasy" - -#: tips:259 -#, fuzzy -msgid "Icon theme" -msgstr "Ikonifikovat " - -#: tips:260 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "" - -#: tips:261 -#, fuzzy -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Pou¾ijte dialogové okno 'Nastavit ikonu...' k nastavení pro ka¾dý MIME typ" - -#: tips:262 -msgid "Colours" -msgstr "Barvy" - -#: tips:263 -msgid "File type colours" -msgstr "Barvy typù souborù" - -#: tips:264 -msgid "Colour files based on their types" -msgstr "Barvy souborù zavisí na jejich typech" - -#: tips:265 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "" -"Jména souborù (a podrobnosti) mají barvu, která patøí k danému typu souboru." - -#: tips:266 -msgid "Directory:" -msgstr "Adresáø" - -#: tips:267 -msgid "Regular file:" -msgstr "Bì¾ný soubor" - -#: tips:268 -msgid "Pipe:" -msgstr "Roura" - -#: tips:269 -msgid "Socket:" -msgstr "Soket" - -#: tips:271 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Chyba, jako napøíklad symbolický odkaz na neexistující soubor nebo soubor " -"nebo soubor u kterého nemá spravce souborù práva k prozkoumání." - -#: tips:272 -msgid "Character device:" -msgstr "Znakové zaøízení:" - -#: tips:273 -msgid "Block device:" -msgstr "Blokové zaøízení:" - -#: tips:274 -msgid "Door:" -msgstr "DOOR:" - -#: tips:275 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Door soubory jsou trochu jako sokety a roury a jsou pou69v8ny na Solarisu." - -#: tips:276 -msgid "Executable file:" -msgstr "Spustitelný soubor:" - -#: tips:277 -msgid "Application directory:" -msgstr "Aplikaèní adresáø:" - -#: tips:278 -msgid "Unknown type:" -msgstr "Neznámý typ:" - -#: tips:279 -msgid "Compatibility" -msgstr "Kompatibilita" - -#: tips:280 -msgid "Window manager problems" -msgstr "Problémy se správcem oken" - -#: tips:281 -msgid "Override window manager control of the pinboard and panels" -msgstr "Pøebít kontrolu správce oken nad pozadím a panely " - -#: tips:282 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Nìkteøí správci oken nepodporují Extended Window Manager Hints system " -"zachází s pozadím a panely jako s normálními okny. Pou¾ijte, pro vyøe¹ení " -"problémù jako: pozadí vyskoèí dopøedu pøi kliknutí na nìj, titulky a jiné " -"dekorace se objevují u tìchto oken nebo se objevují v seznamu oken." - -#: tips:283 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Pøedat v¹echny kliknutí my¹í na pozadí správci oken" - -#: tips:284 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normálnì pravé kliknutí na plo¹e otevøe nabídku plochy a levé kliknutí " -"vyma¾e výbìr. Pokud je zapnuto, pøedjí se v¹echny události správci oken. " -"Kliknutí na ikony nebude pøedáno." - -#: tips:285 -msgid "Blackbox root menus hack" -msgstr "Blackbox root menus hack" - -#: tips:286 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox a podobní správci oken zatím nepracují dobøe s pozadím ROX-" -"Fileru. Tato volba èásteènì øe¹í problémy. Tito správcioken pravdìpodbnì " -"opraví chování ve svých nových verzích, tak¾e toto není nutné." - -#: tips:287 -msgid "Panel is a 'dock'" -msgstr "" - -#: tips:288 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" - -#: tips:289 -msgid "Drag and drop" -msgstr "Táhni a pus»" - -#: tips:290 -msgid "Don't use hostnames" -msgstr "Nepou¾ívat jména poèítaèù" - -#: tips:291 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Nìkteré star¹í aplikace plnì nepodporují XDND a mohou potøebovat mít " -"zapnutoututo volbu. Pou¾ijte, pokud pøetáhnutí souborù na aplikaci zobrazí " -"znak +, ale pu¹tìní souborù nefunguje." - -#: tips:292 -msgid "Extended attributes" -msgstr "" - -#: tips:293 -#, fuzzy -msgid "Don't use extended attributes" -msgstr "Nepou¾ívat jména poèítaèù" - -#: tips:294 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" - -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Chyba pøi ètení MIME databáze:\n" -#~ "%s" - -#~ msgid "File '%s' corrupted!" -#~ msgstr "Soubor '%s' je poru¹en!" - -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "~/.mime adresáø byl pøesunut. Nyní by mìl být ~/.local/share/mime. Mìli " -#~ "by jste ho tampøesunout (a vytvoøit na nìj symbolický odkaz ~/.mime kvùli " -#~ "star¹ím aplikacím)." - -#, fuzzy -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "Standardní MIME databáze typù (verze 0.9 nebo vy¹¹í) nebyla nalezena. " -#~ "Správce souborù pravdìpodobnì nezobrazí korektnì typy pro rùzné soubory. " -#~ "Mìli by jste stáhnout a nainstalovat balíèek'shared-mime-info-0.9' z:\n" -#~ "http://www.freedesktop.org/standards/shared-mime-info.html\n" -#~ "\n" -#~ "Pokud u¾ tento balíèek máte nainstalován, zkontrolujte pøístupová práva, " -#~ "zda je mo¾né soubory èíst (zkontrolujte /usr/local/share/mime/globs nebo /" -#~ "usr/share/mime/globs)." - -#~ msgid "Executable files" -#~ msgstr "Spustitelné soubory" - -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "Ignorovat spou¹tìcí bit pro známé pøípony" - -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Pokud má soubor známou pøíponu (napø. '.gif'), je ignorován spustitelný " -#~ "bit. To je vhodné, pokud máte soubory na systému souborù typu Windows, " -#~ "které jsou zobrazovány jako spustitelné programy." - -#, fuzzy -#~ msgid "Umount" -#~ msgstr "Odpojit" - -#~ msgid "A" -#~ msgstr "A" - -#~ msgid "All, " -#~ msgstr "V¹e, " - -#~ msgid "" -#~ "Pinboard icons cannot be drawn because ROX-Filer was compiled against GTK" -#~ "+-2.0 but is running with GTK+-2.2. Please recompile it." -#~ msgstr "" -#~ "Ikony na plo¹e nemohou být zobrazeny, proto¾e ROX-Filer byl pøelo¾en s GTK" -#~ "+-2.0, ale je spu¹tìn s GTK+-2.2. Znovu jej, prosím, pøelo¾te." - -#~ msgid "Info" -#~ msgstr "Info" - -#~ msgid "Symbolic link to %s" -#~ msgstr "Symbolický odkaz na %s" - -#~ msgid "No (gnome-vfs-config not found)" -#~ msgstr "Ne (gnome-vfs-config nenalezena)" - -#~ msgid "Examine ... ?" -#~ msgstr "Prozkoumat ... ?" - -#~ msgid "Permissions:" -#~ msgstr "Práva:" - -#~ msgid "file(1) says..." -#~ msgstr "file(1) øíká..." - -#~ msgid "Help about ... ?" -#~ msgstr "Nápovìda k ... ?" - -#~ msgid "" -#~ "Executable file:\n" -#~ "This is a file with an eXecute bit set - it can be run as a program." -#~ msgstr "" -#~ "Spustitelný soubor:\n" -#~ "Tento soubor má nastaven bit pro spou¹tìní - mù¾e být spu¹tìn jako " -#~ "program." - -#~ msgid "" -#~ "File:\n" -#~ "This is a data file. Try using the Info menu item to find out more..." -#~ msgstr "" -#~ "Soubor:\n" -#~ "Toto je datový soubor. Zkuste pou¾ít nabídku Info v menu pro zji¹tìní " -#~ "podrobností..." - -#~ msgid "" -#~ "Mount point:\n" -#~ "A mount point is a directory which another filing system can be mounted " -#~ "on. Everything on the mounted filesystem then appears to be inside the " -#~ "directory." -#~ msgstr "" -#~ "Bod pøipojení:\n" -#~ "Bod pøipojení je adresáø, na který mù¾e být pøipojen jiný systém souborù. " -#~ "V¹echno na pøipojeném systému souborù potom vypadá, ¾e je to uvnitø toho " -#~ "adresáøe." - -#~ msgid "" -#~ "Device file:\n" -#~ "Device files allow you to read from or write to a device driver as though " -#~ "it was an ordinary file." -#~ msgstr "" -#~ "Soubor zaøízení:\n" -#~ "Soubory zaøízení umo¾òují èíst a zapisovat na z/na zaøízení tak, jako by " -#~ "to byl obyèejný soubor." - -#~ msgid "" -#~ "Named pipe:\n" -#~ "Pipes allow different programs to communicate. One program writes data to " -#~ "the pipe while another one reads it out again." -#~ msgstr "" -#~ "Pojmenovaná roura:\n" -#~ "Roury umo¾òují procesùm komunikovat. Jeden program zapisuje data do " -#~ "roury, zatímco jiný program je ète." - -#~ msgid "" -#~ "Socket:\n" -#~ "Sockets allow processes to communicate." -#~ msgstr "" -#~ "Soket:\n" -#~ "Sokety umo¾òují procesùm komunikovat mezi sebou." - -#~ msgid "" -#~ "Door:\n" -#~ "Doors are a little-used Solaris method for processes to communicate." -#~ msgstr "" -#~ "Door:\n" -#~ "Doors are a little-used Solaris method for processes to communicate." - -#~ msgid "" -#~ "Unknown type:\n" -#~ "I couldn't find out what kind of file this is. Maybe it doesn't exist " -#~ "anymore or you don't have search permission on the directory it's in?" -#~ msgstr "" -#~ "Neznámý typ:\n" -#~ "Jemohu urèit typ souboru. Mo¾ná u¾ neexistuje nebo nemáte právo pøístupu " -#~ "do adresáøe, ve kterém se nachází?" - -#~ msgid "" -#~ "Directory:\n" -#~ "This is a directory. It contains an index to other items - open it to see " -#~ "the list." -#~ msgstr "" -#~ "Adresáø:\n" -#~ "Toto je adresáø. Obsahuje index jiných polo¾ek - pokud chcete vidìt " -#~ "seznam, tak jej otevøete." - -#~ msgid "Menu on button 2 (RISC OS style)" -#~ msgstr "Zobrazit nabídku pøi stisku tlaèítka 2 (RISC OS styl)" - -#~ msgid "" -#~ "Use button 2, the middle button (click both buttons at once on two button " -#~ "mice), to pop up the menu. If off, use button 3 (right) instead." -#~ msgstr "" -#~ "Pou¾ijte tlaèítko 2, prostøední tlaèítko (stisknìte obì tlaèítka na " -#~ "dvotlaèítkové my¹i), k zobrazení nabídky. Pokud je tato volba vypnutá, " -#~ "pu¾ijte tlaèítko 3 (pravé)." diff --git a/ROX-Filer/src/po/da.po b/ROX-Filer/src/po/da.po deleted file mode 100644 index e09ce856..00000000 --- a/ROX-Filer/src/po/da.po +++ /dev/null @@ -1,5286 +0,0 @@ -# Danish messages for ROX-Filer. -# Copyright (C) 2002 Free Software Foundation, Inc. -# Christian Storgaard , 2002-2005. -# -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.1.5\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: 2005-02-23 17:11+0100\n" -"Last-Translator: Christan D. Storgaard \n" -"Language-Team: Danish \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Stille" - -#: abox.c:228 -msgid "Quiet" -msgstr "Stille" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Kræv ikke bekræftelse for hver handling" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Navn" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Mappe" - -#: abox.c:550 -msgid "Expression:" -msgstr "Udtryk:" - -#: action.c:58 -#, fuzzy -msgid "See the attr(5) man page for full details." -msgstr "Se ROX-Filer manualen for detaljer." - -#: action.c:60 -#, fuzzy -msgid "See the fsattr(5) man page for full details." -msgstr "Se ROX-Filer manualen for detaljer." - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "" - -#: action.c:188 -msgid "Find expression reference" -msgstr "Find udtryks-reference" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Kom hurtigt i gang\n" -"Skriv blot navnet på filen du ønsker at finde, omringet af enkel-" -"citationstegn:\n" -"'index.html' (for at finde en fil ved navn 'index.html'\n" -"\n" -"Eksempler\n" -"'*.htm', '*.html' (finder HTML filer)\n" -"ErMappe 'lib' (finder mapper ved navn 'lib')\n" -"ErNorm 'core' (finder en normal fil ved navn 'core')\n" -"! (ErMappe, ErNorm) (er hverken en mappe eller en normal fil)\n" -"mtid efter 1 dag siden og størrelse > 1Mb (stor og ændret for " -"nyligt)\n" -"'CVS' beskær, ErNorm (en normal fil som ikke ligger i CVS)\n" -"ErNorm system(grep -q tux \"%\") (contains the word 'tux')\n" -"\n" -"Simple Tests\n" -"ErNorm, ErLænke, ErMappe, ErKar, ErBlok, ErEnhed, ErRør, ErStik, ErDør (typer)\n" -"ErSUID, ErSGID, ErKlæbrig, ErLæselig, ErSkrivbar, ErUdførbar " -"(permissions)\n" -"ErTom, ErMin\n" -"Et mønster i enkel-citationstegn behandles som et skal-type-møsnter.\n" -"Hvis det indeholder en skråstreg, vil der blive søgt i den fulde sti, " -"ellers\n" -"kun i den nuværende mappe.\n" -"\n" -"Sammenligninger\n" -"<, <=, =, !=, >, >=, Efter, Før (sammenlign to værdier)\n" -"5 byte, 1Kb, 2Mb, 3Gb (filstørrelser)\n" -"2 sek|min|timer|dage|uger|år siden|fra nu (times)\n" -"atid, ctid, mtid, nu, størrelse, inode, nlænker, uid, gid, blokke " -"(værdier)\n" -"\n" -"Specielt\n" -"system(kommando) (sand hvis 'kommando' vender tilbage med en " -"afslutnings-status af nul;\n" -"a % i 'kommando' bliver erstattet med stien til den valgte fil)\n" -"beskær (falsk, og forhindrer en mappe i at blive gennemsøgt)." - -#: action.c:246 -#, fuzzy -msgid "Change permissions reference" -msgstr "Find udtryks-reference" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalt kan du bare vælge en kommando fra menuen (klik på \n" -"pilen ved siden af kommando-boksen). Sometider, kræver det mere...\n" -"\n" -"Formattet af en kommando er:ÆNDRING, ÆNDRING, ...\n" -"Hver ÆNDRING er: HVEM HVORDAN TILLADDELSER\n" -"HVEM er en kombination af u, g og o som " -"bestemmer om der skal ændres\n" -"tilladelser for User (ejeren), Group (gruppen) eller Others (andre).\n" -"HVORDAN er +, - eller = til at tilføje, fjerne eller " -"sætte de præcise tilladelser.\n" -"TILLADDELSER er en kombination af bogstaverne rwxXstugo\n" -"\n" -"Tekst mellem { og } og mellemrum bliver ignoreret.\n" -"\n" -"Eksempler\n" -"u+rw: filens ejer får læse- og skrive-tilladelser\n" -"g=u: gruppens tilladelser bliver de samme som ejerens\n" -"o=u-w: andre får samme tilladelser som ejeren, dog uden skrive-" -"tilladdelse\n" -"a+x: alle får udfør og adgangs-tilladelser - det samme som ugo+x\n" -"a+X: mapper bliver tilgængelige for alle; filer som var\n" -"udførbare af nogen bliver udførbare af alle\n" -"u+rw, go+r: to kommandoer på en gang!\n" -"u+s: sæt SetUID-delen - har ofte ingen effekt på skript-filer\n" -"755: sæt tilladelserne direkte\n" -"\n" -"Se chmod(1) man-siden for detaljer." - -#: action.c:298 -msgid "Set type reference" -msgstr "Find udtryks reference" - -#: action.c:309 -#, fuzzy -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalt finder ROX-Filer ud af en normal fils type ved at\n" -"sætte dens navn op imod et mønster. For at ændre filens\n" -"type er du nødt til at omdøbe den.\n" -"\n" -"Nogle nyere fil-systemer understøtter noget ved navn \n" -"\"Udvidede Attributter\" (\"Extended Attributes\") som kan\n" -"bruges til gemme navngivet ekstra information sammen med\n" -"hver fil. ROX-Filer bruger 'user.mime-type'-attributten til at\n" -"gemme filtyper.\n" -"\n" -"Filetyper virker kun med normale filer, altså ikke med\n" -"mapper, enheder, rør eller stik, og derudover kun på visse\n" -"filsystemer og hvor styresystemet understøtter dem.\n" -"\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Processen er blevet afsluttet.\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Der skete 1 fejl.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Der var %d fejl.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "FEJL under læsning" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Færdig\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "FEJL" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Ja" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Nej" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Beder børne-processen om at afslutte...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Prøver at lukke (KILL) den bortløbne proces...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Tæl indehold af %s?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Slet %s'%s'?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "SKRIVE-BESKYTTET " - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Sletter '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Mappen '%s' slettet\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Skub '%s' ud?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Skub '%s' ud\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"skubben ud mislykkedes\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?Check '%s'?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Ugyldige søge-parametre - ret dem og prøv igen\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(imens '%s' bliver checket)\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Ændre tilladelserne på '%s'?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Ændrer tilladelserne på '%s'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Ugyldig mode kommando - ret den og prøv igen\n" - -#: action.c:1207 action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Ændr typen på '%s'?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!Ugyldig type - ændr den og prøv igen\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Ændrer typen på '%s' til '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' findes allerede - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "sammensmelt indehold" - -#: action.c:1328 -msgid "overwrite" -msgstr "overskriv" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Prøver at kopiere alligevel...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Kopier %s som %s?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Kopierer %s som %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!FEJL: Destinationen findes allerede, men er ikke en mappe\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Kopiering af '%s' mislykkedes\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' findes allerede - overskriv?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Prøver at flytte alligevel...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Flyt %s som %s?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Flytter %s som %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"!FEJL: Mislykkedes i at flytte %s som %s\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!FEJL: Kan ikke kopiere object til sig selv\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!FEJL: Kan ikke flytte/omdøbe objekt til sig selv\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Opretter lænke til %s som %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Opret lænke til %s som %s?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Monterer %s\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Afmonterer %s\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?Montér %s?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?Afmontér %s?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Monteringen mislykkedes\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Afmontering mislykkedes\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(lader til at være monteret nu alligevel)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Total: %s (" - -#: action.c:1704 -msgid "file" -msgstr "fil" - -#: action.c:1704 -msgid "files" -msgstr "filer" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "ingen mapper)\n" - -#: action.c:1712 -msgid "directory" -msgstr "mappe" - -#: action.c:1713 -msgid "directories" -msgstr "mapper" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Der er ikke valgt nogen monterings-punkter!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?En søgning til?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' er en symbolsk lænke\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Du skal vælge nogle ting at gennemsøge" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Find" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Du skal vælge nogle ting at tælle" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Disk Brug" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Montér / Afmontér" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "" -"ROX-Filer understøtter desværre endnu ikke monterings-punkter under dit " -"system." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Slet" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Tving" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Spørg ikke igen omkring sletning af ikke-skrivbare objekter." - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Kort" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Lav kun log over sletning af mapper" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "Du skal vælge hvilke objekter du vil ændre tilladelser på" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Gør udførbar/søgelig)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Gør ikke-udførbar/ikke-søgelig)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Giv ejer læs+skriv)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privat - kun ejer adgang)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Offentlig adgang, ikke skrivbar)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Tilladdelser" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Oprems ikke bearbejdede filer " - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Rekursivt" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Indholdet af undermapper skal også ændres." - -#: action.c:2123 -msgid "Command:" -msgstr "Kommando:" - -#: action.c:2151 -msgid "You need to select the items whose type you want to change" -msgstr "Du skal vælge hvilke objekter du vil ændre typen af" - -#: action.c:2164 -msgid "Set type" -msgstr "Sæt type" - -#: action.c:2178 -msgid "Change contents of subdirectories" -msgstr "Ændr indholdet af undermapper" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Type:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopier" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Nyere" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Overskriv kun hvis kilden er nyere end destinationen." - -#: action.c:2228 -msgid "Only log directories as they are copied" -msgstr "Lav kun log over mapper efterhånden som de bliver kopieret" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Flyt" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "Lav ikke log over filer der bliver flyttet" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Lav Lænke" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "Skub ud" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Sletter objekter som f.eks. " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Sletter objektet " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Sletter objekterne " - -#: action.c:2385 -msgid " and " -msgstr " og " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" vil påvirke nogle objekter på opslagstavlen eller panelet - virkelig slette " -"den?" - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" vil påvirke nogle objekter på opslagstavlen eller panelet - virkelig slette " -"dem?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Lav symbolske lænker, til ethvert program du ønsker, i denne mappe. De vil " -"være at finde i menuen for alle objekter af denne type (%s/%s)." - -#: appmenu.c:339 menu.c:234 -msgid "Customise Menu..." -msgstr "Indstil Menu..." - -#: appmenu.c:396 menu.c:251 toolbar.c:159 -msgid "Help" -msgstr "Hjælp" - -#: bookmarks.c:147 -msgid "Path" -msgstr "Sti" - -#: bookmarks.c:155 -msgid "Title" -msgstr "Tittel" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Kan ikke lave et bogmærke til den ikke-lokale resource '%s'\n" - -#: bookmarks.c:312 bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' er ikke en mappe" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Du skal først vælge nogle linjer at fjerne" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Placér markøren på det objekt i listen du vil flytte" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Dette objekt er allerede i slutningen" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Kan ikke lave bogmærker til ikke-lokale mapper som '%s'" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Tilføj Nyt Bogmærke" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Redigér Bogmærker" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "For Nyligt Besøgte" - -#: bulk_rename.c:68 -#, fuzzy -msgid "Bulk rename files" -msgstr "Genlæs filer" - -#: bulk_rename.c:71 -#, fuzzy -msgid "Reset" -msgstr "_Fortryd ændringer" - -#: bulk_rename.c:76 -msgid "Make the New column a copy of Old" -msgstr "" - -#: bulk_rename.c:81 -#, fuzzy -msgid "_Rename" -msgstr "Omdøb" - -#: bulk_rename.c:94 -#, fuzzy -msgid "Replace:" -msgstr "_Erstat" - -#: bulk_rename.c:101 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" - -#: bulk_rename.c:109 -#, fuzzy -msgid "With:" -msgstr "Skriv" - -#: bulk_rename.c:116 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Slå til" - -#: bulk_rename.c:123 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "" - -#: bulk_rename.c:151 -#, fuzzy -msgid "New name" -msgstr "Omdøb" - -#: bulk_rename.c:259 -msgid "No strings (in the New column) matched the given expression" -msgstr "" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "" - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "" - -#: bulk_rename.c:293 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" - -#: bulk_rename.c:310 -#, fuzzy, c-format -msgid "%s (for '%s')" -msgstr "%s-'%s'" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" - -#: bulk_rename.c:410 -#, fuzzy, c-format -msgid "A file called '%s' already exists" -msgstr "?'%s' findes allerede - %s?" - -#: bulk_rename.c:421 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "" - -#: choices.c:428 -#, fuzzy -msgid "Choices migration" -msgstr "Kinesisk (traditionel)" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Kan ikke få info om mappen: %s" - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Kan ikke åbne mappen: %s" - -#: display.c:588 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) mislykkedes: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Intern fejl - dårlig info type" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "Træk en mappe hertil for at tilføje et bogmærke til den." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS protokol fejl: leafnavn må ikke indeholde '/'\n" - -#: dnd.c:605 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"XdndDirectSave0 mål givet, men atomet XdndDirectSave0 (type text/plain) må " -"ikke indeholde et leafnavn\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "" -"Desværre - Jeg skal bruge et mål af typen text/uri-list eller " -"XdndDirectSave0." - -#: dnd.c:621 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Desværre - Jeg skal bruge et mål af typen text/uri-list eller application/" -"octet-stream." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Nogle af objekterne kunne ikke sættes på opslagstavlen, fordi de er på en " -"anden maskine. For eksempel:\n" -"\n" -"%s" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Ukendt mål" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Det andet program kan eller vil ikke sende mig dataen - desværre" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "XDS protokol fejl: returnet kode skulle være 'S', 'F' eller 'E'\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Jeg kan desværre ikke vise en menu over handlinger for en fjern fil og/eller " -"rå data." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "Utitlet Data" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Det lykkedes ikke at gemme filen: %s" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Ingen URIs i text/uri-list (intet at gøre!)" - -#: dnd.c:993 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Kan ikke få dataen fra anden maskine (application/octet-stream ikke givet)" - -#: dnd.c:1016 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Nogle af disse filer er på en anden maskine - de vil blive ignoreret - " -"desværre" - -#: dnd.c:1023 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Ingen af disse filer er på denne maskine - Jeg kan ikke arbejde på netwærks-" -"filer - desværre." - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Ukendt handling anmodet" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Fejl uder hentning af fil-liste: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Vis" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Vis the nuværende valg i et 'filer' vindue" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"Jeg kan ikke vise dig det nuværende valgte objekt da intet er valgt. Træk " -"noget hen på mig!" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Desværre; du kan kun slippe én fil oven på slip-området." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Jeg kan desværre ikke bruge '%s', da det ikke er en lokal fil." - -#: dropbox.c:280 pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Kan ikke få adgang til '%s':\n" -"%s" - -#: filer.c:453 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Fejl under scanning af '%s':\n" -"%s\n" - -#: filer.c:457 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Fejl under scanning af '%s:\n" -"%s" - -#: filer.c:562 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Vil du afmontere denne enhed?\n" -"\n" -"Ved at afmontere en enhed er det sikkert at fjerne disken." - -#: filer.c:566 -#, fuzzy -msgid "No change" -msgstr "Intet" - -#: filer.c:572 menu.c:862 -msgid "Unmount" -msgstr "Afmontér" - -#: filer.c:669 -msgid "Directory missing/deleted" -msgstr "Mappe mangler/slettet" - -#: filer.c:1031 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Gruppen %s er ikke sat. Vælg nogle filer og tryk Ctrl+%s for at huske " -"gruppen. Tryk %s alene for at genvælge filerne senere." - -#: filer.c:1267 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Mappen '%s' er ikke tilgænglig" - -#: filer.c:1419 -#, c-format -msgid "Directory '%s' not found." -msgstr "Mappen '%s' kan ikke findes." - -#: filer.c:1713 -msgid "Cancel" -msgstr "Fortryd" - -#: filer.c:2002 -msgid "S" -msgstr "K" - -#: filer.c:2004 -msgid "T" -msgstr "M" - -#: filer.c:2026 -msgid "Scanning, " -msgstr "Scanner, " - -#: filer.c:2028 -msgid "Thumbs, " -msgstr "Thumbs, " - -#: filer.c:2304 -msgid "Symbolic link to " -msgstr "Symbolsk lænke til " - -#: filer.c:2335 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Dette filnavn er ikke i korrekt UTF-8. Du bør omdøbe den.\n" - -#: filer.c:2643 menu.c:1989 -msgid "Item no longer exists!" -msgstr "Objektet eksisterer ikke længere!" - -#: filer.c:3327 -msgid "Select display properties to save" -msgstr "Vælg hvilke visnings-indstillinger der skal gemmes" - -#: filer.c:3334 -msgid "Position" -msgstr "Position" - -#: filer.c:3339 toolbar.c:135 toolbar.c:139 tips:63 -msgid "Size" -msgstr "Størrelse" - -#: filer.c:3344 -msgid "Show hidden" -msgstr "Vis skjulte" - -#: filer.c:3350 -msgid "Display style" -msgstr "Visnings-stil" - -#: filer.c:3356 -msgid "Sort type and order" -msgstr "Sorterings-type og rækkefølge" - -#: filer.c:3361 toolbar.c:143 -msgid "Details" -msgstr "Detaljer" - -#: filer.c:3366 tips:114 tips:115 -msgid "Thumbnails" -msgstr "Miniature" - -#: filer.c:3372 -msgid "Filter" -msgstr "Filter" - -#: find.c:487 -msgid "And" -msgstr "Og" - -#: find.c:511 -msgid "Not" -msgstr "Ikke" - -#: find.c:554 -msgid "system" -msgstr "system" - -#: find.c:562 -msgid "prune" -msgstr "beskær" - -#: find.c:650 -msgid "After" -msgstr "Efter" - -#: find.c:652 -msgid "Before" -msgstr "Før" - -#: find.c:746 -msgid "IsReg" -msgstr "ErNorm" - -#: find.c:748 -msgid "IsLink" -msgstr "ErLænke" - -#: find.c:750 -msgid "IsDir" -msgstr "ErMappe" - -#: find.c:752 -msgid "IsChar" -msgstr "ErKar" - -#: find.c:754 -msgid "IsBlock" -msgstr "ErBlok" - -#: find.c:756 -msgid "IsDev" -msgstr "ErEnhed" - -#: find.c:758 -msgid "IsPipe" -msgstr "ErRør" - -#: find.c:760 -msgid "IsSocket" -msgstr "ErStik" - -#: find.c:762 -msgid "IsDoor" -msgstr "ErDør" - -#: find.c:764 -msgid "IsSUID" -msgstr "ErSUID" - -#: find.c:766 -msgid "IsSGID" -msgstr "ErSGID" - -#: find.c:768 -msgid "IsSticky" -msgstr "ErKlæbrig" - -#: find.c:770 -msgid "IsReadable" -msgstr "ErLæselig" - -#: find.c:772 -msgid "IsWriteable" -msgstr "ErSkrivbar" - -#: find.c:774 -msgid "IsExecutable" -msgstr "ErUdførbar" - -#: find.c:776 -msgid "IsEmpty" -msgstr "ErTom" - -#: find.c:778 -msgid "IsMine" -msgstr "ErMin" - -#: find.c:906 -msgid "Now" -msgstr "Nu" - -#: find.c:919 -msgid "Byte" -msgstr "Byte" - -#: find.c:919 -msgid "Bytes" -msgstr "Byte" - -#: find.c:921 -msgid "Kb" -msgstr "" - -#: find.c:921 -#, fuzzy -msgid "K" -msgstr "OK" - -#: find.c:923 -msgid "Mb" -msgstr "" - -#: find.c:923 -msgid "M" -msgstr "" - -#: find.c:925 -msgid "Gb" -msgstr "" - -#: find.c:925 -msgid "G" -msgstr "" - -#: find.c:927 -msgid "Sec" -msgstr "Sek" - -#: find.c:927 -msgid "Secs" -msgstr "Sekunder" - -#: find.c:929 -msgid "Min" -msgstr "Min" - -#: find.c:929 -msgid "Mins" -msgstr "Minutter" - -#: find.c:931 -msgid "Hour" -msgstr "Time" - -#: find.c:931 -msgid "Hours" -msgstr "Timer" - -#: find.c:933 -msgid "Day" -msgstr "Dag" - -#: find.c:933 -msgid "Days" -msgstr "Dage" - -#: find.c:935 -msgid "Week" -msgstr "Uge" - -#: find.c:935 -msgid "Weeks" -msgstr "Uger" - -#: find.c:937 -msgid "Year" -msgstr "År" - -#: find.c:937 -msgid "Years" -msgstr "År" - -#: find.c:946 -msgid "Ago" -msgstr "Siden" - -#: find.c:948 -msgid "Hence" -msgstr "Fra nu" - -#: find.c:963 -msgid "atime" -msgstr "atid" - -#: find.c:965 -msgid "ctime" -msgstr "ctid" - -#: find.c:967 -msgid "mtime" -msgstr "mtid" - -#: find.c:969 -msgid "size" -msgstr "størrelse" - -#: find.c:971 -msgid "inode" -msgstr "inode" - -#: find.c:973 -msgid "nlinks" -msgstr "nlænke" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "blokke" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Gem som:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Unavngivet" - -#: gtksavebox.c:473 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"Det andet program vil gerne bruge Direct Save, men jeg kan ikke læse " -"XdndDirectSave0 (type text/plain) delen.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Træk ikonet til en mappe-oversigt\n" -"(eller skriv den fulde sti)" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"Forsøg på at læse en XML fil som en tekst fil. Filen '%s' er måske ødelagt." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and click on Save.\n" -"Further errors will be ignored." -msgstr "" -"Fejl i '%s' filen på linie %d: \n" -"\"%s\"\n" -"Dette kan på grund af en opdatering fra en tidligere verson af ROX-Filer. " -"Åben Indstillinger-vinduet og klik på Gem.\n" -"Flere fejl vil blive ignorerede." - -#: gui_support.c:1000 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Ukorrekt eller manglende linje-afslutning i tekst/uri-liste data" - -#: gui_support.c:1332 -#, fuzzy, c-format -msgid "Failed to open file '%s': %s" -msgstr "" -"Det lykkedes ikke at aflænke '%s':\n" -"%s" - -#: gui_support.c:1376 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" - -#: gui_support.c:1427 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can " -"be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" - -#: i18n.c:38 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Bemærk at du skal gemme dine valg og genstarte programmet før den nye sprog " -"indstillling tager fuld effekt." - -#: icon.c:78 -msgid "(click to set)" -msgstr "(klik for at sætte)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 menu.c:252 -msgid "About ROX-Filer..." -msgstr "Om ROX-Filer..." - -#: icon.c:135 menu.c:253 -msgid "Show Help Files" -msgstr "Vis Hjælpe-filer" - -#: icon.c:136 menu.c:254 -msgid "Manual" -msgstr "Manual" - -#: icon.c:138 menu.c:230 -msgid "Options..." -msgstr "Indstillinger..." - -#: icon.c:139 menu.c:239 -msgid "Home Directory" -msgstr "Hjemme-mappen" - -#: icon.c:140 icon.c:1340 menu.c:206 type.c:212 -msgid "File" -msgstr "Fil" - -#: icon.c:141 menu.c:212 menu.c:875 -msgid "Shift Open" -msgstr "Shift Åben" - -#: icon.c:142 menu.c:218 -msgid "Properties" -msgstr "Egenskaber" - -#: icon.c:143 menu.c:216 -msgid "Set Run Action..." -msgstr "Sæt Kør Hændelse..." - -#: icon.c:144 menu.c:217 -msgid "Set Icon..." -msgstr "Definer Ikon..." - -#: icon.c:145 icon.c:806 -msgid "Edit Item" -msgstr "Rediger Objekt" - -#: icon.c:146 -msgid "Show Location" -msgstr "Vis Oprindelse" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Fjern Objekt(er)" - -#: icon.c:278 menu.c:764 -#, c-format -msgid "%s '%s'" -msgstr "%s-'%s'" - -#: icon.c:291 -msgid "Nothing" -msgstr "Intet" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Stien skal indeholde i hvertfald et tegn!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Du skal først vælge nogle objekter at fjerne" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Du skal åbne menuen over et objekt" - -#: icon.c:652 menu.c:1260 -msgid "You can only set the run action for a regular file" -msgstr "Du kan kun sætte kør hændelsen for en normal fil" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Tryk den ønskede genvej (f.eks. Control+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Kunne ikke få fat i tastaturet!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Et klik på ikonet åbner:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "Argumenter der skal videregives (for udførbare filer):" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Teksten der bliver vist under ikonet er:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "Tastatur-genvejen er:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Er du sikker på at du vil åbne %d vinduer?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Vis Info" - -#: infobox.c:135 menu.c:769 -msgid "(bad utf-8)" -msgstr "(ukorrekt uft-8)" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "Vis _Hjælpe-filer" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Tilladdelser" - -#: infobox.c:286 -msgid "Contents indicate..." -msgstr "Lader til at være..." - -#: infobox.c:423 infobox.c:560 support.c:349 -msgid "bytes" -msgstr "byte" - -#: infobox.c:446 -msgid "Failed to read size" -msgstr "Det lykkedes ikke at læse størrelsen" - -#: infobox.c:504 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' er ikke længere en symbolsk lænke" - -#: infobox.c:511 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Det lykkedes ikke at aflænke '%s':\n" -"%s" - -#: infobox.c:516 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Det lykkedes ikke at lave en symbolsk lænke fra '%s':\n" -"%s\n" -"(bemærk: den gamle lænke er blevet fjernet)" - -#: infobox.c:539 tips:270 -msgid "Error:" -msgstr "Fejl:" - -#: infobox.c:546 -msgid "Real directory:" -msgstr "Rigtige mappe:" - -#: infobox.c:549 -msgid "Owner, Group:" -msgstr "Ejer, Gruppe:" - -#: infobox.c:556 infobox.c:571 infobox.c:580 -msgid "Size:" -msgstr "Størrelse:" - -#: infobox.c:581 -msgid "Scanning" -msgstr "Scanner" - -#: infobox.c:602 -msgid "Failed to scan" -msgstr "Det lykkedes ikke at skanne" - -#: infobox.c:609 -msgid "Change time:" -msgstr "Ændre tid:" - -#: infobox.c:611 -msgid "Modify time:" -msgstr "Modificer tid:" - -#: infobox.c:613 -msgid "Access time:" -msgstr "Ændrings tid:" - -#: infobox.c:621 -msgid "Extended attributes:" -msgstr "" - -#: infobox.c:623 -msgid "Present" -msgstr "" - -#: infobox.c:624 -msgid "None" -msgstr "Ingen" - -#: infobox.c:625 -#, fuzzy -msgid "Not supported" -msgstr "Dnotify-understøttelse" - -#: infobox.c:637 -msgid "Link target:" -msgstr "Lænke-mål:" - -#: infobox.c:649 infobox.c:652 -msgid "Run action:" -msgstr "Kør handling:" - -#: infobox.c:649 -msgid "Execute file" -msgstr "Kørbar fil" - -#: infobox.c:744 -msgid "" -msgstr "" - -#: infobox.c:814 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) siger... %s" - -#: infobox.c:871 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Kunne ikke ændre indstillingerne: %s" - -#: infobox.c:889 -msgid "Owner" -msgstr "Ejer" - -#: infobox.c:891 -msgid "Group" -msgstr "Gruppe" - -#: infobox.c:893 -msgid "World" -msgstr "Andre" - -#: infobox.c:896 -msgid "Read" -msgstr "Læs" - -#: infobox.c:898 -msgid "Write" -msgstr "Skriv" - -#: infobox.c:900 -msgid "Exec" -msgstr "Udfør" - -#: infobox.c:917 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:924 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:931 -msgid "Sticky" -msgstr "Klæbrig" - -#: infobox.c:953 -msgid "Symbolic link" -msgstr "Symbolsk lænke" - -#: infobox.c:956 -msgid "ROX application" -msgstr "ROX programmet" - -#: infobox.c:964 -msgid "mounted" -msgstr "monteret" - -#: infobox.c:964 -msgid "unmounted" -msgstr "ikke monteret" - -#: infobox.c:968 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Monteringspunktet for %s (%s)" - -#: infobox.c:971 -#, c-format -msgid "Mount point (%s)" -msgstr "Monteringspunkt (%s)" - -#: main.c:95 -#, fuzzy -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2003 Thomas Leonard.\n" -"ROX-Filer kommer med ABSOLUT INGEN GARANTI,\n" -"i den grad der er tilladt af loven.\n" -"Du må redistribuere kopier af ROX-Filer\n" -"under retningslinjerne fremsat i GNU General Public License.\n" -"For mere information omkring disse emner, se filen ved navn COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Prøv 'ROX-Filer/AppRun --help' for mere information.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Prøv 'ROX-Filer/AppRun -h' for mere information.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"BEMÆRK: Dit system understøtter ikke lange valgmuligheder - \n" -"du bliver nød til at bruge de korte istedet.\n" - -#: main.c:115 -#, fuzzy -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Anvendelse: ROX-Filer/AppRun [VALGMULIGHEDER]... [FIL]...\n" -"Åbn hver mappe eller fil givet, eller den nuværende arbejds\n" -"mappe hvis intet andet er påbedt.\n" -"\n" -" -b, --bottom=PANEL\tåben PANEL som et bund-kants panel\n" -" -c, --client-id=ID\tbrugt til session management\n" -" -d, --dir=MAPPE\t\tåben MAPPE som mappe (ikke som program)\n" -" -D, --close=MAPPE\tluk MAPPE og dens undermapper\n" -" -h, --help\t\tvis denne hjælp og afslut\n" -" -l, --left=PANEL\tåben PANEL som et venstre-kants panel\n" -" -m, --mime-type=FIL\tvis MIME typen af FIL og afslut\n" -" -n, --new\t\tstart en ny 'filer', bruges under aflusning af 'fileren'\n" -" -o, --override\tforbigå window managerens kontrol af paneler\n" -" -p, --pinboard=TAVLE\tbrug opslagstavle TAVLE som opslagstavle\n" -" -r, --right=PANEL\tåben PANEL som et højre-kants panel\n" -" -R, --RPC\t\tkør metode-kald læst fra stdin\n" -" -s, --show=FIL\tåben en mappe der viser FIL\n" -" -t, --top=PANEL\tåben PANEL som et top-kants panel\n" -" -u, --user\t\tvis brugerens navn i hvert vindue \n" -" -v, --version\t\tvis version informationen og afslut\n" -" -x, --examine=FIL\tFIL er ændret - undersøg den igen\n" -"\n" -"Rapporter fejl til " - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -".\n" -"Hjemmeside (med nyere udgaver): http://rox.sourceforge.net/\n" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" - -#: main.c:382 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"Argumentet -o bliver ikke længere brugt. Du kan slå tilsidesættelse til i " -"Indstillings-vinduet i stedet." - -#: main.c:489 -#, c-format -msgid "Running as user '%s'" -msgstr "Kører som bruger '%s'" - -#: main.c:666 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Kompileret med GTK version %s\n" - -#: main.c:667 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Kører med GTK version %d.%d.%d\n" - -#: main.c:671 -msgid "features set at compile time" -msgstr "funktioner sat ved kompilerings tid" - -#: main.c:672 -msgid "Large File Support" -msgstr "Understøttelse af Store Filer" - -#: main.c:679 -msgid "GNOME-VFS library" -msgstr "GNOME-VFS-bibliotek" - -#: main.c:683 -msgid "No (need 2.8.0 or later)" -msgstr "Nej (kræver 2.8.0 eller nyere)" - -#: main.c:686 -msgid "Dnotify support" -msgstr "Dnotify-understøttelse" - -#: main.c:693 -msgid "Binary compatibility" -msgstr "Binær kompatibel" - -#: main.c:695 -msgid "Yes (can run with older glibc versions)" -msgstr "Ja (kan køre med ældre udgaver af glibc)" - -#: main.c:697 -msgid "No (apsymbols.h not found)" -msgstr "Nej (apsymbols.h er ikke fundet)" - -#: menu.c:180 tips:52 -msgid "Display" -msgstr "Vis" - -#: menu.c:181 tips:57 -msgid "Icons View" -msgstr "Ikon-visning" - -#: menu.c:182 -msgid "Icons, With..." -msgstr "Ikoner, Med..." - -#: menu.c:183 tips:74 -msgid "Sizes" -msgstr "Størrelser" - -#: menu.c:185 tips:254 -msgid "Types" -msgstr "Typer" - -#: menu.c:186 tips:77 -msgid "Times" -msgstr "Tider" - -#: menu.c:187 tips:58 tips:92 -msgid "List View" -msgstr "Liste-visning" - -#: menu.c:189 -msgid "Bigger Icons" -msgstr "Størrere Ikoner" - -#: menu.c:190 -msgid "Smaller Icons" -msgstr "Mindre Ikoner" - -#: menu.c:191 tips:71 -msgid "Automatic" -msgstr "Automatisk" - -#: menu.c:193 -msgid "Sort by Name" -msgstr "Sortér efter Navn" - -#: menu.c:194 -msgid "Sort by Type" -msgstr "Sortér efter Type" - -#: menu.c:195 -msgid "Sort by Date" -msgstr "Sortér efter Dato" - -#: menu.c:196 -msgid "Sort by Size" -msgstr "Sortér efter Størrelse" - -#: menu.c:197 -msgid "Sort by Owner" -msgstr "Sortér efter Ejer" - -#: menu.c:198 -msgid "Sort by Group" -msgstr "Sortér efter Gruppe" - -#: menu.c:199 -msgid "Reversed" -msgstr "Omvendt" - -#: menu.c:201 -msgid "Show Hidden" -msgstr "Vis Skjulte" - -#: menu.c:202 -msgid "Filter Files..." -msgstr "Filtrér Filer..." - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Vis Thumbnails" - -#: menu.c:204 -msgid "Refresh" -msgstr "Opdater" - -#: menu.c:205 -msgid "Save Display Settings..." -msgstr "Gem Visnings-indstillinger..." - -#: menu.c:207 -msgid "Copy..." -msgstr "Kopier..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Omdøb..." - -#: menu.c:209 -msgid "Link..." -msgstr "Lav Lænke..." - -#: menu.c:213 -msgid "Open AVFS" -msgstr "Open med AVFS" - -#: menu.c:214 -msgid "Send To..." -msgstr "Send til..." - -#: menu.c:219 -msgid "Count" -msgstr "Tæl" - -#: menu.c:220 -msgid "Set Type..." -msgstr "Sæt Type..." - -#: menu.c:224 toolbar.c:155 -msgid "Select" -msgstr "Vælg" - -#: menu.c:225 -msgid "Select All" -msgstr "Vælg Alle" - -#: menu.c:226 -msgid "Clear Selection" -msgstr "Vælg Ingen" - -#: menu.c:227 -msgid "Invert Selection" -msgstr "Vend Valg Om" - -#: menu.c:228 -msgid "Select by Name..." -msgstr "Vælg efter Navn..." - -#: menu.c:229 -msgid "Select If..." -msgstr "Vælg Hvis..." - -#: menu.c:231 -msgid "New" -msgstr "Ny" - -#: menu.c:233 -msgid "Blank file" -msgstr "Tom fil" - -#: menu.c:235 tasklist.c:308 -msgid "Window" -msgstr "Vindue" - -#: menu.c:236 -msgid "Parent, New Window" -msgstr "Overmappe, Nyt Vindue" - -#: menu.c:237 -msgid "Parent, Same Window" -msgstr "Overmappe, Samme Vindue" - -#: menu.c:238 -msgid "New Window" -msgstr "Nyt Vindue" - -#: menu.c:240 -msgid "Show Bookmarks" -msgstr "Vis Bogmærker" - -#: menu.c:241 -msgid "Follow Symbolic Links" -msgstr "Følg Symbolske Lænker" - -#: menu.c:242 -msgid "Resize Window" -msgstr "Tilpas størrelse på Vindue" - -#: menu.c:245 -msgid "Close Window" -msgstr "Luk Vindue" - -#: menu.c:247 -msgid "Enter Path..." -msgstr "Skriv Sti..." - -#: menu.c:248 -msgid "Shell Command..." -msgstr "Shell kommando..." - -#: menu.c:249 -msgid "Xterm Here" -msgstr "Xterm Her" - -#: menu.c:250 -msgid "Switch to xterm" -msgstr "Skift til xterm" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Du burde Shift-klikke på en fil for at sende den til noget" - -#: menu.c:754 -msgid "Next Click" -msgstr "Næste Klik" - -#: menu.c:776 -#, c-format -msgid "%d items" -msgstr "%d objekter" - -#: menu.c:864 -msgid "Open unmounted" -msgstr "Åbn umonteret" - -#: menu.c:867 -msgid "Show Target" -msgstr "Hvis Mål" - -#: menu.c:869 -msgid "Look Inside" -msgstr "Kig Indeni" - -#: menu.c:871 -msgid "Open As Text" -msgstr "Åben Som Tekst" - -#: menu.c:1031 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" - -#: menu.c:1037 -msgid "Setting type not supported for some of these files" -msgstr "" - -#: menu.c:1072 -msgid "_Relative link" -msgstr "_Relativ lænke" - -#: menu.c:1078 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Hvis dette er slået til vil den symbolske lænke indeholde en relativ sti til " -"målet. Brug dette hvis lænken og målet altid bliver flyttet sammen.\n" -"Hvis dette er slået fra vil den fulde sti til målet blive gemt - brug dette " -"hvis lænke måske bliver flyttet, men målet altid vil være samme sted." - -#: menu.c:1148 -msgid "New pathname is not absolute" -msgstr "Nyt mappenavn er ikke absolut" - -#: menu.c:1214 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "" -"Der findes allerede en symbolsk lænke fra '%s'. Skal den erstattes med en " -"lænke til '%s'?" - -#: menu.c:1220 -msgid "_Replace" -msgstr "_Erstat" - -#: menu.c:1351 menu.c:1392 menu.c:1452 -msgid "Create" -msgstr "Lav" - -#: menu.c:1352 -msgid "NewDir" -msgstr "Ny Mappe" - -#: menu.c:1366 menu.c:1372 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Fejl under skabning af: '%s': %s" - -#: menu.c:1393 -msgid "NewFile" -msgstr "Ny Fil" - -#: menu.c:1411 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Fejl under skabning af fil: kunne ikke finde skabelonen for %s" - -#: menu.c:1482 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"'Send Til' menuen er en hurtig måde at sende filer til et program. " -"Programmerne på listen er i de følgende mapper:\n" -"\n" -"%s\n" -"%s\n" -"'Send Til' menuen kan åbnes ved at Shift+Menu-klikke på en fil.\n" -"\n" -"Avanceret brug:\n" -"Du kan også lave undermappe navngivet '.text_html', '.text', osv. som kun " -"vil blive vist for filer af den type. '.group' bliver kun vist når flere " -"filer er valgt." - -#: menu.c:1493 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Jeg viser dig nu din 'Send Til' mappe; du bør lave symbolske lænker (Ctrl" -"+Shift træk) til ethvert program du vil have i den." - -#: menu.c:1496 menu.c:1536 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "Din CHOICESPATH variabel indstilling umuliggør ændringer - desværre." - -#: menu.c:1529 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" - -#: menu.c:1534 -#, fuzzy -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Jeg viser dig nu din 'Send Til' mappe; du bør lave symbolske lænker (Ctrl" -"+Shift træk) til ethvert program du vil have i den." - -#: menu.c:1651 -msgid "Customise" -msgstr "Indstil" - -#: menu.c:1717 -msgid "This is already the canonical name for this directory." -msgstr "Dette er allerede det korteste navn for denne mappe." - -#: menu.c:1748 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Du kan ikke åbne en til oversigt over denne mappe fordi 'Unikke Vinduer' " -"insdstillingen er slået til i Indstillinger vinduet." - -#: menu.c:1869 -msgid "Copy ... ?" -msgstr "Kopier ... ?" - -#: menu.c:1872 -msgid "Rename ... ?" -msgstr "Omdøb ... ?" - -#: menu.c:1875 -msgid "Symlink ... ?" -msgstr "Lav en symbolsk lænke ... ?" - -#: menu.c:1878 -msgid "Shift Open ... ?" -msgstr "Shift Åben ... ?" - -#: menu.c:1881 -msgid "Properties of ... ?" -msgstr "Egenskaber af ... ?" - -#: menu.c:1884 -msgid "Set type of ... ?" -msgstr "Definer typen på ... ?" - -#: menu.c:1887 -msgid "Set run action for ... ?" -msgstr "Sæt kør handlingen for ... ?" - -#: menu.c:1890 -msgid "Set icon for ... ?" -msgstr "Definer ikonet for ... ?" - -#: menu.c:1893 -msgid "Send ... to ... ?" -msgstr "Send ... til ... ?" - -#: menu.c:1896 -msgid "DELETE ... ?" -msgstr "SLET ... ?" - -#: menu.c:1899 -msgid "Count the size of ... ?" -msgstr "Udregn størrelsen af ... ?" - -#: menu.c:1902 -msgid "Set permissions on ... ?" -msgstr "Sæt tilladelserne på ... ?" - -#: menu.c:1905 -msgid "Search inside ... ?" -msgstr "Søg indeni ... ?" - -#: menu.c:1908 -msgid "Look inside ... ?" -msgstr "Kig indendi ... ?" - -#: menu.c:1972 -msgid "You cannot do this to more than one item at a time" -msgstr "Du kan ikke gøre dette ved mere end et objekt ad gangen" - -#: menu.c:2004 -msgid "Rename" -msgstr "Omdøb" - -#: menu.c:2009 -msgid "Symlink" -msgstr "Lav symbolsk lænke" - -#: menu.c:2041 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Bruger-definerede tastatur-genveje er som standard slået fra i Gtk2, og du " -"har ikke slået dem til. Du kan slå dem til ved at:\n" -"\n" -"1) bruge en XSettings-håndterer, så som ROX-Session eller gnome-settings-" -"daemon, eller\n" -"\n" -"2) tilføje denne linje til ~/.gtkrc-2.0;\n" -"\tgtk-can-change-accels·=·1\n" -"\t(dette virker kun hvis XSettings IKKE bliver brugt)" - -#: menu.c:2052 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"For at indstille en tastatur-genvej for en menu-funktion:\n" -"\n" -"- Åben menuen,\n" -"- Flyt muse-pointeren over den funktion du vil bruge,\n" -"- Tryk på den tast du vil afsætte til funktionen.\n" -"\n" -"Tasten vil vise sig ved siden af funktionen og du kan bare presse den tast " -"uden at åbne menuen for fremtiden." - -#: menu.c:2067 -msgid "Set keyboard shortcuts" -msgstr "Indstil tastatur-genveje" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Gå til:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Væg Hvis:" - -#: minibuffer.c:134 -msgid "Select Named:" -msgstr "Vælg Navngivede:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "Mønster:" - -#: minibuffer.c:264 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Skriv navnet på en fil og jeg vil vise den til dig. Tryk på Tab for at " -"udfylde den længste match. Escape-tasten lukker minibufferen." - -#: minibuffer.c:270 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Skriv en shell kommando der skal udføres. Klik på en fil for at tilføje den " -"til bufferen." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Skriv et filnavns-mønster for at vælge alle matchende filer:\n" -"\n" -"? betyder ethvert tegn\n" -"* betyder nul eller flere tegn\n" -"[aA] betyder 'a' eller 'A'\n" -"[a-z] betyder ethvert tegn fra a til z (små bogstaver)\n" -"*.png betyder ethvert navn der slutter på '.png'" - -#: minibuffer.c:287 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Skriv et mønster for hvilke filer der skal vises. Et tomt mønster slår " -"filteret fra." - -#: minibuffer.c:895 -msgid "Invalid Find condition" -msgstr "Ugyldinge find parametre" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s i alt, %s brugt, %s ledig (%.1f %%)" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "" -"Din gamle Indstillings-fil er blevet konverteret til det nye XML format" - -#: options.c:535 options.c:1258 -msgid "(use default)" -msgstr "(brug standard)" - -#: options.c:806 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Intern fejl: %s kan ikke læses" - -#: options.c:917 -msgid "Options" -msgstr "Indstillinger" - -#: options.c:962 -msgid "_Revert" -msgstr "_Fortryd ændringer" - -#: options.c:968 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Gendan alle valg så de er som da Indstillings-vinduet blev åbnet." - -#: options.c:983 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Valg vil blive gemt som:\n" -"%s" - -#: options.c:991 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(gemning er slået fra af CHOICESPATH variablen)" - -#: options.c:1164 usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Fejl under gemning af %s: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "Mangler '='" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Din gamle panel-fil er blevet konverteret til det nye XML format." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Du har prøvet at lukke et panel via window manageren - Jeg plejer at opfatte " -"det som et uheld... vil du rent faktisk lukke det?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "Mangler < eller > i panel configurations filen" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Fejl under gemning af panel %s: %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Applet afsluttede uden overhovedet at lave et widget!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Fejl under udførelse af panelprogram:\n" -"%s" - -#: panel.c:2335 -#, fuzzy -msgid "Panel Options..." -msgstr "Indstillinger..." - -#: panel.c:2427 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Xinerama-skærm %d er ikke tilgængelig" - -#: panel.c:2502 -#, fuzzy -msgid "Panel Options" -msgstr "Indstillinger" - -#: panel.c:2517 -#, fuzzy, c-format -msgid "Panel: %s" -msgstr "Paneler" - -#: panel.c:2525 -msgid "Select the panel's position:" -msgstr "" - -#: panel.c:2531 -#, fuzzy -msgid "Top-edge panel" -msgstr "Luk panel?" - -#: panel.c:2532 -msgid "Top edge" -msgstr "" - -#: panel.c:2533 -msgid "Bottom edge panel" -msgstr "" - -#: panel.c:2534 -#, fuzzy -msgid "Bottom edge" -msgstr "Bund-margen" - -#: panel.c:2535 -msgid "Left edge panel" -msgstr "" - -#: panel.c:2536 -msgid "Left edge" -msgstr "" - -#: panel.c:2537 -msgid "Right-edge panel" -msgstr "" - -#: panel.c:2538 -msgid "Right edge" -msgstr "" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "" -"Din gamle opslagstavle-fil er blevet konverteret til det nye XML format." - -#: pinboard.c:635 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Baggrunds-håndteringen er nødt til at være en program-mappe. Træk en program-" -"mappe ind i \"Indstil Baggrund\"-dialogboksen, eller (for programører) " -"videregiv den til SOAP SetBackdropApp-metoden." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Du kan kun sætte baggrunden til at være et billede eller til at være et " -"program som ved hvordan man sætter ROX-Filers baggrund.\n" -"\n" -"Programmører: programmets AppInfo.xml skal indeholde CanSetBackdrop-" -"elementet,som beskrevet i ROX-Filer-manualen." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Indstil baggrund" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Vælg en stil og træk et billede til:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Centrér billedet uden at skalere det" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Centrér" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "" -"Skalér billedet til at passe på baggrundsarealet, uden at forvrænge det" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Skalér" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Stræk billedet så det fylder baggrundsarealet" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Udstræk" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Læg billedet som fliser hen over baggrunden" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Læg som fliser" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Træk et billede-hertil" - -#: pinboard.c:772 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Der var ikke nogen opslagstavle i brug, derfor er opslagstavlen 'Default' " -"blevet valgt. Brug 'rox -p=Default' for at slå den til fremover." - -#: pinboard.c:866 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Kun filer (og visse programmer) kan bruges til at sætte baggrunds-billedet." - -#: pinboard.c:1471 -msgid "Missing '>' in icon label" -msgstr "Mangler '>' i ikon titlen" - -#: pinboard.c:1480 -msgid "Missing ',' after icon label" -msgstr "Mangler ',' efter ikon titlen" - -#: pinboard.c:1565 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Fejl under gemning af opslagstavlen %s: %s" - -#: pinboard.c:2109 -msgid "Backdrop..." -msgstr "Indstil baggrunden" - -#: pinboard.c:2202 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Kunne ikke indlæse baggrunds-billedet:\n" -"%s\n" -"Baggrunden er blevet fjernet." - -#: pixmaps.c:991 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Kan ikke slette miniature i %s:\n" -"%s" - -#: pixmaps.c:1012 -msgid "There are no thumbnails to delete" -msgstr "Der er ikke nogle miniature at slette" - -#: pixmaps.c:1025 -msgid "Purge thumbnails disk cache" -msgstr "Rens miniature disk-mellemlageret" - -#: remote.c:624 -#, c-format -msgid "Unknown style '%s'" -msgstr "Ukendt stil '%s'" - -#: remote.c:646 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Ukendt detalje-type '%s'" - -#: remote.c:674 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Ukendt sorterings-type '%s'" - -#: remote.c:1117 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Forsøg på at starte ukendt SOAP metode '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Ugyldig .gmo oversættelses-fil (for kort): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Ugyldig .gmo oversættelses-fil (GNU magic number ikke fundet): %s" - -#: run.c:96 run.c:141 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Programmet %s ikke fundet - slettet?" - -#: run.c:287 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Filen eksisterer ikke, eller jeg har ikke adgang til den: %s" - -#: run.c:292 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Jeg ved ikke hvordan man åbner '%s'" - -#: run.c:323 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Program:\n" -"Dette er en program mappe - du kan åbne den som et program, eller åbne den " -"(hold Shift nede mens du åbner den). De fleste programmer har deres egen " -"hjælp der, men denne har ikke." - -#: run.c:407 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Kunne ikke sende data til programmet %s" - -#: run.c:437 -#, c-format -msgid "Could not read link: %s" -msgstr "Kunne ikke læse lænken: %s" - -#: run.c:465 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "" -"Knækket symbolsk lænke (eller også har du ikke tilladelse til at følge den): " -"%s" - -#: run.c:502 -#, fuzzy, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Der er ikke sat nogen kør handling for filer af denne type (%s/%s) - du kan " -"sætte dens handling ved at vælge 'Set Kør Handling' fra fil-menuen, eller du " -"kan også bare trække filen til et program" - -#: run.c:508 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: toolbar.c:115 -msgid "Close" -msgstr "Luk" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Luk 'filer' vinduet" - -#: toolbar.c:119 -msgid "Up" -msgstr "Op" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Gå til overmappen" - -#: toolbar.c:123 -msgid "Home" -msgstr "Hjem" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Gå til hjemme-mappen" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Bogmærker" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Bogmærke-menu" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Scan" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Genscan mappens indhold" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Indstil ikon størrelsen" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Automatisk-størrelse-tilstand" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Vis ekstra detaljer" - -#: toolbar.c:147 -msgid "Sort" -msgstr "Sortér" - -#: toolbar.c:147 -msgid "Change sort criteria" -msgstr "Skift sorterings-kriterie" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Skjult" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Vis/Skjul skjulte filer" - -#: toolbar.c:155 -msgid "Select all/invert selection" -msgstr "Vælg alt/vend valg om" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "Vis ROX-Filers hjælp" - -#: toolbar.c:220 -#, c-format -msgid " (%u hidden)" -msgstr " (%u skjult)" - -#: toolbar.c:228 tips:80 -msgid "items" -msgstr "objekter" - -#: toolbar.c:228 -msgid "item" -msgstr "objekt" - -#: toolbar.c:231 -#, c-format -msgid "No items%s" -msgstr "Ingen objekter%s" - -#: toolbar.c:250 -#, c-format -msgid "%u selected (%s)" -msgstr "%u valgt (%s)" - -#: toolbar.c:422 -msgid "Sort by name" -msgstr "Sortér efter navn" - -#: toolbar.c:422 -msgid "Sort by type" -msgstr "Sortér efter type" - -#: toolbar.c:422 -msgid "Sort by date" -msgstr "Sortér efter dato" - -#: toolbar.c:423 -msgid "Sort by size" -msgstr "Sortér efter størrelse" - -#: toolbar.c:423 -msgid "Sort by owner" -msgstr "Sortér efter ejer" - -#: toolbar.c:423 -msgid "Sort by group" -msgstr "Sortér efter gruppe" - -#: toolbar.c:457 -msgid "ascending" -msgstr "stigende" - -#: toolbar.c:457 -msgid "descending" -msgstr "faldende" - -#: type.c:203 -msgid "Sym link" -msgstr "Symbolsk lænke" - -#: type.c:205 -msgid "Mount point" -msgstr "Monterings-punkt" - -#: type.c:207 -msgid "App dir" -msgstr "Program mappe" - -#: type.c:214 -msgid "Dir" -msgstr "Mappe" - -#: type.c:216 -msgid "Char dev" -msgstr "Char dev" - -#: type.c:218 -msgid "Block dev" -msgstr "Black dev" - -#: type.c:220 -msgid "Pipe" -msgstr "Pipe" - -#: type.c:222 -msgid "Socket" -msgstr "Socket" - -#: type.c:224 -msgid "Door" -msgstr "Dør" - -#: type.c:227 -msgid "Unknown" -msgstr "Ukendt" - -#: type.c:355 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"Den udførbare '%s' kan skrives til af alle! Jeg nægter at starte den. Vær " -"venlig at ændre tilladelserne nu (dette problem kan være foresaget af en " -"fejl i tidligere udgaver af 'fileren').\n" -"\n" -"At have kør hændelser der kan skrives til af alle, betyder at alle andre der " -"bruger din computer (også over netværk), kan erstatte disse kør hændelser " -"med ondsindede udgaver.\n" -"\n" -"Hvis du stoler på alle som kan have mulighed for at skrive til disse filer, " -"har du intet at bekymre dig om. Hvis ikke, bør du checke, eller enda slette, " -"alle de eksisterende handlinger." - -#: type.c:368 -msgid "go-w (Fix security problem)" -msgstr "go-w (Ret sikkerheds-problemmet)" - -#: type.c:498 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Skriv en skal kommando som skal åbne \"$@\" ind i et passende program. F." -"eks.:\n" -"\n" -"gimp \"$@\"" - -#: type.c:679 -msgid "This is not a program! Give me an application instead!" -msgstr "Dette er ikke et prgram! Giv mig et program istedet!" - -#: type.c:740 -msgid "No run action defined" -msgstr "Ingen kør handling defineret" - -#: type.c:766 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Fejl i behandler %s: %s" - -#: type.c:781 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Ugyldingt program %s (dårlig AppRun)" - -#: type.c:792 -#, c-format -msgid "Non-executable %s" -msgstr "Ikke-kørbar fil %s" - -#: type.c:825 -msgid "Set run action" -msgstr "Sæt kør handling" - -#: type.c:831 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Hvis der ikke er sat en handling for den specifikke type, så brug denne som " -"standard." - -#: type.c:833 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Sæt som normalt for alle `%s/'" - -#: type.c:837 -msgid "Use this application for all files with this MIME type." -msgstr "Brug dette program til alle filer med denne MIME-type." - -#: type.c:839 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Kun for typen `%s' (%s/%s)" - -#: type.c:845 -msgid "Drop a suitable application here" -msgstr "Træk et passende program hertil" - -#: type.c:860 -msgid "OR" -msgstr "ELLER" - -#: type.c:867 -msgid "Enter a shell command:" -msgstr "Skriv en shell kommando:" - -#: type.c:896 -#, fuzzy -msgid "_Use Command" -msgstr "Kommando:" - -#: type.c:926 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Der findes allerede en kør handling og den er et ret stort program - er du " -"sikker på at du vil slette den?" - -#: type.c:937 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Kan ikke fjerne %s: %s" - -#: type.c:974 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "Gemning af Choices er slået fra af CHOICESPATH variablen" - -#: type.c:1249 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" -"Da ikon-temaet '%s' ikke indeholder nogen MIME-ikoner, bliver standard-ROX-" -"temaet anvendt." - -#: type.c:1263 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason)" -msgstr "" -"Det lykkedes ikke at lave den symbolske lænke '%s':\n" -"%s\n" -"\n" -"(dette kan betyde at ROX-temaet allerede findes dér, men at 'mime-" -"application:postscript'-ikonet ikke kunne indlæses)" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Sti-navnet du gav findes ikke. Ikonet er ikke blevet ændret." - -#: usericons.c:191 usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Kunne ikke læse billed-filen -- måske er den ikke i et format jeg forstår, " -"elle også er tilladelserne ikke i orden?\n" -"Ikonet er ikke blevet ændret." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Vil du virkelig slette ikonet '%s'?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Kan ikke slette '%s'\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Definer ikon" - -#: usericons.c:279 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "" -"Anvend en kopi af billedet som standard for alle filer af denne MIME-type." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Sæt som ikon for alle `%s/'" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "" -"Anvend en kopi af billedet som standard for alle filer af denne MIME-type." - -#: usericons.c:288 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "For alle filer af typen `%s (%s/%s)" - -#: usericons.c:294 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Tilføj filen og billede-filnavnene til din personlige liste. Valget vil " -"blive glemt hvis billedet eller filen bliver flyttet." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "Kun for filen `%s'" - -#: usericons.c:305 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Kopiér billedet ind i mappen, som en skjult fil ved navn '.DirIcon'. Alle " -"brugerne vil kunne se ikonet, og du kan flytte mappen rundt uden problemer. " -"Dette er som regel den bedste løsning, hvis du kan skrive til mappen." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Kopiér billedet til mappen" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Træk en ikon-fil her hen" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Gemning af Choices er slået fra af CHOICESPATH variablen" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Fejl under generering af billedet '%s':\n" -"%s" - -#: view_details.c:1009 -msgid "_Name" -msgstr "_Navn" - -#: view_details.c:1012 -msgid "_Type" -msgstr "_Type" - -#: view_details.c:1015 -msgid "_Permissions" -msgstr "_Tilladdelser" - -#: view_details.c:1016 -msgid "_Owner" -msgstr "_Ejer" - -#: view_details.c:1018 -msgid "_Group" -msgstr "_Gruppe" - -#: view_details.c:1020 -msgid "_Size" -msgstr "_Størrelse" - -#: view_details.c:1022 -msgid "Last _Modified" -msgstr "Sidst _Ændret" - -#: tips:1 -msgid "Translation" -msgstr "Oversættelse" - -#: tips:2 -msgid "Language" -msgstr "Sprog" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "Brug LANG miljø variabel" - -#: tips:4 -msgid "Basque" -msgstr "" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Kinesisk (traditionel)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Kinesisk (simplificeret)" - -#: tips:7 -msgid "Czech" -msgstr "Tjekkisk" - -# tips=x -#: tips:8 -msgid "Danish" -msgstr "Dansk" - -#: tips:9 -msgid "Dutch" -msgstr "Hollandsk" - -#: tips:10 -msgid "English (no translation)" -msgstr "Engelsk (ingen oversættelse)" - -#: tips:11 -#, fuzzy -msgid "Estonian" -msgstr "Rumænsk" - -# tips=x -#: tips:12 -#, fuzzy -msgid "Finnish" -msgstr "Dansk" - -#: tips:13 -msgid "French" -msgstr "Fransk" - -#: tips:14 -msgid "German" -msgstr "Tysk" - -#: tips:15 -msgid "Hungarian" -msgstr "Ungarnsk" - -#: tips:16 -msgid "Japanese" -msgstr "Japansk" - -#: tips:17 -msgid "Norwegian" -msgstr "Norsk" - -#: tips:18 -msgid "Italian" -msgstr "Italiensk" - -#: tips:19 -msgid "Polish" -msgstr "Polsk" - -#: tips:20 -msgid "Portuguese (Brasil)" -msgstr "Portugisisk (Braziliansk)" - -#: tips:21 -msgid "Romanian" -msgstr "Rumænsk" - -#: tips:22 -msgid "Russian" -msgstr "Russisk" - -#: tips:23 -msgid "Spanish" -msgstr "Spansk" - -#: tips:24 -msgid "Swedish" -msgstr "Svensk" - -#: tips:25 -msgid "Filer windows" -msgstr "'Filer' vinduer" - -#: tips:26 -msgid "Auto-resize filer windows" -msgstr "Tilpas automatisk størrelsen på 'filer' vinduer" - -#: tips:27 -msgid "Never automatically resize" -msgstr "Tilpas aldrig størrelsen automatisk" - -#: tips:28 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Du vil være nødt til at tilpasse størrelsen på vinduer manuelt, enten ved " -"brug af 'Tilpas størrelse på Vindue' i menuen eller ved at dobbelt-klikke på " -"vindue-baggrunden." - -#: tips:29 -msgid "Resize when changing the display style" -msgstr "Ændr størrelsen ved ændring af visnings-stil" - -#: tips:30 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Ved ændring af størrelsen på ikoner eller hvilke detaljer der bliver vist " -"vil vinduet tilpasse sin størrelse automatisk." - -#: tips:31 -msgid "Always resize" -msgstr "Ændr altid størrelse" - -#: tips:32 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Vinduet vil tilpasse sin størrelse hver gang det virker nyttigt (det vil " -"sige, ved skift af mappe eller ændring af visnings-stil)." - -#: tips:33 -msgid "Largest window size:" -msgstr "Største vinduesstørrelse:" - -#: tips:34 -msgid "%" -msgstr "%" - -#: tips:35 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"Den største største, som en procentdel af skærm-størrelsen, som vinduet vil " -"tilpasse sig til." - -#: tips:36 -msgid "Window behaviour" -msgstr "Vindues-opførsel" - -#: tips:37 -msgid "Short titlebar flags" -msgstr "Korte titelbjælke-flag" - -#: tips:38 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Brug enkelte bogstaver i stedet for ord til Skanner-, Alle- og Miniature-" -"indikatorenepå tittelbjælken." - -#: tips:39 -msgid "Unique windows" -msgstr "Unikke vinduer" - -#: tips:40 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Hvis du åbner et vindue med en mappe der allerede bliver vist i et andet " -"vindue, vil denne indstilling tvinge det andet vindue til at lukke." - -#: tips:41 -msgid "New window on button 1" -msgstr "Nyt vindue på knap 1" - -#: tips:42 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Et klik med muse-knap 1 (normal den venstre) åbner en mappe i et nyt vindue " -"med denne indstilling slået til. Et klik med knap 2 (midterste) vil genbruge " -"det nuværende vindue." - -#: tips:43 -msgid "Single-click navigation" -msgstr "Et-kliks navigation" - -#: tips:44 tips:137 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Et klik på et objekt åbner det med denn indstilling slået til. Hold Ctrl " -"nede for at vælge det istedet. Hvis slået fra: Et klik vælger et objekt; " -"dobbelt-klik åbner det." - -#: tips:45 -msgid "Double-click on background resizes" -msgstr "Dobbelt-klik på tilpasser vinduet" - -#: tips:46 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Hvis dette er slået til, vil et dobbelt-klik på vindues-baggrunden tilpasse " -"vinduets størrelse - fuldstændigt som havde man klikket på Automatisk " -"størrelse-tilstands-knappen på værktøjslinjen." - -#: tips:47 -msgid "Sorting" -msgstr "Sortering" - -#: tips:48 -msgid "Directories come first (for sort by name)" -msgstr "Mapper kommer først (sortér efter navn)" - -#: tips:49 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Hvis dette er slået til vil mapper altid vises først i listen, når der " -"sorteresefter navn." - -#: tips:50 -msgid "Capitalised names first (for sort by name)" -msgstr "Navne med stort kommer først (ved sortér efter navn)" - -#: tips:51 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Hvis dette er slået til, vil filnavne der starter med stort, komme før navne " -"der ikke gør." - -#: tips:53 -msgid "Default settings for new windows" -msgstr "Standard-indstilling for nye vinduer" - -#: tips:54 -msgid "Inherit options from source window" -msgstr "Arv indstillinger fra kilde vinduet" - -#: tips:55 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Hvis dette er slået til så bliver visnings-indstillingerne kopieret fra " -"kilde vinduet, hvis muligt; ellers bliver de sat til hvad der er valgt " -"nedenfor." - -#: tips:56 -msgid "View type:" -msgstr "Vis type:" - -#: tips:59 -msgid "Sort by:" -msgstr "Sortér efter:" - -#: tips:61 tips:76 -msgid "Type" -msgstr "Type" - -#: tips:62 -msgid "Date" -msgstr "Dato" - -#: tips:64 -msgid "Show hidden files" -msgstr "Vis skjulte filer" - -#: tips:65 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Hvis dette er slået til så bliver filer hvis navner der starter med et " -"punktum også vist, ellers er de skjult." - -#: tips:66 -msgid "Icon View" -msgstr "Ikon Visning" - -#: tips:67 -msgid "Default size:" -msgstr "Standard størrelse:" - -#: tips:68 -msgid "Huge Icons" -msgstr "Kæmpe Ikoner" - -#: tips:69 tips:245 -msgid "Large Icons" -msgstr "Store Ikoner" - -#: tips:70 tips:244 -msgid "Small Icons" -msgstr "Små Ikoner" - -#: tips:72 -msgid "Default details:" -msgstr "Standard detaljer:" - -#: tips:73 -msgid "No details" -msgstr "Ingen detaljer" - -#: tips:78 -msgid "Automatic small icons:" -msgstr "Automatisk små ikoner:" - -#: tips:79 -msgid "Change at:" -msgstr "Ændre tid:" - -#: tips:81 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Når den automatiske ikon-størrelse er valgt, vil mapper med mange objekter " -"blive vist med små ikoner, og mapper med få objekter blive vist med store " -"ikoner." - -#: tips:82 -msgid "Max width (Large icons):" -msgstr "Største bredde (Store ikoner):" - -#: tips:83 tips:86 -msgid "pixels" -msgstr "billedpunkter" - -#: tips:84 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Tekst der er bredere end dette bliver brudt i to linjer når vist som Store " -"Ikoner. Vist som Kæmpe Ikoner bliver tekstet brudt hvis deb er størrere end " -"50% ad dette." - -#: tips:85 -msgid "(Small Icons):" -msgstr "(Små Ikoner):" - -#: tips:87 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Maksimal bredde for tekst ved siden af et lille ikon." - -#: tips:88 -msgid "Order small icons vertically" -msgstr "" - -#: tips:89 -msgid "" -"If this option is on, then small icons are ordered vertically, not " -"horizontally." -msgstr "" - -#: tips:90 -msgid "Order large icons vertically" -msgstr "" - -#: tips:91 -msgid "" -"If this option is on, then large icons are sorted vertically, not " -"horizontally." -msgstr "" - -#: tips:93 -msgid "Show column headings" -msgstr "Vis kolonne-titler" - -#: tips:94 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Hvis dette er valgt, vil kolonne-titler blive vist under liste-visning." - -#: tips:95 -#, fuzzy -msgid "Show full type" -msgstr "Sortér efter type" - -#: tips:96 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" - -#: tips:97 -msgid "Tools/Minibuffer" -msgstr "Værktøjer/Minibuffer" - -#: tips:98 -msgid "Toolbar" -msgstr "Værktøjslinje" - -#: tips:99 -msgid "Toolbar type:" -msgstr "Værktøjslinje type:" - -#: tips:100 -#, fuzzy -msgid "No toolbar" -msgstr "Værktøjslinje" - -#: tips:101 -msgid "Icons only" -msgstr "Kun ikoner" - -#: tips:102 -msgid "Text under icons" -msgstr "Tekst under ikoner" - -#: tips:103 -msgid "Text beside icons" -msgstr "Tekst ved siden af ikoner" - -#: tips:104 -msgid "Show totals of items" -msgstr "Vis totaler af objekter" - -#: tips:105 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Vis antallet af objekter vist i 'filer' vinduet, sammen med antallet af " -"skjulte objekter (hvis nogen). Når noget er valgt vises antallet af valgte " -"objekter og deres sammenlagte størrelse." - -#: tips:106 -msgid "Select the buttons you want on the bar:" -msgstr "Vælg hvilke knapper du ønsker at have på bjælken:" - -#: tips:107 -msgid "Width of toolbar sets minimum width of window" -msgstr "" -"Bredden på værktøjsbjælken sætter den mindst mulige størrelse af vinduet" - -#: tips:108 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Hver 'filer'-vindue bliver tvunget til at være stort nok til at kunne vise " -"hele værktøjsbjælken." - -#: tips:109 -msgid "Minibuffer" -msgstr "Minibuffer" - -#: tips:110 -msgid "Beep if Tab-completion fails" -msgstr "Bip hvis Tab-fuldførelse slå fejl" - -#: tips:111 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Under brug af 'Skriv Sti..' minibufferen og Tab bliver trykket bliver der " -"bippet vis intet sker (f.eks. fordi der er flere muligheder og det næste " -"bogstavet varierer)." - -#: tips:112 -msgid "Beep if there are several matches" -msgstr "Bip hvis der er flere muligheder" - -#: tips:113 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Under brug af 'Skriv Sti...' minibufferen og Tab bliver trykket bliver der " -"bippet hvis der er mere end en matchende fil, også selvom der er blevet " -"tilføjet flere bogstaver." - -#: tips:116 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Når miniature er slået til, vil hver billede-fil i en mappe blive læst og en " -"lille miniature-udgave af billedet vil blive vist i stedet for det normale " -"ikon." - -#: tips:117 -msgid "Show image thumbnails" -msgstr "Vis thumbnails af billeder" - -#: tips:118 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Dette er standard-indstillingen for nye vinduer. Brug Vis-menuen til at slå " -"miniature fra og til for individuelle vinduer." - -#: tips:119 -#, fuzzy -msgid "Video thumbnails" -msgstr "Gem thumbnails" - -#: tips:120 -msgid "Thumbnails cache" -msgstr "Miniature mellemlager" - -#: tips:121 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"For at gøre det hurtigere, bliver genererede miniature gemt i den skjulte " -"mappe ~/.thumbnails. Klik her for at fjerne alle de mellemlagrede miniature. " -"De vil blive skabt igen når de skal bruges." - -#: tips:122 tips:195 -msgid "Pinboard" -msgstr "Opslagstavle" - -#: tips:123 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Når opslagstavlen er i brug kan du trække filer og programmer hen på " -"skrivebords-baggrunden for at skabe genveje til dem." - -#: tips:124 tips:241 -msgid "Appearance" -msgstr "Udseende" - -#: tips:125 -msgid "Foreground:" -msgstr "Forgrund:" - -#: tips:126 -msgid "Text shadow:" -msgstr "Tekst-skygge:" - -#: tips:127 -msgid "Background:" -msgstr "Baggrund:" - -#: tips:128 -#, fuzzy -msgid "No shadow" -msgstr "Tekst-skygge:" - -#: tips:129 -msgid "Thin" -msgstr "Tynd" - -#: tips:130 -msgid "Thick" -msgstr "Tyk" - -#: tips:131 -msgid "Use custom font:" -msgstr "Brug udvalgt skrifttype:" - -#: tips:132 -msgid "The font used for the text displayed under the icons" -msgstr "Skrifttypen der bliver brugt til teksten vist under ikonerne" - -#: tips:133 -msgid "Fast scaling of images" -msgstr "" - -#: tips:134 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" - -#: tips:135 -msgid "Pinboard behaviour" -msgstr "Opslagstavlens opførsel" - -#: tips:136 -msgid "Single-click to open" -msgstr "Et-klik for at åbne" - -#: tips:138 -msgid "Keep icons within screen limits" -msgstr "Hold ikoner indenfor skærm-arealet" - -#: tips:139 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Hvis dette er på bliver ikoner på opslagstavlen altid holdt fuldstændig " -"indenfor skærmens areal, også titlen." - -#: tips:140 -msgid "Icon grid step:" -msgstr "Ikon gitter-finhed:" - -#: tips:141 -msgid "Fine" -msgstr "Fin" - -#: tips:142 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Bruger et 2-pixel gitter til at placere ikoner på desktoppen." - -#: tips:143 -msgid "Medium" -msgstr "Medium" - -#: tips:144 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Bruger et 16-pixel gitter til at placere ikoner på desktoppen." - -#: tips:145 -msgid "Coarse" -msgstr "Groft" - -#: tips:146 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Bruger et 32-pixel gitter til at placere ikoner på desktoppen." - -#: tips:147 tips:149 -msgid "Iconified windows" -msgstr "Skjulte vinduer" - -#: tips:148 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"De fleste vindues-håndterere indeholder en mulighed for at skjule (eller " -"'minimere') vinduer, og diverse programmer, der i blandt ROX-Filer, kan " -"bruges til at vise disse skjulte vinduer." - -#: tips:150 -msgid "Show iconified windows" -msgstr "Vis skjulte vinduer" - -#: tips:151 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Hvis denne mulighed er slået til, vil 'fileren' vise skjulte vinduer som små " -"knapper på opslagstavlen. Dette kræver en kompatibel vindues-håndtering, og " -"at opslagstavlen er i brug." - -#: tips:152 -msgid "Show per workspace" -msgstr "" - -#: tips:153 -#, fuzzy -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Hvis denne mulighed er slået til, vil 'fileren' vise skjulte vinduer som små " -"knapper på opslagstavlen. Dette kræver en kompatibel vindues-håndtering, og " -"at opslagstavlen er i brug." - -#: tips:154 -msgid "Iconify to the" -msgstr "Vis skjulte vinduer" - -#: tips:155 -msgid "top-left" -msgstr "øverst til venstre" - -#: tips:156 -msgid "top-right" -msgstr "øverst til højre" - -#: tips:157 -msgid "bottom-left" -msgstr "nederst til venstre" - -#: tips:158 -msgid "bottom-right" -msgstr "nederst til højre" - -#: tips:159 -msgid ", going" -msgstr " på en" - -#: tips:160 -msgid "horizontally" -msgstr "vandret linje" - -#: tips:161 -msgid "vertically" -msgstr "lodret linje" - -#: tips:162 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"Nogle gange kender 'fileren' ikke til hvad du har på skrivebordet, og kan " -"finde på at lægge skjulte vinduer nedenunder (f.eks.) Gnome-panelet. Du kan " -"definere en top og/eller bund margen for at undgå at ikonerne bliver " -"placeret dér. 'Fileren' kender allerede til sine egne paneler." - -#: tips:163 -msgid "Top margin" -msgstr "Top-margen" - -#: tips:164 -msgid "Height of no-go area at top of screen." -msgstr "Højden på arealet, der ikke skal benyttes, i toppen af skærmen-" - -#: tips:165 -msgid "Bottom margin" -msgstr "Bund-margen" - -#: tips:166 -msgid "Height of no-go area at bottom of screen." -msgstr "Højden på arealet, der ikke skal benyttes, i bunden af skærmen-" - -#: tips:167 -msgid "Panels" -msgstr "Paneler" - -#: tips:168 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Paneler er rækker af ikoner der løber langs siden af skærmen. Se manualen " -"for mere information omkring paneler og deres brug." - -#: tips:169 -msgid "Panel style" -msgstr "Panel-stil" - -#: tips:170 -msgid "Image and text" -msgstr "Billeder og tekst" - -#: tips:171 -msgid "Every panel icon is shown with an image and some text." -msgstr "Ethvert panel-ikon bliver vist med et billede og noget tekst." - -#: tips:172 -msgid "Image only for applications" -msgstr "Kun billeder for programmer" - -#: tips:173 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "Programmer har kun et billede, alt andet har både et billede og tekst." - -#: tips:174 -msgid "Image only" -msgstr "Kun billede" - -#: tips:175 -msgid "Only the image is shown." -msgstr "Kun billedet bliver vist" - -#: tips:176 -msgid "Panel width (thin)" -msgstr "Panel-tykkelse (tynd)" - -#: tips:177 -msgid "(thick)" -msgstr "(tyk)" - -#: tips:178 -msgid "The size of the panels." -msgstr "Størrelsen af paneler." - -#: tips:179 -msgid "Do not cover panel" -msgstr "Dæk ikke paneler" - -#: tips:180 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" -"Bed vindues-håndteringen om ikke at dække paneler, når den maksimerer et " -"vindue. Nogle vindues-håndterere overholder muligvis ikke dette. Hvis det " -"ikke slået til, vil 'fileren' bede om at få holdt blot et par billedpunkter " -"frie, i kanten af skærmen, så auto-hævning virker." - -#: tips:181 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:182 -msgid "Confine to Xinerama monitor" -msgstr "Begræns til Xinerama-skærm" - -#: tips:183 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" -"Hvis du har en Xinerama flerskærms-opsætning, kan du slå dette til for at " -"begrænse paneler til én skærm, i stedet for at bredde sig over flere." - -#: tips:184 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "" -"Den skærm som paneler begrænser sig til i Xinerama-tilstand (nummereret fra " -"0)" - -#: tips:185 -msgid "Desktop" -msgstr "" - -#: tips:186 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" - -#: tips:187 -#, fuzzy -msgid "Panel only" -msgstr "Kun billede" - -#: tips:188 -#, fuzzy -msgid "Only a panel is shown." -msgstr "Kun billedet bliver vist" - -#: tips:189 -#, fuzzy -msgid "Pinboard only" -msgstr "Opslagstavle" - -#: tips:190 -#, fuzzy -msgid "Only the pinboard is shown." -msgstr "Kun billedet bliver vist" - -#: tips:191 -#, fuzzy -msgid "Panel and pinboard" -msgstr "Opslagstavle" - -#: tips:192 -msgid "Both a panel and a pinboard are shown." -msgstr "" - -#: tips:193 -#, fuzzy -msgid "Panel" -msgstr "Paneler" - -#: tips:194 -msgid "Enter the name of the panel to show here." -msgstr "" - -#: tips:196 -msgid "Enter the name of the pinboard to show here." -msgstr "" - -#: tips:197 -msgid "Changes here take effect the next time the filer is run." -msgstr "" - -#: tips:198 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" - -#: tips:199 -msgid "Action windows" -msgstr "Handlings vinduer" - -#: tips:200 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Handlings vinduer dukker op når du starter en baggrunds-\n" -"handling, som f.eks. at kopiere eller slette nogle filer." - -#: tips:201 -msgid "Auto-start (Quiet) these actions" -msgstr "Auto-start (Stille) disse handlinger" - -#: tips:203 -msgid "Copy files without confirming first." -msgstr "Kopier filer uden at spørge igen først." - -#: tips:205 -msgid "Move files without confirming first." -msgstr "Flyt filer uden at spørge igen først." - -#: tips:207 -msgid "Create links to files without confirming first." -msgstr "Lav lænker til filer uden at spørge først." - -#: tips:209 -msgid "Delete files without confirming first." -msgstr "Slet filer uden at spørge igen først." - -#: tips:210 -msgid "Mount" -msgstr "Montér" - -#: tips:211 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Montér og afmontér filsystemer uden at spørge først." - -#: tips:212 -msgid "Default settings" -msgstr "Standard-indstillinger" - -#: tips:214 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Spørg ikke igen omkring sletning af ikke-skrivbare objekter." - -#: tips:216 -msgid "Don't display so much information in the message area." -msgstr "Vis ikke så meget information i besked området." - -#: tips:218 -msgid "Also change contents of subdirectories." -msgstr "Indholdet af undermapper skal også ændres." - -#: tips:221 -msgid "Drag and Drop" -msgstr "Træk og Slip" - -#: tips:222 -msgid "Dragging to icons" -msgstr "Træk til ikoner" - -#: tips:223 -msgid "Allow dragging to icons in filer windows" -msgstr "Tillad træk til ikoner i 'filer' vinduer" - -#: tips:224 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Når dette er slået til kan du trække en fil over en undermappe eller program " -"i et vindue. Objektet vil blive markeret nå du gør dette, og et slip af " -"filen vil putte den i den mappe, eller hente det ind i programmet." - -#: tips:225 -msgid "Directories spring open" -msgstr "Mapper springer åbne" - -#: tips:226 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Denne indstilling, som kræver indstillingen ovenover slået til, får den " -"markerede mappe til at 'springe' åben efter at filen har været holdt over " -"den i et kort stykke tid." - -#: tips:227 -msgid "Spring delay:" -msgstr "Spring forsinkelse:" - -#: tips:228 -msgid "ms" -msgstr "ms" - -#: tips:229 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Denne indstilling justerer hvor lang tid, i millisekunder, du skal holde en " -"en fil over en mappe før den springer åben. Indstillingen ovenover skal slås " -"til før denne har nogen effekt." - -#: tips:230 -msgid "When dragging files with the left mouse button" -msgstr "Når man trækker filer med venstre muse-knap" - -#: tips:231 tips:235 -msgid "Show a menu of possible actions" -msgstr "Vis en menu over mulige handlinger" - -#: tips:232 -msgid "Copy the files" -msgstr "Kopiér filerne" - -#: tips:233 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Bemærk at du stadig kan få menuen frem ved at trække med Alt-knappen holdt " -"nede." - -#: tips:234 -msgid "When dragging files with the middle mouse button" -msgstr "Når man trækker filer med den midterste muse-knap" - -#: tips:236 -msgid "Move the files" -msgstr "Flyt filerne" - -#: tips:237 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Bemærk at du stadig kan få menuen frem ved at trække med venstre museknap, " -"mens du holder Alt-knappen nede." - -#: tips:238 -msgid "Download handler" -msgstr "Hentnings-håndterer" - -#: tips:239 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Når du trækker en fil fra en netlæser, eller anden ekstern kilde, vil dette " -"program blive brugt til at hende den. $1 er den URI som er trukket til " -"'fileren', og den nuværende mappe er destinationen. F.eks.\n" -"xterm -e wget $1" - -#: tips:240 -msgid "Menus" -msgstr "Menuer" - -#: tips:242 -msgid "Size of icons in menus:" -msgstr "Størrelsen af ikonerne i menuen:" - -#: tips:243 -msgid "No Icons" -msgstr "Ingen ikoner" - -#: tips:246 -msgid "Same as current window" -msgstr "Det samme som det nuværende vindue" - -#: tips:247 -msgid "Same as default" -msgstr "Det samme som standard" - -#: tips:248 -msgid "Behaviour" -msgstr "Opførsel" - -#: tips:249 -msgid "File menu on right-click" -msgstr "Fil-menu ved højreklik" - -#: tips:250 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Vis fil-menuen i stedet for hovedmenuen, ved højreklik, hvis der er valgte " -"filer (hovedmenuen bliver vist hvis Control holdes nede)." - -#: tips:251 -msgid "`Xterm Here' program" -msgstr "'Xterm Her' program" - -#: tips:252 -msgid "The program to launch when you choose `Xterm Here' from the menu." -msgstr "Programmet der bliver startet når du vælger 'Xterm Her' fra menuen." - -#: tips:253 -msgid "Keyboard shortcuts" -msgstr "Tastatur-genveje" - -#: tips:255 -msgid "MIME types" -msgstr "MIME-typer" - -#: tips:256 -#, fuzzy -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"'Fileren' bruger et sæt regler til at finde ud af den korrekte MIME type\n" -"for hver normale fil, og vælger derefter et passende ikon til den type. Brug " -"MIME-Redigeringsprogrammet til at ændre reglerne der bliver brugt til " -"atgætte filtypen:\n" -"\n" -"http://rox.sourceforge.net/mime_editor.html" - -#: tips:257 -msgid "Edit MIME rules" -msgstr "" - -#: tips:258 -#, fuzzy -msgid "Themes" -msgstr "Tider" - -#: tips:259 -msgid "Icon theme" -msgstr "Ikon-tema" - -#: tips:260 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Temaer bør placeres i mappen ~/.icons." - -#: tips:261 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Brug 'Definer Ikon...' dialog-boksen til at definere ikonet for hver MIME-" -"type.Bemærk at ikoner der er defineret på denne måde vil blive valgt fremfor " -"det valgte temas ikoner." - -#: tips:262 -msgid "Colours" -msgstr "Farver" - -#: tips:263 -msgid "File type colours" -msgstr "Fil-type farver" - -#: tips:264 -msgid "Colour files based on their types" -msgstr "Farv filer baseret på deres type" - -#: tips:265 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Filnavne (og detaljer) skal farves efter deres fils type." - -#: tips:266 -msgid "Directory:" -msgstr "Mappe:" - -#: tips:267 -msgid "Regular file:" -msgstr "Normal fil:" - -#: tips:268 -msgid "Pipe:" -msgstr "Rør:" - -#: tips:269 -msgid "Socket:" -msgstr "Stik:" - -#: tips:271 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Fejl, som f.eks. en symbolsk lænke der peger mod en ikke-eksisterende fil, " -"eller en fil som der er problemer med at undersøge." - -#: tips:272 -msgid "Character device:" -msgstr "Karakter-enhed:" - -#: tips:273 -msgid "Block device:" -msgstr "Blok-enhed:" - -#: tips:274 -msgid "Door:" -msgstr "Dør:" - -#: tips:275 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Dør-filer er lidt ligesom stik eller rør, og findes (indtil videre) kun " -"under Solaris." - -#: tips:276 -msgid "Executable file:" -msgstr "Udførbar fil:" - -#: tips:277 -msgid "Application directory:" -msgstr "Program-mappe:" - -#: tips:278 -msgid "Unknown type:" -msgstr "Ukendt type:" - -#: tips:279 -msgid "Compatibility" -msgstr "Kompatibilitet" - -#: tips:280 -msgid "Window manager problems" -msgstr "Vindues-håndterings-problemer" - -#: tips:281 -msgid "Override window manager control of the pinboard and panels" -msgstr "Tilsidesæt vindues-behanderens kontrol af opslagstavlen og paneler" - -#: tips:282 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Nogle vindues-håndterere understøtter ikke det nye Udvidede Vindues-" -"Håndterings-Prej-system (Extended Window Manager Hints), og behandler derfor " -"opslagstavlen og paneler som normale vinduer. Slå dette til for at rette " -"problemer, så som at opsalgstavlen kommer forrest, når du klikker på den, " -"tittelbjælker og andre dekorationer på paneler, eller at begge dele er at " -"finde i vindues-listen." - -#: tips:283 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Videresend alle museklik på baggrunden til vindues-håndteringen" - -#: tips:284 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normalt vil et højreklik på skrivebords-baggrunden åbne opslagstavle-menuen, " -"og et venstreklik vil fravælge det valgte på opslagstavlen. Hvis dette er " -"slået til, vil alle klik blive sendt videre til vindues-håndteringen i " -"stedet. Klik på ikoner vil ikke blive videresendt." - -#: tips:285 -msgid "Blackbox root menus hack" -msgstr "Blackbox rod-menu-rettelse" - -#: tips:286 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox, og lignende vindues-håndterere, virker endnu ikke godt " -"sammen med ROX-Filers opslagstavle. Denne valgmulighed aktiverer nogle " -"lapninger for dette. Disse vindues-håndterere forventes at ændre deres " -"opførsel i nyere udgaver, så dette ikke bliver nødvendigt." - -#: tips:287 -msgid "Panel is a 'dock'" -msgstr "Panelet er en 'dok'" - -#: tips:288 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" -"Slå denne funktion fra, hvis du ikke ønsker at paneler ligger ovenover andre " -"vinduer. Dette kræver en genstart af programmet for at virke." - -#: tips:289 -msgid "Drag and drop" -msgstr "Træk og slip" - -#: tips:290 -msgid "Don't use hostnames" -msgstr "Bug ikke værtsnavn" - -#: tips:291 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Nogle ældre programmer understøtter ikke XDND fuldt ud og kan have brug for " -"at denne indstilling er slået til. Slå denne til hvis træk af filer til et " -"program viser et + tegn på muse-pointeren men trækket ikke virker." - -#: tips:292 -msgid "Extended attributes" -msgstr "" - -#: tips:293 -#, fuzzy -msgid "Don't use extended attributes" -msgstr "Bug ikke værtsnavn" - -#: tips:294 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" - -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Fejl under indlæsning af MIME-databasen:\n" -#~ "%s" - -#~ msgid "File '%s' corrupted!" -#~ msgstr "Filen '%s' er korrupt!" - -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "Mapppen ~/.mime ligger ikke længere det rigtige sted. Den bør nu hedde ~/." -#~ "local/share/mime. Du bør flytte den dertil (og lave en symbolsk lænke til " -#~ "~/.mime, så ældre programmer stadig virker)." - -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "Standard MIME-type-databasen (version 0.9 er nyere) blev ikke fundet. " -#~ "Filer vil højst sandsynligt ikke blive vist som havende den rigtige type." -#~ "Du bør hente og installere pakken 'shared-mime-info-0.9' her fra:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "Hvis du allerede har installeret denn pakke, check da om dens " -#~ "indstillinger tillader dig at læse den (check /usr/local/share/mime/globs " -#~ "eller /usr/share/mime/globs)." - -#, fuzzy -#~ msgid "Umount" -#~ msgstr "Afmontér" - -#~ msgid "Icon '%s' not present in theme" -#~ msgstr "Ikonet '%s' findes ikke i temaet" - -#~ msgid "Executable files" -#~ msgstr "Udførbare filer" - -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "Ignorer filer sat til kørbar for kendte fil-typer" - -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Hvis en fil er en kendt fil-type (f.eks. '.gif') så ignoreres " -#~ "kørbarheden. Dette er brugbart hvis du har på et Windows-agtigt filsystem " -#~ "vor alle filer bliver vist some kørbare." - -#~ msgid "All, " -#~ msgstr "Alle, " - -#~ msgid "Info" -#~ msgstr "Info" - -#~ msgid "Symbolic link to %s" -#~ msgstr "Symbolsk genvej til %s" - -#~ msgid "Examine ... ?" -#~ msgstr "Undersøg ... ?" - -#~ msgid "Permissions:" -#~ msgstr "Tilladdelser:" - -#~ msgid "file(1) says..." -#~ msgstr "fil(1) siger..." - -#~ msgid "Help about ... ?" -#~ msgstr "Hjælp omkring ... ?" - -#~ msgid "" -#~ "Executable file:\n" -#~ "This is a file with an eXecute bit set - it can be run as a program." -#~ msgstr "" -#~ "Kørbar fil:\n" -#~ "Dette er en fil sat til at være kørbar - den kan køres som et program." - -#~ msgid "" -#~ "File:\n" -#~ "This is a data file. Try using the Info menu item to find out more..." -#~ msgstr "" -#~ "Fil:\n" -#~ "Dette er en data fil. Prøv at bruge 'Info' i menuen for finde ud af " -#~ "mere... " - -#~ msgid "" -#~ "Mount point:\n" -#~ "A mount point is a directory which another filing system can be mounted " -#~ "on. Everything on the mounted filesystem then appears to be inside the " -#~ "directory." -#~ msgstr "" -#~ "Mount punkt:\n" -#~ "Et mount punkt er en mappe hvor et andet filsystem kan sættes på. Alt på " -#~ "det mountede filsystem optræder derefter som om det er indeni mappen." - -#~ msgid "" -#~ "Device file:\n" -#~ "Device files allow you to read from or write to a device driver as though " -#~ "it was an ordinary file." -#~ msgstr "" -#~ "Device fil:\n" -#~ "Device filer gør at du kan skrive til eller fra en device driver " -#~ "fuldstændig som var det en normal fil." - -#~ msgid "" -#~ "Named pipe:\n" -#~ "Pipes allow different programs to communicate. One program writes data to " -#~ "the pipe while another one reads it out again." -#~ msgstr "" -#~ "Navngivet pipe:\n" -#~ "Pipes gør at forskellige programmer kan kommunikere. Et program skriver " -#~ "data til pipen mens et andet program læser det fra den igen." - -#~ msgid "" -#~ "Socket:\n" -#~ "Sockets allow processes to communicate." -#~ msgstr "" -#~ "Socket:\n" -#~ "Sockets sørger for at processer kan kommunikere." - -#~ msgid "" -#~ "Unknown type:\n" -#~ "I couldn't find out what kind of file this is. Maybe it doesn't exist " -#~ "anymore or you don't have search permission on the directory it's in?" -#~ msgstr "" -#~ "Ukendt type:\n" -#~ "Jeg kunne ikke finde ud af hvilken type fil dette er. Måske findes den " -#~ "ikke mere eller måske har du ikke søge-tilladelser i mappen den ligger i?" - -#~ msgid "" -#~ "Directory:\n" -#~ "This is a directory. It contains an index to other items - open it to see " -#~ "the list." -#~ msgstr "" -#~ "Mappe:\n" -#~ "Dette er en mappe. Den indeholder et index til andre objekter - åben den " -#~ "for at se listen." - -#~ msgid "Menu on button 2 (RISC OS style)" -#~ msgstr "Menu på knap 2 (RISC OS stil)" - -#~ msgid "" -#~ "Use button 2, the middle button (click both buttons at once on two button " -#~ "mice), to pop up the menu. If off, use button 3 (right) instead." -#~ msgstr "" -#~ "Brug knap 2, den midterste knap (klik begge knapper samtidig på to-knaps " -#~ "mus), for at poppe menuen op. Hvis slået fra, brug knap 3 (højre) istedet." - -#~ msgid "Show name-to-type rules" -#~ msgstr "Vis navn-til-type regler" - -#, fuzzy -#~ msgid "DirItem" -#~ msgstr "objekt" - -#, fuzzy -#~ msgid "Background color" -#~ msgstr "Baggrund:" - -#~ msgid "Set Icon" -#~ msgstr "Definer Ikon" - -#~ msgid "You can't use multiple files with Set Icon!" -#~ msgstr "Du kan ikke bruge flere filer med Sæt Ikon!" - -#~ msgid "Name:" -#~ msgstr "Navn:" - -#, fuzzy -#~ msgid "" -#~ "You should drop a single (local) image file onto the drop box - that " -#~ "image will be used for the desktop background. You can also drag certain " -#~ "applications onto this box." -#~ msgstr "" -#~ "Du kan trække en enkel lokal ikon-fil hen på boksen - det ikon vil så " -#~ "blive brugt til denne fil fra nu af" - -#~ msgid "Large" -#~ msgstr "Stor" - -#~ msgid "Small" -#~ msgstr "Lille" - -#~ msgid "" -#~ "You should drop a single (local) application onto the drop box - that " -#~ "application will be used to load files of this type in future" -#~ msgstr "" -#~ "Du kan trække et enkelt (lokal) pogram hen på boksen - det program vil så " -#~ "blive brugt til at åbne filer af denne type for fremtiden" - -#~ msgid "Currently %s" -#~ msgstr "Lige nu %s" - -#~ msgid "Menu of directories previously used for icons" -#~ msgstr "Menu af mapper tidligere brugt til ikoner" - -#~ msgid "Enter the path of an icon file:" -#~ msgstr "Skriv stien til en ikon-fil:" - -#, fuzzy -#~ msgid "_Remove" -#~ msgstr "Fjern" - -#~ msgid "" -#~ "You should drop a single local icon file onto the drop box - that icon " -#~ "will be used for this file from now on." -#~ msgstr "" -#~ "Du kan trække en enkel lokal ikon-fil hen på boksen - det ikon vil så " -#~ "blive brugt til denne fil fra nu af" - -#~ msgid "" -#~ "Enter the full path of a file that contains a valid image to be used as " -#~ "the icon for this file or directory." -#~ msgstr "" -#~ "Skriv den fulde sti til en fil der indeholder et gyldigt billede til brug " -#~ "som ikon for denne fil eller mappe." - -#~ msgid "" -#~ "You have not yet set any special icons; therefore, I have no directories " -#~ "to show you" -#~ msgstr "" -#~ "Du har ikke defineret nogle specielle ikoner; derfor har jeg ingen mapper " -#~ "vise dig" - -#, fuzzy -#~ msgid "Large wrap width:" -#~ msgstr "Stor ombrydnings-bredde" - -#, fuzzy -#~ msgid "Max Small Icons width:" -#~ msgstr "Maks Små Ikoner bredde" - -#, fuzzy -#~ msgid "" -#~ "Quick Start\n" -#~ "Just put the name of the file you're looking for in single quotes:\n" -#~ "'index.html' (to find a file called 'index.html')\n" -#~ msgstr "" -#~ "Bare skriv navnet på filen du leder efter i citations-tegn:\n" -#~ "'index.html'\t(for at finde en fil ved navn 'index.html')" - -#~ msgid "Summary" -#~ msgstr "Oversigt" - -#~ msgid "Large, With..." -#~ msgstr "Store, Med..." - -#~ msgid "Small, With..." -#~ msgstr "Små, Med..." - -#~ msgid "fork: %s" -#~ msgstr "fork: %s" - -#~ msgid "New window, as user..." -#~ msgstr "Nyt vindue, som bruger ... " - -#~ msgid "Browse as which user?" -#~ msgstr "Gennemgå som hvilken bruger?" - -#~ msgid "User:" -#~ msgstr "Bruger:" - -#, fuzzy -#~ msgid "Small Icons if at least:" -#~ msgstr "Maks Små Ikoner bredde" - -#~ msgid "Single-click navigation in filer windows" -#~ msgstr "Et-kliks navigation i 'filer' vinduer" - -#, fuzzy -#~ msgid "Details:" -#~ msgstr "Detaljer" - -#~ msgid "" -#~ "Load every image file and display it, scaled-down, in the filer window " -#~ "instead of the normal icon." -#~ msgstr "" -#~ "Læs hvert billede-fil og vis den, i lille format, i vinduet istedet for " -#~ "et normalt ikon." - -#, fuzzy -#~ msgid "Toolbar buttons" -#~ msgstr "Værktøjslinje type" - -#, fuzzy -#~ msgid "Unshade the tools you want." -#~ msgstr "Vælg de værktøjer du vil have ved at gøre dem klare:" - -#, fuzzy -#~ msgid "Toolbar appearance" -#~ msgstr "Værktøjslinje type" - -#, fuzzy -#~ msgid "General" -#~ msgstr "Tysk" - -#~ msgid "Quick Start" -#~ msgstr "Hurtig Start" - -#~ msgid "Examples" -#~ msgstr "Eksempler" - -#~ msgid "" -#~ "'*.htm', '*.html' (finds HTML files)\n" -#~ "IsDir 'lib' (finds directories called 'lib')\n" -#~ "IsReg 'core' (finds a regular file called 'core')\n" -#~ "! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -#~ "mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -#~ "'CVS' prune, isreg (a regular file not in CVS)\n" -#~ "IsReg system(grep -q fred \"%\") (contains the word 'fred')" -#~ msgstr "" -#~ "'*.htm', '*.html' (finder HTML filer)\n" -#~ "ErMappe 'lib' (finder mapper kaldt 'lib')\n" -#~ "ErNorm 'core' (finder en normal fil kaldt 'core')\n" -#~ "! (ErMappe, ErNorm) (er hverken en mappe eller en normal fil)\n" -#~ "mtime efter 1 dag siden og størrelse > 1Mb (stor, og ændret for nyligt)\n" -#~ "'CVS' beskær, ernorm (en normal fil der ikke er i " -#~ "CVS)\n" -#~ "ErNorm system(grep -q fred \"%\") (indeholder ordet 'fred')" - -#~ msgid "Simple Tests" -#~ msgstr "Simple Tests" - -#, fuzzy -#~ msgid "" -#~ "IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor " -#~ "(types)\n" -#~ "IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -#~ "(permissions)\n" -#~ "IsEmpty, IsMine\n" -#~ "\n" -#~ "A pattern in single quotes is a shell-style wildcard pattern to match. If " -#~ "it\n" -#~ "contains a slash then the match is against the full path; otherwise it " -#~ "is \n" -#~ "against the leafname only." -#~ msgstr "" -#~ "ErNorm, ErGenvej, ErMappe, ErChar, ErBlock, ErDev, ErPipe, ErSocket " -#~ "(typer)\n" -#~ "ErSUID, ErSGID, ErKlæbrig, ErLæsbar, ErSkrivbar, ErUdførbar " -#~ "(permissions)\n" -#~ "ErTom, ErMin\n" -#~ "\n" -#~ "Et mønster i enkelte citations-tegn søges som et shell-stil wildcard " -#~ "mønster.\n" -#~ "Hvis det indeholder en skråstreg så matches der mod den fulde sti; hvis " -#~ "ikke\n" -#~ "matches der kun mod filnavnet." - -#~ msgid "Comparisons" -#~ msgstr "Sammenligninger" - -#~ msgid "" -#~ "<, <=, =, !=, >, >=, After, Before (compare two values)\n" -#~ "5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -#~ "2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -#~ "atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (values)" -#~ msgstr "" -#~ "<, <=, =, !=, >, >=, Efter, Før (sammenlign to værdier)\n" -#~ "5 byte, 1Kb, 2Mb, 3Gb (fil størrelser)\n" -#~ "2 sekunder|minutter|timer|dage|uger|år siden|om (tider)\n" -#~ "atime, ctime, mtime, nu, størrelse, inode, ngenvej, uid, gid, blokke " -#~ "(værdier)" - -#~ msgid "Specials" -#~ msgstr "Specielle" - -#~ msgid "" -#~ "system(command) (true if 'command' returns with a zero exit status; a % \n" -#~ "in 'command' is replaced with the path of the current file)\n" -#~ "prune (false, and prevents searching the contents of a directory)." -#~ msgstr "" -#~ "system(kommando) (sandt hvis 'kommando' returnerer med en slut-status på " -#~ "0; en % \n" -#~ "i 'kommando' bliver erstattet med stien til den valgte fil)\n" -#~ "beskær (falsk, og forebygger søgning i indeholdet af en mappe)." - -#~ msgid "Permissions command reference" -#~ msgstr "Tilladdelser kommando referencer" - -#, fuzzy -#~ msgid "File Information" -#~ msgstr "ROX-Filer indstillinger" - -#~ msgid "Remove" -#~ msgstr "Fjern" - -#, fuzzy -#~ msgid "Intelligent sorting" -#~ msgstr "Ignorer store og små bogstaver under sortering" - -#~ msgid "Unknown error" -#~ msgstr "Ukendt fejl" - -#~ msgid "Show ROX-Filer Help" -#~ msgstr "Vis ROX-Filer Hjælp" - -#~ msgid "The label must contain at least one character!" -#~ msgstr "Title skal indeholde i hvertfald et tegn!" - -#, fuzzy -#~ msgid "_OK" -#~ msgstr "OK" - -#~ msgid "Another application is already managing the pinboard!" -#~ msgstr "Et andet program kontrollerer allerede opslagstavlen!" - -#~ msgid "Missing MIME-type" -#~ msgstr "Mangler MIME-type" - -#~ msgid "Trailing chars after MIME-type" -#~ msgstr "Eftefølgende tegn efter MIME-typen" - -#~ msgid "" -#~ "The pinboard is the desktop background.\n" -#~ "When the pinboard is turned on, you can drag files\n" -#~ "and applications onto it to create short-cuts to them.\n" -#~ "See the manual for information about using the pinboard." -#~ msgstr "" -#~ "Opslagstavlen er desktoppens baggrund.\n" -#~ "Når opslagstavlen er slået til kan du trække filer\n" -#~ "og programmer ind på den for at oprette genveje til dem.\n" -#~ "Opslagstavlen er også kendt fra andre systemer under navne som Skrivebord " -#~ "og Arbejdsbænk\n" -#~ "Se manualen for mere information om brug af opslagstavlen." - -#, fuzzy -#~ msgid "Text style" -#~ msgstr "Tekst stil:" - -#~ msgid "Abort" -#~ msgstr "Afbryd" - -#~ msgid "Can't allocate memory for buffer to load this file" -#~ msgstr "Kan ikke allokere hukommelse til bufferen til at læse denne fil" - -#~ msgid "Old VFS support" -#~ msgstr "Gammel VFS understøttelse" - -#~ msgid "No (incompatible with Large File Support)" -#~ msgstr "Nej (inkompatibel med Understøttelse af Store Filer)" - -#~ msgid "No (couldn't find a valid libvfs)" -#~ msgstr "Nej (kunne ikke finde en gyldig libvfs)" - -#~ msgid "Gtk+-2.0 support" -#~ msgstr "Gtk+-2.0 understøttelse" - -#~ msgid "No (using Gtk+-1.2 instead)" -#~ msgstr "Nej (bruger Gtk+-1.2 istedet)" - -#~ msgid "Yes (using Gtk+-2.0)" -#~ msgstr "Ja (bruger Gtk+-2.0)" - -#~ msgid "Yes (using libpng)" -#~ msgstr "Ja (bruger libpng)" - -#~ msgid "No (needs libpng or Gtk+-2.0)" -#~ msgstr "Nej (kræver libpng eller Gtk+-2.0)" - -#~ msgid "Character set translations" -#~ msgstr "Tegnsæt oversættelser" - -#~ msgid "No (needs libiconv or Gtk+-2.0)" -#~ msgstr "Nej (jræver libiconv eller Gtk+-2.0)" - -#~ msgid "Open VFS" -#~ msgstr "Åben med VFS" - -#~ msgid "Unzip" -#~ msgstr "Unzip" - -#~ msgid "Untar" -#~ msgstr "Untar" - -#~ msgid "Deb" -#~ msgstr "Deb" - -#~ msgid "RPM" -#~ msgstr "RPM" - -#~ msgid "New Directory" -#~ msgstr "Ny Mappe" - -#~ msgid "New File" -#~ msgstr "Ny Fil" - -#~ msgid "Copy error" -#~ msgstr "Kopi fejl" - -#~ msgid "" -#~ "If off: Ben, animal, zoo.\n" -#~ "If on: animal, Ben, zoo." -#~ msgstr "" -#~ "Hvis fra: Bøffel, and, zebra.\n" -#~ "Hvis til: and, Bøffel, zebra." - -#~ msgid "No background" -#~ msgstr "Ingen baggrund" - -#~ msgid "The text is drawn directly on the desktop background." -#~ msgstr "Teksten bliver tegnet direkte på desktoppens baggrund." - -#~ msgid "Outlined text" -#~ msgstr "Omridset tekst" - -#~ msgid "The text has a thin outline around each letter." -#~ msgstr "Teksten har et tyndt omrids omkring hvert bogstav." - -#~ msgid "Rectangular background slab" -#~ msgstr "Firkantet baggrunds box" - -#~ msgid "The text is drawn on a solid rectangle." -#~ msgstr "Teksten bliver tegnet på en firkant" - -#~ msgid "...never" -#~ msgstr "... aldrig" - -#~ msgid "...always" -#~ msgstr "...altid" - -#~ msgid "Window size limit" -#~ msgstr "Vindues-størrelse grænse" - -#~ msgid "Error" -#~ msgstr "Fejl" - -#~ msgid "!ERROR: %s\n" -#~ msgstr "!FEJL: %s\n" - -#~ msgid "Force - don't confirm deletion of non-writeable items" -#~ msgstr "Tving - bekræft ikke sletning af ikke-skrivbare objekter" - -#~ msgid "Recurse - also change contents of subdirectories" -#~ msgstr "Recursivt - under-mappers indhold ændres også" - -#~ msgid "fork() failed" -#~ msgstr "fork() mislykkedes" - -#~ msgid "Sorry, but the name must not contain < or >" -#~ msgstr "Desværre, men navnet må hverken indeholde < eller >" - -#~ msgid "You must select a single file to open as a Virtual File System" -#~ msgstr "Du må kun vælge en fil som skal åbnes som et Virtuelt Fil System" - -#~ msgid "Failed to fork() child process" -#~ msgstr "fork() af børne-process mislykkedes" - -#~ msgid "Notice" -#~ msgstr "Bemærk" - -#~ msgid "" -#~ "Restart\n" -#~ "Applet" -#~ msgstr "" -#~ "Genstart\n" -#~ "Applet" - -#~ msgid "Device file" -#~ msgstr "Device fil" - -#~ msgid "Named pipe" -#~ msgstr "Navngivet pipe" - -#~ msgid "Application" -#~ msgstr "Program" - -#~ msgid "Copy failed" -#~ msgstr "Kopiering mislykkedes" - -#~ msgid "Error saving globicons" -#~ msgstr "Fejl under gemning af globicons" - -#~ msgid "From LANG" -#~ msgstr "Fra LANG" - -#~ msgid "Error (eg. orphan symlink)" -#~ msgstr "Fejl (f.eks. efterladt symbolsk genvej)" diff --git a/ROX-Filer/src/po/de.po b/ROX-Filer/src/po/de.po deleted file mode 100644 index a67dd8aa..00000000 --- a/ROX-Filer/src/po/de.po +++ /dev/null @@ -1,4784 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: 2005-07-31 22:36+0100\n" -"Last-Translator: Guido Schimmels <__guido__@web.de>\n" -"Language-Team: ROX Mailing List \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: German\n" -"X-Poedit-Country: GERMANY\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Still" - -#: abox.c:228 -msgid "Quiet" -msgstr "Still" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Nicht jede Operation bestätigen" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Name" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Verzeichnis" - -#: abox.c:550 -msgid "Expression:" -msgstr "Ausdruck:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "Siehe die Handbuchseite attr(5) für Einzelheiten." - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "Siehe die Handbuchseite fsattr(5) für Einzelheiten." - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "Das Betriebssystem scheint dies nicht zu unterstützen." - -#: action.c:188 -msgid "Find expression reference" -msgstr "Hilfe zur Suchfunktion" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Kurze Einführung\n" -"Setzen Sie den Namen der gesuchten Datei in einfache Anführungszeichen:\n" -"'index.html' (um die Datei 'index.html' zu finden)\n" -"\n" -"Beispiele\n" -"'*.htm', '*.html' (findet HTML-Dateien)\n" -"IsDir 'lib' (findet 'lib'-Verzeichnisse)\n" -"IsReg 'core' (findet reguläre Dateien 'core')\n" -"! (IsDir, IsReg) (ist weder ein Verzeichnis noch eine reguläre " -"Datei)\n" -"mtime after 1 day ago and size > 1Mb (groß und vor kurzem " -"bearbeitet)\n" -"'CVS' prune, isreg (eine reguläre Datei nicht im CVS)\n" -"IsReg system(grep -q fred \"%\") (enthält das Wort 'fred')\n" -"\n" -"Einfache Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (Typen)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(Zugriffsrechte)\n" -"IsEmpty, IsMine\n" -"Ein Muster in einfacher Anführung wird gemäß der Shellsyntax verarbeitet. " -"Wenn es\n" -"einen Schrägstrich enthält, dann wird mit dem vollen Pfad verglichen, sonst " -"nur\n" -"gegen den Dateinamen.\n" -"\n" -"Vergleiche\n" -"<, <=, =, !=, >, >=, After, Before (zwei Werte " -"vergleichen)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (Dateigrößen)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (Zeiten)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(Werte)\n" -"\n" -"Spezialitäten\n" -"system(Befehl) (wahr, wenn 'Befehl' Null zurückgibt;\n" -"ein % in 'Befehl' wird ersetzt mit dem Pfad der aktuellen Datei)\n" -"prune (falsch, und verhindert das Durchsuchen von Verzeichnissen)." - -#: action.c:246 -msgid "Change permissions reference" -msgstr "Hilfe zum Ändern der Zugriffsrechte" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalerweise wählen Sie einfach einen Befehl aus dem Menü (Klick \n" -"auf den Pfeil neben dem Kommando-Feld). In speziellen Fällen wollen Sie " -"mehr...\n" -"\n" -"Das Befehlsformat ist: ÄNDERUNG, ÄNDERUNG, ...\n" -"Jede ÄNDERUNG ist: WER WIE RECHTE\n" -"WER ist eine Kombination aus u, g und o, die " -"angibt, ob die Rechte für den\n" -"Besitzer (User), die Gruppe (Group) oder alle anderen (Others) geändert " -"werden sollen.\n" -"WIE ist +, - oder =, zum hinzufügen, entfernen " -"oder exakten setzen der Rechte.\n" -"RECHTE ist eine Kombination aus den Buchstaben rwxXstugo\n" -"\n" -"Geklammerter Text und Leerstellen werden ignoriert.\n" -"\n" -"Beispiele:\n" -"\n" -"u+rw: der Besitzer der Datei bekommt Lese- und Schreibrecht\n" -"g=u: die Gruppenrechte werden an die Besitzerrechte angeglichen\n" -"o=u-w: die Anderen bekommen dieselben Rechte wie der Besitzer, außer " -"das Schreibrecht\n" -"a+x: alle bekommen das Recht zum Ausführen - entspricht ugo+x\n" -"a+X: Verzeichnisse werden für jeden zugreifbar; Dateien, die für alle " -"ausführbar waren,\n" -"werden für alle ausführbar)\n" -"u+rw, go+r: zwei Kommandos auf einmal!\n" -"u+s: setze das SetUID-Bit - hat oft keinen Effekt bei Script-Dateien\n" -"755: setze die Zugriffsrechte direkt\n" -"\n" -"Lesen Sie die chmod(1) Manpage für weitere Informationen." - -#: action.c:298 -msgid "Set type reference" -msgstr "Typreferenz zuordnen" - -#: action.c:309 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalerweise ermittelt ROX-Filer then Dateityp\n" -"über den Dateinamen. Um den Dateityp zu ändern,muss die Datei umbenannt " -"werden.\n" -"\n" -"Neuere Dateisysteme unterstützen sogenannte 'Erweiterte\n" -"Attribute', die zum Speichern zusätzlicher Angaben zu einer\n" -"Datei genutzt werden können. ROX-Filer benutzt das\n" -"Attribut 'user.mime_type', um Dateitypen zu speichern.\n" -"\n" -"Dateitypen werden nur unterstützt für normale Dateien, nicht\n" -"für Verzeichnisse, Geräte, Pipes oder Sockets, und dann\n" -"auch nur für bestimmte Dateisysteme und Betriebssysteme.\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Prozess beendet..\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Es gab genau einen Fehler.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Es gab %d Fehler.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "FEHLER beim Lesen" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Fertig\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "FEHLER" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Ja" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Nein" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Fordere Kindprozess auf, sich zu beenden...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Versuche KILL auf Wildläuferprozess ...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Inhalt von %s zählen?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?%s'%s' löschen?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "SCHREIBGESCHÜTZT" - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "Lösche '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Verzeichnis '%s' gelöscht\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?'%s auswerfen'?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'%s' auswerfen\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"Einhängen fehlgeschlagen\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?'%s' prüfen?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Ungültiges Suchmuster - ändern Sie es und versuchen Sie es erneut\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(beim prüfen von '%s')\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Zugriffsrechte für '%s' ändern?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Ändere Zugriffsrechte für '%s'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Ungültiger Befehl - ändern Sie es und versuchen Sie es nocheinmal\n" - -#: action.c:1207 action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Typ von '%s' ändern?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!Ungültiger Typ - ändern Sie ihn und versuchen es erneut\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Typ ändern von '%s' zu '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' existiert bereits - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "Inhalte zusammenführen" - -#: action.c:1328 -msgid "overwrite" -msgstr "überschreiben" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Versuche trotzdem zu kopieren...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?%s nach %s kopieren?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Kopiere %s nach %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!FEHLER: Das Ziel existiert bereits, ist aber kein Verzeichnis\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Kopieren von '%s' fehlgeschlagen\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' existiert bereits - überschreiben?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Versuche trotzdem zu verschieben...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?%s nach %s verschieben?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Verschiebe %s nach %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Kann %s nicht nach %s verschieben\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!FEHLER: Kopieren eines Objekts auf sich selbst nicht möglich\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!FEHLER: Verschieben eines Objekts auf sich selbst nicht möglich\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Erstelle Verknüpfung von %s nach %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Verknüpfung von %s nach %s erstellen?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Hänge %s ein\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Hänge %s aus\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?%s einhängen?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?%s aushängen?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Einhängen fehlgeschlagen\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Aushängen fehlgeschlagen\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(scheint bereits eingehängt zu sein)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Gesamt: %s (" - -#: action.c:1704 -msgid "file" -msgstr "Datei" - -#: action.c:1704 -msgid "files" -msgstr "Dateien" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "keine Verzeichnisse)\n" - -#: action.c:1712 -msgid "directory" -msgstr "Verzeichnis" - -#: action.c:1713 -msgid "directories" -msgstr "Verzeichnisse" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Kein Mount-Punkt angewählt!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Weitere Suche?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' ist eine Verknüpfung\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Bitte wählen Sie erst einige zu durchsuchende Verzeichnisse aus" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Suchen" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Bitte wählen Sie erst einige zu zählende Einträge aus" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Speicherverbrauch" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Einhängen / Aushängen" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "" -"ROX-Filer unterstützt noch keine Mount-Punkte auf Ihrem System. " -"'tschuldigung." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Löschen" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Erzwingen" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Löschen von nicht-schreibbaren Einträgen nicht bestätigen" - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Knapp" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Nur gelöschte Verzeichnisse auflisten" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "" -"Bitte wählen Sie erst einige Einträge aus, deren Zugriffsrechte Sie ändern " -"wollen" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Mache ausführbar/durchsuchbar)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Mache nicht-ausführbar/nicht-durchsuchbar)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Gib Besitzer Lese+Schreib-Rechte)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privat - Zugriff nur für Besitzer)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Öffentlicher Zugriff ohne Schreiben)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Zugriffsrechte" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Bearbeitete Dateien nicht auflisten" - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Rekursiv" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Auch den Inhalt von Unterverzeichnissen ändern" - -#: action.c:2123 -msgid "Command:" -msgstr "Befehl:" - -#: action.c:2151 -msgid "You need to select the items whose type you want to change" -msgstr "Bitte wählen Sie erst die Dateien aus, deren Typ Sie ändern wollen" - -#: action.c:2164 -msgid "Set type" -msgstr "Typ zuordnen" - -#: action.c:2178 -msgid "Change contents of subdirectories" -msgstr "Inhalt von Unterverzeichnissen ändern" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Typ:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopieren" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Neuere" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Dateien dürfen nur von neuerer Version überschrieben werden." - -#: action.c:2228 -msgid "Only log directories as they are copied" -msgstr "Nur Verzeichnisse beim Kopieren listen" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Verschieben" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "Dateien beim Verschieben nicht einzeln listen" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Verknüpfen" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "Auswerfen" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Lösche Einträge wie " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Lösche den Eintrag " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Lösche die Einträge " - -#: action.c:2385 -msgid " and " -msgstr " und " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " betrifft Datei auf Pinwand oder Leiste - trotzdem löschen? " - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " betrifft Dateien auf Pinwand oder Leiste - trotzdem löschen?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Erstelle Verknüpfungen zu den gewünschten Programmen in diesem Verzeichnis. " -"Diese erscheinen im Menü für diesen Typ (%s/%s)." - -#: appmenu.c:339 menu.c:234 -msgid "Customise Menu..." -msgstr "Menü anpassen..." - -#: appmenu.c:396 menu.c:251 toolbar.c:159 -msgid "Help" -msgstr "Hilfe" - -#: bookmarks.c:147 -msgid "Path" -msgstr "Pfad" - -#: bookmarks.c:155 -msgid "Title" -msgstr "Title" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Lesezeichen für Netzwerkresource '%s' nicht anlegbar\n" - -#: bookmarks.c:312 bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' ist kein Verzeichnis" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Kein Lesezeichen markiert" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Zum Verschieben, Cursor auf gewünschtes Lesezeichen setzen" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Das Ende der Liste ist schon erreicht" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Lesezeichen für Netzwerkverzeichnisse wie '%s' nicht anlegbar" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Lesezeichen anlegen" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Lesezeichen bearbeiten" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "Zuletzt besucht" - -#: bulk_rename.c:68 -msgid "Bulk rename files" -msgstr "Massenhafte Dateiumbenennung" - -#: bulk_rename.c:71 -msgid "Reset" -msgstr "Rückgängig" - -#: bulk_rename.c:76 -msgid "Make the New column a copy of Old" -msgstr "Mache die Spalte 'Neu' zur Kopie von 'Alt'" - -#: bulk_rename.c:81 -msgid "_Rename" -msgstr "_Umbenennen" - -#: bulk_rename.c:94 -msgid "Replace:" -msgstr "Ersetzen:" - -#: bulk_rename.c:101 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Dies ist ein regulärer Ausdruck für die Suche.\n" -"^ Übereinstimmung mit dem Anfang eines Dateinamens\n" -"$ Übereinstimmung mit dem Ende\n" -"\\. Suche nach einem Punkt\n" -"\\.htm$ sucht nach '.htm' in 'index.html', etc" - -#: bulk_rename.c:109 -msgid "With:" -msgstr "Mit:" - -#: bulk_rename.c:116 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" -"Die erste Übereinstimmung in jedem Dateinamen wird ersetzt mit dieser " -"Zeichenkette.Es gibt keine Sonderzeichen." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Anwenden" - -#: bulk_rename.c:123 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"Suchen-und-Ersetzen in der Spalte 'Neu'. Die Dateien werden erst nach " -"Drücken des Umbenennen-Schalters tatsächlich umbenannt." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "Alter Name" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "Neuer Name" - -#: bulk_rename.c:259 -msgid "No strings (in the New column) matched the given expression" -msgstr "Keine Übereinstimmung (in der Spalte 'Neu') mit diesem Ausdruck" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "Eine Namensübereinstimmung, aber das Ergebnis war das selbe." - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "" -"%d Namensübereinstimmungen, aber die Ergebnisse waren jeweils identisch" - -#: bulk_rename.c:293 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" -"Geben Sie einen regulären Suchausdruck an, und eine Zeichenkette mit der der " -"Suchtext ersetzt werden soll." - -#: bulk_rename.c:310 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (für '%s')" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" -"Eine Datei mit Namen '%s' gibt es schon. Massenumbenennung abgebrochen." - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Fehler bei Umbenennung von '%s' als '%s':\n" -"%s\n" -"Massenumbenennung abgebrochen." - -#: bulk_rename.c:410 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Eine Datei namens '%s' ist bereits vorhanden" - -#: bulk_rename.c:421 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"Einige der 'Neu'-Namen enthalten / Zeichen (z.B. `%s`). Dadurch landen die " -"Dateien in verschiedenen Verzeichnissen. Fortsetzen?" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "Kein Name geändert. Nichts zu tun!" - -#: choices.c:428 -msgid "Choices migration" -msgstr "Einstellungen konvertieren" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" -"Einstellungen wurden verschoben von \n" -"%s\n" -" zum neuen Ort \n" -"%s\n" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d Verzeichnisse konnten nicht konvertiert werden" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Kann Verzeichnis %s nicht auswerten " - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Kann Verzeichnis %s nicht öffnen" - -#: display.c:588 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) fehlgeschlagen: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "Verknüpfung (relative)" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "Verknüpfung (absolute)" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Interner Fehler - Fehlerhafter Info-Typ" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "Verzeichnis hier hinein ziehen, um Lesezeichen anzulegen." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS Protokoll Fehler: Dateiname darf kein '/' enthalten\n" - -#: dnd.c:605 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"XdndDirectSave0-Ziel bereitgestellt, aber das Atom XdndDirectSave0 (type " -"text/plain)enthielt keinen Dateinamen\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "" -"Sorry - ich brauche ein Ziel vom Typ text/uri-list oder XdndDirectSave0." - -#: dnd.c:621 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Sorry - ich brauche ein Ziel vom Typ text/uri-list oder application/octet-" -"stream." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Konnte Objekte nicht auf Pinwand heften, da sie sich auf einem " -"Netzwerklaufwerk befinden. Beispielsweise:\n" -"\n" -"%s" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Unbekanntes Ziel" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "" -"Programm vom Netzwerk kann oder will mir die Daten nicht senden - " -"'tschuldigung" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "XDS Protokoll Fehler: Rückgabewert sollte 'S', 'F' oder 'E' sein\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"'tschuldigung, kann kein Aktionsmenü für eine Netwerkdatei / Rohdaten " -"anzeigen." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "Titellose Daten" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Fehler beim Speichern der Datei: %s" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Keine URIs in der text/uri-list (nichts zu tun!)" - -#: dnd.c:993 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Kann keine Daten vom Netzwerkrechner bekommen (application/octet-stream " -"nicht verfügbar)" - -#: dnd.c:1016 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Einige dieser Dateien sind auf einem anderen Rechner - sie werden ignoriert " -"- 'tschuldigung" - -#: dnd.c:1023 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Keine dieser Dateien sind auf dem lokalen Rechner - Ich kann nicht mehrere " -"Dateien vom Netzwerk bearbeiten - 'tschuldigung" - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Unbekannter Aktionsaufruf" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Fehler beim Holen der Dateiliste: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Zeige" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Zeige aktuelle Einstellung in Dateifenster" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "Es gibt nichts zu zeigen. Ziehe etwas auf mich!" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Nur immer genau eine Datei auf diese Zone bewegen." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Kann '%s' nicht verwenden, da es keine lokale Datei ist." - -#: dropbox.c:280 pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Kein Zugriff möglich auf '%s':\n" -"%s" - -#: filer.c:453 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Fehler beim Durchsuchen von '%s':\n" -"%s\n" - -#: filer.c:457 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Fehler beim Durchsuchen von '%s':\n" -"%s" - -#: filer.c:562 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Möchten Sie dieses Gerät aushängen?\n" -"\n" -"Nach Aushängen kann Medium gefahrlos entnommen werden." - -#: filer.c:566 -msgid "No change" -msgstr "Keine Änderung" - -#: filer.c:572 menu.c:862 -msgid "Unmount" -msgstr "Aushängen" - -#: filer.c:669 -msgid "Directory missing/deleted" -msgstr "Verzeichnis nicht vorhanden/gelöscht" - -#: filer.c:1031 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Gruppe %s nicht definiert. Wählen Sie ein paar Dateien und drücken Sie Ctrl+%" -"s, um die Gruppe zu definieren. Drücken Sie nur %s, um die Dateien später " -"noch einmal auszuwählen. Falls sie den Zahlenblock benutzen, achten Sie " -"darauf, dass NumLock an ist." - -#: filer.c:1267 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Kann nicht auf Verzeichnis '%s' zugreifen" - -#: filer.c:1419 -#, c-format -msgid "Directory '%s' not found." -msgstr "Verzeichnis '%s' nicht gefunden." - -#: filer.c:1713 -msgid "Cancel" -msgstr "Abbruch" - -#: filer.c:2002 -msgid "S" -msgstr "S" - -#: filer.c:2004 -msgid "T" -msgstr "T" - -#: filer.c:2026 -msgid "Scanning, " -msgstr "Durchsuche, " - -#: filer.c:2028 -msgid "Thumbs, " -msgstr "Miniaturen, " - -#: filer.c:2304 -msgid "Symbolic link to " -msgstr "Verknüpfung zu " - -#: filer.c:2335 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Dies ist kein gültiger UTF-8 Dateiname. Sie sollten ihn ändern.\n" - -#: filer.c:2643 menu.c:1989 -msgid "Item no longer exists!" -msgstr "Das Symbol existiert nicht mehr!" - -#: filer.c:3327 -msgid "Select display properties to save" -msgstr "Wähle zu speichernde Ansichtseigenschaften" - -#: filer.c:3334 -msgid "Position" -msgstr "Position" - -#: filer.c:3339 toolbar.c:135 toolbar.c:139 tips:63 -msgid "Size" -msgstr "Größe" - -#: filer.c:3344 -msgid "Show hidden" -msgstr "Versteckte zeigen" - -#: filer.c:3350 -msgid "Display style" -msgstr "Ansicht" - -#: filer.c:3356 -msgid "Sort type and order" -msgstr "Sortierung" - -#: filer.c:3361 toolbar.c:143 -msgid "Details" -msgstr "Details" - -#: filer.c:3366 tips:114 tips:115 -msgid "Thumbnails" -msgstr "Miniaturen" - -#: filer.c:3372 -msgid "Filter" -msgstr "Filter" - -#: find.c:487 -msgid "And" -msgstr "Und" - -#: find.c:511 -msgid "Not" -msgstr "Nicht" - -#: find.c:554 -msgid "system" -msgstr "System" - -#: find.c:562 -msgid "prune" -msgstr "abschneiden" - -#: find.c:650 -msgid "After" -msgstr "Nach" - -#: find.c:652 -msgid "Before" -msgstr "Bevor" - -#: find.c:746 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:748 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:750 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:752 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:754 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:756 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:758 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:760 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:762 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:764 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:766 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:768 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:770 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:772 -msgid "IsWriteable" -msgstr "IsWritable" - -#: find.c:774 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:776 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:778 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:906 -msgid "Now" -msgstr "Jetzt" - -#: find.c:919 -msgid "Byte" -msgstr "Byte" - -#: find.c:919 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:921 -msgid "Kb" -msgstr "Kb" - -#: find.c:921 -msgid "K" -msgstr "K" - -#: find.c:923 -msgid "Mb" -msgstr "Mb" - -#: find.c:923 -msgid "M" -msgstr "M" - -#: find.c:925 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "G" -msgstr "G" - -#: find.c:927 -msgid "Sec" -msgstr "Sek" - -#: find.c:927 -msgid "Secs" -msgstr "Seks" - -#: find.c:929 -msgid "Min" -msgstr "Min" - -#: find.c:929 -msgid "Mins" -msgstr "Mins" - -#: find.c:931 -msgid "Hour" -msgstr "Stunde" - -#: find.c:931 -msgid "Hours" -msgstr "Stunden" - -#: find.c:933 -msgid "Day" -msgstr "Tag" - -#: find.c:933 -msgid "Days" -msgstr "Tage" - -#: find.c:935 -msgid "Week" -msgstr "Woche" - -#: find.c:935 -msgid "Weeks" -msgstr "Wochen" - -#: find.c:937 -msgid "Year" -msgstr "Jahr" - -#: find.c:937 -msgid "Years" -msgstr "Jahre" - -#: find.c:946 -msgid "Ago" -msgstr "Zurück" - -#: find.c:948 -msgid "Hence" -msgstr "Deshalb" - -#: find.c:963 -msgid "atime" -msgstr "atime" - -#: find.c:965 -msgid "ctime" -msgstr "ctime" - -#: find.c:967 -msgid "mtime" -msgstr "mtime" - -#: find.c:969 -msgid "size" -msgstr "Größe" - -#: find.c:971 -msgid "inode" -msgstr "inode" - -#: find.c:973 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "Blöcke" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Speichere unter:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Unbenannt" - -#: gtksavebox.c:473 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"Programm von Netzwerk will Direct Save benutzen, aber ich kann die " -"XdndDirectSave0-Einstellung (type text/plain) nicht lesen.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Ziehen Sie das Symbol auf einen Verzeichnisanzeiger\n" -"(oder geben Sie einen vollen Pfadnamen an)" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"Versuche, eine XML-Datei als Textdatei zu lesen. Die Datei '%s' ist " -"vielleicht fehlerhaft." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and click on Save.\n" -"Further errors will be ignored." -msgstr "" -"Fehler in Datei '%s' bei Zeile %d: \n" -"\"%s\"\n" -"Dies mag aus einem Upgrade von einer älteren ROX-Filer-Version resultieren." -"Öffnen Sie das Options-Fenster und klicken Sie auf Speichern.\n" -"Weitere Fehler werden ignoriert." - -#: gui_support.c:1000 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Fehlerhafter oder fehlender Zeilenumbruch in den text/uri-list Daten" - -#: gui_support.c:1332 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Fehler beim öffnen von Datei '%s': %s" - -#: gui_support.c:1376 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"Konnte Bild '%s' nicht laden: Ursache unbekannt, wahrscheinlich eine defekte " -"Bilddatei" - -#: gui_support.c:1427 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can " -"be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Dieses Programm kann nicht ausgeführt werden, da der 0launch Befehl nicht " -"vorhanden ist. Er kann von hier runtergeladen werden:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:38 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Sie müssen den Dateimanager neu starten, bevor die neue Sprache voll aktiv " -"wird" - -#: icon.c:78 -msgid "(click to set)" -msgstr "(Auswählen durch Anklicken)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 menu.c:252 -msgid "About ROX-Filer..." -msgstr "Über ROX-Filer..." - -#: icon.c:135 menu.c:253 -msgid "Show Help Files" -msgstr "Hilfedateien" - -#: icon.c:136 menu.c:254 -msgid "Manual" -msgstr "Manual" - -#: icon.c:138 menu.c:230 -msgid "Options..." -msgstr "Optionen..." - -#: icon.c:139 menu.c:239 -msgid "Home Directory" -msgstr "Heimatverzeichnis" - -#: icon.c:140 icon.c:1340 menu.c:206 type.c:212 -msgid "File" -msgstr "Datei" - -#: icon.c:141 menu.c:212 menu.c:875 -msgid "Shift Open" -msgstr "Öffnen als Text" - -#: icon.c:142 menu.c:218 -msgid "Properties" -msgstr "Eigenschaften" - -#: icon.c:143 menu.c:216 -msgid "Set Run Action..." -msgstr "Startaktion ändern..." - -#: icon.c:144 menu.c:217 -msgid "Set Icon..." -msgstr "Symbol ändern..." - -#: icon.c:145 icon.c:806 -msgid "Edit Item" -msgstr "Eintrag ändern" - -#: icon.c:146 -msgid "Show Location" -msgstr "Ursprung zeigen" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Eintrag entfernen" - -#: icon.c:278 menu.c:764 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:291 -msgid "Nothing" -msgstr "Nichts" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Der Ort muß mindestens ein Zeichen enthalten!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Bitten wählen Sie erst einige Einträge zum Löschen aus" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Bitte öffnen Sie das Menü über einem Eintrag" - -#: icon.c:652 menu.c:1260 -msgid "You can only set the run action for a regular file" -msgstr "Sie können Startaktionen nur für normale Dateien setzen" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Drücken Sie die gewünschte Tastenkombination (z.B. Strg+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Kann Taste nicht zuordnen!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Klick auf das Symbol öffnet:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "Zu übergebende Parameter (für Programme):" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Der Text unter dem Symbol ist:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "Das Tastaturkürzel ist:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Wollen Sie wirklich %d Fenster öffnen?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Zeige Info" - -#: infobox.c:135 menu.c:769 -msgid "(bad utf-8)" -msgstr "ungültiges utf-8" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "Zeige _Hilfedateien" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Zugriffsrechte" - -#: infobox.c:286 -msgid "Contents indicate..." -msgstr "Sieht aus nach..." - -#: infobox.c:423 infobox.c:560 support.c:349 -msgid "bytes" -msgstr "bytes" - -#: infobox.c:446 -msgid "Failed to read size" -msgstr "Kann Dateigröße nicht lesen" - -#: infobox.c:504 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "!'%s' ist nicht weiter eine Verknüpfung" - -#: infobox.c:511 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Verknüpfung konnte nicht entfernt werden '%s':\n" -"%s" - -#: infobox.c:516 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Verknüpfung konnte nicht erstellt werden '%s':\n" -"%s\n" -"(bisherige Verknüpfung wurde entfernt)" - -#: infobox.c:539 tips:270 -msgid "Error:" -msgstr "Fehler:" - -#: infobox.c:546 -msgid "Real directory:" -msgstr "Wahres Verzeichnis" - -#: infobox.c:549 -msgid "Owner, Group:" -msgstr "Besitzer, Gruppe:" - -#: infobox.c:556 infobox.c:571 infobox.c:580 -msgid "Size:" -msgstr "Größe:" - -#: infobox.c:581 -msgid "Scanning" -msgstr "Durchsuche" - -#: infobox.c:602 -msgid "Failed to scan" -msgstr "Fehler beim Einlesen" - -#: infobox.c:609 -msgid "Change time:" -msgstr "letzte Änderung:" - -#: infobox.c:611 -msgid "Modify time:" -msgstr "Erstellt:" - -#: infobox.c:613 -msgid "Access time:" -msgstr "letzter Zugriff:" - -#: infobox.c:621 -msgid "Extended attributes:" -msgstr "Erweiterte Attribute:" - -#: infobox.c:623 -msgid "Present" -msgstr "Vorhanden" - -#: infobox.c:624 -msgid "None" -msgstr "Keine" - -#: infobox.c:625 -msgid "Not supported" -msgstr "Nicht unterstützt" - -#: infobox.c:637 -msgid "Link target:" -msgstr "Verknüpfungsziel:" - -#: infobox.c:649 infobox.c:652 -msgid "Run action:" -msgstr "Startaktion:" - -#: infobox.c:649 -msgid "Execute file" -msgstr "Datei ausführen" - -#: infobox.c:744 -msgid "" -msgstr "" - -#: infobox.c:814 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) sagt... %s" - -#: infobox.c:871 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Konnte Rechte nicht ändern: %s" - -#: infobox.c:889 -msgid "Owner" -msgstr "Besitzer" - -#: infobox.c:891 -msgid "Group" -msgstr "Gruppe" - -#: infobox.c:893 -msgid "World" -msgstr "Welt" - -#: infobox.c:896 -msgid "Read" -msgstr "Lesen" - -#: infobox.c:898 -msgid "Write" -msgstr "Schreiben" - -#: infobox.c:900 -msgid "Exec" -msgstr "Ausführen" - -#: infobox.c:917 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:924 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:931 -msgid "Sticky" -msgstr "Sticky" - -#: infobox.c:953 -msgid "Symbolic link" -msgstr "Verknüpfung" - -#: infobox.c:956 -msgid "ROX application" -msgstr "ROX Applikation" - -#: infobox.c:964 -msgid "mounted" -msgstr "eingehängt" - -#: infobox.c:964 -msgid "unmounted" -msgstr "augehängt" - -#: infobox.c:968 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Mount-Punkt für %s (%s)" - -#: infobox.c:971 -#, c-format -msgid "Mount point (%s)" -msgstr "Mount-Punkt (%s) " - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Probieren Sie 'ROX-Filer/AppRun --help' für weitere Informationen.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Probieren Sie 'ROX-Filer/AppRun -h' für weitere Informationen.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"ANMERKUNG: Ihr System unterstützt keine langen Optionen - \n" -"benutzen Sie stattdessen die kurzen Versionen.\n" -"\n" - -#: main.c:115 -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Benutzung: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Öffne jedes angegebene Verzeichnis oder jede angegebene Datei, oder das\n" -"aktuelle Arbeitsverzeichnis, sofern keine Argumente angegeben wurden.\n" -"\n" -" -b, --border=LEISTE\töffnet LEISTE als Seitenpanel\n" -" -b, --bottom=LEISTE\töffnet LEISTE am unteren Bildschirmrand\n" -" -c, --client-id=ID\tfür die Sitzungsverwaltung\n" -" -d, --dir=DIR\t\töffnet DIR als Verzeichnis (nicht als Anwendung)\n" -" -D, --close=DIR\tschließe DIR samt Unterverzeichnissen\n" -" -h, --help\t\tzeigt diese Hilfe und beendet ROX-Filer\n" -" -l, --left=PANEL\töffnet PANEL am linken Bildschirmrand\n" -" -m, --mime-type=DATEI\tzeigt den MIME-Typ von DATEI und beendet ROX-Filer\n" -" -n, --new\t\tstartet neuen Dateimanager, auch wenn bereits einer läuft\n" -" -p, --pinboard=PIN\tPIN als Pinwand benutzen\n" -" -r, --right=LEISTE\töffnet LEISTE am rechten Bildschirmrand\n" -" -R, --RPC\tMethodenaufruf gelesen von stdin\n" -" -s, --show=DATEI\töffnet das Verzeichnis, in dem sich DATEI befindet\n" -" -S, --rox-session\tLeiste und Pinwand gemäß Einstellungen, und -n\n" -" -t, --top=LEISTE\töffnet LEISTE am oberen Bildschirmrand\n" -" -u, --user\t\tzeigt Benutzernamen in jedem Fenster\n" -" -v, --version\t\tzeigt Versionsinformation und beendet ROX-Filer\n" -" -x, --examine=DATEI\tDATEI ist geändert - neu prüfen\n" -"\n" -"Bug-Reports bitte an " - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -".\n" -"Homepage (inklusive neuer Versionen): http://rox.sourceforge.net/\n" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"Der X Server hat einen 'BadWindow' Fehler gesendet. Dies könnte an einem GTK-" -"Fehler liegen(während einer Ziehen-and-Ablegen eines Objekts?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Versuche weiterzumachen..." - -#: main.c:382 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"Die -o Option wird nicht mehr benutzt. Nehmen Sie diese Einstellung über " -"Optionen->Kompatibilität vor." - -#: main.c:489 -#, c-format -msgid "Running as user '%s'" -msgstr "Gestartet als Benutzter '%s'" - -#: main.c:666 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Kompiliert mit GTK Version %s\n" - -#: main.c:667 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Läuft mit GTK Version %d.%d.%d\n" - -#: main.c:671 -msgid "features set at compile time" -msgstr "Eigenschaften, die beim Kompilieren festgelegt wurden" - -#: main.c:672 -msgid "Large File Support" -msgstr "Unterstützung für große Dateien" - -#: main.c:679 -msgid "GNOME-VFS library" -msgstr "GNOME-VFS-Bibliothek" - -#: main.c:683 -msgid "No (need 2.8.0 or later)" -msgstr "Nein (benötigt 2.8.0 oder neuer)" - -#: main.c:686 -msgid "Dnotify support" -msgstr "Dnotify-Ünterstützung" - -#: main.c:693 -msgid "Binary compatibility" -msgstr "Binärkompatibilität" - -#: main.c:695 -msgid "Yes (can run with older glibc versions)" -msgstr "Ja (funktioniert auch mit älterer Glibc-Version)" - -#: main.c:697 -msgid "No (apsymbols.h not found)" -msgstr "Nein (apsymbols.h nicht gefunden)" - -#: menu.c:180 tips:52 -msgid "Display" -msgstr "Ansicht" - -#: menu.c:181 tips:57 -msgid "Icons View" -msgstr "Symbolansicht" - -#: menu.c:182 -msgid "Icons, With..." -msgstr "Symbole, mit..." - -#: menu.c:183 tips:74 -msgid "Sizes" -msgstr "Größenangaben" - -#: menu.c:185 tips:254 -msgid "Types" -msgstr "Typen" - -#: menu.c:186 tips:77 -msgid "Times" -msgstr "Zeitangaben" - -#: menu.c:187 tips:58 tips:92 -msgid "List View" -msgstr "Listenansicht" - -#: menu.c:189 -msgid "Bigger Icons" -msgstr "Größere Symbole" - -#: menu.c:190 -msgid "Smaller Icons" -msgstr "Kleinere Symbole" - -#: menu.c:191 tips:71 -msgid "Automatic" -msgstr "Automatisch" - -#: menu.c:193 -msgid "Sort by Name" -msgstr "Nach Name sortieren" - -#: menu.c:194 -msgid "Sort by Type" -msgstr "Nach Typ sortieren" - -#: menu.c:195 -msgid "Sort by Date" -msgstr "Nach Datum sortieren" - -#: menu.c:196 -msgid "Sort by Size" -msgstr "Nach Größe sortieren" - -#: menu.c:197 -msgid "Sort by Owner" -msgstr "Nach Benutzer sortieren" - -#: menu.c:198 -msgid "Sort by Group" -msgstr "Nach Gruppe sortieren" - -#: menu.c:199 -msgid "Reversed" -msgstr "Umgekehrt" - -#: menu.c:201 -msgid "Show Hidden" -msgstr "Versteckte zeigen" - -#: menu.c:202 -msgid "Filter Files..." -msgstr "Dateien filtern..." - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Miniaturen zeigen" - -#: menu.c:204 -msgid "Refresh" -msgstr "Aktualisieren" - -#: menu.c:205 -msgid "Save Display Settings..." -msgstr "Ansichtseinstellungen speichern..." - -#: menu.c:207 -msgid "Copy..." -msgstr "Kopieren..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Umbenennen..." - -#: menu.c:209 -msgid "Link..." -msgstr "Verknüpfen..." - -#: menu.c:213 -msgid "Open AVFS" -msgstr "Öffnen mit AVFS" - -#: menu.c:214 -msgid "Send To..." -msgstr "Öffnen mit..." - -#: menu.c:219 -msgid "Count" -msgstr "Speicherbedarf" - -#: menu.c:220 -msgid "Set Type..." -msgstr "Typ zuordnen..." - -#: menu.c:224 toolbar.c:155 -msgid "Select" -msgstr "Auswählen" - -#: menu.c:225 -msgid "Select All" -msgstr "Alles auswählen" - -#: menu.c:226 -msgid "Clear Selection" -msgstr "Auswahl löschen" - -#: menu.c:227 -msgid "Invert Selection" -msgstr "Auswahl umkehren" - -#: menu.c:228 -msgid "Select by Name..." -msgstr "Nach Name sortieren..." - -#: menu.c:229 -msgid "Select If..." -msgstr "Auswahlkriterium..." - -#: menu.c:231 -msgid "New" -msgstr "Neu" - -#: menu.c:233 -msgid "Blank file" -msgstr "Leere Datei" - -#: menu.c:235 tasklist.c:308 -msgid "Window" -msgstr "Fenster" - -#: menu.c:236 -msgid "Parent, New Window" -msgstr "Übergeordnetes Verzeichnis, neues Fenster" - -#: menu.c:237 -msgid "Parent, Same Window" -msgstr "Übergeordnetes Verzeichnis, selbes Fenster" - -#: menu.c:238 -msgid "New Window" -msgstr "Neues Fenster" - -#: menu.c:240 -msgid "Show Bookmarks" -msgstr "Zeige Lesezeichen" - -#: menu.c:241 -msgid "Follow Symbolic Links" -msgstr "Verknüpfungen folgen" - -#: menu.c:242 -msgid "Resize Window" -msgstr "Fenstergröße anpassen" - -#: menu.c:245 -msgid "Close Window" -msgstr "Fenster schließen" - -#: menu.c:247 -msgid "Enter Path..." -msgstr "Pfad eingeben..." - -#: menu.c:248 -msgid "Shell Command..." -msgstr "Shell-Befehl..." - -#: menu.c:249 -msgid "Xterm Here" -msgstr "Terminal hier" - -#: menu.c:250 -msgid "Switch to xterm" -msgstr "Zu Terminal wechseln" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Drücken Sie Shift+Menü-Taste über einer Datei, um sie zu senden" - -#: menu.c:754 -msgid "Next Click" -msgstr "Nächster Klick" - -#: menu.c:776 -#, c-format -msgid "%d items" -msgstr "%d Einträge" - -#: menu.c:864 -msgid "Open unmounted" -msgstr "Öffnen ohne einzuhängen" - -#: menu.c:867 -msgid "Show Target" -msgstr "Ziel zeigen" - -#: menu.c:869 -msgid "Look Inside" -msgstr "Inhalt zeigen" - -#: menu.c:871 -msgid "Open As Text" -msgstr "Als Text öffnen" - -#: menu.c:1031 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"Erweiterte Attribute, zur Speicherung des Dateityps, werden für diese Datei" -"(en) nicht unterstützt.\n" -"Das könnte an fehlender Unterstützung durch das Dateisystems oder der " -"Systembibiliothek liegen; oder vielleicht muss das Dateisystem mit den " -"Richtigen Optionen eingebunden werden ('user _xattr in Linux')." - -#: menu.c:1037 -msgid "Setting type not supported for some of these files" -msgstr "Typzuweisung für einige der Dateien nicht unterstützt." - -#: menu.c:1072 -msgid "_Relative link" -msgstr "_Relative Verknüpfung" - -#: menu.c:1078 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Wenn aktiviert, wird nur der Pfad von der Verknüpfung zur Zieldatei " -"gespeichert. Benutzen Sie dies, wenn die Verknüpfung und das Ziel zusammen " -"verschoben werden sollen.\n" -"Wenn aus, wird der Pfad vom Wurzelverzeichnis gespeichert - benutzen Sie " -"dies, wenn die Verknüpfung verschoben wird, aber das Ziel fest bleibt." - -#: menu.c:1148 -msgid "New pathname is not absolute" -msgstr "Neuer Pfadname ist nicht absolut" - -#: menu.c:1214 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "" -"Die Bestehende Verknüpfung zu '%s' mit einer Verknüpfung zu '%s' ersetzen?" - -#: menu.c:1220 -msgid "_Replace" -msgstr "_Ersetzen" - -#: menu.c:1351 menu.c:1392 menu.c:1452 -msgid "Create" -msgstr "Erzeugen" - -#: menu.c:1352 -msgid "NewDir" -msgstr "NeuesVerzeichnis" - -#: menu.c:1366 menu.c:1372 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Fehler beim Erstellen der Datei '%s': %s" - -#: menu.c:1393 -msgid "NewFile" -msgstr "NeueDatei" - -#: menu.c:1411 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Fehler beim Erstellen der Datei: konnte Vorlage für %s nicht finden" - -#: menu.c:1482 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"Über das `Öffnen mit'-Menü können Dateien bequem mit einer definierbaren " -"Auswahl an Programmen geöffnet werden. Um Programme in dieses Menü " -"aufzunehmen, müssen Sie in folgende Verzeichnisse verlinkt werden:\n" -"\n" -"%s\n" -"%s\n" -"Das `Öffnen mit'-Menü kann durch Drücken von Shift+Menü-Taste über einer " -"Datei geöffnet werden." - -#: menu.c:1493 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Ich werden Ihnen Ihr 'Öffnen mit'-Verzeichnis nun zeigen; Sie sollten eine " -"Verknüpfung zu jeder Anwendung, an die sie Dateien übergeben wollen, dort " -"erstellen (Ctrl+Shift und Ziehen)." - -#: menu.c:1496 menu.c:1536 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "" -"Ihre CHOICESPATH Variable erlaubt nur Root die Einstellungen zu ändern." - -#: menu.c:1529 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Die Dateien in Ihrem Vorlagenverzeichnis erscheinen im Menü 'Neu'. Aus einer " -"gewählten Vorlage, wird eine neue Datei als Kopie erstellt.\n" -"\n" -"Die folgenden Verzeichnisse enthalten Vorlagen:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1534 -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Ich werden Ihnen Ihr Vorlagenverzeichnis nun zeigen; dort sollten alle " -"gewünschten Vorlagen abgelegt werden." - -#: menu.c:1651 -msgid "Customise" -msgstr "Anpassen" - -#: menu.c:1717 -msgid "This is already the canonical name for this directory." -msgstr "Das Verzeichnis besitzt bereits den vorgesehenen Namen." - -#: menu.c:1748 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Sie können keine zweite Ansicht dieses Verzeichnisses öffnen, da die " -"'Einzigartige Fenster'-Option im Options-Fenster aktiviert ist." - -#: menu.c:1869 -msgid "Copy ... ?" -msgstr "Kopiere ... ?" - -#: menu.c:1872 -msgid "Rename ... ?" -msgstr "Benenne ... um?" - -#: menu.c:1875 -msgid "Symlink ... ?" -msgstr "Verknüpfe ... ?" - -#: menu.c:1878 -msgid "Shift Open ... ?" -msgstr "Als Text Öffnen ... ?" - -#: menu.c:1881 -msgid "Properties of ... ?" -msgstr "Eigenschaften von ... ?" - -#: menu.c:1884 -msgid "Set type of ... ?" -msgstr "Typ zuordnen von ... ?" - -#: menu.c:1887 -msgid "Set run action for ... ?" -msgstr "Setze Startaktion für ... ?" - -#: menu.c:1890 -msgid "Set icon for ... ?" -msgstr "Setze Symbol für ... ?" - -#: menu.c:1893 -msgid "Send ... to ... ?" -msgstr "Öffne ... mit ... ?" - -#: menu.c:1896 -msgid "DELETE ... ?" -msgstr "LÖSCHEN ... ?" - -#: menu.c:1899 -msgid "Count the size of ... ?" -msgstr "Zähle die Größe von ... ?" - -#: menu.c:1902 -msgid "Set permissions on ... ?" -msgstr "Setze Zugriffsrechte von ... ?" - -#: menu.c:1905 -msgid "Search inside ... ?" -msgstr "Suche in ... ?" - -#: menu.c:1908 -msgid "Look inside ... ?" -msgstr "Zeige Inhalt von ... ?" - -#: menu.c:1972 -msgid "You cannot do this to more than one item at a time" -msgstr "Sie können dies nicht mit mehr als einem Eintrag auf einmal tun" - -#: menu.c:2004 -msgid "Rename" -msgstr "Umbenennen" - -#: menu.c:2009 -msgid "Symlink" -msgstr "Verknüpfen" - -#: menu.c:2041 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Benutzerdefinierte Tastaturkürzel sind standardmäßig deaktiviert. Aktivieren " -"Sie dieses Feature durch:\n" -"\n" -"1) Benutzung eines XSettings-Managers, wie ROX-Session oder gnome-settings-" -"daemon, oder\n" -"\n" -"2) Hinzufügen dieser Zeile zu ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(das funktioniert nur, wenn XSETTINGS nicht benutzt werden)" - -#: menu.c:2052 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Zum Festlegen von Tastaturkürzeln:\n" -"\n" -"- Öffnen Sie das Menü über ein Dateimanager-Fenster,\n" -"- Bewegen Sie den Mauszeiger über den gewünschten Eintrag,\n" -"- Drücken Sie die Taste, an die die Funktion geknüpft werden soll.\n" -"\n" -" Die Taste erscheint dann neben dem Menüeintrag und Sie können nun einfach " -"diese Taste drücken, ohne das Menü zu öffnen." - -#: menu.c:2067 -msgid "Set keyboard shortcuts" -msgstr "Tastaturkürzel festlegen" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Gehe zu:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Wähle Wenn:" - -#: minibuffer.c:134 -msgid "Select Named:" -msgstr "Wähle nach Name:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "Muster:" - -#: minibuffer.c:264 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Geben Sie den Namen einer Datei ein und ich zeige sie an. Drücken Sie Tab um " -"den längsten Treffer einzusetzen. ESC zum Schließen der Befehlszeile." - -#: minibuffer.c:270 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Geben Sie einen auszuführenden Shell-Befehl an. Klicken Sie auf eine Datei, " -"um sie zum Puffer hinzuzufügen." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Ein Dateinamensmuster eingeben, um alle zutreffenden Dateien zu wählen:\n" -"\n" -"? steht für exakt ein beliebiges Zeichen\n" -"[aA] steht für 'a' oder 'A'\n" -"[a-z] steht für einen beliebigen Buchstaben von a bis z (kleingeschrieben)\n" -"*.png steht für Dateien, die auf '.png' enden" - -#: minibuffer.c:287 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Ein Muster für anzuzeigende Dateien eingeben. Ein leeres Muster schaltetden " -"Filter aus." - -#: minibuffer.c:895 -msgid "Invalid Find condition" -msgstr "Ungültiger Such-Parameter" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s gesamt, %s benutzt, %s frei (%.1f %%)" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "Ihre alten Einstellungen wurden ins neue XML-Format konvertiert." - -#: options.c:535 options.c:1258 -msgid "(use default)" -msgstr "(wie Voreinstellung)" - -#: options.c:806 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Interner Fehler - %s nicht lesbar" - -#: options.c:917 -msgid "Options" -msgstr "Optionen" - -#: options.c:962 -msgid "_Revert" -msgstr "_Rückgängig" - -#: options.c:968 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Alle Änderungen seit Öffnen des Optionsfensters rückgängig machen." - -#: options.c:983 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Einstellungen werden gespeichert als:\n" -"%s" - -#: options.c:991 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(Nur Administrator darf Änderungen speichern)" - -#: options.c:1164 usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Fehler beim Speichern von %s: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "Fehlendes '='" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "" -"Ihre alten Leisten-Einstellungen wurden ins neue XML-Format konvertiert." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Sie haben versucht, das Leiste per Fenstermanager zu schließen - ich denke, " -"daß das normalerweise versehentlich passiert ... wirklich schließen?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "Fehlendes < oder > in Leisten-Konfigurationsdatei" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Fehler beim Speichern der Leiste %s: %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Applet endete, ohne ein Widget zu erzeugen!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Fehler beim Starten von Applet:\n" -"%s" - -#: panel.c:2335 -msgid "Panel Options..." -msgstr "Leisten-Einstellungen..." - -#: panel.c:2427 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Xinerama-Monitor %d nicht verfügbar" - -#: panel.c:2502 -msgid "Panel Options" -msgstr "Leisten-Einstellungen" - -#: panel.c:2517 -#, c-format -msgid "Panel: %s" -msgstr "Leisten: %s" - -#: panel.c:2525 -msgid "Select the panel's position:" -msgstr "Wahl der Leistenposition:" - -#: panel.c:2531 -msgid "Top-edge panel" -msgstr "Leiste am oberen Rand" - -#: panel.c:2532 -msgid "Top edge" -msgstr "Oberer Rand" - -#: panel.c:2533 -msgid "Bottom edge panel" -msgstr "Oberer Rand" - -#: panel.c:2534 -msgid "Bottom edge" -msgstr "Unterer Rand" - -#: panel.c:2535 -msgid "Left edge panel" -msgstr "Leiste am linken Rand" - -#: panel.c:2536 -msgid "Left edge" -msgstr "Linker Rand" - -#: panel.c:2537 -msgid "Right-edge panel" -msgstr "Leiste am rechten Rand" - -#: panel.c:2538 -msgid "Right edge" -msgstr "Rechter Rand" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "" -"Ihre alten Pinwand-Einstellungen wurden ins neue XML-Format konvertiert." - -#: pinboard.c:635 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Der Hintergrundverwalter muss ein Programmverzeichnis sein. Ziehen Sie ein " -"Programmverzeichnis auf den 'Hintergrund einstellen'-Dialog oder (für " -"Programmierer) übergeben Sie es an die SOAP SetBackdropApp Methode." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Sie können den Hintergrund nur auf ein Programm einstellen, das sich auf ROX-" -"Filer Hintergründe versteht.\n" -"\n" -"Programmierer: Die Appinfo.xml des Programmes muss das CanSetBackdrop " -"Element enthalten, wie im ROX-Filer Manual beschrieben." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Hintergrund ändern" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Stil wählen und Bild hineinziehen:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Bild unskaliert zentrieren" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Zentrieren" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Bild auf Hintergrundgröße skalieren, ohne es zu verzerren" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Skalieren" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Bild strecken, um den Hintergrund auszufüllen" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Strecken" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Fliese Hintergrund mit dem Bild" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Fliesen" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Ziehen Sie ein Bild hierher" - -#: pinboard.c:772 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Die Pinwand wurde noch nicht benutzt... stelle Standardhintergrund ein. " -"Starten sie ROX-Filer mit 'rox -p=Default', um die Pinwand zu aktivieren." - -#: pinboard.c:866 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Nur Bilddateien (und bestimmte Programme) können das Hintergrundbild " -"liefern." - -#: pinboard.c:1471 -msgid "Missing '>' in icon label" -msgstr "Fehlendes '>' im Icon-Label" - -#: pinboard.c:1480 -msgid "Missing ',' after icon label" -msgstr "Fehlendes ',' nach dem Symbolnamen" - -#: pinboard.c:1565 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Fehler beim Speichern der Pinwand %s: %s" - -#: pinboard.c:2109 -msgid "Backdrop..." -msgstr "Hintergrund..." - -#: pinboard.c:2202 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Fehler beim Laden des Hintergrundbildes:\n" -"%s\n" -"Hintergrundbild entfernt." - -#: pixmaps.c:991 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Kann Miniaturen in %s nicht entfernen:\n" -"%s" - -#: pixmaps.c:1012 -msgid "There are no thumbnails to delete" -msgstr "Es gibt keine Miniaturem zum Entfernen" - -#: pixmaps.c:1025 -msgid "Purge thumbnails disk cache" -msgstr "Zwischenspeicher für Miniaturen leeren" - -#: remote.c:624 -#, c-format -msgid "Unknown style '%s'" -msgstr "Unbekannter Stil '%s'" - -#: remote.c:646 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Unbekannter Detailtyp '%s'" - -#: remote.c:674 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Unbekannter Sortiertyp '%s'" - -#: remote.c:1117 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Versuch, eine unbekannte SOAP-Methode aufzurufen '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Ungültige .gmo Übersetzungsdatei (zu kurz): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Ungültige .gmo Übersetzungsdatei (GNU magic number nicht gefunden): %s" - -#: run.c:96 run.c:141 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Programm %s nicht gefunden - gelöscht?" - -#: run.c:287 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Datei existiert nicht oder ich kann nicht auf sie zugreifen: %s" - -#: run.c:292 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Ich weiß nicht, wie ich '%s' öffnen soll" - -#: run.c:323 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Anwendung/Applikation:\n" -"Dies ist ein Applikations-Verzeichnis - Sie können es als Programm starten " -"oder öffnen (halten Sie Shift gedrückt, währen Sie es öffnen). Die meisten " -"Applikationen stellen ihre eigene Hilfe hier bereit, aber diese tut das " -"nicht." - -#: run.c:407 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Konnte Daten nicht senden an Programm: %s" - -#: run.c:437 -#, c-format -msgid "Could not read link: %s" -msgstr "Konnte Verknüpfung nicht lesen: %s" - -#: run.c:465 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Leere Verknüpfung (oder Sie haben kein Recht, ihr zu folgen): %s" - -#: run.c:502 -#, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Es ist keine Startaktion für Dateien dieses Typs (%s/%s) definiert - Sie " -"können sie setzen, indem sie 'Startaktion setzen' aus dem Dateimenü wählen, " -"oder sie ziehen die Datei einfach auf eine Applikation.%s" - -#: run.c:508 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Hinweis: Wenn es sich hier um ein auszuführendes Computerprogramm handelt, " -"muss das Ausführbit gesetzt werden (Dateimenü->Zugriffsrechte)." - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "Byte" - -#: toolbar.c:115 -msgid "Close" -msgstr "Schließen" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Dateimanager-Fenster schließen" - -#: toolbar.c:119 -msgid "Up" -msgstr "Hoch" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Zum übergeordneten Verzeichnis wechseln" - -#: toolbar.c:123 -msgid "Home" -msgstr "Heimat" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Zum Heimatverzeichnis wechseln" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Lesezeichen" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Lesezeichen-Menü" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Aktualisieren" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Verzeichnisinhalt neu einlesen" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Wechseln der Symbolgröße" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Automatische Größenanpassung" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Dateieigenschaften zeigen" - -#: toolbar.c:147 -msgid "Sort" -msgstr "Sortieren" - -#: toolbar.c:147 -msgid "Change sort criteria" -msgstr "Sortierkriterium ändern" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Versteckt" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Versteckte Dateien zeigen/ausblenden" - -#: toolbar.c:155 -msgid "Select all/invert selection" -msgstr "Alles wählen/Auswahl umkehren" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "ROX-Filer-Hilfe anzeigen" - -#: toolbar.c:220 -#, c-format -msgid " (%u hidden)" -msgstr " (%u versteckte)" - -#: toolbar.c:228 tips:80 -msgid "items" -msgstr "Dateien" - -#: toolbar.c:228 -msgid "item" -msgstr "Datei" - -#: toolbar.c:231 -#, c-format -msgid "No items%s" -msgstr "Keine Dateien%s" - -#: toolbar.c:250 -#, c-format -msgid "%u selected (%s)" -msgstr "%u ausgewählt (%s)" - -#: toolbar.c:422 -msgid "Sort by name" -msgstr "Nach Name sortieren" - -#: toolbar.c:422 -msgid "Sort by type" -msgstr "Nach Typ sortieren" - -#: toolbar.c:422 -msgid "Sort by date" -msgstr "Nach Datum sortieren" - -#: toolbar.c:423 -msgid "Sort by size" -msgstr "Nach Größe sortieren" - -#: toolbar.c:423 -msgid "Sort by owner" -msgstr "Nach Benutzer sortieren" - -#: toolbar.c:423 -msgid "Sort by group" -msgstr "Nach Gruppe sortieren" - -#: toolbar.c:457 -msgid "ascending" -msgstr "aufsteigend" - -#: toolbar.c:457 -msgid "descending" -msgstr "absteigend" - -#: type.c:203 -msgid "Sym link" -msgstr "Verkn." - -#: type.c:205 -msgid "Mount point" -msgstr "Mount-Punkt" - -#: type.c:207 -msgid "App dir" -msgstr "App-Verz." - -#: type.c:214 -msgid "Dir" -msgstr "Verz." - -#: type.c:216 -msgid "Char dev" -msgstr "Char-Dev." - -#: type.c:218 -msgid "Block dev" -msgstr "Block-Dev." - -#: type.c:220 -msgid "Pipe" -msgstr "Pipe" - -#: type.c:222 -msgid "Socket" -msgstr "Socket" - -#: type.c:224 -msgid "Door" -msgstr "Door" - -#: type.c:227 -msgid "Unknown" -msgstr "Unbekannt" - -#: type.c:355 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"Die ausfürbare Datei '%s' ist allgemein beschreibbar! Werde nicht starten. " -"Bitte ändern Sie die Rechte jetzt (das Problem könnte durch eine alte " -"fehlerhafte Version des Dateimanagers verursacht sein).\n" -"\n" -"Ein allgemeines Schreibrecht auf Startaktionen (ausser über Verknüpfung) " -"bedeutet, dass jeder der Ihren Computer benutzt ihre Startaktionen durch " -"bösartigen Version ersetzen kann.\n" -"\n" -"Falls Sie allen, die auf diese Dateien zugriff haben vetrauen, brauchen Sie " -"sich nicht kümmern. Sonst sollten Sie alle bestehenden Startaktionen " -"überprüfen oder einfach gerade löschen." - -#: type.c:368 -msgid "go-w (Fix security problem)" -msgstr "go-w (Sicherheitsproblem beheben)" - -#: type.c:498 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Geben Sie einen Shell-Befehl ein, der \"$@\" in ein passendes Programm lädt. " -"Z.B.:\n" -"\n" -"gimp \"$@\"" - -#: type.c:679 -msgid "This is not a program! Give me an application instead!" -msgstr "Das ist kein Programm! Geben Sie mir stattdessen eine Applikation!" - -#: type.c:740 -msgid "No run action defined" -msgstr "Keine Startaktion definiert" - -#: type.c:766 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Fehler im Handler %s: %s" - -#: type.c:781 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Ungültige Applikation %s (fehlerhaftes AppRun)" - -#: type.c:792 -#, c-format -msgid "Non-executable %s" -msgstr "Nicht-Ausführbare Datei %s" - -#: type.c:825 -msgid "Set run action" -msgstr "Startaktion festlegen" - -#: type.c:831 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "Voreinstellung, falls dem Typ noch keine Applikation zugeordnet wurde." - -#: type.c:833 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Standard für alle '%s/' festlegen" - -#: type.c:837 -msgid "Use this application for all files with this MIME type." -msgstr "Diese Applikation verwenden für alle Dateien von diesem MIME-Typ." - -#: type.c:839 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Nur für den Typ `%s' (%s/%s)" - -#: type.c:845 -msgid "Drop a suitable application here" -msgstr "Ziehen Sie eine passende Applikation hierher" - -#: type.c:860 -msgid "OR" -msgstr "ODER" - -#: type.c:867 -msgid "Enter a shell command:" -msgstr "Geben Sie einen Shell-Befehl ein:" - -#: type.c:896 -msgid "_Use Command" -msgstr "_Verwende Befehl" - -#: type.c:926 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Eine Startaktion existiert bereits und ist ein recht großes Programm - sind " -"Sie sicher, daß Sie es löschen wollen?" - -#: type.c:937 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Kann %s:%s nicht entfernen" - -#: type.c:974 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "Choices speichern ist durch CHOICESPATH-Variable unterbunden" - -#: type.c:1249 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" -"Symbolthema '%s' enthält keine MIME-Symbole. Das ROX-Standardthema wird " -"daher verwendet." - -#: type.c:1263 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason)" -msgstr "" -"Konnte Verknüpfung '%s' nicht erzeugen:\n" -"%s\n" -"\n" -"(dies könnte bedeuten, dass das ROX-Thema dort bereits installiert ist, aber " -"das Symbol 'mime-application:postscript' aus irgend einem Grund nicht " -"geladen werden konnte)" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "" -"Der Pfadname, den Sie angegeben haben, existiert nicht. Das Symbol wurde " -"nicht geändert." - -#: usericons.c:191 usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Unmöglich die Bilddatei zu laden -- vielleicht verstehe ich dieses Format " -"nicht, oder vielleicht sind die Zugriffsrechte falsch gesetzt?\n" -"Das Symbol wurde nicht geändert." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Symbol '%s' wirklich entfernen?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Kann nicht entfernen '%s':\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Symbol ändern" - -#: usericons.c:279 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "Eine Kopie des Bildes als Standard für diesen MIME-Typ verwenden." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Symbol für alle `%s/' festlegen" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Eine Kopie des Bildes für diesen MIME-Typ verwenden." - -#: usericons.c:288 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Für alle Dateien vom Typ `%s' (%s/%s)" - -#: usericons.c:294 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Fügen Sie die Datei und die Bilddateinamen ihrer perönlichen Liste zu. Die " -"Einstellung geht verloren, wenn das Bild oder die Datei verschoben wird." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "Nur für die Datei `%s'" - -#: usericons.c:305 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Kopiere das Bild ins Verzeichnis als versteckte Datei mit Namen '.DirIcon'. " -"Alle Benutzer werden das Symbol sehen und das Verzeichnis kann gefahrlos " -"verschoben werden. Das ist meistens die beste Variante, wenn Sie " -"Schreibrechte für das Verzeichnis besitzen." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Bild in das Verzeichnis kopieren" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Ziehen Sie ein Symbol hierher" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Definieren des Symbols ist per CHOICESPATH-Variable unterbunden" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Fehler beim kopieren des Bildes '%s':\n" -"%s" - -#: view_details.c:1009 -msgid "_Name" -msgstr "_Name" - -#: view_details.c:1012 -msgid "_Type" -msgstr "_Typ" - -#: view_details.c:1015 -msgid "_Permissions" -msgstr "_Zugriffsrechte" - -#: view_details.c:1016 -msgid "_Owner" -msgstr "_Besitzer" - -#: view_details.c:1018 -msgid "_Group" -msgstr "_Gruppe" - -#: view_details.c:1020 -msgid "_Size" -msgstr "_Größe" - -#: view_details.c:1022 -msgid "Last _Modified" -msgstr "Letzte Änderung" - -#: tips:1 -msgid "Translation" -msgstr "Übersetzung" - -#: tips:2 -msgid "Language" -msgstr "Sprache" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "LANG Environment-Variable benutzen" - -#: tips:4 -msgid "Basque" -msgstr "Baskisch" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Chinesisch (traditionell)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Chinesisch (vereinfacht)" - -#: tips:7 -msgid "Czech" -msgstr "Tchechisch" - -#: tips:8 -msgid "Danish" -msgstr "Dänisch" - -#: tips:9 -msgid "Dutch" -msgstr "Niederländisch" - -#: tips:10 -msgid "English (no translation)" -msgstr "Englisch (keine Übersetzung)" - -#: tips:11 -msgid "Estonian" -msgstr "Estnisch" - -#: tips:12 -msgid "Finnish" -msgstr "Finnisch" - -#: tips:13 -msgid "French" -msgstr "Französisch" - -#: tips:14 -msgid "German" -msgstr "Deutsch" - -#: tips:15 -msgid "Hungarian" -msgstr "Ungarisch" - -#: tips:16 -msgid "Japanese" -msgstr "Japanisch" - -#: tips:17 -msgid "Norwegian" -msgstr "Norwegisch" - -#: tips:18 -msgid "Italian" -msgstr "Italienisch" - -#: tips:19 -msgid "Polish" -msgstr "Polnisch" - -#: tips:20 -msgid "Portuguese (Brasil)" -msgstr "Portugiesisch (Brasilien)" - -#: tips:21 -msgid "Romanian" -msgstr "Rumänisch" - -#: tips:22 -msgid "Russian" -msgstr "Russisch" - -#: tips:23 -msgid "Spanish" -msgstr "Spanisch" - -#: tips:24 -msgid "Swedish" -msgstr "Schwedisch" - -#: tips:25 -msgid "Filer windows" -msgstr "Dateimanager-Fenster" - -#: tips:26 -msgid "Auto-resize filer windows" -msgstr "Fenstergröße automatisch anpassen" - -#: tips:27 -msgid "Never automatically resize" -msgstr "Nie automatisch anpassen" - -#: tips:28 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Sie müssen die Fenstergröße manuell anpassen, indem sie den Fenstermanager " -"oder den `Fenstergröße anpassen'-Menüpunkt benutzen oder durch Doppelklick " -"auf den Fensterhintergrund." - -#: tips:29 -msgid "Resize when changing the display style" -msgstr "Größe beim Ändern des Anzeigemodus anpassen" - -#: tips:30 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Beim Verändern der Symbolgröße oder der angezeigten Details wird die " -"Fenstergröße automatisch neu angepaßt." - -#: tips:31 -msgid "Always resize" -msgstr "Immer anpassen" - -#: tips:32 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Der Dateimanager wird jedesmal, wenn es sinnvoll erscheint (wenn Sie das " -"Verzeichnis wechseln oder die Anzeigeart), die Fenstergröße anpassen." - -#: tips:33 -msgid "Largest window size:" -msgstr "Maximale Fenstergröße:" - -#: tips:34 -msgid "%" -msgstr "%" - -#: tips:35 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"Die maximale Größe, prozentual zum Bildschirm, auf die die automatische " -"Größenanpassung das Fenster vergrößern darf." - -#: tips:36 -msgid "Window behaviour" -msgstr "Fensterverhalten" - -#: tips:37 -msgid "Short titlebar flags" -msgstr "Kurze Titelzeilenflags" - -#: tips:38 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Benutze nur Einzelbuchstaben statt Worten für 'Durchsuche', 'Alle' und " -"'Miniaturen' in der Titelzeile." - -#: tips:39 -msgid "Unique windows" -msgstr "Einmalige Fenster" - -#: tips:40 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Wenn Sie ein Verzeichnis öffnen und dieses Verzeichnis bereits in einem " -"anderen Fenster angezeigt wird, dann veranlaßt diese Option ein Schließen " -"des anderen Fensters." - -#: tips:41 -msgid "New window on button 1" -msgstr "Neues Fenster auf Taste 1" - -#: tips:42 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Ein Klick mit Maustaste 1 (normalerweise die linke Taste) öffnet ein " -"Verzeichnis in einem neuen Fenster, wenn dies aktiviert ist. Ein Klick mit " -"Taste 2 (mittlere) benutzt dafür das aktuelle Fenster." - -#: tips:43 -msgid "Single-click navigation" -msgstr "Öffnen durch einfachen Klick" - -#: tips:44 tips:137 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Klick auf einen Eintrag öffnet diesen, wenn dies an ist. Halten Sie Strg, um " -"stattdessen den Eintrag auszuwählen. Falls aus, wählt ein einfacher Klick " -"den Eintrag an, ein doppelter öffnet ihn." - -#: tips:45 -msgid "Double-click on background resizes" -msgstr "Doppelklick auf Hintergrund ändert Fenstergröße" - -#: tips:46 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Bewirkt, daß sich bei Doppelklick auf den Hintergrund die Fenstergröße " -"anpaßt. Der Werkzeugleistenknopf \"Automatische Größenanpassung\" bewirkt " -"das gleiche." - -#: tips:47 -msgid "Sorting" -msgstr "Sortieren" - -#: tips:48 -msgid "Directories come first (for sort by name)" -msgstr "Verzeichnisse immer zuerst (für Sortieren nach Name)" - -#: tips:49 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Mit dieser Option werden Verzeichnisse beim Sortieren nach Name immer als " -"erstes angezeigt." - -#: tips:50 -msgid "Capitalised names first (for sort by name)" -msgstr "Großgeschriebene Namen zuerst (für Sortieren nach Name)" - -#: tips:51 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Wenn Haken gesetzt, werden Dateien mit großem Anfangsbuchstaben zuerst " -"gelistet." - -#: tips:53 -msgid "Default settings for new windows" -msgstr "Einstellung für neue Fenster" - -#: tips:54 -msgid "Inherit options from source window" -msgstr "Optionen vom Ursprungsfenster übernehmen" - -#: tips:55 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Wenn dies an ist, werden die Anzeige-Optionen eines neuen Fensters von " -"seinem Ursprungsfenster übernommen, sofern möglich, andernfalls werden sie " -"auf die untenstehenden Voreinstellungen gesetzt." - -#: tips:56 -msgid "View type:" -msgstr "Ansichtsart:" - -#: tips:59 -msgid "Sort by:" -msgstr "Sortieren nach:" - -#: tips:61 tips:76 -msgid "Type" -msgstr "Typ" - -#: tips:62 -msgid "Date" -msgstr "Datum" - -#: tips:64 -msgid "Show hidden files" -msgstr "Versteckte Dateien zeigen" - -#: tips:65 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Ist dies an, werden auch Dateien deren Name mit einem Punkt beginnt " -"angezeigt, sonst werden sie versteckt." - -#: tips:66 -msgid "Icon View" -msgstr "Symbolansicht" - -#: tips:67 -msgid "Default size:" -msgstr "Standardgröße:" - -#: tips:68 -msgid "Huge Icons" -msgstr "Riesige Symbole" - -#: tips:69 tips:245 -msgid "Large Icons" -msgstr "Große Symbole" - -#: tips:70 tips:244 -msgid "Small Icons" -msgstr "Kleine Symbole" - -#: tips:72 -msgid "Default details:" -msgstr "Standarddetails:" - -#: tips:73 -msgid "No details" -msgstr "Keine Details" - -#: tips:78 -msgid "Automatic small icons:" -msgstr "Automatisch kleine Symbole:" - -#: tips:79 -msgid "Change at:" -msgstr "Ändern ab:" - -#: tips:81 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Wenn das Verzeichnis diese Anzahl von Dateien enthält, wird es mit Kleinen " -"Symbolen dargestellt, sonst werden Große Symbole verwendet." - -#: tips:82 -msgid "Max width (Large icons):" -msgstr "Max. Breite (Große Symbole):" - -#: tips:83 tips:86 -msgid "pixels" -msgstr "Pixel" - -#: tips:84 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Text, der breiter als dieser Wert ist, wird im 'Große Icons'-Modus in eine " -"zweite Zeile umgebrochen. Im 'Riesige Symbole'-Modus wird der Text " -"umgebrochen, wenn er 50% breiter als dieser Wert ist." - -#: tips:85 -msgid "(Small Icons):" -msgstr "(Kleine Symbole):" - -#: tips:87 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Maximale Breite für den Text neben Kleinen Symbolen." - -#: tips:88 -msgid "Order small icons vertically" -msgstr "Kleine Symbole vertikal ordnen" - -#: tips:89 -msgid "" -"If this option is on, then small icons are ordered vertically, not " -"horizontally." -msgstr "" -"Mit dieser Option aktiv, werden kleine Symbole vertikal geordnet, nicht " -"horizontal." - -#: tips:90 -msgid "Order large icons vertically" -msgstr "Große Symbole vertikal ordnen" - -#: tips:91 -msgid "" -"If this option is on, then large icons are sorted vertically, not " -"horizontally." -msgstr "" -"Wählen Sie dies, um große Symbole vertikal zu sortieren, nicht horizontal." - -#: tips:93 -msgid "Show column headings" -msgstr "Zeige Spaltenüberschriften" - -#: tips:94 -msgid "If this is on then column headings will be shown in the list view." -msgstr "Haken setzen für Spaltenüberschriften in der Listenansicht." - -#: tips:95 -msgid "Show full type" -msgstr "Zeige vollständigen Typ" - -#: tips:96 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" -"Wenn aktiv, wird die vollständige Beschreibung jedes Objekttyps gezeigt, " -"statt einer kurzen Zusammenfassung des Basistyps." - -#: tips:97 -msgid "Tools/Minibuffer" -msgstr "Werkzeuge/Befehlszeile" - -#: tips:98 -msgid "Toolbar" -msgstr "Werkzeugleiste" - -#: tips:99 -msgid "Toolbar type:" -msgstr "Typ der Werkzeugleiste" - -#: tips:100 -msgid "No toolbar" -msgstr "Keine Werkzeugleiste" - -#: tips:101 -msgid "Icons only" -msgstr "Nur Symbole" - -#: tips:102 -msgid "Text under icons" -msgstr "Text unter Symbolen" - -#: tips:103 -msgid "Text beside icons" -msgstr "Text neben Symbolen" - -#: tips:104 -msgid "Show totals of items" -msgstr "Zusammenfassung für Einträge zeigen" - -#: tips:105 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Zeige die Zahl der in einem Dateimanager-Fenster angezeigten Einträge, " -"ebenso wie die Zahl der versteckten Einträge (wenn es solche gibt). Falls " -"eine Auswahl getroffen wurde, zeige Zahl und Gesamtgröße der ausgewählten " -"Einträge." - -#: tips:106 -msgid "Select the buttons you want on the bar:" -msgstr "Wählen Sie die Werkzeuge, die Sie auf der Leiste wünschen:" - -#: tips:107 -msgid "Width of toolbar sets minimum width of window" -msgstr "Breite der Werkzeugleiste bestimmt Minimalbreite des Fensters" - -#: tips:108 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Dateifenster mindestens so breit machen, dass die Werkzeugeleiste " -"vollständig sichtbar ist." - -#: tips:109 -msgid "Minibuffer" -msgstr "Befehlszeile" - -#: tips:110 -msgid "Beep if Tab-completion fails" -msgstr "Piepton wenn Tab-Namenergänzung fehlschlägt" - -#: tips:111 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Drücken Sie Tab in der 'Pfad eingeben...'-Befehlszeile, so wird ein Piepton " -"ausgegeben, falls nichts passiert (z.B. weil es mehrere Möglichkeiten gibt " -"und der nächste Buchstabe variiert)." - -#: tips:112 -msgid "Beep if there are several matches" -msgstr "Piepton bei mehreren Treffern" - -#: tips:113 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Drücken Sie Tab in der 'Pfad eingeben...'-Befehlszeile, so wird ein Piepton " -"ausgegeben, falls mehr als eine passende Datei gefunden wird, auch wenn " -"weitere Buchstaben hinzugefügt wurden." - -#: tips:116 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Wenn Miniaturen eingeschaltet sind, wird jedes Bild verkleinert im " -"Verzeichnisfenster dargestellt." - -#: tips:117 -msgid "Show image thumbnails" -msgstr "Bildminiaturen zeigen" - -#: tips:118 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Das ist die Standardeinstellung für neue Fenster. Über das Menu 'Ansicht' " -"können Miniaturen für jedes Fenster an- und abgeschaltet werden." - -#: tips:119 -msgid "Video thumbnails" -msgstr "Videovorschaubilder" - -#: tips:120 -msgid "Thumbnails cache" -msgstr "Miniaturenspeicher" - -#: tips:121 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Zur Beschleunigung werden die erzeugten Miniaturen im versteckten " -"Verzeichnis ~/.thumbnails gespeichert. Klicken Sie hier, um diesen Speicher " -"zu löschen. Die Miniaturen werden neu erstellt, sobald nötig." - -#: tips:122 tips:195 -msgid "Pinboard" -msgstr "Pinwand" - -#: tips:123 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Wenn Sie die Pinwand verwenden, können Sie Dateien und Programme auf den " -"Hintergrund ziehen und dort für schnellen Zugriff ablegen." - -#: tips:124 tips:241 -msgid "Appearance" -msgstr "Aussehen" - -#: tips:125 -msgid "Foreground:" -msgstr "Vordergrund:" - -#: tips:126 -msgid "Text shadow:" -msgstr "Textschatten:" - -#: tips:127 -msgid "Background:" -msgstr "Hintergrund:" - -#: tips:128 -msgid "No shadow" -msgstr "Kein Schatten" - -#: tips:129 -msgid "Thin" -msgstr "Dünn" - -#: tips:130 -msgid "Thick" -msgstr "Dick" - -#: tips:131 -msgid "Use custom font:" -msgstr "Zeichensatz:" - -#: tips:132 -msgid "The font used for the text displayed under the icons" -msgstr "Der Zeichensatz, der für den Text unter Symbolen verwendet wird" - -#: tips:133 -msgid "Fast scaling of images" -msgstr "Schnelle Bildskalierung" - -#: tips:134 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"Sie können wählen zwischen der schnellen und langsamen Methode zur " -"Größenanpassung der Hintegrundbilder. Die langsame Methode gibt gelegentlich " -"bessere Ergebnisse." - -#: tips:135 -msgid "Pinboard behaviour" -msgstr "Pinwandverhalten" - -#: tips:136 -msgid "Single-click to open" -msgstr "Öffnen durch einfachen Click" - -#: tips:138 -msgid "Keep icons within screen limits" -msgstr "Halte Symbole innerhalb der Bildschirmgrenzen" - -#: tips:139 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Wenn aktiviert, werden Symbole immer komplett innerhalb des Bildschirms " -"gehalten, incl. des Textes" - -#: tips:140 -msgid "Icon grid step:" -msgstr "Rastergröße für Symbole:" - -#: tips:141 -msgid "Fine" -msgstr "Fein" - -#: tips:142 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "" -"Benutze ein Raster mit 2 Pixeln Abstand, um Symbole auf der Arbeitsfläche zu " -"positionieren." - -#: tips:143 -msgid "Medium" -msgstr "Mittel" - -#: tips:144 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "" -"Benutze ein Raster mit 16 Pixeln Abstand, um Symbole auf der Arbeitsfläche " -"zu positionieren." - -#: tips:145 -msgid "Coarse" -msgstr "Grob" - -#: tips:146 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "" -"Benutze ein Raster mit 32 Pixeln Abstand, um Symbole auf der Arbeitsfläche " -"zu positionieren." - -#: tips:147 tips:149 -msgid "Iconified windows" -msgstr "Minimierte Fenster" - -#: tips:148 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"Die meisten Fenstermanager bieten eine Möglichkeit, Fenster zu minimieren " -"(iconifizieren) und manche Programme, wie der ROX Dateimanager, können " -"minimierte Fenster anzeigen. " - -#: tips:150 -msgid "Show iconified windows" -msgstr "Zeige minimierte Fenster" - -#: tips:151 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Wenn diese Option gewählt ist, erscheint jedes minimierte Fenster auf der " -"Pinwand als Symbol. Benötigt einen kompatiblen Fenstermanager und die " -"Pinwand muss verwendet werden." - -#: tips:152 -msgid "Show per workspace" -msgstr "Zeige per Arbeitsfläche" - -#: tips:153 -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Wenn diese Option gewählt ist, werden nur minimierte Fenster gezeigt, die " -"zur aktuellen Arbeitsfläche gehören." - -#: tips:154 -msgid "Iconify to the" -msgstr "Minimieren nach" - -#: tips:155 -msgid "top-left" -msgstr "oben-links" - -#: tips:156 -msgid "top-right" -msgstr "oben-rechts" - -#: tips:157 -msgid "bottom-left" -msgstr "unten-links" - -#: tips:158 -msgid "bottom-right" -msgstr "unten-rechts" - -#: tips:159 -msgid ", going" -msgstr ", aufgereiht" - -#: tips:160 -msgid "horizontally" -msgstr "waagerecht" - -#: tips:161 -msgid "vertically" -msgstr "senkrecht" - -#: tips:162 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"Der Dateimanager weiß nicht mit allen Programmen umzugehen, die direkt auf " -"der Arbeitsfläche laufen. So werden z.B. minimierte Fenster unterhalb der " -"Gnome-Leiste abgelegt. Hier kann eine obere und untere Sperrzone für " -"minimierte Fenster definiert werden. ROX-Filer Leiste verursachen keine " -"Probleme." - -#: tips:163 -msgid "Top margin" -msgstr "Obere Tabuzone" - -#: tips:164 -msgid "Height of no-go area at top of screen." -msgstr "Höhe der Tabuzone am oberen Bildschirmrand." - -#: tips:165 -msgid "Bottom margin" -msgstr "Untere Tabuzone" - -#: tips:166 -msgid "Height of no-go area at bottom of screen." -msgstr "Höhe der Tabuzone am unteren Bildschirmrand" - -#: tips:167 -msgid "Panels" -msgstr "Leisten" - -#: tips:168 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Leisten sind Streifen, die entlang der Bildschirmkanten verlaufen.\n" -"Lesen sie das Handbuch, um mehr über Leisten zu erfahren." - -#: tips:169 -msgid "Panel style" -msgstr "Leistenstil" - -#: tips:170 -msgid "Image and text" -msgstr "Bild und Text" - -#: tips:171 -msgid "Every panel icon is shown with an image and some text." -msgstr "Jedes Leisten-Symbol wird mit Bild und Text angezeigt." - -#: tips:172 -msgid "Image only for applications" -msgstr "Nur Bild für Applikationen" - -#: tips:173 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "" -"Applikationen haben nur ein Bild, alles andere hat beides, Bild und Text." - -#: tips:174 -msgid "Image only" -msgstr "Nur Bild" - -#: tips:175 -msgid "Only the image is shown." -msgstr "Nur das Bild wird angezeigt." - -#: tips:176 -msgid "Panel width (thin)" -msgstr "Leistenbreite (schmal)" - -#: tips:177 -msgid "(thick)" -msgstr "(breit)" - -#: tips:178 -msgid "The size of the panels." -msgstr "Die Größe der Leisten." - -#: tips:179 -msgid "Do not cover panel" -msgstr "Leisten nicht überdecken" - -#: tips:180 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" -"Den Fenster-Manager anweisen, Leisten niemals beim Maximieren von Fenstern " -"zu überdecken. Nicht alle Fenster-Manager beachten diese Einstellung. " -"Normalerweise werden nur einige Pixel am Bildschirmrand reserviert, um das " -"automatische Anheben zu ermöglichen." - -#: tips:181 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:182 -msgid "Confine to Xinerama monitor" -msgstr "Eingrenzen in Xinerama-Monitor" - -#: tips:183 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" -"Für eine Xinerama Multimonitor-Konfiguration, mit dieser Option die Leisten " -"in einen Monitor eingrenzen, statt auf alle auszudehnen." - -#: tips:184 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "" -"Der Monitor in die Leisten im Xinerama-Modus eingegrenzt werden (gezählt von " -"0)." - -#: tips:185 -msgid "Desktop" -msgstr "Arbeitsplatz" - -#: tips:186 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" -"Beim Start durch einen Sitzungsmanager (wie ROX-Session), kann der " -"Dateimanager eine Liste und/oder die Pinwand öffnen. Hier kann eingestellt " -"werden, welche." - -#: tips:187 -msgid "Panel only" -msgstr "Nur Leiste" - -#: tips:188 -msgid "Only a panel is shown." -msgstr "Zeige nur die Leiste." - -#: tips:189 -msgid "Pinboard only" -msgstr "Nur Pinwand" - -#: tips:190 -msgid "Only the pinboard is shown." -msgstr "Zeige nur die Pinwand." - -#: tips:191 -msgid "Panel and pinboard" -msgstr "Leiste und Pinwand" - -#: tips:192 -msgid "Both a panel and a pinboard are shown." -msgstr "Sowohl eine Leiste, als auch die Pinwand werden gezeigt." - -#: tips:193 -msgid "Panel" -msgstr "Leiste" - -#: tips:194 -msgid "Enter the name of the panel to show here." -msgstr "Eingabe des Namens der Leiste" - -#: tips:196 -msgid "Enter the name of the pinboard to show here." -msgstr "Eingabe des Namens der Pinwand" - -#: tips:197 -msgid "Changes here take effect the next time the filer is run." -msgstr "Änderungen treten in Kraft beim nächsten Start des Dateimanagers." - -#: tips:198 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" -"Der Sitzungsmanager wendet diese Einstellungen an durch -S oder --rox-" -"session als Aufrufparameter beim Start des Dateimanagers." - -#: tips:199 -msgid "Action windows" -msgstr "Aktions-Fenster" - -#: tips:200 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Aktions-Fenster öffnen sich, wenn Sie eine Hintergrund-\n" -"Operation starten, wie das Kopieren oder Löschen von Dateien." - -#: tips:201 -msgid "Auto-start (Quiet) these actions" -msgstr "Starte diese Aktionen automatisch (still):" - -#: tips:203 -msgid "Copy files without confirming first." -msgstr "Vor dem Kopieren nicht nachfragen." - -#: tips:205 -msgid "Move files without confirming first." -msgstr "Vor dem Verschieben nicht nachfragen." - -#: tips:207 -msgid "Create links to files without confirming first." -msgstr "Vor dem Erstellen von Verknüpfungen nicht nachfragen." - -#: tips:209 -msgid "Delete files without confirming first." -msgstr "Vor dem Löschen nicht nachfragen." - -#: tips:210 -msgid "Mount" -msgstr "Einhängen" - -#: tips:211 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Vor dem Ein- und Aushängen von Dateisystemen nicht nachfragen." - -#: tips:212 -msgid "Default settings" -msgstr "Voreinstellungen" - -#: tips:214 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Löschen von nicht-schreibbaren Einträgen ohne Rückfragen" - -#: tips:216 -msgid "Don't display so much information in the message area." -msgstr "Weniger Informationen im Mitteilungsfenster anzeigen." - -#: tips:218 -msgid "Also change contents of subdirectories." -msgstr "Ändere auch den Inhalt von Unterverzeichnissen" - -#: tips:221 -msgid "Drag and Drop" -msgstr "Drag & Drop" - -#: tips:222 -msgid "Dragging to icons" -msgstr "Ziehen auf Symbole" - -#: tips:223 -msgid "Allow dragging to icons in filer windows" -msgstr "Ziehen auf Symbole in Verzeichnisfenster erlauben" - -#: tips:224 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Ist diese Option aktiviert, so können Sie eine Datei über ein " -"Unterverzeichnis oder Programm in einem Dateimanager-Fenster ziehen. Der " -"Eintrag wird hervorgehoben und ein Loslassen der Datei führt dazu, daß diese " -"in das Verzeichnis gelegt oder in das Programm geladen wird." - -#: tips:225 -msgid "Directories spring open" -msgstr "Aufspringende Verzeichnisse" - -#: tips:226 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Diese Option, die die vorherige benötigt, bewirkt, daß das hervorgehobene " -"Verzeichnis aufspringt, nachdem eine Datei für eine Weile darübergehalten " -"wurde." - -#: tips:227 -msgid "Spring delay:" -msgstr "Sprungverzögerung:" - -#: tips:228 -msgid "ms" -msgstr "ms" - -#: tips:229 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Diese Option bestimmt, wie lange (1000ms entspricht 1 Sekunde) Sie eine " -"Datei über ein Verzeichnis halten müssen, bevor es aufspringt. Sie benötigt " -"die vorherige Option, um eine Wirkung zu haben." - -#: tips:230 -msgid "When dragging files with the left mouse button" -msgstr "Beim Ziehen von Dateien mit der linken Maustaste" - -#: tips:231 tips:235 -msgid "Show a menu of possible actions" -msgstr "Zeige ein Menü der möglichen Aktionen" - -#: tips:232 -msgid "Copy the files" -msgstr "Kopiere die Dateien" - -#: tips:233 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Das Menü ist weiterhin erreichbar durch Ziehen bei gedrückter Alt-Taste." - -#: tips:234 -msgid "When dragging files with the middle mouse button" -msgstr "Beim Ziehen von Dateien mit der mittleren Maustaste" - -#: tips:236 -msgid "Move the files" -msgstr "Verschiebe die Dateien" - -#: tips:237 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Das Menü ist weiterhin erreichbar, durch Ziehen mit der linken Maustaste bei " -"gedrückter Alt-Taste." - -#: tips:238 -msgid "Download handler" -msgstr "Programm für Internet-Downloads" - -#: tips:239 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Wenn Sie eine Datei aus dem Browser oder anderen Netzwerkquelle ziehen, wird " -"dieses Programm gestartet, um den Download zu erledigen. $1 steht für die " -"URI (Netzadresse), und Ziel ist das aktuelle Verzeichnis. Beispiel:\n" -"xterm -e wget $1" - -#: tips:240 -msgid "Menus" -msgstr "Menüs" - -#: tips:242 -msgid "Size of icons in menus:" -msgstr "Größe der Symbole in Menüs:" - -#: tips:243 -msgid "No Icons" -msgstr "Keine Symbole" - -#: tips:246 -msgid "Same as current window" -msgstr "Wie aktuelles Fenster" - -#: tips:247 -msgid "Same as default" -msgstr "Wie Voreinstellung" - -#: tips:248 -msgid "Behaviour" -msgstr "Verhalten" - -#: tips:249 -msgid "File menu on right-click" -msgstr "Dateimenü auf Rechtsklick" - -#: tips:250 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Zeige das Dateimenü anstelle des Hauptmenüs beim Rechtsklick auf markierte " -"Dateien (das Hauptmenü ist Erreichbar durch Niederhalten der Strg-Taste)." - -#: tips:251 -msgid "`Xterm Here' program" -msgstr "Terminalprogramm:" - -#: tips:252 -msgid "The program to launch when you choose `Xterm Here' from the menu." -msgstr "" -"Das Programm, das gestart wird, wenn Sie 'Terminal hier' aus dem Menü " -"aufrufen." - -#: tips:253 -msgid "Keyboard shortcuts" -msgstr "Tastaturkürzel" - -#: tips:255 -msgid "MIME types" -msgstr "MIME-Typen" - -#: tips:256 -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Der Dateimanager benutzt einen Satz von Regeln, um den richtigen MIME-Typ " -"für jede reguläre Datei herauszufinden, um dann nach einem passenden Symbol " -"für diesen Typ zu suchen." - -#: tips:257 -msgid "Edit MIME rules" -msgstr "MIME-Regeln bearbeiten" - -#: tips:258 -msgid "Themes" -msgstr "Themen" - -#: tips:259 -msgid "Icon theme" -msgstr "Symbolthema" - -#: tips:260 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Symbol-Themen gehören nach ~/.icons." - -#: tips:261 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Benutzen Sie den 'Symbol ändern...'-Dialog, um das Symbol für jeden Typ zu " -"setzen. Beachte, daß so zugewiesene Symbol Vorrang vor Themensymbole " -"genießen." - -#: tips:262 -msgid "Colours" -msgstr "Farben" - -#: tips:263 -msgid "File type colours" -msgstr "Farbe für Dateitypen" - -#: tips:264 -msgid "Colour files based on their types" -msgstr "Dateien entsprechend ihres Typs einfärben" - -#: tips:265 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Dateinamen (und Details) werden entsprechend des Dateityps eingefärbt." - -#: tips:266 -msgid "Directory:" -msgstr "Verzeichnis:" - -#: tips:267 -msgid "Regular file:" -msgstr "Reguläre Datei:" - -#: tips:268 -msgid "Pipe:" -msgstr "Pipe:" - -#: tips:269 -msgid "Socket:" -msgstr "Socket:" - -#: tips:271 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Fehler, z.B. eine Verknüpfung mit einer nicht-existenten Datei, oder eine " -"Datei, zu deren Untersuchung der Dateimanager keine Berechtigung hat." - -#: tips:272 -msgid "Character device:" -msgstr "Zeichengerät:" - -#: tips:273 -msgid "Block device:" -msgstr "Blockgerät:" - -#: tips:274 -msgid "Door:" -msgstr "Door:" - -#: tips:275 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Door-Dateien sind Sockets oder Pipes ähnlich, und sind nur auf Solaris " -"bekannt." - -#: tips:276 -msgid "Executable file:" -msgstr "Ausführbare Datei:" - -#: tips:277 -msgid "Application directory:" -msgstr "Programmverzeichnis:" - -#: tips:278 -msgid "Unknown type:" -msgstr "Unbekannter Typ:" - -#: tips:279 -msgid "Compatibility" -msgstr "Kompatibilität" - -#: tips:280 -msgid "Window manager problems" -msgstr "Fenstermanagerprobleme" - -#: tips:281 -msgid "Override window manager control of the pinboard and panels" -msgstr "Ignoriere Fenstermanagerkontrolle über Pinwand und Leisten" - -#: tips:282 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Manche Fenstermanager unterstützen das neue 'Extended Window Manager Hints' " -"System nicht und behandeln Pinwand und Leisten wie normale Fenster. " -"Probieren Sie diese Option bei Problemen, wie das Erscheinen von Pinwand und " -"Leisten in Fensterlisten, Erscheinen von Titelzeilen und anderer Elemente an " -"Pinwand oder Pane, oder wenn die Pinwand durch Mausklick in den Vordergrund " -"kommt." - -#: tips:283 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Alle Mausklicks auf den Hintergrund an Fenstermanager durchreichen" - -#: tips:284 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normalerweise öffnet sich das Pinwandmenü bei Rechtsklick auf den " -"Hintergrund und Linksklick hebt die Auswahl auf. Aktivieren Sie dies, um die " -"Klicks an den Fenstermanager zu übergeben. Klick auf Symbole werden nicht " -"übergeben." - -#: tips:285 -msgid "Blackbox root menus hack" -msgstr "Hack für das Blackbox Hintergrundmenü" - -#: tips:286 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox und ähnliche Windowmanager vertragen sich noch nicht gut " -"mit der Pinwand. Diese Option aktiviert Notlösungen für das Problem. Mit " -"zukünftigen Versionen dieser Windowmanager dürfte sich dieses Problem " -"erledigen. " - -#: tips:287 -msgid "Panel is a 'dock'" -msgstr "Leiste ist 'Dock'" - -#: tips:288 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" -"Diese Einstellung deaktivieren, falls die Leiste unerwünscht über anderen " -"Fenstern verharrt. Wirkt sich erst nach Neustart des Dateimanagers aus." - -#: tips:289 -msgid "Drag and drop" -msgstr "Ziehen & Ablegen" - -#: tips:290 -msgid "Don't use hostnames" -msgstr "Hostnamen nicht benutzen" - -#: tips:291 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Einige ältere Applikationen unterstützen XDND nicht vollständig und es kann " -"sein, daß Sie diese Option aktivieren müssen. Benutzen Sie sie, wenn beim " -"Ziehen einer Datei über eine Applikation ein + auf dem Mauszeiger erscheint, " -"aber nichts passiert." - -#: tips:292 -msgid "Extended attributes" -msgstr "Erweiterte Attribute" - -#: tips:293 -msgid "Don't use extended attributes" -msgstr "Erweiterte Attribute nicht verwenden" - -#: tips:294 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"Die Verwendung von erweiterten Attributen, wie sie in neueren Systemen " -"verfügbar sind, deaktivieren. Mit der Wahl dieser Option wird der Menüpunkt " -"'Typ zuweisen' deaktiviert. Der Dateityp (MIME-Typ) wird nur aus dem " -"Dateinamen abgeleitet und das Eigenschaftenfenster zeigt keine erweiterten " -"Attribute an." - -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Fehler beim Lesen der MIME-Datenbank:\n" -#~ "%s" - -#~ msgid "File '%s' corrupted!" -#~ msgstr "Datei '%s' defekt!" - -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "Das ~/.mime Verzeichnis wurde in ~/.local/share/mime umbenannt. Bitte " -#~ "verschieben Sie es dahin (eine Verknüpfung zum alten Platz bewahrt " -#~ "Kompatibilität mit alten Programmen). " - -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "Die Datenbank der Standard-MIME-Typen (Version 0.9 oder neuer) ist nicht " -#~ "installiert. Der Dateimanager kann daher Dateien nicht dem richtigen Typ " -#~ "zuordnen. Installieren Sie das Packet 'shared-mime-info-0.9' von hier:\n" -#~ "http://www.freedesktop.org/standards/shared-mime-info.html\n" -#~ "\n" -#~ "Sollte das Packet schon installiert sein, stellen Sie sicher, dass /usr/" -#~ "local/share/mime/globs oder /usr/share/mime/globs mit Leserechten " -#~ "ausgestattet sind." - -#~ msgid "Icon '%s' not present in theme" -#~ msgstr "Symbol '%s' nicht im Thema enthalten" - -#~ msgid "Executable files" -#~ msgstr "Ausführbare Dateien" - -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "eXecutable-Bit für bekannte Dateierweiterungen ignorieren" - -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Hat eine Datei eine bekannte Erweiterung (z.B. '.gif'), so ignoriere das " -#~ "eXecutable-Bit. Dies ist sinnvoll, wenn Sie Dateien auf Windows-" -#~ "Dateisystemen haben, die als ausführbare Programme angezeigt werden." - -#, fuzzy -#~ msgid "Umount" -#~ msgstr "Aushängen" diff --git a/ROX-Filer/src/po/dist b/ROX-Filer/src/po/dist deleted file mode 100755 index 8d2ededf..00000000 --- a/ROX-Filer/src/po/dist +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -echo Making all .gmo files... -echo - -for FILE in *.po; do - ./make-mo ${FILE%.po}; - echo "" -done diff --git a/ROX-Filer/src/po/es.po b/ROX-Filer/src/po/es.po deleted file mode 100644 index 62ccd00f..00000000 --- a/ROX-Filer/src/po/es.po +++ /dev/null @@ -1,4469 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: rox-filer-2.9 spanish\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-16 08:51+0200\n" -"PO-Revision-Date: 2009-10-18 18:45+0100\n" -"Last-Translator: Miguel Anxo Bouzada \n" -"Language-Team: GALPon MiniNo \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Spanish\n" -"X-Poedit-Country: SPAIN\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "_Silencioso" - -#: abox.c:227 -msgid "Quiet" -msgstr "Silencioso" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "No confirme cada operación" - -#: abox.c:454 -#: infobox.c:782 -#: tips:36 -msgid "Name" -msgstr "Nombre" - -#: abox.c:460 -#: menu.c:237 -msgid "Directory" -msgstr "Directorio" - -#: abox.c:549 -msgid "Expression:" -msgstr "Expresión:" - -#: action.c:57 -msgid "See the attr(5) man page for full details." -msgstr "Vea la página del manual attr(5) para más detalles." - -#: action.c:59 -msgid "See the fsattr(5) man page for full details." -msgstr "Vea la página del manual fsattr(5) para más detalles." - -#: action.c:61 -msgid "You do not appear to have OS support." -msgstr "Parece que no tiene soporte OS." - -#: action.c:191 -msgid "Find expression reference" -msgstr "Referencia para expresiones de búsqueda" - -#: action.c:202 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Inicio rápido\n" -"Ponga sólo el nombre del archivo que quiere buscar entre comillas:\n" -"'index.html' (Para encontrar 'index.html')\n" -"\n" -"Ejemplos\n" -"'*.htm', '*.html' (Encuentra HTML)\n" -"IsDIr 'lib' (Encuentra directorios 'lib')\n" -"IsReg 'core' (encuentra un archivo regular llamado 'core')\n" -"! (IsDir, IsReg) (No es un directorio o archivo regular)\n" -"mtime after 1 day ago and size > 1Mb (Con 1 mb y modificado recientemente)\n" -"'CVS' prune, isreg (archivo regular no está en CVS)\n" -"IsReg system(grep -q fred \"%\") (contiene la palabra 'fred')\n" -"\n" -"Probas sinxelas\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (tipos)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permisos)\n" -"IsEmpty, IsMine\n" -"Un patrón entre comillas simples es un patrón comodín estilo terminal.\n" -"Si contiene una barra después del espacio rompe la ruta completa, por el\n" -"contrario rompe el nombre del archivo.\n" -"\n" -"Comparaciones\n" -"<, <=, =, !=, >, >=, After, Before (compara dos valores)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (tamaños de archivos)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (veces)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (valores)\n" -"\n" -"Especiales\n" -"system(command) (verdadero si «comando» devuelve un cero de salida;\n" -"un % en el «comando» es substituido por la ruta del archivo actual)\n" -"prune (falso, impide la búsqueda de contenido en un directorio)." - -#: action.c:249 -msgid "Change permissions reference" -msgstr "Referencia para el cambio de permisos" - -#: action.c:260 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalmente basta con seleccionar una opción del menú desplegable,\n" -"pero a veces se necesita precisar un poco más...\n" -"\n" -"El formato de una orden es CAMBIO,CAMBIO,...\n" -"Cada CAMBIO es: QUIÉN CÓMO PERMISOS\n" -"QUIÉN es alguna combinación de u, g, o que determina si se van a\n" -"cambiar los permisos para el Usuario (propietario), Grupo u Otros.\n" -"CÓMO es +,- o - para añadir, quitar o mantener permisos.\n" -"PERMISOS son combinaciones de las letras rwxXstugo\n" -"\n" -"Los textos entre paréntesis y los espacios son ignorados\n" -"Ejemplos\n" -"u+rw: concede permisos de lectura y escritura al propietario\n" -"g=u: los permisos para grupo son los mismos que los de usuario(s)\n" -"o=u-w: otros tienen los mismos permisos que el propietario menos el de escritura\n" -"a+x: aPermisos de acceso/ejecución - lo mismo que ugo+x\n" -"a+X: los directorios se hacen accesibles para todos; los archivos se hacen ejecutables para todos\n" -"u+rw, go+r: ¡dos órdenes a la vez!\n" -"u+s: poner el bit SetUID - normalmente no tiene efecto en archivos de escritura\n" -"755: configura permisos directamente\n" -"\n" -"Vea la página de ayuda (man) chmod(1) para ver más detalles." - -#: action.c:301 -msgid "Set type reference" -msgstr "Referencia para la definición de tipo" - -#: action.c:312 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalmente «ROX-Filer» determina el tipo de un archivo regular\n" -"buscando un patrón en su nombre. Para cambiar el tipo del archivo\n" -"tiene que renombrarlo.\n" -"\n" -"Algunos sistemas nuevos de archivos pueden soportar algo llamado 'Atributos\n" -"Extendidos' que pueden ser usados para guardar datos adicionales de\n" -"cada archivo como parámetros nombrados. «ROX-Filer» usa el atributo\n" -"«user.mime_type» para guardar los tipos de archivo.\n" -"\n" -"Los tipos de archivo sólo son soportados para archivos regulares, y\n" -"no para directorios, dispositivos, tuberías (pipes) o «sockets», por lo tanto sólo\n" -"en ciertos sistemas de archivos es cuando el S.O. los implementa.\n" - -#: action.c:419 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Proceso terminado.\n" - -#: action.c:435 -msgid "There was one error.\n" -msgstr "Había un error.\n" - -#: action.c:437 -#, c-format -msgid "There were %d errors.\n" -msgstr "Había %d errores.\n" - -#: action.c:461 -msgid "ERROR reading" -msgstr "ERROR al leer" - -#: action.c:504 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Hecho\n" - -#: action.c:560 -#: support.c:395 -msgid "ERROR" -msgstr "ERROR" - -#: action.c:714 -#: main.c:698 -#: main.c:705 -#: main.c:712 -#: main.c:726 -msgid "Yes" -msgstr "Sí" - -#: action.c:717 -#: main.c:700 -#: main.c:707 -#: main.c:714 -#: main.c:726 -msgid "No" -msgstr "No" - -#: action.c:735 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Solicitando al proceso hijo que termine...\n" - -#: action.c:742 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Intentando MATAR un proceso desbocado...\n" - -#: action.c:895 -#, c-format -msgid "?Count contents of %s?" -msgstr "?¿Calcular el contenido de %s?" - -#: action.c:931 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?¿Eliminar %s'%s'?" - -#: action.c:932 -msgid "WRITE-PROTECTED " -msgstr "PROTEGIDO CONTRA ESCRITURA" - -#: action.c:939 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Borrando '%s'\n" - -#: action.c:952 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'El directorio '%s' fue borrado\n" - -#: action.c:985 -#, c-format -msgid "?Eject '%s'?" -msgstr "?¿Expulsar '%s'?" - -#: action.c:992 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Expulsar '%s'\n" - -#: action.c:1011 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"falló la expulsión\n" - -#: action.c:1030 -#: action.c:1049 -#, c-format -msgid "?Check '%s'?" -msgstr "?¿Verificar '%s'?" - -#: action.c:1046 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!La condición de búsqueda no es válida - debe cambiarla y probar de nuevo\n" - -#: action.c:1056 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(al verificar '%s')\n" - -#: action.c:1130 -#: action.c:1155 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?¿Cambiar permisos de '%s'?" - -#: action.c:1136 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Cambiando permisos de '%s'\n" - -#: action.c:1153 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Orden de modo no válida - debe cambiarla y probar de nuevo\n" - -#: action.c:1211 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?¿Cambiar el contenido de '%s'?" - -#: action.c:1214 -#: action.c:1234 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?¿Cambiar el tipo de '%s'?" - -#: action.c:1231 -msgid "!Invalid type - change it and try again\n" -msgstr "!Tipo no válido - debe cambiarlo y probar de nuevo\n" - -#: action.c:1253 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Cambiando el tipo de '%s' a '%s'\n" - -#: action.c:1276 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "'El tipo de directorio '%s no se cambia'\n" - -#: action.c:1282 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "'Archivo no regular '%s' no se cambia\n" - -#: action.c:1342 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?¿'%s' ya existe - %s?" - -#: action.c:1344 -msgid "merge contents" -msgstr "mezclar contenidos" - -#: action.c:1345 -msgid "overwrite" -msgstr "sobreescribir" - -#: action.c:1361 -msgid "'Trying copy anyway...\n" -msgstr "'Intentando copiar de todas formas...\n" - -#: action.c:1370 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?¿Copiar %s en %s?" - -#: action.c:1374 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Copiando %s en %s\n" - -#: action.c:1389 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!ERROR: El destino ya existe pero no es un directorio\n" - -#: action.c:1461 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Fallo al copiar '%s'\n" - -#: action.c:1505 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?¿'%s' ya existe - sobreescribir?" - -#: action.c:1520 -msgid "'Trying move anyway...\n" -msgstr "'Intentando mover de todas formas...\n" - -#: action.c:1528 -#, c-format -msgid "?Move %s as %s?" -msgstr "?¿Mover %s a %s?" - -#: action.c:1532 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Moviendo %s a %s\n" - -#: action.c:1540 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"falla al mover %s a %s\n" - -#: action.c:1561 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!ERROR: No se puede copiar un objeto en él mismo\n" - -#: action.c:1576 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!ERROR: No se puede mover/renombrar un objeto en él mismo\n" - -#: action.c:1588 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Enlazando %s con %s\n" - -#: action.c:1593 -#, c-format -msgid "?Link %s as %s?" -msgstr "?¿Enlazar %s como %s?" - -#: action.c:1636 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Montando %s\n" - -#: action.c:1637 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Desmontando %s\n" - -#: action.c:1640 -#, c-format -msgid "?Mount %s?" -msgstr "?¿Montar %s?" - -#: action.c:1641 -#, c-format -msgid "?Unmount %s?" -msgstr "?¿Desmontar %s?" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Falló el montaje\n" - -#: action.c:1663 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Falló el desmontaje\n" - -#: action.c:1671 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(de todas formas parece que ahora está montado)\n" - -#: action.c:1717 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Total: %s (" - -#: action.c:1723 -msgid "file" -msgstr "archivo" - -#: action.c:1723 -msgid "files" -msgstr "archivos" - -#: action.c:1727 -msgid "no directories)\n" -msgstr "ningún directorio)\n" - -#: action.c:1731 -msgid "directory" -msgstr "directorio" - -#: action.c:1732 -msgid "directories" -msgstr "directorios" - -#: action.c:1773 -msgid "!No mount points selected!\n" -msgstr "!¡Punto de montaje sin seleccionar!\n" - -#: action.c:1858 -msgid "?Another search?" -msgstr "?¿Otra búsqueda?" - -#: action.c:1888 -#: action.c:1919 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' es un enlace simbólico\n" - -#: action.c:1959 -msgid "You need to select some items to search through" -msgstr "Es preciso seleccionar algunos elementos para buscar" - -#: action.c:1969 -#: menu.c:228 -msgid "Find" -msgstr "Buscar" - -#: action.c:2002 -msgid "You need to select some items to count" -msgstr "Es necesario seleccionar algunos elementos para calcular" - -#: action.c:2006 -msgid "Disk Usage" -msgstr "Uso de disco" - -#: action.c:2042 -msgid "Mount / Unmount" -msgstr "Montar / Desmontar" - -#: action.c:2059 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "«ROX-Filer» todavía no soporta puntos de montaje en su sistema. Disculpe." - -#: action.c:2073 -#: menu.c:216 -#: tips:173 -msgid "Delete" -msgstr "Borrar" - -#: action.c:2085 -#: tips:178 -msgid "Force" -msgstr "Forzar" - -#: action.c:2085 -msgid "Don't confirm deletion of non-writeable items" -msgstr "No confirmar el borrado de elementos sin permisos de escritura" - -#: action.c:2088 -#: action.c:2147 -#: action.c:2210 -#: action.c:2283 -#: action.c:2323 -#: tips:180 -msgid "Brief" -msgstr "Registro" - -#: action.c:2088 -msgid "Only log directories being deleted" -msgstr "Sólo crea registro de los directorios al ser borrados" - -#: action.c:2107 -msgid "You need to select the items whose permissions you want to change" -msgstr "Es necesario escoger los elementos cuyos permisos quiere modificar" - -#: action.c:2115 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Hacer ejecutable/buscable)" - -#: action.c:2117 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Hacer no ejecutable/no buscable)" - -#: action.c:2119 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Dar al propietario del archivo permisos de lectura escritura)" - -#: action.c:2121 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privado - acceso permitido sólo al propietario)" - -#: action.c:2123 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Acceso público, sin escritura)" - -#: action.c:2134 -#: menu.c:189 -#: menu.c:226 -#: tips:53 -msgid "Permissions" -msgstr "Permisos" - -#: action.c:2147 -#: action.c:2210 -msgid "Don't list processed files" -msgstr "No listar los archivos procesados" - -#: action.c:2150 -#: action.c:2213 -#: tips:182 -msgid "Recurse" -msgstr "Recursivo" - -#: action.c:2150 -msgid "Also change contents of subdirectories" -msgstr "Cambiar también el contenido de los subdirectorios" - -#: action.c:2154 -msgid "Command:" -msgstr "Comando:" - -#: action.c:2184 -msgid "You need to select the items whose type you want to change" -msgstr "Tiene que seleccionar el elemento cuyo tipo quiere modificar" - -#: action.c:2197 -msgid "Set type" -msgstr "Definir tipo" - -#: action.c:2213 -msgid "Change contents of subdirectories" -msgstr "Cambiar el contenido de los subdirectorios" - -#: action.c:2220 -#: infobox.c:638 -msgid "Type:" -msgstr "Tipo:" - -#: action.c:2267 -#: dnd.c:122 -#: menu.c:2024 -#: tips:167 -msgid "Copy" -msgstr "Copiar" - -#: action.c:2279 -#: action.c:2319 -#: tips:184 -msgid "Newer" -msgstr "Más nuevo" - -#: action.c:2280 -#: action.c:2320 -#: tips:185 -msgid "Only over-write if source is newer than destination." -msgstr "Sobreescribir sólo si el origen es más nuevo que el destino" - -#: action.c:2283 -msgid "Only log directories as they are copied" -msgstr "Crear registro de directorios sólo al ser movidos" - -#: action.c:2307 -#: dnd.c:123 -#: tips:169 -msgid "Move" -msgstr "Mover" - -#: action.c:2323 -msgid "Don't log each file as it is moved" -msgstr "No crear registro de cada archivo al ser movido" - -#: action.c:2346 -#: tips:171 -msgid "Link" -msgstr "Crear enlace" - -#: action.c:2369 -#: appmenu.c:111 -#: filer.c:646 -#: infobox.c:1051 -msgid "Eject" -msgstr "Expulsar" - -#: action.c:2437 -msgid "Deleting items such as " -msgstr "Borrar elementos tales como" - -#: action.c:2441 -msgid "Deleting the item " -msgstr "Borrando el elemento" - -#: action.c:2443 -msgid "Deleting the items " -msgstr "Borrando los elementos" - -#: action.c:2462 -msgid " and " -msgstr " y " - -#: action.c:2471 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " va a afectar a algunos elementos en el tablero o en el panel - ¿quiere borrarlo igualmente?" - -#: action.c:2478 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " va a afectar a algunos elementos en el tablero o en el panel - ¿quiere borrarlos igualmente?" - -#: appmenu.c:197 -msgid "" -msgstr "" - -#: appmenu.c:319 -#, c-format -msgid "Symlink any programs you want into this directory. They will appear in the menu for all items of this type (%s/%s)." -msgstr "Cree los enlaces simbólicos de los programas que quiera en este directorio. Aparecerán en el menú para todos los elementos de este tipo (%s/%s)." - -#: appmenu.c:363 -#: menu.c:239 -msgid "Customise Menu..." -msgstr "Personalizar el menú" - -#: appmenu.c:420 -#: menu.c:257 -#: toolbar.c:158 -msgid "Help" -msgstr "Ayuda" - -#: bookmarks.c:148 -#: log.c:160 -msgid "Path" -msgstr "Ruta" - -#: bookmarks.c:156 -msgid "Title" -msgstr "Título" - -#: bookmarks.c:305 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "No es posible guardar en los favoritos un recurso no local '%s'\n" - -#: bookmarks.c:313 -#: bookmarks.c:631 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' no es un directorio" - -#: bookmarks.c:519 -msgid "You should first select some rows to delete" -msgstr "Debe seleccionar algunas líneas para borrar" - -#: bookmarks.c:543 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Sitúe el cursor en una entrada de la lista para mover" - -#: bookmarks.c:563 -msgid "This item is already at the end" -msgstr "Este elemento ya está al final" - -#: bookmarks.c:637 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "No es posible guardar en los favoritos directorios no locales como '%s'" - -#: bookmarks.c:779 -msgid "Add New Bookmark" -msgstr "Añadir nuevo marcapáginas" - -#: bookmarks.c:786 -msgid "Edit Bookmarks" -msgstr "Editar marcapáginas" - -#: bookmarks.c:791 -msgid "Recently Visited" -msgstr "Visitado recientemente" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "Renombrar archivos en grupo" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "Revertir" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "Hacer en la columna «Nuevo» una copia de la columna «Antiguo»" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "_Renombrar" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "Sustituir:" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Esta es una expresión regular para ser buscada.\n" -"^ coincidencia al inicio de un nombre de archivo\n" -"$ coincidencia al final\n" -"\\. coincidencia a un punto \n" -"\\.htm$ coincidencia al '.htm' en 'index.htm', etc" - -#: bulk_rename.c:107 -msgid "With:" -msgstr "Por:" - -#: bulk_rename.c:114 -msgid "The first match in each filename will be replaced by this string. The only special characters are back-references from \\0 to \\9. To use them literally, they have to be escaped with a backslash." -msgstr "La primera coincidencia en cada nombre de archivo será sustituida por esta expresión. Los únicos caracteres especiales son copias de las referencias de \\0 a \\9. Para usarlos, literalmente, tienen que ser escapados con una barra invertida«\\»." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Aplicar" - -#: bulk_rename.c:123 -msgid "Do a search-and-replace in the New column. The files are not actually renamed until you click on the Rename button below." -msgstr "Buscar y sustituir en los archivos de la columna Nuevo. Los archivos no son realmente renombrados hasta que presione el botón Renombrar, abajo." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "Nombre antiguo" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "Nombre nuevo" - -#: bulk_rename.c:293 -msgid "No strings (in the New column) matched the given expression" -msgstr "Ninguna expresión (en la columna Nuevo) coincide con la expresión dada" - -#: bulk_rename.c:298 -msgid "One name matched, but the result was the same" -msgstr "Un nombre coincide, pero el resultado fue el mismo" - -#: bulk_rename.c:301 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d los nombres coinciden, pero los resultados fueron los mismos" - -#: bulk_rename.c:327 -msgid "Specify a regular expression to match, and a string to replace matches with." -msgstr "Especifique una expresión regular para coincidencias, y una expresión para sustituirlas." - -#: bulk_rename.c:344 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (para '%s')" - -#: bulk_rename.c:377 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Un archivo llamado '%s' ya existe. Abandonando el renombrado en grupo." - -#: bulk_rename.c:382 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Falló al renombrar '%s' como '%s':\n" -"%s\n" -"Abandonando el renombrado en grupo." - -#: bulk_rename.c:444 -#, c-format -msgid "A file called '%s' already exists" -msgstr "El archivo llamado '%s' ya existe" - -#: bulk_rename.c:455 -#, c-format -msgid "Some of the New names contain / characters (eg '%s'). This will cause the files to end up in different directories. Continue?" -msgstr "Algunos de los Nuevos nombres contienen el carácter / (ej. '%s'). Esto hará que los archivos terminen en directorios diferentes. ¿Continuar?" - -#: bulk_rename.c:470 -msgid "None of the names have changed. Nothing to do!" -msgstr "Ninguno de los nombres fue cambiado. ¡No se hace nada!" - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "No fue posible migrar %d directorios" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"La selección fue movida de \n" -"%s\n" -" a una nueva localización \n" -"%s\n" -"%s" - -#: dir.c:1041 -#, c-format -msgid "Can't stat directory: %s" -msgstr "No es posible ver estadísticas del directorio: %s" - -#: dir.c:1050 -#, c-format -msgid "Can't open directory: %s" -msgstr "No es posible abrir el directorio: %s" - -#: display.c:659 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "Fallo en lstat(2): %s" - -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Crear enlace (relativo)" - -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Crear enlace (absoluto)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "Ocurrió un error interno - tipo de información no válida" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "Arrastre un directorio aquí para añadirlo a marcapáginas" - -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "Ocurrió un error en el protocolo XDS: el nombre de una archivo no puede contener '/'\n" - -#: dnd.c:603 -msgid "XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/plain) did not contain a leafname\n" -msgstr "Destino XdndDirectSave0 disponible, pero el elemento XdndDirectSave0 (tipo texto/simple) no contiene un nombre de archivo\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Disculpe - es necesario un destino del tipo text/uri-list o XdndDirectSave0." - -#: dnd.c:619 -msgid "Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "Disculpe - Es necesario el destino del tipo text/uri-list o application/octet-stream." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote machine. For example:\n" -"\n" -"%s" -msgstr "" -"Fallo al añadir algunos elementos al tablero, ya que están en una máquina remota. Por ejemplo:\n" -"\"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "Destino desconocido" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Disculpe - La aplicación remota no consigue o no quiere enviar los datos" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "Hubo un error en protocolo XDS: el código de retorno debería ser 'S', 'F' o 'E'\n" - -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "Disculpe, no es posible mostrar un menú de acciones para un archivo remoto / datos en bruto" - -#: dnd.c:859 -msgid "UntitledData" -msgstr "DatosSinNombre" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "Ocurrió un error al guardar el archivo: %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "No hay URI's en text/uri-list (¡nada que hacer!)" - -#: dnd.c:991 -msgid "Can't get data from remote machine (application/octet-stream not provided)" -msgstr "No es posible obtener datos de la máquina remota (application/octet-stream no disponible)" - -#: dnd.c:1014 -msgid "Some of these files are on a different machine - they will be ignored - sorry" -msgstr "Disculpe - Algunos de estos archivos están en una máquina diferente - van a ser ignorados" - -#: dnd.c:1021 -msgid "None of these files are on the local machine - I can't operate on multiple remote files - sorry." -msgstr "Ninguno de estos archivos está en la máquina local - no se puede operar en múltiples archivos remotos." - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "La acción solicitada es desconocida" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "Ocurrió un error al obtener la lista de archivos: %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "Mostrar" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "Mostrar la selección actual en una ventana del gestor" - -#: dropbox.c:172 -msgid "" -msgstr "" - -#: dropbox.c:237 -msgid "I can't show you the currently set item, because nothing is currently set. Drag something onto me!" -msgstr "No se puede mostrar el elemento definido actualmente, ya que no hay nada definido actualmente. ¡Arrastre algo aquí!" - -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Disculpe, debe soltar un archivo exactamente en el área de destino." - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Disculpe, no se puede usar '%s' porque no es un archivo local." - -#: dropbox.c:278 -#: pinboard.c:932 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"No se puede acceder '%s':\n" -"%s" - -#: filer.c:461 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Ocurrió un error al explorar '%s':\n" -"%s\n" - -#: filer.c:465 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Ocurrió un error al explorar '%s':\n" -"%s" - -#: filer.c:621 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"¿Desea desmontar este dispositivo?\n" -"\n" -"Desmontar un dispositivo hace que sea seguro extraerlo." - -#: filer.c:626 -msgid "Perform the same action in future for this mount point" -msgstr "Realizar la misma acción en el futuro para este punto de montaje" - -#: filer.c:633 -msgid "No change" -msgstr "Sin cambios" - -#: filer.c:639 -#: infobox.c:1049 -#: menu.c:872 -msgid "Unmount" -msgstr "Desmontar" - -#: filer.c:743 -msgid "Directory missing/deleted" -msgstr "Directorio ausente/borrado" - -#: filer.c:1107 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"El grupo %s no está definido. Seleccione algunos archivos y haga clic en Ctrl+%s para definir el grupo. Presione sólo %s para seleccionar los archivos más tarde.\n" -"Asegúrese de que «BloqNum» está activado al usar el teclado numérico." - -#: filer.c:1343 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "No se puede acceder al directorio '%s'" - -#: filer.c:1495 -#, c-format -msgid "Directory '%s' not found." -msgstr "No se encuentra el directorio '%s'." - -#: filer.c:1795 -msgid "Cancel" -msgstr "Cancelar" - -#: filer.c:2076 -msgid "A" -msgstr "A" - -#: filer.c:2078 -#: find.c:923 -msgid "G" -msgstr "G" - -#: filer.c:2083 -msgid "S" -msgstr "S" - -#: filer.c:2085 -msgid "T" -msgstr "T" - -#: filer.c:2095 -msgid "All, " -msgstr "Todos." - -#: filer.c:2098 -#, c-format -msgid "Glob (%s), " -msgstr "Glob (%s)," - -#: filer.c:2106 -msgid "Scanning, " -msgstr "Explorando." - -#: filer.c:2108 -msgid "Thumbs, " -msgstr "Miniaturas, " - -#: filer.c:2384 -msgid "Symbolic link to " -msgstr "Enlace simbólico a " - -#: filer.c:2426 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "El nombre del archivo no es un UTF-8 válido. Debe renombrarlo.\n" - -#: filer.c:2743 -#: menu.c:2014 -msgid "Item no longer exists!" -msgstr "¡El elemento ya no existe!" - -#: filer.c:3549 -msgid "Select display properties to save" -msgstr "Seleccione las propiedades de visualización para guardar" - -#: filer.c:3553 -msgid "Save display settings for directory" -msgstr "Guardar ajustes de visualización para el directorio" - -#: filer.c:3560 -msgid "Select settings to save" -msgstr "Seleccione los ajustes para guardar" - -#: filer.c:3567 -msgid "Position" -msgstr "Posición" - -#: filer.c:3572 -#: toolbar.c:133 -#: toolbar.c:137 -#: tips:39 -msgid "Size" -msgstr "Tamaño" - -#: filer.c:3577 -msgid "Show hidden" -msgstr "Mostrar ocultos" - -#: filer.c:3583 -msgid "Display style" -msgstr "Estilo de visualización" - -#: filer.c:3589 -msgid "Sort type and order" -msgstr "Ordenar por tipo y propietario" - -#: filer.c:3594 -#: toolbar.c:141 -msgid "Details" -msgstr "Detalles" - -#: filer.c:3599 -#: tips:92 -#: tips:93 -msgid "Thumbnails" -msgstr "Miniaturas" - -#: filer.c:3605 -msgid "Filter" -msgstr "Filtro" - -#: find.c:485 -msgid "And" -msgstr "Y" - -#: find.c:509 -msgid "Not" -msgstr "No" - -#: find.c:552 -msgid "system" -msgstr "sistema" - -#: find.c:560 -msgid "prune" -msgstr "descartar" - -#: find.c:648 -msgid "After" -msgstr "Después" - -#: find.c:650 -msgid "Before" -msgstr "Antes" - -#: find.c:744 -msgid "IsReg" -msgstr "EsRegistro" - -#: find.c:746 -msgid "IsLink" -msgstr "EsEnlace" - -#: find.c:748 -msgid "IsDir" -msgstr "EsDirectorio" - -#: find.c:750 -msgid "IsChar" -msgstr "EsCaracter" - -#: find.c:752 -msgid "IsBlock" -msgstr "EsBloque" - -#: find.c:754 -msgid "IsDev" -msgstr "EsDispositivo" - -#: find.c:756 -msgid "IsPipe" -msgstr "EsCanalización" - -#: find.c:758 -msgid "IsSocket" -msgstr "EsSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "EsPuerta" - -#: find.c:762 -msgid "IsSUID" -msgstr "EsSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "EsSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "EsPegajoso" - -#: find.c:768 -msgid "IsReadable" -msgstr "EsLegible" - -#: find.c:770 -msgid "IsWriteable" -msgstr "EsEscribible" - -#: find.c:772 -msgid "IsExecutable" -msgstr "EsEjecutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "EsVacio" - -#: find.c:776 -msgid "IsMine" -msgstr "EsMio" - -#: find.c:904 -msgid "Now" -msgstr "Ahora" - -#: find.c:917 -msgid "Byte" -msgstr "Byte" - -#: find.c:917 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:919 -msgid "Kb" -msgstr "Kb" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mb" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "Sec" -msgstr "Segundo" - -#: find.c:925 -msgid "Secs" -msgstr "Segundos" - -#: find.c:927 -msgid "Min" -msgstr "Minuto" - -#: find.c:927 -msgid "Mins" -msgstr "Minutos" - -#: find.c:929 -msgid "Hour" -msgstr "Hora" - -#: find.c:929 -msgid "Hours" -msgstr "Horas" - -#: find.c:931 -msgid "Day" -msgstr "Día" - -#: find.c:931 -msgid "Days" -msgstr "Días" - -#: find.c:933 -msgid "Week" -msgstr "Semana" - -#: find.c:933 -msgid "Weeks" -msgstr "Semanas" - -#: find.c:935 -msgid "Year" -msgstr "Año" - -#: find.c:935 -msgid "Years" -msgstr "Años" - -#: find.c:944 -msgid "Ago" -msgstr "Antes" - -#: find.c:946 -msgid "Hence" -msgstr "Desde" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "tamaño" - -#: find.c:969 -msgid "inode" -msgstr "nodo-i" - -#: find.c:971 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "bloques" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "Guardar como:" - -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "Sin nombre" - -#: gtksavebox.c:471 -msgid "Remote application wants to use Direct Save, but I can't read the XdndDirectSave0 (type text/plain) property.\n" -msgstr "Una aplicación remota quiere usar «Direct Save», pero no se puede leer la propiedad XdndDirectSave0 (type text/plain).\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Arrastre el icono a un visor de directorio\n" -"(o introduzca la ruta completa)" - -#: gui_support.c:330 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:399 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "Intentando leer un archivo XML como un archivo de texto. El archivo '%s' puede estar dañado." - -#: gui_support.c:416 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the Options window and try changing something and then changing it back (causing the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Ocurrió un error en el archivo '%s' en la línea %d: \n" -"\"%s\"\n" -"Esto puede ser debido al actualizar desde una versión antigua del «ROX-Filer». Abra la ventana «Opciones» elija deshacer y presione en Guardar.\n" -"Los siguientes errores serán ignorados." - -#: gui_support.c:1008 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Línea perdida o incorrecta en los datos «text/uri-list»" - -#: gui_support.c:1341 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "No se puede abrir el archivo '%s': %s" - -#: gui_support.c:1385 -#, c-format -msgid "Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "Fallo al cargar la imagen '%s': razón desconocida, es probable que el archivo de imagen esté dañado" - -#: gui_support.c:1450 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Esta aplicación (%s) no puede ejecutarse, ya que el comando «0launch» no está disponible. Puede descargarlo desde este enlace:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:39 -msgid "Note that you must save your choices and restart the filer for the new language setting to take full effect." -msgstr "Tenga en cuenta que tiene que guardar su selección y reiniciar el programa para que las nuevas definiciones de idioma tengan efecto." - -#: icon.c:76 -msgid "(click to set)" -msgstr "(clic para definir)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "«ROX-Filer»" - -#: icon.c:132 -#: menu.c:258 -msgid "About ROX-Filer..." -msgstr "Acerca de «ROX-Filer»..." - -#: icon.c:133 -#: menu.c:259 -msgid "Show Help Files" -msgstr "Mostrar archivos de ayuda" - -#: icon.c:134 -#: menu.c:260 -msgid "Manual" -msgstr "Manual" - -#: icon.c:136 -#: menu.c:235 -msgid "Options..." -msgstr "Opciones..." - -#: icon.c:137 -#: menu.c:244 -msgid "Home Directory" -msgstr "Directorio «Home»" - -#: icon.c:138 -#: icon.c:1410 -#: menu.c:212 -#: type.c:223 -msgid "File" -msgstr "Archivo" - -#: icon.c:139 -#: menu.c:218 -#: menu.c:885 -msgid "Shift Open" -msgstr "Abrir Con «Mayús»" - -#: icon.c:140 -#: menu.c:223 -msgid "Properties" -msgstr "Propiedades" - -#: icon.c:141 -#: menu.c:221 -msgid "Set Run Action..." -msgstr "Definir qué ejecutar..." - -#: icon.c:142 -#: menu.c:222 -msgid "Set Icon..." -msgstr "Definir icono..." - -#: icon.c:143 -#: icon.c:867 -msgid "Edit Item" -msgstr "Editar elemento" - -#: icon.c:144 -msgid "Show Location" -msgstr "Mostrar localización" - -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "Eliminar elemento(s)" - -#: icon.c:318 -#: log.c:110 -#: menu.c:774 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:331 -msgid "Nothing" -msgstr "Nada" - -#: icon.c:592 -msgid "The location must contain at least one character!" -msgstr "¡La localización debe contener al menos un carácter!" - -#: icon.c:657 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "Debe desbloquear '%s' antes de quitarlo" - -#: icon.c:667 -msgid "You must first select some items to remove" -msgstr "Antes de quitarlo debe seleccionar algún elemento" - -#: icon.c:673 -msgid "An item must be unlocked before it can be removed." -msgstr "El elemento debe ser desbloqueado antes de quitarlo." - -#: icon.c:687 -msgid "You must open the menu over an item" -msgstr "Debes abrir el menú sobre un elemento" - -#: icon.c:712 -#: menu.c:1285 -msgid "You can only set the run action for a regular file" -msgstr "Sólo se puede definir la acción de ejecutar para un archivo regular" - -#: icon.c:798 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Presione el atajo deseado (ej. Control+F1)" - -#: icon.c:820 -msgid "Failed to get keyboard grab!" -msgstr "¡Falla el acceso al teclado!" - -#: icon.c:870 -msgid "Clicking the icon opens:" -msgstr "Presione en el icono para abrir:" - -#: icon.c:880 -msgid "Arguments to pass (for executables):" -msgstr "Argumentos necesarios (para ejecutables):" - -#: icon.c:894 -msgid "The text displayed under the icon is:" -msgstr "El texto mostrado bajo el icono es:" - -#: icon.c:907 -msgid "The keyboard shortcut is:" -msgstr "El atajo de teclado es:" - -#: icon.c:927 -msgid "Locked" -msgstr "Bloqueado" - -#: icon.c:932 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "El bloqueo de un elemento impide que sea eliminado accidentalmente" - -#: infobox.c:113 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "¿Quiere confirmar a apertura de la ventana %d ?" - -#: infobox.c:114 -msgid "Show Info" -msgstr "Información" - -#: infobox.c:136 -#: menu.c:779 -msgid "(bad utf-8)" -msgstr "(utf-8 incorrecto)" - -#: infobox.c:261 -msgid "Show _Help Files" -msgstr "Mostrar archivos de ayuda" - -#: infobox.c:274 -msgid "Permissions" -msgstr "Permisos" - -#: infobox.c:292 -msgid "Contents indicate..." -msgstr "El contenido indica..." - -#: infobox.c:302 -msgid "When all directories are closed" -msgstr "Cuando se cierran todos los directorios" - -#: infobox.c:438 -#: infobox.c:579 -#: support.c:349 -msgid "bytes" -msgstr "bytes" - -#: infobox.c:461 -msgid "Failed to read size" -msgstr "Falló al leer el tamaño" - -#: infobox.c:522 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' ya no es un enlace simbólico" - -#: infobox.c:529 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Fallo al deshacer el vínculo '%s':\n" -"%s" - -#: infobox.c:534 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Fallo al crear el enlace de '%s':\n" -"%s\n" -"(nota: el enlace antiguo fue eliminado)" - -#: infobox.c:558 -#: tips:242 -msgid "Error:" -msgstr "Error:" - -#: infobox.c:565 -msgid "Real directory:" -msgstr "Directorio real:" - -#: infobox.c:568 -msgid "Owner, Group:" -msgstr "Propietario, Grupo:" - -#: infobox.c:575 -#: infobox.c:590 -#: infobox.c:599 -msgid "Size:" -msgstr "Tamaño:" - -#: infobox.c:600 -msgid "Scanning" -msgstr "Explorando" - -#: infobox.c:625 -msgid "Failed to scan" -msgstr "Falló la exploración" - -#: infobox.c:632 -msgid "Change time:" -msgstr "Cambiar fecha:" - -#: infobox.c:634 -msgid "Modify time:" -msgstr "Modificar fecha:" - -#: infobox.c:636 -msgid "Access time:" -msgstr "Hora de acceso: " - -#: infobox.c:644 -msgid "Extended attributes:" -msgstr "Atributos extendidos:" - -#: infobox.c:646 -msgid "Present" -msgstr "Presente" - -#: infobox.c:647 -msgid "None" -msgstr "Ninguno" - -#: infobox.c:648 -msgid "Not supported" -msgstr "No soportado" - -#: infobox.c:660 -msgid "Link target:" -msgstr "Destino del enlace:" - -#: infobox.c:672 -#: infobox.c:675 -msgid "Run action:" -msgstr "Acción:" - -#: infobox.c:672 -msgid "Execute file" -msgstr "Ejecutar archivo" - -#: infobox.c:784 -msgid "Comment" -msgstr "Comentario" - -#: infobox.c:786 -msgid "Execute" -msgstr "Ejecutar" - -#: infobox.c:800 -msgid "" -msgstr "" - -#: infobox.c:871 -#, c-format -msgid "file(1) says... %s" -msgstr "el archivo(1) dice... %s" - -#: infobox.c:928 -#, c-format -msgid "Could not change permissions: %s" -msgstr "No fue posible cambiar los permisos: %s" - -#: infobox.c:946 -msgid "Owner" -msgstr "Propietario" - -#: infobox.c:948 -msgid "Group" -msgstr "Grupo" - -#: infobox.c:950 -msgid "World" -msgstr "Mundo" - -#: infobox.c:953 -msgid "Read" -msgstr "Leer" - -#: infobox.c:956 -msgid "Write" -msgstr "Escribir" - -#: infobox.c:959 -msgid "Exec" -msgstr "Ejecutar" - -#: infobox.c:977 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:984 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:991 -msgid "Sticky" -msgstr "Pegajoso" - -#: infobox.c:1047 -msgid "Do nothing" -msgstr "No hacer nada" - -#: infobox.c:1053 -msgid "Ask" -msgstr "Preguntar" - -#: infobox.c:1065 -msgid "Symbolic link" -msgstr "Enlace simbólico" - -#: infobox.c:1068 -msgid "ROX application" -msgstr "Aplicación ROX" - -#: infobox.c:1076 -msgid "mounted" -msgstr "montado" - -#: infobox.c:1076 -msgid "unmounted" -msgstr "desmontado" - -#: infobox.c:1080 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Punto de montaje para %s (%s)" - -#: infobox.c:1083 -#, c-format -msgid "Mount point (%s)" -msgstr "Punto de montaje (%s)" - -#: log.c:55 -msgid "ROX-Filer started" -msgstr "«ROX-Filer» activado" - -#: log.c:112 -#, c-format -msgid "%s on %d items" -msgstr "%s en %d elementos" - -#: log.c:125 -msgid "Item" -msgstr "Elemento" - -#: log.c:149 -msgid "Time" -msgstr "Hora" - -#: log.c:154 -msgid "Action" -msgstr "Acción" - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"«ROX-Filer» no tiene ABSOLUTAMENTE NINGUNA GARANTIA,\n" -"en toda la extensión permitida por la ley.\n" -"Usted puede redistribuir copias de «ROX-Filer»\n" -"bajo los términos de la GNU General Public License.\n" -"Para más información sobre la licencia, vea el archivo llamado «COPYING».\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Use «ROX-Filer/AppRun --help» para más información.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Use «ROX-Filer/AppRun -h» para más información.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"NOTA: su sistema no soporta opciones largas - \n" -"en su lugar debe utilizar las versiones cortas.\n" -"\n" - -#: main.c:115 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Uso: ROX-Filer/AppRun [OPCIÓN]... [FICHEIRO]...\n" -"Abrir cada directorio o archivo listado, o el directorio de\n" -"trabajo actual si no se da ningún argumento.\n" -"\n" -" -b, --border=PANEL\tabrir PANEL como un panel de borde\n" -" -B, --bottom=PANEL\tabrir PANEL como un panel en el borde\n" -" \tinferior de la pantalla\n" -" -c, --client-id=ID\tusado para la gestión de la sesión\n" -" -d, --dir=DIR\t\tabrir DIR como un directorio (no como aplicación)\n" -" -D, --close=DIR\tcerrar DIR y sus subdirectorios\n" -" -h, --help\t\tmostrar esta ayuda y salir\n" -" -l, --left=PAINEL\tabrir PANEL como un panel en el borde\n" -" \tizquierdo de la pantalla\n" -" -m, --mime-type=FILE\timprime el tipo MIME de FILE y sale\n" -" -n, --new\t\tinicia una nueva copia; para debug del filer\n" -" -p, --pinboard=PIN\tusar el tablero PIN como escritorio\n" -" -r, --right=PANEL\tabrir PANEL como un panel en el borde\n" -" \tderecho de la pantalla\n" -" -R, --RPC\t\tinvocar method call read from stdin\n" -" -s, --show=FILE\tabrir el directorio mostrando FILE\n" -" -S, --rox-session\tusar las opciones predeterminadas de panel y escritorio, y -n\n" -" -t, --top=PANEL\tabrir PANEL como un panel en el borde\n" -" \tsuperior de la pantalla\n" -" -u, --user\t\tmostrar el nombre de usuario en cada ventana \n" -" -v, --version\t\tmostar información de la versión y salir\n" -" -x, --examine=FILE\tFILE ha cambiado - re-examinarlo\n" -"\n" -"Reportar bugs a %s.\n" -"Home page (incluyendo versiones actualizadas): http://rox.sourceforge.net/\n" - -#: main.c:237 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"Tenemos un error BadWindow del servidor X. Esto puede ser debido a este bug del GTK (¿al hacer arrastar-y-soltar?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Intentando continuar..." - -#: main.c:400 -msgid "The -o argument is no longer used. You can turn on override redirect from the Options box instead." -msgstr "El argumento -o ya no se usa. Puede en su lugar activar «override» en la ventana de «Opciones»." - -#: main.c:529 -#, c-format -msgid "Running as user '%s'" -msgstr "Ejecutando como usuario '%s'" - -#: main.c:690 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Compilado con GTK versión %s\n" - -#: main.c:691 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Ejecutando con GTK versión %d.%d.%d\n" - -#: main.c:695 -msgid "features set at compile time" -msgstr "características definidas al compilar" - -#: main.c:696 -msgid "Large File Support" -msgstr "Soporte para archivos largos (LFS)" - -#: main.c:703 -msgid "Inotify support" -msgstr "Soporte para «Inotify»" - -#: main.c:710 -msgid "Dnotify support" -msgstr "Soporte para «dnotify»" - -#: main.c:717 -msgid "Binary compatibility" -msgstr "Compatibilidad binaria" - -#: main.c:719 -msgid "Yes (can run with older glibc versions)" -msgstr "Sí (puede ejecutarse con versiones antiguas del glibc)" - -#: main.c:721 -msgid "No (apsymbols.h not found)" -msgstr "No (no se encuentra apsymbols.h)" - -#: main.c:725 -msgid "Extended attribute support" -msgstr "Soporte para atributos extendidos" - -#: main.c:876 -#, c-format -msgid "Unable to read '%s': %s" -msgstr "Incapaz de leer '%s': %s" - -#: main.c:918 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"Presione en el botón izquierdo para ejecutar %s.\n" -"Presiona el botón derecho para listar las versiones." - -#: menu.c:185 -#: tips:28 -msgid "Display" -msgstr "Mostrar" - -#: menu.c:186 -#: tips:33 -msgid "Icons View" -msgstr "Vista de iconos" - -#: menu.c:187 -msgid "Icons, With..." -msgstr "Iconos con..." - -#: menu.c:188 -#: tips:52 -msgid "Sizes" -msgstr "Tamaños" - -#: menu.c:190 -#: tips:226 -msgid "Types" -msgstr "Tipos" - -#: menu.c:191 -#: tips:55 -msgid "Times" -msgstr "Fechas" - -#: menu.c:192 -#: tips:34 -#: tips:70 -msgid "List View" -msgstr "Lista" - -#: menu.c:194 -msgid "Bigger Icons" -msgstr "Iconos grandes" - -#: menu.c:195 -msgid "Smaller Icons" -msgstr "Iconos pequeños" - -#: menu.c:196 -#: tips:49 -msgid "Automatic" -msgstr "Automático" - -#: menu.c:198 -msgid "Sort by Name" -msgstr "Ordenar por nombre" - -#: menu.c:199 -msgid "Sort by Type" -msgstr "Ordenar por tipo" - -#: menu.c:200 -msgid "Sort by Date" -msgstr "Ordenar por fecha" - -#: menu.c:201 -msgid "Sort by Size" -msgstr "Ordenar por tamaño" - -#: menu.c:202 -msgid "Sort by Owner" -msgstr "Ordenar por propietario" - -#: menu.c:203 -msgid "Sort by Group" -msgstr "Ordenar por grupo" - -#: menu.c:204 -msgid "Reversed" -msgstr "Orden inverso" - -#: menu.c:206 -msgid "Show Hidden" -msgstr "Mostrar ocultos" - -#: menu.c:207 -msgid "Filter Files..." -msgstr "Filtrar archivos..." - -#: menu.c:208 -msgid "Filter Directories With Files" -msgstr "Filtrar directorios con archivos" - -#: menu.c:209 -msgid "Show Thumbnails" -msgstr "Mostrar miniaturas" - -#: menu.c:210 -msgid "Refresh" -msgstr "Actualizar" - -#: menu.c:211 -msgid "Save Current Display Settings..." -msgstr "Guardar ajustes de visualización..." - -#: menu.c:213 -msgid "Copy..." -msgstr "Copiar..." - -#: menu.c:214 -msgid "Rename..." -msgstr "Renombrar..." - -#: menu.c:215 -msgid "Link..." -msgstr "Crear enlace..." - -#: menu.c:219 -msgid "Send To..." -msgstr "Enviar a..." - -#: menu.c:224 -msgid "Count" -msgstr "Tamaño" - -#: menu.c:225 -msgid "Set Type..." -msgstr "Definir tipo..." - -#: menu.c:229 -#: toolbar.c:154 -msgid "Select" -msgstr "Seleccionar" - -#: menu.c:230 -msgid "Select All" -msgstr "Seleccionar todos" - -#: menu.c:231 -msgid "Clear Selection" -msgstr "Limpiar selección" - -#: menu.c:232 -msgid "Invert Selection" -msgstr "Invertir selección" - -#: menu.c:233 -msgid "Select by Name..." -msgstr "Seleccionar por nombre..." - -#: menu.c:234 -msgid "Select If..." -msgstr "Seleccionar si..." - -#: menu.c:236 -msgid "New" -msgstr "Nuevo" - -#: menu.c:238 -msgid "Blank file" -msgstr "Archivo en blanco" - -#: menu.c:240 -#: tasklist.c:309 -msgid "Window" -msgstr "Ventana" - -#: menu.c:241 -msgid "Parent, New Window" -msgstr "Directorio anterior, nueva ventana" - -#: menu.c:242 -msgid "Parent, Same Window" -msgstr "Directorio anterior, misma ventana" - -#: menu.c:243 -msgid "New Window" -msgstr "Nueva ventana" - -#: menu.c:245 -msgid "Show Bookmarks" -msgstr "Mostrar marcapáginas" - -#: menu.c:246 -msgid "Show Log" -msgstr "Mostrar registro" - -#: menu.c:247 -msgid "Follow Symbolic Links" -msgstr "Seguir enlaces simbólicos" - -#: menu.c:248 -msgid "Resize Window" -msgstr "Redimensionar ventana" - -#: menu.c:251 -msgid "Close Window" -msgstr "Cerrar ventana" - -#: menu.c:253 -msgid "Enter Path..." -msgstr "Introducir la ruta..." - -#: menu.c:254 -msgid "Shell Command..." -msgstr "Comando de terminal..." - -#: menu.c:255 -msgid "Terminal Here" -msgstr "Abrir aquí un terminal" - -#: menu.c:256 -msgid "Switch to Terminal" -msgstr "Cambiar a una terminal" - -#: menu.c:725 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Presione la tecla «Shift+Mayús» y haga clic sobre un archivo para enviarlo a algún sitio" - -#: menu.c:764 -msgid "Next Click" -msgstr "Siguiente clic" - -#: menu.c:786 -#, c-format -msgid "%d items" -msgstr "%d elementos" - -#: menu.c:874 -msgid "Open unmounted" -msgstr "Abrir desmontado" - -#: menu.c:877 -msgid "Show Target" -msgstr "Mostrar destino" - -#: menu.c:879 -msgid "Look Inside" -msgstr "Mostrar contenido" - -#: menu.c:881 -msgid "Open As Text" -msgstr "Abrir como texto" - -#: menu.c:1052 -msgid "" -"Extended attributes, used to store types, are not supported for this file or files.\n" -"This may be due to lack of support from the filesystem or the C library, or it may simply be that the filesystem needs to be mounted with the right mount option ('user_xattr' on Linux)." -msgstr "" -"Los atributos extendidos, usados para guardar los tipos de archivo, no son soportados por este(s) archivo(s).\n" -"Esto puede ser debido a falta de soporte por parte del sistema de archivos o de la biblioteca de C, o puede simplemente ser necesario montar el sistema de archivos con las opciones de montaje correctas ('user_xattr' en Linux)." - -#: menu.c:1058 -msgid "Setting type not supported for some of these files" -msgstr "Definir el tipo no está soportado por algunos de estos archivos" - -#: menu.c:1095 -msgid "_Relative link" -msgstr "Enlace _relativo" - -#: menu.c:1101 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink may move but the target will stay put." -msgstr "" -"Si está activado, el enlace simbólico guardará el camino desde éste al archivo de destino. Úsalo de este modo si el enlace y el destino se moverán juntos.\n" -"Si esta desactivado, el enlace guardará el camino a partir del directorio de raíz - úsalo de este modo si el enlace podrá moverse pero el destino deberá permanecer en el mismo sitio." - -#: menu.c:1171 -msgid "New pathname is not absolute" -msgstr "La nueva ruta no es absoluta" - -#: menu.c:1239 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "El enlace a partir de '%s' ya existe. ¿Sustituir por un enlace a '%s'?" - -#: menu.c:1245 -msgid "_Replace" -msgstr "_Sustituir" - -#: menu.c:1365 -#: menu.c:1406 -#: menu.c:1468 -msgid "Create" -msgstr "Crear" - -#: menu.c:1366 -msgid "NewDir" -msgstr "NuevoDirectorio" - -#: menu.c:1380 -#: menu.c:1386 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Ocurrió un error al crear '%s': %s" - -#: menu.c:1407 -msgid "NewFile" -msgstr "NuevoArchivo" - -#: menu.c:1425 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Ocurrió un error al crear el archivo: no fue posible encontrar el modelo para %s" - -#: menu.c:1498 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an application. The applications listed are those in the following directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which will only be shown for files of that type. `.group' is shown only when multiple files are selected." -msgstr "" -"El menú «Enviar a...» permite enviar fácilmente archivos a una aplicación. Las aplicaciones listadas están en los siguientes directorios:\n" -"\n" -"%s\n" -"%s\n" -"El menú «Enviar a...» puede ser abierto con Shift+Clic sobre un archivo.\n" -"\n" -"Uso avanzado:\n" -"Puede también crear subdirectorios llamados «.text_html», «.text», etc que serán presentados sólo para archivos de ese tipo. «.group» es mostrado sólo cuando sean seleccionados varios archivos." - -#: menu.c:1509 -msgid "I'll show you your SendTo directory now; you should symlink (Ctrl+Shift drag) any applications you want into it." -msgstr "Ahora se mostrará el directorio «Enviar a»; en él deberá crear enlaces simbólicos (Ctrl+Shift arrastar) a las aplicaciones que quiera." - -#: menu.c:1512 -#: menu.c:1552 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "Disculpe - Su variable CHOICESPATH -elección de la ruta- no permite la personalización." - -#: menu.c:1545 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Cualquier archivo colocado en su directorio de plantillas aparecerá en el menú «Nuevo». Escogiendo uno de ellos creará una copia de éste como un nuevo archivo.\n" -"\"\n" -"Los siguientes directorios contienen plantillas:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1550 -msgid "I'll show you your Templates directory now; you should place any template files you want inside it." -msgstr "Ahora se mostrará el directorio de plantillas; en él deberá colocar los archivos-plantilla que quiera." - -#: menu.c:1667 -msgid "Customise" -msgstr "Personalizar" - -#: menu.c:1740 -msgid "This is already the canonical name for this directory." -msgstr "Este ya es el nombre canónico para este directorio." - -#: menu.c:1771 -msgid "You can't open a second view onto this directory because the `Unique Windows' option is turned on in the Options window." -msgstr "No es posible abrir una segunda vista para este directorio porque la opción «ventanas únicas» está activada en la ventana de Opciones." - -#: menu.c:1897 -msgid "Copy ... ?" -msgstr "Copiar ... ?" - -#: menu.c:1900 -msgid "Rename ... ?" -msgstr "Renombrar ... ?" - -#: menu.c:1903 -msgid "Symlink ... ?" -msgstr "Crear enlace ... ?" - -#: menu.c:1906 -msgid "Shift Open ... ?" -msgstr "Abrir con «Mayús» ... ?" - -#: menu.c:1909 -msgid "Properties of ... ?" -msgstr "Propiedades de ... ?" - -#: menu.c:1912 -msgid "Set type of ... ?" -msgstr "Definir tipo de ... ?" - -#: menu.c:1915 -msgid "Set run action for ... ?" -msgstr "Definir acción a ejecutar para ... ?" - -#: menu.c:1918 -msgid "Set icon for ... ?" -msgstr "Definir icono para ... ?" - -#: menu.c:1921 -msgid "Send ... to ... ?" -msgstr "Enviar ... a ... ?" - -#: menu.c:1924 -msgid "DELETE ... ?" -msgstr "BORRAR ... ?" - -#: menu.c:1927 -msgid "Count the size of ... ?" -msgstr "Calcular el tamaño de ... ?" - -#: menu.c:1930 -msgid "Set permissions on ... ?" -msgstr "Definir permisos de ... ?" - -#: menu.c:1933 -msgid "Search inside ... ?" -msgstr "Buscar dentro de ... ?" - -#: menu.c:1997 -msgid "You cannot do this to more than one item at a time" -msgstr "" -"Esto sólo es posible hacerlo con un elemento cada vez.\n" -"Rox tiene una política muy visual, arrastre directamente los elementos a la ventana de destino." - -#: menu.c:2029 -msgid "Rename" -msgstr "Renombrar" - -#: menu.c:2034 -msgid "Symlink" -msgstr "Crear enlace" - -#: menu.c:2063 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Los atajos definibles por el usuario están desactivados por omisión en Gtk2, y usted no los activó. Puede activar esta característica al:\n" -"\n" -"1) usar un gestor de XSettings, tal como ROX-Session o con gnome-settings-daemon, o\n" -"\n" -"2) añadiendo esta línea al ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(esto funciona si NO se utiliza XSETTINGS)" - -#: menu.c:2074 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key without opening the menu in future." -msgstr "" -"Para definir un atajo de teclado para un elemento del menú:\n" -"\n" -"- Abra el menú sobre una ventana del gestor de archivos,\n" -"- Mueva el puntero sobre el elemento que quiere usar,\n" -"- Presione la tecla que quiere asociar al menú.\n" -"\n" -"La tecla aparecerá al lado del elemento del menú, y en el futuro podrá simplemente presionar en esa tecla sin tener que abrir el menú." - -#: menu.c:2089 -msgid "Set keyboard shortcuts" -msgstr "Definir atajos de teclado" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Ir a:" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "Comando:" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "Seleccionar si:" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "Seleccionar nombre:" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "Patrón:" - -#: minibuffer.c:265 -msgid "Enter the name of a file and I'll display it for you. Press Tab to fill in the longest match. Escape to close the minibuffer." -msgstr "Introduzca el nombre de un archivo a ser mostrado por el gestor, presione TAB para autocompletar con la selección más próxima, Esc para cerrar." - -#: minibuffer.c:271 -msgid "Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "Introduzca el comando de terminal a ejecutar. Haga clic en un archivo para asignarlo." - -#: minibuffer.c:276 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Introduzca un patrón de nombre de archivo para seleccionar los coincidentes:\n" -"\n" -"? equivale a cualquier carácter\n" -"* equivale a cero o a más caracteres\n" -"[aA] equivale a «a» o «A»\n" -"[a-z] equivale a cualquier carácter desde la «a» la «z» (minúscula)\n" -"*.png equivale a cualquier nombre que termine en «.png»" - -#: minibuffer.c:288 -msgid "Enter a pattern to match for files to be shown. An empty filter turns the filter off." -msgstr "Introduzca un patrón para los archivos que serán mostrados. Un filtro vacío equivale a un filtro desactivado." - -#: minibuffer.c:908 -msgid "Invalid Find condition" -msgstr "Condición de búsqueda no válida" - -#: mount.c:103 -#, c-format -msgid "File system table \"%s\" not found, cannot monitor system mounts" -msgstr "No se encuentra la tabla del sistema de archivos \"%s\", no se supervisan los montajes" - -#: mount.c:393 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s total, %s usado, %s libre (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer convirtió su archivo de Opciones al nuevo formato XML" - -#: options.c:535 -#: options.c:1256 -msgid "(use default)" -msgstr "(predefinido)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Ocurrió un error interno: %s no es legible" - -#: options.c:914 -msgid "Options" -msgstr "Opciones" - -#: options.c:959 -msgid "_Revert" -msgstr "_Revertir" - -#: options.c:965 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Restaurar todas las opciones a como estaban cuando abrió la ventana de «Opciones»." - -#: options.c:980 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Las opciones se guardarán como:\n" -"%s" - -#: options.c:988 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(No está disponible guardar por CHOICESPATH -elección de la ruta-)" - -#: options.c:1161 -#: usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "Se produjo un error guardando %s: %s" - -#: options.c:1793 -msgid "Missing '='" -msgstr "Falta '='" - -#: panel.c:322 -#, c-format -msgid "Unable to replace '%s'" -msgstr "No se puede sustituir '%s'" - -#: panel.c:326 -#, c-format -msgid "Unable to save '%s'" -msgstr "No se puede guardar '%s'" - -#: panel.c:529 -msgid "Your old panel file has been converted to the new XML format." -msgstr "El antiguo archivo de panel fue convertido al nuevo formato XML." - -#: panel.c:637 -msgid "You have tried to close a panel via the window manager - I usually find that this is accidental... really close?" -msgstr "Has intentado cerrar un panel usando el gestor de ventanas - Normalmente eso es accidental... ¿realmente quiere cerrarlo?" - -#: panel.c:738 -msgid "Missing < or > in panel config file" -msgstr "Falta < or > en el archivo de configuración del panel" - -#: panel.c:1610 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Se produjo un error guardando el panel %s: %s" - -#: panel.c:1925 -msgid "Applet quit without ever creating a widget!" -msgstr "¡La mini aplicación se cerró sin crear un «widget»!" - -#: panel.c:2021 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Se produjo un error ejecutando mini aplicación:\n" -"%s" - -#: panel.c:2646 -msgid "Are you sure you want to remove this panel from the desktop?" -msgstr "¿Está seguro de que quiere eliminar este panel del escritorio?" - -#: panel.c:2649 -#: panel.c:2676 -msgid "Remove Panel" -msgstr "Eliminar panel" - -#: panel.c:2672 -msgid "Panel Options..." -msgstr "Opciones del panel..." - -#: panel.c:2757 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Monitor Xinerama %d no disponible" - -#: panel.c:2787 -msgid "Top" -msgstr "Arriba" - -#: panel.c:2789 -msgid "Bottom" -msgstr "Abajo" - -#: panel.c:2791 -msgid "Left" -msgstr "Izquierda" - -#: panel.c:2793 -msgid "Right" -msgstr "Derecha" - -#: panel.c:2795 -msgid "Default" -msgstr "Predeterminado" - -#: panel.c:2799 -msgid "Unknown side" -msgstr "Desconocido" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "Su antiguo tablero fue convertido al nuevo formato XML" - -#: pinboard.c:711 -msgid "The backdrop handler must be an application directory. Drag an application directory into the Set Backdrop dialog box, or (for programmers) pass it to the SOAP SetBackdropApp method." -msgstr "El gestor del fondo debe ser un directorio de aplicación. Arrastre una aplicación del directorio al cuadro de diálogo, o (para programadores) asignarlo a SetBackdropApp método SOAP." - -#: pinboard.c:730 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop element, as described in ROX-Filer's manual." -msgstr "" -"Sólo podrá crear un fondo con una imagen o un programa para que «ROX-Filer» sepa como manejarla.\n" -"\n" -"Programadores: la aplicación AppInfo.xml debe contener el elemento CanSetBackdrop, tal como se describe en el manual de «ROX-Filer»." - -#: pinboard.c:750 -msgid "Set backdrop" -msgstr "Definir fondo" - -#: pinboard.c:761 -msgid "Choose a style and drag an image in:" -msgstr "Elija un estilo y arrastre una imagen en:" - -#: pinboard.c:774 -msgid "Centre the image without scaling it" -msgstr "Centrar la imagen sin escalarla" - -#: pinboard.c:775 -msgid "Centre" -msgstr "Centrado" - -#: pinboard.c:776 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Escalar la imagen para que cubra todo el fondo, sin distorsionarla" - -#: pinboard.c:778 -msgid "Scale" -msgstr "Escalado" - -#: pinboard.c:779 -msgid "Scale the image to fit the backdrop area, regardless of image dimensions - overscale" -msgstr "Escala la imagen para adaptarla al tamaño del fondo, independientemente de las dimensiones -" - -#: pinboard.c:781 -msgid "Fit" -msgstr "Ajustar" - -#: pinboard.c:782 -msgid "Stretch the image to fill the backdrop area" -msgstr "Estira la imagen para rellenar el fondo" - -#: pinboard.c:783 -msgid "Stretch" -msgstr "Estirada" - -#: pinboard.c:784 -msgid "Tile the image over the backdrop area" -msgstr "Hace un mosaico con la imagen para rellenar el fondo" - -#: pinboard.c:785 -msgid "Tile" -msgstr "Mosaico" - -#: pinboard.c:790 -msgid "Drop an image here" -msgstr "Suelte una imagen aquí" - -#: pinboard.c:851 -msgid "No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox -p=Default' to turn it on in future." -msgstr "Ningún tablero estaba en uso... el tablero «Default» está seleccionado. Utilice «rox -p=Default» para activarlo en el futuro" - -#: pinboard.c:945 -msgid "Only files (and certain applications) can be used to set the background image." -msgstr "Sólo se pueden utilizar archivos (y algunas aplicaciones) para fijar una imagen de fondo." - -#: pinboard.c:1602 -msgid "Missing '>' in icon label" -msgstr "Falta '>' en la etiqueta del icono" - -#: pinboard.c:1611 -msgid "Missing ',' after icon label" -msgstr "Falta ',' después de la etiqueta del icono" - -#: pinboard.c:1699 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Se produjo un error guardando el tablero %s: %s" - -#: pinboard.c:2244 -msgid "Backdrop..." -msgstr "Fondo de pantalla..." - -#: pinboard.c:2247 -msgid "Add Panel" -msgstr "Añadir panel" - -#: pinboard.c:2341 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Se produjo un error cargando la imagen de fondo:\n" -"%s\n" -"Fondo eliminado." - -#: pixmaps.c:969 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"No se pueden eliminar miniaturas en %s:\n" -"%s" - -#: pixmaps.c:990 -msgid "There are no thumbnails to delete" -msgstr "No hay miniaturas para borrar" - -#: pixmaps.c:1003 -msgid "Purge thumbnails disk cache" -msgstr "Eliminar miniaturas de la «caché»" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "Estilo '%s' desconocido" - -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Detalles del tipo '%s' desconocidos" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Tipo de ordenación '%s' desconocido" - -#: remote.c:1247 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Intento de invocar el método '%s' SOAP desconocido" - -#: run.c:99 -#: run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "El programa %s no se encuentra - ¿borrado?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "El archivo: %s no existe o no se puede acceder a él" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "No se sabe como abrir '%s'" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "'%s' no es una URI válida" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "%s no es accesible" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "%s no es una URL local" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s: no es manejado por %s" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it (hold down Shift while you open it). Most applications provide their own help here, but this one doesn't." -msgstr "" -"Aplicación:\n" -"Esto es un directorio de aplicación - puede ejecutarlo como un programa, o abrirlo (clic «Mayús» mientras lo abre). La mayoría de las aplicaciones tienen su propia ayuda aquí, pero ésta no lo hace." - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "No se pudieron enviar los datos al programa: %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "No se puede leer el enlace: %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Enlace simbólico roto (o usted no tiene permiso para usarlo): %s" - -#: run.c:573 -#, c-format -msgid "No run action specified for files of this type (%s/%s) - you can set a run action by choosing `Set Run Action' from the File menu, or you can just drag the file to an application.%s" -msgstr "No se especificó ninguna acción para archivos de este tipo (%s/%s) - Defina la acción Ejecutar en el menú «Siguiente clic» o arrastre este archivo a una aplicación.%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Nota: si se trata de ejecutar una aplicación, necesita ajustar el bit de ejecución en el menú «Permisos»." - -#: run.c:753 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the permissions now (this problem may have been caused by a bug in earlier versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. Otherwise, you should check, or even just delete, all the existing run actions." -msgstr "" -"¡El ejecutable '%s' es escribible por todos! Se rehúsa su ejecución. Por favor cambie los permisos ahora (este problema puede ser causado por un fallo en las versiones anteriores del gestor).\n" -"\n" -"Hay ejecutables (no enlaces simbólicos) escribibles por todos, eso significa que cualquier persona que maneje su computadora puede sustituir sus aplicaciones por otras con código malicioso.\n" -"\n" -"Si usted confía en quien pueda escribir en estos archivos no debe preocuparse. En caso contrario, debería comprobar, o suprimir, todos los permisos que afecten a archivos ejecutables." - -#: run.c:766 -msgid "go-w (Fix security problem)" -msgstr "go-w (Evita problemas de seguridad)" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: support.c:1596 -#: support.c:1650 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Fallo al abrir y analizar el archivo '%s': %s" - -#: support.c:1607 -#: support.c:1661 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Fallo mapeando el archivo '%s': %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "Cerrar" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "Cerrar la ventana del gestor" - -#: toolbar.c:117 -msgid "Up" -msgstr "Subir" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "Cambiar al directorio superior" - -#: toolbar.c:121 -msgid "Home" -msgstr "Inicio" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "Cambiar a directorio de inicio" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "Marcadores" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "Menú de marcadores" - -#: toolbar.c:129 -msgid "Scan" -msgstr "Analizar" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "Actualizar los contenidos del directorio" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "Cambiar tamaño del icono" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "Tamaño automático" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "Mostrar detalles extra" - -#: toolbar.c:145 -msgid "Sort" -msgstr "Ordenar" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "Cambiar criterio de ordenación" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "Oculto" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"Izquierda: muestra/oculta archivos ocultos\n" -"Derecha: muestra/oculta miniaturas" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "Seleccionar todo/invertir la selección" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "Mostrar ayuda de «ROX-Filer»" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u oculto)" - -#: toolbar.c:229 -#: tips:58 -msgid "items" -msgstr "elementos" - -#: toolbar.c:229 -msgid "item" -msgstr "elemento" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "Sin elementos%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u seleccionado (%s)" - -#: toolbar.c:445 -msgid "Sort by name" -msgstr "Ordenar por nombre" - -#: toolbar.c:445 -msgid "Sort by type" -msgstr "Ordenar por tipo" - -#: toolbar.c:445 -msgid "Sort by date" -msgstr "Ordenar por fecha" - -#: toolbar.c:446 -msgid "Sort by size" -msgstr "Ordenar por tamaño" - -#: toolbar.c:446 -msgid "Sort by owner" -msgstr "Ordenar por propietario" - -#: toolbar.c:446 -msgid "Sort by group" -msgstr "Ordenar por grupo" - -#: toolbar.c:480 -msgid "ascending" -msgstr "ascendente" - -#: toolbar.c:480 -msgid "descending" -msgstr "descendente" - -#: type.c:214 -msgid "Sym link" -msgstr "Enlace simbólico" - -#: type.c:216 -msgid "Mount point" -msgstr "Punto de montaje" - -#: type.c:218 -msgid "App dir" -msgstr "Directorio de aplicaciones" - -#: type.c:225 -msgid "Dir" -msgstr "Directorio" - -#: type.c:227 -msgid "Char dev" -msgstr "Dispositivo de carácter" - -#: type.c:229 -msgid "Block dev" -msgstr "Dispositivo de bloque" - -#: type.c:231 -msgid "Pipe" -msgstr "Canalización" - -#: type.c:233 -msgid "Socket" -msgstr "Socket" - -#: type.c:235 -msgid "Door" -msgstr "Puerta" - -#: type.c:238 -msgid "Unknown" -msgstr "Desconocido" - -#: type.c:554 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Introduzca la orden para cargar \"$@\" con el programa adecuado. Ej:\n" -"\n" -"gimp \"$@\"" - -#: type.c:735 -msgid "This is not a program! Give me an application instead!" -msgstr "¡No es una aplicación o archivo ejecutable!" - -#: type.c:795 -msgid "No run action defined" -msgstr "No está definida ninguna acción para ejecutar" - -#: type.c:799 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Se produjo un error en: %s manejando %s" - -#: type.c:814 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "La aplicación %s no es válida (AppRun defectuoso)" - -#: type.c:825 -#, c-format -msgid "Non-executable %s" -msgstr "No ejecutable %s" - -#: type.c:858 -msgid "Set run action" -msgstr "Definir acción para ejecutar" - -#: type.c:864 -msgid "If a handler for the specific type isn't set up, use this as the default." -msgstr "Si el programa usado para este tipo de archivo no está definido, usar este como predeterminado." - -#: type.c:866 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Predeterminar para todos `%s/'" - -#: type.c:870 -msgid "Use this application for all files with this MIME type." -msgstr "Utilizar esta aplicación para todos los archivos del mismo tipo MIME" - -#: type.c:872 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Sólo para los del tipo `%s' (%s/%s)" - -#: type.c:878 -msgid "Drop a suitable application here" -msgstr "Arrastre la aplicación apropiada aquí" - -#: type.c:893 -msgid "OR" -msgstr "O" - -#: type.c:900 -msgid "Enter a shell command:" -msgstr "Introduzca un comando de terminal:" - -#: type.c:929 -msgid "_Use Command" -msgstr "_Usar el comando" - -#: type.c:959 -msgid "A run action already exists and is quite a big program - are you sure you want to delete it?" -msgstr "Ya está especificada una acción y es un programa - ¿está seguro de que quiere eliminarlo?" - -#: type.c:970 -#, c-format -msgid "Can't remove %s: %s" -msgstr "No se puede eliminar %s: %s" - -#: type.c:1007 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "La opción guardar fue desactivada por la variable CHOICESPATH -elección de la ruta-" - -#: type.c:1309 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s" -msgstr "" -"Fallo creando el enlace simbólico '%s':\n" -"%s" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "La ruta indicada no existe. El icono no fue cambiado." - -#: usericons.c:189 -#: usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"No es posible cargar la imagen -- o está en un formato desconocido o no tiene los permisos apropiados\n" -"El icono no fue cambiado." - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "¿Quiere borrar el icono '%s'?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"No se puede borrar '%s':\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "Definir icono" - -#: usericons.c:281 -msgid "Use a copy of the image as the default for all files of these MIME types." -msgstr "Use una copia de la imagen como predeterminada para todos los archivos de este tipo MIME." - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Predeterminar para todos `%s/'" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Use una copia de la imagen para todos los archivos de este tipo MIME." - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Para todos los del tipo `%s' (%s/%s)" - -#: usericons.c:296 -msgid "Add the file and image filenames to your personal list. The setting will be lost if the image or the file is moved." -msgstr "Añadir el archivo y los nombres de las imágenes a tu lista personal. Esto se perderá si la imagen o el archivo se mueven." - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "Sólo para el archivo `%s'" - -#: usericons.c:307 -msgid "Copy the image inside the directory, as a hidden file called '.DirIcon'. All users will then see the icon, and you can move the directory around safely. This is usually the best option if you can write to the directory." -msgstr "Copiar la imagen dentro del directorio, como un archivo oculto llamado |. DirIcon ». Todos los usuarios verán el icono, y pueden mover el directorio con seguridad. Normalmente esta es la mejor opción si usted puede escribir en el directorio." - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "Copie la imagen a este directorio" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "Arrastre un archivo de icono aquí" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "-elección de la ruta-" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Se produjo un error creando la imagen '%s':\n" -"%s" - -#: view_details.c:957 -msgid "Mono font" -msgstr "Fuente «Mono»" - -#: view_details.c:958 -msgid "Font for displaying mono-spaced text" -msgstr "Fuente para mostrar texto mono-espaciado" - -#: view_details.c:1059 -msgid "_Name" -msgstr "_Nombre" - -#: view_details.c:1062 -msgid "_Type" -msgstr "_Tipo" - -#: view_details.c:1065 -msgid "_Permissions" -msgstr "_Permisos" - -#: view_details.c:1070 -msgid "_Owner" -msgstr "Pr_opietario" - -#: view_details.c:1072 -msgid "_Group" -msgstr "_Grupo" - -#: view_details.c:1074 -msgid "_Size" -msgstr "_Tamaño" - -#: view_details.c:1080 -msgid "Last _Modified" -msgstr "Última _modificación" - -#: tips:1 -msgid "Filer windows" -msgstr "Ventanas del gestor" - -#: tips:2 -msgid "Auto-resize filer windows" -msgstr "Ajustar automáticamente las ventanas del gestor" - -#: tips:3 -msgid "Never automatically resize" -msgstr "No ajustar nunca automáticamente" - -#: tips:4 -msgid "You'll have to resize windows manually, using the window manager, the `Resize Window' menu entry or by double-clicking on the window background." -msgstr "Tendrá que cambiar el tamaño de las ventanas manualmente, utilizando el gestor de ventanas, en la entrada del menú «Redimensionar ventana» o haciendo doble clic en el fondo d la ventana." - -#: tips:5 -msgid "Resize when changing the display style" -msgstr "Redimensionar cuando cambie el estilo de ventana" - -#: tips:6 -msgid "Changing the size of the icons or which details are displayed will resize the window for you." -msgstr "Cambia el tamaño de los iconos o los detalles que se muestran redimensionará la ventana por ti." - -#: tips:7 -msgid "Always resize" -msgstr "Redimensionar siempre" - -#: tips:8 -msgid "The filer will resize windows whenever it seems useful (that is, when changing directory or display style)." -msgstr "El gestor redimensionará ventanas siempre que parezca útil (es decir, cambiando el directorio o el estilo)." - -#: tips:9 -msgid "Largest window size:" -msgstr "Tamaño de la ventana más grande" - -#: tips:10 -msgid "%" -msgstr "%" - -#: tips:11 -msgid "The largest size, as a percentage of the screen size, that the auto-resizer will resize a window to." -msgstr "El tamaño mayor, como un porcentaje del tamaño de la pantalla, al que se redimensionará automáticamente una ventana." - -#: tips:12 -msgid "Window behaviour" -msgstr "Comportamiento de la ventana" - -#: tips:13 -msgid "Short titlebar flags" -msgstr "Marcas en la barra de título cortas" - -#: tips:14 -msgid "Use single letters instead of words for Scanning, All and Thumbs indicators in the titlebar." -msgstr "Usar letras en vez de palabras para la exploración, indicadores de «Todo» y «Miniaturas» en la barra de título." - -#: tips:15 -msgid "Unique windows" -msgstr "Ventanas únicas" - -#: tips:16 -msgid "If you open a directory and that directory is already displayed in another window, then this option causes the other window to be closed." -msgstr "Si abre un directorio que ya está abierto en otra ventana, esto hará que la otra ventana sea cerrada." - -#: tips:17 -msgid "New window on button 1" -msgstr "Ventana nueva en botón 1" - -#: tips:18 -msgid "Clicking with mouse button 1 (usually the left button) opens a directory in a new window with this turned on. Clicking with the button-2 (middle) will reuse the current window." -msgstr "Activando esta opción, al hacer clic en el botón 1 (normalmente el izquierdo) abre el directorio en una ventana nueva. Hacer clic con el botón 2 (el del medio) hará que se abra en la ventana actual." - -#: tips:19 -msgid "Single-click navigation" -msgstr "Navegación con un sólo clic" - -#: tips:20 -#: tips:116 -msgid "Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things." -msgstr "Hacer clic una vez abre el elemento. Para seleccionarlo pulse la tecla «Ctrl». Si esta opción esta desactivada, con un sólo clic selecciona y con dos lo abre." - -#: tips:21 -msgid "Double-click on background resizes" -msgstr "Doble clic sobre el fondo redimensiona" - -#: tips:22 -msgid "If on then double clicking on the window background resizes the window, just like clicking on the Automatic size mode button in the toolbar." -msgstr "Si hace doble clic sobre el fondo de la ventana, redimensiona la ventana como si hiciera clic en el icono de tamaño automático en la barra de tareas." - -#: tips:23 -msgid "Sorting" -msgstr "Ordenando" - -#: tips:24 -msgid "Directories come first (for sort by name)" -msgstr "Los directorios van antes (al ordenarlos por nombres)" - -#: tips:25 -msgid "If this is on then directories will always appear before anything else when sorting by name." -msgstr "Activada esta opción, los directorios aparecerán antes que los archivos cuando se ordena por nombre." - -#: tips:26 -msgid "Capitalised names first (for sort by name)" -msgstr "Nombres en mayúscula van antes (al ordenar por nombres)" - -#: tips:27 -msgid "If on, all filenames starting with a capital letter come before filenames starting with lowercase ones." -msgstr "Activada esta opción los archivos cuyos nombres comienzan con una mayúscula van antes que los archivos cuyos nombres comienzan con minúsculas." - -#: tips:29 -msgid "Default settings for new windows" -msgstr "Ajustes predeterminados para ventanas nuevas" - -#: tips:30 -msgid "Inherit options from source window" -msgstr "Heredar opciones de la ventana origen" - -#: tips:31 -msgid "If this is on then display options for a new window are inherited from the source window if possible, otherwise they are set to the defaults below." -msgstr "Activando esta opción, las ventanas nuevas heredan los ajustes de la ventana origen, si es posible, de lo contrario toman como predeterminado el aquí definido." - -#: tips:32 -msgid "View type:" -msgstr "Ver tipo: " - -#: tips:35 -msgid "Sort by:" -msgstr "Ordenar por: " - -#: tips:37 -#: tips:54 -msgid "Type" -msgstr "Tipo" - -#: tips:38 -msgid "Date" -msgstr "Fecha" - -#: tips:40 -msgid "Show hidden files" -msgstr "Mostrar archivos ocultos" - -#: tips:41 -msgid "If this is on then files whose names start with a dot are shown too, otherwise they are hidden." -msgstr "Si está activada, los archivos cuyos nombres comienzan con un punto se mostrarán, si no, permanecerán ocultos." - -#: tips:42 -msgid "Show extended attribute indicator" -msgstr "Mostrar indicador de atributo extendido" - -#: tips:43 -msgid "If this is on then files which have one or more extended attributes set will have an emblem added to indicate this." -msgstr "Si está activada la opción, los archivos que tienen uno o más atributos extendidos tendrán un emblema añadido para indicarlo." - -#: tips:44 -msgid "Icon View" -msgstr "Ver como iconos" - -#: tips:45 -msgid "Default size:" -msgstr "Tamaño predeterminado: " - -#: tips:46 -msgid "Huge Icons" -msgstr "Iconos gigantes" - -#: tips:47 -#: tips:217 -msgid "Large Icons" -msgstr "Iconos grandes" - -#: tips:48 -#: tips:216 -msgid "Small Icons" -msgstr "Iconos pequeños" - -#: tips:50 -msgid "Default details:" -msgstr "Detalles predeterminados:" - -#: tips:51 -msgid "No details" -msgstr "Sin detalles" - -#: tips:56 -msgid "Automatic small icons:" -msgstr "Iconos pequeños automáticamente:" - -#: tips:57 -msgid "Change at:" -msgstr "Cambiar a:" - -#: tips:59 -msgid "When automatic icon sizing is selected: If the directory contains this many items then it will be shown using Small Icons, otherwise Large Icons will be used." -msgstr "Cuando se selecciona el tamaño automático: si el directorio contiene muchos elementos se mostrarán iconos pequeños, si no, se mostrarán los iconos grandes." - -#: tips:60 -msgid "Max width (Large icons):" -msgstr "Anchura máxima (iconos grandes):" - -#: tips:61 -#: tips:64 -msgid "pixels" -msgstr "píxeles" - -#: tips:62 -msgid "Text wider than this is broken onto two lines in Large Icons mode. In Huge Icons mode, text is wrapped when 50% wider than this." -msgstr "El texto más ancho que esto se romperá en dos líneas en el modo de Iconos grandes. En el modo Gigante, el texto se cortará cuando supere el 50% de esta anchura." - -#: tips:63 -msgid "(Small Icons):" -msgstr "(Iconos pequeños):" - -#: tips:65 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Anchura máxima para el texto bajo los iconos pequeños." - -#: tips:66 -msgid "Order small icons vertically" -msgstr "Ordenar los iconos pequeñas en vertical" - -#: tips:67 -msgid "If this option is on, then small icons are arranged in columns, not rows." -msgstr "Si se activa esta opción, los iconos pequeños se mostrarán en columnas, si no en filas." - -#: tips:68 -msgid "Order large icons vertically" -msgstr "Ordenar los iconos grandes en vertical" - -#: tips:69 -msgid "If this option is on, then large icons are arranged in columns, not rows." -msgstr "Si se activa esta opción, los iconos grandes se mostrarán en columnas, si no en filas." - -#: tips:71 -msgid "Show column headings" -msgstr "Mostrar encabezamientos de las columnas" - -#: tips:72 -msgid "If this is on then column headings will be shown in the list view." -msgstr "Activando esta opción los encabezamientos de las columnas se mostrarán en la vista de lista." - -#: tips:73 -msgid "Show full type" -msgstr "Mostrar todos los tipos" - -#: tips:74 -msgid "If this is on then the full description of each object's type will be show rather than a short summary of its basic type." -msgstr "Activando esta opción, la descripción completa de cada tipo de objeto no se muestra más que como un resumen de su tipo básico." - -#: tips:75 -msgid "Tools/Minibuffer" -msgstr "Herramientas/Mini búfer" - -#: tips:76 -msgid "Toolbar" -msgstr "Barra de herramientas" - -#: tips:77 -msgid "Toolbar type:" -msgstr "Tipo de barra de herramientas:" - -#: tips:78 -msgid "No toolbar" -msgstr "Sin barra de herramientas" - -#: tips:79 -msgid "Icons only" -msgstr "Sólo iconos" - -#: tips:80 -msgid "Text under icons" -msgstr "Texto bajo los iconos" - -#: tips:81 -msgid "Text beside icons" -msgstr "Texto al lado de los iconos" - -#: tips:82 -msgid "Show totals of items" -msgstr "Muestra la totalidad de los elementos" - -#: tips:83 -msgid "Show the number of items displayed in a filer window, as well as the number of hidden items (if any). When there's a selection, show the number of selected items and their combined size." -msgstr "Muestra el número de elementos que aparece en una ventana del gestor, así como el número de elementos ocultos (en su caso). Cuando hay una selección, muestra el número de elementos seleccionados y su tamaño combinado." - -#: tips:84 -msgid "Select the buttons you want on the bar:" -msgstr "Seleccione los botones que desee tener en la barra:" - -#: tips:85 -msgid "Width of toolbar sets minimum width of window" -msgstr "La anchura de la barra de herramientas establece el ancho mínimo de la ventana" - -#: tips:86 -msgid "Each filer window is constrained to be wide enough to show the whole of the toolbar" -msgstr "Las ventanas son obligadas a ser lo suficientemente amplias como para mostrar la totalidad de la barra de herramientas" - -#: tips:87 -msgid "Minibuffer" -msgstr "Mini búfer" - -#: tips:88 -msgid "Beep if Tab-completion fails" -msgstr "Pitido si falla autocompletar con «Tab»" - -#: tips:89 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if nothing happens (eg, because there are several possibilities and the next letter varies)." -msgstr "Cuando se usa «Introducir la ruta...» y se presiona «Tab», se escucha un pitido si no ocurre nada (Ej.: porque hay varias posibilidades y la siguiente letra varía)." - -#: tips:90 -msgid "Beep if there are several matches" -msgstr "Pitido si hay varias coincidencias" - -#: tips:91 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if there is more than one matching file, even though some more letters were added." -msgstr "Cuando se usa «Introducir la ruta...» y se presiona «Tab», se escucha un pitido si hay más de un archivo que encaja, incluso si algunas letras más fueron añadidas." - -#: tips:94 -msgid "When thumbnails are turned on, each image file in a directory is loaded and a small thumbnail of it is shown." -msgstr "Cuando se activan las miniaturas, cada archivo de imagen de un directorio carga una pequeña miniatura para mostrar." - -#: tips:95 -msgid "Show image thumbnails" -msgstr "Mostrar miniaturas" - -#: tips:96 -msgid "This is the default setting for new windows. Use the Display menu to turn thumbnails on and off for individual windows." -msgstr "Esta es la configuración predeterminada para las ventanas nuevas. Use el menú desplegable para activar/desactivar las miniaturas en las ventanas." - -#: tips:97 -msgid "Video thumbnails" -msgstr "Miniaturas de vídeo" - -#: tips:98 -msgid "Thumbnails cache" -msgstr "Caché de miniaturas" - -#: tips:99 -msgid "To speed things up, the generated thumbnails are stored in the hidden ~/.thumbnails directory. Click here to remove all the cached thumbnails. They will be created again as needed." -msgstr "Para acelerar el trabajo, as miniaturas generadas son almacenadas en el directorio oculto ~/.thumbnails. Haga clic aquí para eliminar la cache de las miniaturas. Si es necesario volverán a crearse." - -#: tips:100 -msgid "Manage thumbnails" -msgstr "Gestión de miniaturas" - -#: tips:101 -#: tips:158 -msgid "Pinboard" -msgstr "Escritorio" - -#: tips:102 -msgid "When using a pinboard, you can drag files and applications onto the desktop background to create shortcuts to them." -msgstr "Usando un tablero, usted puede arrastrar archivos y aplicaciones en el fondo del escritorio para crear accesos rápidos." - -#: tips:103 -#: tips:213 -msgid "Appearance" -msgstr "Apariencia" - -#: tips:104 -msgid "Foreground:" -msgstr "Primer plano" - -#: tips:105 -msgid "Text shadow:" -msgstr "Texto sombreado" - -#: tips:106 -msgid "Background:" -msgstr "Segundo plano" - -#: tips:107 -msgid "No shadow" -msgstr "Sin sombra" - -#: tips:108 -msgid "Thin" -msgstr "Delgado" - -#: tips:109 -msgid "Thick" -msgstr "Grueso" - -#: tips:110 -msgid "Use custom font:" -msgstr "Usar fuentes personalizadas" - -#: tips:111 -msgid "The font used for the text displayed under the icons" -msgstr "Fuente utilizada para el texto bajo los iconos" - -#: tips:112 -msgid "Fast scaling of images" -msgstr "Escalado rápido de imágenes" - -#: tips:113 -msgid "Choose between the fast or slow method of scaling backdrop images. The slow method can give better results." -msgstr "Escoja entre el método rápido o lento de escalado de imágenes para el fondo. El método lento puede dar mejores resultados." - -#: tips:114 -msgid "Pinboard behaviour" -msgstr "Comportamiento del tablero" - -#: tips:115 -msgid "Single-click to open" -msgstr "Un sólo clic para abrir" - -#: tips:117 -msgid "Keep icons within screen limits" -msgstr "Mantener los iconos dentro de los limites de la pantalla" - -#: tips:118 -msgid "If this is set, pinboard icons are always kept completely within screen limits, including the label." -msgstr "Activada esta opción, los iconos se mantienen siempre dentro de los límites de la pantalla, incluida la etiqueta." - -#: tips:119 -msgid "Icon grid step:" -msgstr "Rejilla de separación de iconos" - -#: tips:120 -msgid "Fine" -msgstr "Fina" - -#: tips:121 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Usar rejilla de 2 píxeles para posicionar los iconos en el escritorio" - -#: tips:122 -msgid "Medium" -msgstr "Media" - -#: tips:123 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Usar rejilla de 16 píxeles para posicionar los iconos en el escritorio" - -#: tips:124 -msgid "Coarse" -msgstr "Gruesa" - -#: tips:125 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Usar rejilla de 32 píxeles para posicionar los iconos en el escritorio" - -#: tips:126 -#: tips:128 -msgid "Iconified windows" -msgstr "Ventanas como iconos" - -#: tips:127 -msgid "Most window managers provide a way to iconify (or 'minimise') windows, and various programs, including ROX-Filer, can be used to display the iconified windows." -msgstr "La mayoría de gestores de ventanas proporcionan una forma de «iconificar» (o «minimizar»), las ventanas, de diversos programas, entre ellos «ROX-Filer», puede utilizarlo para mostrar las ventanas como iconos." - -#: tips:129 -msgid "Show iconified windows" -msgstr "Mostrar ventanas como iconos" - -#: tips:130 -msgid "If this option is on, the filer will show each iconified window as a small button on the pinboard. Requires a compatible window manager, and the pinboard must be in use." -msgstr "Activada esta opción, el gestor muestra cada ventana como un pequeño botón en el tablero. Requiere un gestor de ventanas compatible, y el tablero debe estar en uso." - -#: tips:131 -msgid "Show per workspace" -msgstr "Mostrar por espacio de trabajo" - -#: tips:132 -msgid "If this option is on, the filer will only show iconified windows associated with the current workspace." -msgstr "Activada esta opción, el gestor sólo mostrará como iconos las ventanas asociadas con el actual espacio de trabajo." - -#: tips:133 -msgid "Iconify to the" -msgstr "Poner los iconos" - -#: tips:134 -msgid "top-left" -msgstr "arriba a la izquierda" - -#: tips:135 -msgid "top-right" -msgstr "arriba a la derecha" - -#: tips:136 -msgid "bottom-left" -msgstr "abajo a la izquierda" - -#: tips:137 -msgid "bottom-right" -msgstr "abajo a la derecha" - -#: tips:138 -msgid ", going" -msgstr ", en" - -#: tips:139 -msgid "horizontally" -msgstr "horizontal" - -#: tips:140 -msgid "vertically" -msgstr "vertical" - -#: tips:141 -msgid "Sometimes the filer doesn't know about your desktop furniture and puts iconified windows under (for example) the Gnome panel. You can define a top or bottom margin to avoid placing the icons there. The filer already knows about its own panel." -msgstr "Algunas veces el gestor no sabe de los demás objetos que puede haber en el escritorio y pone las ventanas iconificadas debajo, por ejemplo, del panel de Gnome. Usted puede definir un margen inferior para evitar colocar iconos ahí. El gestor ya sabe de su propio panel." - -#: tips:142 -msgid "Top margin" -msgstr "Margen superior" - -#: tips:143 -msgid "Height of no-go area at top of screen." -msgstr "Altura de zona prohibida en el borde superior de la pantalla." - -#: tips:144 -msgid "Bottom margin" -msgstr "Margen inferior" - -#: tips:145 -msgid "Height of no-go area at bottom of screen." -msgstr "Altura de zona prohibida en el borde inferior de la pantalla." - -#: tips:146 -msgid "Left margin" -msgstr "Margen izquierdo" - -#: tips:147 -msgid "Width of no-go area at left of screen." -msgstr "Anchura de zona prohibida en el borde izquierdo de la pantalla." - -#: tips:148 -msgid "Right margin" -msgstr "Margen derecho" - -#: tips:149 -msgid "Width of no-go area at right of screen." -msgstr "Anchura de zona prohibida en el borde derecho de la pantalla." - -#: tips:150 -msgid "Desktop" -msgstr "Escritorio" - -#: tips:151 -msgid "When run by a session manager program (such as ROX-Session) the filer can open up a panel and/or the pinboard. Here you configure which." -msgstr "Cuando se ejecuta un administrador de sesiones (como ROX-Session) el gestor puede abrir un panel y/o un tablero. Configúrelo aquí." - -#: tips:152 -msgid "Panel only" -msgstr "Sólo el panel" - -#: tips:153 -msgid "Only a panel is shown." -msgstr "Sólo se muestra el panel" - -#: tips:154 -msgid "Pinboard only" -msgstr "Sólo el tablero" - -#: tips:155 -msgid "Only the pinboard is shown." -msgstr "Sólo se muestra el tablero (escritorio)" - -#: tips:156 -msgid "Panel and pinboard" -msgstr "Panel y tablero" - -#: tips:157 -msgid "Both a panel and a pinboard are shown." -msgstr "Muestre tanto el panel como el tablero" - -#: tips:159 -msgid "Enter the name of the pinboard to show here." -msgstr "Ponga el nombre del tablero que va a ser mostrado" - -#: tips:160 -msgid "Panel (obsolete)" -msgstr "Panel (obsoleto)" - -#: tips:161 -msgid "Enter the name of the panel to show here. This option is now only used when upgrading from an old version." -msgstr "Ponga el nombre del panel que va ser mostrado. Esta opción ahora sólo se usa si actualizó de una versión anterior." - -#: tips:162 -msgid "Changes here take effect the next time the filer is run." -msgstr "Los cambios sólo tendrán efecto después de que inicie de nuevo «ROX-Filer»" - -#: tips:163 -msgid "The session manager activates these options by using the -S or --rox-session argument to rox." -msgstr "El administrador de sesiones activa estas opciones usando «-S» o «--rox-session» como argumentos de «rox»." - -#: tips:164 -msgid "Action windows" -msgstr "Acciones en las ventanas" - -#: tips:165 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"La ventana de acciones aparece cuando se inicia una operación\n" -"en segundo plano, como copiar o borrar archivos." - -#: tips:166 -msgid "Auto-start (Quiet) these actions" -msgstr "Iniciar (silenciosamente) estas acciones" - -#: tips:168 -msgid "Copy files without confirming first." -msgstr "Copiar archivos sin pedir confirmación" - -#: tips:170 -msgid "Move files without confirming first." -msgstr "Mover archivos sin pedir confirmación" - -#: tips:172 -msgid "Create links to files without confirming first." -msgstr "Crear enlaces a los archivos sin pedir confirmación" - -#: tips:174 -msgid "Delete files without confirming first." -msgstr "Borrar archivos sin pedir confirmación" - -#: tips:175 -msgid "Mount" -msgstr "Montar" - -#: tips:176 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Montar y desmontar sistemas de archivos sin pedir confirmación" - -#: tips:177 -msgid "Default settings" -msgstr "Configuración predeterminada" - -#: tips:179 -msgid "Don't confirm deletion of non-writeable items." -msgstr "No confirmar la eliminación de elementos no escribibles" - -#: tips:181 -msgid "Don't display so much information in the message area." -msgstr "No mostrar mucha información en el área de mensajes" - -#: tips:183 -msgid "Also change contents of subdirectories." -msgstr "También cambia el contenido de los directorios." - -#: tips:186 -msgid "Mount commands" -msgstr "Comandos para el montaje" - -#: tips:187 -msgid "Mount command" -msgstr "Orden de montaje" - -#: tips:188 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "Orden para montar el sistema de archivos, si no está seguro use «mount»" - -#: tips:189 -msgid "Unmount command" -msgstr "Orden de desmontaje" - -#: tips:190 -msgid "The command used to unmount a filesystem. If unsure, use \"umount\" (yes, without the first \"n\")." -msgstr "Orden para desmontar el sistema de archivos, si no está seguro use «umount»(sí, sin «un»)." - -#: tips:191 -msgid "Eject command" -msgstr "Orden de expulsión" - -#: tips:192 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "Orden usada para expulsar dispositivos extraíbles, si no esta seguro use «eject»" - -#: tips:193 -msgid "Drag and Drop" -msgstr "Arrastrar y pegar" - -#: tips:194 -msgid "Dragging to icons" -msgstr "Arrastrar a iconos" - -#: tips:195 -msgid "Allow dragging to icons in filer windows" -msgstr "Permite arrastrar iconos a la ventana del gestor" - -#: tips:196 -msgid "When this is on you can drag a file over a sub-directory or program in a filer window. The item will highlight when you do this and dropping the file will put it into that directory, or load it into the program." -msgstr "Con esta opción activada usted puede arrastrar un archivo a la ventana de un subdirectorio o a un programa. El ítem se resaltará cuando hagas esto y al soltar el archivo lo pondrá dentro del directorio, o lo cargará con el programa." - -#: tips:197 -msgid "Directories spring open" -msgstr "Apertura automática de directorios" - -#: tips:198 -msgid "This option, which requires the above option to be turned on too, causes the highlighted directory to 'spring open' after the file is held over it for a short while." -msgstr "Esta opción, que requiere que la opción de arriba esté también activada, hace que el directorio pase a foco como «apertura automática» durante un breve tiempo después de que el archivo sea desplazado sobre él." - -#: tips:199 -msgid "Spring delay:" -msgstr "Retardo de «apertura automática»:" - -#: tips:200 -msgid "ms" -msgstr "ms" - -#: tips:201 -msgid "This option sets how long, in ms, you must hold a file over a directory before it will spring open. The above option must be turned on for this to have any effect." -msgstr "En esta opción se indica cuánto tiempo, en ms, debe mantenerse un archivo sobre un directorio antes de que adopte «apertura automática». Esa opción debe haber sido activada para que esto tenga efecto." - -#: tips:202 -msgid "When dragging files with the left mouse button" -msgstr "Cuando se arrastran los archivos con el botón izquierdo del ratón" - -#: tips:203 -#: tips:207 -msgid "Show a menu of possible actions" -msgstr "Mostrar un menú de acciones posibles" - -#: tips:204 -msgid "Copy the files" -msgstr "Copiar los archivos" - -#: tips:205 -msgid "Note that you can still get the menu to appear, by dragging with Alt held down." -msgstr "Observe que puede obtener el menú desplegable, arrastrando al tiempo que mantiene presionada la tecla «Alt»." - -#: tips:206 -msgid "When dragging files with the middle mouse button" -msgstr "Cuando arrastra los archivos con el botón del medio del ratón" - -#: tips:208 -msgid "Move the files" -msgstr "Mover los archivos" - -#: tips:209 -msgid "Note that you can still get the menu to appear, by dragging with the left button and holding down the Alt key." -msgstr "Observe que puede obtener el menú desplegable, arrastrando con el botón izquierdo al tiempo que mantiene presionada la tecla «Alt»." - -#: tips:210 -msgid "Download handler" -msgstr "Gestor de descargas" - -#: tips:211 -msgid "" -"When you drag a file from a web browser or other remote source, this program will be run to download it. $1 is the URI dragged to the filer, and the current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Cuando usted arrastra un archivo de un navegador web u otra fuente remota, este programa será el encargado de descargarlo. $1 es la URI arrastrada al gestor, y el directorio actual será el de destino. Ej:\n" -"xterm-e wget $1" - -#: tips:212 -msgid "Menus" -msgstr "Menús" - -#: tips:214 -msgid "Size of icons in menus:" -msgstr "Tamaño de los iconos en el menú: " - -#: tips:215 -msgid "No Icons" -msgstr "Sin iconos" - -#: tips:218 -msgid "Same as current window" -msgstr "Ventana actual" - -#: tips:219 -msgid "Same as default" -msgstr "Predeterminado" - -#: tips:220 -msgid "Behaviour" -msgstr "Comportamiento" - -#: tips:221 -msgid "File menu on right-click" -msgstr "Menú de archivo con clic en botón derecho" - -#: tips:222 -msgid "Show the File menu instead of the main menu when right-clicking with files selected (the main menu can be accessed by holding down Control)." -msgstr "Muestra el menú de archivo en vez del menú principal cuando se presiona el botón derecho con archivo seleccionados (para acceder al menú principal mantenga presionada la tecla «Ctrl»." - -#: tips:223 -msgid "Terminal emulator program" -msgstr "Programa emulador de terminal" - -#: tips:224 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "Este programa se iniciará cuando elija en el menú «Abrir aquí un terminal»" - -#: tips:225 -msgid "Keyboard shortcuts" -msgstr "Atajos de teclado" - -#: tips:227 -msgid "MIME types" -msgstr "Tipos MIME" - -#: tips:228 -msgid "The filer uses a set of rules to work out the correct MIME type for each regular file, and then chooses a suitable icon for that type." -msgstr "El gestor de archivos usa un juego de reglas para buscar el tipo MIME correcto para cada archivo regular y luego escoge el icono adecuado para ese tipo." - -#: tips:229 -msgid "Edit MIME rules" -msgstr "Editar las reglas MIME" - -#: tips:230 -msgid "Themes" -msgstr "Temas" - -#: tips:231 -msgid "Icon theme" -msgstr "Tema de iconos" - -#: tips:232 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Los temas de iconos deben estar en el directorio «~/.icons»" - -#: tips:233 -msgid "Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note that icons set this way override those from the selected theme." -msgstr "Utilice el cuadro de diálogo «Definir iconos ...» para configurar el icono de cada tipo MIME. Tenga en cuenta que los iconos definidos de esta forma anulan a los del tema seleccionado." - -#: tips:234 -msgid "Colours" -msgstr "Colores" - -#: tips:235 -msgid "File type colours" -msgstr "Colores de tipos de archivo" - -#: tips:236 -msgid "Colour files based on their types" -msgstr "Colorear los archivos según estos tipos" - -#: tips:237 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Los nombres de archivo (y de los detalles) han de colocarse de acuerdo con el tipo de archivo" - -#: tips:238 -msgid "Directory:" -msgstr "Directorio:" - -#: tips:239 -msgid "Regular file:" -msgstr "Archivo regular:" - -#: tips:240 -msgid "Pipe:" -msgstr "Canalización:" - -#: tips:241 -msgid "Socket:" -msgstr "Socket:" - -#: tips:243 -msgid "Error, such as a symlink which points to a non-existant file, or a file which the filer does not have permission to examine." -msgstr "Se produjo un error, el enlace simbólico apunta a un archivo que no existe o a un archivo en el que el gestor no tiene permisos para acceder." - -#: tips:244 -msgid "Character device:" -msgstr "Dispositivo de carácter:" - -#: tips:245 -msgid "Block device:" -msgstr "Dispositivo de bloque:" - -#: tips:246 -msgid "Door:" -msgstr "Puerta:" - -#: tips:247 -msgid "Door files are a bit like sockets or pipes, and have only been seen on Solaris." -msgstr "Archivos de puerta son como «sockets» o «canalizaciones» y sólo se usan en Solaris." - -#: tips:248 -msgid "Executable file:" -msgstr "Archivo ejecutable:" - -#: tips:249 -msgid "Application directory:" -msgstr "Directorio de aplicación:" - -#: tips:250 -msgid "Unknown type:" -msgstr "Tipo desconocido:" - -#: tips:251 -msgid "Compatibility" -msgstr "Compatibilidad" - -#: tips:252 -msgid "Window manager problems" -msgstr "Problemas en el gestor de ventanas" - -#: tips:253 -msgid "Override window manager control of the pinboard and panels" -msgstr "Sobreescribir el control del gestor de ventanas con el tablero y el panel" - -#: tips:254 -msgid "Some window managers don't support the new Extended Window Manager Hints system, and so treat the pinboard and panels like normal windows. Turn this on to fix problems such as the pinboard coming to the front when you click on it, titlebars and other decorations appearing around windows, or having them appear in window-select lists." -msgstr "Algunos gestores de ventanas no soportan el nuevo sistema «Extended Window Manager Hints» y tratan a los tableros y paneles como ventanas normales. Active esta opción para solucionar problemas como que el tablero se vea en primer plano cuando presiona en él, barras de título y otras decoraciones de ventanas, o que tengan que aparecer en la lista de ventanas." - -#: tips:255 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Enviar los clics del ratón del escritorio al gestor de ventanas" - -#: tips:256 -msgid "Normally, right clicking on the desktop background will open the pinboard menu and left clicking will clear the selection. Turn this on to forward the events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "Normalmente, hacer clic derecho en el fondo del escritorio abre el menú y en el izquierdo limpia la selección. Active esta opción si desea enviar estos eventos al gestor de ventanas. Los clics en los iconos no serán enviados." - -#: tips:257 -msgid "Blackbox root menus hack" -msgstr "Menús de «Blackbox» cortados" - -#: tips:258 -msgid "Blackbox, Fluxbox and similar window managers do not yet work well with the ROX-Filer pinboard. This option enables some workarounds. These window managers are expected to change their behaviour in new versions so that this isn't necessary." -msgstr "Blackbox, Fluxbox y gestores de ventanas similares todavía no trabajan bien con el tablero de ROX-Filer. Esta opción soluciona algunos problemas. Se espera que estos gestores de ventanas cambien su comportamiento en nuevas versiones para que esto no sea necesario." - -#: tips:259 -msgid "Panel is a 'dock'" -msgstr "Dejar «fijo» el panel" - -#: tips:260 -msgid "Makes sure panels stay against screen edges. Disable this option if the panel stays above other windows against your wishes. Requires a restart to take effect." -msgstr "Asegura que los paneles se mantienen en los bordes de la pantalla. Desactive esta opción si el panel se mantiene por encima de otras ventanas en contra de sus deseos. Requiere un reinicio para tener efecto." - -#: tips:261 -msgid "Panel stays on top" -msgstr "El panel permanece en primer plano" - -#: tips:262 -msgid "Keeps the panel above other windows. Enable this option to make sure the dock option works correctly in some versions of compiz. May require a restart to take effect." -msgstr "Mantiene el panel por encima de otras ventanas. Active esta opción para asegurarse de que la opción acoplar funciona correctamente en algunas versiones de compiz. Puede requerir un reinicio para tener efecto." - -#: tips:263 -msgid "Drag and drop" -msgstr "Arrastrar y soltar" - -#: tips:264 -msgid "Don't use hostnames" -msgstr "No usar nombres de host" - -#: tips:265 -msgid "Some older applications don't support XDND fully and may need to have this option turned on. Use this if dragging files to an application shows a + sign on the pointer but the drop doesn't work." -msgstr "Algunas aplicaciones antiguas no soportan «XDND» y pueden precisar que esta opción esté activada. Use esta opción si al arrastrar un archivo a la aplicación muestra un «+» en el puntero, pero no trabaja." - -#: tips:266 -msgid "Extended attributes" -msgstr "Atributos extendidos" - -#: tips:267 -msgid "Don't use extended attributes" -msgstr "No usar los atributos extendidos" - -#: tips:268 -msgid "This disables the use of extended attributes available in newer operating systems and file systems. With this option set the 'Set Type' menu entry is disabled, the MIME type of the file is only derived from the file name and the properties window does not report extended attributes." -msgstr "Esto desactiva el uso de atributos extendidos disponible en los nuevos sistemas operativos y sistemas de archivos. Con esta opción la entrada «Definir tipo» del menú está desactivada, y para el tipo MIME se utiliza únicamente el nombre de los archivos y la ventana de propiedades nos informa de ellos." - -#: ../Templates.glade:7 -msgid "ROX-Filer log viewer" -msgstr "Visor del registro de «ROX-Filer»" - -#: ../Templates.glade:22 -msgid "Recently performed actions..." -msgstr "Acciones realizadas recientemente---" - -#: ../Templates.glade:77 -msgid "Open Directory" -msgstr "Abrir directorio" - -#: ../Templates.glade:129 -msgid "Panel Options" -msgstr "Opciones del panel" - -#: ../Templates.glade:169 -msgid "Every icon on this panel is shown with an image and some text." -msgstr "Cada icono del panel es mostrado como una imagen y algún texto" - -#: ../Templates.glade:170 -msgid "Image and Text" -msgstr "Imagen y texto" - -#: ../Templates.glade:186 -msgid "Applications in this panel have just an image, everything else has both an image and text." -msgstr "Sólo las aplicaciones tienen imagen, todo lo demás tiene tanto imagen como texto." - -#: ../Templates.glade:187 -msgid "Image only for applications" -msgstr "Imagen sólo para aplicaciones" - -#: ../Templates.glade:205 -msgid "Only the image is shown for icons in this panel." -msgstr "Sólo se muestra la imagen para iconos en el panel" - -#: ../Templates.glade:206 -msgid "Image only" -msgstr "Sólo imagen" - -#: ../Templates.glade:235 -msgid "Panel width" -msgstr "Anchura del panel" - -#: ../Templates.glade:247 -msgid "The size of this panel." -msgstr "Tamaño de este panel" - -#: ../Templates.glade:259 -msgid "px" -msgstr "px" - -#: ../Templates.glade:278 -msgid "Ask the window manager not to cover this panel when maximising windows, otherwise leave just 2 pixels at the edge of the screen to allow auto-raising. Some window managers may not honour this setting." -msgstr "Indicarle al gestor de ventanas que no cubra este panel cuando se maximicen las ventanas, de lo contrario, deje sólo 2 píxeles del borde de la pantalla para permitir el redimensionado. En algunos gestores de ventanas no podrá establecer esta configuración." - -#: ../Templates.glade:279 -msgid "Do not cover panel" -msgstr "No tapar el panel" - -#: ../Templates.glade:297 -msgid "Panel style" -msgstr "Estilo de panel" - -#: ../Templates.glade:331 -msgid "If you use multiple monitors with Xinerama, use this option to confine the panel to one monitor." -msgstr "Si utiliza múltiples monitores con «Xinerama», utilice esta opción para asignar el panel a un monitor ." - -#: ../Templates.glade:332 -msgid "Confine to Xinerama monitor" -msgstr "Asignar un monitor Xinerama" - -#: ../Templates.glade:347 -msgid "The monitor this panel is confined to when using Xinerama. The numbering starts from zero." -msgstr "Monitor del panel asignado con Xinerama. La numeración comienza desde cero." - -#: ../Templates.glade:372 -msgid "Xinerama" -msgstr "Xinerama" - -#: ../Templates.glade:407 -msgid "Right edge" -msgstr "Borde derecho" - -#: ../Templates.glade:426 -msgid "Left edge" -msgstr "Borde izquierdo" - -#: ../Templates.glade:443 -msgid "Bottom edge" -msgstr "Borde inferior" - -#: ../Templates.glade:462 -msgid "Top edge" -msgstr "Borde superior" - -#: ../Templates.glade:496 -msgid "Position" -msgstr "Posición" - diff --git a/ROX-Filer/src/po/et_EE.po b/ROX-Filer/src/po/et_EE.po deleted file mode 100644 index 179ba7a6..00000000 --- a/ROX-Filer/src/po/et_EE.po +++ /dev/null @@ -1,4481 +0,0 @@ -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.1.6\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-12-27 18:49+0200\n" -"PO-Revision-Date: 2005-12-27 19:01+0200\n" -"Last-Translator: Teet Tärno \n" -"Language-Team: Estonian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:220 -msgid "_Quiet" -msgstr "_Vaikne" - -#: abox.c:229 -msgid "Quiet" -msgstr "Vaikne" - -#: abox.c:229 -msgid "Don't confirm every operation" -msgstr "Ära küsi kinnitust iga kord" - -#: abox.c:456 -#: tips:61 -msgid "Name" -msgstr "Nimi" - -#: abox.c:462 -#: menu.c:230 -msgid "Directory" -msgstr "Kataloog" - -#: abox.c:551 -msgid "Expression:" -msgstr "Avaldis:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "Lisainfo saamiseks vaadake attr(5) man-lehekülge." - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "Lisainfo saamiseks vaadake fsattr(5) man-lehekülge." - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "Teil ei tundu olevat opsüsteemi toetust." - -#: action.c:188 -msgid "Find expression reference" -msgstr "Otsiavaldiste abi" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Kiirjuhend\n" -"Pange otsitava faili nimi ühekordsete jutumärkide vahele:\n" -"'index.html' (et otsida faili nimega 'index.html')\n" -"\n" -"Näited\n" -"'*.htm', '*.html' (leiab HTML-faile)\n" -"IsDir 'lib' (leiab 'lib'-katalooge)\n" -"IsReg 'core' (leiab tavafaile 'core')\n" -"! (IsDir, IsReg) (fail ei ole ei kataloog ega tavafail)\n" -"mtime after 1 day ago and size > 1Mb (suur, hiljuti muudetud, fail)\n" -"'CVS' prune, isreg (tavafail. mis pole CVS'is)\n" -"IsReg system(grep -q fred \"%\") (sisaldab sõna 'fred')\n" -"\n" -"Lihtsad testid\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (tüübid)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (failiõigused)\n" -"IsEmpty, IsMine\n" -"Ühekordsetes jutumärkides olevat mustrit võrreldakse käsurea stiilis. Kui see\n" -"sisaldab kaldkriipsu, võrreldakse täieliku rajaga, muidu ainult \n" -"failinimega.\n" -"\n" -"Võrdlused\n" -"<, <=, =, !=, >, >=, After, Before (kahe väärtuse võrdlemine)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (failisuurused)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (ajad)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (väärtused)\n" -"\n" -"Erikäsud\n" -"system(Befehl) (tõene, kui 'käsu' väljundväärtus on null;\n" -"% 'käsus' asendatakse faili rajaga)\n" -"prune (väär ja keelab kotaloogi sisu otsimast)." - -#: action.c:246 -msgid "Change permissions reference" -msgstr "Abi õiguste muutmise kohta" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Tavaliselt valite te käsu lihtsalt menüüst (klõpsake \n" -"noolele käsukasti otsas). Kuid mõnikord vajate midagi võimsamat...\n" -"\n" -"Käsuvorming on: MUUDATUS, MUUDATUD, ...\n" -"Iga MUUDATUS on kujul: KES MIDA ÕIGUSED\n" -"KES on kombinatsioon tähtedest u, g und o, mis määrab, kelle õigusi muudetakse:\n" -"Omaniku (User), grupi (Group) või kõigi muude (Others).\n" -"MIDA on +, - või =, et lisade, eemaldada või täpselt seada õigusi.\n" -"ÕIGUSED on mingi kombinatsioon tähtedest rwxXstugo\n" -"\n" -"Nurksulgudes teksti ja tühikuid ignoreeritakse.\n" -"\n" -"Näited:\n" -"\n" -"u+rw: faili omanik saab lugemis- ja kirjutamisõiguse\n" -"g=u: grupi õigused seatakse samadeks kui omanikul\n" -"o=u-w: kõik muud saavad samad õigused kui omanik, välja arvatud kirjutamisõigus\n" -"a+x: kõik saavad õiguse käivitada - sama kui ugo+x\n" -"a+X: kõik saavad õiguse kataloogidele ligi pääseda; failid, millele oli kellegil käivitusõigus, \n" -"muutuvad kõigi poolt käivitatavateks\n" -"u+rw, go+r: kaks käsku korraga!\n" -"u+s: sea SetUID-bitt - tihti ei oma mingit efekti skriptifailide puhul\n" -"755: sea ligipääsuõigused otse\n" -"\n" -"Täpsemat infot saate lugeda chmod(1) man-leheküljelt." - -#: action.c:298 -msgid "Set type reference" -msgstr "Sea tüüpide viiteid" - -#: action.c:309 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Harilikult Rox tuvastab tuvastab tavalise faili tüübi\n" -"võrreldes tema nime mustri vastu. Et faili tüüpi\n" -"muuta, peate te selle ümber nimetama.\n" -"\n" -"Uuemad failisüsteemid toetavad niinimetatud 'laiendatud\n" -"atribuute', millega on võimalik salvestada lisainfot faili kohta\n" -"nimeliste parameetritena. Rox kasutab 'user.mime_type'\n" -"atribuuti failitüüpide salvestamiseks.\n" -"\n" -"Failitüübid on ainult harilikel failidel, neid pole\n" -"kataloogidel, seadmetel, torudel või soklitel ja siis ka\n" -"ainult mõnigatel failisüsteemidel ning sõltuvalt opsüsteemist.\n" -"\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Protsess lõpetatud..\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Oli üks viga.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Oli %d viga.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "VIGA lugemisel" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Valmis\n" - -#: action.c:557 -#: support.c:396 -msgid "ERROR" -msgstr "VIGA" - -#: action.c:711 -#: main.c:686 -#: main.c:693 -#: main.c:707 -msgid "Yes" -msgstr "Jaa" - -#: action.c:714 -#: main.c:688 -#: main.c:695 -#: main.c:707 -msgid "No" -msgstr "Ei" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Ootan tütarprotsesside lõpetamist...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Proovin SULGEDA kontrolli alt väljunud protsessi...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Inhalt von %s zählen?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Kustutada %s'%s' ?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "KIRJUTUSKAITSEGA" - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "Kustutan '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "Kataloog '%s' kustutatud\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?'Väljastada %s'?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Väljastan '%s'\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"väljastamine ebaõnnestus\n" - -#: action.c:1027 -#: action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?'Kontrollida %s'?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Vigane otsingutingimus - muutke ja proovige uuesti\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'('%s' kontrollimise juures)\n" - -#: action.c:1127 -#: action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Muuda '%s' loabitte?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Muuda '%s loabitte'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Vigane moodi käsk - muutke seda ja proovige veelkord\n" - -#: action.c:1207 -#: action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Muuda '%s' tüüpi?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!Vigane tüüp - muutke seda ja proovige veelkord\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Muuda '%s' tüübiks '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' on juba olemas - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "ühenda sisu" - -#: action.c:1328 -msgid "overwrite" -msgstr "kirjuta üle" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Üritan ikkagi kopeerida...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Kopeeri %s nime alla %s?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Kopeerin %s nime alla: %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!VIGA: Sihtkoht on juba olemas, aga pole kataloog\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"'%s' kopeerimine ebaõnnestus\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' on juba olemas - kas kirjutan üle?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Üritan siiski tõsta...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Tõstan %s nime alla %s?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Tõstan %s nime alla %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"%s tõstmine nime alla %s ebaõnnestus\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!VIGA: Objekti ei ole võimalik sama nime alla kopeerida\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!VIGA: Objekti pole võimalik sama nime alla tõsta\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Loon viida %s nime alla %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Luua viit %s nime alla %s?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Ühendan %s \n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Lahutan %s\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?%s ühendada?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?%s lahutada?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Ühendamine ebaõnnestus\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Lahutamine ebaõnnestus\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(tundub olevat juba niigi ühendatud)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Kokku: %s (" - -#: action.c:1704 -msgid "file" -msgstr "fail" - -#: action.c:1704 -msgid "files" -msgstr "failid" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "pole katalooge)\n" - -#: action.c:1712 -msgid "directory" -msgstr "kataloog" - -#: action.c:1713 -msgid "directories" -msgstr "kataloogid" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Ühenduspunkti pole valitud!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Otsida veel?" - -#: action.c:1869 -#: action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' on sümbolviit\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Palun valige mõni kataloog, millest otsida" - -#: action.c:1950 -#: menu.c:221 -msgid "Find" -msgstr "Otsi" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Palun valige objekte loendamiseks" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Kasutatud kettaruum" - -#: action.c:2023 -msgid "Mount / Unmount" -msgstr "Ühenda / Lahuta" - -#: action.c:2038 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "Vabandust, aga ROX-Filer ei toeta teie masinas veel ühenduspunkte" - -#: action.c:2052 -#: menu.c:209 -#: tips:209 -msgid "Delete" -msgstr "Kustuta" - -#: action.c:2064 -#: tips:214 -msgid "Force" -msgstr "Sunni" - -#: action.c:2064 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Kirjutuskeeluga objektide kustutamisel ära küsi kinnitust" - -#: action.c:2067 -#: action.c:2124 -#: action.c:2185 -#: action.c:2240 -#: action.c:2278 -#: tips:216 -msgid "Brief" -msgstr "Lühidalt" - -#: action.c:2067 -msgid "Only log directories being deleted" -msgstr "Näita vaid kustutavaid katalooge" - -#: action.c:2084 -msgid "You need to select the items whose permissions you want to change" -msgstr "Valige objekte, mille loabitte te tahate muuta" - -#: action.c:2092 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Luba käivitamine/otsimine)" - -#: action.c:2094 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Keela käivitamine/otsimine)" - -#: action.c:2096 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Luba omanikul lugeda ja kirjutada)" - -#: action.c:2098 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Luba ligipääs vaid omanikule)" - -#: action.c:2100 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Luba kõigil lugeda, keela kirjutamine)" - -#: action.c:2111 -#: menu.c:183 -#: menu.c:219 -#: tips:76 -msgid "Permissions" -msgstr "Õigused" - -#: action.c:2124 -#: action.c:2185 -msgid "Don't list processed files" -msgstr "Ära näita käsitletud faile" - -#: action.c:2127 -#: action.c:2188 -#: tips:218 -msgid "Recurse" -msgstr "Rekursiivne" - -#: action.c:2127 -msgid "Also change contents of subdirectories" -msgstr "Muuda ka alamkataloogide sisu" - -#: action.c:2131 -msgid "Command:" -msgstr "Käsk:" - -#: action.c:2159 -msgid "You need to select the items whose type you want to change" -msgstr "Valige objekte, mille tüüpi te tahate muuta" - -#: action.c:2172 -msgid "Set type" -msgstr "Muuda tüüpi" - -#: action.c:2188 -msgid "Change contents of subdirectories" -msgstr "Muuda ka alamkataloogide sisu" - -#: action.c:2195 -#: infobox.c:620 -msgid "Type:" -msgstr "Tüüp:" - -#: action.c:2224 -#: dnd.c:124 -#: menu.c:1988 -#: tips:203 -msgid "Copy" -msgstr "Kopeeri" - -#: action.c:2236 -#: action.c:2274 -#: tips:220 -msgid "Newer" -msgstr "Uuem" - -#: action.c:2237 -#: action.c:2275 -#: tips:221 -msgid "Only over-write if source is newer than destination." -msgstr "Kirjuta üle vaid siis, kui lähtefail on uuem." - -#: action.c:2240 -msgid "Only log directories as they are copied" -msgstr "Näita vaid kopeeritavaid katalooge" - -#: action.c:2262 -#: dnd.c:125 -#: tips:205 -msgid "Move" -msgstr "Tõsta" - -#: action.c:2278 -msgid "Don't log each file as it is moved" -msgstr "Ära näita iga faili, mida tõstetakse" - -#: action.c:2298 -#: tips:207 -msgid "Link" -msgstr "Loo viit" - -#: action.c:2319 -#: appmenu.c:113 -msgid "Eject" -msgstr "Väljasta" - -#: action.c:2378 -msgid "Deleting items such as " -msgstr "Kustuta objektid " - -#: action.c:2382 -msgid "Deleting the item " -msgstr "Kustuta objekt" - -#: action.c:2384 -msgid "Deleting the items " -msgstr "Kustuta objektid " - -#: action.c:2403 -msgid " and " -msgstr " ja " - -#: action.c:2412 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " mõjutab faili töölaual või paneelil - kas kustutan siiski? " - -#: action.c:2419 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " mõjutab faile töölaual või paneelil - kas kustutan siiski?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "Symlink any programs you want into this directory. They will appear in the menu for all items of this type (%s/%s)." -msgstr "Loo antud kataloogi sümbolviidad programmidele, mida soovid näha kõigi tüüpi (%s/%s) objektide puhul menüüs" - -#: appmenu.c:339 -#: menu.c:232 -msgid "Customise Menu..." -msgstr "Kohanda menüüd..." - -#: appmenu.c:396 -#: menu.c:249 -#: toolbar.c:159 -msgid "Help" -msgstr "Abi" - -#: bookmarks.c:147 -msgid "Path" -msgstr "Tee" - -#: bookmarks.c:155 -msgid "Title" -msgstr "Pealkiri" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Võrguaadressi '%s' pole võimalik lisada järjehoidjatesse \n" - -#: bookmarks.c:312 -#: bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' ei ole kataloog" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Vali järjehoidja" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Järjehoidja tõstmiseks valige ta kursoriga" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Olete nimekirja lõpus" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Võrgukataloogi '%s' ei saa lisada järjehoidjatesse" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Lisa järjehoidja" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Muuda järjehoidjaid" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "Hiljuti külastatud" - -#: bulk_rename.c:68 -msgid "Bulk rename files" -msgstr "Nimeta faile ümber hulgi" - -#: bulk_rename.c:71 -msgid "Reset" -msgstr "Taasta" - -#: bulk_rename.c:76 -msgid "Make the New column a copy of Old" -msgstr "Tee Pärast-tulpa koopia Enne-tulba sisust" - -#: bulk_rename.c:81 -msgid "_Rename" -msgstr "_Nimeta ümber" - -#: bulk_rename.c:94 -msgid "Replace:" -msgstr "Asenda:" - -#: bulk_rename.c:101 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Otsitakse seda regulaaravaldist.\n" -"^ vastab failinime algusele\n" -"$ vastab lõpule\n" -"\\. vastab punktile\n" -"\\.htm$ vastab stringile '.htm' 'index.html' sees, jne" - -#: bulk_rename.c:109 -msgid "With:" -msgstr "Stringiga:" - -#: bulk_rename.c:116 -msgid "The first match in each filename will be replaced by this string. There are no special characters." -msgstr "Esimene vaste igas failinimes asendatakse selle stringiga. Erimärke pole." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Rakenda" - -#: bulk_rename.c:123 -msgid "Do a search-and-replace in the New column. The files are not actually renamed until you click on the Rename button below." -msgstr "Soorita asendus Pärast tulbas.Faile endid ei nimetata ümber enne, kui klõpsate all asuvale 'Nimeta ümber' nupule." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "Vana nimi" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "Uus nimi" - -#: bulk_rename.c:259 -msgid "No strings (in the New column) matched the given expression" -msgstr "Ükski string (Pärast tulbas) ei vastanud antud avaldisele" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "Üks nimi vastas avaldisele, kuid tulemus oli muutumatu" - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d nime vastas avaldisele, kuid tulemused olid samad" - -#: bulk_rename.c:293 -msgid "Specify a regular expression to match, and a string to replace matches with." -msgstr "Määra regulaaravaldis, mida otsitakse ja string, millega asendatakse tulemus." - -#: bulk_rename.c:310 -#, c-format -msgid "%s (for '%s')" -msgstr "%s·('%s' asemel)" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Fail nimega '%s' on juba olemas. Hulgiümbernimetamine katkestatud." - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Ebaõnnestus '%s' ümber nimetamine '%s':\n" -"%s\n" -"Hulgiümbernimetane katkestatud." - -#: bulk_rename.c:410 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Fail nimega '%s' on juba olemas" - -#: bulk_rename.c:421 -#, c-format -msgid "Some of the New names contain / characters (eg '%s'). This will cause the files to end up in different directories. Continue?" -msgstr "Mõned nimed Pärast tulbas sisaldavad / märke (näit. '%s'). Selle tagajärjel tõstetakse failid erinevatesse kataloogidesse. Kas jätkan?" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "Ükski nimi pole muutunud. Pole midagi teha!" - -#: choices.c:428 -msgid "Choices migration" -msgstr "Valikute ümbertõstmine" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" -"Choices on tõstetud ümber asukohast \n" -"%s\n" -" uude asukohta \n" -"%s\n" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d kataloogi ei õnnestunud ümber tõsta" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Ei õnnestu lugeda kataloogi %s" - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Kataloogi %s ei õnnestu avada" - -#: display.c:614 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) ebaõnnestus: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "Sümbolviit" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "Absoluutne viit" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Sisemine viga - vigane info tüüp" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "Lisamaks kataloogi järjehoidjatesse lohistage ta siia." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS protokolli viga: failinimi ei tohi sisaldada '/' märki\n" - -#: dnd.c:605 -msgid "XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/plain) did not contain a leafname\n" -msgstr "On XdndDirectSave0-sihtmärk, kuid XdndDirectSave0-aatomis (tüüp text/plain) polnud failinime\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Vabandust - vajan text/uri-list või XdndDirectSave0 tüüpi sihtmärki" - -#: dnd.c:621 -msgid "Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "Vabandust - vajan text/uri-list või application/octet-stream tüüpi sihtmärki." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote machine. For example:\n" -"\n" -"%s" -msgstr "" -"Mõnede objektide lisamine töölauale ebaõnnestus, kuna nad pole kohalikus masinas. Näiteks:\n" -"\n" -"%s" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Tundmatu sihtmärk" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Vabandust - Võrgurakendus ei taha/oska mulle infot saata" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "XDS protokolli viga: tagastatud väärtus peab olema kas 'S', 'F' või 'E'\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "Vabandust, ma ei oska näidata menüüd võrgufaili/toorfaili kohta." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "Pealkirjata info" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Viga faili %s salvestamisel" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "text/uri-list nimekirjas pole ühtegi aadressi (pole tegevust!)" - -#: dnd.c:993 -msgid "Can't get data from remote machine (application/octet-stream not provided)" -msgstr "Võrgust pole võimalik andmeid saada (application/octet-stream pole saadaval)" - -#: dnd.c:1016 -msgid "Some of these files are on a different machine - they will be ignored - sorry" -msgstr "Vabandust - osad failid jätan vahele, kuna need asuvad teises masinas" - -#: dnd.c:1023 -msgid "None of these files are on the local machine - I can't operate on multiple remote files - sorry." -msgstr "Vabandust - ükski failidest ei asu siin masinas. Ma ei saa mitme mitte-kohaliku failiga töötada." - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Sooviti tundmatut tegevus" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Viga failide nimekirja hankides: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Näita" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Näita praegust valikut failihalduri aknas" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "I can't show you the currently set item, because nothing is currently set. Drag something onto me!" -msgstr "Ma ei saa näidata praegust valikut, kuna midagi pole valitud ! Lohista siia midagi !" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Vabandust, te saate siia lohistada vaid ühe faili." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Ei saa kasutada '%s' kuna see pole kohalik fail." - -#: dropbox.c:280 -#: pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Puudub ligipääs: '%s':\n" -"%s" - -#: filer.c:454 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Viga '%s' skaneerimisel:\n" -"%s\n" - -#: filer.c:458 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Viga '%s' skaneerimisel:\n" -"%s" - -#: filer.c:563 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Kas soovite selle seadme lahutada ?\n" -"\n" -"Pärast lahutamist on seadme/ketta eemaldamine ohutu." - -#: filer.c:567 -msgid "No change" -msgstr "Pole muutust" - -#: filer.c:573 -#: menu.c:860 -msgid "Unmount" -msgstr "Lahuta" - -#: filer.c:670 -msgid "Directory missing/deleted" -msgstr "Kataloog on kadunud/kustutatud" - -#: filer.c:1034 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "Grupp %s pole määratud. Grupi määramiseks valige mõned failid ja vajutage Ctrl+%s. Failide hiljem uuesti valimiseks vajutage vaid %s. Numbriklahvistiku kasutamisel peab Teil Numlock aktiivne olema" - -#: filer.c:1270 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Puudub ligipääs kataloogile '%s'" - -#: filer.c:1422 -#, c-format -msgid "Directory '%s' not found." -msgstr "Kataloogi '%s' ei leitud." - -#: filer.c:1716 -msgid "Cancel" -msgstr "Tühista" - -#: filer.c:1997 -msgid "A" -msgstr "A" - -#: filer.c:1999 -#: find.c:925 -msgid "G" -msgstr "G" - -#: filer.c:2004 -msgid "S" -msgstr "S" - -#: filer.c:2006 -msgid "T" -msgstr "T" - -#: filer.c:2016 -msgid "All, " -msgstr "Kõik, " - -#: filer.c:2019 -#, c-format -msgid "Glob (%s), " -msgstr "Glob (%s), " - -#: filer.c:2027 -msgid "Scanning, " -msgstr "Skaneerin, " - -#: filer.c:2029 -msgid "Thumbs, " -msgstr "Pisipildid, " - -#: filer.c:2305 -msgid "Symbolic link to " -msgstr "Sümbolviit failile " - -#: filer.c:2347 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Failinimi pole kodeeringus UTF-8. Te peaksite faili ümber nimetama.\n" - -#: filer.c:2658 -#: menu.c:1978 -msgid "Item no longer exists!" -msgstr "Objekti pole enam olemas!" - -#: filer.c:3334 -msgid "Select display properties to save" -msgstr "Vali ekraani asetused, mida salvestada" - -#: filer.c:3341 -msgid "Position" -msgstr "Asukoht" - -#: filer.c:3346 -#: toolbar.c:135 -#: toolbar.c:139 -#: tips:64 -msgid "Size" -msgstr "Suurus" - -#: filer.c:3351 -msgid "Show hidden" -msgstr "Näita peidetud" - -#: filer.c:3357 -msgid "Display style" -msgstr "Vaate stiil" - -#: filer.c:3363 -msgid "Sort type and order" -msgstr "Sorteerimistüüp ja järjekord" - -#: filer.c:3368 -#: toolbar.c:143 -msgid "Details" -msgstr "Lisainfo" - -#: filer.c:3373 -#: tips:115 -#: tips:116 -msgid "Thumbnails" -msgstr "Pisipildid" - -#: filer.c:3379 -msgid "Filter" -msgstr "Filter" - -#: find.c:487 -msgid "And" -msgstr "Ja" - -#: find.c:511 -msgid "Not" -msgstr "Mitte" - -#: find.c:554 -msgid "system" -msgstr "süsteem" - -#: find.c:562 -msgid "prune" -msgstr "pügada" - -#: find.c:650 -msgid "After" -msgstr "Pärast" - -#: find.c:652 -msgid "Before" -msgstr "Enne" - -#: find.c:746 -msgid "IsReg" -msgstr "lsReg" - -#: find.c:748 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:750 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:752 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:754 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:756 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:758 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:760 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:762 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:764 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:766 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:768 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:770 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:772 -msgid "IsWriteable" -msgstr "IsWritable" - -#: find.c:774 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:776 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:778 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:906 -msgid "Now" -msgstr "Nüüd" - -#: find.c:919 -msgid "Byte" -msgstr "Bait" - -#: find.c:919 -msgid "Bytes" -msgstr "Baiti" - -#: find.c:921 -msgid "Kb" -msgstr "Kb" - -#: find.c:921 -msgid "K" -msgstr "K" - -#: find.c:923 -msgid "Mb" -msgstr "Mb" - -#: find.c:923 -msgid "M" -msgstr "M" - -#: find.c:925 -msgid "Gb" -msgstr "Gb" - -#: find.c:927 -msgid "Sec" -msgstr "Sek" - -#: find.c:927 -msgid "Secs" -msgstr "Sekki" - -#: find.c:929 -msgid "Min" -msgstr "Min" - -#: find.c:929 -msgid "Mins" -msgstr "Minuteid" - -#: find.c:931 -msgid "Hour" -msgstr "Tund" - -#: find.c:931 -msgid "Hours" -msgstr "Tunnid" - -#: find.c:933 -msgid "Day" -msgstr "Päev" - -#: find.c:933 -msgid "Days" -msgstr "Päevi" - -#: find.c:935 -msgid "Week" -msgstr "Nädal" - -#: find.c:935 -msgid "Weeks" -msgstr "Nädalaid" - -#: find.c:937 -msgid "Year" -msgstr "Aasta" - -#: find.c:937 -msgid "Years" -msgstr "Aastaid" - -#: find.c:946 -msgid "Ago" -msgstr "Tagasi" - -#: find.c:948 -msgid "Hence" -msgstr "Seetõttu" - -#: find.c:963 -msgid "atime" -msgstr "atime" - -#: find.c:965 -msgid "ctime" -msgstr "ctime" - -#: find.c:967 -msgid "mtime" -msgstr "mtime" - -#: find.c:969 -msgid "size" -msgstr "suurus" - -#: find.c:971 -msgid "inode" -msgstr "inode" - -#: find.c:973 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "plokid" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Salvesta kui:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Nimetu" - -#: gtksavebox.c:473 -msgid "Remote application wants to use Direct Save, but I can't read the XdndDirectSave0 (type text/plain) property.\n" -msgstr "Võrgurakendus soovib Direct Save kasutada, kuid ma ei suuda XdndDirectSave0-atribuuti (tüüpi text/plain) lugeda.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Lohistage ikoon kataloogivaate peale \n" -"või sisestage faili asukoht täisrajaga" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "Proovin XML-faili teksti kujul lugeda. Fail '%s' võib olla vigane." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the Options window and try changing something and then changing it back (causing the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Viga failis '%s' real %d: \n" -"\"%s\"\n" -"See võib johtuda vanema ROX-Filer'i versiooni uuendamisest.Avage Eelistuste aken, muutke mõnda suvandit ja muutke see tagasi (mis põhjustab faili uuesti salvestamise).\n" -"Edasisi vigu eiratakse." - -#: gui_support.c:1001 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Vigane või puuduv reavahetus text/uri-list andmetes" - -#: gui_support.c:1333 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Faili '%s' avamine ebaõnnestus: %s" - -#: gui_support.c:1377 -#, c-format -msgid "Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "Pildi '%s' laadimine ebaõnnestus: põhjus pole teada, tõenäoliselt vigane pildifail" - -#: gui_support.c:1428 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Seda programmi pole võimalik jooksutada, kuna puudub 0launch käsk. Seda saate alla laadida aadressilt:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:38 -msgid "Note that you must save your choices and restart the filer for the new language setting to take full effect." -msgstr "Te peate failihalduri uuesti käivitama, enne kui Teie valitud keel aktiveerub." - -#: icon.c:78 -msgid "(click to set)" -msgstr "(Valimiseks klõpsa)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 -#: menu.c:250 -msgid "About ROX-Filer..." -msgstr "ROX-Filer'i kohta..." - -#: icon.c:135 -#: menu.c:251 -msgid "Show Help Files" -msgstr "Näita abiinfot" - -#: icon.c:136 -#: menu.c:252 -msgid "Manual" -msgstr "Juhend" - -#: icon.c:138 -#: menu.c:228 -msgid "Options..." -msgstr "Eelistused..." - -#: icon.c:139 -#: menu.c:237 -msgid "Home Directory" -msgstr "Kodukataloog" - -#: icon.c:140 -#: icon.c:1340 -#: menu.c:205 -#: type.c:218 -msgid "File" -msgstr "Fail" - -#: icon.c:141 -#: menu.c:211 -#: menu.c:873 -msgid "Shift Open" -msgstr "Ava tekstina" - -#: icon.c:142 -#: menu.c:216 -msgid "Properties" -msgstr "Omadused" - -#: icon.c:143 -#: menu.c:214 -msgid "Set Run Action..." -msgstr "Sea avaja..." - -#: icon.c:144 -#: menu.c:215 -msgid "Set Icon..." -msgstr "Sea ikoon..." - -#: icon.c:145 -#: icon.c:806 -msgid "Edit Item" -msgstr "Muuda elementi" - -#: icon.c:146 -msgid "Show Location" -msgstr "Näita asukohta" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Eemalda elemente" - -#: icon.c:278 -#: menu.c:762 -#, c-format -msgid "%s '%s'" -msgstr "%s·'%s'" - -#: icon.c:291 -msgid "Nothing" -msgstr "Ei midagi" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Asukoha nimes peab olema vähemalt 1 täht!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Elementide eemaldamiseks valige mõned neist" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Palun avage menüü mõne elemendi kohal" - -#: icon.c:652 -#: menu.c:1258 -msgid "You can only set the run action for a regular file" -msgstr "Faili käivitajat saate muuta vaid tavafailide puhul" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Vajutage soovitud klahvikambinatsiooni (näit. Ctrl+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Ei õnnestunud klaviatuuri haarata!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Ikoonile klõpsamine avab:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "Käivitatavale failile edastatavad argumendid:" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Tekst ikooni all on:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "Klahvikombinatsioon on:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Kas tõesti soovite avada %d akent?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Näita infot" - -#: infobox.c:135 -#: menu.c:767 -msgid "(bad utf-8)" -msgstr "(vigane utf-8)" - -#: infobox.c:260 -msgid "Show _Help Files" -msgstr "Näita _abiinfot" - -#: infobox.c:273 -msgid "Permissions" -msgstr "Õigused" - -#: infobox.c:287 -msgid "Contents indicate..." -msgstr "Sisu järgi otsustades..." - -#: infobox.c:424 -#: infobox.c:565 -#: support.c:350 -msgid "bytes" -msgstr "baite" - -#: infobox.c:447 -msgid "Failed to read size" -msgstr "Ebaõnnestus suuruse lugemine" - -#: infobox.c:508 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' pole enam sümbolviit" - -#: infobox.c:515 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Kustutamine ebaõnnestus '%s':\n" -"%s" - -#: infobox.c:520 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Sümbolviida '%s' loomine\n" -"%s peale ebaõnnestus\n" -"(märkus: vana viit kustutati)" - -#: infobox.c:544 -#: tips:271 -msgid "Error:" -msgstr "Viga:" - -#: infobox.c:551 -msgid "Real directory:" -msgstr "Tegelik kataloog:" - -#: infobox.c:554 -msgid "Owner, Group:" -msgstr "Omanik, grupp:" - -#: infobox.c:561 -#: infobox.c:576 -#: infobox.c:585 -msgid "Size:" -msgstr "Suurus:" - -#: infobox.c:586 -msgid "Scanning" -msgstr "Skaneerin" - -#: infobox.c:607 -msgid "Failed to scan" -msgstr "Skaneerimine ebaõnnestus" - -#: infobox.c:614 -msgid "Change time:" -msgstr "Viimati muudetud:" - -#: infobox.c:616 -msgid "Modify time:" -msgstr "Loodud:" - -#: infobox.c:618 -msgid "Access time:" -msgstr "Viimati avatud:" - -#: infobox.c:626 -msgid "Extended attributes:" -msgstr "Laiendatud atribuudid:" - -#: infobox.c:628 -msgid "Present" -msgstr "Olemas" - -#: infobox.c:629 -msgid "None" -msgstr "Puudub" - -#: infobox.c:630 -msgid "Not supported" -msgstr "Pole toetatud" - -#: infobox.c:642 -msgid "Link target:" -msgstr "Viida sihtmärk:" - -#: infobox.c:654 -#: infobox.c:657 -msgid "Run action:" -msgstr "Avatakse:" - -#: infobox.c:654 -msgid "Execute file" -msgstr "Käivita fail" - -#: infobox.c:749 -msgid "" -msgstr "" - -#: infobox.c:819 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) ütleb... %s" - -#: infobox.c:876 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Ei suutnud muuta %s loabitte" - -#: infobox.c:894 -msgid "Owner" -msgstr "Omanik" - -#: infobox.c:896 -msgid "Group" -msgstr "Grupp" - -#: infobox.c:898 -msgid "World" -msgstr "Maailm" - -#: infobox.c:901 -msgid "Read" -msgstr "Loe" - -#: infobox.c:903 -msgid "Write" -msgstr "Kirjuta" - -#: infobox.c:905 -msgid "Exec" -msgstr "Käivita" - -#: infobox.c:922 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:929 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:936 -msgid "Sticky" -msgstr "Sticky" - -#: infobox.c:958 -msgid "Symbolic link" -msgstr "Sümbolviit" - -#: infobox.c:961 -msgid "ROX application" -msgstr "ROX rakendus" - -#: infobox.c:969 -msgid "mounted" -msgstr "ühendatud" - -#: infobox.c:969 -msgid "unmounted" -msgstr "lahutatud" - -#: infobox.c:973 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "%s ühenduspunkt (%s)" - -#: infobox.c:976 -#, c-format -msgid "Mount point (%s)" -msgstr "Ühenduspunkt (%s)" - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2003 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Lisainfo saamiseks proovige 'ROX-Filer/AppRun --help' .\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Lisainfo·saamiseks·proovige·'ROX-Filer/AppRun·-h'·.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"MÄRKUS: Teie süsteem ei toeta pikki käsurea võtmeid- \n" -"Olete sunnitud kasutama lühikesi.\n" -"\n" - -#: main.c:115 -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Kasutamine: ROX-Filer/AppRun [VÕTI]... [FAIL]...\n" -"Ava iga käsureal ette antud kataloog/fail või \n" -"argumentide puudumisel jooksev kataloog,\n" -"\n" -" -b, --border=PANEEL\tava PANEEL ekraani servas\n" -" -B, --bottom=PANEEL\tava PANEEL ekraani all servas\n" -" -c, --client-id=ID\tkasutusel sessioonihalduses\n" -" -d, --dir=DIR\t\tava DIR kui kataloog (mitte kui rakendus)\n" -" -D, --close=DIR\tsulge DIR koos alamkataloogidega\n" -" -h, --help\t\tnäita abiinfot ja välju\n" -" -l, --left=PANEEL\tava PANEEL ekraani vasakus servas\n" -" -m, --mime-type=FAIL\tnäita FAIL'i MIME-tüüp ja välju\n" -" -n, --new\t\tkäivitab uue failihalduri; failihalduri silumiseks\n" -" -p, --pinboard=PIN\tkasuta töölauda nimega PIN\n" -" -r, --right=PANEEL\tava PANEEL ekraani paremas servas\n" -"··-R,·--RPC\t\tkutsu standardsisendist meetodit\n" -" -s, --show=FAIL\tnäita kataloogi, milles asub FAIL\n" -" -t, --top=PANEEL\tava PANEEL ekraani üleval servas\n" -" -u, --user\t\tnäita kasutajanimesid kõigis akendes\n" -" -v, --version\t\tnäita versiooniinfot ja välju\n" -" -x, --examine=FAIL\tkontrolli muutunud FAIL uuesti\n" -"\n" -"Vigadest teatage " - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -".\n" -"Kodulehekülg (kus ka uued versioonid): http://rox.sourceforge.net/\n" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"Me saime BadWindow vea X serverilt. See võib olla tingitud järgnevast GTK puugist (lohistamise ajal?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Üritan jätkata..." - -#: main.c:392 -msgid "The -o argument is no longer used. You can turn on override redirect from the Options box instead." -msgstr "Käsurea võti -o pole enam kasutusel. See on tõstetud Eelistused->Ühilduvus alla." - -#: main.c:513 -#, c-format -msgid "Running as user '%s'" -msgstr "Jookse kasutaja '%s' nime all" - -#: main.c:678 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Kompileeritud GTK versiooniga %s\n" - -#: main.c:679 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Jookseb GTK versiooniga %d.%d.%d\n" - -#: main.c:683 -msgid "features set at compile time" -msgstr "kompileerimise ajal seatud eelistused" - -#: main.c:684 -msgid "Large File Support" -msgstr "Suurte failide toetus" - -#: main.c:691 -msgid "Dnotify support" -msgstr "Dnotify-toetus" - -#: main.c:698 -msgid "Binary compatibility" -msgstr "Binaarne ühilduvus" - -#: main.c:700 -msgid "Yes (can run with older glibc versions)" -msgstr "Jah (suudab joosta ka vanemate glibc versioonidega)" - -#: main.c:702 -msgid "No (apsymbols.h not found)" -msgstr "Ei (apsymbols.h ei leitud)" - -#: main.c:706 -msgid "Extended attribute support" -msgstr "Laiendatud atribuutide toetus" - -#: menu.c:179 -#: tips:53 -msgid "Display" -msgstr "Vaade" - -#: menu.c:180 -#: tips:58 -msgid "Icons View" -msgstr "Ikoonivaade" - -#: menu.c:181 -msgid "Icons, With..." -msgstr "Ikoonid ja..." - -#: menu.c:182 -#: tips:75 -msgid "Sizes" -msgstr "Suurused" - -#: menu.c:184 -#: tips:255 -msgid "Types" -msgstr "Tüübid" - -#: menu.c:185 -#: tips:78 -msgid "Times" -msgstr "Ajad" - -#: menu.c:186 -#: tips:59 -#: tips:93 -msgid "List View" -msgstr "Loend-vaade" - -#: menu.c:188 -msgid "Bigger Icons" -msgstr "Suuremad ikoonid" - -#: menu.c:189 -msgid "Smaller Icons" -msgstr "Väiksemad ikoonid" - -#: menu.c:190 -#: tips:72 -msgid "Automatic" -msgstr "Automaatne" - -#: menu.c:192 -msgid "Sort by Name" -msgstr "Sorteeri nime järgi" - -#: menu.c:193 -msgid "Sort by Type" -msgstr "Sorteeri tüübi järgi" - -#: menu.c:194 -msgid "Sort by Date" -msgstr "Sorteeri kuupäeva järgi" - -#: menu.c:195 -msgid "Sort by Size" -msgstr "Sorteeri suuruse järgi" - -#: menu.c:196 -msgid "Sort by Owner" -msgstr "Sorteeri omaniku järgi" - -#: menu.c:197 -msgid "Sort by Group" -msgstr "Sorteeri grupi järgi" - -#: menu.c:198 -msgid "Reversed" -msgstr "Pööratud järjekorras" - -#: menu.c:200 -msgid "Show Hidden" -msgstr "Näita peidetud" - -#: menu.c:201 -msgid "Filter Files..." -msgstr "Filtreeri faile..." - -#: menu.c:202 -msgid "Show Thumbnails" -msgstr "Näita pisipilte" - -#: menu.c:203 -msgid "Refresh" -msgstr "Värskenda" - -#: menu.c:204 -msgid "Save Display Settings..." -msgstr "Salvesta ekraaniasetused..." - -#: menu.c:206 -msgid "Copy..." -msgstr "Kopeeri..." - -#: menu.c:207 -msgid "Rename..." -msgstr "Nimeta ümber..." - -#: menu.c:208 -msgid "Link..." -msgstr "Loo viit..." - -#: menu.c:212 -msgid "Send To..." -msgstr "Ava kasutades..." - -#: menu.c:217 -msgid "Count" -msgstr "Loenda" - -#: menu.c:218 -msgid "Set Type..." -msgstr "Sea tüüp..." - -#: menu.c:222 -#: toolbar.c:155 -msgid "Select" -msgstr "Vali" - -#: menu.c:223 -msgid "Select All" -msgstr "Vali kõik" - -#: menu.c:224 -msgid "Clear Selection" -msgstr "Tühista valik" - -#: menu.c:225 -msgid "Invert Selection" -msgstr "Pööra valik ümber" - -#: menu.c:226 -msgid "Select by Name..." -msgstr "Vali nime järgi..." - -#: menu.c:227 -msgid "Select If..." -msgstr "Vali mustri abil..." - -#: menu.c:229 -msgid "New" -msgstr "Uus" - -#: menu.c:231 -msgid "Blank file" -msgstr "Tühi fail" - -#: menu.c:233 -#: tasklist.c:308 -msgid "Window" -msgstr "Aken" - -#: menu.c:234 -msgid "Parent, New Window" -msgstr "Ava ülemine kataloog uues aknas" - -#: menu.c:235 -msgid "Parent, Same Window" -msgstr "Ava ülemine kataloog samas aknas" - -#: menu.c:236 -msgid "New Window" -msgstr "Uus aken" - -#: menu.c:238 -msgid "Show Bookmarks" -msgstr "Näita järjehoidjaid" - -#: menu.c:239 -msgid "Follow Symbolic Links" -msgstr "Järgi sümbolviitu" - -#: menu.c:240 -msgid "Resize Window" -msgstr "Kohalda akna suurust" - -#: menu.c:243 -msgid "Close Window" -msgstr "Sulge aken" - -#: menu.c:245 -msgid "Enter Path..." -msgstr "Sisesta tee..." - -#: menu.c:246 -msgid "Shell Command..." -msgstr "Käsurea korraldus..." - -#: menu.c:247 -msgid "Terminal Here" -msgstr "Terminal siia" - -#: menu.c:248 -msgid "Switch to Terminal" -msgstr "Hüppa terminali" - -#: menu.c:716 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Klõpsake Shift+Menüü faili kohal, et seda kuhugi saata" - -#: menu.c:752 -msgid "Next Click" -msgstr "Järgmine klõps" - -#: menu.c:774 -#, c-format -msgid "%d items" -msgstr "%d elementi" - -#: menu.c:862 -msgid "Open unmounted" -msgstr "Ava, aga ära ühenda" - -#: menu.c:865 -msgid "Show Target" -msgstr "Näita sihtkohta" - -#: menu.c:867 -msgid "Look Inside" -msgstr "Vaata sisse" - -#: menu.c:869 -msgid "Open As Text" -msgstr "Ava tekstina" - -#: menu.c:1029 -msgid "" -"Extended attributes, used to store types, are not supported for this file or files.\n" -"This may be due to lack of support from the filesystem or the C library, or it may simply be that the filesystem needs to be mounted with the right mount option ('user_xattr' on Linux)." -msgstr "" -"Laiendatud atribuudid, mida kasutatakse tüübi salvestamiseks, pole selle faili või failide puhul toetatud.\n" -"Selle põhjuseks võib olla atribuutide toetuse puudumine failisüsteemil või C-teegil, või ka lihtsalt peaksite failisüsteemi ühendamisel edastama õige suvandi ('user_xattr' Linuxi puhul)." - -#: menu.c:1035 -msgid "Setting type not supported for some of these files" -msgstr "Tüübi seadmine pole mõnede antud failide puhul toetatud" - -#: menu.c:1070 -msgid "_Relative link" -msgstr "_Relative link" - -#: menu.c:1076 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink may move but the target will stay put." -msgstr "" -"Kui selle suvandi sisse lülite, salvestatakse viida juures teekond sihtfailini. Kasutage seda siis, kui soovite viita ja sihtfaili koos liigutada.\n" -"Kui suvandi välja lülite, salvestatakse viida juures teekond sihtfailini juurkataloogist. Kasutage siis, kui liigutate viita, aga mitte sihtfaili." - -#: menu.c:1146 -msgid "New pathname is not absolute" -msgstr "Failitee pole absoluutne" - -#: menu.c:1212 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "Sümbolviit '%s' on juba olemas. Asendada see viidaga failile '%s'?" - -#: menu.c:1218 -msgid "_Replace" -msgstr "_Asenda" - -#: menu.c:1338 -#: menu.c:1379 -#: menu.c:1439 -msgid "Create" -msgstr "Tekita" - -#: menu.c:1339 -msgid "NewDir" -msgstr "UusKataloog" - -#: menu.c:1353 -#: menu.c:1359 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Faili '%s' loomisel oli viga: %s" - -#: menu.c:1380 -msgid "NewFile" -msgstr "UusFail" - -#: menu.c:1398 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Viga faili loomisel: ei leidnud malli %s jaoks" - -#: menu.c:1469 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an application. The applications listed are those in the following directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which will only be shown for files of that type. `.group' is shown only when multiple files are selected." -msgstr "" -"`Ava kasutades'-menüü võimaldab määrata failide avamiseks rakendusi (või nende viitasid), mis asuvad järgnevates kataloogides:\n" -"\n" -"%s\n" -"%s\n" -"`Ava kasutades'-menüü avaneb, klõpsates Shift+Menüü (vaikimisi parem hiirenupp) faili peal.\n" -"Edasijõudnud kasutus:\n" -"Te võite ka luua alamkatalooge nimedega `.text_html', `.text', jne, mida näidatakse vaid vastavat tüüpi failide puhul. `.group' näidatakse juhul, kui mitu faili on valitud." - -#: menu.c:1480 -msgid "I'll show you your SendTo directory now; you should symlink (Ctrl+Shift drag) any applications you want into it." -msgstr "Näitan 'Ava kasutades' kataloogi; Te saate sinna luua viitasid (Ctrl+Shift-lohista) rakendustele." - -#: menu.c:1483 -#: menu.c:1523 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "Vabandust: Teie CHOICESPATH muutuja lubab eelistusi muuta vaid kasutajal root." - -#: menu.c:1516 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Teie Mallide kataloogi paigutatud failid on näha `Uus' menüüs. Nendest mõna valimine tekitab uue failina koopia mallist.\n" -"\n" -"Järgnevad kataloogid sisaldavad malle:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1521 -msgid "I'll show you your Templates directory now; you should place any template files you want inside it." -msgstr "Näitan Mallide kataloogi; Te saate mallide failid panna sinna sisse." - -#: menu.c:1638 -msgid "Customise" -msgstr "Kohanda" - -#: menu.c:1704 -msgid "This is already the canonical name for this directory." -msgstr "See ongi juba antud kataloogi kanooniline nimi." - -#: menu.c:1735 -msgid "You can't open a second view onto this directory because the `Unique Windows' option is turned on in the Options window." -msgstr "Te ei saa avada teist akent selle kataloogiga, kuna eelistustes on aktiveeritud 'Näita ühes aknas'." - -#: menu.c:1861 -msgid "Copy ... ?" -msgstr "Kopeeri ... ?" - -#: menu.c:1864 -msgid "Rename ... ?" -msgstr "Nimeta ümber ... ?" - -#: menu.c:1867 -msgid "Symlink ... ?" -msgstr "Tekita viit ... ?" - -#: menu.c:1870 -msgid "Shift Open ... ?" -msgstr "Ava tekstina ... ?" - -#: menu.c:1873 -msgid "Properties of ... ?" -msgstr "Omadused ... ?" - -#: menu.c:1876 -msgid "Set type of ... ?" -msgstr "Sea ... tüüpi ?" - -#: menu.c:1879 -msgid "Set run action for ... ?" -msgstr "Avaja seadmine ... jaoks ?" - -#: menu.c:1882 -msgid "Set icon for ... ?" -msgstr "Sea ... ikooni ?" - -#: menu.c:1885 -msgid "Send ... to ... ?" -msgstr "Ava ... kasutades ... ?" - -#: menu.c:1888 -msgid "DELETE ... ?" -msgstr "KUSTUTA ... ?" - -#: menu.c:1891 -msgid "Count the size of ... ?" -msgstr "Loenda kokku ... suurused ?" - -#: menu.c:1894 -msgid "Set permissions on ... ?" -msgstr "Muuda ... loabitte ?" - -#: menu.c:1897 -msgid "Search inside ... ?" -msgstr "Otsi ... seest ?" - -#: menu.c:1961 -msgid "You cannot do this to more than one item at a time" -msgstr "Antud tegevust ei saa läbi viia mitme failiga" - -#: menu.c:1993 -msgid "Rename" -msgstr "Nimeta ümber" - -#: menu.c:1998 -msgid "Symlink" -msgstr "Loo viit" - -#: menu.c:2027 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Kiirklahvide kasutajate poolt muutmine on Gtk2 rakendustes vaikimisi keelatud. Te saate need lubada järgnevalt:\n" -"1) Kasutades XSettings-haldurit, nagu näiteks ROX-Session või gnome-settings-daemon, või\n" -"\n" -"2) Lisades faili ~/.gtkrc-2.0 rea:\n" -"\tgtk-can-change-accels = 1\n" -"\t(see töötab vaid siis, kui te EI kasuta XSETTINGS)" - -#: menu.c:2038 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key without opening the menu in future." -msgstr "" -"Kiirklahvide määramiseks:\n" -"\n" -"- Avage mõne failihalduri akna kohal menüü,\n" -"- Liikuge hiirekursoriga soovitud tegevuse kohale,\n" -"- Vajutage kiirklahvi, mida soovite tegevusele määrata.\n" -"\n" -" Määratud kiirklahv ilmub nähtavale menüüs tegevuse kõrval. Edaspidi piisab tegevuse väljakutsumiseks kiirklahvi vajutamisest ja menüüd pole vaja avada." - -#: menu.c:2053 -msgid "Set keyboard shortcuts" -msgstr "Määra kiirklahve" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Mine:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Vali mustri abil:" - -#: minibuffer.c:134 -msgid "Select Named:" -msgstr "Vali nimetatud:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "Mall:" - -#: minibuffer.c:264 -msgid "Enter the name of a file and I'll display it for you. Press Tab to fill in the longest match. Escape to close the minibuffer." -msgstr "Sisestage failinimi, mida näidata. TAB klahv lõpetab nimesid. Esc klahv sulgeb minipuhvri." - -#: minibuffer.c:270 -msgid "Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "Sisestage täidetav shelli käsk. Klõpsake failil, lisamaks seda puhvrisse." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Siseta failinime muster, et valida kõik sobivad failid:\n" -"\n" -"? tähendab ühte suvalist märki\n" -"* tähendab 0 või mitu suvalist märki\n" -"[aA] tähendab 'a' või 'A'\n" -"[a-z] tähendab märki a ja z vahel (väiksed tähed)\n" -"*.png tähendab ükskõiik millist '.png' lõpuga nime" - -#: minibuffer.c:287 -msgid "Enter a pattern to match for files to be shown. An empty filter turns the filter off." -msgstr "Sisesta muster, millele vastavaid faile kuvatakse. Tühja filtri puhul lülitakse filter välja." - -#: minibuffer.c:907 -msgid "Invalid Find condition" -msgstr "Vigane otsinguparameeter" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s·kokku,·%s·kasutusel,·%s·vaba·(%.1f·%%)" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "Teie vana eelistustefail teisendati uude XML-põhisesse vormingusse" - -#: options.c:535 -#: options.c:1257 -msgid "(use default)" -msgstr "(kasuta vaikimisi asetusi)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Sisemine viga: %s pole loetav" - -#: options.c:916 -msgid "Options" -msgstr "Eelistused" - -#: options.c:961 -msgid "_Revert" -msgstr "_Taastatav" - -#: options.c:967 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Taasta kõik asetused eelistuste akna avamise hetke seisule." - -#: options.c:982 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Eelistused salvestati nime alla:\n" -"%s" - -#: options.c:990 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(CHOICESPATH keelab muudatuste salvestamise)" - -#: options.c:1163 -#: usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Viga %s salvestamisel: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "Puudub '='" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Teie paneeli asetused on teisendati uude XML-põhisesse vormingusse." - -#: panel.c:546 -msgid "You have tried to close a panel via the window manager - I usually find that this is accidental... really close?" -msgstr "Te üritasite paneeli sulgeda aknahalduri kaudu - enamasti pole see soovitud ... Tõesti sulgeda ?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "Puuduv < või > paneeli asetuste failis" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Paneeli %s salvestamisel oli viga : %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Applet väljus ilma kasutajaliidese elementi loomata!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Viga appleti käivitamisel:\n" -"%s" - -#: panel.c:2338 -msgid "Panel Options..." -msgstr "Paneeli valikud..." - -#: panel.c:2430 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Xinerama ekraan %d pole saadaval" - -#: panel.c:2505 -msgid "Panel Options" -msgstr "Paneeli valikud" - -#: panel.c:2520 -#, c-format -msgid "Panel: %s" -msgstr "Paneel: %s" - -#: panel.c:2528 -msgid "Select the panel's position:" -msgstr "Vali paneeli asend:" - -#: panel.c:2534 -msgid "Top-edge panel" -msgstr "Paneel üleval servas" - -#: panel.c:2535 -msgid "Top edge" -msgstr "Üleval" - -#: panel.c:2536 -msgid "Bottom edge panel" -msgstr "Paneel all servas" - -#: panel.c:2537 -msgid "Bottom edge" -msgstr "Alumine serv" - -#: panel.c:2538 -msgid "Left edge panel" -msgstr "Paneel vasakul servas" - -#: panel.c:2539 -msgid "Left edge" -msgstr "Vasakul" - -#: panel.c:2540 -msgid "Right-edge panel" -msgstr "Paneel paremal servas" - -#: panel.c:2541 -msgid "Right edge" -msgstr "Paremal" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "Teie töölaua asetuste fail teisaldati uude XML-põhisesse vormingusse." - -#: pinboard.c:635 -msgid "The backdrop handler must be an application directory. Drag an application directory into the Set Backdrop dialog box, or (for programmers) pass it to the SOAP SetBackdropApp method." -msgstr "Taustahaldur peab olema kataloograkendus. Lohistage kataloograkendus 'Muuda tausta' dialoogikasti või (programmeerijate jaoks) edastage see SOAP SetBackdropApp meetodi argumendina." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop element, as described in ROX-Filer's manual." -msgstr "" -"Taustaks saate määrata kas pildi või rakenduse, mis oskab hallata Rox-Filer'i tausta.\n" -"\n" -"Programmeerijatele: rakenduse Appinfo.xml peab sisaldama CanSetBackdrop elementi, nagu kirjeldatud ROX-Filer'i käsiraamatus." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Muuda tausta" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Vali tausta positsioon ja lohista pilt kasti:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Keskjoonda pilt ilma maksimiseerimata" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Keskjoonda" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Maksimiseeri pilt üle tausta ilma mõõtude suhet muutmata" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Maksimiseeri" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Venita pilt üle tausta" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Venita" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Laota pilt taustale paanidena" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Paanidena" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Lohistage siia pilt" - -#: pinboard.c:772 -msgid "No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox -p=Default' to turn it on in future." -msgstr "Töölaua asetusi ei leitud. Avan vaikimisi töölaua.Kasutage ROX-Filer'i käivitamisel parameetrit 'rox -p=Default', et sama töölauda tulevikus aktiveerida." - -#: pinboard.c:866 -msgid "Only files (and certain applications) can be used to set the background image." -msgstr "Tausta seadmiseks saate kasutada vaid pilte (ja teatud rakendusi)." - -#: pinboard.c:1480 -msgid "Missing '>' in icon label" -msgstr "Ikooni sildis puudub '>'" - -#: pinboard.c:1489 -msgid "Missing ',' after icon label" -msgstr "Ikooni sildis puudub ','" - -#: pinboard.c:1574 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Viga %s töölaua asetuste salvestamisel: %s" - -#: pinboard.c:2118 -msgid "Backdrop..." -msgstr "Taust..." - -#: pinboard.c:2211 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Viga taustapildi laadimisel:\n" -"%s\n" -"Taust eemaldatud." - -#: pixmaps.c:954 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Ei saa eemaldada pisipilti %s:\n" -"%s" - -#: pixmaps.c:975 -msgid "There are no thumbnails to delete" -msgstr "Pole pisipilte, mida kustutada" - -#: pixmaps.c:988 -msgid "Purge thumbnails disk cache" -msgstr "Kustuta pisipiltide puhver" - -#: remote.c:628 -#, c-format -msgid "Unknown style '%s'" -msgstr "Tundmatu stiil '%s'" - -#: remote.c:650 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Tundmatu omaduste tüüp '%s'" - -#: remote.c:678 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Tundmatu sortimistüüp '%s'" - -#: remote.c:1124 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Kutsuti tundmatut SOAP-meetodit '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Vigane .gmo tõlkefail (liiga lühike): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Vigane .gmo tõlkefail (ei leitud GNU maagilist päist): %s" - -#: run.c:100 -#: run.c:153 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Rakendust %s ei leitud - on see kustutatud?" - -#: run.c:303 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Faili pole olemas või ei saa seda avada: %s" - -#: run.c:308 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Ma ei oska avada '%s'" - -#: run.c:339 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it (hold down Shift while you open it). Most applications provide their own help here, but this one doesn't." -msgstr "" -"Rakendus:\n" -"See on kataloograkendus (application directory). Te võite seda käivitada kui programmi või avada kui kataloogi (Shift+klõps)Enamus rakendusi näitavad omaenda abiinfot, kuid mitte see." - -#: run.c:423 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Ei suutnud saata andmeid rakendusele: %s" - -#: run.c:453 -#, c-format -msgid "Could not read link: %s" -msgstr "Ei suutnud lugeda viita: %s" - -#: run.c:481 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Katkine viit (või puuduvad teil õigused sellele järgneda): %s" - -#: run.c:518 -#, c-format -msgid "No run action specified for files of this type (%s/%s) - you can set a run action by choosing `Set Run Action' from the File menu, or you can just drag the file to an application.%s" -msgstr "Failitüübi (%s/%s) jaoks pole seatud avajat - Te saate seda seada, valides Fail-menüüst 'Sea avaja...', või lohistades faili rakenduse peale. %s" - -#: run.c:524 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Note: Kui te soovite jooksutada arvutiprogrammi, peate te seadma käivitusbiti, valides Fail menüüst Õigused." - -#: run.c:668 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the permissions now (this problem may have been caused by a bug in earlier versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. Otherwise, you should check, or even just delete, all the existing run actions." -msgstr "" -"Programm '%s' on kõigile kirjutatav! Keeldun käivitamast seda. Palun muutke faili ligipääsuõigusi (probleem võib olla pärit failihalduri vanemast, vigasest, versioonist).\n" -"\n" -"Kõigile kirjutatav programmifail (välja arvatud sümboolsed viidad) tähendab seda, et kõik teie arvuti kasutajad saavad teie programmi muuta, asendades selle potentsiaalselt ohtliku programmiga.\n" -"\n" -"Juhul, kui te usaldate absoluutselt kõiki kasutajaid, kellel on olnud ligipääs, ei pruugi te muretseda. Vastasel juhul peaksite üle kontrollima või isegi kustutama kõik käivitamis-seosed" - -#: run.c:681 -msgid "go-w (Fix security problem)" -msgstr "go-w (Lahenda turvaprobleem)" - -#: support.c:273 -msgid "B" -msgstr "B" - -#: support.c:352 -msgid "byte" -msgstr "bait" - -#: support.c:1565 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Faili '%s' avamine ja stat ebaõnnestus: %s" - -#: support.c:1576 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Faili '%s' mmap avamine ebaõnnestus: %s" - -#: toolbar.c:115 -msgid "Close" -msgstr "Sulge" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Sulge failihalduri aken" - -#: toolbar.c:119 -msgid "Up" -msgstr "Üles" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Mine ülevalpoolsesse kataloogi" - -#: toolbar.c:123 -msgid "Home" -msgstr "Kodu" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Mine kodukataloogi" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Järjehoidjad" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Järjehoidjate-menüü" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Skaneerida" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Skaneeri uuesti kataloogi sisu" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Muuda ikooni suurust" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Automaatselt kohanduv ikoonisuurus" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Näita rohkem infot" - -#: toolbar.c:147 -msgid "Sort" -msgstr "Sordi" - -#: toolbar.c:147 -msgid "Change sort criteria" -msgstr "Muuda sortimiskriteeriume:" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Peidetud" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Näita/varja peidetud faile" - -#: toolbar.c:155 -msgid "Select all/invert selection" -msgstr "Vali kõik/pööra valik ümber" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "Näita ROX-Filer'i abiinfot" - -#: toolbar.c:222 -#, c-format -msgid " (%u hidden)" -msgstr " (%u peidetud)" - -#: toolbar.c:230 -#: tips:81 -msgid "items" -msgstr "faili" - -#: toolbar.c:230 -msgid "item" -msgstr "fail" - -#: toolbar.c:233 -#, c-format -msgid "No items%s" -msgstr "Pole faile%s" - -#: toolbar.c:252 -#, c-format -msgid "%u selected (%s)" -msgstr "%u faili valitud (%s)" - -#: toolbar.c:424 -msgid "Sort by name" -msgstr "Sorteeri nime järgi" - -#: toolbar.c:424 -msgid "Sort by type" -msgstr "Sorteeri tüübi järgi" - -#: toolbar.c:424 -msgid "Sort by date" -msgstr "Sorteeri aja järgi" - -#: toolbar.c:425 -msgid "Sort by size" -msgstr "Sorteeri suuruse järgi" - -#: toolbar.c:425 -msgid "Sort by owner" -msgstr "Sorteeri omaniku järgi" - -#: toolbar.c:425 -msgid "Sort by group" -msgstr "Sorteeri grupi järgi" - -#: toolbar.c:459 -msgid "ascending" -msgstr "tõusev" - -#: toolbar.c:459 -msgid "descending" -msgstr "langev" - -#: type.c:209 -msgid "Sym link" -msgstr "Süm. viit" - -#: type.c:211 -msgid "Mount point" -msgstr "Ühenduspunkt" - -#: type.c:213 -msgid "App dir" -msgstr "Rakenduskat" - -#: type.c:220 -msgid "Dir" -msgstr "Kat" - -#: type.c:222 -msgid "Char dev" -msgstr "Märkseade" - -#: type.c:224 -msgid "Block dev" -msgstr "Blokkseade" - -#: type.c:226 -msgid "Pipe" -msgstr "Toru" - -#: type.c:228 -msgid "Socket" -msgstr "Sokkel" - -#: type.c:230 -msgid "Door" -msgstr "Uks" - -#: type.c:233 -msgid "Unknown" -msgstr "Tundmatu" - -#: type.c:457 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Sisestage shellikäsk, millele argumendina edastada \"$@\". Näit.:\n" -"\n" -"gimp \"$@\"" - -#: type.c:638 -msgid "This is not a program! Give me an application instead!" -msgstr "See pole programm! Andke mulle selle asemel rakendus!" - -#: type.c:699 -msgid "No run action defined" -msgstr "Avamisseost pole määratud" - -#: type.c:725 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Viga käsitlejas %s: %s" - -#: type.c:740 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Mittekehtiv rakendus %s (vigane AppRun)" - -#: type.c:751 -#, c-format -msgid "Non-executable %s" -msgstr "Mittekäivitatav fail %s" - -#: type.c:784 -msgid "Set run action" -msgstr "Sea avaja" - -#: type.c:790 -msgid "If a handler for the specific type isn't set up, use this as the default." -msgstr "Kui failitüübile pole avajat määratud, kasutada vaikimisi seda." - -#: type.c:792 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Kasuta vaikimisi '%s/' avamiseks" - -#: type.c:796 -msgid "Use this application for all files with this MIME type." -msgstr "Kasuta seda rakendust antud MIME-tüübiga failide avamiseks." - -#: type.c:798 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Ainult tüübi `%s' (%s/%s) jaoks" - -#: type.c:804 -msgid "Drop a suitable application here" -msgstr "Lohistage siia sobiv rakendus" - -#: type.c:819 -msgid "OR" -msgstr "VÕI" - -#: type.c:826 -msgid "Enter a shell command:" -msgstr "Sisestage shelli käsk:" - -#: type.c:855 -msgid "_Use Command" -msgstr "_Kasuta käsku" - -#: type.c:885 -msgid "A run action already exists and is quite a big program - are you sure you want to delete it?" -msgstr "Käivitaja on juba määratud ja see on üsna suur programm - oled kindel, et soovid seda kustutada?" - -#: type.c:896 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Ei saa eemaldada %s: %s" - -#: type.c:933 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "Seadete salvestamise keelab CHOICESPATH-keskkonnamuutuja" - -#: type.c:1208 -#, c-format -msgid "Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "Ikooniteemas '%s' pole MIME ikoone. Kasutan Rox vaikimisi teemat.." - -#: type.c:1223 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-application:postscript' icon couldn't be loaded for some reason, or %s is a link to an invalid directory; try deleting it)" -msgstr "" -"Sümbolviida '%s' loomine ebaõnnestus:\n" -"%s\n" -"\n" -"(see võib tähendada, et ROX teema on juba seal olemas, kuid mingil põhjusel ei suudetud laadida 'mime-application:postscript' ikooni või on %s viide vigasele kataloogile, proovige see kustutada)" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Faili, milleni teekonna sisestasite, pole olemas. Ikooni ei muudetud." - -#: usericons.c:191 -#: usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Pildifaili ei õnnestu laadida - võib-olla on see mulle tundmatus vormingus või on ligipääsuõigused väärad?\n" -"Ikooni ei muudetud." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Tõesti kustutada ikoon '%s'?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Ei suuda kustutada '%s':\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Sea ikooni" - -#: usericons.c:279 -msgid "Use a copy of the image as the default for all files of these MIME types." -msgstr "Kasuta koopiat pildist vaikimisi kõigi selle MIME-tüübiga failide jaoks." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Sea ikoon kõigi tüüpi `%s/' failide jaoks" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Kasuta koopiat pildist kõigi antud MIME-tüübiga failide jaoks." - -#: usericons.c:288 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Failidele, mis on tüüpi `%s' (%s/%s)" - -#: usericons.c:294 -msgid "Add the file and image filenames to your personal list. The setting will be lost if the image or the file is moved." -msgstr "Lisage faili ja pildi failinimed oma isiklikku nimekirja. See asetus läheb kaotsi, kui pilt või fail mujale tõstetakse." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "Ainult faili `%s' jaoks" - -#: usericons.c:305 -msgid "Copy the image inside the directory, as a hidden file called '.DirIcon'. All users will then see the icon, and you can move the directory around safely. This is usually the best option if you can write to the directory." -msgstr "Kopeeri pilt kataloogi sisse peidetud faili '.DirIcon'. nime alla.Kõik kasutajad näevad ikooni ja ketaloogi võib probleemitult mujale tõsta. See on enamasti parim valik, kui Teil on kirjutusõigus antud kataloogile." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Kopeeri pilt kataloogi" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Lohistage siia ikoonifail" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Ikooni seadmise keelab CHOICESPATH-keskkonnamuutuja" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Viga pildi kopeerimisel '%s':\n" -"%s" - -#: view_details.c:1012 -msgid "_Name" -msgstr "_Nimi" - -#: view_details.c:1015 -msgid "_Type" -msgstr "_Tüüp" - -#: view_details.c:1018 -msgid "_Permissions" -msgstr "_Ligipääsuõigused" - -#: view_details.c:1019 -msgid "_Owner" -msgstr "_Omanik" - -#: view_details.c:1021 -msgid "_Group" -msgstr "_Grupp" - -#: view_details.c:1023 -msgid "_Size" -msgstr "_Suurus" - -#: view_details.c:1025 -msgid "Last _Modified" -msgstr "Viimati _muudetud" - -#: tips:1 -msgid "Translation" -msgstr "Tõlge" - -#: tips:2 -msgid "Language" -msgstr "Keel" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "Kasutage LANG keskkonnamuutujat" - -#: tips:4 -msgid "Basque" -msgstr "Baski" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Hiina (traditsiooniline)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Hiina (lihtsustatud)" - -#: tips:7 -msgid "Czech" -msgstr "Tšehhi" - -#: tips:8 -msgid "Danish" -msgstr "Taani" - -#: tips:9 -msgid "Dutch" -msgstr "Hollandi" - -#: tips:10 -msgid "English (no translation)" -msgstr "Inglise (tõlkimata)" - -#: tips:11 -msgid "Estonian" -msgstr "Eesti" - -#: tips:12 -msgid "Finnish" -msgstr "Soome" - -#: tips:13 -msgid "French" -msgstr "Prantsuse" - -#: tips:14 -msgid "German" -msgstr "Saksa" - -#: tips:15 -msgid "Hungarian" -msgstr "Ungari" - -#: tips:16 -msgid "Japanese" -msgstr "Jaapani" - -#: tips:17 -msgid "Norwegian" -msgstr "Norra" - -#: tips:18 -msgid "Italian" -msgstr "Itaalia" - -#: tips:19 -msgid "Polish" -msgstr "Poola" - -#: tips:20 -msgid "Portuguese (Portugal)" -msgstr "Portugali (Portugal)" - -#: tips:21 -msgid "Portuguese (Brasil)" -msgstr "Portugali (Brasiilia)" - -#: tips:22 -msgid "Romanian" -msgstr "Rumeenia" - -#: tips:23 -msgid "Russian" -msgstr "Vene" - -#: tips:24 -msgid "Spanish" -msgstr "Hispaania" - -#: tips:25 -msgid "Swedish" -msgstr "Rootsi" - -#: tips:26 -msgid "Filer windows" -msgstr "Failihalduri aknad" - -#: tips:27 -msgid "Auto-resize filer windows" -msgstr "Automaatselt muuda failihalduri akende suurust" - -#: tips:28 -msgid "Never automatically resize" -msgstr "Ära kunagi sea suurust automaatselt" - -#: tips:29 -msgid "You'll have to resize windows manually, using the window manager, the `Resize Window' menu entry or by double-clicking on the window background." -msgstr "Te peate akna suurust muutma käsitsi, kasutades; aknahalduri võimalusi, menüüvalikut `Kohalda akna suurust'-või topeltklõpsates akna tausta." - -#: tips:30 -msgid "Resize when changing the display style" -msgstr "Kohalda akna suurust vaate muutmisel" - -#: tips:31 -msgid "Changing the size of the icons or which details are displayed will resize the window for you." -msgstr "Ikoonide suuruse või näidatavate omaduste hulga muutmisel muudetakse akna suurust automaatselt." - -#: tips:32 -msgid "Always resize" -msgstr "Alati muuda suurust" - -#: tips:33 -msgid "The filer will resize windows whenever it seems useful (that is, when changing directory or display style)." -msgstr "Failihaldur muudab akna suurust iga kord, kui see tundub mõistlik (s.t. kataloogi vahetamisel või vaate muutmisel)." - -#: tips:34 -msgid "Largest window size:" -msgstr "Akna maksimaalne suurus:" - -#: tips:35 -msgid "%" -msgstr "%" - -#: tips:36 -msgid "The largest size, as a percentage of the screen size, that the auto-resizer will resize a window to." -msgstr "Maksimaalne suurus, milleni aken automaatselt suurust muutes tohib kasvada, väljendatuna protsentides ekraanist." - -#: tips:37 -msgid "Window behaviour" -msgstr "Akende käitumine" - -#: tips:38 -msgid "Short titlebar flags" -msgstr "Lühiindikaatorid aknapäisel" - -#: tips:39 -msgid "Use single letters instead of words for Scanning, All and Thumbs indicators in the titlebar." -msgstr "Kasuta ühetähelisi lühendeid sõnade 'Skaneerin', 'Kõik', 'Pisipildid' asemel akna päises." - -#: tips:40 -msgid "Unique windows" -msgstr "Akende uuestikasutamine" - -#: tips:41 -msgid "If you open a directory and that directory is already displayed in another window, then this option causes the other window to be closed." -msgstr "Kui antud suvand on sisse lülitud, siis kataloogi avamise puhul, mis on juba avatud mõnes teises failihalduri aknas, suletakse teine aken." - -#: tips:42 -msgid "New window on button 1" -msgstr "Ava nupuga 1 kataloog uues aknas" - -#: tips:43 -msgid "Clicking with mouse button 1 (usually the left button) opens a directory in a new window with this turned on. Clicking with the button-2 (middle) will reuse the current window." -msgstr "Klõpsates esimese hiirenupuga (tavaliselt vasak nupp) avatakse kataloog uues aknas. Klõpsates teise nupuga (keskmine hiirenupp) avatakse kataloog samas aknas." - -#: tips:44 -msgid "Single-click navigation" -msgstr "Ühe klõpsuga avamine" - -#: tips:45 -#: tips:138 -msgid "Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things." -msgstr "Kui antud suvand on sisse lülitud, siis üks hiireklõps avab faili/kataloogi. Hoidke all Control-klahvi, et faili valida. Kui suvand on keelatud, siis üks klõps valib faili ja kaks klõpsu avab selle." - -#: tips:46 -msgid "Double-click on background resizes" -msgstr "Topeltklõps taustale muudab suurust" - -#: tips:47 -msgid "If on then double clicking on the window background resizes the window, just like clicking on the Automatic size mode button in the toolbar." -msgstr "Kui see suvand on sisse lülitud, muudab akna taustale topeltkõpsamine aknasuurust, käitudes nagu Automaatse suuruse nupp nupuribas." - -#: tips:48 -msgid "Sorting" -msgstr "Sordi" - -#: tips:49 -msgid "Directories come first (for sort by name)" -msgstr "Katalooge näidatakse enne (nimede järgi sortides)" - -#: tips:50 -msgid "If this is on then directories will always appear before anything else when sorting by name." -msgstr "Nimede järgi sortides näidatakse katalooge alati enne muid faile." - -#: tips:51 -msgid "Capitalised names first (for sort by name)" -msgstr "Suurtähed enne väiketähti (nimede järgi sortides)" - -#: tips:52 -msgid "If on, all filenames starting with a capital letter come before filenames starting with lowercase ones." -msgstr "Suurtähtedega algavaid faile näidatakse enne väiketähtedega algavaid." - -#: tips:54 -msgid "Default settings for new windows" -msgstr "Vaikimisi asetused uutele akendele" - -#: tips:55 -msgid "Inherit options from source window" -msgstr "Kasuta algse akna seadeid" - -#: tips:56 -msgid "If this is on then display options for a new window are inherited from the source window if possible, otherwise they are set to the defaults below." -msgstr "Kui suvand on lubatud, kasutatakse uue akna puhul algse akna seadeid (kui võimalik), vastasel juhul kasutatakse vaikimisi asetusi." - -#: tips:57 -msgid "View type:" -msgstr "Vaate tüüp:" - -#: tips:60 -msgid "Sort by:" -msgstr "Sordi tunnuse järgi:" - -#: tips:62 -#: tips:77 -msgid "Type" -msgstr "Tüüp" - -#: tips:63 -msgid "Date" -msgstr "Kuupäev" - -#: tips:65 -msgid "Show hidden files" -msgstr "Näita peidetud faile" - -#: tips:66 -msgid "If this is on then files whose names start with a dot are shown too, otherwise they are hidden." -msgstr "Kui suvand on sees, näidatakse faile, mis algavad punktiga, vastasel juhul peidetakse need." - -#: tips:67 -msgid "Icon View" -msgstr "Ikoonidega vaade" - -#: tips:68 -msgid "Default size:" -msgstr "Vaikimisi suurus:" - -#: tips:69 -msgid "Huge Icons" -msgstr "Väga suured ikoonid" - -#: tips:70 -#: tips:246 -msgid "Large Icons" -msgstr "Suured ikoonid" - -#: tips:71 -#: tips:245 -msgid "Small Icons" -msgstr "Väikesed ikoonid" - -#: tips:73 -msgid "Default details:" -msgstr "Vaikimisi üksikasjad:" - -#: tips:74 -msgid "No details" -msgstr "Pole üksikasju" - -#: tips:79 -msgid "Automatic small icons:" -msgstr "Automaatselt väiksed ikoonid:" - -#: tips:80 -msgid "Change at:" -msgstr "Muuda alates:" - -#: tips:82 -msgid "When automatic icon sizing is selected: If the directory contains this many items then it will be shown using Small Icons, otherwise Large Icons will be used." -msgstr "Juhul kui on lubatud automaatselt ikoonide suuruse muutmine ja kataloogis on vähemalt nii palju faile, näidatakse neid väikeste ikoonidega, vastasel juhul kasutatakse suuri ikoone." - -#: tips:83 -msgid "Max width (Large icons):" -msgstr "Maksimumlaius (suurte ikoonidega):" - -#: tips:84 -#: tips:87 -msgid "pixels" -msgstr "pikslit" - -#: tips:85 -msgid "Text wider than this is broken onto two lines in Large Icons mode. In Huge Icons mode, text is wrapped when 50% wider than this." -msgstr "Sellest numbrist laiem tekst murtakse suurte ikoonide puhul järgmisele reale. Väga suurte ikoonide puhul murtakse tekst siis, kui tekst on 50% laiem sellest arvust." - -#: tips:86 -msgid "(Small Icons):" -msgstr "(Väikesed ikoonid):" - -#: tips:88 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Teksti maksimaalne laius väikese ikooni kõrval." - -#: tips:89 -msgid "Order small icons vertically" -msgstr "Järjesta väikesed ikoonid vertikaalselt" - -#: tips:90 -msgid "If this option is on, then small icons are arranged in columns, not rows." -msgstr "Kui see suvand on lubatud, järjestatakse väikesed ikoonid tulpadesse, mitte ridadesse." - -#: tips:91 -msgid "Order large icons vertically" -msgstr "Järjesta suured ikoonid vertikaalselt." - -#: tips:92 -msgid "If this option is on, then large icons are arranged in columns, not rows." -msgstr "Kui see valik on lubatud, järjestatakse suured ikoonid tulpadesse, mitte ridadesse." - -#: tips:94 -msgid "Show column headings" -msgstr "Näita tulpade päiseid" - -#: tips:95 -msgid "If this is on then column headings will be shown in the list view." -msgstr "Näidatakse päiseid tulpade kohal nimekirjavaate puhul." - -#: tips:96 -msgid "Show full type" -msgstr "Näita täielikku tüübiinfot" - -#: tips:97 -msgid "If this is on then the full description of each object's type will be show rather than a short summary of its basic type." -msgstr "Kui see valik on lubatud, siis näidatakse iga objektijuures tema tüübi täiskirjeldust, mitte selle tüübi lühikokkuvõtet." - -#: tips:98 -msgid "Tools/Minibuffer" -msgstr "Nupuriba/Käsurida" - -#: tips:99 -msgid "Toolbar" -msgstr "Nupuriba" - -#: tips:100 -msgid "Toolbar type:" -msgstr "Nupurea tüüp:" - -#: tips:101 -msgid "No toolbar" -msgstr "Pole nupuriba" - -#: tips:102 -msgid "Icons only" -msgstr "Ainult ikoonid" - -#: tips:103 -msgid "Text under icons" -msgstr "Tekst ikoonide all" - -#: tips:104 -msgid "Text beside icons" -msgstr "Tekst ikoonide kõrval" - -#: tips:105 -msgid "Show totals of items" -msgstr "Näita objektide arvu nupuribal" - -#: tips:106 -msgid "Show the number of items displayed in a filer window, as well as the number of hidden items (if any). When there's a selection, show the number of selected items and their combined size." -msgstr "Näita failihalduri aknas näha olevate failide/kataloogide arvu ja peidetud failide arvu(kui neid on). Kui mõningaid faile on valitud, näita nende hulka ja failisuuruste summat." - -#: tips:107 -msgid "Select the buttons you want on the bar:" -msgstr "Valige nupud, mida tahate nupuribale:" - -#: tips:108 -msgid "Width of toolbar sets minimum width of window" -msgstr "Nupuriba laius määrab akna minimaalse laiuse" - -#: tips:109 -msgid "Each filer window is constrained to be wide enough to show the whole of the toolbar" -msgstr "Failihalduri akendel ei lubata olla kitsamad kui nupuriba laius" - -#: tips:110 -msgid "Minibuffer" -msgstr "Käsurida" - -#: tips:111 -msgid "Beep if Tab-completion fails" -msgstr "Tabulaatoriga nime lõpetamise ebaõnnestumisel piiksata" - -#: tips:112 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if nothing happens (eg, because there are several possibilities and the next letter varies)." -msgstr "Kui te vajutate tabulaatorit 'Sisesta tee ...'-käsureal, kõlab piiksatus, kui midagi ei juhtu (näit. on mitu sobivat failinime ja järgmine täht nendes on erinev)." - -#: tips:113 -msgid "Beep if there are several matches" -msgstr "Piiksata kui on mitmeid võimalikke vasteid" - -#: tips:114 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if there is more than one matching file, even though some more letters were added." -msgstr "Kui vajutate tabulaatorit 'Sisesta tee...'-käsureal, kõlab piiksatus , kui on mitu võimalikku sobivat failinime, ka juhul, kui lisati tähti lõpetatavale nimele." - -#: tips:117 -msgid "When thumbnails are turned on, each image file in a directory is loaded and a small thumbnail of it is shown." -msgstr "Kui pisipildid on lubatud, näidatakse kataloogis pildi vähendatud koopiat tema ikoonina." - -#: tips:118 -msgid "Show image thumbnails" -msgstr "Näita pisipilte" - -#: tips:119 -msgid "This is the default setting for new windows. Use the Display menu to turn thumbnails on and off for individual windows." -msgstr "See on vaikimisi asetus uute akende jaoks. Kasuta 'Vaade' menüüd pisipiltide lubamiseks/keelamiseks antud aknas." - -#: tips:120 -msgid "Video thumbnails" -msgstr "Videopisipildid" - -#: tips:121 -msgid "Thumbnails cache" -msgstr "Pisipiltide vahemälu" - -#: tips:122 -msgid "To speed things up, the generated thumbnails are stored in the hidden ~/.thumbnails directory. Click here to remove all the cached thumbnails. They will be created again as needed." -msgstr "Pisipiltide kiiremaks laadimiseks puhverdatakse pisipildid peidetud kataloogi ~/.thumbnails. Kõigi salvestatud pisipiltide eemaldamiseks klõpsake siia, Pisipiltide puhver luuakse uuesti vastavalt vajadusele." - -#: tips:123 -#: tips:196 -msgid "Pinboard" -msgstr "Töölaud" - -#: tips:124 -msgid "When using a pinboard, you can drag files and applications onto the desktop background to create shortcuts to them." -msgstr "Kui kasutate töölauda, on teil võimalik lohistada faile ja programme oma töölaua taustale, et luua nendeni viitavaid ikoone." - -#: tips:125 -#: tips:242 -msgid "Appearance" -msgstr "Välimus" - -#: tips:126 -msgid "Foreground:" -msgstr "Esiplaan:" - -#: tips:127 -msgid "Text shadow:" -msgstr "Teksti vari:" - -#: tips:128 -msgid "Background:" -msgstr "Taust:" - -#: tips:129 -msgid "No shadow" -msgstr "Pole varju" - -#: tips:130 -msgid "Thin" -msgstr "Õhuke" - -#: tips:131 -msgid "Thick" -msgstr "Paks" - -#: tips:132 -msgid "Use custom font:" -msgstr "Kasuta muud fonti:" - -#: tips:133 -msgid "The font used for the text displayed under the icons" -msgstr "Ikooni alla käiva teksti font" - -#: tips:134 -msgid "Fast scaling of images" -msgstr "Piltide kiire skaleerimine" - -#: tips:135 -msgid "Choose between the fast or slow method of scaling backdrop images. The slow method can give better results." -msgstr "Valige kiire ja aeglase meetodi vahel taustapilte skaleerides. Aeglane meetod võib anda paremaid tulemusi." - -#: tips:136 -msgid "Pinboard behaviour" -msgstr "Töölaua käitumine" - -#: tips:137 -msgid "Single-click to open" -msgstr "Ava ühe klõpsuga" - -#: tips:139 -msgid "Keep icons within screen limits" -msgstr "Hoia ikoonid ekraani piirides" - -#: tips:140 -msgid "If this is set, pinboard icons are always kept completely within screen limits, including the label." -msgstr "Ikoonid hoitakse alati ekraani piiride sees, kaasa arvatud ikooni all olev tekst." - -#: tips:141 -msgid "Icon grid step:" -msgstr "Ikooni asetustäpsus:" - -#: tips:142 -msgid "Fine" -msgstr "Täpne" - -#: tips:143 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Kasutatakse 2-pikslist sammu ikoonide töölauale paigutamisel." - -#: tips:144 -msgid "Medium" -msgstr "Keskmine" - -#: tips:145 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Kasutatakse 16-pikslist sammu ikoonide töölauale paigutamisel." - -#: tips:146 -msgid "Coarse" -msgstr "Ebatäpne" - -#: tips:147 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Kasutatakse 32-pikslist sammu ikoonide töölauale paigutamisel." - -#: tips:148 -#: tips:150 -msgid "Iconified windows" -msgstr "Minimeeritud aknad" - -#: tips:149 -msgid "Most window managers provide a way to iconify (or 'minimise') windows, and various programs, including ROX-Filer, can be used to display the iconified windows." -msgstr "Enamus aknahaldureid pakuvad võimalust minimeerida (ikoniseerida) aknaid ja neid aknaid oskavad näidata mitmed programmid, sealhulgas failihaldur Rox." - -#: tips:151 -msgid "Show iconified windows" -msgstr "Näita minimeeritud aknaid" - -#: tips:152 -msgid "If this option is on, the filer will show each iconified window as a small button on the pinboard. Requires a compatible window manager, and the pinboard must be in use." -msgstr "Iga minimeeritud akna kohta näidatakse töölaual ikooni. Eeldab ühilduvat aknahaldurit ja Rox töölaua kasutuses olemist." - -#: tips:153 -msgid "Show per workspace" -msgstr "Näita töölaua kohta" - -#: tips:154 -msgid "If this option is on, the filer will only show iconified windows associated with the current workspace." -msgstr "Kui see valik on lubatud, näidatakse ainult praeguse töölaua minimeeritud aknaid." - -#: tips:155 -msgid "Iconify to the" -msgstr "Minimeeritakse" - -#: tips:156 -msgid "top-left" -msgstr "vasakule üles" - -#: tips:157 -msgid "top-right" -msgstr "paremale üles" - -#: tips:158 -msgid "bottom-left" -msgstr "vasakule alla" - -#: tips:159 -msgid "bottom-right" -msgstr "paremale alla" - -#: tips:160 -msgid ", going" -msgstr ", rivistades" - -#: tips:161 -msgid "horizontally" -msgstr "horisontaalselt" - -#: tips:162 -msgid "vertically" -msgstr "vertikaalselt" - -#: tips:163 -msgid "Sometimes the filer doesn't know about your desktop furniture and puts iconified windows under (for example) the Gnome panel. You can define a top or bottom margin to avoid placing the icons there. The filer already knows about its own panel." -msgstr "Mõnikord failihaldur ei ole teadlik muudest töölaual asuvatest graafilistest elementidest ja paigutab minimeeritud aknaid (näiteks) Gnome paneeli alla. Te võite määrata ülemise või alumise piiri, millega keelate failide ekraani servale lähemale paigutamise. Failihaldur on omaenda paneelidest teadlik." - -#: tips:164 -msgid "Top margin" -msgstr "Ülemine piir" - -#: tips:165 -msgid "Height of no-go area at top of screen." -msgstr "Üleval asuv ala, kuhu objekte ei paigutata." - -#: tips:166 -msgid "Bottom margin" -msgstr "Alumine piir" - -#: tips:167 -msgid "Height of no-go area at bottom of screen." -msgstr "All asuv ala, kuhu objekte ei paigutata." - -#: tips:168 -msgid "Panels" -msgstr "Panels" - -#: tips:169 -msgid "Panels are bars of icons that run along the side of the screen. See the manual for information about using panels." -msgstr "" -"Paneelid on ikoonidega ribad, mis jooksevad piki ekraani serva.\n" -"Paneelidest rohkem teada saamiseks lugege käsiraamatut." - -#: tips:170 -msgid "Panel style" -msgstr "Paneeli stiil" - -#: tips:171 -msgid "Image and text" -msgstr "Pilt ja tekst" - -#: tips:172 -msgid "Every panel icon is shown with an image and some text." -msgstr "Igal paneeli ikoonil on nii pilt kui tekst." - -#: tips:173 -msgid "Image only for applications" -msgstr "Pilt ainult rakendustel" - -#: tips:174 -msgid "Applications have just an image, everything else has both an image and text." -msgstr "Rakendustel on ainult pilt, muudel failidel on nii pilt kui tekst." - -#: tips:175 -msgid "Image only" -msgstr "Ainult pilt" - -#: tips:176 -msgid "Only the image is shown." -msgstr "Näidatakse ainult pilti." - -#: tips:177 -msgid "Panel width (thin)" -msgstr "Paneeli laius (kitsas)" - -#: tips:178 -msgid "(thick)" -msgstr "(lai)" - -#: tips:179 -msgid "The size of the panels." -msgstr "Paneeli suurus." - -#: tips:180 -msgid "Do not cover panel" -msgstr "Ära kata paneeli" - -#: tips:181 -msgid "Ask the window manager not to cover panels at all when you maximise windows. Some window managers may not honour this. If unset, the filer asks for just a couple of pixels at the edge of the screen to remain uncovered, so that auto-raising works." -msgstr "Palu aknahalduril mitte paigutada aknaid paneeli kohale, kui aken maksimeeritakse.Mõned aknahaldurid ei tunnusta seda asetust. Kui see suvand on välja lülitud, palub failihaldur paar pikslit ekraani servast vabaks jätta, et paneelide automaatne esiletõusmine toimiks." - -#: tips:182 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:183 -msgid "Confine to Xinerama monitor" -msgstr "Hoia Xinerama monitori piires" - -#: tips:184 -msgid "If you have an Xinerama multi-monitor setup, use this option to confine the panels to one monitor instead of spanning them." -msgstr "Kui teil on Xinerama mitme monitori süsteem, siis see suvand hoiab paneeli ainult ühel monitoril, mitte kõigil." - -#: tips:185 -msgid "The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "Monitori number, millel on paneelid Xinerama moodis (numbrid algavad 0'st)" - -#: tips:186 -msgid "Desktop" -msgstr "Töölaud" - -#: tips:187 -msgid "When run by a session manager program (such as ROX-Session) the filer can open up a panel and/or the pinboard. Here you configure which." -msgstr "Kui jooksutate failihaldurit sessioonihalduri kaudu (nagu näiteks ROX-Session), võib failihaldur avada paneeli ja/või töölaua. Siin saate sellega seotud asetusi muuta." - -#: tips:188 -msgid "Panel only" -msgstr "Ainult paneel" - -#: tips:189 -msgid "Only a panel is shown." -msgstr "Näidatakse ainult paneeli." - -#: tips:190 -msgid "Pinboard only" -msgstr "Ainult töölaud" - -#: tips:191 -msgid "Only the pinboard is shown." -msgstr "Näidatakse ainult töölauda." - -#: tips:192 -msgid "Panel and pinboard" -msgstr "Paneel ja töölaud" - -#: tips:193 -msgid "Both a panel and a pinboard are shown." -msgstr "Näidatakse nii paneeli kui töölauda." - -#: tips:194 -msgid "Panel" -msgstr "Paneel" - -#: tips:195 -msgid "Enter the name of the panel to show here." -msgstr "Sisestage siia näidatava paneeli nimi." - -#: tips:197 -msgid "Enter the name of the pinboard to show here." -msgstr "Sisestage siia näidatava töölaua nimi." - -#: tips:198 -msgid "Changes here take effect the next time the filer is run." -msgstr "Muutused hakkavad kehtima peale falihalduri uuestikäivitamist." - -#: tips:199 -msgid "The session manager activates these options by using the -S or --rox-session argument to rox." -msgstr "Sessioonihaldur aktiveerib need valikud kasutades -S või --rox-session võtit rox käiitamisel." - -#: tips:200 -msgid "Action windows" -msgstr "Tegevusaknad" - -#: tips:201 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Tegevusaknad avanevad, kui sooritate mõne taustal jooksva \n" -"tegevuse, nagu failide kopeerimine või kustutamine." - -#: tips:202 -msgid "Auto-start (Quiet) these actions" -msgstr "Käivita need tegevused ilma küsimata (vaikides):" - -#: tips:204 -msgid "Copy files without confirming first." -msgstr "Enne kopeerimist ei küsita nõusolekut." - -#: tips:206 -msgid "Move files without confirming first." -msgstr "Enne failide tõstmist ei küsita nõusolekut." - -#: tips:208 -msgid "Create links to files without confirming first." -msgstr "Enne viitade loomist failidele ei küsita nõusolekut." - -#: tips:210 -msgid "Delete files without confirming first." -msgstr "Enne failide kustutamist ei küsita nõusolekut." - -#: tips:211 -msgid "Mount" -msgstr "Ühenda" - -#: tips:212 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Ühenda ja lahuta failisüsteeme ilma nõusolekut küsimata." - -#: tips:213 -msgid "Default settings" -msgstr "Vaikimisi asetused" - -#: tips:215 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Enne kirjutuskaitsega elementide kustutamist ei küsita nõusolekut." - -#: tips:217 -msgid "Don't display so much information in the message area." -msgstr "Näita teadeteaknas vähem infot." - -#: tips:219 -msgid "Also change contents of subdirectories." -msgstr "Muuda ka alamkataloogide sisu." - -#: tips:222 -msgid "Drag and Drop" -msgstr "Lohistamine" - -#: tips:223 -msgid "Dragging to icons" -msgstr "Lohista ikooni peale" - -#: tips:224 -msgid "Allow dragging to icons in filer windows" -msgstr "Luba lohistada ikoonidele failihalduri aknas" - -#: tips:225 -msgid "When this is on you can drag a file over a sub-directory or program in a filer window. The item will highlight when you do this and dropping the file will put it into that directory, or load it into the program." -msgstr "Kui see suvand on sisse lülitatud, saate te lohistada faili alamkataloogi või programmi peale failihalduri aknas. See objekt tõstetakse esile ja hiirenupu lahti laskmisel fail kas tõstetakse kataloogi või laetakse selle programmi sees." - -#: tips:226 -msgid "Directories spring open" -msgstr "Lahti hüppavad kataloogid" - -#: tips:227 -msgid "This option, which requires the above option to be turned on too, causes the highlighted directory to 'spring open' after the file is held over it for a short while." -msgstr "See suvand eeldab ka eelmise lubamist. Kui lohistate faili kataloogi peale ja hoiate seda seal veidi aega, \"hüppab\" kataloog ise lahti." - -#: tips:228 -msgid "Spring delay:" -msgstr "Avanemisviivitus:" - -#: tips:229 -msgid "ms" -msgstr "ms" - -#: tips:230 -msgid "This option sets how long, in ms, you must hold a file over a directory before it will spring open. The above option must be turned on for this to have any effect." -msgstr "See suvand määrab, kui kaua (millisekundites ehk tuhandiksekundites) peate faili kataloogi kohal hoidma, et kataloog ise avaneks. Eeldab eelneva suvandi lubamist." - -#: tips:231 -msgid "When dragging files with the left mouse button" -msgstr "Faile vasaku hiirenupuga lohistades" - -#: tips:232 -#: tips:236 -msgid "Show a menu of possible actions" -msgstr "Näita võimalike tegevuste menüüd" - -#: tips:233 -msgid "Copy the files" -msgstr "Kopeeri failid" - -#: tips:234 -msgid "Note that you can still get the menu to appear, by dragging with Alt held down." -msgstr "Vajadusel saate te menüü, kui lohistate, Alt-klahvi all hoides." - -#: tips:235 -msgid "When dragging files with the middle mouse button" -msgstr "Faile lohistades keskmise nupuga" - -#: tips:237 -msgid "Move the files" -msgstr "Tõsta failid" - -#: tips:238 -msgid "Note that you can still get the menu to appear, by dragging with the left button and holding down the Alt key." -msgstr "Vajadusel saate te menüü, kui lohistate vasaku hiirenupuga, Alt-klahvi all hoides." - -#: tips:239 -msgid "Download handler" -msgstr "Allalaadimiste haldur" - -#: tips:240 -msgid "" -"When you drag a file from a web browser or other remote source, this program will be run to download it. $1 is the URI dragged to the filer, and the current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Kui te lohistate failihaldurisse faili brauserist või mõnest muust mittekohalikust allikast, jooksutatakse seda programmi allalaadimisel. $1 on lohistatud faili URI ja jooksev kataloog on sihtkoht, kuhu salvestatakse. Näiteks:\n" -"xterm -e wget $1" - -#: tips:241 -msgid "Menus" -msgstr "Menüüd" - -#: tips:243 -msgid "Size of icons in menus:" -msgstr "Ikoonide suurus menüüs:" - -#: tips:244 -msgid "No Icons" -msgstr "Pole ikoone" - -#: tips:247 -msgid "Same as current window" -msgstr "Sama kui aktiivsel aknal" - -#: tips:248 -msgid "Same as default" -msgstr "Sama kui vaikimisi" - -#: tips:249 -msgid "Behaviour" -msgstr "Käitumine" - -#: tips:250 -msgid "File menu on right-click" -msgstr "Fail-menüü paremklõpsu puhul" - -#: tips:251 -msgid "Show the File menu instead of the main menu when right-clicking with files selected (the main menu can be accessed by holding down Control)." -msgstr "Näita Fail-menüüd põhimenüü asemel, kui teil on valitud faile ja paremklõpsate (põhimenüü saate, kui hoiate klõpsu ajal all Control-klahvi)" - -#: tips:252 -msgid "Terminal emulator program" -msgstr "Terminaliprogramm:" - -#: tips:253 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "Programm, mis käivitatakse, kui valite menüüst \"Termina siia\"." - -#: tips:254 -msgid "Keyboard shortcuts" -msgstr "Kiirklahvid" - -#: tips:256 -msgid "MIME types" -msgstr "MIME-Tüübid" - -#: tips:257 -msgid "The filer uses a set of rules to work out the correct MIME type for each regular file, and then chooses a suitable icon for that type." -msgstr "Failihaldur kasutab reeglite komplekti, et leida sobivat MIME-tüüpi iga tavalise faili jaoks ja valib seejärel failile sobiva ikooni." - -#: tips:258 -msgid "Edit MIME rules" -msgstr "Muuda MIME reegleid" - -#: tips:259 -msgid "Themes" -msgstr "Teemad" - -#: tips:260 -msgid "Icon theme" -msgstr "Ikooniteema" - -#: tips:261 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Teemad peaksid olema ~/.icons kataloogi sees." - -#: tips:262 -msgid "Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note that icons set this way override those from the selected theme." -msgstr "Kasutage \"Sea ikooni\" dialoogikasti, et iga MIME-tüübi jaoks ikooni seada.Niimoodi seatud ikoone eelistatakse valitud teema ikoonidele." - -#: tips:263 -msgid "Colours" -msgstr "Värvid" - -#: tips:264 -msgid "File type colours" -msgstr "Failitüüpide värvid" - -#: tips:265 -msgid "Colour files based on their types" -msgstr "Värvi failid vastavalt nende tüübile" - -#: tips:266 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Failinimed (ja üksikasjad) värvitakse vastavalt failitüübile." - -#: tips:267 -msgid "Directory:" -msgstr "Kataloog:" - -#: tips:268 -msgid "Regular file:" -msgstr "Tavaline fail:" - -#: tips:269 -msgid "Pipe:" -msgstr "Toru:" - -#: tips:270 -msgid "Socket:" -msgstr "Sokkel:" - -#: tips:272 -msgid "Error, such as a symlink which points to a non-existant file, or a file which the filer does not have permission to examine." -msgstr "Viga, näiteks kui sümbolviide viitab olematule failile või faili avamiseks pole failihalduril õigusi." - -#: tips:273 -msgid "Character device:" -msgstr "Sümbolseade:" - -#: tips:274 -msgid "Block device:" -msgstr "Plokkseade:" - -#: tips:275 -msgid "Door:" -msgstr "Uks:" - -#: tips:276 -msgid "Door files are a bit like sockets or pipes, and have only been seen on Solaris." -msgstr "Uksed on soklite või torude moodi ja neid kasutatakse vaid Solarises." - -#: tips:277 -msgid "Executable file:" -msgstr "Käivitatav fail:" - -#: tips:278 -msgid "Application directory:" -msgstr "Kataloograkendus:" - -#: tips:279 -msgid "Unknown type:" -msgstr "Tundmatut tüüpi:" - -#: tips:280 -msgid "Compatibility" -msgstr "Ühilduvus" - -#: tips:281 -msgid "Window manager problems" -msgstr "Aknahalduriprobleemid" - -#: tips:282 -msgid "Override window manager control of the pinboard and panels" -msgstr "Võta aknahaldurilt kontroll töölaua ja paneelide üle" - -#: tips:283 -msgid "Some window managers don't support the new Extended Window Manager Hints system, and so treat the pinboard and panels like normal windows. Turn this on to fix problems such as the pinboard coming to the front when you click on it, titlebars and other decorations appearing around windows, or having them appear in window-select lists." -msgstr "Paljud aknahaldurid ei toeta uut 'Extended Window Manager Hints' süsteemi ja kohtlevad töölauda ja paneele kui tavalisi aknaid. Lülitage sisse see suvand järgmiste probleemide esinedes: töölaud ning paneelid on akendenimistus, päised ning muud dekoratsioonid akendel või kui töölaud hiireklõpsu peale pealmiseks aknaks tõuseb." - -#: tips:284 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Anna kõik hiireklõpsud taustale aknahaldurile edasi" - -#: tips:285 -msgid "Normally, right clicking on the desktop background will open the pinboard menu and left clicking will clear the selection. Turn this on to forward the events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "Enamasti paremklõpsates töölaua taustale avaneb menüü ja vasakklõps tühistab valiku. Antud suvandi sisse lülitades antakse edasi aknahaldurile klõpsud taustale. Edasi ei anta klõpse ikoonidele." - -#: tips:286 -msgid "Blackbox root menus hack" -msgstr "Blackboxi taustamenüü häkk" - -#: tips:287 -msgid "Blackbox, Fluxbox and similar window managers do not yet work well with the ROX-Filer pinboard. This option enables some workarounds. These window managers are expected to change their behaviour in new versions so that this isn't necessary." -msgstr "Blackbox, Fluxbox ja neile sarnased aknahaldurid ei tööta veel kuigi hästi Roxi töölauaga. Sellele vastukaaluks aktiveerib antud suvand mõningad meetmed. Nende aknahaldurite järgmistes versioonides on küllap need probleemid juba parandatud." - -#: tips:288 -msgid "Panel is a 'dock'" -msgstr "Paneel on 'dokk'" - -#: tips:289 -msgid "Disable this option if the panel stays above other windows against your wishes. Requires a restart to take effect." -msgstr "Lülige välja see suvand, kui paneel tõuseb soovimatult teiste akende peale. Nõuab uuestikäivitust" - -#: tips:290 -msgid "Drag and drop" -msgstr "Lohistamine" - -#: tips:291 -msgid "Don't use hostnames" -msgstr "Ära kasuta arvutinimesid" - -#: tips:292 -msgid "Some older applications don't support XDND fully and may need to have this option turned on. Use this if dragging files to an application shows a + sign on the pointer but the drop doesn't work." -msgstr "Mõned vanemad rakendused ei toets XDND protokolli täielikult ja see suvand võib vajalikuks osutuda. Lülitage see sisse, kui faili rakendusele lohitades kursorile lisandub + märk, kuid lohistamine ise ebaõnnestub." - -#: tips:293 -msgid "Extended attributes" -msgstr "Laiendatud atribuudid" - -#: tips:294 -msgid "Don't use extended attributes" -msgstr "Ära kasuta laiendatud atribuute" - -#: tips:295 -msgid "This disables the use of extended attributes available in newer operating systems and file systems. With this option set the 'Set Type' menu entry is disabled, the MIME type of the file is only derived from the file name and the properties window does not report extended attributes." -msgstr "See keelab uuemates opsüsteemides ja failisüsteemides olevate laiendatud atribuutide kasutamise. Selle suvandi lubamisel 'Sea tüüp' menüüsissekanne keelatakse, faili MIME-tüüp tuletatakse ainult failinimest ja Omaduste aken ei näita infot laiendatud atribuutide kohta" - -#~ msgid "GNOME-VFS library" -#~ msgstr "GNOME-VFS-teek" -#~ msgid "No (need 2.8.0 or later)" -#~ msgstr "Ei (vaja on 2.8.0 või uuem)" -#~ msgid "Open AVFS" -#~ msgstr "Ava AVFS abil" -#~ msgid "Look inside ... ?" -#~ msgstr "Vaata ... sisse?" -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Viga MIME-tüüpide andmebaasi laadimisel:\n" -#~ "%s" -#~ msgid "File '%s' corrupted!" -#~ msgstr "Fail '%s' on vigane!" -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "Kataloog ~/.mime asub nüüd ~/.local/share/mime. Palun tõstke see sinna " -#~ "(ja ühilduvuse huvides vanade programmidega looge viit vanasse asukohta)." -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "Standardsete MIME-tüüpide andmebaasi (versioon 0.9 või uuem) ei leitud. " -#~ "Failihaldur tõenäoliselt ei näita failidel õigeid tüüpe. Te peaksite " -#~ "paigaldama paki 'shared-mime-info-0.9', mis on kättesaadav aadressil:\n" -#~ "http://www.freedesktop.org/standards/shared-mime-info.html\n" -#~ "\n" -#~ "Kui pakk on juba paigaldatud, kontrollige, kas Teil on lugemisõigused " -#~ "sellele (kontrollige ligipääsuõigusi failile /usr/local/share/mime/globs " -#~ "või /usr/share/mime/globs)." -#~ msgid "Executable files" -#~ msgstr "Käivitatavad failid" -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "Ignoreeri tuntud laiendiga failide puhul käivitamisbitti" -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Kui faili laiend (näiteks '.gif') on tuntud, ignoreeri käivitamisbitti. " -#~ "See on mõistlik juhul, kui teil on faile Windowsi failisüsteemil ja neid " -#~ "näidatakse käivitatavate programmidena." -#~ msgid "Icon '%s' not present in theme" -#~ msgstr "Ikooni '%s' pole teemas" -#~ msgid "" -#~ "Pinboard icons cannot be drawn because ROX-Filer was compiled against GTK" -#~ "+-2.0 but is running with GTK+-2.2. Please recompile it." -#~ msgstr "" -#~ "Töölaua ikoone ei saa kuvada, kuna ROX-Filer kompileeriti GTK+-2.0 " -#~ "kasutades, kuid praegu jookseb GTK+-2.2. Palun kompileerige uuesti." -#~ msgid "Info" -#~ msgstr "Info" -#~ msgid "Permissions:" -#~ msgstr "Loabitid:" -#~ msgid "file(1) says..." -#~ msgstr "file(1) ÃŒtleb..." -#~ msgid "Symbolic link to %s" -#~ msgstr "SÃŒmbolviit failile %s" -#~ msgid "No (gnome-vfs-config not found)" -#~ msgstr "Ei (ei leitud gnome-vfs-config)" -#~ msgid "Help about ... ?" -#~ msgstr "Abi ... kohta ?" -#~ msgid "Examine ... ?" -#~ msgstr "Uuri ... ?" -#~ msgid "" -#~ "Executable file:\n" -#~ "This is a file with an eXecute bit set - it can be run as a program." -#~ msgstr "" -#~ "KÀivitatav fail:\n" -#~ "Sellel failil on aktiveeritud kÀivitusbitt (--x)" -#~ msgid "" -#~ "File:\n" -#~ "This is a data file. Try using the Info menu item to find out more..." -#~ msgstr "" -#~ "Fail:\n" -#~ "See on andmefail. Valige menÌÌst Info, et selle faili kohta rohkem " -#~ "teada saada..." -#~ msgid "" -#~ "Mount point:\n" -#~ "A mount point is a directory which another filing system can be mounted " -#~ "on. Everything on the mounted filesystem then appears to be inside the " -#~ "directory." -#~ msgstr "" -#~ "Ühenduspunkt:\n" -#~ "Ühenduspunkt on kataloog, mille kÃŒlge saab teisi failisÃŒsteeme " -#~ "ÃŒhendada. Kõik failid ÃŒhendatud failisÃŒsteemil on kÀttesaadavad " -#~ "selle kataloogi seest." -#~ msgid "" -#~ "Device file:\n" -#~ "Device files allow you to read from or write to a device driver as though " -#~ "it was an ordinary file." -#~ msgstr "" -#~ "Seadmefail:\n" -#~ "Seadmefailid lubavad teil lugeda ja kirjutada andmeid oma seadme " -#~ "tÌÌrelisse, nagu oleks tegemist tavalise failiga." -#~ msgid "" -#~ "Named pipe:\n" -#~ "Pipes allow different programs to communicate. One program writes data to " -#~ "the pipe while another one reads it out again." -#~ msgstr "" -#~ "Nimega toru:\n" -#~ "Torud lubavad erinevatel rakendustel omavahel suhelda. Üks rakendus " -#~ "kirjutab andmeid torusse ja teine loeb neid sealt." -#~ msgid "" -#~ "Socket:\n" -#~ "Sockets allow processes to communicate." -#~ msgstr "" -#~ "Sokkel:\n" -#~ "Soklid lubavad protsessidel omavahel suhelda." -#~ msgid "" -#~ "Door:\n" -#~ "Doors are a little-used Solaris method for processes to communicate." -#~ msgstr "" -#~ "Uks:\n" -#~ "Uksed on Solarise poolt kasutatav vÀhelevinud meetod protsesside " -#~ "omavaheliseks suhtluseks." -#~ msgid "" -#~ "Unknown type:\n" -#~ "I couldn't find out what kind of file this is. Maybe it doesn't exist " -#~ "anymore or you don't have search permission on the directory it's in?" -#~ msgstr "" -#~ "Tundmatut tÌÌpi:\n" -#~ "Ei õnnestunud tuvastada faili tÌÌpi. Ehk pole seda faili enam või " -#~ "puuduvad teil õigused otsida kataloogis, kus fail asub ?" -#~ msgid "" -#~ "Directory:\n" -#~ "This is a directory. It contains an index to other items - open it to see " -#~ "the list." -#~ msgstr "" -#~ "Kataloog:\n" -#~ "See on kataloog. See sisaldab nimekirja teiste elementide kohta - avage " -#~ "see, et nimekirja nÀha." -#~ msgid "Menu on button 2 (RISC OS style)" -#~ msgstr "MenÌÌ teise hiirenupuga (RISC OS stiilis)" -#~ msgid "" -#~ "Use button 2, the middle button (click both buttons at once on two button " -#~ "mice), to pop up the menu. If off, use button 3 (right) instead." -#~ msgstr "" -#~ "Kasutage teist hiirenuppu, s.o. keskmist hiirenuppu (klõpsake mõlemaid " -#~ "nuppe korraga kahenupulise hiire puhul), et hÃŒpikmenÌÌd aktiveerida. " -#~ "Kui suvand on keelatud, kasutage kolmandat (paremat) hiirenuppu." - diff --git a/ROX-Filer/src/po/eu.po b/ROX-Filer/src/po/eu.po deleted file mode 100644 index c13364ee..00000000 --- a/ROX-Filer/src/po/eu.po +++ /dev/null @@ -1,4780 +0,0 @@ -# translation of rox-es.po to Euskara -# Spanish messages for ROX-Filer. -# Copyright (C) 2001-2002-2003-2004 Marcelo Ramos -# Marcelo Ramos -# Piarres Beobide , 2005. -msgid "" -msgstr "" -"Project-Id-Version: rox-es\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: 2005-06-05 23:09+0200\n" -"Last-Translator: Piarres Beobide \n" -"Language-Team: librezale.org \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: KBabel 1.9.1\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Ixilik" - -#: abox.c:228 -msgid "Quiet" -msgstr "Ixilik" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Ez berrretsi ekintza bakoitza" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Izena" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Direktorio" - -#: abox.c:550 -msgid "Expression:" -msgstr "Espresioa:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "" - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "" - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "" - -#: action.c:188 -msgid "Find expression reference" -msgstr "Bilaketa espresioari erreferentzia" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Abiarazte Azkarra\n" -"Idatzi bilatzen ari zaren fitxategiaren izena gako bakarren artean:\n" -"'index.html' ('index.html' izeneko fitxategi bat bilatzeko)\n" -"\n" -"Adibideak\n" -"'*.htm', '*.html' (HTML fitxategiak bilatu)\n" -"IsDir 'lib' ('lib' izneko direktorioak bilatu)\n" -"IsReg 'core' ('core' izeneko fitxategi arruntak bilatu)\n" -"! (IsDir, IsReg) (ez da ez direktorio ez fitxategi arrunt bat)\n" -"mtime after 1 day ago and size > 1Mb (handia eta azken aldian " -"eraldatua)\n" -"'CVS' prune, isreg (CVS-en ez dagoen fitxategi arrunta)\n" -"IsReg system(grep -q fred \"%\") ('fred' hitza du)\n" -"\n" -"Proba Sinpleak\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (morak)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(baimenak)\n" -"IsEmpty, IsMine\n" -"Gako bakarren arteko patroia bilatuko den shell moduko patroi bat da.\n" -"\"\" bat badu bilaketa bide guztiarena izango da bestela fitxategi " -"izenarena\n" -"bakarrik da.\n" -"\n" -"Parekatzeak\n" -"<, <=, =, !=, >, >=, Lehen, Gero (bi balio parekatu)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (fitxategi tamainak)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (datak)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(balioak)\n" -"\n" -"Bereiziak\n" -"system(komandoa) (egiak 'komandoa' 0 irteera egoera batetan\n" -"amaitzen bada;\n" -"'komandoa'-n % fitxategiaren bideaz aldatuko da)\n" -"prune (gezurra, eta direktorio baten edukien bilaketa ezintzen du)." - -#: action.c:246 -msgid "Change permissions reference" -msgstr "Bilaketa espresioari buruzko argibideak" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalean menutik komando bat hautatzearekin aski da (klik egin komandoaren\n" -"ondoko gezian). BAtzuetan gehiago behar dezakezu...\n" -"\n" -"Komandoaren formatua hau da: ALDATU, ALDATU, ...\n" -"ALDAKETA bakoitza: NOR NOLA BAIMENAK\n" -"NOR hautako nahasket batenbat da; u, g eta o " -"zeinek \n" -"jabearen (u), taldearen (g) edo beste (o) baimenak aldatu egin behar diren " -"ezartzen du.\n" -"NOLA +, - edo = da zehazki baimenak gehitu, " -"kendu edo ezartzeko.\n" -"Baimean rwxXstugo hizkien nahasketa batenbat da\n" -"\n" -"Hutsune eta parentesi zuzenak alde batetara utziko dira.\n" -"\n" -"Adibideak\n" -"u+rw: fitxategiaren jabeak irakurketa eta idazkera baimenak ditu\n" -"g=u: Taldearen baimenak erabiltzailearenen berdin ezartzen dira\n" -"o=u-w: besteek jabearen baimen berdinak dituzte baina idazkera " -"baimenik gabe\n" -"a+x: denek abiarazte/irekitze baimeak dira - ugo+x-rekin " -"berdin\n" -"a+X: direktorioak denentzako ikusgarriak izango dira; inorentzat " -"abiarazgarri\n" -"ez ziren fitxategiakdenentzako abiarazgarri bihurtzen dira\n" -"u+rw, go+r: bi komando batera!\n" -"u+s: SetUID bit-a gaitu- askotan ez du skript fitxategietan eraginik\n" -"755: baimenak zuzenean ezarri\n" -"\n" -"chmod(1) manualaren orria begiratu xehetasun gehiagorako." - -#: action.c:298 -msgid "Set type reference" -msgstr "Mota erreferentzia ezarri" - -#: action.c:309 -#, fuzzy -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalean ROX-Filer-ek fitxategi arrunt baten mota bere izena\n" -"patroi batekin parekatuz ezartzen du. Fitxategiaren mota aldatzeko\n" -"berrizendatu egin behar duzu.\n" -"\n" -"Fitxategi sistema berrienek 'Atributu Hedatuak' deituriko eta\n" -"fitxategietan izenez gain parametro batzu gordetzeko \n" -"aukera dute.\n" -"ROX-Filer-ek 'user.mime_type' izeneko atributua erabiltzen du\n" -"fitxategi motak gordetzeko.\n" -"\n" -"Fitxategi motak fitxategi arruntentzat bakarrik onartzen dira,\n" -"ez dira direktorio, gailu, tutu edo socket-etan onartzen, eta\n" -"lehenegoak bakarrik fitxategi sistema batzuetan eta sistema\n" -"eragileak onartzen badu.\n" -"\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Prozesua amaiturik.\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Errore bat gertatu da.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "%d errore gertatu dira.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "Irakurketa ERROREA" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Eginda\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "ERROREA" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Bai" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Ez" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Prozesu semeari amaitzeko eskatzen...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Prozezu iheskorra HIKTZEN saiatzen...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?%s-ren edukia kalkulatu?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?%s'%s' ezabatu?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "IDAZKETA-AURKA BABESTURIK" - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "''%s' ezabatzen\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "''%s' Direktorioa ezabaturik\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?'%s' atera?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "''%s' atera\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"huts ateratzean\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?'%s' egiaztatu?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Bilaketa baldintza baliogabe - aldatu eta berriz saiatu\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'('%s' egiaztatzen)\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?'%s'-ren baimenak aldatu?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "''%s'-ren baimank aldatzen\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Modu baliogabea - aldatu eta ebrriz saiatu\n" - -#: action.c:1207 action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?'%s'-ren mota aldatu?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!mota baliogabea - aldatu eta berriz saiatu\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "''%s'-ren mota '%s'-ra aldatzen\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' badago dagoeneko - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "edukiak batu" - -#: action.c:1328 -msgid "overwrite" -msgstr "gainidatzi" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Hala ere kopiatzen saiatzen...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?%s %s-ra kopiatu?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'%s %s-ra kopiatzen\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!ERROREA Helburua badago baina ez da direktorio bat\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Huts '%s' kopiatzerakoan\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' badago - gainidatzi?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Hala ere mugitzen saiatzen...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?%s %s-ra mugit?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'%s %s-ra mugitzen\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Huts %s %s-ra mugitzerakoan\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!ERROREA: Ezinda objetu bat bere buruan kopiatu\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!ERROREA: Ezinda objetu bat bere burura mugitu/berrizendatu\n" - -# Verificar -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'%s %s-rekin lotzen\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?%s %s-rekin lotu?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'%s muntatzen\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'%s desmuntatzen\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?%s muntatu?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?%s desmuntatu?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Huts muntatzerakoan\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Huts desmunatzerakoan\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(dirudienez muntaturik dagoeneko hala ere)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Guztira: %s (" - -#: action.c:1704 -msgid "file" -msgstr "fitxategia" - -#: action.c:1704 -msgid "files" -msgstr "fitxategi" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "direktoriorik ez)\n" - -#: action.c:1712 -msgid "directory" -msgstr "direktorio" - -#: action.c:1713 -msgid "directories" -msgstr "direktorio" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Ez da muntatzepunturik aukeratu!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Beste bilaket bat?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' esteka sinboliko bat da\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Bertan bilatzeko beharko diren elementuak aukeratu behar dituzu" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Bilatu" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Kontatzeko elementu batzuk aukeratu behar dituzu" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Diska erabilera" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Muntatu / Desmuntatu" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "" -"ROX-Filer-ek ez ditu oraindik zure sistemako munatze puntuak onartzen. " -"Barkatu." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Ezabatu" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Indartu" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Idazketa aurka babesturiko elementuen ezabatzea ez berretsi" - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Labur" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Ezabaturik izango diren direktorioak bakarrik bistarazi" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "Baimenak aldatu nahi dizkiezun elementuak aukeratu behar dituzu" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (abiarazgarri/irakurgarri egin)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (ez-abiarazgarri/ez-irakurgarri egin)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Jabeari Irakurketa+Idazketa baimena eman)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Pribatu - jabearentza soilik)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Sarrera publikoa, idazketarik gabekoa)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Baimenak" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Ez zerredatu prozesaturiko fitxategiak" - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Errekurtsibo" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Azpidirektorioen edukia ere aldatu" - -#: action.c:2123 -msgid "Command:" -msgstr "Komandoa:" - -#: action.c:2151 -msgid "You need to select the items whose type you want to change" -msgstr "Mota aldatu nahi diezun elementuak aukeratu behar dituzu" - -#: action.c:2164 -msgid "Set type" -msgstr "Mota ezarri" - -#: action.c:2178 -msgid "Change contents of subdirectories" -msgstr "Azpikarpeten edukia aldatu" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Mota:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopiatu" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Berriago" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Jatorria helburua baino berriagoa bakarrik gainidatzi." - -#: action.c:2228 -msgid "Only log directories as they are copied" -msgstr "Kopiatzen ari diren direktorioak bakarrik bistarazi" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Mugitu" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "Ez bistarazi mugitzen ari den fitxategi bakoitza" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Esteka" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "Atera" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Honelako elementuak ezabatzen: " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Elementu hau ezabatzen: " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Elementu hauek ezabatzen: " - -#: action.c:2385 -msgid " and " -msgstr " eta " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" panelaren edo idazmahaiaren elementu batzui eragigo die - benetan ezabatu " -"nahi al duzu?" - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" panelaren edo idazmahaiaren elementu batzui eragigo die - benetan ezabatu " -"nahi al dituzu?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Crea enlaces simbólicos a los programas que quieras en éste directorio. " -"Ellos aparecerán en el menú para todos los elementos de éste tipo (%s/%s)." - -#: appmenu.c:339 menu.c:234 -msgid "Customise Menu..." -msgstr "Menua pertsonalizatu..." - -#: appmenu.c:396 menu.c:251 toolbar.c:159 -msgid "Help" -msgstr "Laguntza" - -#: bookmarks.c:147 -msgid "Path" -msgstr "Bidea" - -#: bookmarks.c:155 -msgid "Title" -msgstr "Izenburua" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "No puedo agregar el recurso no local '%s' a los marcadores\n" - -#: bookmarks.c:312 bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' ez da direktorio bat" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Lehenik ezabatzeko lerro batzuek aukeratu behar dituzu" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Zerrendako sarrera bat aukeratu mugitzeko" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Elementu hau dagoeneko azkenekoa da" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "No puedo agregar directorios no locales como '%s' a los marcadores" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Laster-marka gehitu" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Laster-markak editatu" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "Azkenaldian ikusitakoak" - -#: bulk_rename.c:68 -msgid "Bulk rename files" -msgstr "Izen aldaketa anitzak" - -#: bulk_rename.c:71 -msgid "Reset" -msgstr "Berezarri" - -#: bulk_rename.c:76 -#, fuzzy -msgid "Make the New column a copy of Old" -msgstr "Lehen zutabea gero zutabearen kopia bat egin." - -#: bulk_rename.c:81 -msgid "_Rename" -msgstr "_Berrizendatu" - -#: bulk_rename.c:94 -msgid "Replace:" -msgstr "Aldatu:" - -#: bulk_rename.c:101 -#, fuzzy -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Hau da bilatuko den espresio erregularra.\n" -"^ fitxategi izen hasiera bilatuko du\n" -"$ amaiera bukatuko du\n" -"\\. puntu bat bilatuko du\n" -"\\.htm$ 'index.html'-ko htm aurkituko du, etab" - -#: bulk_rename.c:109 -msgid "With:" -msgstr "Honekin:" - -#: bulk_rename.c:116 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" -"Fitxategi izen bakoitzeko lehen parekatze zuzena kate honegatik aldatuko du. " -"Ez daude karaktere bereizik." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Ezarri" - -#: bulk_rename.c:123 -#, fuzzy -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"Gero zutabean bilatu eta ordeztu egin. Fitxategiak ez dira berrizendatuko " -"behekaldeko Berrizendatu botoia klikatu arte." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "" - -#: bulk_rename.c:151 -#, fuzzy -msgid "New name" -msgstr "Berrizendatu" - -#: bulk_rename.c:259 -#, fuzzy -msgid "No strings (in the New column) matched the given expression" -msgstr "Ez dago (gero zutabean) espresio hori betetzen duen katerik" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "Izen bat aurkitu da baina emaitza berdina da" - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d izen aurkitu dira, baina emaitzak berdinak dira" - -#: bulk_rename.c:293 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "Ezarri bilatzeko espresio bat, eta aurkitutakoak aldatzeko katea." - -#: bulk_rename.c:310 -#, c-format -msgid "%s (for '%s')" -msgstr "%s ('%s'-rentzat)" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" -"'%s' izeneko fitxategi bat badago dagoeneko. Berrizendaketa utzi egin da." - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Huts '%s' '%s' bezala berrizendatzekoan:\b%s\n" -"Berrizendaketa uzten." - -#: bulk_rename.c:410 -#, c-format -msgid "A file called '%s' already exists" -msgstr "'%s' izeneko fitxategi bat badago dagoeneko" - -#: bulk_rename.c:421 -#, fuzzy, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"Lehen zutabeko fitxategi batenbatek / karakterea du (adib '%s'). Honek " -"fitxategiak direktorio ezberdinetan amaitzea egin dezake. Jarraitu?" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "Izenek ez dute aldaketarik. Ezer egiteke!" - -#: choices.c:428 -#, fuzzy -msgid "Choices migration" -msgstr "Txinatar (tradizionala)" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Direktorio analisia ez da posible izan: %s" - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Ezin izan da direktorioa ireki: %s" - -#: display.c:588 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) huts egin du: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Barne errorea - okerreko informazio mota" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "arrastatu ezazu direktorio bat honera laster-marka egiteko." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS protokolo errorea: fitxategi uzenak ezin du '/' eduki\n" - -#: dnd.c:605 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"Destino XdndDirectSave0 provisto, pero el átomo XdndDirectSave0 (tipo text/" -"plain) no contiene un nombre de archivo\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "" -"Lo siento - Necesito un destino de tipo text/uri-list o XdndDirectSave0." - -#: dnd.c:621 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Lo siento - Necesito un destino de tipo text/uri-list o application/octet-" -"stream." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Fallo al agregar algunos elementos al escritorio porque están en una máquina " -"remota. Por ejemplo:\n" -"\n" -"%s" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Helburu ezezaguna" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Urruneko aplikazioa ezin du edo ez ditu datuak biliko - barkatu" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "" -"XDS protokolo errorea: Itzulpen kodea 'S', 'F' edo 'E' izan beharko " -"litzateke\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Barkatu baina ezin da hurruneko fitxategi/data gordinarentzat ekintza menua " -"bistarazi." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "Izengabeko Datuak" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Errorea fitxategia gordetzerakoan: %s" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Ez dago URI-rik testu/uri-zerrenda (ezer egiteke!)" - -#: dnd.c:993 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Ezin dira hurruneko makinatik datuak jaso (application/octet-stream ez dago)" - -#: dnd.c:1016 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Fitxategi hauetako batzuek beste makina batetan daude - alde batetara utziko " -"dira - barkatu" - -#: dnd.c:1023 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Fitxategietako bat ere ez ez dago makina lokalean - Ezin da hurruneko " -"fitxategi bat baino gehiagorekin ekintza egin - barkatu." - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Ekintza ezezagun bat eskatu da" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Errorea fitxategi zerrenda eskuratzerakoan: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Ikusi" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Huneko aukera kudeatzaile leiho batetan bistarazi" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"Ezin da ezarritako elemetua bistarazi ez bait dago batez ezarririk. " -"Arrastatu ezazu zerbait hona!" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "" -"Lo siento, tienes que arrastrar exactamente un archvo sobre el área de " -"arrastre." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Ezin da '%s' fitxategi lokal bat ez da eta." - -#: dropbox.c:280 pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Ezin da '%s' eskuratu:\n" -"%s" - -#: filer.c:453 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Errorea '%s' irakurtzerakoan:\n" -"%s\n" - -#: filer.c:457 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Errorea '%s' irakurtzerakoan:\n" -"%s" - -#: filer.c:562 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"¿Gailu hau desmuntatu nahi al duzu?\n" -"\n" -"Gailua desmuntatu eta gero diska era ziur batetan atera dezakezu." - -#: filer.c:566 -msgid "No change" -msgstr "Aldaketa gabea" - -#: filer.c:572 menu.c:862 -msgid "Unmount" -msgstr "Desmuntatu" - -#: filer.c:669 -msgid "Directory missing/deleted" -msgstr "Direktorioa ezabatua/falta da" - -#: filer.c:1031 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"El grupo %s no está definido. Selecciona algunos archivos y presiona Ctrl+%s " -"para definir el grupo. Presiona %s para seleccionar de nuevo los archivos " -"después.\n" -"Aségurate que NumLock está activado si utilizas el teclado numérico." - -#: filer.c:1267 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "'%s' direktorioa ez da eskuragarria" - -#: filer.c:1419 -#, c-format -msgid "Directory '%s' not found." -msgstr "'%s' direktorioa ez da aurkitu." - -#: filer.c:1713 -msgid "Cancel" -msgstr "Ezeztatu" - -#: filer.c:2002 -msgid "S" -msgstr "S" - -#: filer.c:2004 -msgid "T" -msgstr "A" - -#: filer.c:2026 -msgid "Scanning, " -msgstr "Irakurtzen, " - -#: filer.c:2028 -msgid "Thumbs, " -msgstr "Argazkitxoak, " - -#: filer.c:2304 -msgid "Symbolic link to " -msgstr "Hona esteka sinbolikoa: " - -#: filer.c:2335 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Fitxategi zen hau ez da UTF-8 baliozkoa. Aldatu egin behar duzu.\n" - -#: filer.c:2643 menu.c:1989 -msgid "Item no longer exists!" -msgstr "Elementua ez dago dagoeneko!" - -#: filer.c:3327 -msgid "Select display properties to save" -msgstr "Hauatatu gorde ebhar diren pantaila propietateak" - -#: filer.c:3334 -msgid "Position" -msgstr "Kokalekua" - -#: filer.c:3339 toolbar.c:135 toolbar.c:139 tips:63 -msgid "Size" -msgstr "Tamaina" - -#: filer.c:3344 -msgid "Show hidden" -msgstr "Mostrar ocultos" - -#: filer.c:3350 -msgid "Display style" -msgstr "Bistaratze estiloa" - -#: filer.c:3356 -msgid "Sort type and order" -msgstr "Saikatze mota eta ordena" - -# tips:30 toolbar.c:128/ -#: filer.c:3361 toolbar.c:143 -msgid "Details" -msgstr "Xehetasuna" - -#: filer.c:3366 tips:114 tips:115 -msgid "Thumbnails" -msgstr "Argazkitxoak" - -#: filer.c:3372 -msgid "Filter" -msgstr "Iruzkina" - -#: find.c:487 -msgid "And" -msgstr "Eta" - -#: find.c:511 -msgid "Not" -msgstr "Ez" - -#: find.c:554 -msgid "system" -msgstr "sistema" - -#: find.c:562 -msgid "prune" -msgstr "moztu" - -#: find.c:650 -msgid "After" -msgstr "Gero" - -#: find.c:652 -msgid "Before" -msgstr "Lehenago" - -#: find.c:746 -msgid "IsReg" -msgstr "RegDa" - -#: find.c:748 -msgid "IsLink" -msgstr "EstekaDa" - -#: find.c:750 -msgid "IsDir" -msgstr "DirDa" - -#: find.c:752 -msgid "IsChar" -msgstr "KarDa" - -#: find.c:754 -msgid "IsBlock" -msgstr "BlokeDa" - -#: find.c:756 -msgid "IsDev" -msgstr "GailuaDa" - -#: find.c:758 -msgid "IsPipe" -msgstr "TutuaDa" - -#: find.c:760 -msgid "IsSocket" -msgstr "SocketaDa" - -#: find.c:762 -msgid "IsDoor" -msgstr "AteaDa" - -#: find.c:764 -msgid "IsSUID" -msgstr "SUIDDa" - -#: find.c:766 -msgid "IsSGID" -msgstr "SGIDDa" - -#: find.c:768 -msgid "IsSticky" -msgstr "EsPegajoso" - -#: find.c:770 -msgid "IsReadable" -msgstr "IrakurgarriaDa" - -#: find.c:772 -msgid "IsWriteable" -msgstr "IdatzgarriaDa" - -#: find.c:774 -msgid "IsExecutable" -msgstr "AbiarazgarriaDa" - -#: find.c:776 -msgid "IsEmpty" -msgstr "HutsaDa" - -#: find.c:778 -msgid "IsMine" -msgstr "NireaDa" - -#: find.c:906 -msgid "Now" -msgstr "Orain" - -#: find.c:919 -msgid "Byte" -msgstr "Byte" - -#: find.c:919 -msgid "Bytes" -msgstr "Byte" - -#: find.c:921 -msgid "Kb" -msgstr "Kb" - -#: find.c:921 -msgid "K" -msgstr "K" - -#: find.c:923 -msgid "Mb" -msgstr "Mb" - -#: find.c:923 -msgid "M" -msgstr "M" - -#: find.c:925 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "G" -msgstr "G" - -#: find.c:927 -msgid "Sec" -msgstr "Seg" - -#: find.c:927 -msgid "Secs" -msgstr "Seg" - -#: find.c:929 -msgid "Min" -msgstr "Min" - -#: find.c:929 -msgid "Mins" -msgstr "Min" - -#: find.c:931 -msgid "Hour" -msgstr "Ordu" - -#: find.c:931 -msgid "Hours" -msgstr "Ordu" - -#: find.c:933 -msgid "Day" -msgstr "Egun" - -#: find.c:933 -msgid "Days" -msgstr "Egun" - -#: find.c:935 -msgid "Week" -msgstr "Aste" - -#: find.c:935 -msgid "Weeks" -msgstr "Aste" - -#: find.c:937 -msgid "Year" -msgstr "Urte" - -#: find.c:937 -msgid "Years" -msgstr "Urte" - -#: find.c:946 -msgid "Ago" -msgstr "dela" - -#: find.c:948 -msgid "Hence" -msgstr "Beraz" - -#: find.c:963 -msgid "atime" -msgstr "sarrera" - -#: find.c:965 -msgid "ctime" -msgstr "" - -#: find.c:967 -msgid "mtime" -msgstr "" - -#: find.c:969 -msgid "size" -msgstr "tamaina" - -#: find.c:971 -msgid "inode" -msgstr "inodoa" - -#: find.c:973 -msgid "nlinks" -msgstr "estekak" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "blokea" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Honela gorde:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Izen gabe" - -#: gtksavebox.c:473 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"Hurruneko aplikazioa \"Direct Save\" erabiltzen saiatzen ari da, baina ezin " -"da XdndDirectSave0 propietatea (text/plain motakoa) irakurri.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Ikonoa direktorio leiho batetara arrastatu\n" -"(edo bide osoa eman)" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"XML fitxategi bat testua balitz bezala irakurtzen saiatu da.\n" -"'%s' fitxategia hondaturik egon liteke." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and click on Save.\n" -"Further errors will be ignored." -msgstr "" -"Hust '%s' fitxategiaren %d lerroan:\n" -"\"%s\"\n" -"Hau ROX-Filer aurreko bertsio baten eguneraketagatik gerta daidete. Aukera " -"leiohoa ireki eta Gorde-n klik egin zazu.\n" -"Hurrengo erroreak albo batetara utziko dira." - -#: gui_support.c:1000 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Lerro amaiera okerra edo falta da text/uri-list datuetan" - -#: gui_support.c:1332 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "" -"Hust '%s' ezabatzerakoan:\n" -"%s" - -#: gui_support.c:1376 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"Ezin da '%s' irudia kargatu: arrazoi ezezaguna, ziurrenik hondaturiko irudi " -"fitxategia" - -#: gui_support.c:1427 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can " -"be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" - -#: i18n.c:38 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Zure ezarpenak gorde eta kudeatzailea berrabiarazi behar duzu hizkuntz " -"berria guztiz martxan ipintzeko." - -#: icon.c:78 -msgid "(click to set)" -msgstr "(klik egin ezartzeko)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 menu.c:252 -msgid "About ROX-Filer..." -msgstr "ROX-Filer buruz..." - -#: icon.c:135 menu.c:253 -msgid "Show Help Files" -msgstr "Laguntza Bistarazi" - -#: icon.c:136 menu.c:254 -msgid "Manual" -msgstr "Manuala" - -#: icon.c:138 menu.c:230 -msgid "Options..." -msgstr "Aukerak..." - -#: icon.c:139 menu.c:239 -msgid "Home Directory" -msgstr "Etxe direktorioa ireki" - -#: icon.c:140 icon.c:1340 menu.c:206 type.c:212 -msgid "File" -msgstr "Fixategia" - -#: icon.c:141 menu.c:212 menu.c:875 -msgid "Shift Open" -msgstr "Shift Ireki" - -#: icon.c:142 menu.c:218 -msgid "Properties" -msgstr "Propietateak" - -#: icon.c:143 menu.c:216 -msgid "Set Run Action..." -msgstr "Ekintza Ezarri..." - -#: icon.c:144 menu.c:217 -msgid "Set Icon..." -msgstr "Ikonoa Ezarri..." - -#: icon.c:145 icon.c:806 -msgid "Edit Item" -msgstr "Elementua Editatu" - -#: icon.c:146 -msgid "Show Location" -msgstr "Kokalekua Erakutsi" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Elementua(k) Ezabatu" - -#: icon.c:278 menu.c:764 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:291 -msgid "Nothing" -msgstr "Ezer" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Kokalekuak beintzat karaktere bat eduki behar du!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Leheneik ezabtzeko zenbait elementu aukeratu behar dituzu" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Menua elementu baten gainean ireki behar duzu" - -#: icon.c:652 menu.c:1260 -msgid "You can only set the run action for a regular file" -msgstr "Fitxategi arruntentzat bakarrik ezarri dezakezu ekintza" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Sakatu desio duzu laster-tekla (adibidez, Kontrol+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Huts teklatua eskuratzerakoan!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Klik egitean ikonoa ireki egiten da:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "Erabiliko diren argumentuak (abiarazgarrientzat):" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Ikono azpian bistaraziko testua:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "LAster-tekla hau da:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "¿Estás seguro que quieres abrir %d ventanas?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Argibideak Bistarazi" - -#: infobox.c:135 menu.c:769 -msgid "(bad utf-8)" -msgstr "(okerreko utf-8)" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "_Laguntza fitxategiak bistarazi" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Baimenak" - -#: infobox.c:286 -msgid "Contents indicate..." -msgstr "Edukiak hau ezartzen du.." - -#: infobox.c:423 infobox.c:560 support.c:349 -msgid "bytes" -msgstr "byte" - -#: infobox.c:446 -msgid "Failed to read size" -msgstr "Huts tamaina irakurtzerakoan" - -#: infobox.c:504 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' ya no es un enlace simbólico" - -#: infobox.c:511 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Falló la eliminación de '%s':\n" -"%s" - -#: infobox.c:516 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Falló la creación del enlace simbólico '%s':\n" -"%s\n" -"(nota: el antiguo enlace has sido borrado)" - -#: infobox.c:539 tips:270 -msgid "Error:" -msgstr "Errorea:" - -#: infobox.c:546 -msgid "Real directory:" -msgstr "Direktorio erreala:" - -#: infobox.c:549 -msgid "Owner, Group:" -msgstr "Jabea, Taldea:" - -#: infobox.c:556 infobox.c:571 infobox.c:580 -msgid "Size:" -msgstr "Tamaiana:" - -#: infobox.c:581 -msgid "Scanning" -msgstr "Arakatzen" - -#: infobox.c:602 -msgid "Failed to scan" -msgstr "Huts arakatzerakoan" - -#: infobox.c:609 -msgid "Change time:" -msgstr "Aldaketa data:" - -#: infobox.c:611 -msgid "Modify time:" -msgstr "Aldaketa data:" - -#: infobox.c:613 -msgid "Access time:" -msgstr "Irakurketa data:" - -#: infobox.c:621 -msgid "Extended attributes:" -msgstr "Atributu hedatuak:" - -#: infobox.c:623 -msgid "Present" -msgstr "Orain" - -#: infobox.c:624 -msgid "None" -msgstr "Batez" - -#: infobox.c:625 -msgid "Not supported" -msgstr "Ez Onarturik" - -#: infobox.c:637 -msgid "Link target:" -msgstr "Lotura helburua:" - -#: infobox.c:649 infobox.c:652 -msgid "Run action:" -msgstr "Loturiko ekintza:" - -#: infobox.c:649 -msgid "Execute file" -msgstr "Fitxategia abiarazi" - -#: infobox.c:744 -msgid "" -msgstr "" - -#: infobox.c:814 -#, c-format -msgid "file(1) says... %s" -msgstr "(1)fitxategiak dio... %s" - -#: infobox.c:871 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Ezin dira baimenak aldatu: %s" - -#: infobox.c:889 -msgid "Owner" -msgstr "Jabea" - -#: infobox.c:891 -msgid "Group" -msgstr "Taldea" - -#: infobox.c:893 -msgid "World" -msgstr "Danak" - -#: infobox.c:896 -msgid "Read" -msgstr "Irakurketa" - -#: infobox.c:898 -msgid "Write" -msgstr "Idazketa" - -#: infobox.c:900 -msgid "Exec" -msgstr "Abiaraztea" - -#: infobox.c:917 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:924 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:931 -msgid "Sticky" -msgstr "Itsaskorra" - -#: infobox.c:953 -msgid "Symbolic link" -msgstr "Esteka sinbolikoa" - -#: infobox.c:956 -msgid "ROX application" -msgstr "ROX aplikazioa" - -#: infobox.c:964 -msgid "mounted" -msgstr "muntaturik" - -#: infobox.c:964 -msgid "unmounted" -msgstr "desmuntaturik" - -#: infobox.c:968 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Punto de montaje para %s (%s)" - -#: infobox.c:971 -#, c-format -msgid "Mount point (%s)" -msgstr "Punto de montaje (%s)" - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2003 Thomas Leonard.\n" -"ROX-Filer INONGO BERMERIK GABE banatzen da,\n" -"legeak baimentzen duenaren abrnean.\n" -"Lizentzi Publiko Orokorrak (GPL) ezarrritako moduan\n" -"ROX-Filer kopiak zabaldu ditzakezu.\n" -"Gai haueta xehetasun gehiago jaso nahi ezkero COPYING izeneko fitxategi " -"irakurri.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "`ROX-Filer/AppRun --help' erabili argibide gehiagorako.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "ROX-Filer/AppRun -h' erabili argibide gehiagorako.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"OHARRA: Zure sistemak ez ditu aukera luzeak onartzen - \n" -"bertsio laburrak erabili behar dituzu luzeen ordez.\n" -"\n" - -#: main.c:115 -#, fuzzy -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Erabilera: ROX-Filer/AppRun [AUKERA]... [FITXATEGIA]...\n" -"Ireki direktorio edo zerrenda bakoitza, edo lan huneko direktorioa\n" -"argumenturik ematen ez bada\n" -"\n" -" -b, --bottom=PANEL\tPAN behekalde ertzeko panel bat bezala ireki\n" -" -c, --client-id=ID\tsaio kudeatzaileak erabilia\n" -" -d, --dir=DIR\t\tDIR direktorio bezala ireki (ez aplikazio bat bezala)\n" -" -D, --close=DIR\tDIR eta azpidirektorioak itxi\n" -" -h, --help\t\tlaguntza hau bistarazi eta itxi\n" -" -l, --left=PANEL\tPAN ezkerraldeko panel bat bezala ireki\n" -" -m, --mime-type=FITXATEGIA\tFITXATEGIA-ren MIME mota bistarazi eta amaitu\n" -" -n, --new\t\tkudeatzailea arazteko istantzi berri bat abiarazi\n" -" -p, --pinboard=PIN\tPIN idazmahaia erabili idazmahai bezala\n" -" -r, --right=PANEL\tPAN eskubialdean panel bat bezala ireki\n" -" -R, --RPC\t\tsarrera estandarrean irakurritako metodo deialdia deitu\n" -" -s, --show=ARCHIVO\tFITXAEGIA bistaraziz direktorio bat ireki\n" -" -t, --top=PANEL\tPAN goikaldean panel bat bezala ireki\n" -" -u, --user\t\tleiho bakoitzarentzat erabiltzaile izena bistarazi\n" -" -v, --version\t\tbertsio argibidea bistarazi eta itxi\n" -" -x, --examine=FITXATEGIA\tFITXATEGIA aldatu egin da - berriz irakurri\n" -"\n" -"Arazoen berri eman " - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -".\n" -"Webgunea (eguneraturiko bertsioak barne): http://rox.sourceforge.net/\n" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" - -#: main.c:382 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"-o argumentua ez da luzaroago erabiliko. Aukerak leihoko birbidalketa alde " -"batetara utzi gaitu dezakezu bere ordez." - -#: main.c:489 -#, c-format -msgid "Running as user '%s'" -msgstr "'%s' erbiltzailea bezala abiarazten" - -#: main.c:666 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "GTK %s bertsioaz konpilaturik\n" - -#: main.c:667 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "GTK bertsioaz %d.%d.%d abiarazirik\n" - -#: main.c:671 -msgid "features set at compile time" -msgstr "Konpilazioan ezarritako funtzioak" - -#: main.c:672 -msgid "Large File Support" -msgstr "Fitxategi Handi Onarpena" - -#: main.c:679 -msgid "GNOME-VFS library" -msgstr "GNOME-VFS liburutegia" - -#: main.c:683 -msgid "No (need 2.8.0 or later)" -msgstr "Ez (2.8.0 edo berriagoa behar du)" - -#: main.c:686 -msgid "Dnotify support" -msgstr "Dnotify Onarpena" - -#: main.c:693 -msgid "Binary compatibility" -msgstr "Bitar bateragarritasuna" - -#: main.c:695 -msgid "Yes (can run with older glibc versions)" -msgstr "Bai (zaharkituriko glibc bertsioekin lan egin dezake)" - -#: main.c:697 -msgid "No (apsymbols.h not found)" -msgstr "Ez (apsymbols.h ez da aurkitu)" - -#: menu.c:180 tips:52 -msgid "Display" -msgstr "Bistarazi" - -#: menu.c:181 tips:57 -msgid "Icons View" -msgstr "Ikono bistartzea" - -#: menu.c:182 -msgid "Icons, With..." -msgstr "Ikonoak, Gehi..." - -#: menu.c:183 tips:74 -msgid "Sizes" -msgstr "Tamainak" - -#: menu.c:185 tips:254 -msgid "Types" -msgstr "Motak" - -#: menu.c:186 tips:77 -msgid "Times" -msgstr "Data" - -#: menu.c:187 tips:58 tips:92 -msgid "List View" -msgstr "Zerrenda bistaratzea" - -#: menu.c:189 -msgid "Bigger Icons" -msgstr "Ikono handiagoak" - -#: menu.c:190 -msgid "Smaller Icons" -msgstr "Ikono txikiagoak" - -#: menu.c:191 tips:71 -msgid "Automatic" -msgstr "Automatikoa" - -#: menu.c:193 -msgid "Sort by Name" -msgstr "Izenez sailkatu" - -#: menu.c:194 -msgid "Sort by Type" -msgstr "Motaz sailkatu" - -#: menu.c:195 -msgid "Sort by Date" -msgstr "Dataz sailkatu" - -#: menu.c:196 -msgid "Sort by Size" -msgstr "Tamainaz Sailkatu" - -#: menu.c:197 -msgid "Sort by Owner" -msgstr "Jabez Sailkatu" - -#: menu.c:198 -msgid "Sort by Group" -msgstr "Taldez Sailkatu" - -#: menu.c:199 -msgid "Reversed" -msgstr "Atzezaurrera" - -#: menu.c:201 -msgid "Show Hidden" -msgstr "Ezkutukoak bistarazi" - -#: menu.c:202 -msgid "Filter Files..." -msgstr "Fitxategi Iragazkia..." - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Argazkitxoak bistarazi" - -#: menu.c:204 -msgid "Refresh" -msgstr "Berritu" - -#: menu.c:205 -msgid "Save Display Settings..." -msgstr "Pantaila ezarpenak gorde..." - -#: menu.c:207 -msgid "Copy..." -msgstr "Kopiatu..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Berrizendatu..." - -#: menu.c:209 -msgid "Link..." -msgstr "Estekatu..." - -#: menu.c:213 -msgid "Open AVFS" -msgstr "AVFS ireki" - -#: menu.c:214 -msgid "Send To..." -msgstr "Bidali hona..." - -#: menu.c:219 -msgid "Count" -msgstr "Tamaina" - -#: menu.c:220 -msgid "Set Type..." -msgstr "Mota ezarri..." - -#: menu.c:224 toolbar.c:155 -msgid "Select" -msgstr "Aukeratu" - -#: menu.c:225 -msgid "Select All" -msgstr "Danak aukeratu" - -#: menu.c:226 -msgid "Clear Selection" -msgstr "Eginiko aukera utzi" - -#: menu.c:227 -msgid "Invert Selection" -msgstr "Aukera alderantzikatu" - -#: menu.c:228 -msgid "Select by Name..." -msgstr "Izenez aukeratu..." - -#: menu.c:229 -msgid "Select If..." -msgstr "Aukeratu..." - -#: menu.c:231 -msgid "New" -msgstr "Berria" - -#: menu.c:233 -msgid "Blank file" -msgstr "Fitxategi hutsa" - -#: menu.c:235 tasklist.c:308 -msgid "Window" -msgstr "Leihoa" - -#: menu.c:236 -msgid "Parent, New Window" -msgstr "Aita, Leiho Berria" - -#: menu.c:237 -msgid "Parent, Same Window" -msgstr "Aita, Leiho Berdina" - -#: menu.c:238 -msgid "New Window" -msgstr "Leiho Berria" - -#: menu.c:240 -msgid "Show Bookmarks" -msgstr "Laster-markak bistarazi" - -#: menu.c:241 -msgid "Follow Symbolic Links" -msgstr "Esteka sinbolikoak jarraitu" - -#: menu.c:242 -msgid "Resize Window" -msgstr "Leiho tamaina aldatu" - -#: menu.c:245 -msgid "Close Window" -msgstr "Leihoa itxi" - -#: menu.c:247 -msgid "Enter Path..." -msgstr "Bidea idatzi..." - -#: menu.c:248 -msgid "Shell Command..." -msgstr "Shell Komandoa..." - -#: menu.c:249 -msgid "Xterm Here" -msgstr "Xterm Hemen" - -#: menu.c:250 -msgid "Switch to xterm" -msgstr "xterm-era aldatu" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "" -"Zuk Shift zapalduri duzula fitxategiaren menuan klik egin behar duzu " -"norabait bidaltzeko" - -#: menu.c:754 -msgid "Next Click" -msgstr "Hurrengo Klik" - -#: menu.c:776 -#, c-format -msgid "%d items" -msgstr "%d elementu" - -#: menu.c:864 -msgid "Open unmounted" -msgstr "Desmuntaturik ireki" - -#: menu.c:867 -msgid "Show Target" -msgstr "Helburua Bistarazi" - -#: menu.c:869 -msgid "Look Inside" -msgstr "Barrua Begiratu" - -#: menu.c:871 -msgid "Open As Text" -msgstr "Testu bezala ireki" - -#: menu.c:1031 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"Hedaturiko atributuak, motak gordetzeko erabiliak, ez dira oanrtzen " -"fitxategi hau edo hauentzat.\n" -"C liburutegian fitxategi sistemaren onarpenaren huts bat dela eta izan " -"daiteke, ere fitxategi sistema muntatze aukera zuzenak ezarri behar direla " -"izan daiteke ('user_xattr' Linux-en)." - -#: menu.c:1037 -msgid "Setting type not supported for some of these files" -msgstr "Ezarpen mota ez du onartzen fitxategi batenbatek" - -#: menu.c:1072 -msgid "_Relative link" -msgstr "_Esteka erlatiboa" - -#: menu.c:1078 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Esteka sinboliko gaiturik egon ezkero estekatik helburu fitxategira bidea " -"gordeko du. Esteka eta fitxategia batera mugituko badira erabili.\n" -"Ezgaiturik egon ezkero, erro direktoriotik bidea gordeko da - Esteka mugitu " -"baina helburu fitxategia leku berdinean geratuko bada erabili." - -#: menu.c:1148 -msgid "New pathname is not absolute" -msgstr "Bide berria ez da absolutua" - -#: menu.c:1214 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "" -"Dagoeneko badago '%s'-ren esteka sinboliko bat. ¿'%s'-ra estekaz aldatu?" - -#: menu.c:1220 -msgid "_Replace" -msgstr "_Aldatu" - -#: menu.c:1351 menu.c:1392 menu.c:1452 -msgid "Create" -msgstr "Sortu" - -#: menu.c:1352 -msgid "NewDir" -msgstr "DirBerria" - -#: menu.c:1366 menu.c:1372 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Errorea '%s' sortzerakoan: %s" - -#: menu.c:1393 -msgid "NewFile" -msgstr "FitxategiBerria" - -#: menu.c:1411 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "" -"Errorea fitxategia sortzerakoan: ezin izan da %s-rentzat txantilloia aurkitu" - -#: menu.c:1482 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"`Bidali Hona' menuak fitxategi batzu aplikazio batetara bidaltzeko bide " -"azkar bat da. Bistaraziko diren aplikazioa direktorio hauetakoak dira:\n" -"\n" -"%s\n" -"%s\n" -"`Bidali Hona' menua fitxategi batetan Shift+Menua klikatuazireki daiteke.\n" -"\n" -"Erabilera aurreratua:\n" -"Ere `.text_html', `.text', etabar izeneko azpidirektorioak sortu daitezke " -"fitxategi mota horientzat bistaraziko dena. `.group' -direktorioa fitxategi " -"anitz aukeraturik daudenean isaraziko da." - -#: menu.c:1493 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Orain BidaliHona direktorio bat bistaraziko da; barnean egotea nahi duzun " -"aplikazioei esteka sinbolikoak sortu (Ktrl+Shift+arrastatu) beharko " -"zenizkieke." - -#: menu.c:1496 menu.c:1536 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "" -"Zure CHOICESPATH aldagaiaren balioak ez ditu pertsonalizazioak onarzen - " -"barkatu." - -#: menu.c:1529 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" - -#: menu.c:1534 -#, fuzzy -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Orain BidaliHona direktorio bat bistaraziko da; barnean egotea nahi duzun " -"aplikazioei esteka sinbolikoak sortu (Ktrl+Shift+arrastatu) beharko " -"zenizkieke." - -#: menu.c:1651 -msgid "Customise" -msgstr "Pertsonalizatu" - -#: menu.c:1717 -msgid "This is already the canonical name for this directory." -msgstr "Hau dagoeneko direktorio honen izen kanonikoa da." - -#: menu.c:1748 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Ezin duzu direktorio honen bigarren bistaratze leiho bat ireki `Leiho " -"Bakarrak' aukera gaiturik bait dago ezarpenetan." - -#: menu.c:1869 -msgid "Copy ... ?" -msgstr "Kopiatu ... ?" - -#: menu.c:1872 -msgid "Rename ... ?" -msgstr "Berrizendatu ... ?" - -#: menu.c:1875 -msgid "Symlink ... ?" -msgstr "Estekatu ... ?" - -#: menu.c:1878 -msgid "Shift Open ... ?" -msgstr "Shift Ireki ... ?" - -#: menu.c:1881 -msgid "Properties of ... ?" -msgstr "Honen propietateak ... ?" - -#: menu.c:1884 -msgid "Set type of ... ?" -msgstr "Honen Mota Ezarrie ... ?" - -#: menu.c:1887 -msgid "Set run action for ... ?" -msgstr "Honentzat Ekintza Ezarri ... ?" - -#: menu.c:1890 -msgid "Set icon for ... ?" -msgstr "Honentzat Ikonoa Ezarri ... ?" - -#: menu.c:1893 -msgid "Send ... to ... ?" -msgstr "Bidali ... nora ... ?" - -#: menu.c:1896 -msgid "DELETE ... ?" -msgstr "EZABATU ... ?" - -#: menu.c:1899 -msgid "Count the size of ... ?" -msgstr "Honen tamaina kalkulatu ... ?" - -#: menu.c:1902 -msgid "Set permissions on ... ?" -msgstr "Baimenak ezarri ... ?" - -#: menu.c:1905 -msgid "Search inside ... ?" -msgstr "Bilatu honen barruan ... ?" - -#: menu.c:1908 -msgid "Look inside ... ?" -msgstr "Bilatu barruan ... ?" - -#: menu.c:1972 -msgid "You cannot do this to more than one item at a time" -msgstr "Ezin duzu hau elementu anitzekin egin" - -#: menu.c:2004 -msgid "Rename" -msgstr "Berrizendatu" - -#: menu.c:2009 -msgid "Symlink" -msgstr "Esteka" - -#: menu.c:2041 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Erabiltzaileak ezarritako laster-teklak ezgaiturik dauden lehenespen bezala " -"Gtk2-en eta ez dituzu gaitu. Aukera hau gaitzeko:\n" -"\n" -"1) Xsetting kudeatzaile bat erabiliaz, ROX-Session edo gnome-settings daemon " -"bezalakoa.\n" -"\n" -"2) ~/.gtkrc-2.0 fitxategian lerro hau gehituaz:\n" -"\tgtk-can-change-accels = 1\n" -"\t(XSETTINGS erabiltzen EZ baduzu bakarrik )" - -#: menu.c:2052 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Menuko elementu batentzat laster-tekla bat ezartzeko:\n" -"\n" -"- Ireki menua fitxategi kudeatzaile leiho batetan,\n" -"- Mugitu markatzailea erabili nahi duzun elemetura,\n" -"- Sakatu elementu horretara lotu nahi duzun tekla.\n" -"\n" -"Menuko elementuaren alboan tekla agertuko da eta aski izango da tekla hori " -"sakatzea menua ireki gabe hemendik aurrera." - -#: menu.c:2067 -msgid "Set keyboard shortcuts" -msgstr "Teklatu laster-teklak ezarri" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Joan:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Shell-a:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Kasu honetan aukeratu:" - -#: minibuffer.c:134 -msgid "Select Named:" -msgstr "Hautatu Deiturikoa:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "Patroia:" - -#: minibuffer.c:264 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Fitxategi izena idatzi bistaratzeko. Tab sakaru parekatze luzeena " -"bistaratzeko. \"Esc\" sakatu minibuffer-a ixteko." - -#: minibuffer.c:270 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Idatzi abiarazteko shell komando bat. Klik egin fitxategi batetan buffer-ean " -"gehitzeko." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Idatz ezazu parekatze guztiak aukeratzeko bilaketa patroia:\n" -"\n" -"? edozein karaktere da\n" -"* 0 edo karaktere gehiago da\n" -"[aA] 'a' edo 'A' da\n" -"[a-z] a-tik z-ra edozeinkaraktere da (minuskulak)\n" -"*.png '.png'-ez amaitzen den edozein izen da" - -#: minibuffer.c:287 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Betetzen duten fitxategiak bistaratzeko patroia bat idatzi. IRagazki huts " -"batek iragazkia ezgaitzen du." - -#: minibuffer.c:895 -msgid "Invalid Find condition" -msgstr "Bilkaeta baldintza okerra" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s guztira, %s erabilia, %s libre (%.1f %%)" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer-ek zure aukera fitxategia XML formatu berrira bihurtu du" - -#: options.c:535 options.c:1258 -msgid "(use default)" -msgstr "(lehenetsia erabili)" - -#: options.c:806 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Barne errorea: %s irakurrezina" - -#: options.c:917 -msgid "Options" -msgstr "Aukerak" - -#: options.c:962 -msgid "_Revert" -msgstr "_Desegin" - -#: options.c:968 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Berezarri aukera guztiak aukera leiho ireki denean zuten egoerara." - -#: options.c:983 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Aukerak honela gordeko dira:\n" -"%s" - -#: options.c:991 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(Gordetzea CHOICESPATH dela eta ezgaiturik dago)" - -#: options.c:1164 usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Errorea %s gordetzerakoan: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "'=' bat falta da" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Zure panel fitxategi zaharra XML formatu berrira eguneraturik izan da." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Leiho kudeatzailearen bidez panel bat ixten saiatu zara - normalean hau " -"istripu bat izaten da... benetan itxi?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "Panelaren konfigurazio fitxategian < bat edo > bat falta da" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Errorea %s panela gordetzerakoan: %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Applet-a widget bat ere sortu gabe amaiatu da!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Errorea applet-a abiaraztean:\n" -"%s" - -#: panel.c:2335 -#, fuzzy -msgid "Panel Options..." -msgstr "Aukerak..." - -#: panel.c:2427 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "%d Xinerama monitorea ez dago erabilgarri" - -#: panel.c:2502 -#, fuzzy -msgid "Panel Options" -msgstr "Aukerak" - -#: panel.c:2517 -#, fuzzy, c-format -msgid "Panel: %s" -msgstr "Panelak" - -#: panel.c:2525 -msgid "Select the panel's position:" -msgstr "" - -#: panel.c:2531 -msgid "Top-edge panel" -msgstr "" - -#: panel.c:2532 -msgid "Top edge" -msgstr "" - -#: panel.c:2533 -msgid "Bottom edge panel" -msgstr "" - -#: panel.c:2534 -#, fuzzy -msgid "Bottom edge" -msgstr "Behekaldeko marjina" - -#: panel.c:2535 -msgid "Left edge panel" -msgstr "" - -#: panel.c:2536 -msgid "Left edge" -msgstr "" - -#: panel.c:2537 -msgid "Right-edge panel" -msgstr "" - -#: panel.c:2538 -msgid "Right edge" -msgstr "" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "" -"Zure idazmahai fitxategi zaharra XML formatu berrira eguneratua izan da." - -#: pinboard.c:635 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Idazmahai atzealde kudeatzailea aplikazio direktorio bat izan behar da. " -"Aplikazio direktorio bat Idazmahai atzealde ezarpen kutxara arrastatu ezazu, " -"edo (programentzat) SOAP SetBackdropApp metodora pasa ezazu." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Idazmahai atzealdea irudi batekin edo ROX-FIler idazmahai atzaealdea " -"kudeatzen dakien programa batekin bakarrik ezarri daiteke.\n" -"\n" -"Garatzaileak: Aplikazioaren AppInfo.xml CanSetBackdrop elementua eduki behar " -"du, ROX-Filer manualean argitzen den bezala." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Pantallaren atzeko irudia ezarri" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Estilo bat aukeratu eta irudi bat arrastatu:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Eskala aldatu gabe irudia erdiratu" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Erdiratua" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Irudia idazmahaiaren tamainakoa bihurtu baina eraldatu gabe" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Eskalan" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Irudia zabaldu pantaila osoa bete dezan" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Zabaldua" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Irudiaz idazmahaian mosaiko bat egin" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Mosaiko" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Askatu irudi bat hemen" - -#: pinboard.c:772 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Ez zegoen idazmahairik erabilia... 'Lehenetsiriko' idazmahaia hautatua izan " -"da.'rox -p=Default' erabili aurrerago gaitzeko." - -#: pinboard.c:866 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Fitxategiak bakarrik (eta zenbait aplikazio) erabili daitezke idazmahaiaren " -"atzealde irudia ezartzeko." - -#: pinboard.c:1471 -msgid "Missing '>' in icon label" -msgstr "'>' bat falta da ikonoaren etiketan" - -#: pinboard.c:1480 -msgid "Missing ',' after icon label" -msgstr "',' bat falta da ikono etiketaren ondoren" - -#: pinboard.c:1565 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Errorea %s direktorioa gordetzerakoan: %s" - -#: pinboard.c:2109 -msgid "Backdrop..." -msgstr "Pantaila atzekaldea..." - -#: pinboard.c:2202 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Error cargando imágen de fondo de pantala:\n" -"%s\n" -"Fondo de pantalla eliminado." - -#: pixmaps.c:991 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Ezin dira %s-ko argazkitxoak ezabatu:\n" -"%s" - -#: pixmaps.c:1012 -msgid "There are no thumbnails to delete" -msgstr "Ez dago argazkitxorik ezabatzeko" - -#: pixmaps.c:1025 -msgid "Purge thumbnails disk cache" -msgstr "Diskako argazkitxo katxea ezabatu" - -#: remote.c:624 -#, c-format -msgid "Unknown style '%s'" -msgstr "'%s' estilo ezezaguna" - -#: remote.c:646 -#, c-format -msgid "Unknown details type '%s'" -msgstr "'%s' xehetasun mota ezezaguna" - -#: remote.c:674 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "'%s' sailkapen mota ezezaguna" - -#: remote.c:1117 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Intento de invocar un método SOAP desconocido '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Archivo de traducción .gmo no válido (demasiado corto): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "" -"Archivo de traducción .gmo no válido (no se encontró el número mágico GNU): %" -"s" - -#: run.c:96 run.c:141 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Programa %s no encontrado - borrado?" - -#: run.c:287 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Fitxategia edo ez dago edo ezin da ireki: %s" - -#: run.c:292 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Ez dakit '%s' nola ireki" - -#: run.c:323 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Aplikaizoa:\n" -"Hau aplikazio direktorio bat da - programa bat bezala abiarazi dezakezu, edo " -"ireki (irekitzerakoan Shift sakatuaz). Aplikazio gehinek laguntza ematen " -"dute hemen baina honek ez." - -#: run.c:407 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Ezin dira datuak programara bidali: %s" - -#: run.c:437 -#, c-format -msgid "Could not read link: %s" -msgstr "Ezin izan da esteka irakurri: %s" - -#: run.c:465 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "apurtutako esteka sinbolikoa (edo ez duzu irakurtzeko eskubiderik): %s" - -#: run.c:502 -#, fuzzy, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Ez dago ekintza ezarririk fitxategi mota honentzat (%s/%s) - ekintza " -"ezartzeko menuan`Ekintza Ezarri' aukeratu edo fixtategia aplikazio batetara " -"arrastatzearekin ere aski da" - -#: run.c:508 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: toolbar.c:115 -msgid "Close" -msgstr "Itxi" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Kudeatzaile leihoa itxi" - -#: toolbar.c:119 -msgid "Up" -msgstr "Gora" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Goiko direktorioara joan" - -#: toolbar.c:123 -msgid "Home" -msgstr "Etxea" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Etxe direktoriora joan" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Laster-markak" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Laster-marka menua" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Berritu" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Berritu direktorio edukiak" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Ikono tamaina aldatu" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Tamaina automatiko modua" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Xehetasun gehiarriak bistarazi" - -#: toolbar.c:147 -msgid "Sort" -msgstr "Sailkatu" - -#: toolbar.c:147 -msgid "Change sort criteria" -msgstr "Sailkatze irizpideak aldatu" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Eskutaturik" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Ezkutaturiko fitxategiak ezkutatu/bistarazi" - -#: toolbar.c:155 -msgid "Select all/invert selection" -msgstr "Dana hautatu/Hautapena alderantzizkatu" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "ROX-Filer laguntza bistarazi" - -#: toolbar.c:220 -#, c-format -msgid " (%u hidden)" -msgstr " (%u ezkutaturik)" - -#: toolbar.c:228 tips:80 -msgid "items" -msgstr "elementu" - -#: toolbar.c:228 -msgid "item" -msgstr "elementu" - -#: toolbar.c:231 -#, c-format -msgid "No items%s" -msgstr "Elementurik ez%s" - -#: toolbar.c:250 -#, c-format -msgid "%u selected (%s)" -msgstr "%u hautaturik (%s)" - -#: toolbar.c:422 -msgid "Sort by name" -msgstr "Izenez sailkatu" - -#: toolbar.c:422 -msgid "Sort by type" -msgstr "Motaz sailkatu" - -#: toolbar.c:422 -msgid "Sort by date" -msgstr "Dataz sailkatu" - -#: toolbar.c:423 -msgid "Sort by size" -msgstr "Tamainaz sailkatu" - -#: toolbar.c:423 -msgid "Sort by owner" -msgstr "Jabez sailkatu" - -#: toolbar.c:423 -msgid "Sort by group" -msgstr "Taldez sailkatu" - -#: toolbar.c:457 -msgid "ascending" -msgstr "gorantz" - -#: toolbar.c:457 -msgid "descending" -msgstr "beherantz" - -#: type.c:203 -msgid "Sym link" -msgstr "Esteka simb" - -#: type.c:205 -msgid "Mount point" -msgstr "Muntatze puntua" - -#: type.c:207 -msgid "App dir" -msgstr "Aplik Dir" - -#: type.c:214 -msgid "Dir" -msgstr "Dir" - -#: type.c:216 -msgid "Char dev" -msgstr "Kar gailua" - -#: type.c:218 -msgid "Block dev" -msgstr "Bloke gailua" - -#: type.c:220 -msgid "Pipe" -msgstr "Tutua" - -#: type.c:222 -msgid "Socket" -msgstr "Socket-a" - -#: type.c:224 -msgid "Door" -msgstr "Atea" - -#: type.c:227 -msgid "Unknown" -msgstr "Ezezaguna" - -#: type.c:355 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"¡El ejecutable '%s' es modificable por todos! Me niego a ejecutar. Por favor " -"modifica los permisos ahora (éste problema puede haber sido causado por un " -"bug en versiones anteriores del filer).\n" -"\n" -"Tener accions de ejecución (no enlaces simbólicos) modificables por todos " -"significa que otras personas que usen tu computadora pueden reemplazar tus " -"acciones de ejecución con versiones maliciosas.\n" -"\n" -"Si confías en todos los que puedan escribir en ésos archivos, entonces no " -"necesitas preocuparte. Sino, deberías verificar, o incluso sólo eliminar, " -"todas las acciones de ejecución existentes." - -#: type.c:368 -msgid "go-w (Fix security problem)" -msgstr "go-w (Segurtasun arazoa konpontzend u)" - -#: type.c:498 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"\"$@\" kudea dezaken programa barruan kargatuko duen shell bat sartuko du. " -"Adibidez:\n" -"\n" -"gimp \"$@\"" - -#: type.c:679 -msgid "This is not a program! Give me an application instead!" -msgstr "Hau ez da programa bat! Honen ordez aplikazio bat eman behar duzu!" - -#: type.c:740 -msgid "No run action defined" -msgstr "Ez dago abiarazte ekintzarik" - -#: type.c:766 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Huts kudeatzaielan (handler) %s: %s" - -#: type.c:781 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Aplicación inválida %s (AppRun incorrecto)" - -#: type.c:792 -#, c-format -msgid "Non-executable %s" -msgstr "Ez abiarazgarria %s" - -#: type.c:825 -msgid "Set run action" -msgstr "Ekintza ezarri" - -#: type.c:831 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Mota bereziarerentzat ez badago aplikaziorik ezarririk, hau erabili " -"lehenespen bezala." - -#: type.c:833 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Lehenespen bezala ezarri `%s/' guztietan" - -#: type.c:837 -msgid "Use this application for all files with this MIME type." -msgstr "MIME mota honetako fitxategi guztiekin aplikaziio hau erabili." - -#: type.c:839 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "`%s' (%s/%s) motarentzat bakarrik" - -#: type.c:845 -msgid "Drop a suitable application here" -msgstr "Ekarri aplikazio erabilgarri bat hona" - -#: type.c:860 -msgid "OR" -msgstr "EDO" - -#: type.c:867 -msgid "Enter a shell command:" -msgstr "Idatzi shell komando bat:" - -#: type.c:896 -msgid "_Use Command" -msgstr "_Komandoa" - -#: type.c:926 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Ekintza bat ezarririk dago eta nahiko programa handi bat da - ezabatu nahi " -"duzula zihur zaude?" - -#: type.c:937 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Ezin da %s ezabatu: %s" - -#: type.c:974 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "CHOICESPATH aldagaiak aukerak gordetzea ezintzen du" - -#: type.c:1249 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" -"'%s' ikono gaiak ez ditu MIME ikonorik. ROX-en lehenetsiriko gaia erabiltzen " -"honen ordez." - -#: type.c:1263 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason)" -msgstr "" -"Huts '%s' esteka sinbolikoa sortzerakoan:\n" -"%s\n" -"\n" -"(honek ROX gaia dagoeneko han dagoela baina 'mime-application:postscript' " -"zerbaitegaik ezin izna dela kargatu esan nahi dezake)" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Emandako bidea ez dago. Ikonoa ez da aldatu." - -#: usericons.c:191 usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Ezinda irudi fitxategia kargatu -- agian ez dago formatu ulergarri batetan, " -"edo agian baimenak gaizki al daude?\n" -"Ikonoa ez da aldatua izango." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "¿'%s' ikonoa benetan ezabatu?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Ezin da '%s' ezabatu:\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Ikonoa ezarri" - -#: usericons.c:279 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "Erabili irudiaren kopia bat MIME mota hauetako fitxategi guztientzat." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "`%s/' guztientzat ikonoa ezarri" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Erabili irudiaren kopia bat MIME mota honetako fitxategi guztientzat." - -#: usericons.c:288 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Para todos los archivos de tipo `%s' (%s/%s)" - -#: usericons.c:294 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Gehitu fitxategi eta irudi fitxategi izenak zerrenda pertsonalera. Ezarpena " -"galdu egingo da irudia edo fitxategia mugitzen bada." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "`%s' fitxategiarentzat bakarrik" - -#: usericons.c:305 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Irudia direktorioaren barnean kopiatu, '.DirIcon' izeneko ezkutatuko " -"fitxategi batetan. Orduan erabiltzaile guztiek ikonoa ikus ahal izango dute " -"eta direktorioasegurtasunez mugitu ahal izango duzu. Hau normalean aukera " -"hoberena da direktorioan idazteko aukera baduzu." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Kopiatu irudia direktorio barnean" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Askatu ikono bat hemen" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "CHOICESPATH aldagaiak ikonoak ezartzea ezintzen du" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Errorea '%s' irudia sortzerakoan:\n" -"%s" - -#: view_details.c:1009 -msgid "_Name" -msgstr "_Izena" - -#: view_details.c:1012 -msgid "_Type" -msgstr "_Mota" - -#: view_details.c:1015 -msgid "_Permissions" -msgstr "_Baimenak" - -#: view_details.c:1016 -msgid "_Owner" -msgstr "_Jabea" - -#: view_details.c:1018 -msgid "_Group" -msgstr "_Taldea" - -#: view_details.c:1020 -msgid "_Size" -msgstr "_Tamaina" - -#: view_details.c:1022 -msgid "Last _Modified" -msgstr "Akzen _Aldaketa" - -#: tips:1 -msgid "Translation" -msgstr "Itzulpena" - -#: tips:2 -msgid "Language" -msgstr "Hizkuntza" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "LANG aldagaieko ingurunea erabili" - -#: tips:4 -msgid "Basque" -msgstr "" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Txinatar (tradizionala)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Txinatar (soildua)" - -#: tips:7 -msgid "Czech" -msgstr "Txekiera" - -#: tips:8 -msgid "Danish" -msgstr "Daniera" - -#: tips:9 -msgid "Dutch" -msgstr "Holandarra" - -#: tips:10 -msgid "English (no translation)" -msgstr "Ingelesa (itzuli gabe)" - -#: tips:11 -#, fuzzy -msgid "Estonian" -msgstr "Errumaniera" - -#: tips:12 -msgid "Finnish" -msgstr "Finlandiera" - -#: tips:13 -msgid "French" -msgstr "Frantsesa" - -#: tips:14 -msgid "German" -msgstr "Alemaniera" - -#: tips:15 -msgid "Hungarian" -msgstr "Hungariera" - -#: tips:16 -msgid "Japanese" -msgstr "Japoniera" - -#: tips:17 -msgid "Norwegian" -msgstr "Norvegiera" - -#: tips:18 -msgid "Italian" -msgstr "Italiera" - -#: tips:19 -msgid "Polish" -msgstr "Poloniera" - -#: tips:20 -msgid "Portuguese (Brasil)" -msgstr "Portugesa (Brasil)" - -#: tips:21 -msgid "Romanian" -msgstr "Errumaniera" - -#: tips:22 -msgid "Russian" -msgstr "Errusiera" - -#: tips:23 -msgid "Spanish" -msgstr "Gaztelania" - -#: tips:24 -msgid "Swedish" -msgstr "Suediera" - -#: tips:25 -msgid "Filer windows" -msgstr "Kudeatzaile leihoa" - -#: tips:26 -msgid "Auto-resize filer windows" -msgstr "Kudeatziale leihoak automatikoki tamainaz aldatu" - -#: tips:27 -msgid "Never automatically resize" -msgstr "Inoiz ez automatikoki tamaiana aldatu " - -#: tips:28 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Leiho tamainak leiho kudeatzailea, `Leiho tamaina aldatu' menuaz edo leiho " -"atzealdean klik bikoitza eginez eskuz aldatu beharko dituzu." - -#: tips:29 -msgid "Resize when changing the display style" -msgstr "Tamaina aldatu bistaratze metodoa aldatzerakoan" - -#: tips:30 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Ikono tamaina edo bistarazitako xehetasunak aldatzean leihoa tamaina " -"automatikoki aldatuko da." - -#: tips:31 -msgid "Always resize" -msgstr "Beti tamaina aldatu" - -#: tips:32 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Kudeatzaileak leiho tamaina erabilgarri denean aldatuko du (hau da, " -"direktorioa aldatu edi bistaratze estiloa aldatzean)." - -#: tips:33 -msgid "Largest window size:" -msgstr "Leiho tamaina handiena:" - -#: tips:34 -msgid "%" -msgstr "%" - -#: tips:35 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"Leiho baten tamaina aldatzean erabiliko den tamaina handiena, pantailaren " -"tamaina ehunekotan." - -#: tips:36 -msgid "Window behaviour" -msgstr "Leihoaren Portamoldea" - -#: tips:37 -msgid "Short titlebar flags" -msgstr "Izenburu etiketa laburrak" - -#: tips:38 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Hitzak beharrean hizkiak erabili kudeaketa, Denak eta argazkitxo " -"erakusleentzat izenburu barran." - -#: tips:39 -msgid "Unique windows" -msgstr "Leiho bakarrak" - -#: tips:40 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Direktorio bat irekitzerakoan berau beste leiho batetan irekirik egon ezkero " -"beste leihoa itxi egingo da." - -#: tips:41 -msgid "New window on button 1" -msgstr "Leiho berria 1 botoiaz" - -#: tips:42 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Aukera hau gaitu ezkero saguaren 1. botoiaz (normalean ezkerrekoa) klik " -"egiteandirektorioa leiho berri batetan irekiko da. 3. botoiaz (erdikoa) " -"egitean leihoa berdina erabiliok da." - -#: tips:43 -msgid "Single-click navigation" -msgstr "Klik bakarreko nabigatzea" - -#: tips:44 tips:137 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Aukera hau gaiturik badago elementu batetan klik egiterakoan ireki egingo " -"da. Kontrol sakatu elementua aukeratu nahi ezkero. Ezgaiturik badago klik " -"egiterakoan elementua aukeratua egingo da, irekitzeko klik bikoitza egin " -"beharko da." - -#: tips:45 -msgid "Double-click on background resizes" -msgstr "Atzealdean klik-bikoitzaz tamaina aldatu" - -#: tips:46 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Gaiturik badago leiho atzealdean klik-bikoitza egitean leiho tamaina aldatu " -"egingo da, tresnabarrako tamaina automatiko modu botoia klikatuko bazenu " -"bezala." - -#: tips:47 -msgid "Sorting" -msgstr "Sailkapena" - -#: tips:48 -msgid "Directories come first (for sort by name)" -msgstr "Direktorioak lehenengo (izenezko sailkapenarentzat)" - -#: tips:49 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Gaiturik badago direktorioa beti lehenego bistarazik dira izenez " -"sailkatzerakoan." - -#: tips:50 -msgid "Capitalised names first (for sort by name)" -msgstr "Hizki larrizko izenak lehenengo (izenezko sailkapenarentzat)" - -#: tips:51 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Gaiturik badago hizki larri batez hasten diren fitxategiak minuskulaz hasten " -"direnez aurretik bistaraziko dira." - -#: tips:53 -msgid "Default settings for new windows" -msgstr "Leiho berrientzako lehenetsitako ezarpenak" - -#: tips:54 -msgid "Inherit options from source window" -msgstr "Jatorrizko leihoaren aukerak erabili" - -#: tips:55 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Gaiturik badago leiho berri baten bistartze aukerak jatorrizko leihotik " -"artuko dira posible bada, bestela lehenespenak erabiliko dira." - -#: tips:56 -msgid "View type:" -msgstr "Ikuspegi mota:" - -#: tips:59 -msgid "Sort by:" -msgstr "Sailkapena:" - -#: tips:61 tips:76 -msgid "Type" -msgstr "Mota" - -#: tips:62 -msgid "Date" -msgstr "Data" - -#: tips:64 -msgid "Show hidden files" -msgstr "Ezkutaturiko fitxategiak bistarazi" - -#: tips:65 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Gaiturik badago izena puntu batez hasten duten fixtategiak bistarazi egingo " -"dira, bestela ezkutatu egingo dira." - -#: tips:66 -msgid "Icon View" -msgstr "Ikono Bistaratzea" - -#: tips:67 -msgid "Default size:" -msgstr "Lehenetsiriko tamaina:" - -#: tips:68 -msgid "Huge Icons" -msgstr "Ikono Itzelak" - -#: tips:69 tips:245 -msgid "Large Icons" -msgstr "Ikono Handiak" - -#: tips:70 tips:244 -msgid "Small Icons" -msgstr "Ikono Txikiak" - -#: tips:72 -msgid "Default details:" -msgstr "Lehenetsiriko xehetasunak:" - -#: tips:73 -msgid "No details" -msgstr "Xehetasun gabe" - -#: tips:78 -msgid "Automatic small icons:" -msgstr "Ikono txiki automatikoak:" - -#: tips:79 -msgid "Change at:" -msgstr "Aldaketa hemen:" - -#: tips:81 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Ikono tamaina automatikoa ezarririk dagoenean: Direktorioak elemenetu kopuru " -"hau edo handiago badu Ikono Txikiak erabiltzen bistaraziko dira, bestela " -"Ikono Handiak erabiliko dira. " - -#: tips:82 -msgid "Max width (Large icons):" -msgstr "Zabalera handiena (Ikono Handiak):" - -#: tips:83 tips:86 -msgid "pixels" -msgstr "pixel" - -#: tips:84 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Hau baino testu luzeagoak bi lerrotan bereiziko dira Ikono Handi moduan. " -"Ikono Itzel moduan honen erdia baino luzeagoak direnak erdibituko dira." - -#: tips:85 -msgid "(Small Icons):" -msgstr "(Ikono Txikiak):" - -#: tips:87 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Ikono txiki baten alboko testuaren gehienezko zabalera." - -#: tips:88 -msgid "Order small icons vertically" -msgstr "" - -#: tips:89 -msgid "" -"If this option is on, then small icons are ordered vertically, not " -"horizontally." -msgstr "" - -#: tips:90 -msgid "Order large icons vertically" -msgstr "" - -#: tips:91 -msgid "" -"If this option is on, then large icons are sorted vertically, not " -"horizontally." -msgstr "" - -#: tips:93 -msgid "Show column headings" -msgstr "Zutabe goiburuak erakutsi" - -#: tips:94 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Gaiturik badago zutabe goiburuak bistarazi egingo dira zerrenda ikuspegian." - -#: tips:95 -#, fuzzy -msgid "Show full type" -msgstr "Motaz sailkatu" - -#: tips:96 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" - -#: tips:97 -msgid "Tools/Minibuffer" -msgstr "Lanabesa/Minibuffer-a" - -#: tips:98 -msgid "Toolbar" -msgstr "Tresnabarra" - -#: tips:99 -msgid "Toolbar type:" -msgstr "Tresnabarra mota:" - -#: tips:100 -msgid "No toolbar" -msgstr "Tresnabarrarik ez" - -#: tips:101 -msgid "Icons only" -msgstr "Ikonoak bakarrik" - -#: tips:102 -msgid "Text under icons" -msgstr "Testua ikonoen azpian" - -#: tips:103 -msgid "Text beside icons" -msgstr "Testua ikonoen alboan" - -#: tips:104 -msgid "Show totals of items" -msgstr "Elementu kopurua bistarazi" - -#: tips:105 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Kudeatzaile leihoan bistarazitako fitxategi kopurua erakutsi, baita ere " -"ezkutatutako fitxategi kopurua (baleude). Hautapen bat egina badago, " -"aukeratutako fitxategi kopurua erakutsiko da." - -#: tips:106 -msgid "Select the buttons you want on the bar:" -msgstr "Barran nahi dituzun botoiak hautatu:" - -#: tips:107 -msgid "Width of toolbar sets minimum width of window" -msgstr "Tresnabarra zabalerak leihoaren gutxieneko zabalera ezartzen du" - -#: tips:108 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Kudeatzailearen leiho bakoitza gutzienez tresnabarra bistaratzeko bezain " -"zabala izan behar da" - -#: tips:109 -msgid "Minibuffer" -msgstr "Minibuffer-a" - -#: tips:110 -msgid "Beep if Tab-completion fails" -msgstr "beep egin tabuladore betetzeak huts egin ezkero" - -#: tips:111 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"`Bidea Sartu...' minibuffer-a erabiltzean tabuladorea sakatzean, beep egin " -"ez bada ezer gertatzen (adibidez aukera anitz daudelako eta hurrengo hizkia " -"aldatzen delako)." - -#: tips:112 -msgid "Beep if there are several matches" -msgstr "Parekatzea asko egon ezkero beep egin" - -#: tips:113 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"`Bidea Sartu...' minibuffer-a erabiltzean tabuladorea sakatzean, beep egin " -"fitxategi bat baino gehiagok parekatzea betetzen badute nahiz hizki batenbat " -"gehitu." - -#: tips:116 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Argazkitxoak gaiturik daudenean direktorioko irudi bakoitza kargatu eta bere " -"argazki txiki bat bistarazi egingo da." - -#: tips:117 -msgid "Show image thumbnails" -msgstr "Irudien argazkitxoak bistarazi" - -#: tips:118 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Hau da leiho berrien lehenetsiriko konfigurazioa. Bistarazi menua erabili " -"leiho batetan argazkitxo bistaratzea gaitu edo ezgaitzeko." - -#: tips:119 -#, fuzzy -msgid "Video thumbnails" -msgstr "Argazkitxoak bistarazi" - -#: tips:120 -msgid "Thumbnails cache" -msgstr "Argazkitxo katxea" - -#: tips:121 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Gauzak bizkortzeko sortutako argazkitxoak ~/.thumbnails ezkutatutako " -"direktorioan gordeko dira. Hemen klik egin katxean dauden argazkitxo guztiak " -"ezabatzeko. Beharrezko direnean berriz sortuko dira." - -#: tips:122 tips:195 -msgid "Pinboard" -msgstr "Idazmahaia" - -#: tips:123 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Idazmahaia erabiltzen denean idazmahai atzekaldera fitxategi eta plikazioa " -"arrastatu ditzakezu estekak sortzeko." - -#: tips:124 tips:241 -msgid "Appearance" -msgstr "Itxura" - -#: tips:125 -msgid "Foreground:" -msgstr "Lehen maila:" - -#: tips:126 -msgid "Text shadow:" -msgstr "Testu itzala:" - -#: tips:127 -msgid "Background:" -msgstr "Atzekaldea:" - -#: tips:128 -msgid "No shadow" -msgstr "Testu itzala:" - -#: tips:129 -msgid "Thin" -msgstr "Estua" - -#: tips:130 -msgid "Thick" -msgstr "Lodia" - -#: tips:131 -msgid "Use custom font:" -msgstr "Pertsonalizatutako letra-tipoa erabili:" - -#: tips:132 -msgid "The font used for the text displayed under the icons" -msgstr "Ikonoen azpiko testua bistaratzeko erabiliko den letra-tipoa" - -#: tips:133 -msgid "Fast scaling of images" -msgstr "Irudi eskalatze azkarra" - -#: tips:134 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"Hautatu irudi eskalatze metodo azkar eta geldoan artean. Metodo geldoak " -"emaitza hobeak lortzen ditu." - -#: tips:135 -msgid "Pinboard behaviour" -msgstr "Idazmahai portamoldea" - -#: tips:136 -msgid "Single-click to open" -msgstr "Klik bakarra irekitzeko" - -#: tips:138 -msgid "Keep icons within screen limits" -msgstr "Ikonoak panatalla mugen barnean mantendu" - -#: tips:139 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Gaiturik dagoenean, idazmahaieko ikonoak guztiz pantailaren mugen barnean " -"kokatuko dira, etiketa barne." - -#: tips:140 -msgid "Icon grid step:" -msgstr "Ikono arteko tartea:" - -#: tips:141 -msgid "Fine" -msgstr "Fina" - -#: tips:142 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "2 pixel zabalerako sareta bat erabili ikonoak idazmahaiean ipintzeko." - -#: tips:143 -msgid "Medium" -msgstr "Erdikoa" - -#: tips:144 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "16 pixel zabalerako sareta bat erabili ikonoak idazmahaiean ipintzeko." - -#: tips:145 -msgid "Coarse" -msgstr "Zabala" - -#: tips:146 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "32 pixel zabalerako sareta bat erabili ikonoak idazmahaiean ipintzeko." - -#: tips:147 tips:149 -msgid "Iconified windows" -msgstr "Txikituriko leihoak" - -#: tips:148 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"Leiho kudeatzaile gehienek leihoak ikonotzeko (edo txikitzeko) modu bat dute " -"eta zenbait progrmanak, ROX-Filer barne, erabili daitezke ikonoturiko " -"leihoak ikusteko." - -#: tips:150 -msgid "Show iconified windows" -msgstr "Txikituriko leihoak bistarazi" - -#: tips:151 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Aukera hau gaiturik badago kudeatzaileak ikonoturiko leiho bakoitza " -"idazmahaieko botoi bat bezala bistaraziko da. Leiho kudeatzaile bateragarri " -"bat behar da eta idazmahaia martxan egon behar da." - -#: tips:152 -msgid "Show per workspace" -msgstr "" - -#: tips:153 -#, fuzzy -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Aukera hau gaiturik badago kudeatzaileak ikonoturiko leiho bakoitza " -"idazmahaieko botoi bat bezala bistaraziko da. Leiho kudeatzaile bateragarri " -"bat behar da eta idazmahaia martxan egon behar da." - -#: tips:154 -msgid "Iconify to the" -msgstr "Txikitu hemen:" - -#: tips:155 -msgid "top-left" -msgstr "Ezker-goialdean" - -#: tips:156 -msgid "top-right" -msgstr "Eskuin-goialdean" - -#: tips:157 -msgid "bottom-left" -msgstr "Ezker-behekaldean" - -#: tips:158 -msgid "bottom-right" -msgstr "Eskuin-behekaldean" - -#: tips:159 -msgid ", going" -msgstr ", zentzua: " - -#: tips:160 -msgid "horizontally" -msgstr "horizontala" - -#: tips:161 -msgid "vertically" -msgstr "betikala" - -#: tips:162 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"Batzuetan kudeatzaileak ez du zure idazmahaia aski \"ezagutzen\" eta " -"ikonoturiko leihoak (adbidez) Gnome panel azpian ipini ditzake. Goikaldean " -"edo behekaldean marjin bat ezarri dezakezu ikonoak hor ipintzea ezintzeko. " -"Kudeatzaileak bere panela ezagutzen du." - -#: tips:163 -msgid "Top margin" -msgstr "Goikaldeko marjina" - -#: tips:164 -msgid "Height of no-go area at top of screen." -msgstr "Pantailaren goikaldean erabiltzea ez den nahi altuera." - -#: tips:165 -msgid "Bottom margin" -msgstr "Behekaldeko marjina" - -#: tips:166 -msgid "Height of no-go area at bottom of screen." -msgstr "Pantailaren behekaldean erabiltzea ez den nahi altuera." - -#: tips:167 -msgid "Panels" -msgstr "Panelak" - -#: tips:168 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Panelak pantailaren albo batetan kokaturiko ikono barrak dira. Panelen " -"erabilerari buruz argibide gehiago jasotzeko manuala irakurri." - -#: tips:169 -msgid "Panel style" -msgstr "Panel estiloa" - -#: tips:170 -msgid "Image and text" -msgstr "Irudia eta testua" - -#: tips:171 -msgid "Every panel icon is shown with an image and some text." -msgstr "Paneleko ikono bakoitza irudi bat eta testu batez bistaratzen dira." - -#: tips:172 -msgid "Image only for applications" -msgstr "Irudi bakarrik aplikazioentzat" - -#: tips:173 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "" -"Aplikazioek irudia bakarrik dute, beste guztiak irudi eta testua izango dute." - -#: tips:174 -msgid "Image only" -msgstr "Irudi bakarrik" - -#: tips:175 -msgid "Only the image is shown." -msgstr "Irudia bakarrik bistaratzen da." - -#: tips:176 -msgid "Panel width (thin)" -msgstr "Panel zabalera (estua)" - -#: tips:177 -msgid "(thick)" -msgstr "(lodia)" - -#: tips:178 -msgid "The size of the panels." -msgstr "Panelen tamaina." - -#: tips:179 -msgid "Do not cover panel" -msgstr "Ez panela tapatu" - -#: tips:180 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" -"Leiho kudeatzaileari leihoan guztiz handitzerakoan panela ez estaltzeko " -"eskatu. Leiho kudeatzaile btazuek ez dute hau errespetatzen. Gaiturik ez " -"badago kudeatzaileak pare bat pixel bakarrik eskatzen ditu aute-erakusteak " -"gaituaz bistarazi ahal izateko." - -#: tips:181 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:182 -msgid "Confine to Xinerama monitor" -msgstr "Xinerama monitorean mantendu" - -#: tips:183 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" -"Xinerama bidez monitore anitz konfiguraturik badituzu panela monitore " -"batetan mantentzeko (batetik bestera pasa beharrean) aukera hau erabili." - -#: tips:184 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "Xinerama moduan panelak mantenduko diren monitorea (0-tik zenbaturik)." - -#: tips:185 -msgid "Desktop" -msgstr "" - -#: tips:186 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" - -#: tips:187 -#, fuzzy -msgid "Panel only" -msgstr "Irudi bakarrik" - -#: tips:188 -#, fuzzy -msgid "Only a panel is shown." -msgstr "Irudia bakarrik bistaratzen da." - -#: tips:189 -#, fuzzy -msgid "Pinboard only" -msgstr "Idazmahaia" - -#: tips:190 -#, fuzzy -msgid "Only the pinboard is shown." -msgstr "Irudia bakarrik bistaratzen da." - -#: tips:191 -#, fuzzy -msgid "Panel and pinboard" -msgstr "Idazmahaia" - -#: tips:192 -msgid "Both a panel and a pinboard are shown." -msgstr "" - -#: tips:193 -#, fuzzy -msgid "Panel" -msgstr "Panelak" - -#: tips:194 -msgid "Enter the name of the panel to show here." -msgstr "" - -#: tips:196 -msgid "Enter the name of the pinboard to show here." -msgstr "" - -#: tips:197 -msgid "Changes here take effect the next time the filer is run." -msgstr "" - -#: tips:198 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" - -#: tips:199 -msgid "Action windows" -msgstr "Ekintza leihoak" - -#: tips:200 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Ekintza leihoak ekintza bat atzeko planoan abiarazterakoan\n" -" agertzen dira, fitxategiak kopiatu edo borratu bezalakoetan." - -#: tips:201 -msgid "Auto-start (Quiet) these actions" -msgstr "Ekintza hauek auto-abiarazi (ixilpean)" - -#: tips:203 -msgid "Copy files without confirming first." -msgstr "Lehenik berretsi gabe kopiatu fitxategiak." - -#: tips:205 -msgid "Move files without confirming first." -msgstr "Lehenik berretsi gabe mugitu fitxategiak." - -#: tips:207 -msgid "Create links to files without confirming first." -msgstr "Lehenik berretsi gabe fitxategietara estekak sortu." - -#: tips:209 -msgid "Delete files without confirming first." -msgstr "Lehenik berretsi gabe ezabatu fitxategiak." - -#: tips:210 -msgid "Mount" -msgstr "Muntatu" - -#: tips:211 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Lehenik berretsi gabe fitxategi sistemak muntatu eta desmuntatu." - -#: tips:212 -msgid "Default settings" -msgstr "Lehenetsiriko aukerak" - -#: tips:214 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Lehenik berretsi gabe ezabatu idazketa aurkako babeturiko fitxategiak." - -#: tips:216 -msgid "Don't display so much information in the message area." -msgstr "Mezu eremuan ez argibide gehiegi bistarazi." - -#: tips:218 -msgid "Also change contents of subdirectories." -msgstr "Azpidirektorioen edukia ere eraldatu." - -#: tips:221 -msgid "Drag and Drop" -msgstr "Arrastatu eta Jaregin" - -#: tips:222 -msgid "Dragging to icons" -msgstr "Ikonoak arrastatzen" - -#: tips:223 -msgid "Allow dragging to icons in filer windows" -msgstr "Kudeatzaile leihoetan fitxategiak arrastatzea baimendu" - -#: tips:224 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Gaiturik dagoenean kudeatzaile leiho batetan fitxategi bat direktorio edo " -"programa baten gainera arrastatu dezakezu, Elementu nabarmendu egingo da eta " -"fitxategia askatzerakoan direktorio barnean sartu edo programan kargatuko da." - -#: tips:225 -msgid "Directories spring open" -msgstr "Direktorioen irekiera automatikoa" - -#: tips:226 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Aukera honek, aurrekoa gaiturik egotea behar duena denbora labur batez " -"fitxategi direktorioaren gainean mantendu ondoren 'automatikoki irekitzea' " -"lortzen du." - -#: tips:227 -msgid "Spring delay:" -msgstr "Irekiera automatiko atzerapena:" - -#: tips:228 -msgid "ms" -msgstr "ms" - -#: tips:229 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Aukera honek direktorioa ireki fitxategi bat direktorio baten gainean " -"mantendu behar den denbora ezartzen du, ms-etan. Aurreko aukera gaiturik " -"egon behar da honek eraginik edukitzeko." - -#: tips:230 -msgid "When dragging files with the left mouse button" -msgstr "Saguaren ezkerreko botoiaz fitxategia arrastatzerakoan" - -#: tips:231 tips:235 -msgid "Show a menu of possible actions" -msgstr "Aukera posibleen menu bat bistarazi" - -#: tips:232 -msgid "Copy the files" -msgstr "Fitxategiak kopiatu" - -#: tips:233 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "Oraindik Alt tekla zanpatua mantenduaz menua agertzea lor dezakezu." - -#: tips:234 -msgid "When dragging files with the middle mouse button" -msgstr "Saguaren erdiko botoiaz fitxategiak arrastatzerakoan" - -#: tips:236 -msgid "Move the files" -msgstr "Fitxategiak mugitu" - -#: tips:237 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Oraindik Alt tekla zanpatua mantenduaz eta ezkerro botoiaz menua bistaratzea " -"lor dezakezu." - -#: tips:238 -msgid "Download handler" -msgstr "Deskarga kudeatzailea" - -#: tips:239 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Web nabigatzaile bat edo urruneko beste jatorri batetatik fitxategi bat " -"arrastatzerakoan, programa hau abiaraziko da deskargatzeko. $1 kudeatzailera " -"arrastaturiko URI-a da, eta momentuko direktorioa helburua da. Adibidez:\n" -"xterm -e wget $1" - -#: tips:240 -msgid "Menus" -msgstr "Menuak" - -#: tips:242 -msgid "Size of icons in menus:" -msgstr "Menuetako ikono tamaina:" - -#: tips:243 -msgid "No Icons" -msgstr "Ikono gabe" - -#: tips:246 -msgid "Same as current window" -msgstr "Dagoen leihoaren berdina" - -#: tips:247 -msgid "Same as default" -msgstr "Lehenetsirikoa" - -#: tips:248 -msgid "Behaviour" -msgstr "Portamoldea" - -#: tips:249 -msgid "File menu on right-click" -msgstr "Fitxategi menua eskubiko-klik eginez" - -#: tips:250 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Fixtategia aukeratuak izanez eskubiko klik egiterakoan Fitxategi menua " -"bistarazi menu nagusiaren ordez (menu nagusia Kontrol tekla zanpatuaz " -"bistaraziko da)." - -#: tips:251 -msgid "`Xterm Here' program" -msgstr "`Xterm Hemen' programa" - -#: tips:252 -msgid "The program to launch when you choose `Xterm Here' from the menu." -msgstr "Menuan `Xterm Hemen' aukeratzean abiaraziko den programa." - -#: tips:253 -msgid "Keyboard shortcuts" -msgstr "Laster-teklak" - -#: tips:255 -msgid "MIME types" -msgstr "MIME motak" - -#: tips:256 -#, fuzzy -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Fitxategi kudeatzaileak arau talde bat erabiltzen du fitxategi arrunt " -"bakoitzaren MIME mota zuzena atzemateko, eta gero ikonobat aukeratzen du " -"mota hau bistaratzeko. MIME-Editor aplikazioa erabili fitxategi motak " -"atzemateko erabiltzen diren arau taldea aldatzeko:\n" -"\n" -"http://rox.sourceforge.net/mime_editor.html" - -#: tips:257 -msgid "Edit MIME rules" -msgstr "" - -#: tips:258 -#, fuzzy -msgid "Themes" -msgstr "Data" - -#: tips:259 -msgid "Icon theme" -msgstr "Ikono gaia" - -#: tips:260 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Gaiak ~/.icons direktorian kokatu beharko lirateke." - -#: tips:261 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"`Ikonoa Ezarri...' erabili MIME mota bakoitzerako ikonoa ezartzeko. Kontutan " -"izan modu honetan aukeratutako ikonoak aukeratutako gaiaren ikonoak aldatuko " -"dituztela." - -#: tips:262 -msgid "Colours" -msgstr "Koloreak" - -#: tips:263 -msgid "File type colours" -msgstr "Fitxategi mota koloreak" - -#: tips:264 -msgid "Colour files based on their types" -msgstr "Fitxategiak moten arabera kolorezturik" - -#: tips:265 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "" -"Fitxategi izenak (eta xehetasuna) fitxategi motaren arabera koloreztuko dira." - -#: tips:266 -msgid "Directory:" -msgstr "Direktorioa:" - -#: tips:267 -msgid "Regular file:" -msgstr "Fitxategi arrunta:" - -#: tips:268 -msgid "Pipe:" -msgstr "Tutua:" - -#: tips:269 -msgid "Socket:" -msgstr "Socket-a:" - -#: tips:271 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Errorea, ez dagoen fitxategi batetara loturiko esteka edo kudeatzaileak " -"ikusteko baimenik ez duen fitxategia bezala." - -#: tips:272 -msgid "Character device:" -msgstr "Karaktere gailua:" - -#: tips:273 -msgid "Block device:" -msgstr "Bloke gailua:" - -#: tips:274 -msgid "Door:" -msgstr "Door:" - -#: tips:275 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Door fitxategia socket edo tutuen antzekoak dira, eta SOlaris-en bakarrik " -"aurki daitezke." - -#: tips:276 -msgid "Executable file:" -msgstr "Fitxategi abiarazgarria:" - -#: tips:277 -msgid "Application directory:" -msgstr "Aplikazio direktorioa:" - -#: tips:278 -msgid "Unknown type:" -msgstr "Mota ezezaguna:" - -#: tips:279 -msgid "Compatibility" -msgstr "Bateragarritasuna" - -#: tips:280 -msgid "Window manager problems" -msgstr "Leiho kudeatzaile arazoak" - -#: tips:281 -msgid "Override window manager control of the pinboard and panels" -msgstr "" -"Leiho kudeatzaileak idazmahai eta panelen gain duen kontrola albo batetara " -"utzi" - -#: tips:282 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Zenbait leiho kudeatzaileek ez dute \"Extended Window Manager Hints\" " -"sistema onartzen, orduan idazmahaia eta panelak leiho arruntzak bezala " -"erabiltzen dituzte. Hau gaitu ezazu idazmahaeian klikatzerakoan aurrera " -"etortzen bada, izenburu barra eta beste batzu leihoen inguruan agertu edo " -"panel edo idazmahaia leiho aukeraketan agertzen badira." - -#: tips:283 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "" -"Pantailaren atzekaldean eginiko klik guztiak leiho kudeatzaileari bidali" - -#: tips:284 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normalean idazmahaiaren atzekaldean eskubiko botoiaz klikatzerakoan " -"idazmahai menu bat irekiko da eta ezkerro botoiaz aukera ezabatuko du. Hau " -"gaitu gertaerak leiho kudeatzailera bidaltzeko. Ikono gaineko klik-ak ez " -"dira bidaliko." - -#: tips:285 -msgid "Blackbox root menus hack" -msgstr "Blackbox erro menuentzat 'hack'-a" - -#: tips:286 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox eta antzeko leiho kudeatzaileak oraindik ez dira guztiz " -"bateragarriak ROX_Filer idazmahaiarekin. Aukera honek zenbait konponbide " -"gaitzen ditu. Hau beharrezko izan ez dedin leiho kudeatzaile hauek bere " -"portamoldea hurrengo bertsioetarako aldatzea espero da." - -#: tips:287 -msgid "Panel is a 'dock'" -msgstr "Panela 'dock' bat da" - -#: tips:288 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" -"Ezgaitu aukera hau zure desioen kontra panela beste aplikazioen gainetik " -"agertzen bada. Berrabiarazi egin behar da." - -#: tips:289 -msgid "Drag and drop" -msgstr "Arratratu eta jaregin" - -#: tips:290 -msgid "Don't use hostnames" -msgstr "Ez erabili ostalari izenak" - -#: tips:291 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Aplikazio zahar batzuk ez dute XDND guztiz onartzen eta aukera hau " -"ezgaiturik izatea behar dezakete. Erabil ezazu fitxategiak aplikazio " -"batetara mugitzean markatzailearen gainean + ikur bat agertu baina " -"asakatzerakoan ez badu funtzionatzen." - -#: tips:292 -msgid "Extended attributes" -msgstr "Atributu hedatuak" - -#: tips:293 -msgid "Don't use extended attributes" -msgstr "Ez erabili atributu hedatuak" - -#: tips:294 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"Aukera honek sistema eragile eta fitxategi sistema berrienek erabili " -"ditzaketen atributu hedatuak ezgaituko ditu. Aukera hau ezarriarekin 'Mota " -"Ezarri' menu sarrera ezgaiturik dago, fitxategiaren MIME mota fitxategiaren " -"izenean bakarrik oinarrituko da eta propietate leihoak ez du aukera hedatuen " -"argibiderik emango." - -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Errorea MIME databasea kargatzerakoan:\n" -#~ "%s" - -#~ msgid "File '%s' corrupted!" -#~ msgstr "'%s' fitxategi hondaturik dago!" - -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "~/.mime direktorioa lekuz aldatua izan da. Orain ~/.local/share/mime izan " -#~ "behako zen. Leku honetara mugitu behar duzu (eta ~/.mime-tik honeraino " -#~ "esteka sinoliko bat sortu aplikazio zaharrentzat)." - -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "MIME database estandarra (0.9 bertsio edo berriagoa) ez da aurkitu. " -#~ "Fitxategi kudeataileak ez ditu fitxategi mota zuzenak bistaraziko zenbait " -#~ "fitxategi motentzat. 'shared-mime-info-0.9' paketea deskargatu eta " -#~ "instalatu beharko zenuke. Deskargatzeko:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "Dagoeneko pakete hau instalatu baduzu, egiazta ezazu baimenek fitxategiak " -#~ "irakurtzen uzten duten (/usr/local/share/mime/globs edo /usr/share/mime/" -#~ "globs begiratu)." - -#~ msgid "Icon '%s' not present in theme" -#~ msgstr "'%s' ikonoa ez dago gai honetan" - -#~ msgid "Executable files" -#~ msgstr "Fitxategi abiarazgarriak" - -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "Ezagututako luzapenetan abiarazte bit-ari jaramonik ez egin" - -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Fixtategi batek luzapen ezagun bat badu ('.gif' adibidez) abiarazte bit-a " -#~ "alde batetar utziko da. Windows motako fitxategi sistema batetako " -#~ "fitxategiak badituzu oso erabilgarri programa abiarazgarriak bezala " -#~ "bistaratzen ari bait dira." diff --git a/ROX-Filer/src/po/fi.po b/ROX-Filer/src/po/fi.po deleted file mode 100644 index 2fe0c7ff..00000000 --- a/ROX-Filer/src/po/fi.po +++ /dev/null @@ -1,4761 +0,0 @@ -# Finnish messages for ROX-Filer. -# Copyright (C) 2005 Free Software Foundation, Inc. -# Jari Rahkonen , 2005. -# -msgid "" -msgstr "" -"Project-Id-Version: 1.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: 2005-01-27 14:01+0200\n" -"Last-Translator: Jari Rahkonen \n" -"Language-Team: Finnish\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Hiljaa" - -#: abox.c:228 -msgid "Quiet" -msgstr "Hiljaa" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Älä pyydä vahvistusta jokaiselle tapahtumalle" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Nimi" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Hakemisto" - -#: abox.c:550 -msgid "Expression:" -msgstr "Lauseke:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "" - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "" - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "" - -#: action.c:188 -msgid "Find expression reference" -msgstr "Etsi lausekkeella" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Pikaohje\n" -"Laita vain etsimäsi tiedoston nimi heittomerkkeihin:\n" -"'index.html' (löytääksesi tiedoston nimeltä 'index.html')\n" -"\n" -"Esimerkkejä\n" -"'*.htm', '*.html' (löytää HTML-tiedostot)\n" -"IsDir 'lib' (löytää 'lib'-nimiset hakemistot)\n" -"IsReg 'core' (löytää tavallisen tiedoston 'core')\n" -"! (IsDir, IsReg) (ei ole hakemisto, eikä tavallinen tiedosto)\n" -"mtime after 1 day ago and size > 1Mb (suuri ja muokattu vuorokauden " -"sisään)\n" -"'CVS' prune, isreg (tavallinen tiedosto, ei CVS-hakemistossa)\n" -"IsReg system(grep -q fred \"%\") (sisältää sanan 'fred')\n" -"\n" -"Yksinkertaiset testit\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (tyypit)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(oikeudet)\n" -"IsEmpty, IsMine\n" -"Heittomerkeillä ympäröity merkkijono on etsittävä shell-tyyppinen\n" -"jokerimerkkijono. Jos se sisältää kauttaviivan, haku koskee täyttä\n" -"polkua; muutoin haetaan ainoastaan lehdeltä.\n" -"\n" -"Vertailut\n" -"<, <=, =, !=, >, >=, After, Before (vertaile kahta " -"arvoa)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (tiedostokokoja)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (aikoja)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(arvoja)\n" -"\n" -"Erityistapaukset\n" -"system(komento) (tosi, jos 'komento' palauttaa nollan;\n" -"%-merkki 'komennossa' korvataan nykyisen tiedoston polulla)\n" -"prune (epätosi, ja jättää hakemiston sisällön haun ulkopuolelle)." - -#: action.c:246 -msgid "Change permissions reference" -msgstr "Vaihda oikeusviite" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Tavallisesti voit vain valita komennon valikosta (napsauta nuolta\n" -"komentolaatikon vieressä). Joskus tämä ei riitä...\n" -"\n" -"Komennon muoto on: MUUTOS, MUUTOS, ...\n" -"Jokainen MUUTOS on: KUKA MITEN OIKEUDET\n" -"KUKA on joku kirjaimien u, g ja o yhdistelmä, " -"joka määrää muutetaanko\n" -"u=Käyttäjän (omistajan), g=ryhmän, vai o=muiden " -"oikeuksia.\n" -"HOW on +, - tai = lisätäksesi, poistaaksesi,tai " -"määrätäksesi oikeudet.\n" -"PERMISSIONS on joku kirjainten rwxXstugo yhdistelmä\n" -"\n" -"Sulkeissa oleva teksti ja välilyönnit jätetään huomiotta.\n" -"\n" -"Esimerkkejä\n" -"u+rw: tiedoston omistaja saa luku- ja kirjoitusoikeudet\n" -"g=u: ryhmä saa samat oikeudet kuin käyttäjä\n" -"o=u-w: muut saavat samat oikeudet, kuin käyttäjä, mutta ilman " -"kirjoitusoikeutta\n" -"a+x: kaikki saavat suoritusoikeudet - sama kuin ugo+x\n" -"a+X: hakemistojen selausoikeus kaikille; tiedostojen suoritusoikeudet " -"muutetaan koskemaan kaikkia\n" -"u+rw, go+r: kaksi komentoa kerralla!\n" -"u+s: aseta SetUID-bitti - ei useinkaan vaikuta skriptitiedostoihin\n" -"755: aseta oikeudet suoraan\n" -"\n" -"Lisätietoja saat chmod-käskyn man-sivulta." - -#: action.c:298 -msgid "Set type reference" -msgstr "Aseta tyyppiviite" - -#: action.c:309 -#, fuzzy -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Tavallisesti ROX-Filer päättelee tavallisen tiedoston\n" -"tyypin vertaamalla sen nimeä kaavaan. Vaihtaaksesi\n" -"tiedostotyyppiä sinun täytyy nimetä se uudelleen.\n" -"\n" -"Uudemmat tiedostojärjestelmät tukevat 'Extended\n" -"Attributes'-ominaisuutta, jonka avulla tiedoston ohessa\n" -"voi säilyttää lisätietoa nimettyinä parametreina. ROX-Filer\n" -"käyttää 'user.mime_type'-attribuuttia tiedostotyyppien\n" -"tallentamiseen.\n" -"\n" -"Tiedostotyyppejä tuetaan ainoastaan tavallisille tiedostoille,\n" -"ei hakemistoille, laitteille, putkille ja vastakkeille, ja silloinkin\n" -"ainoastaan tietyissä tiedostojärjestelmissä ja kun\n" -"käyttöjärjestelmä tukee niitä.\n" -"\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Prosessi päätetty.\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Yksi virhe tapahtui.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Tapahtui %d virhettä.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "VIRHE luettaessa" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Valmis\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "VIRHE" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Kyllä" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Ei" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Pyydetään lapsiprosessia päättämään toimintansa...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Yritetään tappaa karannut prosessi...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Lasketaanko kohteen %s sisältö?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Poistetaanko %s'%s'?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "KIRJOITUSSUOJATTU" - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Poistetaan '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Hakemisto '%s' poistettu\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Poistetaanko media '%s'?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Poista media '%s'\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"Poistaminen epäonnistui\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?Tarkistetaanko '%s'?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Hakuehto ei kelpaa - vaihda se ja yritä uudelleen\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(kun kohdetta '%s' tarkistetaan)\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Vaihda oikeudet kohteelle '%s'?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Vaihdetaan oikeudet kohteelle '%s'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Oikeuksien muutoskomento ei kelpaa - muuta sitä ja yritä uudelleen\n" - -#: action.c:1207 action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Vaihdetaanko tiedoston '%s' tyyppi'?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!Tyyppi ei kelpaa - vaihda se ja kokeile uudelleen\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Vaihdetaan tiedoston '%s' tyypiksi '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' on jo olemassa - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "yhdistä sisällöt" - -#: action.c:1328 -msgid "overwrite" -msgstr "korvaa" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Yritetään kopioida siitä huolimatta...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Kopioidaanko %s kohteeseen %s?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Kopioidaan %s kohteeseen %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!VIRHE: Kohde on jo olemassa, mutta ei ole hakemisto\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Tiedoston '%s' kopiointi epäonnistui\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' on jo olemassa - korvataanko?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Yritetään siirtää kaikesta huolimatta...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Siirretäänkö %s kohteeseen %s?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Siirretään %s kohteeseen %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"!VIRHE: Tiedoston %s siirto kohteeseen %s epäonnistui\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!VIRHE: Kohdetta ei voi kopioida itseensä\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!VIRHE: Kohdetta ei voi siirtää/nimetä itsensä päälle\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Linkitetään %s nimellä %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Linkitetäänkö %s nimellä %s?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Liitetään %s\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Irrotetaan %s\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?Liitetäänkö %s tiedostojärjestelmään?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?Irrotetaanko %s tiedostojärjestelmästä?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Liittäminen epäonnistui\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Irrottaminen epäonnistui\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(näyttää ainakin olevan nyt liitetty)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Yhteensä: %s (" - -#: action.c:1704 -msgid "file" -msgstr "tiedosto" - -#: action.c:1704 -msgid "files" -msgstr "tiedostoa" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "ei hakemistoja)\n" - -#: action.c:1712 -msgid "directory" -msgstr "hakemisto" - -#: action.c:1713 -msgid "directories" -msgstr "hakemistoa" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Ei liitoskohtia valittuna!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Uusi haku?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' on symbolinen linkki\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Sinun täytyy valita hakukohteet" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Etsi" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Sinun täytyy valita laskettavat kohteet" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Levyn Käyttö" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Liitä / Irrota" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "ROX-Filer ei vielä tue liitoskohtia järjestelmässäsi. Pahoittelen." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Poista" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Pakota" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Poista kirjoitussuojatut kohteet pyytämättä vahvistusta." - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Suppea" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Kirjaa vain poistettavat hakemistot" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "Sinun täytyy valita kohteet, joiden oikeuksia haluat vaihtaa" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Anna suoritus/selausoikeudet)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Poista suoritus/selausoikeudet)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Anna omistajalle luku- ja kirjoitusoikeudet)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Henkilökohtainen - vain omistajan saatavilla)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Julkisesti saatavilla, ei kirjoitettavissa)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Oikeudet" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Älä luettele käsiteltyjä tiedostoja" - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Rekursiivinen" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Muuta myös alihakemistojen sisältöä" - -#: action.c:2123 -msgid "Command:" -msgstr "Komento:" - -#: action.c:2151 -msgid "You need to select the items whose type you want to change" -msgstr "Sinun täytyy valita kohteet, joiden tyypin haluat vaihtaa" - -#: action.c:2164 -msgid "Set type" -msgstr "Aseta tyyppi" - -#: action.c:2178 -msgid "Change contents of subdirectories" -msgstr "Muuta alihakemistojen sisältöä" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Tyyppi:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopioi" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Uudemmat" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Korvaa ainoastaan, jos lähdetiedosto on kohdetta uudempi." - -#: action.c:2228 -msgid "Only log directories as they are copied" -msgstr "Kirjaa vain kopioitavat hakemistot" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Siirrä" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "Älä kirjaa jokaista tiedostoa siirrettäessä" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Luo linkki" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "Poista media" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Kohteiden, kuten " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Kohteen " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Kohteiden " - -#: action.c:2385 -msgid " and " -msgstr " sekä " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" poistaminen vaikuttaa kohteisiin työpöydällä tai paneelissa - poistetaanko " -"se varmasti?" - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" poistaminen vaikuttaa kohteisiin työpöydällä tai paneelissa - poistetaanko " -"ne varmasti?" - -#: appmenu.c:198 -msgid "" -msgstr "" - -#: appmenu.c:295 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Luo tähän hakemistoon symboliset linkit haluamiisi ohjelmiin. Ne näkyvät " -"valikossa kaikille tiedostoille, joiden tyyppi on '%s/%s'." - -#: appmenu.c:339 menu.c:234 -msgid "Customise Menu..." -msgstr "Mukauta Valikkoa..." - -#: appmenu.c:396 menu.c:251 toolbar.c:159 -msgid "Help" -msgstr "Ohje" - -#: bookmarks.c:147 -msgid "Path" -msgstr "Polku" - -#: bookmarks.c:155 -msgid "Title" -msgstr "Otsake" - -#: bookmarks.c:304 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Ei voi luoda kirjanmerkkiä etäresurssille '%s'\n" - -#: bookmarks.c:312 bookmarks.c:630 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' ei ole hakemisto" - -#: bookmarks.c:518 -msgid "You should first select some rows to delete" -msgstr "Sinun pitää ensin valita rivejä poistettavaksi" - -#: bookmarks.c:542 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Aseta osoitin listan kohteen päälle siirtääksesi sitä" - -#: bookmarks.c:562 -msgid "This item is already at the end" -msgstr "Kohde on jo viimeisenä" - -#: bookmarks.c:636 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Ei voi luoda kirjanmerkkiä etäkansioille, kuten '%s'" - -#: bookmarks.c:778 -msgid "Add New Bookmark" -msgstr "Lisää Kirjanmerkki" - -#: bookmarks.c:785 -msgid "Edit Bookmarks" -msgstr "Muokkaa Kirjanmerkkejä" - -#: bookmarks.c:790 -msgid "Recently Visited" -msgstr "Viimeksi Avatut" - -#: bulk_rename.c:68 -msgid "Bulk rename files" -msgstr "Massanimeä tiedostoja" - -#: bulk_rename.c:71 -msgid "Reset" -msgstr "Palauta" - -#: bulk_rename.c:76 -#, fuzzy -msgid "Make the New column a copy of Old" -msgstr "Kopioi Ennen-sarake Jälkeen-sarakkeeseen" - -#: bulk_rename.c:81 -msgid "_Rename" -msgstr "_Nimeä" - -#: bulk_rename.c:94 -msgid "Replace:" -msgstr "Korvaa:" - -#: bulk_rename.c:101 -#, fuzzy -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Tämä on etsittävä säännöllinen lauseke.\n" -"^ vastaa tiedostonimen alkua\n" -"$ vastaa loppua\n" -"\\. vastaa pistettä\n" -"\\.htm$ vastaa osaa '.htm' esim. tiedostossa 'index.html'" - -#: bulk_rename.c:109 -msgid "With:" -msgstr "Tällä:" - -#: bulk_rename.c:116 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" -"Ensimmäinen täsmäävä osa tiedostonimessä korvataan tällä merkkijonolla. " -"Erikoismerkkejä ei ole." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Käytä" - -#: bulk_rename.c:123 -#, fuzzy -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"Etsi ja korvaa Jälkeen-sarakkeessa. Tiedostoja ei nimetä uudelleen, ennen " -"kuin napsautat alla olevaa Nimeä-painiketta." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "" - -#: bulk_rename.c:151 -#, fuzzy -msgid "New name" -msgstr "Nimeä uudelleen" - -#: bulk_rename.c:259 -#, fuzzy -msgid "No strings (in the New column) matched the given expression" -msgstr "Lauseketta vastaavaa merkkijonoa ei löytynyt (Jälkeen-sarakkeesta)" - -#: bulk_rename.c:264 -msgid "One name matched, but the result was the same" -msgstr "Yksi nimi vastasi hakua, mutta se ei muuttunut" - -#: bulk_rename.c:267 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d nimeä vastasi hakua, mutta yksikään niistä ei muuttunut" - -#: bulk_rename.c:293 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" -"Syötä haettava säännöllinen lauseke sekä merkkijono, jolla vastaavuudet " -"korvataan." - -#: bulk_rename.c:310 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (>> '%s')" - -#: bulk_rename.c:343 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Tiedosto nimeltään '%s' on jo olemassa. Peruutetaan massanimeäminen." - -#: bulk_rename.c:348 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Tiedostonimen '%s' vaihtaminen '%s':ksi epäonnistui:\n" -"%s\n" -"Peruutetaan massanimeäminen." - -#: bulk_rename.c:410 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Tiedosto nimeltä '%s' on jo olemassa" - -#: bulk_rename.c:421 -#, fuzzy, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"Jotkin Jälkeen-sarakkeen nimistä sisältävät /-merkkejä ('%s'). Tämän vuoksi " -"tiedostot päätyvät eri hakemistoihin. Jatketaanko?" - -#: bulk_rename.c:436 -msgid "None of the names have changed. Nothing to do!" -msgstr "Nimet eivät muuttuneet. Ei mitään tehtävää!" - -#: choices.c:428 -#, fuzzy -msgid "Choices migration" -msgstr "Kiina (perinteinen)" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -msgstr "" - -#: choices.c:447 -#, c-format -msgid "%d directories could not be migrated" -msgstr "" - -#: dir.c:982 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Hakemiston tila ei saatavilla: %s" - -#: dir.c:991 -#, c-format -msgid "Can't open directory: %s" -msgstr "Ei voi avata hakemistoa: %s" - -#: display.c:588 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) epäonnistui: %s" - -#: dnd.c:126 -msgid "Link (relative)" -msgstr "" - -#: dnd.c:127 -msgid "Link (absolute)" -msgstr "" - -#: dnd.c:426 -msgid "Internal error - bad info type" -msgstr "Sisäinen virhe - epäkelpo infotyyppi" - -#: dnd.c:565 -msgid "Drag a directory here to bookmark it." -msgstr "Raahaa hakemisto tähän luodaksesi kirjanmerkin." - -#: dnd.c:580 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS-protokollavirhe: lehtinimi ei saa sisältää merkkiä '/'\n" - -#: dnd.c:605 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"XdndDirectSave0-kohde annettu, mutta atomi XdndDirectSave0 (tyyppiä text/" -"plain) ei sisältänyt lehtinimeä\n" - -#: dnd.c:618 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "" -"Pahoittelen - Kohteeni täytyy olla tyyppiä text/uri-list tai XdndDirectSave0." - -#: dnd.c:621 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Pahoittelen - Kohteeni täytyy olla tyyppiä text/uri-list tai application/" -"octet-stream." - -#: dnd.c:691 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Eräiden kohteiden lisääminen työpöydälle epäonnistui, koska ne ovat " -"etäkoneella. Esimerkiksi:\n" -"\n" -"%s" - -#: dnd.c:766 -msgid "Unknown target" -msgstr "Tuntematon kohde" - -#: dnd.c:799 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "" -"Etäsovellus ei voi, tai ei halua lähettää minulle tietoja - pahoittelen" - -#: dnd.c:812 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "XDS-protokollavirhe: palautekoodin pitäisi olla 'S', 'F' tai 'E'\n" - -#: dnd.c:845 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Pahoittelen, en voi näyttää toimintovalikkoa etätiedostolle / raa'alle " -"datalle." - -#: dnd.c:861 -msgid "UntitledData" -msgstr "NimetönData" - -#: dnd.c:888 -#, c-format -msgid "Error saving file: %s" -msgstr "Virhe tallennettaessa tiedostoa: %s" - -#: dnd.c:961 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "text/uri-list ei sisällä yhtään URI:a (ei mitään tehtävää!)" - -#: dnd.c:993 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "Etäkoneelta ei saada tietoa (ei application/octet-stream:ia tarjolla)" - -#: dnd.c:1016 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Jotkut tiedostoista ovat eri koneella - ne jätetään huomiotta - pahoittelen" - -#: dnd.c:1023 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Yksikään näistä tiedostoista ei ole tällä koneella - kohteena ei voi olla " -"useita etätiedostoja - pahoittelen." - -#: dnd.c:1036 -msgid "Unknown action requested" -msgstr "Tuntematon toiminto pyydetty" - -#: dnd.c:1044 -#, c-format -msgid "Error getting file list: %s" -msgstr "Virhe noudettaessa tiedostolistaa: %s" - -#: dropbox.c:114 -msgid "Show" -msgstr "Näytä" - -#: dropbox.c:120 -msgid "Show the current choice in a filer window" -msgstr "Näytä nykyinen valinta tiedostonhallintaikkunassa" - -#: dropbox.c:174 -msgid "" -msgstr "" - -#: dropbox.c:239 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"En voi näyttää asetettua kohdetta, koska mitään ei ole asetettu. Raahaa " -"jotain päälleni!" - -#: dropbox.c:263 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "" -"Anteeksi, mutta sinun pitää vetää tarkalleen yksi tiedosto pudotusalueelle." - -#: dropbox.c:273 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "" -"Anteeksi, mutta kohde '%s' ei kelpaa, koska se ei ole paikallinen tiedosto." - -#: dropbox.c:280 pinboard.c:853 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Kohde '%s' ei ole saatavilla:\n" -"%s" - -#: filer.c:453 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Virhe lukiessa kohdetta '%s:\n" -"%s\n" - -#: filer.c:457 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Virhe lukiessa kohdetta '%s:\n" -"%s" - -#: filer.c:562 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Irrotetaanko laite tiedostojärjestelmästä?\n" -"\n" -"Tämä tekee tallennuslaitteen poistamisesta turvallisen." - -#: filer.c:566 -msgid "No change" -msgstr "Ei muutosta" - -#: filer.c:572 menu.c:862 -msgid "Unmount" -msgstr "Irrota" - -#: filer.c:669 -msgid "Directory missing/deleted" -msgstr "Hakemisto puuttuu/poistettu" - -#: filer.c:1031 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Ryhmää %s ei ole asetettu. Valitse joitain tiedostoja ja paina Ctrl+%s " -"asettaaksesi ryhmän. Paina pelkästään %s valitaksesi tiedostot myöhemmin " -"uudelleen.\n" -"Varmista, että NumLock on päällä, jos käytät numeronäppäimistöä." - -#: filer.c:1267 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Hakemisto '%s' ei ole saatavilla" - -#: filer.c:1419 -#, c-format -msgid "Directory '%s' not found." -msgstr "Hakemistoa '%s' ei löytynyt." - -#: filer.c:1713 -msgid "Cancel" -msgstr "Peruuta" - -#: filer.c:2002 -msgid "S" -msgstr "L" - -#: filer.c:2004 -msgid "T" -msgstr "P" - -#: filer.c:2026 -msgid "Scanning, " -msgstr "Luetaan, " - -#: filer.c:2028 -msgid "Thumbs, " -msgstr "Pienoiskuvat, " - -#: filer.c:2304 -msgid "Symbolic link to " -msgstr "Symbolinen linkki kohteeseen" - -#: filer.c:2335 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Tiedostonimen koodaus ei ole UTF-8. Se pitäisi nimetä uudelleen.\n" - -#: filer.c:2643 menu.c:1989 -msgid "Item no longer exists!" -msgstr "Kohdetta ei enää ole!" - -#: filer.c:3327 -msgid "Select display properties to save" -msgstr "Valitse tallennettavat näkymäasetukset" - -#: filer.c:3334 -msgid "Position" -msgstr "Sijainti" - -#: filer.c:3339 toolbar.c:135 toolbar.c:139 tips:63 -msgid "Size" -msgstr "Koko" - -#: filer.c:3344 -msgid "Show hidden" -msgstr "Näytä piilotetut" - -#: filer.c:3350 -msgid "Display style" -msgstr "Näkymä" - -#: filer.c:3356 -msgid "Sort type and order" -msgstr "järjestämistapa" - -#: filer.c:3361 toolbar.c:143 -msgid "Details" -msgstr "Tiedot" - -#: filer.c:3366 tips:114 tips:115 -msgid "Thumbnails" -msgstr "Pienoiskuvat" - -#: filer.c:3372 -msgid "Filter" -msgstr "Suodatin" - -#: find.c:487 -msgid "And" -msgstr "Ja" - -#: find.c:511 -msgid "Not" -msgstr "Ei" - -#: find.c:554 -msgid "system" -msgstr "järjestelmä" - -#: find.c:562 -msgid "prune" -msgstr "karsi" - -#: find.c:650 -msgid "After" -msgstr "Jälkeen" - -#: find.c:652 -msgid "Before" -msgstr "Ennen" - -#: find.c:746 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:748 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:750 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:752 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:754 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:756 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:758 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:760 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:762 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:764 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:766 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:768 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:770 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:772 -msgid "IsWriteable" -msgstr "IsWriteable" - -#: find.c:774 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:776 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:778 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:906 -msgid "Now" -msgstr "Nyt" - -#: find.c:919 -msgid "Byte" -msgstr "Tavu" - -#: find.c:919 -msgid "Bytes" -msgstr "Tavua" - -#: find.c:921 -msgid "Kb" -msgstr "Kb" - -#: find.c:921 -msgid "K" -msgstr "K" - -#: find.c:923 -msgid "Mb" -msgstr "Mb" - -#: find.c:923 -msgid "M" -msgstr "M" - -#: find.c:925 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "G" -msgstr "G" - -#: find.c:927 -msgid "Sec" -msgstr "Sekunti" - -#: find.c:927 -msgid "Secs" -msgstr "Sekuntia" - -#: find.c:929 -msgid "Min" -msgstr "Minuutti" - -#: find.c:929 -msgid "Mins" -msgstr "Minuuttia" - -#: find.c:931 -msgid "Hour" -msgstr "Tunti" - -#: find.c:931 -msgid "Hours" -msgstr "Tuntia" - -#: find.c:933 -msgid "Day" -msgstr "Päivä" - -#: find.c:933 -msgid "Days" -msgstr "Päivää" - -#: find.c:935 -msgid "Week" -msgstr "Viikko" - -#: find.c:935 -msgid "Weeks" -msgstr "Viikkoa" - -#: find.c:937 -msgid "Year" -msgstr "Vuosi" - -#: find.c:937 -msgid "Years" -msgstr "Vuotta" - -#: find.c:946 -msgid "Ago" -msgstr "Sitten" - -#: find.c:948 -msgid "Hence" -msgstr "Alkaen" - -#: find.c:963 -msgid "atime" -msgstr "atime" - -#: find.c:965 -msgid "ctime" -msgstr "ctime" - -#: find.c:967 -msgid "mtime" -msgstr "mtime" - -#: find.c:969 -msgid "size" -msgstr "koko" - -#: find.c:971 -msgid "inode" -msgstr "inode" - -#: find.c:973 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:975 -msgid "uid" -msgstr "uid" - -#: find.c:977 -msgid "gid" -msgstr "gid" - -#: find.c:979 -msgid "blocks" -msgstr "lohkoa" - -#: gtksavebox.c:251 -msgid "Save As:" -msgstr "Tallenna nimellä:" - -#: gtksavebox.c:397 -msgid "Unnamed" -msgstr "Nimeämätön" - -#: gtksavebox.c:473 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"Etäsovellus haluaa käyttää Direct Save-toimintoa, mutta en voi lukea " -"XdndDirectSave0(tyyppiä text/plain) -ominaisuutta.\n" - -#: gtksavebox.c:598 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Raahaa kuvake hakemistonäkymään\n" -"(tai syötä täydellinen polku)" - -#: gui_support.c:331 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:400 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"Yritetään lukea XML-tiedosto tekstitiedostona. Tiedosto '%s' voi olla " -"turmeltunut." - -#: gui_support.c:417 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and click on Save.\n" -"Further errors will be ignored." -msgstr "" -"Virhe tiedostossa '%s' rivillä %d: \n" -"\"%s\"\n" -"Tämä voi johtua ROX-Filerin päivittämisestä vanhemmasta versiosta. Avaa " -"Asetukset-ikkuna ja paina Tallenna.\n" -"Lisävirheet ohitetaan." - -#: gui_support.c:1000 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Virheellinen tai puuttuva rivinvaihto text/uri-list -datassa" - -#: gui_support.c:1332 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Tiedoston '%s' avaus epäonnistui: %s" - -#: gui_support.c:1376 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"Kuvan '%s' lataaminen epäonnistui: syy tuntematon, luultavasti turmeltunut " -"kuvatiedosto" - -#: gui_support.c:1427 -msgid "" -"This program cannot be run, as the 0launch command is not available. It can " -"be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" - -#: i18n.c:38 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Huomaa, että sinun täytyy tallentaa asetukset ja käynnistää " -"tiedostonhallinta uudelleen, jotta uusia kieliasetuksia käytetään joka " -"paikassa." - -#: icon.c:78 -msgid "(click to set)" -msgstr "(napsauta asettaaksesi)" - -#: icon.c:133 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:134 menu.c:252 -msgid "About ROX-Filer..." -msgstr "Tietoja ROX-Fileristä..." - -#: icon.c:135 menu.c:253 -msgid "Show Help Files" -msgstr "Näytä Ohjetiedostot" - -#: icon.c:136 menu.c:254 -msgid "Manual" -msgstr "Käsikirja" - -#: icon.c:138 menu.c:230 -msgid "Options..." -msgstr "Asetukset..." - -#: icon.c:139 menu.c:239 -msgid "Home Directory" -msgstr "Kotihakemisto" - -#: icon.c:140 icon.c:1340 menu.c:206 type.c:212 -msgid "File" -msgstr "Tiedosto" - -#: icon.c:141 menu.c:212 menu.c:875 -msgid "Shift Open" -msgstr "Shift+Avaa" - -#: icon.c:142 menu.c:218 -msgid "Properties" -msgstr "Ominaisuudet" - -#: icon.c:143 menu.c:216 -msgid "Set Run Action..." -msgstr "Aseta Suoritustoiminto..." - -#: icon.c:144 menu.c:217 -msgid "Set Icon..." -msgstr "Aseta Kuvake..." - -#: icon.c:145 icon.c:806 -msgid "Edit Item" -msgstr "Muokkaa kohdetta" - -#: icon.c:146 -msgid "Show Location" -msgstr "Näytä Sijainti" - -#: icon.c:147 -msgid "Remove Item(s)" -msgstr "Poista kohde/kohteet" - -#: icon.c:278 menu.c:764 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:291 -msgid "Nothing" -msgstr "Ei mitään" - -#: icon.c:547 -msgid "The location must contain at least one character!" -msgstr "Sijainnissa täytyy olla vähintään yksi merkki!" - -#: icon.c:613 -msgid "You must first select some items to remove" -msgstr "Valitse ensin kohteita poistettavaksi" - -#: icon.c:627 -msgid "You must open the menu over an item" -msgstr "Valikko täytyy avata kohteen yläpuolella" - -#: icon.c:652 menu.c:1260 -msgid "You can only set the run action for a regular file" -msgstr "Voit asettaa suoritustoiminnon ainoastaan tavalliselle tiedostolle" - -#: icon.c:738 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Paina haluamiasi pikanäppäimiä (esim. Ctrl+F1)" - -#: icon.c:760 -msgid "Failed to get keyboard grab!" -msgstr "Näppäimistön kaappaus epäonnistui!" - -#: icon.c:809 -msgid "Clicking the icon opens:" -msgstr "Kuvakkeen napsauttaminen avaa:" - -#: icon.c:819 -msgid "Arguments to pass (for executables):" -msgstr "Annettavat argumentit (käynnistystiedostoille):" - -#: icon.c:833 -msgid "The text displayed under the icon is:" -msgstr "Kuvakkeen alla näytettävä teksti on:" - -#: icon.c:846 -msgid "The keyboard shortcut is:" -msgstr "Pikanäppäin on:" - -#: infobox.c:112 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Haluatko varmasti avata %d ikkunaa?" - -#: infobox.c:113 -msgid "Show Info" -msgstr "Näytä tiedot" - -#: infobox.c:135 menu.c:769 -msgid "(bad utf-8)" -msgstr "(epäkelpo utf-8)" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "Näytä _Ohjetiedostot" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Oikeudet" - -#: infobox.c:286 -msgid "Contents indicate..." -msgstr "Sisältö viittaa..." - -#: infobox.c:423 infobox.c:560 support.c:349 -msgid "bytes" -msgstr "tavua" - -#: infobox.c:446 -msgid "Failed to read size" -msgstr "Koon lukeminen epäonnistui" - -#: infobox.c:504 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' ei ole enää symbolinen linkki" - -#: infobox.c:511 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Kohteen '%s' poisto epäonnistui:\n" -"%s" - -#: infobox.c:516 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Symbolisen linkin luominen kohteesta '%s' epäonnistui:\n" -"%s\n" -"(huomaa: vanha linkki on poistettu)" - -#: infobox.c:539 tips:270 -msgid "Error:" -msgstr "Virhe:" - -#: infobox.c:546 -msgid "Real directory:" -msgstr "Todellinen hakemisto:" - -#: infobox.c:549 -msgid "Owner, Group:" -msgstr "Omistaja, Ryhmä:" - -#: infobox.c:556 infobox.c:571 infobox.c:580 -msgid "Size:" -msgstr "Koko:" - -#: infobox.c:581 -msgid "Scanning" -msgstr "Luetaan" - -#: infobox.c:602 -msgid "Failed to scan" -msgstr "Lukeminen epäonnistui" - -#: infobox.c:609 -msgid "Change time:" -msgstr "Muutettu:" - -#: infobox.c:611 -msgid "Modify time:" -msgstr "Muokattu:" - -#: infobox.c:613 -msgid "Access time:" -msgstr "Käytetty:" - -#: infobox.c:621 -msgid "Extended attributes:" -msgstr "Lisäattribuutit:" - -#: infobox.c:623 -msgid "Present" -msgstr "Paikalla" - -#: infobox.c:624 -msgid "None" -msgstr "Ei mitään" - -#: infobox.c:625 -msgid "Not supported" -msgstr "Ei tueta" - -#: infobox.c:637 -msgid "Link target:" -msgstr "Linkin kohde:" - -#: infobox.c:649 infobox.c:652 -msgid "Run action:" -msgstr "Suoritustoiminto:" - -#: infobox.c:649 -msgid "Execute file" -msgstr "Suorita tiedosto" - -#: infobox.c:744 -msgid "" -msgstr "" - -#: infobox.c:814 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) kertoo... %s" - -#: infobox.c:871 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Oikeuksien muuttaminen epäonnistui: %s" - -#: infobox.c:889 -msgid "Owner" -msgstr "Omistaja" - -#: infobox.c:891 -msgid "Group" -msgstr "Ryhmä" - -#: infobox.c:893 -msgid "World" -msgstr "Muut" - -#: infobox.c:896 -msgid "Read" -msgstr "Luku" - -#: infobox.c:898 -msgid "Write" -msgstr "Kirjoitus" - -#: infobox.c:900 -msgid "Exec" -msgstr "Suoritus" - -#: infobox.c:917 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:924 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:931 -msgid "Sticky" -msgstr "Kiinnitetty" - -#: infobox.c:953 -msgid "Symbolic link" -msgstr "Symbolinen linkki" - -#: infobox.c:956 -msgid "ROX application" -msgstr "ROX-sovellus" - -#: infobox.c:964 -msgid "mounted" -msgstr "liitetty" - -#: infobox.c:964 -msgid "unmounted" -msgstr "irrotettu" - -#: infobox.c:968 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Liitoskohta kohteelle %s (%s)" - -#: infobox.c:971 -#, c-format -msgid "Mount point (%s)" -msgstr "Liitoskohta (%s) " - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Tekijänoikeus (C) 2005 Thomas Leonard.\n" -"ROX-Filer:ille EI MYÖNNETÄ TAKUUTA\n" -"lain sallimissa rajoissa.\n" -"Voit levittää kopioita ROX-Filer:istä\n" -"GNU General Public License -lisenssin ehtojen mukaisesti.\n" -"Lisätietoja näistä asioista löydät tiedostosta nimeltään COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Lisätietoja saat kirjoittamalla 'ROX-Filer/AppRun --help'.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Lisätietoja saat kirjoittamalla 'ROX-Filer/AppRun -h'.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"HUOMAA: Järjestelmäsi ei tue pitkiä valitsimia - \n" -"sinun täytyy käyttää niiden lyhyitä muotoja.\n" - -#: main.c:115 -#, fuzzy -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to " -msgstr "" -"Käyttö: ROX-Filer/AppRun [VALITSIN]... [TIEDOSTO]...\n" -"Avaa jokainen lueteltu kansio tai tiedosto, tai nykyinen\n" -"työhakemisto, jos argumentteja ei ole annettu.\n" -"\n" -" -b, --bottom=PANEELI\tavaa PANEELI alareunan paneelina\n" -" -c, --client-id=TUNNISTE\tkäytentään istuntojen hallintaan\n" -" -d, --dir=HAKEMISTO\tavaa HAKEMISTO hakemistona (ei sovelluksena)\n" -" -D, --close=HAKEMISTO\tsulje HAKEMISTO ja sen alihakemistot\n" -" -h, --help\t\tnäytä tämä ohje ja poistu\n" -" -l, --left=PANEELI\tavaa PANEELI vasemman reunan paneelina\n" -" -m, --mime-type=TIEDOSTO\ttulosta TIEDOSTON MIME-tyyppi ja poistu\n" -" -n, --new\t\taloita uusi kopio; tiedostonhallinnan vianetsintää varten\n" -" -p, --pinboard=TYÖPÖYTÄ\tkäytä TYÖPÖYTÄÄ työpöytänä\n" -" -r, --right=PANEELI\tavaa PANEELI oikean reunan paneelina\n" -" -R, --RPC\t\tsuorita menetelmäkutsu, joka luetaan oletussyötteestä\n" -" -s, --show=TIEDOSTO\tavaa kansio, jossa TIEDOSTO sijaitsee\n" -" -t, --top=PANEELI\tavaa PANEELI yläreunan paneelina\n" -" -u, --user\t\tnäytä käyttäjänimi kaikissa ikkunoissa \n" -" -v, --version\t\tnäytä versiotiedot ja poistu\n" -" -x, --examine=TIEDOSTO\tTIEDOSTO on muuttunut - tutki se uudelleen\n" -"\n" -"Ilmoita viat osoitteessa " - -#: main.c:136 -msgid "" -".\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -".\n" -"Kotisivu (myös päivitetyt versiot): http://rox.sourceforge.net/\n" - -#: main.c:234 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" - -#: main.c:382 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"'-o'-argumenttia ei enää käytetä. Voit kytkeä uudelleenohjauksen " -"syrjäyttämisen päälle Asetukset-ikkunasta." - -#: main.c:489 -#, c-format -msgid "Running as user '%s'" -msgstr "Suoritetaan käyttäjänä '%s'" - -#: main.c:666 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Käännettäessä GTK:n versio oli %s\n" - -#: main.c:667 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Suoritetaan GTK:n versiolla %d.%d.%d\n" - -#: main.c:671 -msgid "features set at compile time" -msgstr "kääntäessä asetetut ominaisuudet" - -#: main.c:672 -msgid "Large File Support" -msgstr "Suurten Tiedostojen Tuki" - -#: main.c:679 -msgid "GNOME-VFS library" -msgstr "GNOME-VFS-kirjasto" - -#: main.c:683 -msgid "No (need 2.8.0 or later)" -msgstr "Ei (vaaditaan vähintään 2.8.0)" - -#: main.c:686 -msgid "Dnotify support" -msgstr "Dnotify-tuki" - -#: main.c:693 -msgid "Binary compatibility" -msgstr "Binaarinen yhteensopivuus" - -#: main.c:695 -msgid "Yes (can run with older glibc versions)" -msgstr "Kyllä (toimii vanhempien glibc:n versioiden kanssa)" - -#: main.c:697 -msgid "No (apsymbols.h not found)" -msgstr "Ei (tiedostoa apsymbols.h ei löydy)" - -#: menu.c:180 tips:52 -msgid "Display" -msgstr "Näytä" - -#: menu.c:181 tips:57 -msgid "Icons View" -msgstr "Kuvakenäkymä" - -#: menu.c:182 -msgid "Icons, With..." -msgstr "Kuvakkeet, sekä..." - -#: menu.c:183 tips:74 -msgid "Sizes" -msgstr "Koot" - -#: menu.c:185 tips:254 -msgid "Types" -msgstr "Tyypit" - -#: menu.c:186 tips:77 -msgid "Times" -msgstr "Ajat" - -#: menu.c:187 tips:58 tips:92 -msgid "List View" -msgstr "Listanäkymä" - -#: menu.c:189 -msgid "Bigger Icons" -msgstr "Suuremmat Kuvakkeet" - -#: menu.c:190 -msgid "Smaller Icons" -msgstr "Pienemmät Kuvakkeet" - -#: menu.c:191 tips:71 -msgid "Automatic" -msgstr "Automaattinen" - -#: menu.c:193 -msgid "Sort by Name" -msgstr "Järjestä Nimen mukaan" - -#: menu.c:194 -msgid "Sort by Type" -msgstr "Järjestä Tyypin mukaan" - -#: menu.c:195 -msgid "Sort by Date" -msgstr "Järjestä Päivämäärän mukaan" - -#: menu.c:196 -msgid "Sort by Size" -msgstr "Järjestä Koon mukaan" - -#: menu.c:197 -msgid "Sort by Owner" -msgstr "Järjestä Omistajan mukaan" - -#: menu.c:198 -msgid "Sort by Group" -msgstr "Järjestä Ryhmän mukaan" - -#: menu.c:199 -msgid "Reversed" -msgstr "Käänteinen" - -#: menu.c:201 -msgid "Show Hidden" -msgstr "Näytä Piilotetut" - -#: menu.c:202 -msgid "Filter Files..." -msgstr "Suodata Tiedostot..." - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Näytä Pienoiskuvat" - -#: menu.c:204 -msgid "Refresh" -msgstr "Virkistä" - -#: menu.c:205 -msgid "Save Display Settings..." -msgstr "Tallenna Näkymäasetukset..." - -#: menu.c:207 -msgid "Copy..." -msgstr "Kopioi..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Nimeä Uudelleen..." - -#: menu.c:209 -msgid "Link..." -msgstr "Luo Linkki..." - -#: menu.c:213 -msgid "Open AVFS" -msgstr "Avaa AVFS:llä" - -#: menu.c:214 -msgid "Send To..." -msgstr "Lähetä..." - -#: menu.c:219 -msgid "Count" -msgstr "Laske" - -#: menu.c:220 -msgid "Set Type..." -msgstr "Aseta Tyyppi..." - -#: menu.c:224 toolbar.c:155 -msgid "Select" -msgstr "Valitse" - -#: menu.c:225 -msgid "Select All" -msgstr "Valitse Kaikki" - -#: menu.c:226 -msgid "Clear Selection" -msgstr "Poista Valinta" - -#: menu.c:227 -msgid "Invert Selection" -msgstr "Käänteinen Valinta" - -#: menu.c:228 -msgid "Select by Name..." -msgstr "Valitse Nimen perusteella..." - -#: menu.c:229 -msgid "Select If..." -msgstr "Valitse Jos..." - -#: menu.c:231 -msgid "New" -msgstr "Uusi" - -#: menu.c:233 -msgid "Blank file" -msgstr "Tyhjä tiedosto" - -#: menu.c:235 tasklist.c:308 -msgid "Window" -msgstr "Ikkuna" - -#: menu.c:236 -msgid "Parent, New Window" -msgstr "Ylätaso, Uusi Ikkuna" - -#: menu.c:237 -msgid "Parent, Same Window" -msgstr "Ylätaso, Sama Ikkuna" - -#: menu.c:238 -msgid "New Window" -msgstr "Uusi Ikkuna" - -#: menu.c:240 -msgid "Show Bookmarks" -msgstr "Näytä Kirjanmerkit" - -#: menu.c:241 -msgid "Follow Symbolic Links" -msgstr "Seuraa Symbolisia Linkkejä" - -#: menu.c:242 -msgid "Resize Window" -msgstr "Muuta Ikkunan Kokoa" - -#: menu.c:245 -msgid "Close Window" -msgstr "Sulje Ikkuna" - -#: menu.c:247 -msgid "Enter Path..." -msgstr "Syötä Polku..." - -#: menu.c:248 -msgid "Shell Command..." -msgstr "Komentotulkin komento..." - -#: menu.c:249 -msgid "Xterm Here" -msgstr "Pääte Tähän" - -#: menu.c:250 -msgid "Switch to xterm" -msgstr "Vaihda päättesovellukseen" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "" -"Paina Shift+Menupainike tiedoston yläpuolella lähettääksesi sen jonnekin" - -#: menu.c:754 -msgid "Next Click" -msgstr "Seuraava Napsautus" - -#: menu.c:776 -#, c-format -msgid "%d items" -msgstr "%d kohdetta" - -#: menu.c:864 -msgid "Open unmounted" -msgstr "Avaa irrotettu" - -#: menu.c:867 -msgid "Show Target" -msgstr "Näytä Kohde" - -#: menu.c:869 -msgid "Look Inside" -msgstr "Katso Sisään" - -#: menu.c:871 -msgid "Open As Text" -msgstr "Avaa Tekstinä" - -#: menu.c:1031 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"Lisäattribuutteja, joita käytetään tiedostotyypin tallentamiseen, ei tueta " -"tälle tiedostolle/näille tiedostoille.\n" -"Tämä voi johtua tiedostojärjestelmän tai C-kirjaston tuen puutteesta, tai " -"ehkäpä tiedostojärjestelmää liittäessä täytyy yksinkertaisesti antaa " -"vaadittava valitsin. (Linux-järjestelmissä 'user_xattr')." - -#: menu.c:1037 -msgid "Setting type not supported for some of these files" -msgstr "Osa tiedostoista ei tue tyypin asettamista." - -#: menu.c:1072 -msgid "_Relative link" -msgstr "_Suhteellinen linkki" - -#: menu.c:1078 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Tämän ollessa valittuna symbolinen linkki osoittaa polun linkistä " -"kohdetiedostoon. Käytä tätä, jos linkkiä ja kohdetta siirretään yhdessä.\n" -"Muussa tapauksessa tallennetaan polku juurihakemistosta - käytä tätä, jos " -"linkkiä voidaan siirtää, mutta kohde pysyy paikallaan." - -#: menu.c:1148 -msgid "New pathname is not absolute" -msgstr "Uusi polku ei ole absoluuttinen" - -#: menu.c:1214 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "" -"Symbolinen linkki kohteesta '%s' on jo olemassa. Korvataanko se kohteeseen '%" -"s' osoittavalla linkillä?" - -#: menu.c:1220 -msgid "_Replace" -msgstr "_Korvaa" - -#: menu.c:1351 menu.c:1392 menu.c:1452 -msgid "Create" -msgstr "Luo" - -#: menu.c:1352 -msgid "NewDir" -msgstr "UusiHakemisto" - -#: menu.c:1366 menu.c:1372 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Virhe luotaessa kohdetta '%s': %s" - -#: menu.c:1393 -msgid "NewFile" -msgstr "UusiTiedosto" - -#: menu.c:1411 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Virhe luotaessa tiedostoa: muodolle %s ei löytynyt pohjaa" - -#: menu.c:1482 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"'Lähetä'-valikko tarjoaa nopean keinon lähettää tiedostoja sovellukselle. " -"Listattavat sovellukset löytyvät seuraavista hakemistoista:\n" -"\n" -"%s\n" -"%s\n" -"'Lähetä'-valikon voi avata painamalla Shift+Menu tiedoston yläpuolella.\n" -"\n" -"Edistynyt käyttö:\n" -"Voit myös luoda alihakemistoja nimeltään '.text_html', '.text', jne. jotka " -"näytetään ainoastaan kyseisille tiedostotyypeille. '.group' näytetään, kun " -"useita tiedostoja on valittuna." - -#: menu.c:1493 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Näytän nyt SendTo-hakemistosi; sinun pitäisi luoda tänne symboliset linkit " -"(Ctrl+Shift ja raahata) haluamillesi sovelluksille." - -#: menu.c:1496 menu.c:1536 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "CHOICESPATH-muuttujasi asetus estää mukauttamisen - pahoittelen." - -#: menu.c:1529 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" - -#: menu.c:1534 -#, fuzzy -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Näytän nyt SendTo-hakemistosi; sinun pitäisi luoda tänne symboliset linkit " -"(Ctrl+Shift ja raahata) haluamillesi sovelluksille." - -#: menu.c:1651 -msgid "Customise" -msgstr "Mukauta" - -#: menu.c:1717 -msgid "This is already the canonical name for this directory." -msgstr "Tämä on jo hakemiston kanoninen nimi." - -#: menu.c:1748 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Et voi avata toista näkymää tähän hakemistoon, koska `Ainutkertaiset " -"Ikkunat'-asetus on valittuna Asetukset-ikkunassa." - -#: menu.c:1869 -msgid "Copy ... ?" -msgstr "Kopioidaanko ... ?" - -#: menu.c:1872 -msgid "Rename ... ?" -msgstr "Nimetäänkö uudelleen ... ?" - -#: menu.c:1875 -msgid "Symlink ... ?" -msgstr "Luodaanko Symbolinen Linkki ... ?" - -#: menu.c:1878 -msgid "Shift Open ... ?" -msgstr "Shift+Avataanko ... ?" - -#: menu.c:1881 -msgid "Properties of ... ?" -msgstr "Näytetäänkö tiedot ... ?" - -#: menu.c:1884 -msgid "Set type of ... ?" -msgstr "Asetetaanko tyyppi ... ?" - -#: menu.c:1887 -msgid "Set run action for ... ?" -msgstr "Asetetaanko Suoritustoiminto kohteelle ... ?" - -#: menu.c:1890 -msgid "Set icon for ... ?" -msgstr "Asetetaanko kuvake kohteelle ... ?" - -#: menu.c:1893 -msgid "Send ... to ... ?" -msgstr "Lähetetäänkö ... kohteeseen ... ?" - -#: menu.c:1896 -msgid "DELETE ... ?" -msgstr "POISTETAANKO ... ?" - -#: menu.c:1899 -msgid "Count the size of ... ?" -msgstr "Lasketaanko koko kohteelle ... ?" - -#: menu.c:1902 -msgid "Set permissions on ... ?" -msgstr "Asetetaanko oikeudet kohteelle ... ?" - -#: menu.c:1905 -msgid "Search inside ... ?" -msgstr "Etsitäänkö kohteesta ... ?" - -#: menu.c:1908 -msgid "Look inside ... ?" -msgstr "Katsotaanko sisään kohteeseen ... ?" - -#: menu.c:1972 -msgid "You cannot do this to more than one item at a time" -msgstr "Et voi tehdä tätä kuin yhdelle kohteelle kerrallaan" - -#: menu.c:2004 -msgid "Rename" -msgstr "Nimeä uudelleen" - -#: menu.c:2009 -msgid "Symlink" -msgstr "Luo symbolinen linkki" - -#: menu.c:2041 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Käyttäjän muokattavat pikanäppäimet ovat oletuksena pois käytöstä Gtk2:ssa, " -"etkä ole asettanut niitä käyttöön. Tämä onnistuu seuraavasti:\n" -"1) käyttämällä XSettings-manageria, kuten ROX-Session tai gnome-settings-" -"daemon, tai\n" -"\n" -"2) lisäämällä tämän rivin tiedostoon ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(tämä toimii vain, kun XSETTINGS EI ole käytössä)" - -#: menu.c:2052 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Asettaaksesi pikanäppäimen valikon kohteelle:\n" -"\n" -"- Avaa valikko tiedostonhallintaikkunan päälle,\n" -"- Siirrä osoitin haluamasi kohteen yläpuolelle,\n" -"- Paina kohteelle haluamaasi pikanäppäintä.\n" -"\n" -"Pikanäppäin ilmestyy kohteen viereen, ja voit jatkossa vain painaa " -"pikanäppäintä avaamatta valikkoa." - -#: menu.c:2067 -msgid "Set keyboard shortcuts" -msgstr "Aseta pikanäppäimet" - -#: minibuffer.c:131 -msgid "Goto:" -msgstr "Siirry:" - -#: minibuffer.c:132 -msgid "Shell:" -msgstr "Komentotulkki:" - -#: minibuffer.c:133 -msgid "Select If:" -msgstr "Valitse Jos:" - -#: minibuffer.c:134 -msgid "Select Named:" -msgstr "Valitse Nimellä:" - -#: minibuffer.c:135 -msgid "Pattern:" -msgstr "Kaava:" - -#: minibuffer.c:264 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Kirjoita tiedoston nimi ja näytän sen sinulle. Paina Tab täyttääksesi " -"pisimmän vastaavuuden. Esc-näppäin sulkee minipuskurin." - -#: minibuffer.c:270 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Syötä suoritettava komentotulkin komento. Napsauta tiedostoa lisätäksesi sen " -"puskuriin." - -#: minibuffer.c:275 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Syötä tiedostojen valinnassa käytettävä kaava:\n" -"\n" -"? vastaa mitä tahansa merkkiä\n" -"* tarkoittaa nollaa tai useampaa merkkiä\n" -"[aA] vastaa merkkejä 'a' tai 'A'\n" -"[a-z] vastaa mitä tahansa merkkiä väliltä a-z (pienaakkoset)\n" -"*.png vastaa mitä tahansa '.png'-päätteellistä nimeä" - -#: minibuffer.c:287 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Syötä näytettävien tiedostojen valintaan käytettävä kaava. Tyhjä suodatin " -"poistaa suodattimen käytöstä." - -#: minibuffer.c:895 -msgid "Invalid Find condition" -msgstr "Hakuehto ei kelpaa" - -#: mount.c:374 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s yhteensä, %s käytössä, %s vapaana (%.1f %%)" - -#: options.c:277 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer on muuttanut Asetustiedostosi uuteen XML-muotoon." - -#: options.c:535 options.c:1258 -msgid "(use default)" -msgstr "(käytä oletusta)" - -#: options.c:806 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Sisäinen virhe: %s lukukelvoton" - -#: options.c:917 -msgid "Options" -msgstr "Asetukset" - -#: options.c:962 -msgid "_Revert" -msgstr "_Palauta" - -#: options.c:968 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "" -"Palauta kaikki valinnat siihen tilaan, kun ne olivat avatessasi Asetukset-" -"ikkunan." - -#: options.c:983 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Asetukset tallennetaan kohteeseen:\n" -"%s" - -#: options.c:991 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(tallentaminen estetty CHOICESPATH-muuttujalla)" - -#: options.c:1164 usericons.c:450 -#, c-format -msgid "Error saving %s: %s" -msgstr "Virhe tallennettaessa kohdetta %s: %s" - -#: options.c:1794 -msgid "Missing '='" -msgstr "Puuttuva '='" - -#: panel.c:439 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Vanha paneelitiedostosi on muutettu uuteen XML-muotoon." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Olet yrittänyt sulkea paneelin ikkunamanagerin kautta - yleensä tämä ei ole " -"tarkoituksellista... suljetaanko?You have tried to close a panel via the " -"window manager - I usually find that this is accidental... really close?" - -#: panel.c:639 -msgid "Missing < or > in panel config file" -msgstr "Puuttuva < tai > paneelin asetustiedostossa" - -#: panel.c:1519 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Virhe tallennettaessa paneelia %s: %s" - -#: panel.c:1835 -msgid "Applet quit without ever creating a widget!" -msgstr "Sovelma lopetti luomatta graafista elementtiä!" - -#: panel.c:1934 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Virhe suoritettaessa sovelmaa:\n" -"%s" - -#: panel.c:2335 -#, fuzzy -msgid "Panel Options..." -msgstr "Asetukset..." - -#: panel.c:2427 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Xinerama-näyttö %d ei ole saatavilla" - -#: panel.c:2502 -#, fuzzy -msgid "Panel Options" -msgstr "Asetukset" - -#: panel.c:2517 -#, fuzzy, c-format -msgid "Panel: %s" -msgstr "Paneelit" - -#: panel.c:2525 -msgid "Select the panel's position:" -msgstr "" - -#: panel.c:2531 -msgid "Top-edge panel" -msgstr "" - -#: panel.c:2532 -msgid "Top edge" -msgstr "" - -#: panel.c:2533 -msgid "Bottom edge panel" -msgstr "" - -#: panel.c:2534 -#, fuzzy -msgid "Bottom edge" -msgstr "Alamarginaali" - -#: panel.c:2535 -msgid "Left edge panel" -msgstr "" - -#: panel.c:2536 -msgid "Left edge" -msgstr "" - -#: panel.c:2537 -msgid "Right-edge panel" -msgstr "" - -#: panel.c:2538 -msgid "Right edge" -msgstr "" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "Vanha työpöytätiedostosi on muutettu uuteen XML-muotoon." - -#: pinboard.c:635 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Tastakuvan käsittelijän täytyy olla sovelluskansio. Raahaa sovelluskansio " -"Aseta Taustakuva-ikkunaan, tai (ohjelmoijille) ohjaa se SOAP SetBackdropApp-" -"metodille." - -#: pinboard.c:654 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Voit asettaa taustakuvaksi ainoastaan kuvatiedoston tai ohjelman, joka " -"tietää, miten ROX-Filerin taustakuvaa hallitaan.\n" -"\n" -"Ohjelmoijat: sovelluksen AppInfo.xml-tiedoston täytyy sisältää " -"CanSetBackdrop-elementti, kuten ROX-Filerin käsikirja kertoo." - -#: pinboard.c:674 -msgid "Set backdrop" -msgstr "Aseta taustakuva" - -#: pinboard.c:685 -msgid "Choose a style and drag an image in:" -msgstr "Valitse tyyli, ja raahaa tähän kuva:" - -#: pinboard.c:698 -msgid "Centre the image without scaling it" -msgstr "Keskitä kuva skaalaamatta sitä" - -#: pinboard.c:699 -msgid "Centre" -msgstr "Keskitetty" - -#: pinboard.c:700 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Skaalaa kuva siten, että se sopii taustan alueelle säilyttäen muotonsa" - -#: pinboard.c:702 -msgid "Scale" -msgstr "Skaalattu" - -#: pinboard.c:703 -msgid "Stretch the image to fill the backdrop area" -msgstr "Venytä kuva täyttämään taustan alue" - -#: pinboard.c:704 -msgid "Stretch" -msgstr "Venytetty" - -#: pinboard.c:705 -msgid "Tile the image over the backdrop area" -msgstr "Toista kuvaa rinnakkain taustalla" - -#: pinboard.c:706 -msgid "Tile" -msgstr "Rinnakkain" - -#: pinboard.c:711 -msgid "Drop an image here" -msgstr "Pudota tähän kuva" - -#: pinboard.c:772 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Työpöytää ei ollut käytössä... 'Default'-työpöytä valittiin. Käytä komentoa " -"'rox -p=Default' käyttääksesi sitä jatkossa." - -#: pinboard.c:866 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Vain tiedostoja (ja eräitä ohjelmia) voi käyttää taustakuvan asettamiseen." - -#: pinboard.c:1471 -msgid "Missing '>' in icon label" -msgstr "Puuttuva '>' kuvakkeen nimikkeessä" - -#: pinboard.c:1480 -msgid "Missing ',' after icon label" -msgstr "Puuttuva ',' kuvakkeen nimikkeen jälkeen" - -#: pinboard.c:1565 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Virhe tallennettaessa työpöytää %s: %s" - -#: pinboard.c:2109 -msgid "Backdrop..." -msgstr "Taustakuva..." - -#: pinboard.c:2202 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Virhe ladattaessa taustakuvaa:\n" -"%s\n" -"Taustakuva poistettu." - -#: pixmaps.c:991 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Ei voi poistaa pienoiskuvia kohteesta %s:\n" -"%s" - -#: pixmaps.c:1012 -msgid "There are no thumbnails to delete" -msgstr "Ei pienoiskuvia poistettavaksi" - -#: pixmaps.c:1025 -msgid "Purge thumbnails disk cache" -msgstr "Tyhjennä pienoiskuvat levyvälimuistista" - -#: remote.c:624 -#, c-format -msgid "Unknown style '%s'" -msgstr "Tuntematon tyyli '%s'" - -#: remote.c:646 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Tuntematon yksityiskohtatyyppi '%s'" - -#: remote.c:674 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Tuntematon lajittelutyyppi '%s'" - -#: remote.c:1117 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Kutsuttu epäkelpoa SOAP-metodia '%s'" - -#: rox_gettext.c:95 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Epäkelpo .gmo-käännöstiedosto (liian lyhyt): %s" - -#: rox_gettext.c:108 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Epäkelpo .gmo-käännöstiedosto (GNU 'taikanumeroa' ei löydy): %s" - -#: run.c:96 run.c:141 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Ohjelmaa %s ei löydy - poistettu?" - -#: run.c:287 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Tiedostoa ei ole olemassa, tai en pääse siihen käsiksi: %s" - -#: run.c:292 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "En osaa avata kohdetta '%s'" - -#: run.c:323 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Sovellus:\n" -"Tämä on sovelluskansio - voit suorittaa sen sovelluksena, tai avata sen " -"(pidä Shift painettuna napsauttaessasi sitä). Useimpien sovellusten mukana " -"tulee omat ohjeensa, mutta tämän ei." - -#: run.c:407 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Tiedon lähetys epäonnistui sovellukselle: %s" - -#: run.c:437 -#, c-format -msgid "Could not read link: %s" -msgstr "Linkin luku epäonnistui: %s" - -#: run.c:465 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "" -"Symbolinen linkki ei toimi (tai sinulla ei ole oikeuksia sen käyttämiseen): %" -"s" - -#: run.c:502 -#, fuzzy, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Suoritustoimintoa ei ole asetettu tälle tiedostotyypille (%s/%s) - voit " -"asettaa suoritustoiminnon valitsemalla `Aseta Suoritustoiminto' Tiedosto-" -"valikosta, tai voit raahata tiedoston sovelluksen päälle" - -#: run.c:508 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" - -#: support.c:272 -msgid "B" -msgstr "T" - -#: support.c:351 -msgid "byte" -msgstr "tavu" - -#: toolbar.c:115 -msgid "Close" -msgstr "Sulje" - -#: toolbar.c:115 -msgid "Close filer window" -msgstr "Sulje tiedostonhallintaikkuna" - -#: toolbar.c:119 -msgid "Up" -msgstr "Ylös" - -#: toolbar.c:119 -msgid "Change to parent directory" -msgstr "Vaihda ylähakemistoon" - -#: toolbar.c:123 -msgid "Home" -msgstr "Koti" - -#: toolbar.c:123 -msgid "Change to home directory" -msgstr "Siirry kotihakemistoon" - -#: toolbar.c:127 -msgid "Bookmarks" -msgstr "Kirjanmerkit" - -#: toolbar.c:127 -msgid "Bookmarks menu" -msgstr "Kirjanmerkkivalikko" - -#: toolbar.c:131 -msgid "Scan" -msgstr "Lue" - -#: toolbar.c:131 -msgid "Rescan directory contents" -msgstr "Lue uudelleen hakemiston sisältö" - -#: toolbar.c:135 -msgid "Change icon size" -msgstr "Muuta kuvakekokoa" - -#: toolbar.c:139 -msgid "Automatic size mode" -msgstr "Automaattinen koko" - -#: toolbar.c:143 -msgid "Show extra details" -msgstr "Näytä lisätietoja" - -#: toolbar.c:147 -msgid "Sort" -msgstr "Järjestä" - -#: toolbar.c:147 -msgid "Change sort criteria" -msgstr "Muuta järjestysperusteita" - -#: toolbar.c:151 -msgid "Hidden" -msgstr "Piilotettu" - -#: toolbar.c:151 -msgid "Show/hide hidden files" -msgstr "Näytä/piilota piilotiedostot" - -#: toolbar.c:155 -msgid "Select all/invert selection" -msgstr "Valitse kaikki/käänteinen valinta" - -#: toolbar.c:159 -msgid "Show ROX-Filer help" -msgstr "Näytä ROX-Filerin ohje" - -#: toolbar.c:220 -#, c-format -msgid " (%u hidden)" -msgstr " (%u piilotettua)" - -#: toolbar.c:228 tips:80 -msgid "items" -msgstr "kohdetta" - -#: toolbar.c:228 -msgid "item" -msgstr "kohde" - -#: toolbar.c:231 -#, c-format -msgid "No items%s" -msgstr "Ei kohteita%s" - -#: toolbar.c:250 -#, c-format -msgid "%u selected (%s)" -msgstr "%u valittu (%s)" - -#: toolbar.c:422 -msgid "Sort by name" -msgstr "Järjestä nimen mukaan" - -#: toolbar.c:422 -msgid "Sort by type" -msgstr "Järjestä tyypin mukaan" - -#: toolbar.c:422 -msgid "Sort by date" -msgstr "Järjestä päivämäärän mukaan" - -#: toolbar.c:423 -msgid "Sort by size" -msgstr "Järjestä koon mukaan" - -#: toolbar.c:423 -msgid "Sort by owner" -msgstr "Järjestä omistajan mukaan" - -#: toolbar.c:423 -msgid "Sort by group" -msgstr "Järjestä ryhmän mukaan" - -#: toolbar.c:457 -msgid "ascending" -msgstr "nouseva" - -#: toolbar.c:457 -msgid "descending" -msgstr "laskeva" - -#: type.c:203 -msgid "Sym link" -msgstr "Symbolinen linkki" - -#: type.c:205 -msgid "Mount point" -msgstr "Liitoskohta" - -#: type.c:207 -msgid "App dir" -msgstr "Sovelluskansio" - -#: type.c:214 -msgid "Dir" -msgstr "Hakemisto" - -#: type.c:216 -msgid "Char dev" -msgstr "Merkkilaite" - -#: type.c:218 -msgid "Block dev" -msgstr "Lohkolaite" - -#: type.c:220 -msgid "Pipe" -msgstr "Putki" - -#: type.c:222 -msgid "Socket" -msgstr "Vastake" - -#: type.c:224 -msgid "Door" -msgstr "Ovi" - -#: type.c:227 -msgid "Unknown" -msgstr "Tuntematon" - -#: type.c:355 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"Sovellus '%s' on kaikkien kirjoitettavissa! Suoritus evätty. Vaihda oikeudet " -"heti (Ongelman on saattanut aiheuttaa vika aikaisemmassa tiedostonhallinnan " -"versiossa).\n" -"\n" -"Suoritustoimintojen (muiden kuin symbolisten linkkien) ollessa kaikkien " -"kirjoitettavissa kuka tahansa konettasi käyttävä voi vaihtaa sovelluksesi " -"tilalle haitallisen version.\n" -"\n" -"Jos luotat jokaiseen, jolla on pääsy näihin tiedostoihin, sinun ei tarvitse " -"huolestua. Muussa tapauksessa sinun pitäisi tarkistaa, tai jopa poistaa " -"kaikki nykyiset suoritustoiminnot." - -#: type.c:368 -msgid "go-w (Fix security problem)" -msgstr "go-w (Korjaa turvallisuusongelma)" - -#: type.c:498 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Kirjoita komentotulkin komento, joka avaa tiedoston \"$@\" sopivaan " -"sovellukseen. Esim:\n" -"\n" -"gimp \"$@\"" - -#: type.c:679 -msgid "This is not a program! Give me an application instead!" -msgstr "Tämä ei ole ohjelmatiedosto! Tarvitsen sovelluksen!" - -#: type.c:740 -msgid "No run action defined" -msgstr "Suoritustoimintoa ei ole määritetty" - -#: type.c:766 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Virhe käsittelijässä %s: %s" - -#: type.c:781 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Epäkelpo sovellus %s (virheellinen AppRun)" - -#: type.c:792 -#, c-format -msgid "Non-executable %s" -msgstr "%s ei ole suoritettava tiedosto" - -#: type.c:825 -msgid "Set run action" -msgstr "Aseta suoritustoiminto" - -#: type.c:831 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Jos tiedostotyypille ei ole asetettu käsittelijää, käytä tätä oletusarvona." - -#: type.c:833 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Aseta oletus tyypeille `%s/'" - -#: type.c:837 -msgid "Use this application for all files with this MIME type." -msgstr "Käytä sovellusta kaikille tiedostoille, joiden MIME-tyyppi on tämä." - -#: type.c:839 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Ainoastaan tyypille `%s' (%s/%s)" - -#: type.c:845 -msgid "Drop a suitable application here" -msgstr "Raahaa sopiva sovellus tähän" - -#: type.c:860 -msgid "OR" -msgstr "TAI" - -#: type.c:867 -msgid "Enter a shell command:" -msgstr "Syötä komentotulkin komento:" - -#: type.c:896 -msgid "_Use Command" -msgstr "_Käytä komentoa" - -#: type.c:926 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Suoritustoiminto on jo olemassa, ja on melko kookas ohjelma - haluatko " -"varmasti poistaa sen?" - -#: type.c:937 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Ei voi poistaa kohdetta %s: %s" - -#: type.c:974 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "Asetusten tallentaminen estetty CHOICESPATH-muuttujalla" - -#: type.c:1249 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" -"Kuvaketeema '%s' ei sisällä MIME-kuvakkeita. Käytetään ROX:in oletusteemaa." - -#: type.c:1263 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason)" -msgstr "" -"Symbolisen linkin '%s' luominen epäonnistui:\n" -"%s\n" -"\n" -"(tämä saattaa tarkoittaa, että kohteessa on jo ROX-teema, mutta 'mime-" -"application:postscript'-kuvaketta ei voitu ladata jostain syystä)" - -#: usericons.c:181 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Antamaasi polkua ei ole olemassa. Kuvaketta ei vaihdettu." - -#: usericons.c:191 usericons.c:616 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Kuvatiedoston lataaminen epäonnistui -- ehkä se ei ole ymmärtämässäni " -"muodossa, tai ehkä oikeuksissa on virhe?\n" -"Kuvaketta ei vaihdettu." - -#: usericons.c:238 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Poistetaanko varmasti kuvake '%s'?" - -#: usericons.c:242 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Ei voi poistaa kohdetta '%s':\n" -"%s" - -#: usericons.c:270 -msgid "Set icon" -msgstr "Aseta kuvake" - -#: usericons.c:279 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "" -"Käytä kuvan kopiota oletuksena kaikille näiden MIME-tyyppien tiedostoille." - -#: usericons.c:281 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Aseta kuvake tyypeille `%s/'" - -#: usericons.c:286 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Käytä kuvan kopiota kaikille tämän MIME-tyypin tiedostoille." - -#: usericons.c:288 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Kaikille tyypin `%s' tiedostoille (%s/%s)" - -#: usericons.c:294 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Lisää tiedoston ja kuvatiedoston nimet henkilökohtaiselle listallesi. Asetus " -"katoaa jos kuvaa tai tiedostoa siirretään." - -#: usericons.c:297 -#, c-format -msgid "Only for the file `%s'" -msgstr "Vain tiedostolle `%s'" - -#: usericons.c:305 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Kopioi kuva hakemistoon piilotettuna nimellä '.DirIcon'. Kaikki käyttäjät " -"näkevät silloin kuvakkeen ja voit siirtää hakemistoa turvallisesti. Tämä on " -"yleensä paras vaihtoehto, jos sinulla on kirjoitusoikeudet hakemistoon." - -#: usericons.c:311 -msgid "Copy image into directory" -msgstr "Kopioi kuva hakemistoon" - -#: usericons.c:317 -msgid "Drop an icon file here" -msgstr "Raahaa tähän kuvaketiedosto" - -#: usericons.c:587 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Kuvakkeen asettaminen estetty CHOICESPATH-muuttujalla" - -#: usericons.c:631 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Virhe luotaessa kuvaa '%s':\n" -"%s" - -#: view_details.c:1009 -msgid "_Name" -msgstr "_Nimi" - -#: view_details.c:1012 -msgid "_Type" -msgstr "_Tyyppi" - -#: view_details.c:1015 -msgid "_Permissions" -msgstr "O_ikeudet" - -#: view_details.c:1016 -msgid "_Owner" -msgstr "_Omistaja" - -#: view_details.c:1018 -msgid "_Group" -msgstr "_Ryhmä" - -#: view_details.c:1020 -msgid "_Size" -msgstr "_Koko" - -#: view_details.c:1022 -msgid "Last _Modified" -msgstr "Viimeksi _Muokattu" - -#: tips:1 -msgid "Translation" -msgstr "Käännös" - -#: tips:2 -msgid "Language" -msgstr "Kieli" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "Käytä LANG-ympäristömuuttujaa" - -#: tips:4 -msgid "Basque" -msgstr "" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Kiina (perinteinen)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Kiina (yksinkertaistettu)" - -#: tips:7 -msgid "Czech" -msgstr "Tšekki" - -#: tips:8 -msgid "Danish" -msgstr "Tanska" - -#: tips:9 -msgid "Dutch" -msgstr "Hollanti" - -#: tips:10 -msgid "English (no translation)" -msgstr "Englanti (ei käännöstä)" - -#: tips:11 -#, fuzzy -msgid "Estonian" -msgstr "Romania" - -#: tips:12 -msgid "Finnish" -msgstr "Suomi" - -#: tips:13 -msgid "French" -msgstr "Ranska" - -#: tips:14 -msgid "German" -msgstr "Saksa" - -#: tips:15 -msgid "Hungarian" -msgstr "Unkari" - -#: tips:16 -msgid "Japanese" -msgstr "Japani" - -#: tips:17 -msgid "Norwegian" -msgstr "Norja" - -#: tips:18 -msgid "Italian" -msgstr "Italia" - -#: tips:19 -msgid "Polish" -msgstr "Puola" - -#: tips:20 -msgid "Portuguese (Brasil)" -msgstr "Portugali (Brasilia)" - -#: tips:21 -msgid "Romanian" -msgstr "Romania" - -#: tips:22 -msgid "Russian" -msgstr "Venäjä" - -#: tips:23 -msgid "Spanish" -msgstr "Espanja" - -#: tips:24 -msgid "Swedish" -msgstr "Ruotsi" - -#: tips:25 -msgid "Filer windows" -msgstr "Tiedostonhallintaikkunat" - -#: tips:26 -msgid "Auto-resize filer windows" -msgstr "Ikkunoiden koon automaattinen muuttaminen" - -#: tips:27 -msgid "Never automatically resize" -msgstr "Älä koskaan muuta kokoa automaattisesti" - -#: tips:28 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Sinun täytyy itse säätää ikkunoiden kokoa käyttämällä ikkunamanageria, " -"valikon 'Muuta Ikkunan Kokoa' -valintaa tai kaksoisnapsauttamalla ikkunan " -"taustaa." - -#: tips:29 -msgid "Resize when changing the display style" -msgstr "Muuta kokoa, kun vaihdetaan näkymätyyppiä" - -#: tips:30 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Kuvakkeiden koon tai näytettävien tietojen vaihtaminen muuttaa ikkunan kokoa " -"puolestasi." - -#: tips:31 -msgid "Always resize" -msgstr "Muuta aina kokoa" - -#: tips:32 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Tiedostonhallinta muuttaa ikkunoiden kokoa aina, kun se näyttää " -"tarpeelliselta (eli vaihtaessasi hakemistoa tai näkymätyyppiä)." - -#: tips:33 -msgid "Largest window size:" -msgstr "Ikkunan suurin koko:" - -#: tips:34 -msgid "%" -msgstr "%" - -#: tips:35 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"Suurin koko prosentteina ruudun koosta, johon automaattinen koon muuttaja " -"voi ikkunaa venyttää." - -#: tips:36 -msgid "Window behaviour" -msgstr "Ikkunan toimintatapa" - -#: tips:37 -msgid "Short titlebar flags" -msgstr "Lyhyet otsakepalkin liput" - -#: tips:38 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Käytä yksittäisiä kirjaimia otsakepalkin 'Luetaan', 'Kaikki' ja " -"'Pienoiskuvat'-ilmaisimien sijasta." - -#: tips:39 -msgid "Unique windows" -msgstr "Ainutkertaiset ikkunat" - -#: tips:40 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Jos avaat hakemiston, joka näytetään jo toisessa ikkunassa, tämä valinta " -"aiheuttaa toisen ikkunan sulkemisen." - -#: tips:41 -msgid "New window on button 1" -msgstr "Uusi ikkuna 1-painikkeella" - -#: tips:42 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Tämän ollessa valittuna hiiren 1-painikkeen (yleensä vasemmanpuoleinen) " -"napsauttaminen avaa hakemiston uudessa ikkunassa. 2-painikkeen " -"(keskimmäinen) napsauttaminen käyttää nykyistä ikkunaa." - -#: tips:43 -msgid "Single-click navigation" -msgstr "Kertapainallusnavigaatio" - -#: tips:44 tips:137 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Kohteen napsauttaminen avaa sen, jos tämä on valittuna. Pidä Ctrl-näppäintä " -"painettuna valitaksesi kohteen. Muussa tapauksessa kertapainallus valitsee " -"kohteen; avaaminen tapahtuu kaksoisnapsauttamalla." - -#: tips:45 -msgid "Double-click on background resizes" -msgstr "Kaksoisnapsautus taustalla muuttaa kokoa" - -#: tips:46 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Tämän ollessa valittuna ikkunan taustan kaksoisnapsautus muuttaa ikkunan " -"kokoa samoin, kuin työkalupalkin Automaattinen koko-painike." - -#: tips:47 -msgid "Sorting" -msgstr "Järjestäminen" - -#: tips:48 -msgid "Directories come first (for sort by name)" -msgstr "Kansiot ensin (nimen mukaan järjestettäessä)" - -#: tips:49 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Tämän ollessa valittuna kansiot näytetään aina ensimmäisenä järjestettäessä " -"nimen mukaan." - -#: tips:50 -msgid "Capitalised names first (for sort by name)" -msgstr "Suuraakkosilla kirjoitetut ensin (nimen mukaan järjestettäessä)" - -#: tips:51 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Tämän ollessa valittuna kaikki suuraakkosella alkavat tiedostonimet " -"esitetään ennen pienaakkosella alkavia." - -#: tips:53 -msgid "Default settings for new windows" -msgstr "Oletusasetukset uusille ikkunoille" - -#: tips:54 -msgid "Inherit options from source window" -msgstr "Peri asetukset lähdeikkunalta" - -#: tips:55 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Tämän ollessa valittuna uuden ikkunan näkymäasetukset peritään " -"lähdeikkunalta silloin, kun se on mahdollista. Muussa tapauksessa ne " -"asetetaan allaoleviin oletusarvoihin." - -#: tips:56 -msgid "View type:" -msgstr "Näkymätyyppi:" - -#: tips:59 -msgid "Sort by:" -msgstr "Järjestysperuste:" - -#: tips:61 tips:76 -msgid "Type" -msgstr "Tyyppi" - -#: tips:62 -msgid "Date" -msgstr "Päivämäärä" - -#: tips:64 -msgid "Show hidden files" -msgstr "Näytä piilotetut tiedostot" - -#: tips:65 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Tämän ollessa valittuna myös .-alkuiset tiedostot näytetään, muussa " -"tapauksessa ne piilotetaan." - -#: tips:66 -msgid "Icon View" -msgstr "Kuvakenäkymä" - -#: tips:67 -msgid "Default size:" -msgstr "Oletuskoko:" - -#: tips:68 -msgid "Huge Icons" -msgstr "Jättimäiset kuvakkeet" - -#: tips:69 tips:245 -msgid "Large Icons" -msgstr "Suuret kuvakkeet" - -#: tips:70 tips:244 -msgid "Small Icons" -msgstr "Pienet kuvakkeet" - -#: tips:72 -msgid "Default details:" -msgstr "Oletustiedot:" - -#: tips:73 -msgid "No details" -msgstr "Ei tietoja" - -#: tips:78 -msgid "Automatic small icons:" -msgstr "Automaattiset pienet kuvakkeet:" - -#: tips:79 -msgid "Change at:" -msgstr "Muutosraja:" - -#: tips:81 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Automaattisen kuvakekoon muuttamisen ollessa valittuna: Jos hakemisto " -"sisältää näin monta kohdetta, se näytetään käyttäen Pieniä kuvakkeita. " -"Muussa tapauksessa käytetään Suuria kuvakkeita." - -#: tips:82 -msgid "Max width (Large icons):" -msgstr "Enimmäiskoko (Suuret kuvakkeet):" - -#: tips:83 tips:86 -msgid "pixels" -msgstr "pistettä" - -#: tips:84 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Tätä leveämpi teksti jaetaan kahdelle riville Suuret kuvakkeet-tilassa. " -"Jättimäiset kuvakkeet-tilassa teksti kierrätetään, kun se on 50% tätä " -"leveämpi." - -#: tips:85 -msgid "(Small Icons):" -msgstr "(Pienet kuvakkeet):" - -#: tips:87 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Pienten kuvakkeiden vieressä olevan tekstin enimmäisleveys." - -#: tips:88 -msgid "Order small icons vertically" -msgstr "" - -#: tips:89 -msgid "" -"If this option is on, then small icons are ordered vertically, not " -"horizontally." -msgstr "" - -#: tips:90 -msgid "Order large icons vertically" -msgstr "" - -#: tips:91 -msgid "" -"If this option is on, then large icons are sorted vertically, not " -"horizontally." -msgstr "" - -#: tips:93 -msgid "Show column headings" -msgstr "Näytä sarakkeiden otsakkeet" - -#: tips:94 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Tämän ollessa valittuna sarakkeiden otsakkeet näytetään listanäkymässä." - -#: tips:95 -#, fuzzy -msgid "Show full type" -msgstr "Järjestä tyypin mukaan" - -#: tips:96 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" - -#: tips:97 -msgid "Tools/Minibuffer" -msgstr "Työkalut/Minipuskuri" - -#: tips:98 -msgid "Toolbar" -msgstr "Työkalupalkki" - -#: tips:99 -msgid "Toolbar type:" -msgstr "Työkalupalkin tyyppi:" - -#: tips:100 -msgid "No toolbar" -msgstr "Ei työkalupalkkia" - -#: tips:101 -msgid "Icons only" -msgstr "Vain kuvakkeet" - -#: tips:102 -msgid "Text under icons" -msgstr "Teksti kuvakkeiden alla" - -#: tips:103 -msgid "Text beside icons" -msgstr "Teksti kuvakkeiden vieressä" - -#: tips:104 -msgid "Show totals of items" -msgstr "Näytä kohteiden yhteismäärä" - -#: tips:105 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Näytä tiedostonhallintaikkunassa näytettävien kohteiden enimmäismäärä, " -"samoin kuin piilotettujen kohteiden määrä (jos yhtään). Kun on tehty " -"valinta, näytä valittujen kohteiden lukumäärä ja yhteiskoko." - -#: tips:106 -msgid "Select the buttons you want on the bar:" -msgstr "Valitse palkkiin haluamasi painikkeet:" - -#: tips:107 -msgid "Width of toolbar sets minimum width of window" -msgstr "Työkalupalkin leveys määrää ikkunan vähimmäisleveyden" - -#: tips:108 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Jokainen tiedostonhallintaikkuna pakotetaan vähintään niin leveäksi, että " -"koko työkalupalkki mahtuu näkyviin" - -#: tips:109 -msgid "Minibuffer" -msgstr "Minipuskuri" - -#: tips:110 -msgid "Beep if Tab-completion fails" -msgstr "Piippaa, jos Tab-täydennys epäonnistuu" - -#: tips:111 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Kun käytetään 'Syötä Polku...'-minipuskuria ja Tab-näppäintä painetaan, " -"piippaa, jos mitään ei tapahdu (esim. koska on useita vaihtoehtoja ja " -"seuraava merkki vaihtelee)." - -#: tips:112 -msgid "Beep if there are several matches" -msgstr "Piippaa, jos vastaavuuksia on useita" - -#: tips:113 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Kun käytetään 'Syötä Polku...'-minipuskuria ja Tab-näppäintä painetaan, " -"piippaa, jos vastaavia kohteita on enemmän kuin yksi, vaikka merkkejä " -"olisikin lisätty." - -#: tips:116 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Pienoiskuvien ollessa käytössä hakemiston jokainen kuvatiedosto ladataan ja " -"siitä esitetään pieni pienoiskuva." - -#: tips:117 -msgid "Show image thumbnails" -msgstr "Näytä pienoiskuvat" - -#: tips:118 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Tämä on oletusasetus uusille ikkunoille. Voit ottaa pienoiskuvat käyttöön " -"yksittäisissä ikkunoissa Näytä-valikon kautta." - -#: tips:119 -#, fuzzy -msgid "Video thumbnails" -msgstr "Näytä Pienoiskuvat" - -#: tips:120 -msgid "Thumbnails cache" -msgstr "Pienoiskuvavälimuisti" - -#: tips:121 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Toiminnan nopeuttamiseksi luodut pienoiskuvat tallennetaan piilotettuun ~/." -"thumbnails-hakemistoon. Paina tästä poistaaksesi kaikki pienoiskuvat " -"välimuistista. Ne luodaan uudelleen tarvittaessa." - -#: tips:122 tips:195 -msgid "Pinboard" -msgstr "Työpöytä" - -#: tips:123 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Työpöydän ollessa käytössä voit vetää tiedostoja ja sovelluksia työpöydän " -"taustalle luodaksesi niihin pikakuvakkeet." - -#: tips:124 tips:241 -msgid "Appearance" -msgstr "Ulkoasu" - -#: tips:125 -msgid "Foreground:" -msgstr "Etuala:" - -#: tips:126 -msgid "Text shadow:" -msgstr "Tekstin varjo:" - -#: tips:127 -msgid "Background:" -msgstr "Tausta:" - -#: tips:128 -msgid "No shadow" -msgstr "Ei varjoa" - -#: tips:129 -msgid "Thin" -msgstr "Ohut" - -#: tips:130 -msgid "Thick" -msgstr "Paksu" - -#: tips:131 -msgid "Use custom font:" -msgstr "Mukautettu kirjasin:" - -#: tips:132 -msgid "The font used for the text displayed under the icons" -msgstr "Kirjasin, jota käytetään kuvakkeiden alla olevassa tekstissä" - -#: tips:133 -msgid "Fast scaling of images" -msgstr "Kuvien nopea skaalaus" - -#: tips:134 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"Valitse nopean ja hitaan taustakuvien skaalausmenetelmän väliltä. Hidas " -"menetelmä saattaa antaa paremman tuloksen." - -#: tips:135 -msgid "Pinboard behaviour" -msgstr "Työpöydän toiminta" - -#: tips:136 -msgid "Single-click to open" -msgstr "Kertanapsautus avaa" - -#: tips:138 -msgid "Keep icons within screen limits" -msgstr "Pidä kuvakkeet ruudun alueella" - -#: tips:139 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Tämän ollessa valittuna työpöydän kuvakkeet pidetään aina kokonaan ruudun " -"rajojen sisäpuolella nimikettä myöten." - -#: tips:140 -msgid "Icon grid step:" -msgstr "Kuvakeruudukon askelväli:" - -#: tips:141 -msgid "Fine" -msgstr "Hieno" - -#: tips:142 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Käytä 2 kuvapisteen ruudukkoa kuvakkeiden sijoitteluun työpöydällä." - -#: tips:143 -msgid "Medium" -msgstr "Kohtalainen" - -#: tips:144 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Käytä 16 kuvapisteen ruudukkoa kuvakkeiden sijoitteluun työpöydällä." - -#: tips:145 -msgid "Coarse" -msgstr "Karkea" - -#: tips:146 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Käytä 32 kuvapisteen ruudukkoa kuvakkeiden sijoitteluun työpöydällä." - -#: tips:147 tips:149 -msgid "Iconified windows" -msgstr "Pienennetyt ikkunat" - -#: tips:148 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"Useimmat ikkunamanagerit tarjoavat keinon ikonisoida (tai 'pienentää') " -"ikkunoita, ja useat ohjelmat, ROX-Filer mukaanluettuna, kykenevät näyttämään " -"nämä pienennetyt ikkunat." - -#: tips:150 -msgid "Show iconified windows" -msgstr "Näytä pienennetyt ikkunat" - -#: tips:151 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Tämän ollessa asetettuna tiedostonhallinta näyttää jokaisen pienennetyn " -"ikkunan pienenä kuvakkeena työpöydällä. Vaatii yhteensopivan " -"ikkunanmanagerin ja ROX-työpöydän pitää olla käytössä." - -#: tips:152 -msgid "Show per workspace" -msgstr "" - -#: tips:153 -#, fuzzy -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Tämän ollessa asetettuna tiedostonhallinta näyttää jokaisen pienennetyn " -"ikkunan pienenä kuvakkeena työpöydällä. Vaatii yhteensopivan " -"ikkunanmanagerin ja ROX-työpöydän pitää olla käytössä." - -#: tips:154 -msgid "Iconify to the" -msgstr "Pienennä" - -#: tips:155 -msgid "top-left" -msgstr "ylävasemmalle" - -#: tips:156 -msgid "top-right" -msgstr "yläoikealle" - -#: tips:157 -msgid "bottom-left" -msgstr "alavasemmalle" - -#: tips:158 -msgid "bottom-right" -msgstr "alaoikealle" - -#: tips:159 -msgid ", going" -msgstr ", lisäten" - -#: tips:160 -msgid "horizontally" -msgstr "vaakasuuntaisesti" - -#: tips:161 -msgid "vertically" -msgstr "pystysuuntaisesti" - -#: tips:162 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"Joskus tiedostonhallinta ei tiedä työpöydälläsi olevista 'kalusteista', ja " -"asettaa pienennetyt ikkunat (vaikkapa) Gnomen paneelin alle. Voit määrittää " -"ylä- ja alamarginaalit välttääksesi kuvakkeiden sijoittelua näille alueille. " -"Tiedostonhallinta tietää kyllä oman paneelinsa sijainnin." - -#: tips:163 -msgid "Top margin" -msgstr "Ylämarginaali" - -#: tips:164 -msgid "Height of no-go area at top of screen." -msgstr "Luoksepääsemättömän alueen korkeus ruudun yläreunassa." - -#: tips:165 -msgid "Bottom margin" -msgstr "Alamarginaali" - -#: tips:166 -msgid "Height of no-go area at bottom of screen." -msgstr "Luoksepääsemättömän alueen korkeus ruudun alareunassa." - -#: tips:167 -msgid "Panels" -msgstr "Paneelit" - -#: tips:168 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Paneelit ovat kuvakepalkkeja, jotka sijaitsevat näytön reunalla. " -"Käsikirjasta löydät tietoa paneelien käyttämisestä." - -#: tips:169 -msgid "Panel style" -msgstr "Paneelin tyyli" - -#: tips:170 -msgid "Image and text" -msgstr "Kuvat ja teksti" - -#: tips:171 -msgid "Every panel icon is shown with an image and some text." -msgstr "Jokainen paneelin kuvake näytetään kuvana ja tekstinä." - -#: tips:172 -msgid "Image only for applications" -msgstr "Pelkkä kuvake sovelluksille" - -#: tips:173 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "" -"Sovelluksille näytetään vain kuva, kaikelle muulle näytetään kuva ja teksti." - -#: tips:174 -msgid "Image only" -msgstr "Vain kuva" - -#: tips:175 -msgid "Only the image is shown." -msgstr "Vain kuva näytetään." - -#: tips:176 -msgid "Panel width (thin)" -msgstr "Paneelin leveys (ohut)" - -#: tips:177 -msgid "(thick)" -msgstr "(paksu)" - -#: tips:178 -msgid "The size of the panels." -msgstr "Paneelien koko." - -#: tips:179 -msgid "Do not cover panel" -msgstr "Älä peitä paneelia" - -#: tips:180 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" -"Pyydä ikkunamanageria välttämään paneelien peittämistä suurentaessasi " -"ikkunoita. Jotkin ikkunamanagerit eivät noudata tätä. Tämän ollessa pois " -"käytöstä tiedostonhallinta pyytää jättämään peittämättä vain pari pikseliä " -"ruudun reunalta, jotta automaattinostaminen toimisi." - -#: tips:181 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:182 -msgid "Confine to Xinerama monitor" -msgstr "Rajoita Xinerama-näytölle" - -#: tips:183 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" -"Jos käytät useampaa näyttöä Xineraman kautta, käytä tätä asetusta " -"rajoittaaksesi paneelit yhden näytön alueelle venyttämisen sijaan." - -#: tips:184 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "" -"Näyttö, jonka alueelle paneelit pakotetaan Xinerama-tilassa (numerointi " -"alkaen 0:sta)." - -#: tips:185 -msgid "Desktop" -msgstr "" - -#: tips:186 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" - -#: tips:187 -#, fuzzy -msgid "Panel only" -msgstr "Vain kuva" - -#: tips:188 -#, fuzzy -msgid "Only a panel is shown." -msgstr "Vain kuva näytetään." - -#: tips:189 -#, fuzzy -msgid "Pinboard only" -msgstr "Työpöytä" - -#: tips:190 -#, fuzzy -msgid "Only the pinboard is shown." -msgstr "Vain kuva näytetään." - -#: tips:191 -#, fuzzy -msgid "Panel and pinboard" -msgstr "Työpöytä" - -#: tips:192 -msgid "Both a panel and a pinboard are shown." -msgstr "" - -#: tips:193 -#, fuzzy -msgid "Panel" -msgstr "Paneelit" - -#: tips:194 -msgid "Enter the name of the panel to show here." -msgstr "" - -#: tips:196 -msgid "Enter the name of the pinboard to show here." -msgstr "" - -#: tips:197 -msgid "Changes here take effect the next time the filer is run." -msgstr "" - -#: tips:198 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" - -#: tips:199 -msgid "Action windows" -msgstr "Toimintaikkunat" - -#: tips:200 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Toimintaikkuna avautuu, kun aloitat taustatoiminnon,\n" -"kuten tiedostojen kopioinnin tai poiston." - -#: tips:201 -msgid "Auto-start (Quiet) these actions" -msgstr "Kännistä automaattisesti (hiljaisena) nämä toiminnot" - -#: tips:203 -msgid "Copy files without confirming first." -msgstr "Kopioi tiedostot pyytämättä vahvistusta." - -#: tips:205 -msgid "Move files without confirming first." -msgstr "Siirrä tiedostot pyytämättä vahvistusta." - -#: tips:207 -msgid "Create links to files without confirming first." -msgstr "Luo linkit tiedostoihin pyytämättä vahvistusta." - -#: tips:209 -msgid "Delete files without confirming first." -msgstr "Poista tiedostot pyytämättä vahvistusta.." - -#: tips:210 -msgid "Mount" -msgstr "Liitä" - -#: tips:211 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Liitä ja irrota tiedostojärjestelmät pyytämättä vahvistusta." - -#: tips:212 -msgid "Default settings" -msgstr "Oletusasetukset" - -#: tips:214 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Poista kirjoitussuojatut tiedostot pyytämättä vahvistusta." - -#: tips:216 -msgid "Don't display so much information in the message area." -msgstr "Näytä vähemmän tietoa viestialueella." - -#: tips:218 -msgid "Also change contents of subdirectories." -msgstr "Muuta myös alihakemistojen sisältöä." - -#: tips:221 -msgid "Drag and Drop" -msgstr "Vetäminen ja Pudottaminen" - -#: tips:222 -msgid "Dragging to icons" -msgstr "Kuvakkeisiin raahaaminen" - -#: tips:223 -msgid "Allow dragging to icons in filer windows" -msgstr "Salli tiedostonhallintaikkunoiden kuvakkeisiin raahaaminen" - -#: tips:224 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Tämän ollessa valittuna voit raahata tiedoston alikansion tai sovelluksen " -"päälle tiedostonhallintaikkunassa. Tällöin kohde korostetaan ja " -"pudottaessasi tiedosto lisätään hakemistoon tai ladataan sovellukseen." - -#: tips:225 -msgid "Directories spring open" -msgstr "Hakemistot ponnahtavat auki" - -#: tips:226 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Tämä asetus, joka vaatii myös ylemmän kohdan olevan valittuna, saa " -"korostetun hakemiston 'ponnahtamaan auki' pidettyäsi tiedostoa sen " -"yläpuolella hetken aikaa." - -#: tips:227 -msgid "Spring delay:" -msgstr "Ponnahdusviive:" - -#: tips:228 -msgid "ms" -msgstr "ms" - -#: tips:229 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Tämä asetus määrää, kuinka kauan millisekunneissa sinun täytyy pidellä " -"tiedostoa hakemiston päällä, ennen kuin se ponnahtaa auki. Myös ylläoleva " -"asetus täytyy olla valittuna, jotta tämä vaikuttaisi." - -#: tips:230 -msgid "When dragging files with the left mouse button" -msgstr "Raahattaessa tiedostoja hiiren vasemmalla painikkeella" - -#: tips:231 tips:235 -msgid "Show a menu of possible actions" -msgstr "Näytä mahdolliset toiminnot valikkona" - -#: tips:232 -msgid "Copy the files" -msgstr "Kopioi tiedostot" - -#: tips:233 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Huomaa, että saat yhä valikon esiin raahaamalla, kun Alt-näppäin on " -"painettuna." - -#: tips:234 -msgid "When dragging files with the middle mouse button" -msgstr "Raahattaessa tiedostoja hiiren keskipainikkeella" - -#: tips:236 -msgid "Move the files" -msgstr "Siirrä tiedostot" - -#: tips:237 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Huomaa, että saat yhä valikon esiin raahaamalla vasemmalla painikkeella, kun " -"Alt-näppäin on painettuna." - -#: tips:238 -msgid "Download handler" -msgstr "Latauksenkäsittelijä" - -#: tips:239 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Kun raahaat tiedoston web-selaimesta tai muusta etäkohteesta, tätä " -"sovellusta käytetään sen lataamiseen koneellesi. $1 on tiedostonhallintaan " -"raahaamasi URI, ja kohde on nykyinen hakemisto. Esim:\n" -"xterm -e wget $1" - -#: tips:240 -msgid "Menus" -msgstr "Valikot" - -#: tips:242 -msgid "Size of icons in menus:" -msgstr "Valikkojen kuvakkeiden koko:" - -#: tips:243 -msgid "No Icons" -msgstr "Ei Kuvakkeita" - -#: tips:246 -msgid "Same as current window" -msgstr "Sama kuin nykyisessä ikkunassa" - -#: tips:247 -msgid "Same as default" -msgstr "Sama kuin oletus" - -#: tips:248 -msgid "Behaviour" -msgstr "Toimintatapa" - -#: tips:249 -msgid "File menu on right-click" -msgstr "Tiedostovalikko oikealla painikkeella" - -#: tips:250 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Näytä Tiedostovalikko päävalikon sijaan napsauttaessasi oikeanpuoleista " -"hiiren painiketta, kun valittuna on tiedostoja (päävalikon saat pitämällä " -"Ctrl-näppäinta painettuna)." - -#: tips:251 -msgid "`Xterm Here' program" -msgstr "'Pääte Tähän'-sovellus" - -#: tips:252 -msgid "The program to launch when you choose `Xterm Here' from the menu." -msgstr "" -"Sovellus, joka käynnistetään valitessasi valikosta toiminnon 'Pääte Tähän'." - -#: tips:253 -msgid "Keyboard shortcuts" -msgstr "Pikanäppäimet" - -#: tips:255 -msgid "MIME types" -msgstr "MIME-tyypit" - -#: tips:256 -#, fuzzy -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Tiedostonhallinta käyttää sääntöjoukkoa, jonka perusteella se selvittää MIME-" -"tyypin jokaiselle tavalliselle tiedostolle, ja valitsee sitten sopivan " -"kuvakkeen kyseiselle tyypille. Käytä MIME-Editor-sovellusta muokataksesi " -"tiedostotyypin arvaussääntöjä:\n" -"\n" -"http://rox.sourceforge.net/mime_editor.html" - -#: tips:257 -msgid "Edit MIME rules" -msgstr "" - -#: tips:258 -#, fuzzy -msgid "Themes" -msgstr "Ajat" - -#: tips:259 -msgid "Icon theme" -msgstr "Kuvaketeema" - -#: tips:260 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Teemat pitäisi sijoittaa ~/.icons-hakemistoon" - -#: tips:261 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Käytä 'Aseta Kuvake...'-ikkunaa asettaaksesi kuvakkeet eri MIME-tyypeille. " -"Huomaa, että näin valitut kuvakkeet syrjäyttävät valitun teeman kuvakkeet." - -#: tips:262 -msgid "Colours" -msgstr "Värit" - -#: tips:263 -msgid "File type colours" -msgstr "Tiedostotyyppien värit" - -#: tips:264 -msgid "Colour files based on their types" -msgstr "Väritä tiedostot tyyppien mukaan" - -#: tips:265 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Tiedostonimet (ja tiedot) väritetään tiedoston tyypin mukaan." - -#: tips:266 -msgid "Directory:" -msgstr "Hakemisto:" - -#: tips:267 -msgid "Regular file:" -msgstr "Tavallinen tiedosto:" - -#: tips:268 -msgid "Pipe:" -msgstr "Putki:" - -#: tips:269 -msgid "Socket:" -msgstr "Vastake:" - -#: tips:271 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Virhe, kuten symbolinen linkki olemattomaan tiedostoon tai tiedosto, jonka " -"tarkasteluun tiedostonhallinnalla ei ole oikeuksia." - -#: tips:272 -msgid "Character device:" -msgstr "Merkkilaite:" - -#: tips:273 -msgid "Block device:" -msgstr "Lohkolaite:" - -#: tips:274 -msgid "Door:" -msgstr "Ovi:" - -#: tips:275 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Ovitiedostot muistuttavat hieman vastakkeita ja putkia, mutta niitä on nähty " -"vain Solaris-järjestelmissä." - -#: tips:276 -msgid "Executable file:" -msgstr "Käynnistystiedosto:" - -#: tips:277 -msgid "Application directory:" -msgstr "Sovellushakemisto:" - -#: tips:278 -msgid "Unknown type:" -msgstr "Tuntematon tyyppi:" - -#: tips:279 -msgid "Compatibility" -msgstr "Yhteensopivuus" - -#: tips:280 -msgid "Window manager problems" -msgstr "Ikkunamanagerin ongelmat" - -#: tips:281 -msgid "Override window manager control of the pinboard and panels" -msgstr "Syrjäytä ikkunamanagerin hallinta työpöydältä ja paneeleista." - -#: tips:282 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Jotkin ikkunamanagerit eivät tue uutta Extended Window Manager Hints-" -"järjestelmää, ja tämän vuoksi käsittelevät työpöytää ja paneeleita " -"tavallisina ikkunoina. Aseta tämä käyttöön korjataksesi ongelmat, kuten " -"työpöydän nouseminen etualalle napsautettaessa, otsakepalkkien ja muiden " -"reunusten ilmestyminen ikkunoiden ympärille tai niiden esiintyminen " -"ikkunanvalintalistoissa." - -#: tips:283 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "" -"Ohjaa taustakuvan päällä tapahtuvat hiiren napsautukset ikkunamanagerille" - -#: tips:284 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Tavallisesti oikeanpuoleinen hiirenpainike taustakuvan päällä avaa työpöydän " -"valikon ja vasen painike poistaa valinnan. Aseta tämä käyttöön ohjataksesi " -"tapahtumat sen sijaan ikkunamanagerillesi. Kuvakkeen napsauttamisia ei " -"ohjata eteenpäin." - -#: tips:285 -msgid "Blackbox root menus hack" -msgstr "Blackboxin juurivalikon korjaus" - -#: tips:286 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox ja vastaavat ikkunamanagerit eivät vielä toimi hyvin ROX-" -"tiedostonhallinnan työpöydän kanssa. Tämä valinta ottaa käyttöön eräitä " -"kiertokeinoja. Näiden ikkunamanagerien odotetaan muuttavan käytöstään " -"uudemmissa versioissaan, jolloin tämä ei ole enää tarpeellista." - -#: tips:287 -msgid "Panel is a 'dock'" -msgstr "Paneeli on 'telakka'" - -#: tips:288 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" -"Poista tämä valinta, jos paneeli pysyy haluamattasi aina päällimmäisenä. " -"Vaatii ohjelman uudelleenkäynnistyksen." - -#: tips:289 -msgid "Drag and drop" -msgstr "Raahaaminen ja pudottaminen" - -#: tips:290 -msgid "Don't use hostnames" -msgstr "Älä käytä isäntänimiä" - -#: tips:291 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Jotkin vanhat sovellukset eivät tue täysin XDND-protokollaa ja saattavat " -"vaatia tämän asetuksen valitsemista. Käytä, jos raahatessasi tiedoston " -"sovelluksen päälle osoittimeen ilmestyy +-merkki, mutta pudotus ei toimi." - -#: tips:292 -msgid "Extended attributes" -msgstr "Lisäattribuutit" - -#: tips:293 -msgid "Don't use extended attributes" -msgstr "Älä käytä lisäattribuutteja" - -#: tips:294 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"Tämä poistaa käytöstä uudemmista käyttöjärjestelmistä ja " -"tiedostojärjestelmistä löytyvät tiedostojen lisäattribuutit. Tämän asetuksen " -"ollessa valittuna 'Aseta Tyyppi'-kohta on valikossa passiivinen, tiedoston " -"MIME-tyyppi päätellään ainoastaan tiedostonimen perusteella ja ominaisuudet-" -"ikkuna ei näytä lisäattribuutteja." - -#~ msgid "" -#~ "Error loading MIME database:\n" -#~ "%s" -#~ msgstr "" -#~ "Virhe ladattaessa MIME-tietokantaa:\n" -#~ "%s" - -#~ msgid "File '%s' corrupted!" -#~ msgstr "Tiedosto '%s' turmeltunut!" - -#~ msgid "" -#~ "The ~/.mime directory has moved. It should now be ~/.local/share/mime. " -#~ "You should move it there (and make a symlink from ~/.mime to it for older " -#~ "applications)." -#~ msgstr "" -#~ "~/.mime-hakemisto on siirtynyt. Sen pitäisi olla nyt ~/.local/share/mime. " -#~ "Sinun pitäisi siirtää se sinne (ja luoda symbolinen linkki kohteesta ~/." -#~ "mime vanhoja sovelluksia varten)." - -#~ msgid "" -#~ "The standard MIME type database (version 0.9 or later) was not found. The " -#~ "filer will probably not show the correct types for different files. You " -#~ "should download and install the 'shared-mime-info-0.9' package from " -#~ "here:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "If you have already installed this package, check that the permissions " -#~ "allow the files to be read (check /usr/local/share/mime/globs or /usr/" -#~ "share/mime/globs)." -#~ msgstr "" -#~ "Standardia MIME-tyyppitietokantaa (versiota 0.9 tai myöhempää) ei " -#~ "löytynyt. Tiedostonhallinta ei luultavasti näytä oikeita tyyppejä eri " -#~ "tiedostoille. Sinun pitäisi ladata ja asentaa 'shared-mime-info-0.9'-" -#~ "paketti täältä:\n" -#~ "http://www.freedesktop.org/software/shared-mime-info\n" -#~ "\n" -#~ "Jos olet jo asentanut tämän paketin, tarkista, että tiedostoihin on " -#~ "lukuoikeudet (tarkista /usr/local/share/mime/globs tai /usr/share/mime/" -#~ "globs)." - -#~ msgid "Icon '%s' not present in theme" -#~ msgstr "Kuvake '%s' puuttuu teemasta" - -#~ msgid "Executable files" -#~ msgstr "Suoritettavat tiedostot" - -#~ msgid "Ignore eXecutable bit for known extensions" -#~ msgstr "Jätä huomiotta suoritusbitti (x) tunnetuille tiedoston päätteille" - -#~ msgid "" -#~ "If a file has a known extension (eg '.gif') then ignore the executable " -#~ "bit. This is useful if you have files on a Windows-type filesystem which " -#~ "are being shown as executable programs." -#~ msgstr "" -#~ "Jos tiedoston pääte on tunnettu (esim '.gif'), jätä suoritusbitti (x) " -#~ "huomiotta. Tästä on hyötyä, jos sinulla on tiedostoja Windows-tyyppisessä " -#~ "tiedostojärjestelmässä ja niiden ilmoitetaan olevan suoritettavia." diff --git a/ROX-Filer/src/po/fr.po b/ROX-Filer/src/po/fr.po deleted file mode 100644 index 24dc64d7..00000000 --- a/ROX-Filer/src/po/fr.po +++ /dev/null @@ -1,4958 +0,0 @@ -# French messages for ROX-Filer -# Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Vincent Lefèvre -# Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007 Thierry Godefroy -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.5-20070224\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-24 22:38+0100\n" -"PO-Revision-Date: 2007-02-24 22:40+0100\n" -"Last-Translator: Vincent Lefevre \n" -"Language-Team: ROX Mailing List \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=iso-8859-1\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "_Silencieux" - -#: abox.c:227 -msgid "Quiet" -msgstr "Silencieux" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "Ne pas confirmer chaque opération" - -#: abox.c:454 infobox.c:771 tips:63 -msgid "Name" -msgstr "Nom" - -#: abox.c:460 menu.c:231 -msgid "Directory" -msgstr "Répertoire" - -#: abox.c:549 -msgid "Expression:" -msgstr "Expression :" - -#: action.c:56 -msgid "See the attr(5) man page for full details." -msgstr "Voir la page man attr(5) pour les détails complets." - -#: action.c:58 -msgid "See the fsattr(5) man page for full details." -msgstr "Voir la page man fsattr(5) pour les détails complets." - -#: action.c:60 -msgid "You do not appear to have OS support." -msgstr "Vous ne semblez pas avoir de support par le système d'exploitation." - -#: action.c:190 -msgid "Find expression reference" -msgstr "Référence de la recherche par expression" - -#: action.c:201 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Si vous êtes pressé\n" -"Mettez simplement le nom du fichier que vous recherchez entre apostrophes " -"(single quotes) :\n" -"'index.html' (pour trouver un fichier appelé 'index.html')\n" -"\n" -"Exemples\n" -"'*.htm', '*.html' (trouve les fichiers HTML)\n" -"EstRép 'lib' (trouve les répertoires nommés 'lib')\n" -"EstOrd 'core' (trouve un fichier ordinaire nommé 'core')\n" -"! (EstRép, EstOrd) (n'est ni un répertoire, ni un fichier ordinaire)\n" -"mtime après 1 jour passé et taille > 1Mo (gros, et récemment " -"modifié)\n" -"'CVS' prune, estrép (un fichier ordinaire pas dans CVS)\n" -"EstOrd system(grep -q fred \\\"%\\\") (contient le mot 'fred')\n" -"\n" -"Tests simples\n" -"EstOrd, EstLien, EstRép, EstCar, EstBloc, EstPér, EstTube, EstSocket, " -"EstPorte (types)\n" -"EstSUID, EstSGID, EstSticky, EstLisible, EstInscriptible, EstExécutable (permissions)\n" -"EstVide, EstÀMoi\n" -"Un motif entre apostrophes est un motif style shell avec métacaractères. " -"S'il\n" -"contient un slash (barre de fraction), alors la correspondance se fait avec " -"le\n" -"chemin complet ; sinon elle se fait seulement avec le nom de fichier " -"(feuille).\n" -"\n" -"Comparaisons\n" -"<, <=, =, !=, >, >=, Après, Avant (compare deux valeurs)\n" -"5 octets, 1Ko, 2Mo, 3Go (tailles de fichiers)\n" -"2 sec|min|heures|jours|semaines|ans passé|futur (dates)\n" -"atime, ctime, mtime, maintenant, taille, inode, nliens, uid, gid, blocs (valeurs)\n" -"\n" -"Fonctions spéciales\n" -"system(commande) (vrai si 'commande' se termine avec un code nul ;\n" -"un % dans 'commande' est remplacé par le chemin du fichier courant)\n" -"prune (faux, et empêche de chercher dans un répertoire)." - -#: action.c:248 -msgid "Change permissions reference" -msgstr "Référence du changement des permissions" - -#: action.c:259 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalement, il suffit de sélectionner une commande à partir du menu " -"(cliquer\n" -"sur la flèche à côté de la boîte de commande). Parfois, il vous faut " -"plus...\n" -"\n" -"Le format d'une commande est : CHANGEMENT, CHANGEMENT, ...\n" -"Chaque CHANGEMENT a la forme : QUI COMMENT PERMISSIONS\n" -"QUI est une combinaison de u, g et o qui " -"détermine s'il faut changer les\n" -"permissions pour le propriétaire (User), le groupe (Group) ou les autres " -"(Others).\n" -"COMMENT est +, - ou = pour ajouter, enlever ou " -"mettre exactement les permissions.\n" -"PERMISSIONS est une combinaison des lettres rwxXstugo\n" -"\n" -"Du texte entre parenthèses et les espaces sont ignorés.\n" -"\n" -"Exemples\n" -"u+rw : le propriétaire du fichier obtient la permission de lire et " -"d'écrire\n" -"g=u : les permissions du groupe sont mises comme celles du " -"propriétaire\n" -"o=u-w : les autres obtiennent les mêmes permissions que le " -"propriétaire, mais sans la permission d'écrire\n" -"a+x : tout le monde obtient la permission d'exécuter/accéder - " -"identique à ugo+x\n" -"a+X : les répertoires deviennent accessibles à tout le monde ; les " -"fichiers\n" -"qui étaient exécutables par quelqu'un le deviennent par tout le monde\n" -"u+rw, go+r : deux commandes à la fois !\n" -"u+s : mettre le bit SetUID - n'a souvent aucun effet sur les scripts\n" -"755 : mettre directement les permissions\n" -"\n" -"Voir la page man chmod(1) pour tous les détails." - -#: action.c:300 -msgid "Set type reference" -msgstr "Référence de « fixer le type »" - -#: action.c:311 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalement ROX-Filer détermine le type d'un fichier ordinaire en\n" -"comparant son nom à un motif. Pour changer le type du fichier, vous\n" -"devez le renommer.\n" -"\n" -"De nouveaux systèmes de fichiers peuvent supporter quelque chose appelé\n" -"« attributs étendus » qui peut être utilisé pour stocker des données\n" -"supplémentaires pour chaque fichier en paramètres nommés. ROX-Filer\n" -"utilise l'attribut « user.mime_type » pour stocker les types de fichier.\n" -"\n" -"Les types de fichier ne sont supportés que pour des fichiers ordinaires,\n" -"pas pour des répertoires, fichiers de périphérique, tubes ou sockets,\n" -"et seulement sur certains systèmes de fichiers et où c'est implémenté\n" -"par le système d'exploitation.\n" - -#: action.c:418 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Processus terminé.\n" - -#: action.c:434 -msgid "There was one error.\n" -msgstr "Il y a eu une erreur.\n" - -#: action.c:436 -#, c-format -msgid "There were %d errors.\n" -msgstr "Il y a eu %d erreurs.\n" - -#: action.c:460 -msgid "ERROR reading" -msgstr "ERREUR de lecture" - -#: action.c:503 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Terminé\n" - -#: action.c:559 support.c:395 -msgid "ERROR" -msgstr "ERREUR" - -#: action.c:713 main.c:690 main.c:697 main.c:711 -msgid "Yes" -msgstr "Oui" - -#: action.c:716 main.c:692 main.c:699 main.c:711 -msgid "No" -msgstr "Non" - -#: action.c:734 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Demande au processus fils de terminer...\n" - -#: action.c:741 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Tentative de tuer (KILL) le processus résistant...\n" - -#: action.c:894 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Compter le contenu de %s ?" - -#: action.c:930 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Supprimer %s'%s' ?" - -#: action.c:931 -msgid "WRITE-PROTECTED " -msgstr "PROTÉGÉ CONTRE L'ÉCRITURE " - -#: action.c:938 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Suppression de '%s'\n" - -#: action.c:951 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Répertoire '%s' supprimé\n" - -#: action.c:984 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Éjecter '%s' ?" - -#: action.c:991 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Éjection de '%s'\n" - -#: action.c:1010 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"L'éjection a échoué\n" - -#: action.c:1029 action.c:1048 -#, c-format -msgid "?Check '%s'?" -msgstr "?Vérifier '%s' ?" - -#: action.c:1045 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Condition de recherche invalide - changez-la et réessayez\n" - -#: action.c:1055 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(lors de la vérification de '%s')\n" - -#: action.c:1129 action.c:1154 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Changer les permissions de '%s' ?" - -#: action.c:1135 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Changement des permissions de '%s'\n" - -#: action.c:1152 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Commande de mode invalide - changez-la et réessayez\n" - -#: action.c:1210 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?Changer le contenu de '%s' ?" - -#: action.c:1213 action.c:1233 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Changer le type de '%s' ?" - -#: action.c:1230 -msgid "!Invalid type - change it and try again\n" -msgstr "!Type invalide - changez-le et réessayez\n" - -#: action.c:1252 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Changement du type de '%s' en '%s'\n" - -#: action.c:1275 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "'Pas de changement du type du répertoire '%s'\n" - -#: action.c:1281 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "'Fichier non ordinaire '%s' non changé\n" - -#: action.c:1341 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' existe déjà - %s ?" - -#: action.c:1343 -msgid "merge contents" -msgstr "fusionner les contenus" - -#: action.c:1344 -msgid "overwrite" -msgstr "écraser" - -#: action.c:1360 -msgid "'Trying copy anyway...\n" -msgstr "'On essaie quand même de copier...\n" - -#: action.c:1369 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Copier %s vers %s ?" - -#: action.c:1373 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Copie de %s vers %s\n" - -#: action.c:1388 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!ERREUR : la destination existe déjà, mais n'est pas un répertoire\n" - -#: action.c:1460 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Impossible de copier '%s'\n" - -#: action.c:1504 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' existe déjà - écraser ?" - -#: action.c:1519 -msgid "'Trying move anyway...\n" -msgstr "'On essaie quand même de déplacer...\n" - -#: action.c:1527 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Déplacer %s vers %s ?" - -#: action.c:1531 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Déplacement de %s vers %s\n" - -#: action.c:1539 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Impossible de déplacer %s vers %s\n" - -#: action.c:1560 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!ERREUR : on ne peut pas copier d'objet dans lui-même\n" - -#: action.c:1575 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!ERREUR : on ne peut pas déplacer/renommer d'objet dans lui-même\n" - -#: action.c:1587 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Lien de %s vers %s\n" - -#: action.c:1592 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Lier %s vers %s ?" - -#: action.c:1635 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Montage de %s\n" - -#: action.c:1636 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Démontage de %s\n" - -#: action.c:1639 -#, c-format -msgid "?Mount %s?" -msgstr "?Monter %s ?" - -#: action.c:1640 -#, c-format -msgid "?Unmount %s?" -msgstr "?Démonter %s ?" - -#: action.c:1661 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Le montage a échoué\n" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Le démontage a échoué\n" - -#: action.c:1670 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(semble maintenant être monté de toute façon)\n" - -#: action.c:1716 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Total : %s (" - -#: action.c:1722 -msgid "file" -msgstr "fichier" - -#: action.c:1722 -msgid "files" -msgstr "fichiers" - -#: action.c:1726 -msgid "no directories)\n" -msgstr "pas de répertoires)\n" - -#: action.c:1730 -msgid "directory" -msgstr "répertoire" - -#: action.c:1731 -msgid "directories" -msgstr "répertoires" - -#: action.c:1772 -msgid "!No mount points selected!\n" -msgstr "!Pas de point de montage sélectionné !\n" - -#: action.c:1857 -msgid "?Another search?" -msgstr "?Chercher encore?" - -#: action.c:1887 action.c:1918 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' est un lien symbolique\n" - -#: action.c:1958 -msgid "You need to select some items to search through" -msgstr "Vous devez sélectionner des objets pour la recherche" - -#: action.c:1968 menu.c:222 -msgid "Find" -msgstr "Chercher" - -#: action.c:2001 -msgid "You need to select some items to count" -msgstr "Vous devez sélectionner des objets à compter" - -#: action.c:2005 -msgid "Disk Usage" -msgstr "Occupation du disque" - -#: action.c:2041 -msgid "Mount / Unmount" -msgstr "Monter / Démonter" - -#: action.c:2056 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "" -"ROX-Filer ne supporte pas encore les points de montage sur votre système. " -"Désolé." - -#: action.c:2070 menu.c:210 tips:218 -msgid "Delete" -msgstr "Supprimer" - -#: action.c:2082 tips:223 -msgid "Force" -msgstr "Forcer" - -#: action.c:2082 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Ne pas confirmer la suppression d'objets protégés contre l'écriture" - -#: action.c:2085 action.c:2142 action.c:2203 action.c:2258 action.c:2296 -#: tips:225 -msgid "Brief" -msgstr "Bref" - -#: action.c:2085 -msgid "Only log directories being deleted" -msgstr "Ne lister que les répertoires supprimés" - -#: action.c:2102 -msgid "You need to select the items whose permissions you want to change" -msgstr "" -"Vous devez sélectionner les objets dont vous voulez changer les permissions" - -#: action.c:2110 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Rendre exécutable/cherchable)" - -#: action.c:2112 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Rendre non-exécutable/non-cherchable)" - -#: action.c:2114 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Donner au propriétaire lecture+écriture)" - -#: action.c:2116 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privé - accès par le propriétaire uniquement)" - -#: action.c:2118 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Accès public, sauf écriture)" - -#: action.c:2129 menu.c:183 menu.c:220 tips:80 -msgid "Permissions" -msgstr "Permissions" - -#: action.c:2142 action.c:2203 -msgid "Don't list processed files" -msgstr "Ne pas lister les fichiers traités" - -#: action.c:2145 action.c:2206 tips:227 -msgid "Recurse" -msgstr "Récursif" - -#: action.c:2145 -msgid "Also change contents of subdirectories" -msgstr "Changer aussi le contenu des sous-répertoires" - -#: action.c:2149 -msgid "Command:" -msgstr "Commande :" - -#: action.c:2177 -msgid "You need to select the items whose type you want to change" -msgstr "Vous devez sélectionner les objets dont vous voulez changer le type" - -#: action.c:2190 -msgid "Set type" -msgstr "Fixer le type" - -#: action.c:2206 -msgid "Change contents of subdirectories" -msgstr "Changer le contenu des sous-répertoires" - -#: action.c:2213 infobox.c:627 -msgid "Type:" -msgstr "Type :" - -#: action.c:2242 dnd.c:122 menu.c:2004 tips:212 -msgid "Copy" -msgstr "Copier" - -#: action.c:2254 action.c:2292 tips:229 -msgid "Newer" -msgstr "Plus récent" - -#: action.c:2255 action.c:2293 tips:230 -msgid "Only over-write if source is newer than destination." -msgstr "Écraser seulement si la source est plus récente que la destination." - -#: action.c:2258 -msgid "Only log directories as they are copied" -msgstr "Ne lister que les répertoires copiés" - -#: action.c:2280 dnd.c:123 tips:214 -msgid "Move" -msgstr "Déplacer" - -#: action.c:2296 -msgid "Don't log each file as it is moved" -msgstr "Ne pas lister chaque fichier déplacé" - -#: action.c:2316 tips:216 -msgid "Link" -msgstr "Lier" - -#: action.c:2337 appmenu.c:111 filer.c:593 -msgid "Eject" -msgstr "Éjecter" - -#: action.c:2403 -msgid "Deleting items such as " -msgstr "La suppression d'objets comme " - -#: action.c:2407 -msgid "Deleting the item " -msgstr "La suppression de l'objet " - -#: action.c:2409 -msgid "Deleting the items " -msgstr "La suppression des objets " - -#: action.c:2428 -msgid " and " -msgstr " et " - -#: action.c:2437 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" affectera des objets sur le punaiseur ou le panneau - voulez-vous vraiment " -"le supprimer ?" - -#: action.c:2444 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" affectera des objets sur le punaiseur ou le panneau - voulez-vous vraiment " -"les supprimer ?" - -#: appmenu.c:197 -msgid "" -msgstr "<étiquette manquante>" - -#: appmenu.c:320 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Faites un lien symbolique des programmes que vous voulez dans ce répertoire. " -"Ils apparaîtront dans le menu pour tous les objets de ce type (%s/%s)." - -#: appmenu.c:364 menu.c:233 -msgid "Customise Menu..." -msgstr "Personnaliser le menu..." - -#: appmenu.c:421 menu.c:250 toolbar.c:158 -msgid "Help" -msgstr "Aide" - -#: bookmarks.c:145 -msgid "Path" -msgstr "Chemin" - -#: bookmarks.c:153 -msgid "Title" -msgstr "Titre" - -#: bookmarks.c:302 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Impossible de mettre en signet la ressource non locale '%s'\n" - -#: bookmarks.c:310 bookmarks.c:628 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' n'est pas un répertoire" - -#: bookmarks.c:516 -msgid "You should first select some rows to delete" -msgstr "Vous devez d'abord sélectionner des rangées à supprimer" - -#: bookmarks.c:540 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Placez le curseur sur une entrée de la liste pour la déplacer" - -#: bookmarks.c:560 -msgid "This item is already at the end" -msgstr "Cet objet est déjà à la fin" - -#: bookmarks.c:634 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Impossible de mettre en signets des répertoires non locaux comme '%s'" - -#: bookmarks.c:776 -msgid "Add New Bookmark" -msgstr "Ajouter un nouveau signet" - -#: bookmarks.c:783 -msgid "Edit Bookmarks" -msgstr "Éditer les signets" - -#: bookmarks.c:788 -msgid "Recently Visited" -msgstr "Récemment visités" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "Renommage en masse de fichiers" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "Revenir" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "Faire de la colonne Nouveau une copie de Ancien" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "_Renommer" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "Remplacer :" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Ceci est une expression rationnelle à rechercher.\n" -"^ désigne le début d'un nom de fichier\n" -"$ désigne la fin\n" -"\\. désigne un point\n" -"\\.htm$ correspond à « .htm » dans « index.htm », etc." - -#: bulk_rename.c:107 -msgid "With:" -msgstr "par :" - -#: bulk_rename.c:114 -msgid "" -"The first match in each filename will be replaced by this string. There are " -"no special characters." -msgstr "" -"La première correspondance dans chaque fichier sera remplacé par la chaîne. " -"Il n'y a pas de caractères spéciaux." - -#: bulk_rename.c:118 -msgid "Apply" -msgstr "Appliquer" - -#: bulk_rename.c:121 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"Faire un chercher-remplacer dans la colonne Nouveau. Les fichiers ne sont " -"pas réellement renommés jursqu'à ce que vous cliquiez sur le bouton Renommer " -"ci-dessous." - -#: bulk_rename.c:140 -msgid "Old name" -msgstr "Ancien nom" - -#: bulk_rename.c:149 -msgid "New name" -msgstr "Nouveau nom" - -#: bulk_rename.c:257 -msgid "No strings (in the New column) matched the given expression" -msgstr "" -"Aucune chaîne (dans la colonne Nouveau) ne correspond à l'expression donnée" - -#: bulk_rename.c:262 -msgid "One name matched, but the result was the same" -msgstr "Un nom correspond, mais le résultat est le même" - -#: bulk_rename.c:265 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d noms correspondent, mais les résultats sont tous les mêmes" - -#: bulk_rename.c:291 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" -"Donnez une expression rationnelle et une chaîne de remplacement " -"correspondante." - -#: bulk_rename.c:308 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (pour '%s')" - -#: bulk_rename.c:341 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Un fichier nommé '%s' existe déjà. Renommage en masse abandonné." - -#: bulk_rename.c:346 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Impossible de renommer '%s' en '%s' :\n" -"%s\n" -"Renommage en masse abandonné." - -#: bulk_rename.c:408 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Un fichier nommé '%s' existe déjà" - -#: bulk_rename.c:419 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"Certains des noms de « Nouveau » contiennent des caractères / (e.g. '%s'). " -"Ceci causera le déplacement des fichiers dans des répertoires différents. " -"Continuer ?" - -#: bulk_rename.c:434 -msgid "None of the names have changed. Nothing to do!" -msgstr "Aucun des noms n'a changé. Rien à faire !" - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d répertoires n'ont pas pu être migrés" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"Les choix ont été déplacés de \n" -"%s\n" -" à leur nouvel emplacement \n" -"%s\n" -"%s" - -#: dir.c:980 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Impossible de faire un stat du répertoire : %s" - -#: dir.c:989 -#, c-format -msgid "Can't open directory: %s" -msgstr "Impossible d'ouvrir le répertoire : %s" - -#: display.c:629 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) a échoué : %s" - -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Lien (relatif)" - -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Lien (absolu)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "Erreur interne - mauvais type d'info" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "Faites glisser ici un répertoire pour le mettre en signet." - -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "Erreur de protocole XDS : le nom de fichier ne doit pas contenir '/'\n" - -#: dnd.c:603 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"Cible XdndDirectSave0 fournie, mais l'atome XdndDirectSave0 (type text/" -"plain) ne contenait pas de nom de fichier (feuille)\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Désolé - j'ai besoin d'un type cible text/uri-list ou XdndDirectSave0." - -#: dnd.c:619 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"Désolé - j'ai besoin d'un type cible text/uri-list ou application/octet-" -"stream." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Impossible d'ajouter certains objets sur le punaiseur, parce qu'ils sont sur " -"une machine distante. Par exemple :\n" -"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "Cible inconnue" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "" -"L'application distante ne peut pas ou ne veut pas m'envoyer les données - " -"désolé" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "" -"Erreur de protocole XDS : le code de retour devrait être 'S', 'F' ou 'E'\n" - -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Désolé, impossible d'afficher un menu des actions pour un fichier distant / " -"des données brutes." - -#: dnd.c:859 -msgid "UntitledData" -msgstr "UntitledData" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "Erreur lors de la sauvegarde du fichier : %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Pas d'URI dans le text/uri-list (il n'y a rien à faire !)" - -#: dnd.c:991 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Impossible d'obtenir les données de la machine distante (application/octet-" -"stream non fourni)" - -#: dnd.c:1014 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"Certains de ces fichiers sont sur une machine différente - ils seront " -"ignorés - désolé" - -#: dnd.c:1021 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Aucun de ces fichiers n'est sur la machine locale - je ne peux pas traiter " -"de multiples fichiers distants - désolé." - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "Action demandée inconnue" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "Erreur lors du chargement de la liste des fichiers : %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "Montrer" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "Montrer le choix courant dans une fenêtre du filer" - -#: dropbox.c:172 -msgid "" -msgstr "" - -#: dropbox.c:237 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"Je ne peux pas vous montrer l'objet actuellement fixé, parce que rien n'est " -"fixé actuellement. Faites glisser quelque chose ici !" - -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "" -"Désolé, vous devez faire glisser exactement un seul fichier sur la zone de " -"dépôt." - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "" -"Désolé, je ne peux pas utiliser '%s' parce que ce n'est pas un fichier local." - -#: dropbox.c:278 pinboard.c:858 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Impossible d'accéder à '%s' :\n" -"%s" - -#: filer.c:456 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Erreur lors de la lecture de '%s' :\n" -"%s\n" - -#: filer.c:460 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Erreur lors de la lecture de '%s' :\n" -"%s" - -#: filer.c:576 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Voulez-vous démonter ce fichier de périphérique (« device ») ?\n" -"\n" -"Démonter un fichier de périphérique permet d'enlever le disque de manière " -"sure." - -#: filer.c:580 -msgid "No change" -msgstr "Pas de changement" - -#: filer.c:586 menu.c:865 -msgid "Unmount" -msgstr "Démonter" - -#: filer.c:690 -msgid "Directory missing/deleted" -msgstr "Répertoire manquant/supprimé" - -#: filer.c:1054 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Le groupe %s n'est pas défini. Sélectionnez des fichiers et appuyez sur " -"+%s pour le définir. Appuyez seulement sur %s pour resélectionner ces " -"fichiers à l'avenir.\n" -"Assurez-vous que NumLock est activé si vous utilisez le pavé numérique." - -#: filer.c:1290 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Le répertoire '%s' n'est pas accessible" - -#: filer.c:1442 -#, c-format -msgid "Directory '%s' not found." -msgstr "Répertoire '%s' non trouvé." - -#: filer.c:1742 -msgid "Cancel" -msgstr "Annuler" - -#: filer.c:2023 -msgid "A" -msgstr "T" - -#: filer.c:2025 find.c:923 -msgid "G" -msgstr "G" - -#: filer.c:2030 -msgid "S" -msgstr "L" - -#: filer.c:2032 -msgid "T" -msgstr "V" - -#: filer.c:2042 -msgid "All, " -msgstr "Tous, " - -#: filer.c:2045 -#, c-format -msgid "Glob (%s), " -msgstr "Glob (%s), " - -#: filer.c:2053 -msgid "Scanning, " -msgstr "Lecture, " - -#: filer.c:2055 -msgid "Thumbs, " -msgstr "Vignettes, " - -#: filer.c:2331 -msgid "Symbolic link to " -msgstr "Lien symbolique vers " - -#: filer.c:2373 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "" -"Ce nom de fichier n'est pas en UTF-8 valide. Vous devriez le renommer.\n" - -#: filer.c:2684 menu.c:1994 -msgid "Item no longer exists!" -msgstr "L'objet n'existe plus !" - -#: filer.c:3411 -msgid "Select display properties to save" -msgstr "Sélectionnez des propriétés d'affichage à sauver" - -#: filer.c:3418 -msgid "Position" -msgstr "Position" - -#: filer.c:3423 toolbar.c:133 toolbar.c:137 tips:66 -msgid "Size" -msgstr "Taille" - -#: filer.c:3428 -msgid "Show hidden" -msgstr "Montrer les fichiers cachés" - -#: filer.c:3434 -msgid "Display style" -msgstr "Style d'affichage" - -#: filer.c:3440 -msgid "Sort type and order" -msgstr "Type de tri et ordre" - -#: filer.c:3445 toolbar.c:141 -msgid "Details" -msgstr "Détails" - -#: filer.c:3450 tips:119 tips:120 -msgid "Thumbnails" -msgstr "Vignettes" - -#: filer.c:3456 -msgid "Filter" -msgstr "Filtre" - -#: find.c:485 -msgid "And" -msgstr "Et" - -#: find.c:509 -msgid "Not" -msgstr "Non" - -#: find.c:552 -msgid "system" -msgstr "system" - -#: find.c:560 -msgid "prune" -msgstr "prune" - -#: find.c:648 -msgid "After" -msgstr "Après" - -#: find.c:650 -msgid "Before" -msgstr "Avant" - -#: find.c:744 -msgid "IsReg" -msgstr "EstOrd" - -#: find.c:746 -msgid "IsLink" -msgstr "EstLien" - -#: find.c:748 -msgid "IsDir" -msgstr "EstRép" - -#: find.c:750 -msgid "IsChar" -msgstr "EstCar" - -#: find.c:752 -msgid "IsBlock" -msgstr "EstBloc" - -#: find.c:754 -msgid "IsDev" -msgstr "EstPér" - -#: find.c:756 -msgid "IsPipe" -msgstr "EstTube" - -#: find.c:758 -msgid "IsSocket" -msgstr "EstSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "EstPorte" - -#: find.c:762 -msgid "IsSUID" -msgstr "EstSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "EstSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "EstSticky" - -#: find.c:768 -msgid "IsReadable" -msgstr "EstLisible" - -#: find.c:770 -msgid "IsWriteable" -msgstr "EstInscriptible" - -#: find.c:772 -msgid "IsExecutable" -msgstr "EstExécutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "EstVide" - -#: find.c:776 -msgid "IsMine" -msgstr "EstÀMoi" - -#: find.c:904 -msgid "Now" -msgstr "Maintenant" - -#: find.c:917 -msgid "Byte" -msgstr "Octet" - -#: find.c:917 -msgid "Bytes" -msgstr "Octets" - -#: find.c:919 -msgid "Kb" -msgstr "Ko" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mo" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Go" - -#: find.c:925 -msgid "Sec" -msgstr "Sec" - -#: find.c:925 -msgid "Secs" -msgstr "Sec" - -#: find.c:927 -msgid "Min" -msgstr "Min" - -#: find.c:927 -msgid "Mins" -msgstr "Min" - -#: find.c:929 -msgid "Hour" -msgstr "Heure" - -#: find.c:929 -msgid "Hours" -msgstr "Heures" - -#: find.c:931 -msgid "Day" -msgstr "Jour" - -#: find.c:931 -msgid "Days" -msgstr "Jours" - -#: find.c:933 -msgid "Week" -msgstr "Semaine" - -#: find.c:933 -msgid "Weeks" -msgstr "Semaines" - -#: find.c:935 -msgid "Year" -msgstr "An" - -#: find.c:935 -msgid "Years" -msgstr "Ans" - -#: find.c:944 -msgid "Ago" -msgstr "Passé" - -#: find.c:946 -msgid "Hence" -msgstr "Futur" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "taille" - -#: find.c:969 -msgid "inode" -msgstr "inode" - -#: find.c:971 -msgid "nlinks" -msgstr "nliens" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "blocs" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "Sauver sous :" - -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "SansNom" - -#: gtksavebox.c:471 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"L'application distante veut utiliser « Direct Save », mais je ne peux pas " -"lire la propriété XdndDirectSave0 (type text/plain).\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Faites glisser l'icône vers une fenêtre répertoire\n" -"(ou entrez un chemin complet)" - -#: gui_support.c:329 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:398 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"Tentative de lecture d'un fichier XML en tant que fichier texte. Le fichier " -"'%s' est peut-être altéré." - -#: gui_support.c:415 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and try changing something and then changing it back (causing " -"the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Erreur dans le fichier '%s' à la ligne %d : \n" -"\"%s\"\n" -"Cela peut être dû à la mise à jour depuis une version antérieure de ROX-" -"Filer. Ouvrez la fenêtre « Options » et essayez de changer quelque chose " -"puis de le remettre à la valeur voulue (pour que le fichier soit resauvé).\n" -"Les erreurs suivantes seront ignorées." - -#: gui_support.c:1007 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Fin de ligne incorrecte ou manquante dans les données text/uri-list" - -#: gui_support.c:1339 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Impossible d'ouvrir le fichier '%s' : %s" - -#: gui_support.c:1383 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"Impossible de charger l'image '%s' : raison inconnue, probablement un " -"fichier d'image corrompu" - -#: gui_support.c:1434 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It " -"can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Ce programme (%s) ne peut pas tourner, car la commande 0launch n'est pas " -"disponible. Elle peut être téléchargée d'ici :\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:36 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"Noter que vous devez sauver vos choix et relancer le filer pour que la " -"nouvelle langue soit entièrement supportée." - -#: icon.c:76 -msgid "(click to set)" -msgstr "(cliquer pour fixer)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:132 menu.c:251 -msgid "About ROX-Filer..." -msgstr "Au sujet de ROX-Filer..." - -#: icon.c:133 menu.c:252 -msgid "Show Help Files" -msgstr "Voir les fichiers d'aide" - -#: icon.c:134 menu.c:253 -msgid "Manual" -msgstr "Manuel" - -#: icon.c:136 menu.c:229 -msgid "Options..." -msgstr "Options..." - -#: icon.c:137 menu.c:238 -msgid "Home Directory" -msgstr "Répertoire personnel" - -#: icon.c:138 icon.c:1389 menu.c:206 type.c:221 -msgid "File" -msgstr "Fichier" - -#: icon.c:139 menu.c:212 menu.c:878 -msgid "Shift Open" -msgstr "Shift Ouvrir" - -#: icon.c:140 menu.c:217 -msgid "Properties" -msgstr "Propriétés" - -#: icon.c:141 menu.c:215 -msgid "Set Run Action..." -msgstr "Fixer l'action d'exécution..." - -#: icon.c:142 menu.c:216 -msgid "Set Icon..." -msgstr "Fixer l'icône..." - -#: icon.c:143 icon.c:846 -msgid "Edit Item" -msgstr "Éditer l'objet" - -#: icon.c:144 -msgid "Show Location" -msgstr "Voir l'emplacement" - -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "Enlever le(s) objet(s)" - -#: icon.c:297 menu.c:767 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:310 -msgid "Nothing" -msgstr "Rien" - -#: icon.c:571 -msgid "The location must contain at least one character!" -msgstr "L'emplacement doit contenir au moins un caractère !" - -#: icon.c:636 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "Vous devez déverrouiller '%s' avant de l'enlever" - -#: icon.c:646 -msgid "You must first select some items to remove" -msgstr "Vous devez d'abord sélectionner des objets à enlever" - -#: icon.c:652 -msgid "An item must be unlocked before it can be removed." -msgstr "Un objet doit être déverrouillé avant qu'il puisse être enlevé." - -#: icon.c:666 -msgid "You must open the menu over an item" -msgstr "Vous devez ouvrir le menu au-dessus d'un objet" - -#: icon.c:691 menu.c:1274 -msgid "You can only set the run action for a regular file" -msgstr "" -"Vous ne pouvez fixer l'action d'exécution que pour un fichier ordinaire" - -#: icon.c:777 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Appuyer sur le raccourci désiré (e.g. Control+F1)" - -#: icon.c:799 -msgid "Failed to get keyboard grab!" -msgstr "Impossible de récupérer l'événement clavier !" - -#: icon.c:849 -msgid "Clicking the icon opens:" -msgstr "Un clic sur l'icône ouvre :" - -#: icon.c:859 -msgid "Arguments to pass (for executables):" -msgstr "Arguments à passer (pour les exécutables) :" - -#: icon.c:873 -msgid "The text displayed under the icon is:" -msgstr "Le texte affiché au-dessous de l'icône est :" - -#: icon.c:886 -msgid "The keyboard shortcut is:" -msgstr "Le raccourci clavier est :" - -#: icon.c:906 -msgid "Locked" -msgstr "Verrouillé" - -#: icon.c:911 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "Verrouiller un objet l'empêche d'être accidentellement enlevé" - -#: infobox.c:111 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Êtes-vous sûr de vouloir ouvrir %d fenêtres ?" - -#: infobox.c:112 -msgid "Show Info" -msgstr "Montrer" - -#: infobox.c:134 menu.c:772 -msgid "(bad utf-8)" -msgstr "(utf-8 incorrect)" - -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "Voir les fichiers d'_aide" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Permissions" - -#: infobox.c:290 -msgid "Contents indicate..." -msgstr "Le contenu indique..." - -#: infobox.c:427 infobox.c:568 support.c:349 -msgid "bytes" -msgstr "octets" - -#: infobox.c:450 -msgid "Failed to read size" -msgstr "Impossible de lire la taille" - -#: infobox.c:511 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' n'est plus un lien symbolique" - -#: infobox.c:518 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Impossible de supprimer le lien '%s' :\n" -"%s" - -#: infobox.c:523 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Impossible de créer le lien symbolique depuis '%s' :\n" -"%s\n" -"(note: l'ancien lien a été supprimé)" - -#: infobox.c:547 tips:287 -msgid "Error:" -msgstr "Erreur :" - -#: infobox.c:554 -msgid "Real directory:" -msgstr "Vrai répertoire :" - -#: infobox.c:557 -msgid "Owner, Group:" -msgstr "Propriétaire, groupe :" - -#: infobox.c:564 infobox.c:579 infobox.c:588 -msgid "Size:" -msgstr "Taille :" - -#: infobox.c:589 -msgid "Scanning" -msgstr "Lecture" - -#: infobox.c:614 -msgid "Failed to scan" -msgstr "Impossible de lire" - -#: infobox.c:621 -msgid "Change time:" -msgstr "Date de changement :" - -#: infobox.c:623 -msgid "Modify time:" -msgstr "Date de modification :" - -#: infobox.c:625 -msgid "Access time:" -msgstr "Date d'accès :" - -#: infobox.c:633 -msgid "Extended attributes:" -msgstr "Attributs étendus :" - -#: infobox.c:635 -msgid "Present" -msgstr "Présents" - -#: infobox.c:636 -msgid "None" -msgstr "Aucun" - -#: infobox.c:637 -msgid "Not supported" -msgstr "Non supportés" - -#: infobox.c:649 -msgid "Link target:" -msgstr "Cible du lien :" - -#: infobox.c:661 infobox.c:664 -msgid "Run action:" -msgstr "Exécuter l'action :" - -#: infobox.c:661 -msgid "Execute file" -msgstr "Exécuter le fichier" - -#: infobox.c:773 -msgid "Comment" -msgstr "Commentaire" - -#: infobox.c:775 -msgid "Execute" -msgstr "Exécuter" - -#: infobox.c:789 -msgid "" -msgstr "" - -#: infobox.c:859 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) dit... %s" - -#: infobox.c:916 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Impossible de changer les permissions : %s" - -#: infobox.c:934 -msgid "Owner" -msgstr "Propriétaire" - -#: infobox.c:936 -msgid "Group" -msgstr "Groupe" - -#: infobox.c:938 -msgid "World" -msgstr "Monde" - -#: infobox.c:941 -msgid "Read" -msgstr "Lecture" - -#: infobox.c:943 -msgid "Write" -msgstr "Écriture" - -#: infobox.c:945 -msgid "Exec" -msgstr "Exécution" - -#: infobox.c:962 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:969 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:976 -msgid "Sticky" -msgstr "Sticky" - -#: infobox.c:998 -msgid "Symbolic link" -msgstr "Lien symbolique" - -#: infobox.c:1001 -msgid "ROX application" -msgstr "Application ROX" - -#: infobox.c:1009 -msgid "mounted" -msgstr "monté" - -#: infobox.c:1009 -msgid "unmounted" -msgstr "démonté" - -#: infobox.c:1013 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Point de montage pour %s (%s)" - -#: infobox.c:1016 -#, c-format -msgid "Mount point (%s)" -msgstr "Point de montage (%s)" - -#: main.c:93 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer est fourni SANS GARANTIE AUCUNE,\n" -"sans préjudice des termes prévus par la loi.\n" -"Vous pouvez redistribuer des copies de ROX-Filer\n" -"selon les termes de la GNU General Public License.\n" -"Pour plus d'information à ce sujet, voir le fichier « COPYING ».\n" - -#: main.c:102 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Essayer `ROX-Filer/AppRun --help' pour plus d'information.\n" - -#: main.c:105 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Essayer `ROX-Filer/AppRun -h' pour plus d'information.\n" - -#: main.c:107 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"NOTE : votre système ne supporte pas les options longues - \n" -"vous devez utiliser les versions courtes à la place.\n" -"\n" - -#: main.c:113 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Syntaxe : ROX-Filer/AppRun [OPTION]... [FICHIER]...\n" -"Ouvre chaque répertoire ou fichier listé, ou le répertoire de travail\n" -"courant si aucun argument n'est donné.\n" -"\n" -" -b, --border=PANNEAU\touvre PANNEAU comme panneau (sur un bord)\n" -" -B, --bottom=PANNEAU\touvre PANNEAU en bas comme panneau\n" -" -c, --client-id=ID\tutilisé pour la gestion de sessions\n" -" -d, --dir=RÉPERTOIRE\touvre RÉPERTOIRE comme répertoire (pas application)\n" -" -D, --close=RÉP\tferme RÉPERTOIRE et ses sous-répertoires\n" -" -h, --help\t\taffiche cette aide et quitte\n" -" -l, --left=PANNEAU\touvre PANNEAU à gauche comme panneau\n" -" -m, --mime-type=FICH\taffiche le type MIME de FICHIER et quitte\n" -" -n, --new\t\tlance une nouvelle copie ; pour débugger le filer\n" -" -p, --pinboard=PUN\tutilise le punaiseur PUN comme punaiseur\n" -" -r, --right=PANNEAU\touvre PANNEAU à droite comme panneau\n" -" -R, --RPC\t\tinvoque la méthode d'appel lue sur stdin\n" -" -s, --show=FICHIER\touvre un répertoire montrant FICHIER\n" -" -S, --rox-session\toptions par défaut de panneau et punaiseur, et -n\n" -" -t, --top=PANNEAU\touvre PANNEAU en haut comme panneau\n" -" -u, --user\t\taffiche le nom de l'utilisateur dans chaque fenêtre\n" -" -U, --url=URL\t\touvre un fichier ou répertoire donné sous forme d'URI\n" -" -v, --version\t\taffiche les info concernant cette version et quitte\n" -" -x, --examine=FICH\tFICHIER a changé - le ré-examiner\n" -"\n" -"Rendre compte des bugs à %s.\n" -"Page web (dont les versions mises à jour): http://rox.sourceforge.net/\n" - -#: main.c:235 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"Nous avons eu une erreur BadWindow du serveur X. Ceci peut être dû au bug de " -"GTK (pendant le glisser-déposer ?) :\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Essayons de continuer..." - -#: main.c:394 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"L'argument -o n'est plus utilisé. Vous pouvez activer cette option " -"« override » de la boîte Options." - -#: main.c:522 -#, c-format -msgid "Running as user '%s'" -msgstr "Exécution en tant qu'utilisateur '%s'" - -#: main.c:682 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Compilé avec GTK version %s\n" - -#: main.c:683 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Tournant avec GTK version %d.%d.%d\n" - -#: main.c:687 -msgid "features set at compile time" -msgstr "fonctionnalités fixées à la compilation" - -#: main.c:688 -msgid "Large File Support" -msgstr "Support des fichiers longs" - -#: main.c:695 -msgid "Dnotify support" -msgstr "Support dnotify" - -#: main.c:702 -msgid "Binary compatibility" -msgstr "Compatibilité binaire" - -#: main.c:704 -msgid "Yes (can run with older glibc versions)" -msgstr "Oui (peut tourner avec des versions plus anciennes de la glibc)" - -#: main.c:706 -msgid "No (apsymbols.h not found)" -msgstr "Non (apsymbols.h non trouvé)" - -#: main.c:710 -msgid "Extended attribute support" -msgstr "Support des attributs étendus" - -#: main.c:867 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"Cliquer avec le bouton gauche pour lancer %s.\n" -"Cliquer avec le bouton droit pour obtenir une liste de versions." - -#: menu.c:179 tips:55 -msgid "Display" -msgstr "Affichage" - -#: menu.c:180 tips:60 -msgid "Icons View" -msgstr "Icônes" - -#: menu.c:181 -msgid "Icons, With..." -msgstr "Icônes, avec..." - -#: menu.c:182 tips:79 -msgid "Sizes" -msgstr "Tailles" - -#: menu.c:184 tips:271 -msgid "Types" -msgstr "Types" - -#: menu.c:185 tips:82 -msgid "Times" -msgstr "Dates & heures" - -#: menu.c:186 tips:61 tips:97 -msgid "List View" -msgstr "Liste" - -#: menu.c:188 -msgid "Bigger Icons" -msgstr "Icônes plus grandes" - -#: menu.c:189 -msgid "Smaller Icons" -msgstr "Icônes plus petites" - -#: menu.c:190 tips:76 -msgid "Automatic" -msgstr "Automatique" - -#: menu.c:192 -msgid "Sort by Name" -msgstr "Trier par nom" - -#: menu.c:193 -msgid "Sort by Type" -msgstr "Trier par type" - -#: menu.c:194 -msgid "Sort by Date" -msgstr "Trier par date" - -#: menu.c:195 -msgid "Sort by Size" -msgstr "Trier par taille" - -#: menu.c:196 -msgid "Sort by Owner" -msgstr "Trier par propriétaire" - -#: menu.c:197 -msgid "Sort by Group" -msgstr "Trier par groupe" - -#: menu.c:198 -msgid "Reversed" -msgstr "Inversé" - -#: menu.c:200 -msgid "Show Hidden" -msgstr "Montrer les fichiers cachés" - -#: menu.c:201 -msgid "Filter Files..." -msgstr "Filtrer des fichiers..." - -#: menu.c:202 -msgid "Filter Directories With Files" -msgstr "Filtrer les répertoires avec les fichiers" - -#: menu.c:203 -msgid "Show Thumbnails" -msgstr "Montrer les vignettes" - -#: menu.c:204 -msgid "Refresh" -msgstr "Rafraîchir" - -#: menu.c:205 -msgid "Save Current Display Settings..." -msgstr "Sauver les options d'affichage courantes..." - -#: menu.c:207 -msgid "Copy..." -msgstr "Copier..." - -#: menu.c:208 -msgid "Rename..." -msgstr "Renommer..." - -#: menu.c:209 -msgid "Link..." -msgstr "Lier..." - -#: menu.c:213 -msgid "Send To..." -msgstr "Envoyer à..." - -#: menu.c:218 -msgid "Count" -msgstr "Compter" - -#: menu.c:219 -msgid "Set Type..." -msgstr "Fixer le type..." - -#: menu.c:223 toolbar.c:154 -msgid "Select" -msgstr "Sélectionner" - -#: menu.c:224 -msgid "Select All" -msgstr "Tout sélectionner" - -#: menu.c:225 -msgid "Clear Selection" -msgstr "Oublier la sélection" - -#: menu.c:226 -msgid "Invert Selection" -msgstr "Inverser la sélection" - -#: menu.c:227 -msgid "Select by Name..." -msgstr "Sélectionner par nom..." - -#: menu.c:228 -msgid "Select If..." -msgstr "Sélectionner si..." - -#: menu.c:230 -msgid "New" -msgstr "Nouveau" - -#: menu.c:232 -msgid "Blank file" -msgstr "Fichier vide" - -#: menu.c:234 tasklist.c:306 -msgid "Window" -msgstr "Fenêtre" - -#: menu.c:235 -msgid "Parent, New Window" -msgstr "Père, nouvelle fenêtre" - -#: menu.c:236 -msgid "Parent, Same Window" -msgstr "Père, même fenêtre" - -#: menu.c:237 -msgid "New Window" -msgstr "Nouvelle fenêtre" - -#: menu.c:239 -msgid "Show Bookmarks" -msgstr "Montrer les signets" - -#: menu.c:240 -msgid "Follow Symbolic Links" -msgstr "Suivre les liens symboliques" - -#: menu.c:241 -msgid "Resize Window" -msgstr "Changer taille de la fenêtre" - -#: menu.c:244 -msgid "Close Window" -msgstr "Fermer la fenêtre" - -#: menu.c:246 -msgid "Enter Path..." -msgstr "Entrer un chemin..." - -#: menu.c:247 -msgid "Shell Command..." -msgstr "Commande shell..." - -#: menu.c:248 -msgid "Terminal Here" -msgstr "Terminal ici" - -#: menu.c:249 -msgid "Switch to Terminal" -msgstr "Remplacer par un terminal" - -#: menu.c:718 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "" -"Vous devez cliquer avec Menu, touche Shift enfoncée, au-dessus d'un fichier " -"pour l'envoyer quelque part" - -#: menu.c:757 -msgid "Next Click" -msgstr "Clic suivant" - -#: menu.c:779 -#, c-format -msgid "%d items" -msgstr "%d objets" - -#: menu.c:867 -msgid "Open unmounted" -msgstr "Ouvrir démonté" - -#: menu.c:870 -msgid "Show Target" -msgstr "Voir la cible" - -#: menu.c:872 -msgid "Look Inside" -msgstr "Voir à l'intérieur" - -#: menu.c:874 -msgid "Open As Text" -msgstr "Ouvrir en texte" - -#: menu.c:1045 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"Les attributs étendus, utilisés pour stocker des types, ne sont pas " -"supportés pour ce ou ces fichiers.\n" -"Ceci peut être dû à l'absence de support pour le système de fichiers ou la " -"bibliothèque C, ou bien le système de fichiers doit simplement être monté " -"avec la bonne option (« user_xattr » sous Linux)." - -#: menu.c:1051 -msgid "Setting type not supported for some of these files" -msgstr "Choix du type non supporté pour certains de ces fichiers" - -#: menu.c:1086 -msgid "_Relative link" -msgstr "_Lien relatif" - -#: menu.c:1092 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Si activée, le lien symbolique sera relatif au répertoire du fichier cible. " -"Utiliser ceci si le lien et la cible seront déplacés ensemble.\n" -"Si désactivée, le lien symbolique est absolu - utiliser ceci si le lien peut " -"être déplacé sans que la cible bouge." - -#: menu.c:1162 -msgid "New pathname is not absolute" -msgstr "Le nouveau chemin n'est pas absolu" - -#: menu.c:1228 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "Un lien depuis '%s' existe déjà. Le remplacer par un lien vers '%s' ?" - -#: menu.c:1234 -msgid "_Replace" -msgstr "_Remplacer" - -#: menu.c:1354 menu.c:1395 menu.c:1455 -msgid "Create" -msgstr "Créer" - -#: menu.c:1355 -msgid "NewDir" -msgstr "NouveauRep" - -#: menu.c:1369 menu.c:1375 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Erreur lors de la création de '%s' : %s" - -#: menu.c:1396 -msgid "NewFile" -msgstr "NouveauFichier" - -#: menu.c:1414 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "" -"Erreur lors de la création du fichier : impossible de trouver le modèle pour " -"%s" - -#: menu.c:1485 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"Le menu `Envoyer à' fournit une manière rapide d'envoyer des fichiers à une " -"application. Les applications listées sont celles contenues dans les " -"répertoires suivants :\n" -"\n" -"%s\n" -"%s\n" -"Le menu `Envoyer à' peut être ouvert par + au-dessus d'un " -"fichier.\n" -"\n" -"Utilisation avancée :\n" -"Vous pouvez aussi créer des sous-répertoires appelés `.text_html', `.text', " -"etc. qui n'apparaîtront que pour des fichiers de ce type. `.group' n'est " -"montré que si plusieurs fichiers sont sélectionnés." - -#: menu.c:1496 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Je vais maintenant vous montrer votre répertoire SendTo (« envoyer à ») ; " -"vous devez y lier (faire glisser avec et enfoncées) les " -"applications voulues." - -#: menu.c:1499 menu.c:1539 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "" -"Le contenu de votre variable CHOICESPATH ne permet pas la personnalisation - " -"désolé." - -#: menu.c:1532 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Chaque fichier placé dans vos répertoires Templates apparaîtra dans le menu " -"« Nouveau ». Choisir l'un d'eux en fera une copie comme nouveau fichier.\n" -"\n" -"Les répertoires suivants contiennent des patrons :\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1537 -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Je vais maintenant vous montrer votre répertoire Templates ; vous devez y " -"placer les fichiers patrons voulus." - -#: menu.c:1654 -msgid "Customise" -msgstr "Personnaliser" - -#: menu.c:1720 -msgid "This is already the canonical name for this directory." -msgstr "C'est déjà le nom canonique de ce répertoire." - -#: menu.c:1751 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Vous ne pouvez pas ouvrir une seconde vue de ce répertoire parce que " -"l'option « Fenêtres Uniques » est activée dans la fenêtre « Options »." - -#: menu.c:1877 -msgid "Copy ... ?" -msgstr "Copier ... ?" - -#: menu.c:1880 -msgid "Rename ... ?" -msgstr "Renommer ... ?" - -#: menu.c:1883 -msgid "Symlink ... ?" -msgstr "Lien symbolique ... ?" - -#: menu.c:1886 -msgid "Shift Open ... ?" -msgstr "Shift Ouvrir ... ?" - -#: menu.c:1889 -msgid "Properties of ... ?" -msgstr "Propriétés de ... ?" - -#: menu.c:1892 -msgid "Set type of ... ?" -msgstr "Fixer le type de ... ?" - -#: menu.c:1895 -msgid "Set run action for ... ?" -msgstr "Fixer l'action d'exécution pour ... ?" - -#: menu.c:1898 -msgid "Set icon for ... ?" -msgstr "Fixer l'icône pour ... ?" - -#: menu.c:1901 -msgid "Send ... to ... ?" -msgstr "Envoyer ... à ... ?" - -#: menu.c:1904 -msgid "DELETE ... ?" -msgstr "SUPPRIMER ... ?" - -#: menu.c:1907 -msgid "Count the size of ... ?" -msgstr "Calculer la taille de ... ?" - -#: menu.c:1910 -msgid "Set permissions on ... ?" -msgstr "Fixer les permissions de ... ?" - -#: menu.c:1913 -msgid "Search inside ... ?" -msgstr "Chercher dans ... ?" - -#: menu.c:1977 -msgid "You cannot do this to more than one item at a time" -msgstr "Vous ne pouvez pas appliquer cette action à plus d'un objet à la fois" - -#: menu.c:2009 -msgid "Rename" -msgstr "Renommer" - -#: menu.c:2014 -msgid "Symlink" -msgstr "Lien symbolique" - -#: menu.c:2043 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Les raccourcis utilisateur sont désactivés par défaut dans Gtk2 et vous ne " -"les avez pas activés. Vous pouvez activer cette fonctionnalité :\n" -"\n" -"1) en utilisant un gestionnaire XSettings, comme ROX-Session ou gnome-" -"settings-daemon ou\n" -"\n" -"2) en ajoutant cette ligne à ~/.gtkrc-2.0 :\n" -"\tgtk-can-change-accels = 1\n" -"\t(ceci ne marche que si XSETTINGS n'est PAS utilisé)" - -#: menu.c:2054 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Pour affecter un raccourci clavier à une entrée d'un menu :\n" -"\n" -"- ouvrir le menu au-dessus d'une fenêtre du filer,\n" -"- déplacer le pointeur au-dessus de l'entrée voulue,\n" -"- appuyer sur la touche que vous voulez attacher à l'entrée.\n" -"\n" -"La touche apparaîtra à côté de l'entrée du menu et vous pourrez à l'avenir " -"juste appuyer sur cette touche, sans avoir à ouvrir le menu." - -#: menu.c:2069 -msgid "Set keyboard shortcuts" -msgstr "Fixer les raccourcis clavier" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Aller à :" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "Shell :" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "Sélectionner si :" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "Sélectionner le nom :" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "Motif :" - -#: minibuffer.c:262 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Entrez le nom d'un fichier à afficher. Appuyez sur pour compléter avec " -"la plus longue correspondance. pour fermer le minibuffer." - -#: minibuffer.c:268 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Entrez une commande shell à exécuter. Cliquez sur un fichier pour l'ajouter " -"au buffer." - -#: minibuffer.c:273 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Entrez un motif de nom de fichier pour sélectionner tous les fichiers " -"correspondants :\n" -"\n" -"? pour n'importe quel caractère\n" -"* pour n'importe quelle séquence de caractères (0 ou plus)\n" -"[aA] pour « a » ou « A »\n" -"[a-z] pour n'importe quel caractère de a à z (minuscule)\n" -"*.png pour n'importe quel nom se terminant par « .png »" - -#: minibuffer.c:285 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Entrez un motif correspondant aux fichiers à montrer. Un filtre vide " -"désactive le filtrage." - -#: minibuffer.c:905 -msgid "Invalid Find condition" -msgstr "Condition de recherche invalide" - -#: mount.c:372 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s total, %s utilisés, %s libres (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer a converti votre fichier Options au nouveau format XML" - -#: options.c:535 options.c:1260 -msgid "(use default)" -msgstr "(utiliser le choix par défaut)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Erreur interne : %s illisible" - -#: options.c:916 -msgid "Options" -msgstr "Options" - -#: options.c:961 -msgid "_Revert" -msgstr "_Revenir" - -#: options.c:967 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "" -"Récupérer tous les choix tels qu'ils étaient lorsque la boîte Options a été " -"ouverte." - -#: options.c:982 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Les choix seront sauvés sous :\n" -"%s" - -#: options.c:990 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(sauvegarde désactivée par CHOICESPATH)" - -#: options.c:1163 usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "Erreur lors de la sauvegarde de %s : %s" - -#: options.c:1797 -msgid "Missing '='" -msgstr "Symbole '=' manquant" - -#: panel.c:438 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Votre vieux fichier de panneau a été converti au nouveau format XML." - -#: panel.c:546 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Vous avez essayé de fermer un panneau avec le gestionnaire de fenêtres - je " -"considère généralement cette action comme accidentelle... Voulez-vous " -"vraiment le fermer ?" - -#: panel.c:648 -msgid "Missing < or > in panel config file" -msgstr "'<' ou '>' manquant dans le fichier de config du panneau" - -#: panel.c:1533 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Erreur lors de la sauvegarde du panneau %s : %s" - -#: panel.c:1849 -msgid "Applet quit without ever creating a widget!" -msgstr "L'appliquette a quitté sans avoir créé de widget !" - -#: panel.c:1948 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Erreur lors de l'exécution de l'appliquette :\n" -"%s" - -#: panel.c:2358 -msgid "Panel Options..." -msgstr "Options du panneau..." - -#: panel.c:2450 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Moniteur Xinerama %d non disponible" - -#: panel.c:2525 -msgid "Panel Options" -msgstr "Options du panneau" - -#: panel.c:2540 -#, c-format -msgid "Panel: %s" -msgstr "Panneau : %s" - -#: panel.c:2548 -msgid "Select the panel's position:" -msgstr "Sélectionnez la position du panneau :" - -#: panel.c:2554 -msgid "Top-edge panel" -msgstr "Panneau situé sur le bord supérieur" - -#: panel.c:2555 -msgid "Top edge" -msgstr "En haut" - -#: panel.c:2556 -msgid "Bottom edge panel" -msgstr "Panneau situé sur le bord inférieur" - -#: panel.c:2557 -msgid "Bottom edge" -msgstr "En bas" - -#: panel.c:2558 -msgid "Left edge panel" -msgstr "Panneau situé sur le bord gauche" - -#: panel.c:2559 -msgid "Left edge" -msgstr "À gauche" - -#: panel.c:2560 -msgid "Right-edge panel" -msgstr "Panneau situé sur le bord droit" - -#: panel.c:2561 -msgid "Right edge" -msgstr "À droite" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "Votre vieux fichier de punaiseur a été converti au nouveau format XML." - -#: pinboard.c:637 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Le gestionnaire d'image de fond doit être un répertoire application. Faites " -"glisser un répertoire application dans la boîte de dialogue « Fixer l'image " -"de fond » ou (pour les programmeurs) passez-le à la méthode SOAP " -"SetBackdropApp." - -#: pinboard.c:656 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Vous ne pouvez fixer l'image de fond que sur une image ou sur un programme " -"qui sait comment manier l'image de fond de ROX-Filer.\n" -"\n" -"Programmeurs : le fichier AppInfo.xml de l'application doit contenir " -"l'élément CanSetBackdrop, comme indiqué dans le manuel de ROX-Filer." - -#: pinboard.c:676 -msgid "Set backdrop" -msgstr "Fixer l'image de fond" - -#: pinboard.c:687 -msgid "Choose a style and drag an image in:" -msgstr "Choisissez un style et faites glisser une image dans :" - -#: pinboard.c:700 -msgid "Centre the image without scaling it" -msgstr "Centrer l'image sans changer sa taille" - -#: pinboard.c:701 -msgid "Centre" -msgstr "Centrer" - -#: pinboard.c:702 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "" -"Changer la taille de l'image sans la déformer pour l'ajuster à la zone de " -"fond" - -#: pinboard.c:704 -msgid "Scale" -msgstr "Redimensionner" - -#: pinboard.c:705 -msgid "" -"Scale the image to fit the backdrop area, regardless of image dimensions - " -"overscale" -msgstr "" -"Changer la taille de l'image pour l'ajuster à la zone de fond, sans tenir " -"compte des dimensions de l'image - surdimensionnement" - -#: pinboard.c:707 -msgid "Fit" -msgstr "Ajuster" - -#: pinboard.c:708 -msgid "Stretch the image to fill the backdrop area" -msgstr "Étirer l'image pour remplir la zone de fond" - -#: pinboard.c:709 -msgid "Stretch" -msgstr "Étirer" - -#: pinboard.c:710 -msgid "Tile the image over the backdrop area" -msgstr "Paver la zone de fond avec l'image" - -#: pinboard.c:711 -msgid "Tile" -msgstr "Paver" - -#: pinboard.c:716 -msgid "Drop an image here" -msgstr "Faites glisser ici une image" - -#: pinboard.c:777 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Aucun punaiseur n'était utilisé... le punaiseur 'Default' a été sélectionné. " -"Utilisez 'rox -p=Default' pour le choisir à l'avenir." - -#: pinboard.c:871 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Seuls des fichiers (et certaines applications) peuvent être utilisés pour " -"fixer l'image de fond." - -#: pinboard.c:1496 -msgid "Missing '>' in icon label" -msgstr "'>' manquant dans l'étiquette de l'icône" - -#: pinboard.c:1505 -msgid "Missing ',' after icon label" -msgstr "',' manquant après l'étiquette de l'icône" - -#: pinboard.c:1593 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Erreur lors de la sauvegarde du punaiseur %s : %s" - -#: pinboard.c:2137 -msgid "Backdrop..." -msgstr "Image de fond..." - -#: pinboard.c:2230 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Erreur lors du chargement de l'image de fond :\n" -"%s\n" -"Image de fond enlevée." - -#: pixmaps.c:971 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Impossible de supprimer les vignettes dans %s :\n" -"%s" - -#: pixmaps.c:992 -msgid "There are no thumbnails to delete" -msgstr "Il n'y a pas de vignette à supprimer" - -#: pixmaps.c:1005 -msgid "Purge thumbnails disk cache" -msgstr "Vider le cache disque des vignettes" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "Style inconnu '%s'" - -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Type de détails inconnu '%s'" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Type de tri inconnu '%s'" - -#: remote.c:1245 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Tentative d'invoquer la méthode SOAP inconnue '%s'" - -#: rox_gettext.c:93 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Fichier de traduction .gmo invalide (trop court) : %s" - -#: rox_gettext.c:106 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "" -"Fichier de traduction .gmo invalide (nombre magique GNU non trouvé) : %s" - -#: run.c:99 run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Programme %s non trouvé - supprimé ?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Ce fichier est inexistant ou inaccessible : %s" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Je ne sais pas comment ouvrir '%s'" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "'%s' n'est pas un URI valide" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "%s inaccessible" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "URL %s non locale" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s : pas de gestionnaire pour %s" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Application :\n" -"C'est un répertoire application - vous pouvez l'exécuter en tant que " -"programme ou l'ouvrir (maintenez la touche Shift enfoncée pendant " -"l'ouverture). La plupart des applications fournissent leur propre aide ici, " -"mais ce n'est pas le cas de celle-ci." - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Impossible d'envoyer les données au programme : %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "Impossible de lire le lien : %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Lien symbolique incorrect (ou pas de permission pour le suivre) : %s" - -#: run.c:573 -#, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Aucune action d'exécution spécifiée pour les fichiers de ce type (%s/%s) - " -"vous pouvez fixer une action d'exécution en choisissant « Fixer l'action " -"d'exécution » depuis le menu « Fichier », ou vous pouvez juste faire glisser " -"le fichier sur une application.%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Note : si c'est un programme que vous voulez lancer, vous devez positionner " -"le bit d'exécution en choisissant « Permissions » dans le menu « Fichier »." - -#: run.c:746 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"L'exécutable '%s' a un accès en écriture pour tout le monde ! Je refuse de " -"le lancer. Veuillez changer les droits d'accès dès maintenant (ce problème a " -"pu être causé par un bug dans d'anciennes versions du filer).\n" -"\n" -"Avoir des actions d'exécution (qui ne sont pas des liens symboliques) à " -"accès en écriture pour tout le monde signifie que d'autres utilisateurs de " -"votre ordinateur peuvent remplacer vos actions d'exécution par des versions " -"malveillantes.\n" -"\n" -"Si vous faites confiance à tous ceux qui peuvent écrire dans ces fichiers, " -"vous n'avez pas à vous inquiéter. Dans le cas contraire, vous devez " -"vérifier, ou même juste supprimer, toutes les actions d'exécution existantes." - -#: run.c:759 -msgid "go-w (Fix security problem)" -msgstr "go-w (corriger un problème de sécurité)" - -#: support.c:272 -msgid "B" -msgstr "O" - -#: support.c:351 -msgid "byte" -msgstr "octet" - -#: support.c:1589 support.c:1643 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Impossible d'ouvrir et de faire un stat sur le fichier '%s' : %s" - -#: support.c:1600 support.c:1654 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Impossible de faire un mmap du fichier '%s' : %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "Fermer" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "Fermer la fenêtre du filer" - -#: toolbar.c:117 -msgid "Up" -msgstr "Père" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "Aller au répertoire père" - -#: toolbar.c:121 -msgid "Home" -msgstr "Perso" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "Aller au répertoire personnel" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "Signets" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "Menu des signets" - -#: toolbar.c:129 -msgid "Scan" -msgstr "Lire" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "Relire le contenu du répertoire" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "Changer la taille des icônes" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "Mode taille automatique" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "Montrer tous les détails" - -#: toolbar.c:145 -msgid "Sort" -msgstr "Trier" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "Changer le critère de tri" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "Cachés" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"Gauche: montrer/cacher les fichiers cachés\n" -"Droit: montrer/cacher les vignettes" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "Tout sélectionner/inverser la sélection" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "Montrer l'aide de ROX-Filer" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u caché(s))" - -#: toolbar.c:229 tips:85 -msgid "items" -msgstr "objets" - -#: toolbar.c:229 -msgid "item" -msgstr "objet" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "Pas d'objet%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u sélectionné(s) (%s)" - -#: toolbar.c:423 -msgid "Sort by name" -msgstr "Tri par nom" - -#: toolbar.c:423 -msgid "Sort by type" -msgstr "Tri par type" - -#: toolbar.c:423 -msgid "Sort by date" -msgstr "Tri par date" - -#: toolbar.c:424 -msgid "Sort by size" -msgstr "Tri par taille" - -#: toolbar.c:424 -msgid "Sort by owner" -msgstr "Tri par propriétaire" - -#: toolbar.c:424 -msgid "Sort by group" -msgstr "Tri par groupe" - -#: toolbar.c:458 -msgid "ascending" -msgstr "croissant" - -#: toolbar.c:458 -msgid "descending" -msgstr "décroissant" - -#: type.c:212 -msgid "Sym link" -msgstr "Lien symb." - -#: type.c:214 -msgid "Mount point" -msgstr "Point de montage" - -#: type.c:216 -msgid "App dir" -msgstr "Rép. App." - -#: type.c:223 -msgid "Dir" -msgstr "Rép." - -#: type.c:225 -msgid "Char dev" -msgstr "Périph. car." - -#: type.c:227 -msgid "Block dev" -msgstr "Périph. bloc" - -#: type.c:229 -msgid "Pipe" -msgstr "Tube" - -#: type.c:231 -msgid "Socket" -msgstr "Socket" - -#: type.c:233 -msgid "Door" -msgstr "Porte" - -#: type.c:236 -msgid "Unknown" -msgstr "Inconnu" - -#: type.c:511 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Entrez une commande shell qui chargera \"$@\" dans un programme approprié. " -"Ex. :\n" -"\n" -"gimp \"$@\"" - -#: type.c:692 -msgid "This is not a program! Give me an application instead!" -msgstr "Ce n'est pas un programme ! Donnez-moi une application à la place !" - -#: type.c:752 -msgid "No run action defined" -msgstr "Pas d'action d'exécution de définie" - -#: type.c:756 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Erreur dans le gestionnaire %s : %s" - -#: type.c:771 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Application %s invalide (mauvais AppRun)" - -#: type.c:782 -#, c-format -msgid "Non-executable %s" -msgstr "%s non exécutable" - -#: type.c:815 -msgid "Set run action" -msgstr "Fixer l'action d'exécution" - -#: type.c:821 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Si un gestionnaire n'est pas fixé pour le type spécifique, utiliser celui-ci " -"par défaut." - -#: type.c:823 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Fixer en tant que défaut pour tout `%s/'" - -#: type.c:827 -msgid "Use this application for all files with this MIME type." -msgstr "Utiliser cette application pour tous les fichiers ayant ce type MIME." - -#: type.c:829 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Seulement pour le type `%s' (%s/%s)" - -#: type.c:835 -msgid "Drop a suitable application here" -msgstr "Faites glisser ici une application adéquate" - -#: type.c:850 -msgid "OR" -msgstr "OU" - -#: type.c:857 -msgid "Enter a shell command:" -msgstr "Entrez une commande shell :" - -#: type.c:886 -msgid "_Use Command" -msgstr "_Utiliser la commande" - -#: type.c:916 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"Une action d'exécution existe déjà et est un assez gros programme - êtes-" -"vous sûr de vouloir la supprimer ?" - -#: type.c:927 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Impossible de supprimer %s : %s" - -#: type.c:964 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "La sauvegarde des choix est désactivée par la variable CHOICESPATH" - -#: type.c:1239 -#, c-format -msgid "" -"Icon theme '%s' does not contain MIME icons. Using ROX default theme instead." -msgstr "" -"Le thème d'icônes '%s' ne contient pas d'icônes MIME. Utilisation du thème " -"par défaut de ROX." - -#: type.c:1254 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that the ROX theme already exists there, but the 'mime-" -"application:postscript' icon couldn't be loaded for some reason, or %s is a " -"link to an invalid directory; try deleting it)" -msgstr "" -"Impossible de créer le lien symbolique '%s' :\n" -"%s\n" -"\n" -"(ceci peut vouloir dire que le thème ROX existe déjà ici, mais que l'icône " -"« mime-application:postscript » n'a pas pu être chargée pour une raison " -"quelconque, ou %s est un lien vers un répertoire invalide; essayez de le " -"supprimer)" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "" -"Le chemin que vous avez donné n'existe pas. L'icône n'a pas été changée." - -#: usericons.c:189 usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Impossible de charger l'image -- peut-être est-ce un format que je ne " -"comprends pas, ou peut-être que les permissions sont incorrectes ?\n" -"L'icône n'a pas été changée." - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Voulez-vous vraiment supprimer l'icône '%s' ?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Impossible de supprimer '%s' :\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "Fixer l'icône" - -#: usericons.c:281 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "" -"Utiliser une copie de l'image comme choix par défaut pour tous les fichiers " -"de ces types MIME." - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Fixer l'icône pour tout `%s/'" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Utiliser une copie de l'image pour tous les fichiers de ce type MIME." - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Pour tous les fichiers de type `%s' (%s/%s)" - -#: usericons.c:296 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Ajoutez les noms du fichier et de l'image à votre liste personnelle. Ce " -"choix sera perdu si l'image ou le fichier est déplacé." - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "Seulement pour le fichier `%s'" - -#: usericons.c:307 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Copier l'image dans le répertoire comme fichier caché '.DirIcon'. Tous les " -"utilisateurs verront alors l'icône et vous pourrez déplacer le répertoire " -"sans risque. C'est généralement la meilleure option si vous avez le droit " -"d'écrire dans le répertoire." - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "Copier l'image dans le répertoire" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "Faites glisser ici un fichier d'icône" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Le choix des icônes est désactivé par CHOICESPATH" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Erreur lors de la création de l'image '%s' :\n" -"%s" - -#: view_details.c:942 -msgid "Mono font" -msgstr "Fonte mono" - -#: view_details.c:943 -msgid "Font for displaying mono-spaced text" -msgstr "Fonte pour afficher du texte à chasse fixe (monospace)" - -#: view_details.c:1044 -msgid "_Name" -msgstr "_Nom" - -#: view_details.c:1047 -msgid "_Type" -msgstr "_Type" - -#: view_details.c:1050 -msgid "_Permissions" -msgstr "_Droits d'accès" - -#: view_details.c:1055 -msgid "_Owner" -msgstr "_Propriétaire" - -#: view_details.c:1057 -msgid "_Group" -msgstr "_Groupe" - -#: view_details.c:1059 -msgid "_Size" -msgstr "_Taille" - -#: view_details.c:1065 -msgid "Last _Modified" -msgstr "Dernière _Modification" - -#: tips:1 -msgid "Translation" -msgstr "Traduction" - -#: tips:2 -msgid "Language" -msgstr "Langue" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "Utiliser la variable d'environnement LANG" - -#: tips:4 -msgid "Basque" -msgstr "Basque" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Chinois (traditionnel)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Chinois (simplifié)" - -#: tips:7 -msgid "Czech" -msgstr "Tchèque" - -#: tips:8 -msgid "Danish" -msgstr "Danois" - -#: tips:9 -msgid "Dutch" -msgstr "Néerlandais" - -#: tips:10 -msgid "English (no translation)" -msgstr "Anglais (pas de traduction)" - -#: tips:11 -msgid "Estonian" -msgstr "Estonien" - -#: tips:12 -msgid "Finnish" -msgstr "Finnois" - -#: tips:13 -msgid "French" -msgstr "Français" - -#: tips:14 -msgid "German" -msgstr "Allemand" - -#: tips:15 -msgid "Hungarian" -msgstr "Hongrois" - -#: tips:16 -msgid "Japanese" -msgstr "Japonais" - -#: tips:17 -msgid "Norwegian" -msgstr "Norvégien" - -#: tips:18 -msgid "Italian" -msgstr "Italien" - -#: tips:19 -msgid "Polish" -msgstr "Polonais" - -#: tips:20 -msgid "Portuguese (Portugal)" -msgstr "Portugais (Portugal)" - -#: tips:21 -msgid "Portuguese (Brasil)" -msgstr "Portugais (Brésil)" - -#: tips:22 -msgid "Romanian" -msgstr "Roumain" - -#: tips:23 -msgid "Russian" -msgstr "Russe" - -#: tips:24 -msgid "Spanish" -msgstr "Espagnol" - -#: tips:25 -msgid "Swedish" -msgstr "Suédois" - -#: tips:26 -msgid "Ukrainian" -msgstr "Ukrainien" - -#: tips:27 -msgid "Vietnamese" -msgstr "Vietnamien" - -#: tips:28 -msgid "Filer windows" -msgstr "Fenêtres du filer" - -#: tips:29 -msgid "Auto-resize filer windows" -msgstr "Changement de taille automatique des fenêtres du filer" - -#: tips:30 -msgid "Never automatically resize" -msgstr "Ne jamais changer de taille automatiquement" - -#: tips:31 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Vous devrez changer manuellement la taille des fenêtres, via le gestionnaire " -"de fenêtres, l'entrée du menu « Changer taille de la fenêtre » ou en double-" -"cliquant sur le fond de la fenêtre." - -#: tips:32 -msgid "Resize when changing the display style" -msgstr "Changer de taille quand vous changez le style d'affichage" - -#: tips:33 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Le fait de changer la taille des icônes ou les détails à afficher provoquera " -"un changement automatique de la taille de la fenêtre." - -#: tips:34 -msgid "Always resize" -msgstr "Toujours changer la taille" - -#: tips:35 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Le filer changera la taille des fenêtres à chaque fois qu'il lui semblera " -"utile (c'est-à-dire quand le répertoire ou le style d'affichage est changé)." - -#: tips:36 -msgid "Largest window size:" -msgstr "Plus grande taille de fenêtre :" - -#: tips:37 -msgid "%" -msgstr "%" - -#: tips:38 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"La plus grande taille, en pourcentage de la taille de l'écran, que pourra " -"prendre une fenêtre après changement de taille automatique." - -#: tips:39 -msgid "Window behaviour" -msgstr "Comportement relatif aux fenêtres" - -#: tips:40 -msgid "Short titlebar flags" -msgstr "Drapeaux de barre de titre courts" - -#: tips:41 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Utiliser des lettres simples au lieu de mots pour les indicateurs Lecture, " -"Tous et Vignettes dans la barre de titre." - -#: tips:42 -msgid "Unique windows" -msgstr "Fenêtres uniques" - -#: tips:43 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Lorsque vous ouvrez un répertoire et que ce répertoire est déjà affiché dans " -"une autre fenêtre, cette option provoque la fermeture de cette autre fenêtre." - -#: tips:44 -msgid "New window on button 1" -msgstr "Nouvelle fenêtre avec le bouton 1" - -#: tips:45 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Cliquer avec le bouton 1 (habituellement le bouton de gauche) ouvre un " -"répertoire dans une nouvelle fenêtre avec ceci activé. Cliquer avec le " -"bouton 2 (milieu) réutilisera la fenêtre courante." - -#: tips:46 -msgid "Single-click navigation" -msgstr "Navigation en simple clic" - -#: tips:47 tips:143 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Cliquer sur un objet l'ouvre si cette option est choisie. Enfoncez Control " -"pour sélectionner l'objet à la place. Si option non choisie, cliquer une " -"fois sélectionne l'objet; double-cliquez pour ouvrir des choses." - -#: tips:48 -msgid "Double-click on background resizes" -msgstr "Un double-clic sur le fond change la taille" - -#: tips:49 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Si activée, un double-clic sur le fond d'une fenêtre change la taille de la " -"fenêtre, exactement comme un clic sur le bouton Mode taille automatique de " -"la barre d'outils." - -#: tips:50 -msgid "Sorting" -msgstr "Tri" - -#: tips:51 -msgid "Directories come first (for sort by name)" -msgstr "Les répertoires sont listés en premier (pour le tri par nom)" - -#: tips:52 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Si cette option est choisie, alors les répertoires apparaîtront toujours " -"avant les autres objets quand le tri se fait par nom." - -#: tips:53 -msgid "Capitalised names first (for sort by name)" -msgstr "Noms avec majuscule en premier (pour le tri par nom)" - -#: tips:54 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Si activée, tous les noms de fichier commençant par une lettre majuscule " -"viennent avant ceux commençant par une minuscule." - -#: tips:56 -msgid "Default settings for new windows" -msgstr "Options par défaut pour les nouvelles fenêtres" - -#: tips:57 -msgid "Inherit options from source window" -msgstr "Hériter les options de la fenêtre source" - -#: tips:58 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Lorsque cette option est activée, les options d'affichage de chaque nouvelle " -"fenêtre sont héritées de la fenêtre source si possible, sinon elles sont " -"fixées aux valeurs par défaut données ci-dessous." - -#: tips:59 -msgid "View type:" -msgstr "Type de vue :" - -#: tips:62 -msgid "Sort by:" -msgstr "Trier par :" - -#: tips:64 tips:81 -msgid "Type" -msgstr "Type" - -#: tips:65 -msgid "Date" -msgstr "Date" - -#: tips:67 -msgid "Show hidden files" -msgstr "Montrer les fichiers cachés" - -#: tips:68 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Lorsque cette option est activée, les fichiers dont le nom commence par un " -"point sont aussi montrés, sinon ils sont cachés." - -#: tips:69 -msgid "Show extended attribute indicator" -msgstr "Montrer l'indicateur des attributs étendus" - -#: tips:70 -msgid "" -"If this is on then files which have one or more extended attributes set will " -"have an emblem added to indicate this." -msgstr "" -"Lorsque cette option est activée, les fichiers qui ont un ou plusieurs " -"attributs étendus auront un emblème pour indiquer cela." - -#: tips:71 -msgid "Icon View" -msgstr "Vue « icônes »" - -#: tips:72 -msgid "Default size:" -msgstr "Taille par défaut :" - -#: tips:73 -msgid "Huge Icons" -msgstr "Énormes icônes" - -#: tips:74 tips:262 -msgid "Large Icons" -msgstr "Grandes icônes" - -#: tips:75 tips:261 -msgid "Small Icons" -msgstr "Petites icônes" - -#: tips:77 -msgid "Default details:" -msgstr "Détails par défaut :" - -#: tips:78 -msgid "No details" -msgstr "Pas de détails" - -#: tips:83 -msgid "Automatic small icons:" -msgstr "Petites icônes auto :" - -#: tips:84 -msgid "Change at:" -msgstr "Changer à :" - -#: tips:86 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Quand le choix automatique de la taille des icônes est sélectionné : si le " -"répertoire contient au moins autant d'objets, alors il sera affiché avec de " -"petites icônes, sinon de grandes icônes seront utilisées." - -#: tips:87 -msgid "Max width (Large icons):" -msgstr "Largeur maxi (grandes icônes) :" - -#: tips:88 tips:91 -msgid "pixels" -msgstr "pixels" - -#: tips:89 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Le texte plus large que spécifié ici est découpé en deux lignes en mode " -"« Grandes icônes ». En mode « Énormes icônes », le texte est passé à la " -"ligne quand il est 50% plus large que ce qui est fixé ici." - -#: tips:90 -msgid "(Small Icons):" -msgstr "(petites icônes) :" - -#: tips:92 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Largeur maximale du texte affiché à côté d'une petite icône." - -#: tips:93 -msgid "Order small icons vertically" -msgstr "Ordonner les petites icônes verticalement" - -#: tips:94 -msgid "" -"If this option is on, then small icons are arranged in columns, not rows." -msgstr "" -"Si cette option est choisie, alors les petites icônes sont arrangées en " -"colonnes, et non en lignes." - -#: tips:95 -msgid "Order large icons vertically" -msgstr "Ordonner les grandes icônes verticalement" - -#: tips:96 -msgid "" -"If this option is on, then large icons are arranged in columns, not rows." -msgstr "" -"Si cette option est choisie, alors les grandes icônes sont arrangées en " -"colonnes, et non en lignes." - -#: tips:98 -msgid "Show column headings" -msgstr "Montrer les titres des colonnes" - -#: tips:99 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Si cette option est choisie, alors les titres des colonnes seront montrés " -"lors de l'affichage sous forme de liste." - -#: tips:100 -msgid "Show full type" -msgstr "Montrer le type complet" - -#: tips:101 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" -"Si cette option est choisie, alors la description complète du type de chaque " -"objet sera montrée au lieu d'un résumé du type de base." - -#: tips:102 -msgid "Tools/Minibuffer" -msgstr "Outils/minibuffer" - -#: tips:103 -msgid "Toolbar" -msgstr "Barre d'outils" - -#: tips:104 -msgid "Toolbar type:" -msgstr "Type de barre d'outils :" - -#: tips:105 -msgid "No toolbar" -msgstr "Pas de barre" - -#: tips:106 -msgid "Icons only" -msgstr "Icônes seulement" - -#: tips:107 -msgid "Text under icons" -msgstr "Texte sous les icônes" - -#: tips:108 -msgid "Text beside icons" -msgstr "Texte à côté des icônes" - -#: tips:109 -msgid "Show totals of items" -msgstr "Afficher les nombres d'objets" - -#: tips:110 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Montrer le nombre d'objets affichés dans une fenêtre du filer, ainsi que le " -"nombre d'objets cachés (s'il y en a). Quand il y a une sélection, montrer le " -"nombre d'objets sélectionnés et leur taille combinée." - -#: tips:111 -msgid "Select the buttons you want on the bar:" -msgstr "Sélectionnez les boutons que vous voulez sur la barre :" - -#: tips:112 -msgid "Width of toolbar sets minimum width of window" -msgstr "La largeur de la barre d'outils fixe la largeur minimale de la fenêtre" - -#: tips:113 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Chaque fenêtre du filer est contrainte à être suffisamment large pour que la " -"barre d'outils apparaisse en entier" - -#: tips:114 -msgid "Minibuffer" -msgstr "Minibuffer" - -#: tips:115 -msgid "Beep if Tab-completion fails" -msgstr "Bip si la complétion par échoue" - -#: tips:116 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Quand vous utilisez le minibuffer « Entrer un chemin... » et que vous " -"appuyez sur , bip si rien ne se passe (e.g., parce qu'il y a plusieurs " -"possibilités et que la lettre suivante varie)." - -#: tips:117 -msgid "Beep if there are several matches" -msgstr "Bip s'il y a plusieurs complétions" - -#: tips:118 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Quand vous utilisez le minibuffer « Entrer un chemin... » et que vous " -"appuyez sur , un bip est émis s'il y a plusieurs fichiers qui " -"conviennent, même si des lettres ont été ajoutées." - -#: tips:121 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Quand les vignettes sont activées, chaque fichier image dans un répertoire " -"est chargé et une image réduite est affichée." - -#: tips:122 -msgid "Show image thumbnails" -msgstr "Montrer les vignettes" - -#: tips:123 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Il s'agit du choix par défaut pour les nouvelles fenêtres. Utilisez le menu " -"Affichage pour activer ou désactiver les vignettes pour des fenêtres " -"particulières." - -#: tips:124 -msgid "Video thumbnails" -msgstr "Vignettes vidéo" - -#: tips:125 -msgid "Thumbnails cache" -msgstr "Cache des vignettes" - -#: tips:126 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Pour accélérer les choses, les vignettes générées sont stockées dans le " -"répertoire caché « ~/.thumbnails ». Cliquez ici pour enlever toutes les " -"vignettes du cache. Elles seront recréées lorsque cela sera nécessaire." - -#: tips:127 -msgid "Manage thumbnails" -msgstr "Manipuler les vignettes" - -#: tips:128 tips:205 -msgid "Pinboard" -msgstr "Punaiseur" - -#: tips:129 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Quand vous utilisez un punaiseur, vous pouvez faire glisser des fichiers et " -"des applications sur le fond du bureau pour créer des raccourcis vers eux." - -#: tips:130 tips:258 -msgid "Appearance" -msgstr "Apparence" - -#: tips:131 -msgid "Foreground:" -msgstr "Encre :" - -#: tips:132 -msgid "Text shadow:" -msgstr "Ombre du texte :" - -#: tips:133 -msgid "Background:" -msgstr "Fond :" - -#: tips:134 -msgid "No shadow" -msgstr "Pas d'ombre" - -#: tips:135 -msgid "Thin" -msgstr "Fine" - -#: tips:136 -msgid "Thick" -msgstr "Épaisse" - -#: tips:137 -msgid "Use custom font:" -msgstr "Utiliser la fonte :" - -#: tips:138 -msgid "The font used for the text displayed under the icons" -msgstr "La fonte utilisée pour le texte affiché au-dessous des icônes" - -#: tips:139 -msgid "Fast scaling of images" -msgstr "Changement rapide de la taille des images" - -#: tips:140 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"Choisir entre la méthode rapide et la lente pour redimensionner les images " -"de fond. La méthode lente peut donner de meilleurs résultats." - -#: tips:141 -msgid "Pinboard behaviour" -msgstr "Comportement du punaiseur" - -#: tips:142 -msgid "Single-click to open" -msgstr "Simple clic pour ouvrir" - -#: tips:144 -msgid "Keep icons within screen limits" -msgstr "Garder les icônes à l'intérieur des limites de l'écran" - -#: tips:145 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Si cette option est active, les icônes du punaiseur sont toujours gardées " -"complètement à l'intérieur des limites de l'écran, étiquette comprise." - -#: tips:146 -msgid "Icon grid step:" -msgstr "Pas de la grille pour les icônes :" - -#: tips:147 -msgid "Fine" -msgstr "Fin" - -#: tips:148 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "" -"Utiliser une grille avec pas de 2 pixels pour le positionnement des icônes " -"sur le bureau." - -#: tips:149 -msgid "Medium" -msgstr "Moyen" - -#: tips:150 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "" -"Utiliser une grille avec pas de 16 pixels pour le positionnement des icônes " -"sur le bureau." - -#: tips:151 -msgid "Coarse" -msgstr "Large" - -#: tips:152 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "" -"Utiliser une grille avec pas de 32 pixels pour le positionnement des icônes " -"sur le bureau." - -#: tips:153 tips:155 -msgid "Iconified windows" -msgstr "Fenêtres iconifiées" - -#: tips:154 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"La plupart des gestionnaires de fenêtres fournissent une méthode pour " -"iconifier (ou « minimiser ») les fenêtres, et divers programmes, dont ROX-" -"Filer, peuvent servir à afficher les fenêtres iconifiées." - -#: tips:156 -msgid "Show iconified windows" -msgstr "Montrer les fenêtres iconifiées" - -#: tips:157 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Si cette option est choisie, le filer montrera chaque fenêtre iconifiée sous " -"forme d'un petit bouton sur le punaiseur. Cela nécessite un gestionnaire de " -"fenêtres compatible, et le punaiseur doit être actif." - -#: tips:158 -msgid "Show per workspace" -msgstr "Montrer par espace de travail" - -#: tips:159 -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Si cette option est choisie, le filer ne montrera que les fenêtres " -"iconifiées associées à l'espace de travail courant." - -#: tips:160 -msgid "Iconify to the" -msgstr "Iconifier en" - -#: tips:161 -msgid "top-left" -msgstr "haut à gauche" - -#: tips:162 -msgid "top-right" -msgstr "haut à droite" - -#: tips:163 -msgid "bottom-left" -msgstr "bas à gauche" - -#: tips:164 -msgid "bottom-right" -msgstr "bas à droite" - -#: tips:165 -msgid ", going" -msgstr ", en allant" - -#: tips:166 -msgid "horizontally" -msgstr "horizontalement" - -#: tips:167 -msgid "vertically" -msgstr "verticalement" - -#: tips:168 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"Parfois le filer ne connaît pas vos accessoires de bureau et place les " -"fenêtres iconifiées sous le panneau de Gnome (par exemple). Vous pouvez " -"définir une marge en haut ou en bas pour éviter d'y placer des icônes. Le " -"filer connaît déjà son propre panneau." - -#: tips:169 -msgid "Top margin" -msgstr "Marge haute" - -#: tips:170 -msgid "Height of no-go area at top of screen." -msgstr "Hauteur de l'aire interdite en haut de l'écran." - -#: tips:171 -msgid "Bottom margin" -msgstr "Marge basse" - -#: tips:172 -msgid "Height of no-go area at bottom of screen." -msgstr "Hauteur de l'aire interdite en bas de l'écran." - -#: tips:173 -msgid "Left margin" -msgstr "Marge gauche" - -#: tips:174 -msgid "Width of no-go area at left of screen." -msgstr "Largeur de l'aire interdite à gauche de l'écran." - -#: tips:175 -msgid "Right margin" -msgstr "Marge droite" - -#: tips:176 -msgid "Width of no-go area at right of screen." -msgstr "Largeur de l'aire interdite à droite de l'écran." - -#: tips:177 -msgid "Panels" -msgstr "Panneaux" - -#: tips:178 -msgid "" -"Panels are bars of icons that run along the side of the screen. See the " -"manual for information about using panels." -msgstr "" -"Les panneaux sont des barres d'icônes situées sur les côtés de l'écran. Voir " -"le manuel pour toute information sur l'utilisation des panneaux." - -#: tips:179 -msgid "Panel style" -msgstr "Style du panneau" - -#: tips:180 -msgid "Image and text" -msgstr "Image et texte" - -#: tips:181 -msgid "Every panel icon is shown with an image and some text." -msgstr "Chaque icône du panneau comporte une image et du texte." - -#: tips:182 -msgid "Image only for applications" -msgstr "Image seule pour les applications" - -#: tips:183 -msgid "" -"Applications have just an image, everything else has both an image and text." -msgstr "" -"Les applications comportent juste une image, le reste comporte une image et " -"du texte." - -#: tips:184 -msgid "Image only" -msgstr "Image seule" - -#: tips:185 -msgid "Only the image is shown." -msgstr "Seule l'image est affichée." - -#: tips:186 -msgid "Panel width (thin)" -msgstr "Largeur de panneau (fine)" - -#: tips:187 -msgid "(thick)" -msgstr "(épaisse)" - -#: tips:188 -msgid "The size of the panels." -msgstr "Taille des panneaux." - -#: tips:189 -msgid "Do not cover panel" -msgstr "Ne pas couvrir le panneau" - -#: tips:190 -msgid "" -"Ask the window manager not to cover panels at all when you maximise windows. " -"Some window managers may not honour this. If unset, the filer asks for just " -"a couple of pixels at the edge of the screen to remain uncovered, so that " -"auto-raising works." -msgstr "" -"Demande au gestionnaire de fenêtres de ne pas couvrir du tout les panneaux " -"quand vous maximisez des fenêtres. Certains gestionnaires de fenêtres " -"peuvent ne pas honorer cette fonctionnalité. Si désactivée, le filer demande " -"que seules deux rangées de pixels au bord de l'écran restent visibles, de " -"façon à ce que le passage au premier plan automatique fonctionne." - -#: tips:191 -msgid "Xinerama" -msgstr "Xinerama" - -#: tips:192 -msgid "Confine to Xinerama monitor" -msgstr "Confiner à un moniteur Xinerama" - -#: tips:193 -msgid "" -"If you have an Xinerama multi-monitor setup, use this option to confine the " -"panels to one monitor instead of spanning them." -msgstr "" -"Si vous avez une configuration multimoniteur Xinerama, utilisez cette option " -"pour confiner les panneaux à un seul moniteur au lieu de les répartir." - -#: tips:194 -msgid "" -"The monitor the panels are confined to in Xinerama mode (numbered from 0)." -msgstr "" -"Le moniteur auquel les panneaux sont confinés en mode Xinerama (numéroté à " -"partir de 0)." - -#: tips:195 -msgid "Desktop" -msgstr "Bureau" - -#: tips:196 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" -"Lorsqu'il est lancé par un gestionnaire de session (comme ROX-Session), le " -"filer peut ouvrir un panneau et/ou le punaiseur. Vous devez configurer cela " -"ici." - -#: tips:197 -msgid "Panel only" -msgstr "Panneau seul" - -#: tips:198 -msgid "Only a panel is shown." -msgstr "Seul un panneau est visible." - -#: tips:199 -msgid "Pinboard only" -msgstr "Punaiseur seul" - -#: tips:200 -msgid "Only the pinboard is shown." -msgstr "Seul le punaiseur est visible." - -#: tips:201 -msgid "Panel and pinboard" -msgstr "Panneau et punaiseur" - -#: tips:202 -msgid "Both a panel and a pinboard are shown." -msgstr "Un panneau et le punaiseur sont tous deux visibles." - -#: tips:203 -msgid "Panel" -msgstr "Panneau" - -#: tips:204 -msgid "Enter the name of the panel to show here." -msgstr "Entrez le nom du panneau à montrer." - -#: tips:206 -msgid "Enter the name of the pinboard to show here." -msgstr "Entrez le nom du punaiseur à montrer." - -#: tips:207 -msgid "Changes here take effect the next time the filer is run." -msgstr "" -"Les changements prendront effet la prochaine fois que le filer sera lancé." - -#: tips:208 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" -"Le gestionnaire de session active ces options à l'aide de l'argument -S ou --" -"rox-session de rox." - -#: tips:209 -msgid "Action windows" -msgstr "Fenêtres d'action" - -#: tips:210 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Les fenêtres d'action apparaissent quand vous lancez\n" -"une opération en arrière-plan, comme une copie ou\n" -"suppression de fichiers." - -#: tips:211 -msgid "Auto-start (Quiet) these actions" -msgstr "Commencer immédiatement (silencieusement) ces actions" - -#: tips:213 -msgid "Copy files without confirming first." -msgstr "Copier des fichiers sans confirmation." - -#: tips:215 -msgid "Move files without confirming first." -msgstr "Déplacer des fichiers sans confirmation." - -#: tips:217 -msgid "Create links to files without confirming first." -msgstr "Créer des liens vers des fichiers sans confirmation." - -#: tips:219 -msgid "Delete files without confirming first." -msgstr "Supprimer des fichiers sans confirmation." - -#: tips:220 -msgid "Mount" -msgstr "Monter" - -#: tips:221 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Monter et démonter des systèmes de fichiers sans confirmation." - -#: tips:222 -msgid "Default settings" -msgstr "Options par défaut" - -#: tips:224 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Ne pas confirmer la suppression d'objets protégés contre l'écriture." - -#: tips:226 -msgid "Don't display so much information in the message area." -msgstr "Afficher le minimum d'informations dans la zone des messages." - -#: tips:228 -msgid "Also change contents of subdirectories." -msgstr "Changer aussi le contenu des sous-répertoires." - -#: tips:231 -msgid "Mount commands" -msgstr "Commandes de montage" - -#: tips:232 -msgid "Mount command" -msgstr "Commande de montage" - -#: tips:233 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "" -"Commande utilisée pour monter un système de fichiers. En cas de doute, " -"choisissez « mount »." - -#: tips:234 -msgid "Unmount command" -msgstr "Commande de démontage" - -#: tips:235 -msgid "" -"The command used to unmount a filesystem. If unsure, use \"umount\" (yes, " -"without the first \"n\")." -msgstr "" -"Commande utilisée pour démonter un système de fichiers. En cas de doute, " -"choisissez « umount » (sans « n » avant le « m »)." - -#: tips:236 -msgid "Eject command" -msgstr "Commande d'éjection" - -#: tips:237 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "" -"Commande utilisée pour éjecter des médias amovibles. En cas de doute, " -"choisissez « eject »." - -#: tips:238 -msgid "Drag and Drop" -msgstr "Glisser-déposer" - -#: tips:239 -msgid "Dragging to icons" -msgstr "Glisser vers icônes" - -#: tips:240 -msgid "Allow dragging to icons in filer windows" -msgstr "" -"Autoriser le glisser-déposer vers des icônes dans les fenêtres du filer" - -#: tips:241 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Quand cette option est activée, vous pouvez faire glisser un fichier au-" -"dessus d'un sous-répertoire ou programme dans une fenêtre du filer. La cible " -"sera mise en valeur et lâcher le fichier dessus le mettra dans ce " -"répertoire, ou le chargera dans ce programme." - -#: tips:242 -msgid "Directories spring open" -msgstr "Les répertoires surgissent" - -#: tips:243 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Cette option, qui requiert que l'option ci-dessus soit aussi active, permet " -"au répertoire mis en valeur de « surgir » lorsque le fichier a été maintenu " -"au-dessus pendant un instant." - -#: tips:244 -msgid "Spring delay:" -msgstr "Délai de surgissement :" - -#: tips:245 -msgid "ms" -msgstr "ms" - -#: tips:246 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Cette option fixe le temps, en ms, pendant lequel vous devez laisser un " -"fichier au-dessus d'un répertoire avant que ce dernier ne surgisse. L'option " -"ci-dessus doit être active pour que ce réglage ait un effet." - -#: tips:247 -msgid "When dragging files with the left mouse button" -msgstr "Quand vous glissez-déposez des fichiers avec le bouton gauche" - -#: tips:248 tips:252 -msgid "Show a menu of possible actions" -msgstr "Faire apparaître un menu des actions possibles" - -#: tips:249 -msgid "Copy the files" -msgstr "Copier les fichiers" - -#: tips:250 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Notez que vous pouvez toujours faire apparaître le menu par glisser-déposer " -"tout en maintenant enfoncée." - -#: tips:251 -msgid "When dragging files with the middle mouse button" -msgstr "Quand vous glissez-déposez des fichiers avec le bouton du milieu" - -#: tips:253 -msgid "Move the files" -msgstr "Déplacer les fichiers" - -#: tips:254 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Notez que vous pouvez toujours faire apparaître le menu en glissant-déposant " -"avec le bouton gauche tout en appuyant sur la touche ." - -#: tips:255 -msgid "Download handler" -msgstr "Gestionnaire de téléchargement" - -#: tips:256 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Lorsque vous faites glisser un fichier depuis un navigateur web ou autre " -"source distante, ce programme sera exécuté pour le télécharger. $1 est l'URI " -"glissé sur le filer, et le répertoire courant est la destination. Par " -"exemple :\n" -"xterm -e wget $1" - -#: tips:257 -msgid "Menus" -msgstr "Menus" - -#: tips:259 -msgid "Size of icons in menus:" -msgstr "Taille des icônes dans les menus :" - -#: tips:260 -msgid "No Icons" -msgstr "Pas d'icônes" - -#: tips:263 -msgid "Same as current window" -msgstr "Comme la fenêtre courante" - -#: tips:264 -msgid "Same as default" -msgstr "Comme le choix par défaut" - -#: tips:265 -msgid "Behaviour" -msgstr "Comportement" - -#: tips:266 -msgid "File menu on right-click" -msgstr "Menu « Fichier » par clic droit" - -#: tips:267 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Montrer le menu « Fichier » au lieu du menu principal quand vous cliquez " -"avec le bouton droit alors que des fichiers sont sélectionnés (le menu " -"principal peut être obtenu en appuyant sur la touche « Control »)." - -#: tips:268 -msgid "Terminal emulator program" -msgstr "Programme d'émulateur de terminal" - -#: tips:269 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "" -"Le programme à lancer quand vous choisissez « Terminal ici » dans le menu." - -#: tips:270 -msgid "Keyboard shortcuts" -msgstr "Raccourcis clavier" - -#: tips:272 -msgid "MIME types" -msgstr "Types MIME" - -#: tips:273 -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Le filer utilise un ensemble de règles pour deviner le type MIME correct de " -"chaque fichier ordinaire et choisit ensuite une icône adéquate pour ce type." - -#: tips:274 -msgid "Edit MIME rules" -msgstr "Éditer les règles MIME" - -#: tips:275 -msgid "Themes" -msgstr "Thèmes" - -#: tips:276 -msgid "Icon theme" -msgstr "Thème d'icônes" - -#: tips:277 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Les thèmes doivent être placés dans le répertoire « ~/.icons »." - -#: tips:278 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Utilisez la boîte de dialogue « Fixer l'icône... » pour fixer l'icône pour " -"chaque type MIME. Notez que les icônes fixées de cette façon ont la priorité " -"sur celles du thème sélectionné." - -#: tips:279 -msgid "Colours" -msgstr "Couleurs" - -#: tips:280 -msgid "File type colours" -msgstr "Couleurs des types de fichier" - -#: tips:281 -msgid "Colour files based on their types" -msgstr "Mettre les fichiers en couleur en fonction de leur type" - -#: tips:282 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "" -"Les noms de fichier (et les détails) sont mis en couleur en fonction du type " -"du fichier." - -#: tips:283 -msgid "Directory:" -msgstr "Répertoire :" - -#: tips:284 -msgid "Regular file:" -msgstr "Fichier ordinaire :" - -#: tips:285 -msgid "Pipe:" -msgstr "Tube :" - -#: tips:286 -msgid "Socket:" -msgstr "Socket :" - -#: tips:288 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Erreur, comme un lien qui pointe vers un fichier inexistant, ou un fichier " -"que le filer n'a pas la permission d'examiner." - -#: tips:289 -msgid "Character device:" -msgstr "Périphérique caractère :" - -#: tips:290 -msgid "Block device:" -msgstr "Périphérique bloc :" - -#: tips:291 -msgid "Door:" -msgstr "Porte :" - -#: tips:292 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Les portes sont un peu comme les sockets ou les tubes, et n'ont été vues que " -"sous Solaris." - -#: tips:293 -msgid "Executable file:" -msgstr "Fichier exécutable :" - -#: tips:294 -msgid "Application directory:" -msgstr "Répertoire application :" - -#: tips:295 -msgid "Unknown type:" -msgstr "Type inconnu :" - -#: tips:296 -msgid "Compatibility" -msgstr "Compatibilité" - -#: tips:297 -msgid "Window manager problems" -msgstr "Problèmes de WM (gestionnaires de fenêtres)" - -#: tips:298 -msgid "Override window manager control of the pinboard and panels" -msgstr "Outrepasser le contrôle du punaiseur et des panneaux par le WM" - -#: tips:299 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Certains gestionnaires de fenêtres (WM) ne supportent pas le nouveau système " -"« Extended Window Manager Hints » et traitent ainsi le punaiseur et les " -"panneaux comme des fenêtres normales. Activer cette option pour corriger les " -"problèmes comme : le punaiseur passe au premier plan quand vous cliquez " -"dessus, des barres de titre et autres décorations apparaissent autour des " -"fenêtres, ou ces fenêtres apparaissent dans les listes de sélection de " -"fenêtres." - -#: tips:300 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Passer tous les clics sur l'image de fond au gestionnaire de fenêtres" - -#: tips:301 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normalement, cliquer sur le fond du bureau avec le bouton droit ouvre le " -"menu du punaiseur et cliquer avec le bouton gauche efface la sélection. " -"Activez cette option pour transmettre à la place les événements à votre " -"gestionnaire de fenêtres. Les clics sur les icônes ne seront pas transmis." - -#: tips:302 -msgid "Blackbox root menus hack" -msgstr "Hack des menus racine de Blackbox" - -#: tips:303 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox et les gestionnaires de fenêtres similaires ne " -"fonctionnent pas encore bien avec le punaiseur de ROX-Filer. Ces " -"gestionnaires de fenêtres devraient changer leur comportement dans leurs " -"nouvelles versions de manière à ce que ceci ne soit pas nécessaire." - -#: tips:304 -msgid "Panel is a 'dock'" -msgstr "Le panneau est un « dock »" - -#: tips:305 -msgid "" -"Disable this option if the panel stays above other windows against your " -"wishes. Requires a restart to take effect." -msgstr "" -"Désactivez cette option si le panneau reste au-dessus des autres fenêtres " -"contre votre volonté. Demande un redémarrage pour prendre effet." - -#: tips:306 -msgid "Drag and drop" -msgstr "Glisser-déposer" - -#: tips:307 -msgid "Don't use hostnames" -msgstr "Ne pas utiliser de nom d'hôte" - -#: tips:308 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Quelques applications parmi les plus anciennes ne supportent pas " -"complètement le protocole XDND et peuvent nécessiter l'activation de cette " -"option. Utilisez-la si le « glisser » de fichiers vers une application " -"provoque bien l'apparition d'un signe '+' sur le pointeur mais que le " -"« déposer » ne fonctionne pas." - -#: tips:309 -msgid "Extended attributes" -msgstr "Attributs étendus" - -#: tips:310 -msgid "Don't use extended attributes" -msgstr "Ne pas utiliser les attributs étendus" - -#: tips:311 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"Ceci désactive l'utilisation des attributs étendus disponibles dans les " -"nouveaux systèmes d'exploitation et systèmes de fichiers. Si cette option " -"est choisie, l'entrée « Fixer le type » du menu est désactivée, le type MIME " -"du fichier est seulement dérivé du nom du fichier et la fenêtre des " -"propriétés ne rapporte pas les attributs étendus." diff --git a/ROX-Filer/src/po/gl.po b/ROX-Filer/src/po/gl.po deleted file mode 100644 index c6480770..00000000 --- a/ROX-Filer/src/po/gl.po +++ /dev/null @@ -1,4467 +0,0 @@ -msgid "" -msgstr "" -"Project-Id-Version: rox-filer-2.9 galego\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-09-16 08:51+0200\n" -"PO-Revision-Date: 2009-10-22 19:59+0100\n" -"Last-Translator: Miguel Anxo Bouzada \n" -"Language-Team: Galician \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Poedit-Language: Galician\n" -"X-Poedit-Country: SPAIN\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "_Silencioso" - -#: abox.c:227 -msgid "Quiet" -msgstr "Silencioso" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "Non confirme cada operación" - -#: abox.c:454 -#: infobox.c:782 -#: tips:36 -msgid "Name" -msgstr "Nome" - -#: abox.c:460 -#: menu.c:237 -msgid "Directory" -msgstr "Directorio" - -#: abox.c:549 -msgid "Expression:" -msgstr "Expresión:" - -#: action.c:57 -msgid "See the attr(5) man page for full details." -msgstr "Vexa a páxina do manual attr(5) para máis detalles." - -#: action.c:59 -msgid "See the fsattr(5) man page for full details." -msgstr "Vexa a páxina do manual fsattr(5) para máis detalles." - -#: action.c:61 -msgid "You do not appear to have OS support." -msgstr "Parece que non ten compatibilidade para S.O." - -#: action.c:191 -msgid "Find expression reference" -msgstr "Referéncia para expresións de busca" - -#: action.c:202 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Inicio rápido\n" -"Poña só o nome do ficheiro que quere buscar entre comiñas:\n" -"'index.html' (Para atopar 'index.html')\n" -"\n" -"Exemplos\n" -"'*.htm', '*.html' (Atopa HTML)\n" -"IsDIr 'lib' (Atopa directorios 'lib')\n" -"IsReg 'core' (atopa un ficheiro regular chamado 'core')\n" -"! (IsDir, IsReg) (Non é un directorio ou ficheiro regular)\n" -"mtime after 1 day ago and size > 1Mb (Con 1 mb e modificado recentemente)\n" -"'CVS' prune, isreg (ficheiro regular non está en CVS)\n" -"IsReg system(grep -q fred \"%\") (conten a palabra 'fred')\n" -"\n" -"Probas sinxelas\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permisos)\n" -"IsEmpty, IsMine\n" -"Un patrón entre comillas simples é un patrón comodin estilo terminal.\n" -"Si conten unha barra despois do espazo rompe a ruta completa, pola\n" -"contra rompe o nome da folla.\n" -"\n" -"Comparacións\n" -"<, <=, =, !=, >, >=, After, Before (compara dous valores)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (tamaños de ficheiros)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (veces)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (valores)\n" -"\n" -"Especiais\n" -"system(command) (verdadeiro se «orde» devolve un cero de saida;\n" -"% na «orde» é substituido por a ruta ao actual ficheiro)\n" -"prune (falso, e impide a busca de contido nun directorio)." - -#: action.c:249 -msgid "Change permissions reference" -msgstr "Referéncia para o cambio de permisos" - -#: action.c:260 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalmente é abondo con seleccionar unha opción do menú despregable,\n" -"pero as veces necesitase precisar un pouco máis...\n" -"\n" -"O formato de unha orde é CAMBIO,CAMBIO,...\n" -"Cada CAMBIO é: QUEN COMO PERMISOS\n" -"QUEN é algunha combinación de u, g, o que determina se se van a\n" -"cambiar os permisos para O Usuario (propietario), Grupo ou Outros.\n" -"COMO é +,- o - para engadir, quitar ou manter permisos.\n" -"PERMISOS son combinacións das letras rwxXstugo\n" -"\n" -"Os textos entre parénteses e os espazos son ignorados\n" -"Exemplos\n" -"u+rw: concede permisos de lectura e escritura ao propietario\n" -"g=u: os permisos para grupo son os mesmos que os de usuario(s)\n" -"o=u-w: outros teñen os mesmos permisos que o propietario menos o de escritura\n" -"a+x: aPermisos de acceso/execución - o mesmo que ugo+x\n" -"a+X: os directorios fanse accesibles para todos; os ficheiros fanse executables para todos\n" -"u+rw, go+r: duas ordes á vez!\n" -"u+s: poñer o bit SetUID - normalmente non ten efeto en ficheiros de escritura\n" -"755: configura permisos directamente\n" -"\n" -"Vexa a páxina de axuda (man) chmod(1) para ver máis detalles." - -#: action.c:301 -msgid "Set type reference" -msgstr "Referéncia para a definición de tipo" - -#: action.c:312 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalmente «ROX-Filer» determina o tipo dun ficheiro regular\n" -"buscando un patrón no seu nome. Para cambiar o tipo do ficheiro\n" -"ten que renomeá-lo.\n" -"\n" -"Algúns sistemas novos de ficheiros son compatibles con algo chamado\n" -"'Atributos Estendidos' que poden ser usados para gardar datos adicionais\n" -"de cada ficheiro como parámetros nomeados. «ROX-Filer» usa o atributo\n" -"«user.mime_type» para gardar os tipos de ficheiro.\n" -"\n" -"Os tipos de ficheiro só son compatibles con ficheiros regulares, e non\n" -"para directorios, dispositivos, tuberias (pipes) ou «sockets», polo tanto só\n" -"en certos sistemas de ficheiros e cando o S.O. os implementa.\n" - -#: action.c:419 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Proceso rematado.\n" - -#: action.c:435 -msgid "There was one error.\n" -msgstr "Atopouse un erro.\n" - -#: action.c:437 -#, c-format -msgid "There were %d errors.\n" -msgstr "Atopáronse %d erros.\n" - -#: action.c:461 -msgid "ERROR reading" -msgstr "Atopouse un ERRO ao ler" - -#: action.c:504 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Feito\n" - -#: action.c:560 -#: support.c:395 -msgid "ERROR" -msgstr "ERRO" - -#: action.c:714 -#: main.c:698 -#: main.c:705 -#: main.c:712 -#: main.c:726 -msgid "Yes" -msgstr "Sí" - -#: action.c:717 -#: main.c:700 -#: main.c:707 -#: main.c:714 -#: main.c:726 -msgid "No" -msgstr "Non" - -#: action.c:735 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Solicitando proceso fillo para rematar...\n" - -#: action.c:742 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Tentando deter (KILL) procesos desbocados...\n" - -#: action.c:895 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Calcular o contido de %s?" - -#: action.c:931 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Eliminar %s'%s'?" - -#: action.c:932 -msgid "WRITE-PROTECTED " -msgstr "PROTEXIDO CONTRA ESCRITURA" - -#: action.c:939 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Borrando '%s'\n" - -#: action.c:952 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'O directorio '%s' foi borrado\n" - -#: action.c:985 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Expulsar '%s'?" - -#: action.c:992 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Expulsar '%s'\n" - -#: action.c:1011 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"fallou a expulsión\n" - -#: action.c:1030 -#: action.c:1049 -#, c-format -msgid "?Check '%s'?" -msgstr "?Verificar '%s'?" - -#: action.c:1046 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!A condición de busca non é válida - debe cambiala e probar de novo\n" - -#: action.c:1056 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(ao verificar '%s')\n" - -#: action.c:1130 -#: action.c:1155 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Cambiar permisos de '%s'?" - -#: action.c:1136 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Cambiando permisos de '%s'\n" - -#: action.c:1153 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Orde de modo non válida - debe cambiala e probar de novo\n" - -#: action.c:1211 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?Cambiar o contido de '%s'?" - -#: action.c:1214 -#: action.c:1234 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Cambiar o tipo de '%s'?" - -#: action.c:1231 -msgid "!Invalid type - change it and try again\n" -msgstr "!Tipo non válido - debe cambialo e probar de novo\n" - -#: action.c:1253 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Cambiando o tipo de '%s' a '%s'\n" - -#: action.c:1276 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "'O tipo de directorio '%s non se cambia'\n" - -#: action.c:1282 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "'Ficheiro non regular '%s' non se cambia\n" - -#: action.c:1342 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' xa existe - %s?" - -#: action.c:1344 -msgid "merge contents" -msgstr "misturar contidos" - -#: action.c:1345 -msgid "overwrite" -msgstr "sobreescribir" - -#: action.c:1361 -msgid "'Trying copy anyway...\n" -msgstr "'Tentando copiar ainda asi...\n" - -#: action.c:1370 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Copiar %s en %s?" - -#: action.c:1374 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Copiando %s en %s\n" - -#: action.c:1389 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!ERRO: O destino xa existe pero non é un directorio\n" - -#: action.c:1461 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Fallou ao copiar '%s'\n" - -#: action.c:1505 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' xa existe - sobreescribir?" - -#: action.c:1520 -msgid "'Trying move anyway...\n" -msgstr "'Tentando mover ainda asi...\n" - -#: action.c:1528 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Mover %s para %s?" - -#: action.c:1532 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Movendo %s para %s\n" - -#: action.c:1540 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"fallou ao mover %s para %s\n" - -#: action.c:1561 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!ERRO: Non se pode copiar un obxecto cara a el mesmo\n" - -#: action.c:1576 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!ERRO: Non se pode mover/renomear un obxecto cara a el mesmo\n" - -#: action.c:1588 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Ligando %s con %s\n" - -#: action.c:1593 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Crear ligazón para %s con %s?" - -#: action.c:1636 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Montando %s\n" - -#: action.c:1637 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Desmontando %s\n" - -#: action.c:1640 -#, c-format -msgid "?Mount %s?" -msgstr "?Montar %s?" - -#: action.c:1641 -#, c-format -msgid "?Unmount %s?" -msgstr "?Desmontar %s?" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Fallou a montaxe\n" - -#: action.c:1663 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Fallou a desmontaxe\n" - -#: action.c:1671 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(de cal queira xeito agora parece estar montado)\n" - -#: action.c:1717 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Total: %s (" - -#: action.c:1723 -msgid "file" -msgstr "ficheiro" - -#: action.c:1723 -msgid "files" -msgstr "ficheiros" - -#: action.c:1727 -msgid "no directories)\n" -msgstr "ningún directorio)\n" - -#: action.c:1731 -msgid "directory" -msgstr "directorio" - -#: action.c:1732 -msgid "directories" -msgstr "directorios" - -#: action.c:1773 -msgid "!No mount points selected!\n" -msgstr "!Punto de montaxe sen selecionar!\n" - -#: action.c:1858 -msgid "?Another search?" -msgstr "?Outra busca?" - -#: action.c:1888 -#: action.c:1919 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' é unha ligazón simbólica\n" - -#: action.c:1959 -msgid "You need to select some items to search through" -msgstr "É preciso seleccionar algúns elementos para buscar en eles" - -#: action.c:1969 -#: menu.c:228 -msgid "Find" -msgstr "Buscar" - -#: action.c:2002 -msgid "You need to select some items to count" -msgstr "É necesario seleccionar algúns elementos para calcular" - -#: action.c:2006 -msgid "Disk Usage" -msgstr "Uso de disco" - -#: action.c:2042 -msgid "Mount / Unmount" -msgstr "Montar / Desmontar" - -#: action.c:2059 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "«ROX-Filer» ainda non é compatible con puntos de montaxe no seu sistema. Desculpe." - -#: action.c:2073 -#: menu.c:216 -#: tips:173 -msgid "Delete" -msgstr "Borrar" - -#: action.c:2085 -#: tips:178 -msgid "Force" -msgstr "Forzar" - -#: action.c:2085 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Non confirme ao borrar en elementos sen permisos de escritura" - -#: action.c:2088 -#: action.c:2147 -#: action.c:2210 -#: action.c:2283 -#: action.c:2323 -#: tips:180 -msgid "Brief" -msgstr "Rexistro" - -#: action.c:2088 -msgid "Only log directories being deleted" -msgstr "Só crea rexistro dos directorios ao ser borrados" - -#: action.c:2107 -msgid "You need to select the items whose permissions you want to change" -msgstr "É necesario escoller os elementos cuxos permisos quere modificar" - -#: action.c:2115 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Facer executable/buscable)" - -#: action.c:2117 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Facer non executale/non buscable)" - -#: action.c:2119 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Dar ao propietario permisos de lectura escritura)" - -#: action.c:2121 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privado - aceso permitido só ao propietario)" - -#: action.c:2123 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Aceso público, sen escritura)" - -#: action.c:2134 -#: menu.c:189 -#: menu.c:226 -#: tips:53 -msgid "Permissions" -msgstr "Permisos" - -#: action.c:2147 -#: action.c:2210 -msgid "Don't list processed files" -msgstr "Non listar os ficheiros procesados" - -#: action.c:2150 -#: action.c:2213 -#: tips:182 -msgid "Recurse" -msgstr "Recursivo" - -#: action.c:2150 -msgid "Also change contents of subdirectories" -msgstr "Cambiar tamén o contido dos subdirectorios" - -#: action.c:2154 -msgid "Command:" -msgstr "Orde:" - -#: action.c:2184 -msgid "You need to select the items whose type you want to change" -msgstr "Ten que seleccionar o elemento cuxo tipo quere modificar" - -#: action.c:2197 -msgid "Set type" -msgstr "Definir tipo" - -#: action.c:2213 -msgid "Change contents of subdirectories" -msgstr "Cambiar o contido dos subdirectorios" - -#: action.c:2220 -#: infobox.c:638 -msgid "Type:" -msgstr "Tipo:" - -#: action.c:2267 -#: dnd.c:122 -#: menu.c:2024 -#: tips:167 -msgid "Copy" -msgstr "Copiar" - -#: action.c:2279 -#: action.c:2319 -#: tips:184 -msgid "Newer" -msgstr "Recente" - -#: action.c:2280 -#: action.c:2320 -#: tips:185 -msgid "Only over-write if source is newer than destination." -msgstr "Sobreescribir só se a fonte é máis recente que o destino" - -#: action.c:2283 -msgid "Only log directories as they are copied" -msgstr "Crear rexistro de directorios só o ser copiados" - -#: action.c:2307 -#: dnd.c:123 -#: tips:169 -msgid "Move" -msgstr "Mover" - -#: action.c:2323 -msgid "Don't log each file as it is moved" -msgstr "Non crear rexistro de cada ficheiro ao ser movido" - -#: action.c:2346 -#: tips:171 -msgid "Link" -msgstr "Ligazón" - -#: action.c:2369 -#: appmenu.c:111 -#: filer.c:646 -#: infobox.c:1051 -msgid "Eject" -msgstr "Expulsar" - -#: action.c:2437 -msgid "Deleting items such as " -msgstr "Borrar elementos tales como" - -#: action.c:2441 -msgid "Deleting the item " -msgstr "Borrando o elemento" - -#: action.c:2443 -msgid "Deleting the items " -msgstr "Borrando os elementos" - -#: action.c:2462 -msgid " and " -msgstr " e " - -#: action.c:2471 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " vai a afectar a algúns elementos no taboleiro ou no panel - quere borralo igualmente?" - -#: action.c:2478 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " vai a afectar a algúns elementos no taboleiro ou no panel - quere borralos igualmente?" - -#: appmenu.c:197 -msgid "" -msgstr "" - -#: appmenu.c:319 -#, c-format -msgid "Symlink any programs you want into this directory. They will appear in the menu for all items of this type (%s/%s)." -msgstr "Cree as ligazóns simbólicas para os programas que precise neste directorio. Apareceran no menú para todos os elementos deste tipo (%s/%s)." - -#: appmenu.c:363 -#: menu.c:239 -msgid "Customise Menu..." -msgstr "Personalizar o menú..." - -#: appmenu.c:420 -#: menu.c:257 -#: toolbar.c:158 -msgid "Help" -msgstr "Axuda" - -#: bookmarks.c:148 -#: log.c:160 -msgid "Path" -msgstr "Ruta" - -#: bookmarks.c:156 -msgid "Title" -msgstr "Título" - -#: bookmarks.c:305 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Non é posible gardar nos favoritos un recurso non local '%s'\n" - -#: bookmarks.c:313 -#: bookmarks.c:631 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' non é un directorio" - -#: bookmarks.c:519 -msgid "You should first select some rows to delete" -msgstr "Debe seleccionar algunhas liñas para borrar" - -#: bookmarks.c:543 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Sitúe o punteiro nunha entrada da lista para mover" - -#: bookmarks.c:563 -msgid "This item is already at the end" -msgstr "Este elemento xa está no fin" - -#: bookmarks.c:637 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Non é posible gardar nos favoritos directorios non locais como '%s'" - -#: bookmarks.c:779 -msgid "Add New Bookmark" -msgstr "Engadir a marca páxinas" - -#: bookmarks.c:786 -msgid "Edit Bookmarks" -msgstr "Editar marca páxinas" - -#: bookmarks.c:791 -msgid "Recently Visited" -msgstr "Visitado recentemente" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "Renomear ficheiros en grupo" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "Restaurar" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "Facer na columna «Novo» unha copia da columna «Antigo»" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "_Renomear" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "Substituir:" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Esta é unha expresión regular para ser buscada.\n" -"^ coincidencia ao inicio de un nome de ficheiro\n" -"$ coincidencia ao fin\n" -"\\. coincidencia a un punto \n" -"\\.htm$ coincidencia ao '.htm' en 'index.htm', etc" - -#: bulk_rename.c:107 -msgid "With:" -msgstr "Por:" - -#: bulk_rename.c:114 -msgid "The first match in each filename will be replaced by this string. The only special characters are back-references from \\0 to \\9. To use them literally, they have to be escaped with a backslash." -msgstr "A primeira coincidencia en cada nome de ficheiro será substituida por esta expresión. Os únicos caracteres especiais son copias das referencias de \\0 a \\9. Para usalos, literalmente, teñen que ser escapados con unha barra invertida «\\»." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Aplicar" - -#: bulk_rename.c:123 -msgid "Do a search-and-replace in the New column. The files are not actually renamed until you click on the Rename button below." -msgstr "buscar e substituir nos ficheiros da coluna Novo. Os ficheiros non son realmente renomeados até premer no boton Renomear, en baixo." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "Nome antigo" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "Nome novo" - -#: bulk_rename.c:293 -msgid "No strings (in the New column) matched the given expression" -msgstr "Ningunha expresión (na coluna Novo) coincide con a expresión dada" - -#: bulk_rename.c:298 -msgid "One name matched, but the result was the same" -msgstr "Un nome coincide, pero o resultado foi o mesmo" - -#: bulk_rename.c:301 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d nomes coinciden, pero os resultados foron os mesmos" - -#: bulk_rename.c:327 -msgid "Specify a regular expression to match, and a string to replace matches with." -msgstr "Especifique unha expresión regular para coincidencias, e unha expresión para substituílas." - -#: bulk_rename.c:344 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (para '%s')" - -#: bulk_rename.c:377 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Xa existe un ficheiro chamado '%s'. Abandonando o renomeado en grupo." - -#: bulk_rename.c:382 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Fallou ao renomear '%s' como '%s':\n" -"%s\n" -"Abandonando o renomeado en grupo." - -#: bulk_rename.c:444 -#, c-format -msgid "A file called '%s' already exists" -msgstr "O ficheiro chamado '%s' xa existe" - -#: bulk_rename.c:455 -#, c-format -msgid "Some of the New names contain / characters (eg '%s'). This will cause the files to end up in different directories. Continue?" -msgstr "Algúns dos novos nomes conteñen o carácter / (ex. '%s'). Isto fará que os ficheiros rematen en directorios diferentes. Continuar?" - -#: bulk_rename.c:470 -msgid "None of the names have changed. Nothing to do!" -msgstr "Ningún dos nomes foi cambiado. Non se fai nada!" - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "Non foi posible migrar %d directorios" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"A selección foi movida de \n" -"%s\n" -" para a nova localización \n" -"%s\n" -"%s" - -#: dir.c:1041 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Non é posible ver estatísticas do directorio: %s" - -#: dir.c:1050 -#, c-format -msgid "Can't open directory: %s" -msgstr "Non é posible abrir o directorio: %s" - -#: display.c:659 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "Fallo en lstat(2): %s" - -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Crear ligazón (relativa)" - -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Crear ligazón (absoluta)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "Atopouse un erro interno - «info» non válido" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "Arrastre un directorio aquí para engadilo a marca páxinas" - -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "Atopouse un erro no protocolo XDS: o nome de unha folla non pode conter '/'\n" - -#: dnd.c:603 -msgid "XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/plain) did not contain a leafname\n" -msgstr "Destino XdndDirectSave0 dispoñible, pero o elemento XdndDirectSave0 (tipo texto/simple) non contén un nome de folla\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Desculpe - é necesario un destino do tipo text/uri-list ou XdndDirectSave0." - -#: dnd.c:619 -msgid "Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "Desculpe - É necesario o destino do tipo text/uri-list ou application/octet-stream." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote machine. For example:\n" -"\n" -"%s" -msgstr "" -"Fallou ao engadir algúns elementos ao taboleiro, xa que están nunha máquina remota. Por exemplo:\n" -"\"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "Destino descoñecido" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "Desculpe - O aplicativo remoto non consigue ou non quere enviar os datos" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "Houbo un erro no protocolo XDS: o código de retorno deberia ser 'S', 'F' ou 'E'\n" - -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "Desculpe, non é posible amosar un menú de accións para un ficheiro remoto / datos en bruto" - -#: dnd.c:859 -msgid "UntitledData" -msgstr "DatosSenNome" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "Atopouse un erro ao gardar o ficheiro: %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Non hai URI's no text/uri-list (non facer nada!)" - -#: dnd.c:991 -msgid "Can't get data from remote machine (application/octet-stream not provided)" -msgstr "Non é posible obter datos da máquina remota (application/octet-stream non dispoñible)" - -#: dnd.c:1014 -msgid "Some of these files are on a different machine - they will be ignored - sorry" -msgstr "Desculpe - Algúns destes ficheiros están nunha máquina diferente - van ser ignorados" - -#: dnd.c:1021 -msgid "None of these files are on the local machine - I can't operate on multiple remote files - sorry." -msgstr "Ningún destes ficheiros está na máquina local - non se pode operar en múltiples ficheiros remotos." - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "A acción solicitada é descoñecida" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "Atopouse un erro ao obter a lista de ficheiros: %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "Amosar" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "Amosar a selección actual nunha fiestra do xestor" - -#: dropbox.c:172 -msgid "" -msgstr "" - -#: dropbox.c:237 -msgid "I can't show you the currently set item, because nothing is currently set. Drag something onto me!" -msgstr "Non se pode amosar o elemento definido actualmente, xá que non hai nada definido actualmente. Arrastre algo cara aquí!" - -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Desculpe, debe soltar un ficheiro exactamente na área de destino." - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Desculpe, non se pode usar '%s' porque non é un ficheiro local." - -#: dropbox.c:278 -#: pinboard.c:932 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Non se pode aceder a '%s':\n" -"%s" - -#: filer.c:461 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Atopouse un erro ao explorar '%s':\n" -"%s\n" - -#: filer.c:465 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Atopouse un erro ao explorar '%s':\n" -"%s" - -#: filer.c:621 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Desexa desmontar este dispositivo?\n" -"\n" -"Desmontar un dispositivo fai que sexa seguro extraelo." - -#: filer.c:626 -msgid "Perform the same action in future for this mount point" -msgstr "Realizar a mesma acción no futuro para este punto de montaxe" - -#: filer.c:633 -msgid "No change" -msgstr "Sen cambios" - -#: filer.c:639 -#: infobox.c:1049 -#: menu.c:872 -msgid "Unmount" -msgstr "Desmontar" - -#: filer.c:743 -msgid "Directory missing/deleted" -msgstr "Directorio ausente/borrado" - -#: filer.c:1107 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"O grupo %s non está definido. Seleccione algúns ficheiros e prema en Ctrl+%s para definir o grupo. Prema só %s para seleccionar os ficheiros mais tarde.\n" -"Asegúrese de que «BloqNum» está activado ao usar o teclado numérico." - -#: filer.c:1343 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Non se pode aceder ao directorio '%s'" - -#: filer.c:1495 -#, c-format -msgid "Directory '%s' not found." -msgstr "Non se atopa o directorio '%s'." - -#: filer.c:1795 -msgid "Cancel" -msgstr "Cancelar" - -#: filer.c:2076 -msgid "A" -msgstr "T" - -#: filer.c:2078 -#: find.c:923 -msgid "G" -msgstr "G" - -#: filer.c:2083 -msgid "S" -msgstr "E" - -#: filer.c:2085 -msgid "T" -msgstr "M" - -#: filer.c:2095 -msgid "All, " -msgstr "Todos, " - -#: filer.c:2098 -#, c-format -msgid "Glob (%s), " -msgstr "Glob (%s)," - -#: filer.c:2106 -msgid "Scanning, " -msgstr "Explorando," - -#: filer.c:2108 -msgid "Thumbs, " -msgstr "Miniaturas," - -#: filer.c:2384 -msgid "Symbolic link to " -msgstr "Ligazón simbólica a " - -#: filer.c:2426 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "O nome do ficheiro non é un UTF-8 válido. Debe renomealo.\n" - -#: filer.c:2743 -#: menu.c:2014 -msgid "Item no longer exists!" -msgstr "O elemento xa non existe!" - -#: filer.c:3549 -msgid "Select display properties to save" -msgstr "Seleccione as propiedades de visualización para gardar" - -#: filer.c:3553 -msgid "Save display settings for directory" -msgstr "Gardar axustes de visualización para o directorio/b>" - -#: filer.c:3560 -msgid "Select settings to save" -msgstr "Seleccione os axustes para gardar" - -#: filer.c:3567 -msgid "Position" -msgstr "Posición" - -#: filer.c:3572 -#: toolbar.c:133 -#: toolbar.c:137 -#: tips:39 -msgid "Size" -msgstr "Tamaño" - -#: filer.c:3577 -msgid "Show hidden" -msgstr "Amosar agochados" - -#: filer.c:3583 -msgid "Display style" -msgstr "Estilo de visualización" - -#: filer.c:3589 -msgid "Sort type and order" -msgstr "Ordenar por tipo e propietario" - -#: filer.c:3594 -#: toolbar.c:141 -msgid "Details" -msgstr "Detalles" - -#: filer.c:3599 -#: tips:92 -#: tips:93 -msgid "Thumbnails" -msgstr "Miniaturas" - -#: filer.c:3605 -msgid "Filter" -msgstr "Filtro" - -#: find.c:485 -msgid "And" -msgstr "E" - -#: find.c:509 -msgid "Not" -msgstr "Non" - -#: find.c:552 -msgid "system" -msgstr "sistema" - -#: find.c:560 -msgid "prune" -msgstr "descartar" - -#: find.c:648 -msgid "After" -msgstr "Despois" - -#: find.c:650 -msgid "Before" -msgstr "Antes" - -#: find.c:744 -msgid "IsReg" -msgstr "ÉRexistro" - -#: find.c:746 -msgid "IsLink" -msgstr "ÉLigazón" - -#: find.c:748 -msgid "IsDir" -msgstr "ÉDirectorio" - -#: find.c:750 -msgid "IsChar" -msgstr "ÉCarácter" - -#: find.c:752 -msgid "IsBlock" -msgstr "ÉBloque" - -#: find.c:754 -msgid "IsDev" -msgstr "ÉDispositivo" - -#: find.c:756 -msgid "IsPipe" -msgstr "ÉTubería" - -#: find.c:758 -msgid "IsSocket" -msgstr "ÉSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "ÉPorta" - -#: find.c:762 -msgid "IsSUID" -msgstr "ÉSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "ÉSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "ÉPegañento" - -#: find.c:768 -msgid "IsReadable" -msgstr "ÉLexible" - -#: find.c:770 -msgid "IsWriteable" -msgstr "ÉEscribible" - -#: find.c:772 -msgid "IsExecutable" -msgstr "ÉExecutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "ÉBaleiro" - -#: find.c:776 -msgid "IsMine" -msgstr "ÉOmeu" - -#: find.c:904 -msgid "Now" -msgstr "Agora" - -#: find.c:917 -msgid "Byte" -msgstr "Byte" - -#: find.c:917 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:919 -msgid "Kb" -msgstr "Kb" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mb" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "Sec" -msgstr "Segundo" - -#: find.c:925 -msgid "Secs" -msgstr "Segundos" - -#: find.c:927 -msgid "Min" -msgstr "Minuto" - -#: find.c:927 -msgid "Mins" -msgstr "Minutos" - -#: find.c:929 -msgid "Hour" -msgstr "Hora" - -#: find.c:929 -msgid "Hours" -msgstr "Horas" - -#: find.c:931 -msgid "Day" -msgstr "Día" - -#: find.c:931 -msgid "Days" -msgstr "Días" - -#: find.c:933 -msgid "Week" -msgstr "Semana" - -#: find.c:933 -msgid "Weeks" -msgstr "Semanas" - -#: find.c:935 -msgid "Year" -msgstr "Ano" - -#: find.c:935 -msgid "Years" -msgstr "Anos" - -#: find.c:944 -msgid "Ago" -msgstr "Antes" - -#: find.c:946 -msgid "Hence" -msgstr "Desde" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "tamaño" - -#: find.c:969 -msgid "inode" -msgstr "nodo-i" - -#: find.c:971 -msgid "nlinks" -msgstr "nligazóns" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "bloque" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "Gardar como" - -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "Sen nome" - -#: gtksavebox.c:471 -msgid "Remote application wants to use Direct Save, but I can't read the XdndDirectSave0 (type text/plain) property.\n" -msgstr "O aplicativo remoto quere usar «Direct Save», pero non se pode ler a propriedade XdndDirectSave0 (type text/plain).\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Arraste a ícona cara a un directorio\n" -"(ou introduza a ruta completa)" - -#: gui_support.c:330 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:399 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "Tentando ler un ficheiro XML como un ficheiro de texto. O ficheiro '%s' pode estar danado." - -#: gui_support.c:416 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the Options window and try changing something and then changing it back (causing the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Atopouse un erro no ficheiro '%s' na liña %d: \n" -"\"%s\"\n" -"Isto pode ser debido a ter actualizado desde unha versión antiga do «ROX-Filer». Abra a fiestra «Opcións» probe a cambiar cal queira cousa para darlle o valor desexado (para que o ficheiro volva a ser gardado).\n" -"Os próximos erros serán ignorados." - -#: gui_support.c:1008 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Creba de liña incorrecta ou faltan os datos «text/uri-list»" - -#: gui_support.c:1341 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Non se pode abrir o ficheiro '%s': %s" - -#: gui_support.c:1385 -#, c-format -msgid "Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "Fallou ao cargar a imaxe '%s': razón descoñecida, é probable que o ficheiro de imaxe este danado" - -#: gui_support.c:1450 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Este aplicativo (%s) non pode executarse, xa que a orde «0launch» non está dispoñible. Pode descargalo desta ligazón:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:39 -msgid "Note that you must save your choices and restart the filer for the new language setting to take full effect." -msgstr "Fíxese en que ten que gardar a súa selección e reiniciar o xestor para que as novas definicións de idioma teñan efecto." - -#: icon.c:76 -msgid "(click to set)" -msgstr "(prema para definir)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "«ROX-Filer»" - -#: icon.c:132 -#: menu.c:258 -msgid "About ROX-Filer..." -msgstr "Acerca de «ROX-Filer»..." - -#: icon.c:133 -#: menu.c:259 -msgid "Show Help Files" -msgstr "Amosar ficheiros de axuda" - -#: icon.c:134 -#: menu.c:260 -msgid "Manual" -msgstr "Manual" - -#: icon.c:136 -#: menu.c:235 -msgid "Options..." -msgstr "Opcións..." - -#: icon.c:137 -#: menu.c:244 -msgid "Home Directory" -msgstr "Directorio persoal" - -#: icon.c:138 -#: icon.c:1410 -#: menu.c:212 -#: type.c:223 -msgid "File" -msgstr "Ficheiro" - -#: icon.c:139 -#: menu.c:218 -#: menu.c:885 -msgid "Shift Open" -msgstr "Abrir Con «Mayús»" - -#: icon.c:140 -#: menu.c:223 -msgid "Properties" -msgstr "Propiedades" - -#: icon.c:141 -#: menu.c:221 -msgid "Set Run Action..." -msgstr "Definir a acción a executar..." - -#: icon.c:142 -#: menu.c:222 -msgid "Set Icon..." -msgstr "Definir a icona..." - -#: icon.c:143 -#: icon.c:867 -msgid "Edit Item" -msgstr "Editar o elemento" - -#: icon.c:144 -msgid "Show Location" -msgstr "Amosar a localización" - -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "Eliminar elemento(s)" - -#: icon.c:318 -#: log.c:110 -#: menu.c:774 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:331 -msgid "Nothing" -msgstr "Nada" - -#: icon.c:592 -msgid "The location must contain at least one character!" -msgstr "A localización debe conter polo menos un carácter!" - -#: icon.c:657 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "Debe desbloquear '%s' antes de quitalo" - -#: icon.c:667 -msgid "You must first select some items to remove" -msgstr "Antes de quitalo debe seleccionar algún elemento" - -#: icon.c:673 -msgid "An item must be unlocked before it can be removed." -msgstr "O elemento debe ser desbloqueado antes de quitalo." - -#: icon.c:687 -msgid "You must open the menu over an item" -msgstr "Hai que abrir o menú sobre o elemento" - -#: icon.c:712 -#: menu.c:1285 -msgid "You can only set the run action for a regular file" -msgstr "Só se pode definir a acción de executar para un ficheiro regular" - -#: icon.c:798 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Prema o atallo desexado (ex. Control+F1)" - -#: icon.c:820 -msgid "Failed to get keyboard grab!" -msgstr "Falla o aceso ao teclado!" - -#: icon.c:870 -msgid "Clicking the icon opens:" -msgstr "Premer na icona abre:" - -#: icon.c:880 -msgid "Arguments to pass (for executables):" -msgstr "Argumentos necesarios (para executables):" - -#: icon.c:894 -msgid "The text displayed under the icon is:" -msgstr "O texto amosado baixo a icona é:" - -#: icon.c:907 -msgid "The keyboard shortcut is:" -msgstr "O atallo de teclado é:" - -#: icon.c:927 -msgid "Locked" -msgstr "Bloqueado" - -#: icon.c:932 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "O bloqueo dun elemento impide que sexa eliminado accidentalmente" - -#: infobox.c:113 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Quere confirmar a apertura de %d fiestras?" - -#: infobox.c:114 -msgid "Show Info" -msgstr "Información" - -#: infobox.c:136 -#: menu.c:779 -msgid "(bad utf-8)" -msgstr "(utf-8 incorrecto)" - -#: infobox.c:261 -msgid "Show _Help Files" -msgstr "Amosar fic_heiros de axuda" - -#: infobox.c:274 -msgid "Permissions" -msgstr "Permisos" - -#: infobox.c:292 -msgid "Contents indicate..." -msgstr "O contido indica..." - -#: infobox.c:302 -msgid "When all directories are closed" -msgstr "Cando se pechan todos os directorios" - -#: infobox.c:438 -#: infobox.c:579 -#: support.c:349 -msgid "bytes" -msgstr "bytes" - -#: infobox.c:461 -msgid "Failed to read size" -msgstr "Fallou ao ler o tamaño" - -#: infobox.c:522 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' xa non é unha ligazón simbólica" - -#: infobox.c:529 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Fallou ao desligar '%s':\n" -"%s" - -#: infobox.c:534 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Fallou ao crear a ligazón de '%s':\n" -"%s\n" -"(nota: a ligazón antiga foi eliminada)" - -#: infobox.c:558 -#: tips:242 -msgid "Error:" -msgstr "Erro:" - -#: infobox.c:565 -msgid "Real directory:" -msgstr "Directorio real:" - -#: infobox.c:568 -msgid "Owner, Group:" -msgstr "Propietario, Grupo:" - -#: infobox.c:575 -#: infobox.c:590 -#: infobox.c:599 -msgid "Size:" -msgstr "Tamaño:" - -#: infobox.c:600 -msgid "Scanning" -msgstr "Explorando" - -#: infobox.c:625 -msgid "Failed to scan" -msgstr "Fallou a exploración" - -#: infobox.c:632 -msgid "Change time:" -msgstr "Cambiar data:" - -#: infobox.c:634 -msgid "Modify time:" -msgstr "Modificar data:" - -#: infobox.c:636 -msgid "Access time:" -msgstr "Hora de aceso:" - -#: infobox.c:644 -msgid "Extended attributes:" -msgstr "Atributos estendidos:" - -#: infobox.c:646 -msgid "Present" -msgstr "Presente" - -#: infobox.c:647 -msgid "None" -msgstr "Ningún" - -#: infobox.c:648 -msgid "Not supported" -msgstr "Non compatible" - -#: infobox.c:660 -msgid "Link target:" -msgstr "Destino da ligazón:" - -#: infobox.c:672 -#: infobox.c:675 -msgid "Run action:" -msgstr "Acción:" - -#: infobox.c:672 -msgid "Execute file" -msgstr "Executar ficheiro" - -#: infobox.c:784 -msgid "Comment" -msgstr "Comentario" - -#: infobox.c:786 -msgid "Execute" -msgstr "Executar" - -#: infobox.c:800 -msgid "" -msgstr "" - -#: infobox.c:871 -#, c-format -msgid "file(1) says... %s" -msgstr "o ficheiro(1) dice... %s" - -#: infobox.c:928 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Non foi posible cambiar os permisos: %s" - -#: infobox.c:946 -msgid "Owner" -msgstr "Propietario" - -#: infobox.c:948 -msgid "Group" -msgstr "Grupo" - -#: infobox.c:950 -msgid "World" -msgstr "Mundo" - -#: infobox.c:953 -msgid "Read" -msgstr "Ler" - -#: infobox.c:956 -msgid "Write" -msgstr "Escribir" - -#: infobox.c:959 -msgid "Exec" -msgstr "Executar" - -#: infobox.c:977 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:984 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:991 -msgid "Sticky" -msgstr "Pegañento" - -#: infobox.c:1047 -msgid "Do nothing" -msgstr "Non facer nada" - -#: infobox.c:1053 -msgid "Ask" -msgstr "Preguntar" - -#: infobox.c:1065 -msgid "Symbolic link" -msgstr "Ligazón simbólica" - -#: infobox.c:1068 -msgid "ROX application" -msgstr "Aplicativo ROX" - -#: infobox.c:1076 -msgid "mounted" -msgstr "montado" - -#: infobox.c:1076 -msgid "unmounted" -msgstr "desmontado" - -#: infobox.c:1080 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Punto de montaxe para %s (%s)" - -#: infobox.c:1083 -#, c-format -msgid "Mount point (%s)" -msgstr "Punto de montaxe (%s)" - -#: log.c:55 -msgid "ROX-Filer started" -msgstr "«ROX-Filer» activado" - -#: log.c:112 -#, c-format -msgid "%s on %d items" -msgstr "%s en %d elementos" - -#: log.c:125 -msgid "Item" -msgstr "Elemento" - -#: log.c:149 -msgid "Time" -msgstr "Hora" - -#: log.c:154 -msgid "Action" -msgstr "Acción" - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"«ROX-Filer» non ten ABSOLUTAMENTE NINGUNHA GARANTIA,\n" -"en toda a estensión permitida pola lei.\n" -"Vostede pode redistribuir copias de «ROX-Filer»\n" -"baixo os termos da GNU General Public License.\n" -"Para mais información sobre a licencia, vexa o ficheiro «COPYING».\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Use «ROX-Filer/AppRun --help» para mais información.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Use «ROX-Filer/AppRun -h» para mais información.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"NOTA: O seu sistema non é compatible con opcións longas - \n" -"no seu lugar debe utilizar as versións curtas.\n" -"\n" - -#: main.c:115 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Uso: ROX-Filer/AppRun [OPCIÓN]... [FICHEIRO]...\n" -"Abrir cada directorio ou ficheiro listado, ou o directorio de\n" -"traballo actual se non se fornece ningún argumento.\n" -"\n" -" -b, --border=PANEL\tabrir PANEL como un panel de bordo\n" -" -B, --bottom=PANEL\tabrir PANEL como un panel no bordo\n" -" \tinferior da pantalla\n" -" -c, --client-id=ID\tusado para a xestión da sesión\n" -" -d, --dir=DIR\t\tabrir DIR como un directorio (non como aplicativo)\n" -" -D, --close=DIR\tpechar DIR e os seus subdirectorios\n" -" -h, --help\t\tamosar esta axuda e sair\n" -" -l, --left=PAINEL\tabrir PANEL como un panel no bordo\n" -" \tesquerdo da pantalla\n" -" -m, --mime-type=FILE\timprime o tipo MIME de FILE e saet\n" -" -n, --new\t\tinicia unha nova copia; para debug do filer\n" -" -p, --pinboard=PIN\tusar o taboleiro PIN como escritorio\n" -" -r, --right=PANEL\tabrir PANEL como un panel no bordo\n" -" \tdereito da pantalla\n" -" -R, --RPC\t\tinvocar method call read from stdin\n" -" -s, --show=FILE\tabrir o directorio amosando FILE\n" -" -S, --rox-session\tusar as opcións predeterminadas de panel e escritorio, e -n\n" -" -t, --top=PANEL\tabrir PANEL como un panel no bordol\n" -" \tsuperior da pantalla\n" -" -u, --user\t\tamosar o nome de usuario en cada fiestra \n" -" -v, --version\t\tamosa información da versión e sae\n" -" -x, --examine=FILE\tFICHEIRO cambiou - volver a analisar\n" -"\n" -"Informar de erros a %s.\n" -"Páxina web (incluindo versións actualizadas): http://rox.sourceforge.net/\n" - -#: main.c:237 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"Obtivemos o erro BadWindow do servidor X. Isto pode ser debido a este bug do GTK (ao facer arrastar-e-soltar?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Tentando continuar..." - -#: main.c:400 -msgid "The -o argument is no longer used. You can turn on override redirect from the Options box instead." -msgstr "O argumento -o xa non se usa. Pode no seu lugar activar «override» a partir da caixa de Opcións." - -#: main.c:529 -#, c-format -msgid "Running as user '%s'" -msgstr "Executando como usuario '%s'" - -#: main.c:690 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Compilado con GTK versión %s\n" - -#: main.c:691 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "Executando con GTK versión %d.%d.%d\n" - -#: main.c:695 -msgid "features set at compile time" -msgstr "características definidas ao compilar" - -#: main.c:696 -msgid "Large File Support" -msgstr "Compatibilidade para ficheiros longos (LFS)" - -#: main.c:703 -msgid "Inotify support" -msgstr "Compatibilidade para «Inotify»" - -#: main.c:710 -msgid "Dnotify support" -msgstr "Compatibilidade para «dnotify»" - -#: main.c:717 -msgid "Binary compatibility" -msgstr "Compatibilidade binária" - -#: main.c:719 -msgid "Yes (can run with older glibc versions)" -msgstr "Si (pode executarse con versións antigas do glibc)" - -#: main.c:721 -msgid "No (apsymbols.h not found)" -msgstr "Non (non se atopa apsymbols.h)" - -#: main.c:725 -msgid "Extended attribute support" -msgstr "Compatibilidade para atributos estendidos" - -#: main.c:876 -#, c-format -msgid "Unable to read '%s': %s" -msgstr "Incapaz de ler '%s': %s" - -#: main.c:918 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"Prema no botón esquerdo para executar %s.\n" -"Prema no botón dereito para listar as versións." - -#: menu.c:185 -#: tips:28 -msgid "Display" -msgstr "Amosar" - -#: menu.c:186 -#: tips:33 -msgid "Icons View" -msgstr "Vista de iconas" - -#: menu.c:187 -msgid "Icons, With..." -msgstr "Iconas, con..." - -#: menu.c:188 -#: tips:52 -msgid "Sizes" -msgstr "Tamaños" - -#: menu.c:190 -#: tips:226 -msgid "Types" -msgstr "Tipos" - -#: menu.c:191 -#: tips:55 -msgid "Times" -msgstr "Datas" - -#: menu.c:192 -#: tips:34 -#: tips:70 -msgid "List View" -msgstr "Lista" - -#: menu.c:194 -msgid "Bigger Icons" -msgstr "Iconas grandes" - -#: menu.c:195 -msgid "Smaller Icons" -msgstr "Iconas pequenas" - -#: menu.c:196 -#: tips:49 -msgid "Automatic" -msgstr "Automático" - -#: menu.c:198 -msgid "Sort by Name" -msgstr "Ordenar por nome" - -#: menu.c:199 -msgid "Sort by Type" -msgstr "Ordenar por tipo" - -#: menu.c:200 -msgid "Sort by Date" -msgstr "Ordenar por data" - -#: menu.c:201 -msgid "Sort by Size" -msgstr "Ordenar por tamaño" - -#: menu.c:202 -msgid "Sort by Owner" -msgstr "Ordenar por propietario" - -#: menu.c:203 -msgid "Sort by Group" -msgstr "Ordenar por grupo" - -#: menu.c:204 -msgid "Reversed" -msgstr "Orde inversa" - -#: menu.c:206 -msgid "Show Hidden" -msgstr "Amosar agochados" - -#: menu.c:207 -msgid "Filter Files..." -msgstr "Filtrar ficheiros..." - -#: menu.c:208 -msgid "Filter Directories With Files" -msgstr "Filtrar directorios con ficheiros" - -#: menu.c:209 -msgid "Show Thumbnails" -msgstr "Amosar miniaturas" - -#: menu.c:210 -msgid "Refresh" -msgstr "Actualizar" - -#: menu.c:211 -msgid "Save Current Display Settings..." -msgstr "Gardar axustes de visualización..." - -#: menu.c:213 -msgid "Copy..." -msgstr "Copiar..." - -#: menu.c:214 -msgid "Rename..." -msgstr "Renomear..." - -#: menu.c:215 -msgid "Link..." -msgstr "Ligazón..." - -#: menu.c:219 -msgid "Send To..." -msgstr "Enviar a..." - -#: menu.c:224 -msgid "Count" -msgstr "Tamaño" - -#: menu.c:225 -msgid "Set Type..." -msgstr "Definir tipo..." - -#: menu.c:229 -#: toolbar.c:154 -msgid "Select" -msgstr "Seleccionar" - -#: menu.c:230 -msgid "Select All" -msgstr "Seleccionar todos" - -#: menu.c:231 -msgid "Clear Selection" -msgstr "Limpar selección" - -#: menu.c:232 -msgid "Invert Selection" -msgstr "Inverter selección" - -#: menu.c:233 -msgid "Select by Name..." -msgstr "Seleccionar por nome..." - -#: menu.c:234 -msgid "Select If..." -msgstr "Seleccionar si..." - -#: menu.c:236 -msgid "New" -msgstr "Novo" - -#: menu.c:238 -msgid "Blank file" -msgstr "Ficheiro en branco" - -#: menu.c:240 -#: tasklist.c:309 -msgid "Window" -msgstr "Fiestra" - -#: menu.c:241 -msgid "Parent, New Window" -msgstr "Directorio anterior, nova fiestra" - -#: menu.c:242 -msgid "Parent, Same Window" -msgstr "Directorio anterior, mesma fiestra" - -#: menu.c:243 -msgid "New Window" -msgstr "Nova fiestra" - -#: menu.c:245 -msgid "Show Bookmarks" -msgstr "Amosar marca páxinas" - -#: menu.c:246 -msgid "Show Log" -msgstr "Amosar rexistro" - -#: menu.c:247 -msgid "Follow Symbolic Links" -msgstr "Seguir ligazóns simbólicas" - -#: menu.c:248 -msgid "Resize Window" -msgstr "Redimensionar fiestra" - -#: menu.c:251 -msgid "Close Window" -msgstr "Pechar fiestra" - -#: menu.c:253 -msgid "Enter Path..." -msgstr "Introducir a ruta..." - -#: menu.c:254 -msgid "Shell Command..." -msgstr "Orde de terminal..." - -#: menu.c:255 -msgid "Terminal Here" -msgstr "Abrir aquí unha terminal" - -#: menu.c:256 -msgid "Switch to Terminal" -msgstr "Cambiar a unha terminal" - -#: menu.c:725 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Prema a tecla «Mayús» e faga clic sobre un ficheiro para envialo a algún sitio" - -#: menu.c:764 -msgid "Next Click" -msgstr "Seguinte clic" - -#: menu.c:786 -#, c-format -msgid "%d items" -msgstr "%d elementos" - -#: menu.c:874 -msgid "Open unmounted" -msgstr "Abrir desmontado" - -#: menu.c:877 -msgid "Show Target" -msgstr "Amosar destino" - -#: menu.c:879 -msgid "Look Inside" -msgstr "Amosar contido" - -#: menu.c:881 -msgid "Open As Text" -msgstr "Abrir Como Texto" - -#: menu.c:1052 -msgid "" -"Extended attributes, used to store types, are not supported for this file or files.\n" -"This may be due to lack of support from the filesystem or the C library, or it may simply be that the filesystem needs to be mounted with the right mount option ('user_xattr' on Linux)." -msgstr "" -"Os atributos estendidos, usados para gardar os tipos de ficheiro, non son compatibles con este(s) ficheiro(s).\n" -"Isto pode ser debido a falta de compatibilidade por parte do sistema de ficheiros ou da biblioteca de C, ou pode simplemente ser necesario montar o sistema de ficheiros con as opcións de montaxe correctas ('user_xattr' en Linux)." - -#: menu.c:1058 -msgid "Setting type not supported for some of these files" -msgstr "Definir o tipo non é compatible con algúns destes ficheiros" - -#: menu.c:1095 -msgid "_Relative link" -msgstr "Ligazón _relativa" - -#: menu.c:1101 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink may move but the target will stay put." -msgstr "" -"Si esta activado, a ligazón simbólica gardará o camiño desde esta ao ficheiro de destino. Usalo deste modo se a ligazón e o destino moveranse xuntos.\n" -"Si esta desactivado, a ligazón gardará o camiño a partir do directorio de raíz - usalo deste modo se a ligazón poderá moverse pero o destino deberá permanecer no mesmo sítio." - -#: menu.c:1171 -msgid "New pathname is not absolute" -msgstr "A nova ruta non é absoluta" - -#: menu.c:1239 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "A ligazón a partir de '%s' xa existe. Substituir por unha ligazón a '%s'?" - -#: menu.c:1245 -msgid "_Replace" -msgstr "_Substituir" - -#: menu.c:1365 -#: menu.c:1406 -#: menu.c:1468 -msgid "Create" -msgstr "Crear" - -#: menu.c:1366 -msgid "NewDir" -msgstr "NovoDirectorio" - -#: menu.c:1380 -#: menu.c:1386 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Atopouse un erro ao crear '%s': %s" - -#: menu.c:1407 -msgid "NewFile" -msgstr "NovoFicheiro" - -#: menu.c:1425 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Atopouse un erro ao crear o ficheiro: non foi posible atopar o modelo para %s" - -#: menu.c:1498 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an application. The applications listed are those in the following directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which will only be shown for files of that type. `.group' is shown only when multiple files are selected." -msgstr "" -"O menu «Enviar a...» permite enviar facilmente ficheiros para un aplicativo. Os aplicativos listados son os dos seguintes directorios:\n" -"\n" -"%s\n" -"%s\n" -"O menu «Enviar a...» pode ser aberto con Shift+Clic de Menu sobre un ficheiro.\n" -"\n" -"Uso avanzado:\n" -"Pode tamén crear subdirectorios chamados «.text_html», «.text», etc que serán presentados só para ficheiros dese tipo. «.group» é amosado só cando sexan seleccionados varios ficheiros." - -#: menu.c:1509 -msgid "I'll show you your SendTo directory now; you should symlink (Ctrl+Shift drag) any applications you want into it." -msgstr "Agora amosarase o directorio «Enviar a»; nel deberá crear ligazóns simbólicas (Ctrl+Mayús arrastar) para os aplicativos que queira." - -#: menu.c:1512 -#: menu.c:1552 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "Desculpe - A súa variable CHOICESPATH -elección da ruta- non permite a personalización." - -#: menu.c:1545 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Cal queira ficheiro colocado no seu directorio de plantillas aparecerá no menú «Novo». Escollendo un deles creará unha cópia deste como un novo ficheiro.\n" -"\"\n" -"Os seguintes directorios conteñen plantillas:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1550 -msgid "I'll show you your Templates directory now; you should place any template files you want inside it." -msgstr "Agora amosarase o directorio de plantillas; nel deberá colocar os ficheiros-plantilla que queira." - -#: menu.c:1667 -msgid "Customise" -msgstr "Personalizar" - -#: menu.c:1740 -msgid "This is already the canonical name for this directory." -msgstr "Este xá é o nome canónigo para este directorio." - -#: menu.c:1771 -msgid "You can't open a second view onto this directory because the `Unique Windows' option is turned on in the Options window." -msgstr "Non é posible abrir unha segunda vista para este directorio porque a opción «fiestras únicas» está activada na caixa Opcións." - -#: menu.c:1897 -msgid "Copy ... ?" -msgstr "Copiar ... ?" - -#: menu.c:1900 -msgid "Rename ... ?" -msgstr "Renomear ... ?" - -#: menu.c:1903 -msgid "Symlink ... ?" -msgstr "Crear ligazón ... ?" - -#: menu.c:1906 -msgid "Shift Open ... ?" -msgstr "Abrir con «Mayús» ... ?" - -#: menu.c:1909 -msgid "Properties of ... ?" -msgstr "Propiedades de ... ?" - -#: menu.c:1912 -msgid "Set type of ... ?" -msgstr "Definir tipo de ... ?" - -#: menu.c:1915 -msgid "Set run action for ... ?" -msgstr "Definir acción executar para ... ?" - -#: menu.c:1918 -msgid "Set icon for ... ?" -msgstr "Definir ícona de ... ?" - -#: menu.c:1921 -msgid "Send ... to ... ?" -msgstr "Enviar ... a ... ?" - -#: menu.c:1924 -msgid "DELETE ... ?" -msgstr "BORRAR ... ?" - -#: menu.c:1927 -msgid "Count the size of ... ?" -msgstr "Calcular o tamaño de ... ?" - -#: menu.c:1930 -msgid "Set permissions on ... ?" -msgstr "Definir permisos de ... ?" - -#: menu.c:1933 -msgid "Search inside ... ?" -msgstr "Buscar dentro de ... ?" - -#: menu.c:1997 -msgid "You cannot do this to more than one item at a time" -msgstr "" -"Isto só é posible facelo con un elemento de cada vez.\n" -"Rox ten unha política moi visual, arrastre directamente os elementos cara a fiestra de destino." - -#: menu.c:2029 -msgid "Rename" -msgstr "Renomear" - -#: menu.c:2034 -msgid "Symlink" -msgstr "Crear ligazón" - -#: menu.c:2063 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Os atallos definíbles polo usuario están desactivados por omisión no Gtk2, e vostede non os activou. Pode activar esta característica ao:\n" -"\n" -"1) usar un xestor de XSettings, tal como o ROX-Session ou o gnome-settings-daemon, ou\n" -"\n" -"2) engadindo esta liña ao ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(isto funciona se NON se utiliza XSETTINGS)" - -#: menu.c:2074 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key without opening the menu in future." -msgstr "" -"Para definir un atallo de teclado para un elemento do menu:\n" -"\n" -"- Abra o menú sobre unha fiestra do xestor de ficheiros,\n" -"- Mova o punteiro sobre o elemento que quere usar,\n" -"- Presione a tecla que quere asociar ao menú.\n" -"\n" -"A tecla aparecerá ao lado do elemento do menú, e no futuro poderá simplemente premer nesa tecla sen ter que abrir o menú." - -#: menu.c:2089 -msgid "Set keyboard shortcuts" -msgstr "Definir atallos de teclado" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Ir a:" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "Orde:" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "Seleccionar se:" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "Seleccionar nome:" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "Patrón:" - -#: minibuffer.c:265 -msgid "Enter the name of a file and I'll display it for you. Press Tab to fill in the longest match. Escape to close the minibuffer." -msgstr "Introduza o nome de un ficheiro para ser amosado polo xestor, Prema TAB para completar con a selección máis próxima, Esc para pechar." - -#: minibuffer.c:271 -msgid "Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "Introduza unha orde de terminal para executar. Faga clic nun ficheiro para asignalo." - -#: minibuffer.c:276 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Introduza un patrón de nome de ficheiro para seleccionar os coincidentes:\n" -"\n" -"? equivale a cal queira carácter\n" -"* equivale a cero ou a máis carácteres\n" -"[aA] equivale a «a» ou «A»\n" -"[a-z] equivale a cal queira caráter desde a «a» a «z» (minúscula)\n" -"*.png equivale a cal queira nome que remate en «.png»" - -#: minibuffer.c:288 -msgid "Enter a pattern to match for files to be shown. An empty filter turns the filter off." -msgstr "Introduza un patrón para os ficheiros que se amosan. Un filtro baleiro é un filtro desactivado." - -#: minibuffer.c:908 -msgid "Invalid Find condition" -msgstr "Condición de busca non válida" - -#: mount.c:103 -#, c-format -msgid "File system table \"%s\" not found, cannot monitor system mounts" -msgstr "Non se atopa a táboa de sistema de ficheiros \"%s\", non se supervisan as montaxes" - -#: mount.c:393 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s total, %s usado, %s libre (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer converteu o seu ficheiro de opcións a o novo formato XML" - -#: options.c:535 -#: options.c:1256 -msgid "(use default)" -msgstr "(predefinido)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "atopouse un erro interno: %s non é lexible" - -#: options.c:914 -msgid "Options" -msgstr "Opcións" - -#: options.c:959 -msgid "_Revert" -msgstr "_Reverter" - -#: options.c:965 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Restaurar todas as opcións a como estaban cando abriu o cadro de opcións." - -#: options.c:980 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"As opcións gardaranse como:\n" -"%s" - -#: options.c:988 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(Non está dispoñible gardar por CHOICESPATH -elección da ruta-)" - -#: options.c:1161 -#: usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "Produciuse un erro gardando %s: %s" - -#: options.c:1793 -msgid "Missing '='" -msgstr "Falta '='" - -#: panel.c:322 -#, c-format -msgid "Unable to replace '%s'" -msgstr "Non se pode substituir '%s'" - -#: panel.c:326 -#, c-format -msgid "Unable to save '%s'" -msgstr "Non se pode gardar '%s'" - -#: panel.c:529 -msgid "Your old panel file has been converted to the new XML format." -msgstr "O antiguo ficheiro de panel foi convertido ao novo formato XML." - -#: panel.c:637 -msgid "You have tried to close a panel via the window manager - I usually find that this is accidental... really close?" -msgstr "Tratou de pechar o panel dende o xestor de fiestras - Normalmete eso é accidental... realmente quere pechalo?" - -#: panel.c:738 -msgid "Missing < or > in panel config file" -msgstr "Falta < or > no ficheiro de configuración do panel" - -#: panel.c:1610 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Produciuse un erro gardando o panel %s: %s" - -#: panel.c:1925 -msgid "Applet quit without ever creating a widget!" -msgstr "O miniaplicativo pechouse sen crear un «widget»!" - -#: panel.c:2021 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Produciuse un erro executando o miniaplicativo:\n" -"%sa " - -#: panel.c:2646 -msgid "Are you sure you want to remove this panel from the desktop?" -msgstr "Esta seguro de que quere eliminar este panel do escritorio?" - -#: panel.c:2649 -#: panel.c:2676 -msgid "Remove Panel" -msgstr "Eliminar panel" - -#: panel.c:2672 -msgid "Panel Options..." -msgstr "Opcions do panel..." - -#: panel.c:2757 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Monitor Xinerama %d non dispoñible" - -#: panel.c:2787 -msgid "Top" -msgstr "Arriba" - -#: panel.c:2789 -msgid "Bottom" -msgstr "Abaixo" - -#: panel.c:2791 -msgid "Left" -msgstr "Esquerda" - -#: panel.c:2793 -msgid "Right" -msgstr "Dereita" - -#: panel.c:2795 -msgid "Default" -msgstr "Predeterminado" - -#: panel.c:2799 -msgid "Unknown side" -msgstr "Descoñecido" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "O seu antigo taboleiro foi convertido ao novo formato XML" - -#: pinboard.c:711 -msgid "The backdrop handler must be an application directory. Drag an application directory into the Set Backdrop dialog box, or (for programmers) pass it to the SOAP SetBackdropApp method." -msgstr "O xestor do fondo debe ser un directorio de aplicativo. Arrastre un aplicativo do directorio á caixa de diálogo, ou (para programadores) asignalo a SetBackdropApp método SOAP." - -#: pinboard.c:730 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop element, as described in ROX-Filer's manual." -msgstr "" -"Só poderá crear un fondo con unha imaxen o un programa para que «ROX-Filer» saiba como manexala.\n" -"\n" -"Programadores: o aplicativo AppInfo.xml debe conter o elemento CanSetBackdrop, tal como se describe no manual de «ROX-Filer»." - -#: pinboard.c:750 -msgid "Set backdrop" -msgstr "Definir fondo" - -#: pinboard.c:761 -msgid "Choose a style and drag an image in:" -msgstr "Elixa un estilo e arrastre unha imaxe en:" - -#: pinboard.c:774 -msgid "Centre the image without scaling it" -msgstr "Centrar a imaxe sen escalala" - -#: pinboard.c:775 -msgid "Centre" -msgstr "Centrado" - -#: pinboard.c:776 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Escalar a imaxe para que cubra todo o fondo, sen distorsionala" - -#: pinboard.c:778 -msgid "Scale" -msgstr "Escalado" - -#: pinboard.c:779 -msgid "Scale the image to fit the backdrop area, regardless of image dimensions - overscale" -msgstr "Escala a imaxe para adaptala ao tamaño do fondo, independente das dimensións -" - -#: pinboard.c:781 -msgid "Fit" -msgstr "Axustar" - -#: pinboard.c:782 -msgid "Stretch the image to fill the backdrop area" -msgstr "Estira a imaxe para encher o fondo" - -#: pinboard.c:783 -msgid "Stretch" -msgstr "Estirada" - -#: pinboard.c:784 -msgid "Tile the image over the backdrop area" -msgstr "Fai un mosaico coa imaxe para encher o fondo" - -#: pinboard.c:785 -msgid "Tile" -msgstr "Mosaico" - -#: pinboard.c:790 -msgid "Drop an image here" -msgstr "Solte unha imaxe aquí" - -#: pinboard.c:851 -msgid "No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox -p=Default' to turn it on in future." -msgstr "Non hai un taboleiro en uso... o taboleiro «Default» está seleccionado. Utilice «rox -p=Default» cando queira activalo" - -#: pinboard.c:945 -msgid "Only files (and certain applications) can be used to set the background image." -msgstr "Só se poden utilizar ficheiros (e algúns aplicativos) para fixar unha imaxe de fondo." - -#: pinboard.c:1602 -msgid "Missing '>' in icon label" -msgstr "Falta '>' na etiqueta da icona" - -#: pinboard.c:1611 -msgid "Missing ',' after icon label" -msgstr "Falta ',' despos da etiqueta da icona" - -#: pinboard.c:1699 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Produciuse un erro gardando o taboleiro %s: %s" - -#: pinboard.c:2244 -msgid "Backdrop..." -msgstr "Fondo de pantalla..." - -#: pinboard.c:2247 -msgid "Add Panel" -msgstr "Engadir panel" - -#: pinboard.c:2341 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Produciuse un erro cargando a imaxe de fondo:\n" -"%s\n" -"Fondo eliminado." - -#: pixmaps.c:969 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Non se poden eliminar miniaturas en %s:\n" -"%s" - -#: pixmaps.c:990 -msgid "There are no thumbnails to delete" -msgstr "Non hai miniaturas para borrar" - -#: pixmaps.c:1003 -msgid "Purge thumbnails disk cache" -msgstr "Eliminar miniaturas da «caché»" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "Estilo '%s' descoñecido" - -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Detalles do tipo '%s' decoñecidos" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Tipo de ordenamento '%s' descoñecido" - -#: remote.c:1247 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Intento de invocar o método '%s' SOAP descoñecido" - -#: run.c:99 -#: run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "O programa %s non se atopa - borrado?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "O ficheiro: %s non existe ou non se pode aceder a el" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Non se sabe como abrir '%s'" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "'%s' non é unha URI válida" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "%s non é accesible" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "%s non é una URL local" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s: non é manexado por %s" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it (hold down Shift while you open it). Most applications provide their own help here, but this one doesn't." -msgstr "" -"Aplicativo:\n" -"Tratase de un directorio de aplicativo - pode executalo como un programa, ou abrilo (prema «Maiús» mentres o abre). A maioría dos aplicativos fornecen a súa propia axuda aquí, pero este non o fai." - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Non se puideron enviar os datos ao programa: %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "Non se pode ler a ligazón: %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Ligazón simbólica rota (ou vostede non ten permiso para usala): %s" - -#: run.c:573 -#, c-format -msgid "No run action specified for files of this type (%s/%s) - you can set a run action by choosing `Set Run Action' from the File menu, or you can just drag the file to an application.%s" -msgstr "Non se especificou ningunha acción para ficheiros de este tipo (%s/%s) - Defina a acción Executar no menú «Seguinte clic» ou arrastre este ficheiro á un aplicativo.%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Nota: Se se trata de executar un aplicativo, necesita axustar o bit de execución no menú «Permisos»." - -#: run.c:753 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the permissions now (this problem may have been caused by a bug in earlier versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. Otherwise, you should check, or even just delete, all the existing run actions." -msgstr "" -"O executable '%s' é escribible por todos! Refusase a súa execución. Por favor cambie os permisos agora (este problema puido ser causado por un fallo nas versións anteriores do xestor).\n" -"\n" -"Hai executables (non ligazóns simbólicas) escribibles por todos, eso significa que cal queira persoa que manexe a súa computadora pode substituír oa seus aplicativos por outros con código malicioso.\n" -"\n" -"Si vostede confía en quen poida escribir nestos ficheiros non debe preocuparse. Senón, debería comprobar, ou suprimir, todos os permisos que afecten ficheiros executables." - -#: run.c:766 -msgid "go-w (Fix security problem)" -msgstr "go-w (Evita problemas de seguridade)" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: support.c:1596 -#: support.c:1650 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Fallou abrindo e analisando o ficheiro '%s': %s" - -#: support.c:1607 -#: support.c:1661 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Fallou mapeando o ficheiro '%s': %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "Pechar" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "Pechar fiestra do xestor" - -#: toolbar.c:117 -msgid "Up" -msgstr "Subir" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "Cambiar a directorio superior" - -#: toolbar.c:121 -msgid "Home" -msgstr "Inicio" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "Cambiar a directorio de inicio" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "Marca páxinas" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "Menu de marca páxinas" - -#: toolbar.c:129 -msgid "Scan" -msgstr "Analisar" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "Actualizar o contido do directorio" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "Cambiar tamaño da icona" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "Tamaño automático" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "Amosar detalles extra" - -#: toolbar.c:145 -msgid "Sort" -msgstr "Ordenar" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "Cambiar critério de ordenamento" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "Agochado" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"Esquerda: Amosa/agocha ficheiros agochados\n" -"Dereita: Amosa/agocha miniaturas" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "Seleccionar todo/inverter a selección" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "Amosar axuda de «ROX-Filer»" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u agochado)" - -#: toolbar.c:229 -#: tips:58 -msgid "items" -msgstr "elementos" - -#: toolbar.c:229 -msgid "item" -msgstr "elemento" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "Sin elementos%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u seleccionado (%s)" - -#: toolbar.c:445 -msgid "Sort by name" -msgstr "Ordenar por nome" - -#: toolbar.c:445 -msgid "Sort by type" -msgstr "Ordenar por tipo" - -#: toolbar.c:445 -msgid "Sort by date" -msgstr "Ordenar por data" - -#: toolbar.c:446 -msgid "Sort by size" -msgstr "Ordenar por tamaño" - -#: toolbar.c:446 -msgid "Sort by owner" -msgstr "Ordenar por propietario" - -#: toolbar.c:446 -msgid "Sort by group" -msgstr "Ordenar por grupo" - -#: toolbar.c:480 -msgid "ascending" -msgstr "ascendente" - -#: toolbar.c:480 -msgid "descending" -msgstr "descendente" - -#: type.c:214 -msgid "Sym link" -msgstr "Ligazón simbólica" - -#: type.c:216 -msgid "Mount point" -msgstr "Punto de montaxe" - -#: type.c:218 -msgid "App dir" -msgstr "Directorio de aplicativos" - -#: type.c:225 -msgid "Dir" -msgstr "Directorio" - -#: type.c:227 -msgid "Char dev" -msgstr "Dispositivo de carácter" - -#: type.c:229 -msgid "Block dev" -msgstr "Dispositivo de bloque" - -#: type.c:231 -msgid "Pipe" -msgstr "Canalización" - -#: type.c:233 -msgid "Socket" -msgstr "Socket" - -#: type.c:235 -msgid "Door" -msgstr "Porta" - -#: type.c:238 -msgid "Unknown" -msgstr "Descoñecido" - -#: type.c:554 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Introduza a orde para cargar \"$@\" con un programa axeitado. Ex:\n" -"\n" -"gimp \"$@\"" - -#: type.c:735 -msgid "This is not a program! Give me an application instead!" -msgstr "Non é un aplicativo ou ficheiro executable!" - -#: type.c:795 -msgid "No run action defined" -msgstr "Non está definida ningunha acción para executar" - -#: type.c:799 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Produciuse un erro en: %s manexando %s" - -#: type.c:814 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "O aplicativo %s non é válido (AppRun defectuoso)" - -#: type.c:825 -#, c-format -msgid "Non-executable %s" -msgstr "Non executable %s" - -#: type.c:858 -msgid "Set run action" -msgstr "Definir acción para executar" - -#: type.c:864 -msgid "If a handler for the specific type isn't set up, use this as the default." -msgstr "Se o programa usado para este tipo de ficheiro non está definido, usar este como predeterminado." - -#: type.c:866 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Predeterminar para todos `%s/'" - -#: type.c:870 -msgid "Use this application for all files with this MIME type." -msgstr "Utilizar este aplicativo para todos os ficheiros do mesmo tipo MIME" - -#: type.c:872 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Só para os do tipo `%s' (%s/%s)" - -#: type.c:878 -msgid "Drop a suitable application here" -msgstr "Arrastre o aplicativo axeitado aquí" - -#: type.c:893 -msgid "OR" -msgstr "OU" - -#: type.c:900 -msgid "Enter a shell command:" -msgstr "Introduza unha orde de terminal:" - -#: type.c:929 -msgid "_Use Command" -msgstr "_Usar a orde" - -#: type.c:959 -msgid "A run action already exists and is quite a big program - are you sure you want to delete it?" -msgstr "Xa está especificada unha acción e é un programa - está seguro de que quere eliminalo?" - -#: type.c:970 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Non se pode eliminar %s: %s" - -#: type.c:1007 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "A opción gardar foi desactivada pola variable CHOICESPATH (elección da ruta)" - -#: type.c:1309 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s" -msgstr "" -"Fallou creando a ligazón simbólica '%s':\n" -"%s" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "A ruta indicada non existe. A icona non foi cambiada." - -#: usericons.c:189 -#: usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Non é posible cargar a imaxe -- ou está nun formato descoñecido ou non ten os permisos axeitados\n" -"A icona non foi cambiada." - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Quere borrar a icona '%s'?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Non se pode borrar '%s':\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "Definir icona" - -#: usericons.c:281 -msgid "Use a copy of the image as the default for all files of these MIME types." -msgstr "Use unha copia da imaxe como predeterminado para todos os ficheiros de este tipo MIME." - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Predeterminar para todos `%s/'" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Use unha copia da imaxe para todos os ficheiros de este tipo MIME" - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Para todos os do tipo `%s' (%s/%s)" - -#: usericons.c:296 -msgid "Add the file and image filenames to your personal list. The setting will be lost if the image or the file is moved." -msgstr "Engadir o ficheiro e nomes de ficheiro de imaxe a tua lista persoal. Isto perderase se a imaxe ou o ficheiro se moven." - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "Só para o ficheiro `%s'" - -#: usericons.c:307 -msgid "Copy the image inside the directory, as a hidden file called '.DirIcon'. All users will then see the icon, and you can move the directory around safely. This is usually the best option if you can write to the directory." -msgstr "Copiar a imaxe dentro do directorio, como un ficheiro agochado chamado |. DirIcon ». Todos os usuarios verán a icona, e poden mover o directorio con seguridade. Esta adoita ser a mellor opción se vostede pode escribir no directorio." - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "Copie a imaxe a este directorio" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "Arrastre un ficheiro de icona aquí" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "-elección da ruta-" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Produciuse un erro creando a imaxe '%s':\n" -"%s" - -#: view_details.c:957 -msgid "Mono font" -msgstr "Fonte «Mono»" - -#: view_details.c:958 -msgid "Font for displaying mono-spaced text" -msgstr "Fonte para amosar texto mono espazado" - -#: view_details.c:1059 -msgid "_Name" -msgstr "_Nome" - -#: view_details.c:1062 -msgid "_Type" -msgstr "_Tipo" - -#: view_details.c:1065 -msgid "_Permissions" -msgstr "_Permisos" - -#: view_details.c:1070 -msgid "_Owner" -msgstr "P_ropietario" - -#: view_details.c:1072 -msgid "_Group" -msgstr "_Grupo" - -#: view_details.c:1074 -msgid "_Size" -msgstr "_Tamaño" - -#: view_details.c:1080 -msgid "Last _Modified" -msgstr "Última _modificación" - -#: tips:1 -msgid "Filer windows" -msgstr "Fiestras do xestor" - -#: tips:2 -msgid "Auto-resize filer windows" -msgstr "Axustar automaticamente as fiestras do xestor" - -#: tips:3 -msgid "Never automatically resize" -msgstr "Non axustar nunca automáticamente" - -#: tips:4 -msgid "You'll have to resize windows manually, using the window manager, the `Resize Window' menu entry or by double-clicking on the window background." -msgstr "Terá que cambiar o tamaño das fiestras manualmente, utilizando o xestor de fiestras, na entrada do menú «Redimensionar fiestra» ou facendo dobre clic no fondo da fiestra." - -#: tips:5 -msgid "Resize when changing the display style" -msgstr "Redimensionar cando cambie o estilo de fiestra" - -#: tips:6 -msgid "Changing the size of the icons or which details are displayed will resize the window for you." -msgstr "Cambia o tamaño das iconas ou detalles que se amosan cando redimensiona o tamaño da fiestra." - -#: tips:7 -msgid "Always resize" -msgstr "Redimensionar sempre" - -#: tips:8 -msgid "The filer will resize windows whenever it seems useful (that is, when changing directory or display style)." -msgstr "O xestor redimensionará fiestras sempre que pareza útil (é dicir cambiando o directorio ou o estilo de amosar)." - -#: tips:9 -msgid "Largest window size:" -msgstr "Tamaño da fiestra máis grande" - -#: tips:10 -msgid "%" -msgstr "%" - -#: tips:11 -msgid "The largest size, as a percentage of the screen size, that the auto-resizer will resize a window to." -msgstr "Maior tamaño, como un porcentaxe do tamaño de pantalla, ao que se redimensionará automáticamente unha fiestra." - -#: tips:12 -msgid "Window behaviour" -msgstr "Comportamento da fiestra" - -#: tips:13 -msgid "Short titlebar flags" -msgstr "Marcas de barra de título cortas" - -#: tips:14 -msgid "Use single letters instead of words for Scanning, All and Thumbs indicators in the titlebar." -msgstr "Emprego de marcas no lugar de palabras para exploración, indicadores de «Todo» e «Miniaturas» na barra de título." - -#: tips:15 -msgid "Unique windows" -msgstr "Fiestras únicas" - -#: tips:16 -msgid "If you open a directory and that directory is already displayed in another window, then this option causes the other window to be closed." -msgstr "Se abre un directorio que xa está aberto noutra fiestra, isto fará que a outra fiestra sexa pechada." - -#: tips:17 -msgid "New window on button 1" -msgstr "Fiestra nova en botón 1" - -#: tips:18 -msgid "Clicking with mouse button 1 (usually the left button) opens a directory in a new window with this turned on. Clicking with the button-2 (middle) will reuse the current window." -msgstr "Activando esta opción ao facer clic no botón 1 (normalmente o esquerdo) abre o directorio nunha fiestra nova. Facer clic co botón 2 (o do medio) fará que se abra na fiestra actual." - -#: tips:19 -msgid "Single-click navigation" -msgstr "Navegación cun só clic" - -#: tips:20 -#: tips:116 -msgid "Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things." -msgstr "Facer clic unha vez abre o elemento sobre o que se atope. Para seleccionalo empregue a tecla «Ctrl». Se esta opción esta desactivada cun só clic selecciona e con dous o abre." - -#: tips:21 -msgid "Double-click on background resizes" -msgstr "Dobre clic sobre o fondo redimensiona" - -#: tips:22 -msgid "If on then double clicking on the window background resizes the window, just like clicking on the Automatic size mode button in the toolbar." -msgstr "Si fai dobre clic sobre o fondo de fiestra redimensiona a fiestra, como se fixera clic na icona de tamaño automático na barra de tarefas." - -#: tips:23 -msgid "Sorting" -msgstr "Ordenando" - -#: tips:24 -msgid "Directories come first (for sort by name)" -msgstr "Os directorios van antes (para ordenamento por nomes)" - -#: tips:25 -msgid "If this is on then directories will always appear before anything else when sorting by name." -msgstr "Activada esta opción os directorios aparecerán antes que os ficheiros cando se ordena por nome." - -#: tips:26 -msgid "Capitalised names first (for sort by name)" -msgstr "Nomes en maiúscula van antes (para ordenamento por nomes)" - -#: tips:27 -msgid "If on, all filenames starting with a capital letter come before filenames starting with lowercase ones." -msgstr "Activada esta opción os ficheiros cuxos nomes comezan con unha maiúscula van antes que os ficheiros cuxos nomes comezan con minúsculas." - -#: tips:29 -msgid "Default settings for new windows" -msgstr "Axustes predeterminados para fiestras novas" - -#: tips:30 -msgid "Inherit options from source window" -msgstr "Herdar opcións da fiestra orixe" - -#: tips:31 -msgid "If this is on then display options for a new window are inherited from the source window if possible, otherwise they are set to the defaults below." -msgstr "Activando esta opción as fiestras novas herdan os axuste da fiestra orixe, se é posible, do contrario toman de xeito predeterminado o aquí definido ." - -#: tips:32 -msgid "View type:" -msgstr "Ver tipo:" - -#: tips:35 -msgid "Sort by:" -msgstr "Ordenar por:" - -#: tips:37 -#: tips:54 -msgid "Type" -msgstr "Tipo" - -#: tips:38 -msgid "Date" -msgstr "Data" - -#: tips:40 -msgid "Show hidden files" -msgstr "Amosar ficheiros agochados" - -#: tips:41 -msgid "If this is on then files whose names start with a dot are shown too, otherwise they are hidden." -msgstr "Si está activada os ficheiros cuxos nomes comezan con un punto amosaranse, por a contra permaneceran agochados." - -#: tips:42 -msgid "Show extended attribute indicator" -msgstr "Amosar indicador de atributo estendido" - -#: tips:43 -msgid "If this is on then files which have one or more extended attributes set will have an emblem added to indicate this." -msgstr "Si está activada a opción, os ficheiros que teñen un ou máis atributos estendidos terán un emblema engadido para indicalo." - -#: tips:44 -msgid "Icon View" -msgstr "Ver como iconas" - -#: tips:45 -msgid "Default size:" -msgstr "Tamaño predeterminado:" - -#: tips:46 -msgid "Huge Icons" -msgstr "Iconas moi grandes" - -#: tips:47 -#: tips:217 -msgid "Large Icons" -msgstr "Iconas grandes" - -#: tips:48 -#: tips:216 -msgid "Small Icons" -msgstr "Iconas pequenas" - -#: tips:50 -msgid "Default details:" -msgstr "Detalles predeterminados" - -#: tips:51 -msgid "No details" -msgstr "Sen detalles" - -#: tips:56 -msgid "Automatic small icons:" -msgstr "Iconas pequenas automáticamente" - -#: tips:57 -msgid "Change at:" -msgstr "Cambiar a:" - -#: tips:59 -msgid "When automatic icon sizing is selected: If the directory contains this many items then it will be shown using Small Icons, otherwise Large Icons will be used." -msgstr "Cando se selecciona o tamaño automático: Se o directorio conten moitos elementos amosará iconas pequenas, senón amosará iconas grandes." - -#: tips:60 -msgid "Max width (Large icons):" -msgstr "Largura máxima (iconas grandes)" - -#: tips:61 -#: tips:64 -msgid "pixels" -msgstr "píxeles" - -#: tips:62 -msgid "Text wider than this is broken onto two lines in Large Icons mode. In Huge Icons mode, text is wrapped when 50% wider than this." -msgstr "Se o texto é moi amplo, con iconas grandes, cortase en duas liñas. con iconas moi grandes cortase cando supera o 50% do tamaño" - -#: tips:63 -msgid "(Small Icons):" -msgstr "(Iconas pequenas)" - -#: tips:65 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Largura máxima para o texto baixo as iconas pequenas" - -#: tips:66 -msgid "Order small icons vertically" -msgstr "Ordenar as iconas pequenas en vertical" - -#: tips:67 -msgid "If this option is on, then small icons are arranged in columns, not rows." -msgstr "Si se activa esta opción, as iconas pequenas amosaranse en columnas, senón en filas." - -#: tips:68 -msgid "Order large icons vertically" -msgstr "Ordenar as iconas grandes en vertical" - -#: tips:69 -msgid "If this option is on, then large icons are arranged in columns, not rows." -msgstr "Si se activa esta opción, as iconas grandes amosaranse en columnas, senón en filas." - -#: tips:71 -msgid "Show column headings" -msgstr "Amosar encabezamentos das columnas" - -#: tips:72 -msgid "If this is on then column headings will be shown in the list view." -msgstr "Activando esta opción os encabezamentos das columnas amosaranse na vista de lista." - -#: tips:73 -msgid "Show full type" -msgstr "Amosar todos os tipos" - -#: tips:74 -msgid "If this is on then the full description of each object's type will be show rather than a short summary of its basic type." -msgstr "Activando esta opción, a descrición completa de cada tipo de obxecto non se amosa máis que como un resume do seu tipo básico." - -#: tips:75 -msgid "Tools/Minibuffer" -msgstr "Ferramentas/Mini bufer" - -#: tips:76 -msgid "Toolbar" -msgstr "Barra ferramentas" - -#: tips:77 -msgid "Toolbar type:" -msgstr "Tipo de barra de ferramentas" - -#: tips:78 -msgid "No toolbar" -msgstr "Sen barra de ferramentas" - -#: tips:79 -msgid "Icons only" -msgstr "Só iconas" - -#: tips:80 -msgid "Text under icons" -msgstr "Texto baixo as iconas" - -#: tips:81 -msgid "Text beside icons" -msgstr "Texto a veira das iconas" - -#: tips:82 -msgid "Show totals of items" -msgstr "Amosa a totalidade dos elementos" - -#: tips:83 -msgid "Show the number of items displayed in a filer window, as well as the number of hidden items (if any). When there's a selection, show the number of selected items and their combined size." -msgstr "Amosa o número de elementos que aparece nunha fiestra do xestor, así como o número de elementos agochados (no seu caso). Cando hai una selección, amosa o número de elementos seleccionados e o seu tamaño combinado." - -#: tips:84 -msgid "Select the buttons you want on the bar:" -msgstr "Seleccione os botóns que desexe ter na barra" - -#: tips:85 -msgid "Width of toolbar sets minimum width of window" -msgstr "A Largura da barra de ferramentas establece o ancho minimo da fiestra" - -#: tips:86 -msgid "Each filer window is constrained to be wide enough to show the whole of the toolbar" -msgstr "As fiestras son obligadas a ser o suficientemente amplas como para amosar a totalidade da barra de ferramentas" - -#: tips:87 -msgid "Minibuffer" -msgstr "Mini bufer" - -#: tips:88 -msgid "Beep if Tab-completion fails" -msgstr "Pitido se falla completar con «Tab»" - -#: tips:89 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if nothing happens (eg, because there are several possibilities and the next letter varies)." -msgstr "Cando se emprega «Introducir a ruta...» e se preme «Tab», se se escoita un ton de aviso non ocorre nada (Ex.: porque hai varias posibilidades e a seguinte letra varía)." - -#: tips:90 -msgid "Beep if there are several matches" -msgstr "Yon de aviso se hai varias coincidencias" - -#: tips:91 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if there is more than one matching file, even though some more letters were added." -msgstr "Cando se emprega «Introducir a ruta...» e se preme «Tab», se se escoita un ton de aviso e non ocorre nada é porque hai máis dun ficheiro, engada máis letras." - -#: tips:94 -msgid "When thumbnails are turned on, each image file in a directory is loaded and a small thumbnail of it is shown." -msgstr "Cando se activan as miniaturas, cada ficheiro de imaxe dun directorio carga unha pequena miniatura para amosar." - -#: tips:95 -msgid "Show image thumbnails" -msgstr "Amosar miniaturas" - -#: tips:96 -msgid "This is the default setting for new windows. Use the Display menu to turn thumbnails on and off for individual windows." -msgstr "Esta é a configuración predeterminada para as fiestras novas. Use o menú despregable para activar/desactivar as miniaturas nas fiestras." - -#: tips:97 -msgid "Video thumbnails" -msgstr "Miniaturas de video" - -#: tips:98 -msgid "Thumbnails cache" -msgstr "Caché de miniaturas" - -#: tips:99 -msgid "To speed things up, the generated thumbnails are stored in the hidden ~/.thumbnails directory. Click here to remove all the cached thumbnails. They will be created again as needed." -msgstr "Para acelerar o traballo, as miniaturas xeradas son almacenadas no directorio agochado ~/.thumbnails. Faga clic aquí para eliminar a caché das miniaturas. Se é necesario volveran a crearse." - -#: tips:100 -msgid "Manage thumbnails" -msgstr "Xestión de miniaturas" - -#: tips:101 -#: tips:158 -msgid "Pinboard" -msgstr "Escritorio" - -#: tips:102 -msgid "When using a pinboard, you can drag files and applications onto the desktop background to create shortcuts to them." -msgstr "Usando un taboleiro, vostede pode arrastrar ficheiros e aplicativos no fondo de escritorio para crear acesos rápidos." - -#: tips:103 -#: tips:213 -msgid "Appearance" -msgstr "Aparencia" - -#: tips:104 -msgid "Foreground:" -msgstr "Primeiro plano" - -#: tips:105 -msgid "Text shadow:" -msgstr "Texto sombreado" - -#: tips:106 -msgid "Background:" -msgstr "Segundo plano" - -#: tips:107 -msgid "No shadow" -msgstr "Sen sombra" - -#: tips:108 -msgid "Thin" -msgstr "Delgado" - -#: tips:109 -msgid "Thick" -msgstr "Groso" - -#: tips:110 -msgid "Use custom font:" -msgstr "Usar fontes personalizadas:" - -#: tips:111 -msgid "The font used for the text displayed under the icons" -msgstr "Fonte utilizada para o texto baixo as iconas" - -#: tips:112 -msgid "Fast scaling of images" -msgstr "Escalado rápido de imaxes" - -#: tips:113 -msgid "Choose between the fast or slow method of scaling backdrop images. The slow method can give better results." -msgstr "Escolla entre o método rápido ou lento de escalado de imaxes de fondo. O método lento pode dar mellores resultados." - -#: tips:114 -msgid "Pinboard behaviour" -msgstr "Comportamento do taboleiro" - -#: tips:115 -msgid "Single-click to open" -msgstr "Un só clic para abrir" - -#: tips:117 -msgid "Keep icons within screen limits" -msgstr "Manter as iconas dentro dos limites da pantalla" - -#: tips:118 -msgid "If this is set, pinboard icons are always kept completely within screen limits, including the label." -msgstr "Activada esta opción, as iconas manteranse sempre dentro dos límites da pantalla, incluindo a etiqueta." - -#: tips:119 -msgid "Icon grid step:" -msgstr "Rella de separación de iconas" - -#: tips:120 -msgid "Fine" -msgstr "Fina" - -#: tips:121 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Usar rella de 2 píxeles para posicionar as iconas no escritorio" - -#: tips:122 -msgid "Medium" -msgstr "Media" - -#: tips:123 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Usar rella de 16 píxeles para posicionar as iconas no escritorio" - -#: tips:124 -msgid "Coarse" -msgstr "Grosa" - -#: tips:125 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Usar rella de 32 píxeles para posicionar as iconas no escritorio" - -#: tips:126 -#: tips:128 -msgid "Iconified windows" -msgstr "Fiestras como iconas" - -#: tips:127 -msgid "Most window managers provide a way to iconify (or 'minimise') windows, and various programs, including ROX-Filer, can be used to display the iconified windows." -msgstr "A maioría de xestores de fiestras proporcionan unha forma de «iconificar» (ou «minimizar»), as fiestras, e diversos programas, entre eles «ROX-Filer», poden utilizar para amosar as fiestras coma iconas." - -#: tips:129 -msgid "Show iconified windows" -msgstr "Amosar fiestras como iconas" - -#: tips:130 -msgid "If this option is on, the filer will show each iconified window as a small button on the pinboard. Requires a compatible window manager, and the pinboard must be in use." -msgstr "Activada esta opción, o xestor amosa cada fiestra como un pequeno botón no taboleiro. Require un xestor de fiestras compatible, e o taboleiro debe estar en uso." - -#: tips:131 -msgid "Show per workspace" -msgstr "Amosar por espazo de traballo" - -#: tips:132 -msgid "If this option is on, the filer will only show iconified windows associated with the current workspace." -msgstr "Activada esta opción, o xestor só amosará como iconas as fiestras asociadas co actual espazo de traballo." - -#: tips:133 -msgid "Iconify to the" -msgstr "Poñer as iconas" - -#: tips:134 -msgid "top-left" -msgstr "arriba a esquerda" - -#: tips:135 -msgid "top-right" -msgstr "arriba a dereita" - -#: tips:136 -msgid "bottom-left" -msgstr "abaixo a esquerda" - -#: tips:137 -msgid "bottom-right" -msgstr "abaixo a dereita" - -#: tips:138 -msgid ", going" -msgstr ", en" - -#: tips:139 -msgid "horizontally" -msgstr "horizontal" - -#: tips:140 -msgid "vertically" -msgstr "vertical" - -#: tips:141 -msgid "Sometimes the filer doesn't know about your desktop furniture and puts iconified windows under (for example) the Gnome panel. You can define a top or bottom margin to avoid placing the icons there. The filer already knows about its own panel." -msgstr "As veces o xestor non sabe dos seus obxectos no escritorio e pon fiestras en miniatura baixo (por exemplo) o panel de Gnome. Vostede pode definir unha marxe inferior para evitar colocar as iconas alí. O xestor xa sabe así do seu propio panel." - -#: tips:142 -msgid "Top margin" -msgstr "Marxe superior" - -#: tips:143 -msgid "Height of no-go area at top of screen." -msgstr "Altura de zona prohibida no bordo superior da pantalla." - -#: tips:144 -msgid "Bottom margin" -msgstr "Marxe inferior" - -#: tips:145 -msgid "Height of no-go area at bottom of screen." -msgstr "Altura de zona prohibida no bordo inferior da pantalla." - -#: tips:146 -msgid "Left margin" -msgstr "Marxe esquerdo" - -#: tips:147 -msgid "Width of no-go area at left of screen." -msgstr "Largura de zona prohibida no bordo esquerdo da pantalla." - -#: tips:148 -msgid "Right margin" -msgstr "Marxe dereito" - -#: tips:149 -msgid "Width of no-go area at right of screen." -msgstr "largura de zona prohibida no bordo dereito da pantalla." - -#: tips:150 -msgid "Desktop" -msgstr "Escritorio" - -#: tips:151 -msgid "When run by a session manager program (such as ROX-Session) the filer can open up a panel and/or the pinboard. Here you configure which." -msgstr "Cando se executa un administrador de sesións (como ROX-Session) o xestor pode abrir un panel e/ou un taboleiro. Configureo aquí." - -#: tips:152 -msgid "Panel only" -msgstr "Só o panel" - -#: tips:153 -msgid "Only a panel is shown." -msgstr "Só se amosa o panel" - -#: tips:154 -msgid "Pinboard only" -msgstr "Só o taboleiro" - -#: tips:155 -msgid "Only the pinboard is shown." -msgstr "Só se amosa o taboleiro (escritorio)" - -#: tips:156 -msgid "Panel and pinboard" -msgstr "Panel e taboleiro" - -#: tips:157 -msgid "Both a panel and a pinboard are shown." -msgstr "Amosase tanto o panel como o taboleiro" - -#: tips:159 -msgid "Enter the name of the pinboard to show here." -msgstr "Poña o nome do taboleiro que vai a ser amosado" - -#: tips:160 -msgid "Panel (obsolete)" -msgstr "Panel (obsoleto)" - -#: tips:161 -msgid "Enter the name of the panel to show here. This option is now only used when upgrading from an old version." -msgstr "Poña o nome do panel que vai ser amosado. Esta opción agora só se usa se actualizou dunha versión anterior." - -#: tips:162 -msgid "Changes here take effect the next time the filer is run." -msgstr "Os cambios só terán efecto despois de que inicie de novo «ROX-Filer»" - -#: tips:163 -msgid "The session manager activates these options by using the -S or --rox-session argument to rox." -msgstr "O administrador de sesións activa estas opcións empregando «-S» ou «--rox-session» como argumentos de «rox»." - -#: tips:164 -msgid "Action windows" -msgstr "Accións nas fiestras" - -#: tips:165 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "A caixa de accións aparece cando se inicia unha operación en segundo plano como copiar ou borrar ficheiros." - -#: tips:166 -msgid "Auto-start (Quiet) these actions" -msgstr "Iniciar (silenciosamente) estas accións" - -#: tips:168 -msgid "Copy files without confirming first." -msgstr "Copiar ficheiros sen pedir confirmación" - -#: tips:170 -msgid "Move files without confirming first." -msgstr "Mover ficheiros sen pedir confirmación" - -#: tips:172 -msgid "Create links to files without confirming first." -msgstr "Crear ligazóns á os ficheiros sen pedir confirmación" - -#: tips:174 -msgid "Delete files without confirming first." -msgstr "Borrar ficheiros sen pedir confirmación" - -#: tips:175 -msgid "Mount" -msgstr "Montar" - -#: tips:176 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Montar e desmontar sistemas de ficheiros sen pedir confirmación" - -#: tips:177 -msgid "Default settings" -msgstr "Configuración predeterminada" - -#: tips:179 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Non confirmar a eliminación de elementos non escribibles" - -#: tips:181 -msgid "Don't display so much information in the message area." -msgstr "Non amosar moita información na área de mensaxes" - -#: tips:183 -msgid "Also change contents of subdirectories." -msgstr "Tamén cambia o contido dos directorios" - -#: tips:186 -msgid "Mount commands" -msgstr "Ordenes de montaxe" - -#: tips:187 -msgid "Mount command" -msgstr "Orde de montaxe" - -#: tips:188 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "Orde para montar o sistema de ficheiros, se non está seguro use «mount»" - -#: tips:189 -msgid "Unmount command" -msgstr "Orde de desmontaxe" - -#: tips:190 -msgid "The command used to unmount a filesystem. If unsure, use \"umount\" (yes, without the first \"n\")." -msgstr "Orde para desmontar o sistema de ficheiros, se non está seguro use «umount»(si, sen o primeiro «n»)." - -#: tips:191 -msgid "Eject command" -msgstr "Orde de expulsión" - -#: tips:192 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "Orde usada para expulsar dispositivos extraibles, se non esta seguro use «eject»" - -#: tips:193 -msgid "Drag and Drop" -msgstr "Arrastrar e pegar" - -#: tips:194 -msgid "Dragging to icons" -msgstr "Arrastrar á icona" - -#: tips:195 -msgid "Allow dragging to icons in filer windows" -msgstr "Permite arrastar iconas a fiestra do xestor" - -#: tips:196 -msgid "When this is on you can drag a file over a sub-directory or program in a filer window. The item will highlight when you do this and dropping the file will put it into that directory, or load it into the program." -msgstr "Con esta opción activada vostede pode arrastrar un ficheiro á fiestra dun subdorectorio ou á un programa. O elemento porase en foco cando vostede fai iso e soltando nel o elemento deixalo ahí ou cargar/executar o programa." - -#: tips:197 -msgid "Directories spring open" -msgstr "Abrir directorios de xeito automático" - -#: tips:198 -msgid "This option, which requires the above option to be turned on too, causes the highlighted directory to 'spring open' after the file is held over it for a short while." -msgstr "Esta opción, que require que a opción de acima sexa actvada tamén , fai que o directorio pase a foco con «apertura inmediata» durante un breve tempo despois de que o ficheiro sexa desprazado sobre el." - -#: tips:199 -msgid "Spring delay:" -msgstr "Retardo de «apertura automática»" - -#: tips:200 -msgid "ms" -msgstr "ms" - -#: tips:201 -msgid "This option sets how long, in ms, you must hold a file over a directory before it will spring open. The above option must be turned on for this to have any effect." -msgstr "Nesta opción indicase canto tempo, en ms, debe manterse un ficheiro sobor dun directorio antes de que adopte «apertura automática». Esa opción debe ter sido activada para que isto teña efecto." - -#: tips:202 -msgid "When dragging files with the left mouse button" -msgstr "Cando arrastra os ficheiros co botón esquerdo de rato" - -#: tips:203 -#: tips:207 -msgid "Show a menu of possible actions" -msgstr "Amosar un menú de accións posibles" - -#: tips:204 -msgid "Copy the files" -msgstr "Copiar os ficheiros" - -#: tips:205 -msgid "Note that you can still get the menu to appear, by dragging with Alt held down." -msgstr "Observe que pode obter o menú despregable, arrastrando ao tempo que mantén premida a tecla «Alt»." - -#: tips:206 -msgid "When dragging files with the middle mouse button" -msgstr "Cando arrastra os ficheiros co botón do medio do rato" - -#: tips:208 -msgid "Move the files" -msgstr "Move os ficheiros" - -#: tips:209 -msgid "Note that you can still get the menu to appear, by dragging with the left button and holding down the Alt key." -msgstr "Observe que pode obter o menú despregable, arrastrando co botón esquerdo ao tempo que mantén premida a tecla «Alt»." - -#: tips:210 -msgid "Download handler" -msgstr "Xestor de descargas" - -#: tips:211 -msgid "" -"When you drag a file from a web browser or other remote source, this program will be run to download it. $1 is the URI dragged to the filer, and the current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Cando vostede arrastra un ficheiro dun navegador de web ou outra fonte remota, este programa será o encargado de descargalo. $1 é a URI arrastrada ao xestor, e o directorio actual será o de destino. Ex:\n" -"xterm-e wget $1" - -#: tips:212 -msgid "Menus" -msgstr "Menús" - -#: tips:214 -msgid "Size of icons in menus:" -msgstr "Tamaño das iconas no menú:" - -#: tips:215 -msgid "No Icons" -msgstr "Sen iconas" - -#: tips:218 -msgid "Same as current window" -msgstr "Fiestra actual" - -#: tips:219 -msgid "Same as default" -msgstr "Predeterminado" - -#: tips:220 -msgid "Behaviour" -msgstr "Comportamento" - -#: tips:221 -msgid "File menu on right-click" -msgstr "Menú de ficheiro con clic no botón dereito" - -#: tips:222 -msgid "Show the File menu instead of the main menu when right-clicking with files selected (the main menu can be accessed by holding down Control)." -msgstr "Amosa o menú de ficheiro no lugar do principal premendo o botón dereito do rato con ficheiros seleccionados (Para aceder ao menú principal manteña premida a tecla «Ctrl»." - -#: tips:223 -msgid "Terminal emulator program" -msgstr "Programa emulador de terminal" - -#: tips:224 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "Este programa iniciaráse cando elixa no menú «Abrir aquí unha terminal»" - -#: tips:225 -msgid "Keyboard shortcuts" -msgstr "Atallos de teclado" - -#: tips:227 -msgid "MIME types" -msgstr "Tipos MIME" - -#: tips:228 -msgid "The filer uses a set of rules to work out the correct MIME type for each regular file, and then chooses a suitable icon for that type." -msgstr "O xestor de ficheiros usa un xogo de regras para buscar o tipo MIME correcto para cada ficheiro regular e logo escolle a icona axeitada para ese tipo." - -#: tips:229 -msgid "Edit MIME rules" -msgstr "Editar as regras MIME" - -#: tips:230 -msgid "Themes" -msgstr "Temas" - -#: tips:231 -msgid "Icon theme" -msgstr "Tema de iconas" - -#: tips:232 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "Os temas de iconas deben estar no directorio «~/.icons»" - -#: tips:233 -msgid "Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note that icons set this way override those from the selected theme." -msgstr "Utilice a caixa «Definir iconas...» para configurar a icona para cada tipo MIME. Teña en conta que as iconas definidas deste xeito anulan as do tema seleccionado." - -#: tips:234 -msgid "Colours" -msgstr "Cores" - -#: tips:235 -msgid "File type colours" -msgstr "Cores de tipos de ficheiro" - -#: tips:236 -msgid "Colour files based on their types" -msgstr "Colorar os ficheiros según estos tipos" - -#: tips:237 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "Os nomes de ficheiro (e os detalles) hanse colorar de acordo co tipo do ficheiro" - -#: tips:238 -msgid "Directory:" -msgstr "Directorio:" - -#: tips:239 -msgid "Regular file:" -msgstr "Ficheiro regular:" - -#: tips:240 -msgid "Pipe:" -msgstr "Canalización:" - -#: tips:241 -msgid "Socket:" -msgstr "Socket:" - -#: tips:243 -msgid "Error, such as a symlink which points to a non-existant file, or a file which the filer does not have permission to examine." -msgstr "Produciuse un erro, a ligazón simbólica apunta a un ficheiro que non existe ou a un ficheiro que o xestor nos ten permisos para aceder." - -#: tips:244 -msgid "Character device:" -msgstr "Dispositivo de carácter:" - -#: tips:245 -msgid "Block device:" -msgstr "Dispositivo de bloque:" - -#: tips:246 -msgid "Door:" -msgstr "Porta:" - -#: tips:247 -msgid "Door files are a bit like sockets or pipes, and have only been seen on Solaris." -msgstr "Ficheiros de porta son como «sockets» ou «canalizacións» e só se usan en Solaris." - -#: tips:248 -msgid "Executable file:" -msgstr "Ficheiro executable:" - -#: tips:249 -msgid "Application directory:" -msgstr "Directorio de aplicativo:" - -#: tips:250 -msgid "Unknown type:" -msgstr "Tipo descoñecido:" - -#: tips:251 -msgid "Compatibility" -msgstr "Compatibilidade" - -#: tips:252 -msgid "Window manager problems" -msgstr "Problemas no xestor de fiestras" - -#: tips:253 -msgid "Override window manager control of the pinboard and panels" -msgstr "Sobrescribir o xestor de fiestras co control do taboleiro e do panel" - -#: tips:254 -msgid "Some window managers don't support the new Extended Window Manager Hints system, and so treat the pinboard and panels like normal windows. Turn this on to fix problems such as the pinboard coming to the front when you click on it, titlebars and other decorations appearing around windows, or having them appear in window-select lists." -msgstr "Algúns xestores de fiestras non son compatibles co novo sistema «Extended Window Manager Hints» e tratan os taboleiros e paneis como fiestras normais. Active esta opción para solucionar problemas como que o taboleiro se veña a primeiro plano cando preme nel, barras de título e outras decoracións de fiestras, ou que teñan que aparecer na lista de fiestras." - -#: tips:255 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Enviar os clics do rato no escritorio á o xestor de fiestras" - -#: tips:256 -msgid "Normally, right clicking on the desktop background will open the pinboard menu and left clicking will clear the selection. Turn this on to forward the events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "Normalmente, facer click dereito no fondo de escritorio abre o menú e no esquerdo limpa a selección. Active esta opción se desexa enviar estos eventos ao xestor de fiestras. Os clics nas iconas non van ser enviados." - -#: tips:257 -msgid "Blackbox root menus hack" -msgstr "Menus de «Blackbox» cortados" - -#: tips:258 -msgid "Blackbox, Fluxbox and similar window managers do not yet work well with the ROX-Filer pinboard. This option enables some workarounds. These window managers are expected to change their behaviour in new versions so that this isn't necessary." -msgstr "Blackbox, Fluxbox e xestores de fiestras similares ainda non traballan ben co taboleiro de ROX-Filer. Esta opción soluciona algúns problemas. Agardamos que estos xestores de fiestras muden o seu comportamento en novas versions de xeito que isto non sexa necesario." - -#: tips:259 -msgid "Panel is a 'dock'" -msgstr "O panel é «ancorado»" - -#: tips:260 -msgid "Makes sure panels stay against screen edges. Disable this option if the panel stays above other windows against your wishes. Requires a restart to take effect." -msgstr "Asegura que os paneles se manteñen nos bordos da pantalla. Desactive esta opción se o panel se manten por eriba de outras fiestras en contra dos seus desexos. Require un reinicio para ter efecto." - -#: tips:261 -msgid "Panel stays on top" -msgstr "O panel permanece en primeiro plano" - -#: tips:262 -msgid "Keeps the panel above other windows. Enable this option to make sure the dock option works correctly in some versions of compiz. May require a restart to take effect." -msgstr "Manten o panel por enriba de outras fiestras. Active esta opción para asegurarse de que a opción acoplar funciona correctamente en algunhas versións de compiz. Pode requerir un reinicio para ter efecto." - -#: tips:263 -msgid "Drag and drop" -msgstr "Arrastrar e pegar" - -#: tips:264 -msgid "Don't use hostnames" -msgstr "Non usar nomes de host" - -#: tips:265 -msgid "Some older applications don't support XDND fully and may need to have this option turned on. Use this if dragging files to an application shows a + sign on the pointer but the drop doesn't work." -msgstr "Algúns aplicativos antigos non son compatibles con «XDND» e poden precisar que esta opción esté activada. Use esta opción se ao arrastrar un ficheiro ao aplicativo amosa un «+» no punteiro pero non traballa." - -#: tips:266 -msgid "Extended attributes" -msgstr "Atributos estendidos" - -#: tips:267 -msgid "Don't use extended attributes" -msgstr "Non usar os atributos estendidos" - -#: tips:268 -msgid "This disables the use of extended attributes available in newer operating systems and file systems. With this option set the 'Set Type' menu entry is disabled, the MIME type of the file is only derived from the file name and the properties window does not report extended attributes." -msgstr "Esto desactiva o uso de atributos estendidos dispoñible nos novos sistemas operativos e sistemas de ficheiros. Con esta opción o «Definir tipo» no menú de entrada está desactivado, e o tipo MIME dos ficheiros é o derivado do nome e a caixa das propiedades non informa delas." - -#: ../Templates.glade:7 -msgid "ROX-Filer log viewer" -msgstr "Visor do rexistro de «ROX-Filer»" - -#: ../Templates.glade:22 -msgid "Recently performed actions..." -msgstr "Accións realizadas recentemente---" - -#: ../Templates.glade:77 -msgid "Open Directory" -msgstr "Abrir directorio" - -#: ../Templates.glade:129 -msgid "Panel Options" -msgstr "Opcións do panel" - -#: ../Templates.glade:169 -msgid "Every icon on this panel is shown with an image and some text." -msgstr "Cada icona no panel é amosada como imaxe e algún texto" - -#: ../Templates.glade:170 -msgid "Image and Text" -msgstr "Imaxe e texto" - -#: ../Templates.glade:186 -msgid "Applications in this panel have just an image, everything else has both an image and text." -msgstr "Só os aplicativos teñen imaxe, todo o demáis ten tanto imaxe como texto." - -#: ../Templates.glade:187 -msgid "Image only for applications" -msgstr "Imaxe só para aplicativos" - -#: ../Templates.glade:205 -msgid "Only the image is shown for icons in this panel." -msgstr "Só se amosa a imaxe para iconas no panel" - -#: ../Templates.glade:206 -msgid "Image only" -msgstr "Só imaxe" - -#: ../Templates.glade:235 -msgid "Panel width" -msgstr "Largura do panel" - -#: ../Templates.glade:247 -msgid "The size of this panel." -msgstr "Tamaño de este panel" - -#: ../Templates.glade:259 -msgid "px" -msgstr "px" - -#: ../Templates.glade:278 -msgid "Ask the window manager not to cover this panel when maximising windows, otherwise leave just 2 pixels at the edge of the screen to allow auto-raising. Some window managers may not honour this setting." -msgstr "Indicarlle o xestor de fiestras que non cubra este panel cando se máximizan ás fiestras, do contrario, deixe a só 2 píxeles o bordo da pantalla para permitir o redimensionado. Algún xestor de fiestras no poderá fornecer esta configuración." - -#: ../Templates.glade:279 -msgid "Do not cover panel" -msgstr "Non tapar o panel" - -#: ../Templates.glade:297 -msgid "Panel style" -msgstr "Estilo de panel" - -#: ../Templates.glade:331 -msgid "If you use multiple monitors with Xinerama, use this option to confine the panel to one monitor." -msgstr "Se utiliza múltiples monitores con «Xinerama», utilice esta opción para asignar o panel a un monitor ." - -#: ../Templates.glade:332 -msgid "Confine to Xinerama monitor" -msgstr "Asignar un monitor Xinerama" - -#: ../Templates.glade:347 -msgid "The monitor this panel is confined to when using Xinerama. The numbering starts from zero." -msgstr "Monitor do panel asignado con Xinerama. A numeración comeza de cero." - -#: ../Templates.glade:372 -msgid "Xinerama" -msgstr "Xinerama" - -#: ../Templates.glade:407 -msgid "Right edge" -msgstr "Bordo dereito" - -#: ../Templates.glade:426 -msgid "Left edge" -msgstr "Bordo esquerdo" - -#: ../Templates.glade:443 -msgid "Bottom edge" -msgstr "Bordo inferior" - -#: ../Templates.glade:462 -msgid "Top edge" -msgstr "Bordo superior" - -#: ../Templates.glade:496 -msgid "Position" -msgstr "Posición" - diff --git a/ROX-Filer/src/po/hu.po b/ROX-Filer/src/po/hu.po deleted file mode 100644 index 323416b7..00000000 --- a/ROX-Filer/src/po/hu.po +++ /dev/null @@ -1,4591 +0,0 @@ -# Hungarian messages for ROX-Filer. -# Copyright (C) 2002 Free Software Foundation, Inc. -# Andras Mohari , 2001-2005. -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.4.1\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-09-17 09:37+0200\n" -"PO-Revision-Date: 2007-09-17 11:26+0100\n" -"Last-Translator: András Mohari \n" -"Language-Team: Hungarian\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "_Csendben" - -#: abox.c:227 -msgid "Quiet" -msgstr "Csendben" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "Nem kell jóváhagyni minden műveletet" - -#: abox.c:454 -#: infobox.c:771 -#: tips:63 -msgid "Name" -msgstr "Név" - -#: abox.c:460 -#: menu.c:233 -msgid "Directory" -msgstr "Könyvtár" - -#: abox.c:549 -msgid "Expression:" -msgstr "Kifejezés:" - -#: action.c:57 -msgid "See the attr(5) man page for full details." -msgstr "Lásd az attr(5) kézikönyv oldalt részletes leírásért." - -#: action.c:59 -msgid "See the fsattr(5) man page for full details." -msgstr "Lásd az fsattr(5) kézikönyv oldalt részletes leírásért." - -#: action.c:61 -msgid "You do not appear to have OS support." -msgstr "Úgy tűnik, az op. rendszer nem támogatja." - -#: action.c:191 -msgid "Find expression reference" -msgstr "Segítség a keresési kifejezésekhez" - -#: action.c:202 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Rövid bevetezés\n" -"Csak írd szimpla idézőjelek közé a keresett fájl nevét:\n" -"'index.html' (\"index.html\" nevű fájlt keres)\n" -"\n" -"Példák\n" -"'*.htm', '*.html' (HTML fájlokat keres)\n" -"IsDir 'lib' (\"lib\" nevű könyvtárakat keres)\n" -"IsReg 'core' (\"core\" nevű közönséges fájlt keres)\n" -"! (IsDir, IsReg) (se nem könyvtár, se nem közönséges fájl)\n" -"mtime after 1 day ago and size > 1Mb (nagy, és nemrég módosított)\n" -"'CVS' prune, isreg (közönséges fájl, de nem a CVS könyvtárban)\n" -"IsReg system(grep -q fred \"%\") (\"fred\" szót tartalmazó fájlok)\n" -"\n" -"Egyszerű vizsgálatok\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (fájltípusok)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (jogosultságok)\n" -"IsEmpty, IsMine\n" -"Szimpla idézőjelek között a shellből ismert névminta lehet. Ha a minta perjelet\n" -"tartalmaz, akkor a teljes útvonalra illeszkedik; máskülönben csak a fájlnévre.\n" -"\n" -"Összehasonlítások\n" -"<, <=, =, !=, >, >=, After, Before (két érték összehasonlítása)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (fájlméretek)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (idők)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks (értékek)\n" -"\n" -"Különleges vizsgálatok\n" -"system(parans) (igaz, ha \"parancs\" visszatérési értéke nulla;\n" -"a parancsban a % jel az éppen vizsgált fájlt jelenti)\n" -"prune (hamis; továbbá megakadályozza a könyvtár átvizsgálását)." - -#: action.c:249 -msgid "Change permissions reference" -msgstr "Segítség a jogosultságok megváltoztatásához" - -#: action.c:260 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Általában elegendő kiválasztani a módosító parancsot a menüből \n" -"(a parancssor melletti nyilra kattintva). Néha azonban többre van szükség...\n" -"\n" -"A módosító parancs formája: MÓDOSÍTÁS, MÓDOSÍTÁS, ...\n" -"A MÓDOSÍTÁS formája: KI HOGYAN ENGEDÉLYEK\n" -"A KI az u, g és o betűk kombinációja, amely meghatározza, hogy a\n" -"felhasználó (tulajdonos), csoport vagy a többiek elérési jogai módosítandók-e.\n" -"HOGYAN: +, - vagy = a jogok adásához, megvonásához vagy pontos beállításához.\n" -"ENGEDÉLYEK: az rwxXstugo betűk kombinációjából áll.\n" -"\n" -"Zárójeles kifejezések illetve a szóközök nem számítanak.\n" -"\n" -"Példák\n" -"u+rw: olvasási és írási jogot ad a tulajdonosnak\n" -"g=u: a csoport jogai megegyeznek a tulajdonoséval\n" -"o=u-w: a többiek az írási jog kivételével a tulajdonos jogait kapják\n" -"a+x: végrehajtási/elérési jog mindenkinek - ugyanaz, mint az ugo+x\n" -"a+X: mindenki elérheti a könyvtárakat; mindenki futtathatja\n" -"a korábban bárki által futtatható fájlokat\n" -"u+rw, go+r: két parancs egyszerre!\n" -"u+s: beállítja a SetUID bitet - parancsfájloknál általában hatástalan\n" -"755: jogok közvetlen beállítása\n" -"\n" -"Lásd a chmod(1) parancs kézikönyvét részletes leírásért." - -#: action.c:301 -msgid "Set type reference" -msgstr "Segítség a fájltípus beállításához" - -#: action.c:312 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"A ROX-Filer a közönséges fájlok típusát általában a nevük\n" -"alapján határozza meg. Egy fájl típusának megváltoztatásához\n" -"át kell nevezni a fájlt.\n" -"\n" -"Az újabb fájlrendszereken lehetőség van az ún. \"kiterjesztett\n" -"attribútumok\" használatára, amelyek további adatokat tárolhatnak\n" -"a fájlokról. A ROX-Filer a \"user.mime_type\"\n" -"attribútumban tárolja a fájlok típusát.\n" -"\n" -"A könyvtáraknak, eszközfájloknak, pipe-oknak és socketeknek\n" -"nincs típusuk, csak a közönséges fájloknak, de ezeknek is\n" -"csak akkor, ha a fájlrendszer és az operációs rendszer támogatja.\n" - -#: action.c:419 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"A processz leállt.\n" - -#: action.c:435 -msgid "There was one error.\n" -msgstr "Egyetlen hiba volt.\n" - -#: action.c:437 -#, c-format -msgid "There were %d errors.\n" -msgstr "%d hiba volt.\n" - -#: action.c:461 -msgid "ERROR reading" -msgstr "Olvasási HIBA:" - -#: action.c:504 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Kész\n" - -#: action.c:560 -#: support.c:395 -msgid "ERROR" -msgstr "HIBA" - -#: action.c:714 -#: main.c:693 -#: main.c:700 -#: main.c:714 -msgid "Yes" -msgstr "Igen" - -#: action.c:717 -#: main.c:695 -#: main.c:702 -#: main.c:714 -msgid "No" -msgstr "Nem" - -#: action.c:735 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Gyerekprocessz leállítása...\n" - -#: action.c:742 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Kísérlet az elszabadult processz KILÖVÉSÉRE...\n" - -#: action.c:895 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Megméred %s tartalmát?" - -#: action.c:931 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Törlöd? %s\"%s\"" - -#: action.c:932 -msgid "WRITE-PROTECTED " -msgstr "(ÍRÁSVÉDETT) " - -#: action.c:939 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'\"%s\" törlése\n" - -#: action.c:952 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Könyvtár törölve: \"%s\"\n" - -#: action.c:985 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Kiadod? \"%s\"" - -#: action.c:992 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'\"%s\" kiadása\n" - -#: action.c:1011 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"nem sikerült kiadni a lemezt\n" - -#: action.c:1030 -#: action.c:1049 -#, c-format -msgid "?Check '%s'?" -msgstr "?Mehet \"%s\"?" - -#: action.c:1046 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Érvénytelen keresési kifejezés - javítsd ki és próbáld újra\n" - -#: action.c:1056 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(\"%s\" feldolgozásakor)\n" - -#: action.c:1130 -#: action.c:1155 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Módosítod \"%s\" jogosultságait?" - -#: action.c:1136 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'\"%s\" jogosultságainak módosítása\n" - -#: action.c:1153 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Érvénytelen módosítási parancs - javítsd ki és próbáld újra\n" - -#: action.c:1211 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?Módosítod \"%s\" tartalmát?" - -#: action.c:1214 -#: action.c:1234 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Módosítod \"%s\" típusát?" - -#: action.c:1231 -msgid "!Invalid type - change it and try again\n" -msgstr "!Érvénytelen típus - javítsd ki és próbáld újra\n" - -#: action.c:1253 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'\"%s\" típusának módosítása \"%s\" típusra\n" - -#: action.c:1276 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "'Nem módosítom e könyvtár típusát: \"%s\"\n" - -# XXX [mayday]: Egyelőre csak a típus módosításakor írja. -#: action.c:1282 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "'Ez a nem közönséges fájl ki lett kihagyva: \"%s\"\n" - -#: action.c:1342 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?\"%s\" már létezik - %s?" - -#: action.c:1344 -msgid "merge contents" -msgstr "összefésülöd a tartalmukat" - -#: action.c:1345 -msgid "overwrite" -msgstr "felülírod" - -#: action.c:1361 -msgid "'Trying copy anyway...\n" -msgstr "'Megpróbálom másolni...\n" - -#: action.c:1370 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Másolod? Forrás: %s Cél: %s" - -#: action.c:1374 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'%s másolása %s néven\n" - -#: action.c:1389 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!HIBA: A cél már létezik, de nem könyvtár\n" - -#: action.c:1461 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Nem sikerült \"%s\" másolása\n" - -#: action.c:1505 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?\"%s\" már létezik - felülírod?" - -#: action.c:1520 -msgid "'Trying move anyway...\n" -msgstr "'Megpróbálom áthelyezni...\n" - -#: action.c:1528 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Áthelyezed? Forrás: %s Cél: %s" - -#: action.c:1532 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'%s áthelyezése %s néven\n" - -#: action.c:1540 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Nem sikerült \"%s\" áthelyezése \"%s\" néven\n" - -#: action.c:1561 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!HIBA: Nem másolható önmagába\n" - -#: action.c:1576 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!HIBA: Nem helyezhető/nevezhető át önmagába\n" - -# XXX -#: action.c:1588 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'%s linkelése %s néven\n" - -# XXX -#: action.c:1593 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Linkeled? Forrás: %s Cél: %s" - -#: action.c:1636 -#, c-format -msgid "'Mounting %s\n" -msgstr "'%s csatolása\n" - -#: action.c:1637 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'%s lecsatolása\n" - -#: action.c:1640 -#, c-format -msgid "?Mount %s?" -msgstr "?Csatolod ezt: \"%s\"?" - -#: action.c:1641 -#, c-format -msgid "?Unmount %s?" -msgstr "?Lecsatolod ezt: \"%s\"?" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Nem sikerült csatolni\n" - -#: action.c:1663 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Nem sikerült lecsatolni\n" - -#: action.c:1671 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(úgy tűnik, már csatolva van)\n" - -#: action.c:1717 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Összesen: %s (" - -#: action.c:1723 -msgid "file" -msgstr "fájl" - -# XXX: többes szám miatt baj lehet, de ez jelenleg így jó. -#: action.c:1723 -msgid "files" -msgstr "fájl" - -#: action.c:1727 -msgid "no directories)\n" -msgstr "nincsenek könyvtárak)\n" - -#: action.c:1731 -msgid "directory" -msgstr "könyvtár" - -# XXX: többes szám miatt baj lehet, de ez jelenleg így jó. -#: action.c:1732 -msgid "directories" -msgstr "könyvtár" - -#: action.c:1773 -msgid "!No mount points selected!\n" -msgstr "!Nincs kijelölve csatolási pont!\n" - -#: action.c:1858 -msgid "?Another search?" -msgstr "?Újabb keresés?" - -#: action.c:1888 -#: action.c:1919 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!\"%s\" egy szimbolikus link\n" - -#: action.c:1959 -msgid "You need to select some items to search through" -msgstr "Ki kell jelölnöd néhány elemet a kereséshez" - -#: action.c:1969 -#: menu.c:224 -msgid "Find" -msgstr "Keresés" - -#: action.c:2002 -msgid "You need to select some items to count" -msgstr "Ki kell jelölnöd az elemeket a méretük megállapításához" - -#: action.c:2006 -msgid "Disk Usage" -msgstr "Felhasznált lemezterület" - -#: action.c:2042 -msgid "Mount / Unmount" -msgstr "Csatolás / Lecsatolás" - -#: action.c:2059 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "A ROX-Filer sajnos még nem támogatja a csatolási pontokat ezen a rendszeren." - -#: action.c:2073 -#: menu.c:212 -#: tips:200 -msgid "Delete" -msgstr "Törlés" - -#: action.c:2085 -#: tips:205 -msgid "Force" -msgstr "Kényszerítés" - -#: action.c:2085 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Ne kérjen megerősítést a nem írható elemek törléséhez" - -#: action.c:2088 -#: action.c:2147 -#: action.c:2210 -#: action.c:2283 -#: action.c:2323 -#: tips:207 -msgid "Brief" -msgstr "Tömör" - -#: action.c:2088 -msgid "Only log directories being deleted" -msgstr "Csak a könyvtárak törlését listázza" - -#: action.c:2107 -msgid "You need to select the items whose permissions you want to change" -msgstr "Ki kell jelölnöd az elemeket, amelyeknek a jogosultságait módosítani akarod" - -#: action.c:2115 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Engedélyezi a végrehajást/elérést)" - -#: action.c:2117 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Tiltja a végrehajtást/elérést)" - -#: action.c:2119 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Olvasási+írási jog a tulajdonosnak)" - -#: action.c:2121 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privát - tulajdonos fér csak hozzá)" - -#: action.c:2123 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Nyilvános elérés, írás tiltva)" - -#: action.c:2134 -#: menu.c:185 -#: menu.c:222 -#: tips:80 -msgid "Permissions" -msgstr "Jogosultságok" - -#: action.c:2147 -#: action.c:2210 -msgid "Don't list processed files" -msgstr "Ne listázza a feldolgozott fájlokat" - -#: action.c:2150 -#: action.c:2213 -#: tips:209 -msgid "Recurse" -msgstr "Rekurzív" - -#: action.c:2150 -msgid "Also change contents of subdirectories" -msgstr "Az alkönyvtárak tartalmát is feldolgozza" - -#: action.c:2154 -msgid "Command:" -msgstr "Parancs:" - -#: action.c:2184 -msgid "You need to select the items whose type you want to change" -msgstr "Ki kell jelölnöd a fájlokat, amelyeknek a típusát módosítani akarod" - -#: action.c:2197 -msgid "Set type" -msgstr "Típus beállítása" - -#: action.c:2213 -msgid "Change contents of subdirectories" -msgstr "Az alkönyvtárak tartalmát is feldolgozza" - -#: action.c:2220 -#: infobox.c:627 -msgid "Type:" -msgstr "Típus:" - -#: action.c:2267 -#: dnd.c:122 -#: menu.c:2014 -#: tips:194 -msgid "Copy" -msgstr "Másolás" - -#: action.c:2279 -#: action.c:2319 -#: tips:211 -msgid "Newer" -msgstr "Újabb" - -#: action.c:2280 -#: action.c:2320 -#: tips:212 -msgid "Only over-write if source is newer than destination." -msgstr "Csak akkor írja felül a célt, ha a forrás újabb nála." - -#: action.c:2283 -msgid "Only log directories as they are copied" -msgstr "Csak a könyvtárak másolását listázza" - -#: action.c:2307 -#: dnd.c:123 -#: tips:196 -msgid "Move" -msgstr "Áthelyezés" - -#: action.c:2323 -msgid "Don't log each file as it is moved" -msgstr "Ne listázza az áthelyezett fájlokat" - -#: action.c:2346 -#: tips:198 -msgid "Link" -msgstr "Linkelés" - -#: action.c:2369 -#: appmenu.c:111 -#: filer.c:593 -msgid "Eject" -msgstr "Kiadás" - -#: action.c:2437 -msgid "Deleting items such as " -msgstr "Az ehhez hasonló elemeknek (" - -#: action.c:2441 -msgid "Deleting the item " -msgstr "Ennek az elemnek (" - -#: action.c:2443 -msgid "Deleting the items " -msgstr "Ezeknek az elemeknek (" - -#: action.c:2462 -msgid " and " -msgstr " és " - -#: action.c:2471 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr ") a törlése hatással van az asztal vagy panel elemeire. Tényleg törlöd?" - -#: action.c:2478 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr ") a törlése hatással van az asztal vagy panel elemeire. Tényleg törlöd őket?" - -#: appmenu.c:197 -msgid "" -msgstr "" - -#: appmenu.c:319 -#, c-format -msgid "Symlink any programs you want into this directory. They will appear in the menu for all items of this type (%s/%s)." -msgstr "Készíts linkeket ebben a könyvtárban a kívánt programokra. Ezek fognak megjelenni a menüben az ilyen típusú fájloknál (%s/%s)." - -#: appmenu.c:363 -#: menu.c:235 -msgid "Customise Menu..." -msgstr "Menü testreszabása..." - -#: appmenu.c:420 -#: menu.c:253 -#: toolbar.c:158 -msgid "Help" -msgstr "Segítség" - -#: bookmarks.c:148 -msgid "Path" -msgstr "Útvonal" - -#: bookmarks.c:156 -msgid "Title" -msgstr "Cím" - -#: bookmarks.c:305 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Távoli erőforrás nem adható a könyvjelzőkhöz: \"%s\"\n" - -#: bookmarks.c:313 -#: bookmarks.c:631 -#, c-format -msgid "'%s' isn't a directory" -msgstr "\"%s\" nem könyvtár" - -#: bookmarks.c:519 -msgid "You should first select some rows to delete" -msgstr "Előbb jelöld ki a törlendő sorokat" - -#: bookmarks.c:543 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Jelöld ki a lista áthelyezendő bejegyzését" - -# XXX: Ezt írja az első elem előbbre mozgatásakor is! -#: bookmarks.c:563 -msgid "This item is already at the end" -msgstr "Ez a bejegyzés már szélső helyzetben van" - -#: bookmarks.c:637 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Nem adhatók távoli könyvtárak a könyvjelzőkhöz: \"%s\"" - -#: bookmarks.c:779 -msgid "Add New Bookmark" -msgstr "Új könyvjelző hozzáadása" - -#: bookmarks.c:786 -msgid "Edit Bookmarks" -msgstr "Könyvjelzők szerkesztése" - -#: bookmarks.c:791 -msgid "Recently Visited" -msgstr "Legutóbbi könyvtárak" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "Fájlok tömeges átnevezése" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "Visszaállítás" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "Az \"Új\" oszlopba másolja a \"Régi\" tartalmát" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "Átnevezés" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "Csere:" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"Ez a keresendő reguláris kifejezés.\n" -"^ a fájlnév elejére illeszkedik\n" -"$ a végére illeszkedik\n" -"\\. a pont karakterre illeszkedik\n" -"\\.htm$ a \".htm\" részre illeszkedik az \"index.htm\" stb. névben" - -#: bulk_rename.c:107 -msgid "With:" -msgstr "Erre:" - -#: bulk_rename.c:114 -msgid "The first match in each filename will be replaced by this string. There are no special characters." -msgstr "Erre a karaktersorozatra cseréli le a fájlnevekben az első egyező részt. Itt nincsenek különleges karakterek." - -#: bulk_rename.c:118 -msgid "Apply" -msgstr "Alkalmazás" - -#: bulk_rename.c:121 -msgid "Do a search-and-replace in the New column. The files are not actually renamed until you click on the Rename button below." -msgstr "Keresést és cserét hajt végre az \"Új\" oszlopban. A fájlokat csak akkor nevezi át ténylegesen, ha rákattintasz az \"Átnevezés\" gombra." - -#: bulk_rename.c:140 -msgid "Old name" -msgstr "Régi név" - -#: bulk_rename.c:149 -msgid "New name" -msgstr "Új név" - -#: bulk_rename.c:257 -msgid "No strings (in the New column) matched the given expression" -msgstr "Nincs a megadott mintára illeszkedő szöveg (az \"Új\" oszlopban)" - -#: bulk_rename.c:262 -msgid "One name matched, but the result was the same" -msgstr "Egy név egyezett, de az eredmény ugyanaz volt" - -#: bulk_rename.c:265 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d név egyezett, de az eredmények ugyanazok voltak" - -#: bulk_rename.c:291 -msgid "Specify a regular expression to match, and a string to replace matches with." -msgstr "Add meg a keresendő reguláris kifejezést, és a találatokat helyettesítő karaktersorozatot." - -# XXX: Ez egy hibaüzenet hibás reguláris kifejezésekhez... Argh! -#: bulk_rename.c:308 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (kifejezés: \"%s\")" - -#: bulk_rename.c:341 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "Már létezik \"%s\" nevű fájl. Tömeges átnevezés megszakítva." - -#: bulk_rename.c:346 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Sikertelen átnevezés. Régi: \"%s\" Új: \"%s\"\n" -"%s\n" -"Tömeges átnevezés megszakítva." - -#: bulk_rename.c:408 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Már létezik \"%s\" nevű fájl" - -#: bulk_rename.c:419 -#, c-format -msgid "Some of the New names contain / characters (eg '%s'). This will cause the files to end up in different directories. Continue?" -msgstr "Az új nevek némelyike \"/\" karaktert tartalmaz (például \"%s\"). Ezek a fájlok más könyvtárakba kerülnek. Folytatod?" - -#: bulk_rename.c:434 -msgid "None of the names have changed. Nothing to do!" -msgstr "Egyik név sem változott meg. Nincs semmi dolgom!" - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d könyvtárat nem sikerült áthelyezni" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"A beállítások átkerültek innen:\n" -"%s\n" -" ebbe a könyvtárba:\n" -"%s\n" -"%s" - -# XXX (mondjuk az angol szöveg is lehetne jobb...) -#: dir.c:980 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Nem kérdezhető le a könyvtár állapota: %s" - -#: dir.c:989 -#, c-format -msgid "Can't open directory: %s" -msgstr "Nem nyitható meg a könyvtár: %s" - -#: display.c:629 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) hiba: %s" - -# A "Link" itt bizony ige... -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Linkelés (relatív)" - -# A "Link" itt bizony ige... -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Linkelés (abszolút)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "Belső hiba - rossz infó típus" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "Dobd ide a könyvjelzőkhöz adandó könyvtárat." - -# leafname = ??? -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS protokoll hiba: a fájlnévben nem lehet \"/\"\n" - -# leafname = ??? -#: dnd.c:603 -msgid "XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/plain) did not contain a leafname\n" -msgstr "Az XdndDirectSave0 cél meg van adva, de a text/plain típusú XdndDirectSave0 atom nem tartalmazott fájlnevet\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "Sajnálom, csak text/uri-list vagy XdndDirectSave0 típusú célt fogadok." - -#: dnd.c:619 -msgid "Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "Sajnálom, csak text/uri-list vagy application/octet-stream típusú célt fogadok." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote machine. For example:\n" -"\n" -"%s" -msgstr "" -"Néhány elemet nem sikerült a pinboardra helyezni, mert egy másik gépen vannak. Például:\n" -"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "Ismeretlen cél" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "A távoli alkalmazás nem küldött adatot" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "XDS protokoll hiba: a visszatérési érték csak \"S\", \"F\" vagy \"E\" lehet\n" - -# XXX: raw data = ??? -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "Távoli fájloknál / nyers adatoknál nem jeleníthető meg a műveleti menü." - -#: dnd.c:859 -msgid "UntitledData" -msgstr "NévtelenAdat" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "Hiba a fájl mentésekor: %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Nem tartalmaz URI-t a text/uri-list (nincs semmi dolgom!)" - -#: dnd.c:991 -msgid "Can't get data from remote machine (application/octet-stream not provided)" -msgstr "Nem lehet adatokat fogadni a távoli gépről (az application/octet-stream nincs megadva)" - -#: dnd.c:1014 -msgid "Some of these files are on a different machine - they will be ignored - sorry" -msgstr "A fájlok némelyike egy másik gépen van - ezek sajnos kimaradnak" - -#: dnd.c:1021 -msgid "None of these files are on the local machine - I can't operate on multiple remote files - sorry." -msgstr "Egyik fájl sincs a helyi gépen. Sajnos nem tudok egyszerre több távoli fájllal dolgozni." - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "Ismeretlen műveletkérés" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "Hiba a fájllista lekérdezésekor: %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "Megjelenítés" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "Megmutatja a jelenlegi beállítást egy könyvtárablakban" - -#: dropbox.c:172 -msgid "" -msgstr "" - -# XXX -#: dropbox.c:237 -msgid "I can't show you the currently set item, because nothing is currently set. Drag something onto me!" -msgstr "Nem tudom megmutatni a jelenlegi beállítást, mert nincs beállítva semmi. Dobj ide valamit!" - -# XXX: drop area -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "Csak egyetlen fájlt dobhatsz a célterületre." - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Sajnos \"%s\" nem használható, mert nem helyi fájl." - -#: dropbox.c:278 -#: pinboard.c:932 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"\"%s\" nem elérhető:\n" -"%s" - -#: filer.c:456 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Hiba \"%s\" olvasásakor:\n" -"%s\n" - -#: filer.c:460 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Hiba \"%s\" olvasásakor:\n" -"%s" - -#: filer.c:576 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Lecsatolod ezt az eszközt?\n" -"\n" -"Lecsatolás után biztonságosan kivehető a lemez." - -# XXX: Lecsatoláskor használt gomb felirata. Miért nem Cancel??? -#: filer.c:580 -msgid "No change" -msgstr "Mégsem" - -#: filer.c:586 -#: menu.c:868 -msgid "Unmount" -msgstr "Lecsatolás" - -#: filer.c:690 -msgid "Directory missing/deleted" -msgstr "Hiányzó/törölt könyvtár" - -#: filer.c:1054 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Nincs ilyen csoport: %s. Jelölj ki néhány fájlt, majd a Ctrl+%s leütésével hozd létre a csoportot. A szám (%s) leütésével a fájlok kijelölése később visszaállítható.\n" -"Ügyelj rá, hogy a NumLock be legyen kapcsolva a numerikus billentyűzet használatakor." - -#: filer.c:1290 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "Nem érhető el a könyvtár: \"%s\"" - -#: filer.c:1442 -#, c-format -msgid "Directory '%s' not found." -msgstr "Nem található a könyvtár: \"%s\"" - -#: filer.c:1742 -msgid "Cancel" -msgstr "Mégsem" - -# Az "All" rövidítése -#: filer.c:2023 -msgid "A" -msgstr "M" - -# A "Glob" rövidítése -#: filer.c:2025 -#: find.c:923 -msgid "G" -msgstr "Sz" - -# A "Scanning" rövidítése -#: filer.c:2030 -msgid "S" -msgstr "F" - -# A "Thumbs" rövidítése -#: filer.c:2032 -msgid "T" -msgstr "B" - -#: filer.c:2042 -msgid "All, " -msgstr "Mind, " - -#: filer.c:2045 -#, c-format -msgid "Glob (%s), " -msgstr "Szűrő (%s), " - -#: filer.c:2053 -msgid "Scanning, " -msgstr "Frissítés, " - -#: filer.c:2055 -msgid "Thumbs, " -msgstr "Bélyeg, " - -#: filer.c:2331 -msgid "Symbolic link to " -msgstr "Szimbolikus link ehhez: " - -#: filer.c:2373 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "Ez a fájlnév nem UTF-8 kódolású. Nevezd át, ha lehet.\n" - -#: filer.c:2684 -#: menu.c:2004 -msgid "Item no longer exists!" -msgstr "Az elem már nem létezik!" - -#: filer.c:3411 -msgid "Select display properties to save" -msgstr "Válaszd ki a nézet mentendő jellemzőit" - -#: filer.c:3418 -msgid "Position" -msgstr "Pozíció" - -#: filer.c:3423 -#: toolbar.c:133 -#: toolbar.c:137 -#: tips:66 -msgid "Size" -msgstr "Méret" - -#: filer.c:3428 -msgid "Show hidden" -msgstr "Rejtett fájlok mutatása" - -#: filer.c:3434 -msgid "Display style" -msgstr "Nézet stílusa" - -#: filer.c:3440 -msgid "Sort type and order" -msgstr "Rendezési szempont és irány" - -#: filer.c:3445 -#: toolbar.c:141 -msgid "Details" -msgstr "Részletek" - -#: filer.c:3450 -#: tips:119 -#: tips:120 -msgid "Thumbnails" -msgstr "Bélyegképek" - -#: filer.c:3456 -msgid "Filter" -msgstr "Szűrő" - -#: find.c:485 -msgid "And" -msgstr "And" - -#: find.c:509 -msgid "Not" -msgstr "Not" - -#: find.c:552 -msgid "system" -msgstr "system" - -#: find.c:560 -msgid "prune" -msgstr "prune" - -#: find.c:648 -msgid "After" -msgstr "After" - -#: find.c:650 -msgid "Before" -msgstr "Before" - -#: find.c:744 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:746 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:748 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:750 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:752 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:754 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:756 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:758 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:762 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:768 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:770 -msgid "IsWriteable" -msgstr "IsWriteable" - -#: find.c:772 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:776 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:904 -msgid "Now" -msgstr "Now" - -#: find.c:917 -msgid "Byte" -msgstr "Byte" - -#: find.c:917 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:919 -msgid "Kb" -msgstr "Kb" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mb" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "Sec" -msgstr "Sec" - -#: find.c:925 -msgid "Secs" -msgstr "Secs" - -#: find.c:927 -msgid "Min" -msgstr "Min" - -#: find.c:927 -msgid "Mins" -msgstr "Mins" - -#: find.c:929 -msgid "Hour" -msgstr "Hour" - -#: find.c:929 -msgid "Hours" -msgstr "Hours" - -#: find.c:931 -msgid "Day" -msgstr "Day" - -#: find.c:931 -msgid "Days" -msgstr "Days" - -#: find.c:933 -msgid "Week" -msgstr "Week" - -#: find.c:933 -msgid "Weeks" -msgstr "Weeks" - -#: find.c:935 -msgid "Year" -msgstr "Year" - -#: find.c:935 -msgid "Years" -msgstr "Years" - -#: find.c:944 -msgid "Ago" -msgstr "Ago" - -#: find.c:946 -msgid "Hence" -msgstr "Hence" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "size" - -#: find.c:969 -msgid "inode" -msgstr "inode" - -#: find.c:971 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "blocks" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "Mentés másként:" - -# XXX: Ez fájlnév lesz... -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "Névtelen" - -# XXX: A "property" mi legyen? Gondolom, ez egy X-atom. -#: gtksavebox.c:471 -msgid "Remote application wants to use Direct Save, but I can't read the XdndDirectSave0 (type text/plain) property.\n" -msgstr "A távoli alkalmazás Direct Save protokollt használ, de nem sikerült kiolvasni a text/plain típusú XdndDirectSave0 atomot.\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Dobd az ikont egy könyvtárablakba\n" -"(vagy írj be egy teljes nevet)" - -# XXX: Több hibaüzenet elválasztására szolgál a delayed_error() -# által készített hibaablakban. De miért van megjelölve fordításra??? -#: gui_support.c:329 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:398 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "A beolvasandó szöveges fájl egy XML dokumentum. A fájl (%s) sérült lehet." - -#: gui_support.c:415 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the Options window and try changing something and then changing it back (causing the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Hiba a fájl (%s) %d. sorában: \n" -"\"%s\"\n" -"Előfordulhat, hogy a fájl a ROX-Filer egy korábbi verziójából származik. Nyisd meg a Beállítások ablakot, változtass meg valamit, majd állítsd vissza (hogy a fájl újra el legyen mentve).\n" -"A további hibákat figyelmen kívül hagyom." - -#: gui_support.c:1007 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Helytelen vagy hiányzik a sortörés a text/uri-list adatokban" - -#: gui_support.c:1339 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Nem sikerült megnyitni a fájlt (%s): %s" - -#: gui_support.c:1383 -#, c-format -msgid "Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "Nem sikerült betölteni a képet (%s): az ok ismeretlen, talán sérült a fájl" - -#: gui_support.c:1434 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Nem futtatható ez a program (%s), mert nem található a 0launch parancs. Innen lehet letölteni:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:36 -msgid "Note that you must save your choices and restart the filer for the new language setting to take full effect." -msgstr "Az újonnan kijelölt nyelv használatához menteni kell a beállításokat, majd újra kell indítani a fájlkezelőt." - -#: icon.c:76 -msgid "(click to set)" -msgstr "(kattints a beállításhoz)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:132 -#: menu.c:254 -msgid "About ROX-Filer..." -msgstr "A ROX-Filer névjegye..." - -# XXX: Az alkalmazási könyvtárak Help könyvtárának megnyitására szolgáló menüparancs szövege. -#: icon.c:133 -#: menu.c:255 -msgid "Show Help Files" -msgstr "Help könyvtár megnyitása" - -#: icon.c:134 -#: menu.c:256 -msgid "Manual" -msgstr "Kézikönyv" - -#: icon.c:136 -#: menu.c:231 -msgid "Options..." -msgstr "Beállítások..." - -#: icon.c:137 -#: menu.c:240 -msgid "Home Directory" -msgstr "Saját könyvtár" - -#: icon.c:138 -#: icon.c:1389 -#: menu.c:208 -#: type.c:223 -msgid "File" -msgstr "Fájl" - -#: icon.c:139 -#: menu.c:214 -#: menu.c:881 -msgid "Shift Open" -msgstr "Megnyitás másként" - -#: icon.c:140 -#: menu.c:219 -msgid "Properties" -msgstr "Tulajdonságok" - -#: icon.c:141 -#: menu.c:217 -msgid "Set Run Action..." -msgstr "Program hozzárendelése..." - -#: icon.c:142 -#: menu.c:218 -msgid "Set Icon..." -msgstr "Ikon hozzárendelése..." - -#: icon.c:143 -#: icon.c:846 -msgid "Edit Item" -msgstr "Elem szerkesztése" - -#: icon.c:144 -msgid "Show Location" -msgstr "Hely megmutatása" - -# Szerintem nem kell zárójelezni a többesszámot. -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "Elemek törlése" - -#: icon.c:297 -#: log.c:107 -#: menu.c:770 -#, c-format -msgid "%s '%s'" -msgstr "%s: \"%s\"" - -#: icon.c:310 -msgid "Nothing" -msgstr "Semmi" - -#: icon.c:571 -msgid "The location must contain at least one character!" -msgstr "Az elérési út nem maradhat üresen!" - -#: icon.c:636 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "\"%s\" eltávolításához előbb meg kell szüntetni a zárolását" - -#: icon.c:646 -msgid "You must first select some items to remove" -msgstr "Előbb jelöld ki a törlendő elemeket" - -# XXX: Akkor írja ki, amikor egy nem zárolt ikont akarunk eltávolítani, de vannak kijelölve zároltak is... A kérdés csak az: Ezt egy általános instrukcióként kell értelmezni, vagy inkább arra utal, hogy van egy (vagy több) kijelölt zárolt elem, amelyek miatt az eltávolítás nem működik? -#: icon.c:652 -msgid "An item must be unlocked before it can be removed." -msgstr "Csak akkor törölhetők ez elemek, ha nincsenek zárolva." - -#: icon.c:666 -msgid "You must open the menu over an item" -msgstr "A menüt elem felett kell megnyitni" - -#: icon.c:691 -#: menu.c:1277 -msgid "You can only set the run action for a regular file" -msgstr "Program csak közönséges fájlhoz rendelhető" - -#: icon.c:777 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Üsd le a kívánt billentyűt (pl. Control+F1)" - -# XXX: -#: icon.c:799 -msgid "Failed to get keyboard grab!" -msgstr "Nem sikerült kisajátítani a billentyűzetet!" - -#: icon.c:849 -msgid "Clicking the icon opens:" -msgstr "Az ikonhoz rendelt útvonal:" - -#: icon.c:859 -msgid "Arguments to pass (for executables):" -msgstr "Argumentumok (végrehajtható fájlokhoz):" - -#: icon.c:873 -msgid "The text displayed under the icon is:" -msgstr "Az ikon alatt megjelenő szöveg:" - -#: icon.c:886 -msgid "The keyboard shortcut is:" -msgstr "A hozzárendelt billentyű:" - -#: icon.c:906 -msgid "Locked" -msgstr "Zárolt" - -#: icon.c:911 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "A zárolt elemeket nem lehet véletlenül törölni" - -#: infobox.c:111 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Tényleg megnyitsz %d ablakot?" - -#: infobox.c:112 -msgid "Show Info" -msgstr "Információ mutatása" - -#: infobox.c:134 -#: menu.c:775 -msgid "(bad utf-8)" -msgstr "(hibás utf-8)" - -# XXX: Lásd: "Show Help files" -#: infobox.c:259 -msgid "Show _Help Files" -msgstr "_Help könyvtár megnyitása" - -#: infobox.c:272 -msgid "Permissions" -msgstr "Jogosultságok" - -#: infobox.c:290 -msgid "Contents indicate..." -msgstr "Tartalma szerint..." - -#: infobox.c:427 -#: infobox.c:568 -#: support.c:349 -msgid "bytes" -msgstr "byte" - -#: infobox.c:450 -msgid "Failed to read size" -msgstr "Nem sikerült lekérdezni a méretet" - -#: infobox.c:511 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "\"%s\" már nem szimlink" - -#: infobox.c:518 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"\"%s\" törlése nem sikerült:\n" -"%s" - -# XXX -#: infobox.c:523 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Nem sikerült szimlinket készíteni innen: \"%s\"\n" -"%s\n" -"(a régi linket töröltem)" - -#: infobox.c:547 -#: tips:269 -msgid "Error:" -msgstr "Hiba:" - -#: infobox.c:554 -msgid "Real directory:" -msgstr "Valódi könyvtár:" - -#: infobox.c:557 -msgid "Owner, Group:" -msgstr "Tulajdonos, csoport:" - -#: infobox.c:564 -#: infobox.c:579 -#: infobox.c:588 -msgid "Size:" -msgstr "Méret:" - -#: infobox.c:589 -msgid "Scanning" -msgstr "Olvasás" - -#: infobox.c:614 -msgid "Failed to scan" -msgstr "Nem sikerült beolvasni" - -# XXX: Khm, egyáltalán van erre JÓ magyar fordítás? -# A "létrehozási idő" NEM jó! -#: infobox.c:621 -msgid "Change time:" -msgstr "Változtatási idő:" - -#: infobox.c:623 -msgid "Modify time:" -msgstr "Módosítási idő:" - -#: infobox.c:625 -msgid "Access time:" -msgstr "Hozzáférési idő:" - -#: infobox.c:633 -msgid "Extended attributes:" -msgstr "Kiterjesztett attribútumok:" - -#: infobox.c:635 -msgid "Present" -msgstr "Jelen" - -#: infobox.c:636 -msgid "None" -msgstr "Nincs" - -#: infobox.c:637 -msgid "Not supported" -msgstr "Nem támogatott" - -#: infobox.c:649 -msgid "Link target:" -msgstr "Link célja:" - -# XXX: A "Hozzárendelt program:" túl hosszú. :) -#: infobox.c:661 -#: infobox.c:664 -msgid "Run action:" -msgstr "Megnyitás:" - -# XXX: Ez még bajt okozhat. Egyelőre egy helyen használják: ezt írja ki a tulajdonságok ablakban a futtatható fájlok "run action"-jeként. -#: infobox.c:661 -msgid "Execute file" -msgstr "Futtasd a fájlt" - -#: infobox.c:773 -msgid "Comment" -msgstr "Megjegyzés" - -#: infobox.c:775 -msgid "Execute" -msgstr "Futtatás" - -#: infobox.c:789 -msgid "" -msgstr "" - -#: infobox.c:860 -#, c-format -msgid "file(1) says... %s" -msgstr "A file(1) szerint... %s" - -#: infobox.c:917 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Nem sikerült megváltoztatni a jogokat: %s" - -#: infobox.c:935 -msgid "Owner" -msgstr "Tulajdonos" - -#: infobox.c:937 -msgid "Group" -msgstr "Csoport" - -#: infobox.c:939 -msgid "World" -msgstr "Többiek" - -#: infobox.c:942 -msgid "Read" -msgstr "Olvasás" - -#: infobox.c:944 -msgid "Write" -msgstr "Írás" - -#: infobox.c:946 -msgid "Exec" -msgstr "Végrehajtás" - -#: infobox.c:963 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:970 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:977 -msgid "Sticky" -msgstr "Sticky" - -#: infobox.c:999 -msgid "Symbolic link" -msgstr "Szimbolikus link" - -#: infobox.c:1002 -msgid "ROX application" -msgstr "ROX-alkalmazás" - -#: infobox.c:1010 -msgid "mounted" -msgstr "csatolva" - -#: infobox.c:1010 -msgid "unmounted" -msgstr "lecsatolva" - -#: infobox.c:1014 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "%s csatolási pontja (%s)" - -#: infobox.c:1017 -#, c-format -msgid "Mount point (%s)" -msgstr "Csatolási pont (%s)" - -#: log.c:52 -msgid "ROX-Filer started" -msgstr "A ROX-Filer elindult" - -#: log.c:109 -#, fuzzy, c-format -msgid "%s on %d items" -msgstr "%d elem" - -#: log.c:122 -#, fuzzy -msgid "Item" -msgstr "elem" - -# XXX: Jó ez így, jogászok? -#: main.c:94 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"A ROX-Filerre NINCS SEMMIFÉLE GARANCIA,\n" -"amennyiben erről a törvény másként nem rendelkezik.\n" -"A ROX-Filer a GNU General Public License\n" -"hatálya alatt terjeszthető.\n" -"Bővebb felvilágosításért lásd a COPYING nevű fájlt.\n" - -#: main.c:103 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Futtasd a \"ROX-Filer/AppRun --help\" parancsot segítségért.\n" - -#: main.c:106 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Futtasd a \"ROX-Filer/AppRun -h\" parancsot segítségért.\n" - -#: main.c:108 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"MEGJEGYZÉS: Ezen a rendszeren nem használhatók a hosszú opciók -- \n" -"a rövid változatukat kell használni.\n" -"\n" - -#: main.c:114 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Használat: ROX-Filer/AppRun [OPCIÓ]... [FÁJL]...\n" -"Megnyitja a felsorolt könyvtárakat vagy fájlokat,\n" -"argumentumok hiányában pedig az aktuális könyvtárat.\n" -"\n" -" -b, --border=PANEL\toldalpanelként jeleníti meg a panelt\n" -" -B, --bottom=PANEL\tmegjeleníti a panelt a képernyő alján\n" -" -c, --client-id=ID\tmunkamenet-kezelésnél használatos\n" -" -d, --dir=KÖNYVTÁR\tmegnyitja a könyvtárat\n" -" -D, --close=KÖNYVTÁR\tbezárja a könyvtárat és alkönyvtárait\n" -" -h, --help\t\tkiírja ezt a szöveget, majd kilép\n" -" -l, --left=PANEL\tmegjeleníti a panelt a képernyő bal oldalán\n" -" -m, --mime-type=FÁJL\tkiírja a fájl MIME-típusát, majd kilép\n" -" -n, --new\t\túj példányt indít (nyomkövetéshez)\n" -" -p, --pinboard=PIN\ta PIN nevű pinboardot használja asztalként\n" -" -r, --right=PANEL\tmegjeleníti a panelt a képernyő jobb oldalán\n" -" -R, --RPC\t\tvégrehajtja a stdin-ről olvasott metódushívást\n" -" -s, --show=FÁJL\tmegmutatja a fájlt a könyvtárában\n" -" -S, --rox-session\ta panel és pinboard alapbeállításait,\n" -" \tilletve az -n opciót használja\n" -" -t, --top=PANEL\tmegjeleníti a panelt a képernyő tetején\n" -" -u, --user\t\tminden ablakban kijelzi a felhasználónevet\n" -" -U, --url=URL\t\tmegnyitja az URI-ként megadott fájlt vagy könyvtárat\n" -" -v, --version\t\tkiírja a program verzióját, majd kilép\n" -" -x, --examine=FÁJL\ta fájl megváltozott -- frissíti a fájlinformációt\n" -"\n" -"A hibákat ezen a címen jelentsd: %s.\n" -"Honlap (újabb verziókkal): http://rox.sourceforge.net/\n" - -#: main.c:236 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"BadWindow hibát jelzett az X-szerver. Ezt a következő GTK-hiba okozhatta (drag-and-drop közben?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Megpróbálom folytatni..." - -#: main.c:395 -msgid "The -o argument is no longer used. You can turn on override redirect from the Options box instead." -msgstr "Az \"-o\" opció már nem használatos. A Beállítások ablakban adható meg, hogy az ablakkezelők ne kezeljék a pinboardot és a panelt." - -#: main.c:524 -#, c-format -msgid "Running as user '%s'" -msgstr "Felhasználó: \"%s\"" - -#: main.c:685 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "A fordításhoz használt GTK verziója: %s\n" - -#: main.c:686 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "A jelenlegi GTK verziója: %d.%d.%d\n" - -#: main.c:690 -msgid "features set at compile time" -msgstr "fordításkor beállított támogatások" - -#: main.c:691 -msgid "Large File Support" -msgstr "Nagy fájlok támogatása" - -#: main.c:698 -msgid "Dnotify support" -msgstr "Dnotify támogatása" - -#: main.c:705 -msgid "Binary compatibility" -msgstr "Bináris kompatibilitás" - -#: main.c:707 -msgid "Yes (can run with older glibc versions)" -msgstr "Igen (régebbi glibc-vel is működik)" - -#: main.c:709 -msgid "No (apsymbols.h not found)" -msgstr "Nem (nincsen apsymbols.h)" - -#: main.c:713 -msgid "Extended attribute support" -msgstr "Kiterjesztett attribútumok támogatása" - -#: main.c:870 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"Bal kattintás: %s futtatása.\n" -"Jobb kattintás: verziók listája." - -#: menu.c:181 -#: tips:55 -msgid "Display" -msgstr "Nézet" - -#: menu.c:182 -#: tips:60 -msgid "Icons View" -msgstr "Ikonnézet" - -#: menu.c:183 -msgid "Icons, With..." -msgstr "Ikonok és..." - -#: menu.c:184 -#: tips:79 -msgid "Sizes" -msgstr "Méretek" - -#: menu.c:186 -#: tips:253 -msgid "Types" -msgstr "Típusok" - -#: menu.c:187 -#: tips:82 -msgid "Times" -msgstr "Dátumok" - -#: menu.c:188 -#: tips:61 -#: tips:97 -msgid "List View" -msgstr "Listanézet" - -#: menu.c:190 -msgid "Bigger Icons" -msgstr "Nagyobb ikonok" - -#: menu.c:191 -msgid "Smaller Icons" -msgstr "Kisebb ikonok" - -#: menu.c:192 -#: tips:76 -msgid "Automatic" -msgstr "Automatikus" - -#: menu.c:194 -msgid "Sort by Name" -msgstr "Rendezés név szerint" - -#: menu.c:195 -msgid "Sort by Type" -msgstr "Rendezés típus szerint" - -#: menu.c:196 -msgid "Sort by Date" -msgstr "Rendezés dátum szerint" - -#: menu.c:197 -msgid "Sort by Size" -msgstr "Rendezés méret szerint" - -#: menu.c:198 -msgid "Sort by Owner" -msgstr "Rendezés tulajdonos szerint" - -#: menu.c:199 -msgid "Sort by Group" -msgstr "Rendezés csoport szerint" - -#: menu.c:200 -msgid "Reversed" -msgstr "Fordítva" - -#: menu.c:202 -msgid "Show Hidden" -msgstr "Rejtett fájlok mutatása" - -#: menu.c:203 -msgid "Filter Files..." -msgstr "Fájlok szűrése..." - -# XXX: A "Könyvtárak szűrése a fájlokkal együtt" jobb lenne, de túl hosszú a menübe. -#: menu.c:204 -msgid "Filter Directories With Files" -msgstr "Szűrő a könyvtárakra is" - -#: menu.c:205 -msgid "Show Thumbnails" -msgstr "Bélyegképek mutatása" - -#: menu.c:206 -msgid "Refresh" -msgstr "Frissítés" - -# XXX: A "Nézet aktuális beállításainak mentése" túl hosszú (ez egy menüpont)! Remélhetőleg így is értelmes. -#: menu.c:207 -msgid "Save Current Display Settings..." -msgstr "Aktuális nézet mentése..." - -#: menu.c:209 -msgid "Copy..." -msgstr "Másolás..." - -#: menu.c:210 -msgid "Rename..." -msgstr "Átnevezés..." - -#: menu.c:211 -msgid "Link..." -msgstr "Linkelés..." - -#: menu.c:215 -msgid "Send To..." -msgstr "Küldés..." - -#: menu.c:220 -msgid "Count" -msgstr "Méret" - -#: menu.c:221 -msgid "Set Type..." -msgstr "Típus beállítása..." - -#: menu.c:225 -#: toolbar.c:154 -msgid "Select" -msgstr "Kijelölés" - -#: menu.c:226 -msgid "Select All" -msgstr "Az összes kijelölése" - -#: menu.c:227 -msgid "Clear Selection" -msgstr "Kijelölés megszüntetése" - -#: menu.c:228 -msgid "Invert Selection" -msgstr "Kijelölés megfordítása" - -#: menu.c:229 -msgid "Select by Name..." -msgstr "Kijelölés név alapján..." - -#: menu.c:230 -msgid "Select If..." -msgstr "Feltételes kijelölés..." - -#: menu.c:232 -msgid "New" -msgstr "Új" - -#: menu.c:234 -msgid "Blank file" -msgstr "Üres fájl" - -#: menu.c:236 -#: tasklist.c:306 -msgid "Window" -msgstr "Ablak" - -#: menu.c:237 -msgid "Parent, New Window" -msgstr "Szülő (új ablak)" - -#: menu.c:238 -msgid "Parent, Same Window" -msgstr "Szülő (ez az ablak)" - -#: menu.c:239 -msgid "New Window" -msgstr "Új ablak" - -#: menu.c:241 -msgid "Show Bookmarks" -msgstr "Könyvjelzők mutatása" - -#: menu.c:242 -msgid "Show Log" -msgstr "Napló megtekintése" - -#: menu.c:243 -msgid "Follow Symbolic Links" -msgstr "Szimbolikus linkek követése" - -#: menu.c:244 -msgid "Resize Window" -msgstr "Ablak átméretezése" - -#: menu.c:247 -msgid "Close Window" -msgstr "Ablak bezárása" - -#: menu.c:249 -msgid "Enter Path..." -msgstr "Útvonal megadása..." - -#: menu.c:250 -msgid "Shell Command..." -msgstr "Shell parancs..." - -#: menu.c:251 -msgid "Terminal Here" -msgstr "Terminál" - -#: menu.c:252 -msgid "Switch to Terminal" -msgstr "Váltás terminálra" - -#: menu.c:721 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "Ha fájlt akarsz küldeni egy alkalmazásnak, akkor tartsd nyomva a Shift billentyűt a menü megnyitásakor." - -#: menu.c:760 -msgid "Next Click" -msgstr "Következő kattintás" - -#: menu.c:782 -#, c-format -msgid "%d items" -msgstr "%d elem" - -#: menu.c:870 -msgid "Open unmounted" -msgstr "Megnyitás csatolás nélkül" - -#: menu.c:873 -msgid "Show Target" -msgstr "Cél mutatása" - -# Menüpont alkalmazási könyvtárak megnyitásához (az alkalmazás futtatása helyett) -#: menu.c:875 -msgid "Look Inside" -msgstr "Könyvtár megnyitása" - -#: menu.c:877 -msgid "Open As Text" -msgstr "Megnyitás szövegként" - -#: menu.c:1048 -msgid "" -"Extended attributes, used to store types, are not supported for this file or files.\n" -"This may be due to lack of support from the filesystem or the C library, or it may simply be that the filesystem needs to be mounted with the right mount option ('user_xattr' on Linux)." -msgstr "" -"A fájlok típusának tárolásához használt kiterjesztett attribútumok nem használhatók ennél a fájlnál, vagy ezeknél a fájloknál.\n" -"Talán a fájlrendszer vagy a C könyvtár ezt nem támogatja, de az is lehet, hogy csak a megfelelő opcióval kell csatolni a fájlrendszert (Linuxon ez a \"user_xattr\")." - -#: menu.c:1054 -msgid "Setting type not supported for some of these files" -msgstr "Néhány fájlnak nem lehet beállítani a típusát" - -#: menu.c:1089 -msgid "_Relative link" -msgstr "_Relatív link" - -#: menu.c:1095 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink may move but the target will stay put." -msgstr "" -"Bekapcsolt állapotban a szimlinkhez viszonyított útvonalat tárolja. Akkor hasznos, ha a szimlink és a cél egymáshoz viszonyított helyzete nem változik.\n" -"Kikapcsolt állapotban a cél teljes útvonalát tárolja. Akkor hasznos, ha a szimlink bárhol lehet, de a cél a helyén marad." - -#: menu.c:1165 -msgid "New pathname is not absolute" -msgstr "Az új elérési útvonal nem teljes" - -# XXX -#: menu.c:1231 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "A szimlink (%s) már létezik. Az új célra mutasson (%s)?" - -#: menu.c:1237 -msgid "_Replace" -msgstr "C_sere" - -#: menu.c:1357 -#: menu.c:1398 -#: menu.c:1458 -msgid "Create" -msgstr "Létrehozás" - -#: menu.c:1358 -msgid "NewDir" -msgstr "ÚjKönyvtár" - -#: menu.c:1372 -#: menu.c:1378 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Hiba \"%s\" létrehozásakor: %s" - -#: menu.c:1399 -msgid "NewFile" -msgstr "ÚjFájl" - -#: menu.c:1417 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "Hiba a fájl létrehozásakor: nincs meg hozzá a sablon (%s)" - -#: menu.c:1488 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an application. The applications listed are those in the following directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which will only be shown for files of that type. `.group' is shown only when multiple files are selected." -msgstr "" -"A \"Küldés\" menü segítségével a kijelölt fájlok egyszerűen átadhatók egy alkalmazásnak. A menüben felsorolt alkalmazások a következő könyvtárakból kerülnek ki:\n" -"\n" -"%s\n" -"%s\n" -"A \"Küldés\" menü megnyitásához tartsd nyomva a Shift billentyűt miközben egy fájlra kattintasz.\n" -"\n" -"Haladóknak:\n" -"\".text_html\", \".text\" stb. nevű alkönyvtárak is készíthetők; ezek csak a megfelelő fájltípusnál jelennek meg. A \".group\" csak több kijelölt fájl esetén jelenik meg." - -#: menu.c:1499 -msgid "I'll show you your SendTo directory now; you should symlink (Ctrl+Shift drag) any applications you want into it." -msgstr "Most megnyitom a saját \"Küldés\" (SendTo) könyvtárad, amelyben létrehozhatsz szimlinkeket a kívánt alkalmazásokra (Ctrl+Shift-tel húzással)." - -#: menu.c:1502 -#: menu.c:1542 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "A CHOICESPATH változó sajnos tiltja a beállítások mentését." - -#: menu.c:1535 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"A sablonkönyvtáradban (Templates) levő fájlok fognak megjelenni az \"Új\" menüben. A menüből kiválasztott fájl másolata lesz az új fájl.\n" -"\n" -"A következő könyvtárakban vannak sablonok:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1540 -msgid "I'll show you your Templates directory now; you should place any template files you want inside it." -msgstr "Most megnyitom a sablonjaid könyvtárát; ide helyezd el a sablonfájlokat." - -#: menu.c:1657 -msgid "Customise" -msgstr "Testreszabás" - -# XXX: canonical = a realpath() által visszaadott név -#: menu.c:1730 -msgid "This is already the canonical name for this directory." -msgstr "Ez már a könyvtár egyszerűsített neve." - -#: menu.c:1761 -msgid "You can't open a second view onto this directory because the `Unique Windows' option is turned on in the Options window." -msgstr "Nem lehet másik ablakban is megnyitni ezt a könyvtárat, mert az \"Egyedi ablakok\" beállítás engedélyezve van." - -#: menu.c:1887 -msgid "Copy ... ?" -msgstr "Mit másolsz?" - -#: menu.c:1890 -msgid "Rename ... ?" -msgstr "Mit nevezel át?" - -#: menu.c:1893 -msgid "Symlink ... ?" -msgstr "Mit linkelsz?" - -#: menu.c:1896 -msgid "Shift Open ... ?" -msgstr "Mit nyitsz meg másként?" - -#: menu.c:1899 -msgid "Properties of ... ?" -msgstr "Minek a tulajdonságaira vagy kiváncsi?" - -#: menu.c:1902 -msgid "Set type of ... ?" -msgstr "Minek a típusát állítod be?" - -#: menu.c:1905 -msgid "Set run action for ... ?" -msgstr "Mihez rendelsz programot?" - -#: menu.c:1908 -msgid "Set icon for ... ?" -msgstr "Mihez rendelsz ikont?" - -#: menu.c:1911 -msgid "Send ... to ... ?" -msgstr "Mit küldesz?" - -#: menu.c:1914 -msgid "DELETE ... ?" -msgstr "Mit TÖRÖLSZ?" - -#: menu.c:1917 -msgid "Count the size of ... ?" -msgstr "Minek a méretét akarod tudni?" - -#: menu.c:1920 -msgid "Set permissions on ... ?" -msgstr "Minek a jogosultságait módosítod?" - -#: menu.c:1923 -msgid "Search inside ... ?" -msgstr "Hol akarsz keresni?" - -#: menu.c:1987 -msgid "You cannot do this to more than one item at a time" -msgstr "Ezt egyszerre csak egy elemmel lehet megtenni" - -#: menu.c:2019 -msgid "Rename" -msgstr "Átnevezés" - -#: menu.c:2024 -msgid "Symlink" -msgstr "Szimlink" - -#: menu.c:2053 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"A GTK2 alapesetben tiltja a gyorsbillentyűk menet közbeni módosítását, és ez nálad is tiltva van. Ha engedélyezni akarod:\n" -"\n" -"1) használj egy XSettings kezelőt, mint például a ROX-Session\n" -"vagy a gnome-settings-daemon; vagy\n" -"\n" -"2) add ezt a sort a ~/.gtkrc-2.0 fájlhoz:\n" -"\tgtk-can-change-accels = 1\n" -"\t(ez csak akkor működik, ha NEM használsz XSETTINGS kezelőt)" - -#: menu.c:2064 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key without opening the menu in future." -msgstr "" -"Billentyűk hozzárendelése a menüpontokhoz:\n" -"\n" -"- Nyisd meg a menüt egy könyvtárablakban.\n" -"- Vidd az egérmutatót a kívánt menüpontra.\n" -"- Üsd le a billentyűt, amelyet hozzá akarsz rendelni.\n" -"\n" -"A kiválasztott menüpont után megjelenik a billentyű, amelyet attól kezdve elég leütni a menü megnyitása nélkül is." - -#: menu.c:2079 -msgid "Set keyboard shortcuts" -msgstr "Gyorsbillentyűk beállítása" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Ugrás:" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "Feltételes kijelölés:" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "Kijelölés név alapján:" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "Minta:" - -#: minibuffer.c:265 -msgid "Enter the name of a file and I'll display it for you. Press Tab to fill in the longest match. Escape to close the minibuffer." -msgstr "Írd be a megjelenítendő fájl nevét (a Tab leütésével egészítheted ki a leghosszabb illeszkedő névre). A beviteli sort az Escape billentyűvel tudod bezárni." - -#: minibuffer.c:271 -msgid "Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "Írd be a végrehajtandó shell parancsot. Kattints egy fájlra, ha a nevét be akarod szúrni a parancssorba." - -#: minibuffer.c:276 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Írj be egy mintát a rá illeszkedő fájlok kijelöléséhez:\n" -"\n" -"A ? tetszőleges karaktert jelent.\n" -"A * egy vagy több karaktert jelent.\n" -"Az [aA] az \"a\" vagy \"A\" karaktert jelenti.\n" -"Az [a-z] az összes karaktert jelenti a-tól z-ig (kisbetűk).\n" -"A *.png a \".png\" végű neveket jelenti." - -#: minibuffer.c:288 -msgid "Enter a pattern to match for files to be shown. An empty filter turns the filter off." -msgstr "Adj meg egy mintát a rá illeszkedő fájlok megjelenítéséhez. A szűrést üres kifejezéssel lehet kikapcsolni." - -#: minibuffer.c:908 -msgid "Invalid Find condition" -msgstr "Érvénytelen keresési feltétel" - -#: mount.c:372 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s összesen, %s foglalt, %s szabad (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "Az Options fájl az új XML formátumba lett alakítva" - -#: options.c:535 -#: options.c:1256 -msgid "(use default)" -msgstr "(alapérték)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Belső hiba: %s nem olvasható" - -#: options.c:914 -msgid "Options" -msgstr "Beállítások" - -#: options.c:959 -msgid "_Revert" -msgstr "_Visszavonás" - -#: options.c:965 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "Visszaállítja az ablak megnyitásakor érvényes beállításokat." - -#: options.c:980 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"A beállításokat ide menti:\n" -"%s" - -#: options.c:988 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(a mentést tiltja a CHOICESPATH)" - -#: options.c:1161 -#: usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "Hiba %s mentésekor: %s" - -#: options.c:1793 -msgid "Missing '='" -msgstr "Hiányzó \"=\"" - -#: panel.c:495 -msgid "Your old panel file has been converted to the new XML format." -msgstr "A régi panel fájl az új XML formátumba lett alakítva." - -#: panel.c:601 -msgid "You have tried to close a panel via the window manager - I usually find that this is accidental... really close?" -msgstr "Az ablakkezelőn keresztül próbáltad bezárni a panelt. Ez általában nem szándékosan történik... Tényleg bezárod?" - -#: panel.c:702 -msgid "Missing < or > in panel config file" -msgstr "Hiányzik a < vagy > a panel konfigurációs fájlban" - -#: panel.c:1589 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Hiba a panel (%s) mentésekor: %s" - -#: panel.c:1905 -msgid "Applet quit without ever creating a widget!" -msgstr "Az applet kilépett mielőtt megjelent volna!" - -#: panel.c:2004 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Hiba az applet futtatásakor:\n" -"%s" - -#: panel.c:2640 -msgid "Panel Options..." -msgstr "Panel beállításai..." - -#: panel.c:2721 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Nem érhető el a Xinerama monitor (%d)" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "A régi pinboard fájl az új XML formátumba lett alakítva." - -#: pinboard.c:711 -msgid "The backdrop handler must be an application directory. Drag an application directory into the Set Backdrop dialog box, or (for programmers) pass it to the SOAP SetBackdropApp method." -msgstr "A háttérkezelőnek alkalmazási könyvtárnak kell lennie. Dobj egy alkalmazási könyvtárat a \"Háttér beállítása\" párbeszédablakba. (Programozóknak: Add át a SetBackdropApp SOAP-metódusnak paraméterként.)" - -#: pinboard.c:730 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop element, as described in ROX-Filer's manual." -msgstr "" -"Háttérnek csak kép, vagy pedig a ROX-Filer hátterét kezelni képes program adható meg.\n" -"\n" -"Programozóknak: Az alkalmazás AppInfo.xml fájljában szerepelnie kell a CanSetBackdrop elemnek, ahogy az a ROX-Filer kézikönyvében le van írva." - -#: pinboard.c:750 -msgid "Set backdrop" -msgstr "Háttér beállítása" - -#: pinboard.c:761 -msgid "Choose a style and drag an image in:" -msgstr "Válaszd ki a megjelenítés módját, és dobj ide egy képet:" - -#: pinboard.c:774 -msgid "Centre the image without scaling it" -msgstr "Középre igazítja a képet átméretezés nélkül" - -#: pinboard.c:775 -msgid "Centre" -msgstr "Középre" - -#: pinboard.c:776 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Az asztalhoz méretezi a képet torzítás nélkül" - -#: pinboard.c:778 -msgid "Scale" -msgstr "Átméretezve" - -#: pinboard.c:779 -#, fuzzy -msgid "Scale the image to fit the backdrop area, regardless of image dimensions - overscale" -msgstr "Úgy méretezi a képet, hogy teljesen betöltse az asztalt" - -#: pinboard.c:781 -#, fuzzy -msgid "Fit" -msgstr "Szűrő" - -#: pinboard.c:782 -msgid "Stretch the image to fill the backdrop area" -msgstr "A kép teljesen kitölti a hátteret" - -#: pinboard.c:783 -msgid "Stretch" -msgstr "Nyújtva" - -#: pinboard.c:784 -msgid "Tile the image over the backdrop area" -msgstr "Tapétaként jeleníti meg a képet" - -#: pinboard.c:785 -msgid "Tile" -msgstr "Tapétaként" - -#: pinboard.c:790 -msgid "Drop an image here" -msgstr "Dobj ide egy képet" - -#: pinboard.c:851 -msgid "No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox -p=Default' to turn it on in future." -msgstr "Nem volt használatban pinboard... kijelöltem a \"Default\" nevű pinboardot. Ezt a későbbiekben a \"rox -p=Default\" paranccsal használhatod." - -#: pinboard.c:945 -msgid "Only files (and certain applications) can be used to set the background image." -msgstr "Csak fájlok (és bizonyos alkalmazások) adhatók meg háttérkép beállításához." - -#: pinboard.c:1570 -msgid "Missing '>' in icon label" -msgstr "Hiányzik a \">\" az ikon címkéjében" - -#: pinboard.c:1579 -msgid "Missing ',' after icon label" -msgstr "Hiányzik a \",\" az ikon címkéje után" - -#: pinboard.c:1667 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Hiba a pinboard (%s) mentésekor: %s" - -#: pinboard.c:2211 -msgid "Backdrop..." -msgstr "Háttér..." - -#: pinboard.c:2304 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Hiba a háttérkép betöltésekor:\n" -"%s\n" -"Háttér eltávolítva." - -#: pixmaps.c:976 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Nem tudom törölni a bélyegképeket a könyvtárból (%s):\n" -"%s" - -#: pixmaps.c:997 -msgid "There are no thumbnails to delete" -msgstr "Nincsenek törlendő bélyegképek" - -#: pixmaps.c:1010 -msgid "Purge thumbnails disk cache" -msgstr "Bélyegképek gyorstárának kiürítése" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "Ismeretlen stílus: \"%s\"" - -# XXX -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Ismeretlen részletezési mód: \"%s\"" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Ismeretlen rendezési mód: \"%s\"" - -#: remote.c:1247 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "Kísérlet ismeretlen SOAP-metódus hívására: \"%s\"" - -#: rox_gettext.c:93 -#, c-format -msgid "Invalid .gmo translation file (too short): %s" -msgstr "Érvénytelen .gmo nyelvi fájl (túl rövid): %s" - -#: rox_gettext.c:106 -#, c-format -msgid "Invalid .gmo translation file (GNU magic number not found): %s" -msgstr "Érvénytelen .gmo nyelvi fájl (nincs meg a GNU azonosító): %s" - -#: run.c:99 -#: run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "A program (%s) nem található. Törölték?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "A fájl nem létezik vagy nem érhető el: %s" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Nem tudom, hogyan nyissam meg ezt: \"%s\"" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "Érvénytelen URI: \"%s\"" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "%s nem elérhető" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "Nem helyi URL: %s" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s: nincs kezelő ehhez: %s" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it (hold down Shift while you open it). Most applications provide their own help here, but this one doesn't." -msgstr "" -"Alkalmazás:\n" -"Ez egy alkalmazási könyvtár, amely futtatható programként, vagy megnyitható (a megnyitáshoz tartsd nyomva a Shiftet). Az alkalmazások többnyire itt tárolják a dokumentációjukat is, de ezé az alkalmazásé nincs itt." - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Nem sikerült adatot küldeni a programnak: %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "Nem sikerült a link olvasása: %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "Rossz szimlink (vagy nincs jogosultságod a követésére): %s" - -#: run.c:573 -#, c-format -msgid "No run action specified for files of this type (%s/%s) - you can set a run action by choosing `Set Run Action' from the File menu, or you can just drag the file to an application.%s" -msgstr "Nincs hozzárendelve program ehhez a fájltípushoz (%s/%s). Rendelj hozzá egy programot a \"Fájl\" menü \"Program hozzárendelése\" parancsával, vagy pedig egyszerűen dobd rá a fájlt egy programra.%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Megjegyzés: Ha ez egy futtatható program, akkor a futtatásához be kell állítani a végrehajtható bitet a \"Fájl\" menü \"Jogosultságok\" parancsával." - -# XXX: Már megint ezek a run actionök. -# A run action valójában egy fájltípushoz rendelt programot futtató -# (többnyire shell) fájl. Azaz röviden fogalmazva: ...? -#: run.c:746 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the permissions now (this problem may have been caused by a bug in earlier versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. Otherwise, you should check, or even just delete, all the existing run actions." -msgstr "" -"Ezt a végrehajtható fájlt (%s) mindenki írhatja! Nem futtatom. Változtasd meg a jogosultságait (ezt a problémát a program egy korábbi változatában levő hiba is okozhatta).\n" -"\n" -"Ha a hozzárendelt programok futtatásához használt végrehajtható (nem szimlink) fájlokat mindenki írhatja, akkor bárki, akinek hozzáférése van a gépedhez, könnyedén kártékony változtatokra cserélheti őket.\n" -"\n" -"Ha megbízol mindazokban, akik ezeket a fájlokat írhatják, akkor nincs baj. Máskülönben ellenőrizd (vagy egyszerűen csak töröld) a hozzárendelt programok futtatásához használt összes végrehajtható fájlt." - -#: run.c:759 -msgid "go-w (Fix security problem)" -msgstr "go-w (Biztonsági hiba javítása)" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -# XXX stat()-olni... -#: support.c:1589 -#: support.c:1643 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Nem sikerült megnyitni és stat()-olni a fájlt (%s): %s" - -# XXX mmap-olni... -#: support.c:1600 -#: support.c:1654 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Nem sikerült mmap-olni a fájlt (%s): %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "Bezárás" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "Könyvtárablak bezárása" - -#: toolbar.c:117 -msgid "Up" -msgstr "Fel" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "Ugrás a szülő könyvtárba" - -#: toolbar.c:121 -msgid "Home" -msgstr "Saját könyvtár" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "Ugrás a saját könyvtárba" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "Könyvjelzők" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "Könyvjelzők menü" - -#: toolbar.c:129 -msgid "Scan" -msgstr "Frissítés" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "Könyvtár tartalmának újraolvasása" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "Ikonméret megváltoztatása" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "Automatikus méretezés" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "Részletes nézet" - -#: toolbar.c:145 -msgid "Sort" -msgstr "Rendezés" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "Rendezési mód megváltoztatása" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "Rejtett" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"Bal: Rejtett fájlok be/ki\n" -"Jobb: Bélyegképek be/ki" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "Az összes kijelölése / Kijelölés megfordítása" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "ROX-Filer dokumentáció" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u rejtett)" - -#: toolbar.c:229 -#: tips:85 -msgid "items" -msgstr "elem" - -#: toolbar.c:229 -msgid "item" -msgstr "elem" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "0 elem%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u kijelölve (%s)" - -#: toolbar.c:445 -msgid "Sort by name" -msgstr "Rendezés név szerint" - -#: toolbar.c:445 -msgid "Sort by type" -msgstr "Rendezés típus szerint" - -#: toolbar.c:445 -msgid "Sort by date" -msgstr "Rendezés dátum szerint" - -#: toolbar.c:446 -msgid "Sort by size" -msgstr "Rendezés méret szerint" - -#: toolbar.c:446 -msgid "Sort by owner" -msgstr "Rendezés tulajdonos szerint" - -#: toolbar.c:446 -msgid "Sort by group" -msgstr "Rendezés csoport szerint" - -#: toolbar.c:480 -msgid "ascending" -msgstr "növekvő" - -#: toolbar.c:480 -msgid "descending" -msgstr "csökkenő" - -#: type.c:214 -msgid "Sym link" -msgstr "Szimlink" - -#: type.c:216 -msgid "Mount point" -msgstr "Csatolási pont" - -#: type.c:218 -msgid "App dir" -msgstr "Alk. könyvtár" - -#: type.c:225 -msgid "Dir" -msgstr "Könyvtár" - -#: type.c:227 -msgid "Char dev" -msgstr "Karakteres eszköz" - -#: type.c:229 -msgid "Block dev" -msgstr "Blokkos eszköz" - -#: type.c:231 -msgid "Pipe" -msgstr "Pipe" - -#: type.c:233 -msgid "Socket" -msgstr "Socket" - -#: type.c:235 -msgid "Door" -msgstr "Door" - -#: type.c:238 -msgid "Unknown" -msgstr "Ismeretlen" - -#: type.c:556 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Írd be a shell parancsot a \"$@\" megfelelő programba való betöltéséhez. Például:\n" -"\n" -"gimp \"$@\"" - -#: type.c:737 -msgid "This is not a program! Give me an application instead!" -msgstr "Ez nem program. Adj meg egy futtatható programot!" - -#: type.c:797 -msgid "No run action defined" -msgstr "Nincs hozzárendelve program" - -#: type.c:801 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Hiba a kezelőben (%s): %s" - -#: type.c:816 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Érvénytelen alkalmazás: %s (hibás az AppRun)" - -#: type.c:827 -#, c-format -msgid "Non-executable %s" -msgstr "Nem végrehajtható: %s" - -#: type.c:860 -msgid "Set run action" -msgstr "Program hozzárendelése" - -#: type.c:866 -msgid "If a handler for the specific type isn't set up, use this as the default." -msgstr "Ha a teljes típushoz nincs hozzárendelve semmi, akkor ezt használja." - -#: type.c:868 -#, c-format -msgid "Set default for all `%s/'" -msgstr "Minden ilyen típushoz: %s/" - -#: type.c:872 -msgid "Use this application for all files with this MIME type." -msgstr "A megadott programot használja ehhez a MIME-típushoz." - -#: type.c:874 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Csak ehhez a típushoz: \"%s\" (%s/%s)" - -#: type.c:880 -msgid "Drop a suitable application here" -msgstr "Dobj ide egy megfelelő programot" - -#: type.c:895 -msgid "OR" -msgstr "VAGY" - -#: type.c:902 -msgid "Enter a shell command:" -msgstr "Adj meg egy shell parancsot:" - -#: type.c:931 -msgid "_Use Command" -msgstr "_Parancs használata" - -# XXX -# Kissé sántít a fordítás. A hozzárendelt programot gyakorlatilag indíthatja -# egy script, egy program, vagy egy szimbolikus link programra/scriptre. -# Így aztán a "run action...is...big" fordítása elég körülményes (legalábbis -# nekem). -#: type.c:961 -msgid "A run action already exists and is quite a big program - are you sure you want to delete it?" -msgstr "Már van hozzárendelve program, és elég nagy méretű. Tényleg törölni akarod?" - -#: type.c:972 -#, c-format -msgid "Can't remove %s: %s" -msgstr "%s nem törölhető: %s" - -#: type.c:1009 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "A beállítások mentését tiltja a CHOICESPATH változó" - -#: type.c:1309 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s\n" -"\n" -"(this may mean that %s already exists as a link to an invalid directory; try deleting it)" -msgstr "" -"Nem sikerült létrehozni a szimlinket (%s):\n" -"%s\n" -"\n" -"(talán egy érvénytelen könyvtárra mutat az esetleg már létező \"%s\" link; próbáld törölni)" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "A megadott elérési út nem létezik. Az ikon változatlan marad." - -#: usericons.c:189 -#: usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Nem sikerült betölteni a képfájlt -- talán ismeretlen a formátuma, vagy rosszul vannak beállítva a jogosultságai.\n" -"Az ikon változatlan marad." - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Tényleg törlöd az ikont (%s)?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"\"%s\" nem törölhető:\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "Ikon hozzárendelése" - -#: usericons.c:281 -msgid "Use a copy of the image as the default for all files of these MIME types." -msgstr "A kép másolatát használja az összes fájlhoz, melynek ez a MIME-típusa." - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Minden ilyen típushoz: %s/" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "A kép másolatát használja az összes ilyen MIME-típusú fájlnál." - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Csak ehhez a típushoz: \"%s\" (%s/%s)" - -# XXX -#: usericons.c:296 -msgid "Add the file and image filenames to your personal list. The setting will be lost if the image or the file is moved." -msgstr "A saját listádhoz adja a fájl és a képfájl nevét. A beállítás hatástalanná válik, ha a képet vagy a fájlt áthelyezed." - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "Csak ehhez a fájlhoz: %s" - -#: usericons.c:307 -msgid "Copy the image inside the directory, as a hidden file called '.DirIcon'. All users will then see the icon, and you can move the directory around safely. This is usually the best option if you can write to the directory." -msgstr "A könyvtárba másolja a képet \".DirIcon\" nevű rejtett fájlként. Minden felhasználónál ugyanez a kép jelenik meg, a könyvtár pedig bárhová áthelyezhető. Általában ez legjobb választás, ha van írási jogod a könyvtárra." - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "Kép könyvtárba másolása" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "Dobj ide egy ikonfájlt" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Az ikon beállítását tiltja a CHOICESPATH változó" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Hiba a kép (%s) létrehozásakor:\n" -"%s" - -#: view_details.c:942 -msgid "Mono font" -msgstr "Rögzített szélességű betűtípus" - -#: view_details.c:943 -msgid "Font for displaying mono-spaced text" -msgstr "A rögzített szélességű szöveg betűkészlete" - -#: view_details.c:1044 -msgid "_Name" -msgstr "_Név" - -#: view_details.c:1047 -msgid "_Type" -msgstr "_Típus" - -#: view_details.c:1050 -msgid "_Permissions" -msgstr "_Jogok" - -#: view_details.c:1055 -msgid "_Owner" -msgstr "Tu_lajdonos" - -#: view_details.c:1057 -msgid "_Group" -msgstr "_Csoport" - -#: view_details.c:1059 -msgid "_Size" -msgstr "_Méret" - -#: view_details.c:1065 -msgid "Last _Modified" -msgstr "_Utolsó módosítás" - -#: tips:1 -msgid "Translation" -msgstr "Fordítás" - -#: tips:2 -msgid "Language" -msgstr "Nyelv" - -#: tips:3 -msgid "Use the LANG environment variable" -msgstr "A LANG környezeti változó alapján" - -#: tips:4 -msgid "Basque" -msgstr "Baszk" - -#: tips:5 -msgid "Chinese (traditional)" -msgstr "Kínai (hagyományos)" - -#: tips:6 -msgid "Chinese (simplified)" -msgstr "Kínai (egyszerűsített)" - -#: tips:7 -msgid "Czech" -msgstr "Cseh" - -#: tips:8 -msgid "Danish" -msgstr "Dán" - -#: tips:9 -msgid "Dutch" -msgstr "Holland" - -#: tips:10 -msgid "English (no translation)" -msgstr "Angol (nincs fordítás)" - -#: tips:11 -msgid "Estonian" -msgstr "Észt" - -#: tips:12 -msgid "Finnish" -msgstr "Finn" - -#: tips:13 -msgid "French" -msgstr "Francia" - -#: tips:14 -msgid "German" -msgstr "Német" - -#: tips:15 -msgid "Hungarian" -msgstr "Magyar" - -#: tips:16 -msgid "Japanese" -msgstr "Japán" - -#: tips:17 -msgid "Norwegian" -msgstr "Norvég" - -#: tips:18 -msgid "Italian" -msgstr "Olasz" - -#: tips:19 -msgid "Polish" -msgstr "Lengyel" - -#: tips:20 -msgid "Portuguese (Portugal)" -msgstr "Portugál (Portugália)" - -#: tips:21 -msgid "Portuguese (Brasil)" -msgstr "Portugál (Brazília)" - -#: tips:22 -msgid "Romanian" -msgstr "Román" - -#: tips:23 -msgid "Russian" -msgstr "Orosz" - -#: tips:24 -msgid "Spanish" -msgstr "Spanyol" - -#: tips:25 -msgid "Swedish" -msgstr "Svéd" - -#: tips:26 -msgid "Ukrainian" -msgstr "Ukrán" - -#: tips:27 -msgid "Vietnamese" -msgstr "Vietnámi" - -#: tips:28 -msgid "Filer windows" -msgstr "Könyvtárablakok" - -#: tips:29 -msgid "Auto-resize filer windows" -msgstr "Könyvtárablakok automatikus átméretezése" - -#: tips:30 -msgid "Never automatically resize" -msgstr "Nincs automatikus átméretezés" - -#: tips:31 -msgid "You'll have to resize windows manually, using the window manager, the `Resize Window' menu entry or by double-clicking on the window background." -msgstr "Az ablakot kézzel kell átméretezni: vagy az ablakkezelő segítségével, vagy az \"Ablak átméretezése\" menüpont használatával, vagy pedig dupla kattintással az ablak hátterére." - -#: tips:32 -msgid "Resize when changing the display style" -msgstr "Átméretezés a nézet megváltoztatásakor" - -#: tips:33 -msgid "Changing the size of the icons or which details are displayed will resize the window for you." -msgstr "Az ikonméret megváltoztatása vagy a részletes nézet kapcsolgatása átméretezi az ablakot." - -#: tips:34 -msgid "Always resize" -msgstr "Mindig méretezze át" - -#: tips:35 -msgid "The filer will resize windows whenever it seems useful (that is, when changing directory or display style)." -msgstr "Az ablak minden szükséges esetben át lesz méretezve (könyvtárváltáskor, illetve a nézet megváltoztatásakor)." - -#: tips:36 -msgid "Largest window size:" -msgstr "Legnagyobb ablakméret:" - -#: tips:37 -msgid "%" -msgstr "%" - -#: tips:38 -msgid "The largest size, as a percentage of the screen size, that the auto-resizer will resize a window to." -msgstr "A legnagyobb méret, amelyet egy ablak az automatikus átméretezés során felvehet. (A képernyő méretének százalékában értendő.)" - -#: tips:39 -msgid "Window behaviour" -msgstr "Ablakok viselkedése" - -#: tips:40 -msgid "Short titlebar flags" -msgstr "Rövid jelzők a címsorban" - -#: tips:41 -msgid "Use single letters instead of words for Scanning, All and Thumbs indicators in the titlebar." -msgstr "A címsorban betűket használ a \"Frissítés\", \"Mind\" és \"Bélyeg\" szavak helyett." - -#: tips:42 -msgid "Unique windows" -msgstr "Egyedi ablakok" - -#: tips:43 -msgid "If you open a directory and that directory is already displayed in another window, then this option causes the other window to be closed." -msgstr "Ha megnyitsz egy könyvtárat, amelyik egy másik ablakban már meg van nyitva, akkor ennek a beállításnak a hatására a másik ablak bezáródik." - -#: tips:44 -msgid "New window on button 1" -msgstr "Új ablak az 1-es gombra" - -#: tips:45 -msgid "Clicking with mouse button 1 (usually the left button) opens a directory in a new window with this turned on. Clicking with the button-2 (middle) will reuse the current window." -msgstr "Az 1-es (általában a bal) gombbal kattintva a könyvtár tartalma egy új ablakban jelenik meg. A 2-es (középső) gombbal kattintva a könyvtár tartalma az aktuális ablakban jelenik meg." - -#: tips:46 -msgid "Single-click navigation" -msgstr "Megnyitás egy kattintásra" - -#: tips:47 -#: tips:143 -msgid "Clicking on an item opens it with this on. Hold down Control to select the item instead. If off, clicking once selects an item; double click to open things." -msgstr "Egyetlen kattintás egy elemre megnyitja azt. Ilyenkor a kijelöléshez nyomva kell tartani a Control billentyűt. Ha ez a beállítás nincs engedélyezve, akkor a megnyitáshoz duplán kell kattintani." - -#: tips:48 -msgid "Double-click on background resizes" -msgstr "Átméretezés dupla kattintással a háttérre" - -#: tips:49 -msgid "If on then double clicking on the window background resizes the window, just like clicking on the Automatic size mode button in the toolbar." -msgstr "Az ablakokat át lehet méretezni duplán kattintva a hátterükre. Ez ugyanazt eredményezi, mint az eszköztár \"Automatikus méretezés\" gombjára kattintás." - -#: tips:50 -msgid "Sorting" -msgstr "Rendezés" - -#: tips:51 -msgid "Directories come first (for sort by name)" -msgstr "A könyvtárak elöl legyenek (név szerinti rendezéskor)" - -#: tips:52 -msgid "If this is on then directories will always appear before anything else when sorting by name." -msgstr "Engedélyezésével a könyvtárak mindig a többi fájl elé kerülnek név szerinti rendezéskor." - -#: tips:53 -msgid "Capitalised names first (for sort by name)" -msgstr "A nagy kezdőbetűsek elöl legyenek (név szerinti rendezéskor)" - -#: tips:54 -msgid "If on, all filenames starting with a capital letter come before filenames starting with lowercase ones." -msgstr "Engedélyezésével a nagy kezdőbetűs fájlnevek a kis kezdőbetűsek elé kerülnek." - -#: tips:56 -msgid "Default settings for new windows" -msgstr "Új ablakok alapbeállításai" - -#: tips:57 -msgid "Inherit options from source window" -msgstr "Beállítások öröklése az előző ablaktól" - -#: tips:58 -msgid "If this is on then display options for a new window are inherited from the source window if possible, otherwise they are set to the defaults below." -msgstr "Engedélyezésekor az új ablakok lehetőség szerint az előző ablaktól öröklik a nézet beállításait, máskülönben az alábbi alapbeállításokat használják." - -#: tips:59 -msgid "View type:" -msgstr "Nézet:" - -#: tips:62 -msgid "Sort by:" -msgstr "Rendezés:" - -#: tips:64 -#: tips:81 -msgid "Type" -msgstr "Típus" - -#: tips:65 -msgid "Date" -msgstr "Dátum" - -#: tips:67 -msgid "Show hidden files" -msgstr "Rejtett fájlok mutatása" - -#: tips:68 -msgid "If this is on then files whose names start with a dot are shown too, otherwise they are hidden." -msgstr "Engedélyezésekor azok a fájlok is látszanak, amelyeknek neve ponttal kezdődik, egyébként rejtve maradnak." - -#: tips:69 -msgid "Show extended attribute indicator" -msgstr "Kiterjesztett attribútumok jelzése" - -#: tips:70 -msgid "If this is on then files which have one or more extended attributes set will have an emblem added to indicate this." -msgstr "Ha be van kapcsolva, akkor a fájloknál egy matrica jelzi a kiterjesztett attribútumok meglétét." - -#: tips:71 -msgid "Icon View" -msgstr "Ikonnézet" - -#: tips:72 -msgid "Default size:" -msgstr "Alapértelmezett méret:" - -#: tips:73 -msgid "Huge Icons" -msgstr "Óriás ikonok" - -#: tips:74 -#: tips:244 -msgid "Large Icons" -msgstr "Nagy ikonok" - -#: tips:75 -#: tips:243 -msgid "Small Icons" -msgstr "Kis ikonok" - -#: tips:77 -msgid "Default details:" -msgstr "Alapértelmezett részletek:" - -#: tips:78 -msgid "No details" -msgstr "Nincsenek részletek" - -#: tips:83 -msgid "Automatic small icons:" -msgstr "Kis ikonokra váltás:" - -#: tips:84 -msgid "Change at:" -msgstr "Váltás határa:" - -#: tips:86 -msgid "When automatic icon sizing is selected: If the directory contains this many items then it will be shown using Small Icons, otherwise Large Icons will be used." -msgstr "Amikor engedélyezve van az ikonok automatikus méretezése: Ha ennél több elem van a könyvtárban, akkor kis ikonokat használ, máskülönben nagyokat." - -#: tips:87 -msgid "Max width (Large icons):" -msgstr "Max. szélesség (nagy ikonok):" - -#: tips:88 -#: tips:91 -msgid "pixels" -msgstr "pixel" - -#: tips:89 -msgid "Text wider than this is broken onto two lines in Large Icons mode. In Huge Icons mode, text is wrapped when 50% wider than this." -msgstr "Az ennél hosszabb szöveg két sorban jelenik meg a nagy ikonok alatt. Óriás ikonok esetén az ennél 50%-kal szélesebb szöveg lesz két sorba törve." - -#: tips:90 -msgid "(Small Icons):" -msgstr "(Kis ikonok):" - -#: tips:92 -msgid "Maximum width for the text beside a Small Icon." -msgstr "A kis ikonok utáni szöveg maximális szélessége." - -#: tips:93 -msgid "Order small icons vertically" -msgstr "A kis ikonokat függőlegesen rendezze el" - -#: tips:94 -msgid "If this option is on, then small icons are arranged in columns, not rows." -msgstr "Engedélyezésekor a kis ikonokat oszlopokba rendezi, nem sorokba." - -#: tips:95 -msgid "Order large icons vertically" -msgstr "A nagy ikonokat függőlegesen rendezze el" - -#: tips:96 -msgid "If this option is on, then large icons are arranged in columns, not rows." -msgstr "Engedélyezésekor a nagy ikonokat oszlopokba rendezi, nem sorokba." - -#: tips:98 -msgid "Show column headings" -msgstr "Oszlopfejlécek mutatása" - -#: tips:99 -msgid "If this is on then column headings will be shown in the list view." -msgstr "Engedélyezésekor látszanak az oszlopfejlécek listanézetben." - -#: tips:100 -msgid "Show full type" -msgstr "Teljes típus mutatása" - -#: tips:101 -msgid "If this is on then the full description of each object's type will be show rather than a short summary of its basic type." -msgstr "Engedélyezésekor listanézetben a fájltípusok teljes leírása látható, nem pedig az alaptípus rövid neve." - -#: tips:102 -msgid "Tools/Minibuffer" -msgstr "Eszközök/Minipuffer" - -#: tips:103 -msgid "Toolbar" -msgstr "Eszköztár" - -#: tips:104 -msgid "Toolbar type:" -msgstr "Eszköztár fajtája:" - -#: tips:105 -msgid "No toolbar" -msgstr "Nincs eszköztár" - -#: tips:106 -msgid "Icons only" -msgstr "Csak ikonok" - -#: tips:107 -msgid "Text under icons" -msgstr "Szöveg az ikonok alatt" - -#: tips:108 -msgid "Text beside icons" -msgstr "Szöveg az ikonok mellett" - -#: tips:109 -msgid "Show totals of items" -msgstr "Elemek számának megjelenítése" - -#: tips:110 -msgid "Show the number of items displayed in a filer window, as well as the number of hidden items (if any). When there's a selection, show the number of selected items and their combined size." -msgstr "Kijelzi a könyvtárablakban megjelenített (valamint ez esetleges rejtett) elemek számát. Kijelölés esetén a kijelölt elemek számát és összegzett méretét mutatja." - -#: tips:111 -msgid "Select the buttons you want on the bar:" -msgstr "Válaszd ki az eszköztáron megjelenítendő gombokat:" - -#: tips:112 -msgid "Width of toolbar sets minimum width of window" -msgstr "Az eszköztár szélessége megszabja az ablak legkisebb szélességét" - -#: tips:113 -msgid "Each filer window is constrained to be wide enough to show the whole of the toolbar" -msgstr "Minden könyvtárablak elég széles lesz ahhoz, hogy az egész eszköztár látszódjék." - -#: tips:114 -msgid "Minibuffer" -msgstr "Minipuffer" - -#: tips:115 -msgid "Beep if Tab-completion fails" -msgstr "Hangjelzés a fájlnevek sikertelen kiegészítéskor" - -#: tips:116 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if nothing happens (eg, because there are several possibilities and the next letter varies)." -msgstr "Hangjelzést ad, ha az \"Útvonal megadása...\" parancs használatakor a Tab leütésére semmi sem történik (például mert több lehetséges kiegészítés is van, és a következő betűjük eltérő)." - -#: tips:117 -msgid "Beep if there are several matches" -msgstr "Hangjelzés több fájlnév esetén" - -#: tips:118 -msgid "When using the `Enter Path...' minibuffer and Tab is pressed, beep if there is more than one matching file, even though some more letters were added." -msgstr "Hangjelzést ad, ha az \"Útvonal megadása...\" parancs használatakor a Tab leütésére még akkor is több fájlnév jöhet szóba kiegészítésként, ha megadtál pár betűt." - -#: tips:121 -msgid "When thumbnails are turned on, each image file in a directory is loaded and a small thumbnail of it is shown." -msgstr "Amikor a bélyegképek engedélyezve vannak, akkor a könyvtárban levő képekfájlok ikonjai a képeket mutatják." - -#: tips:122 -msgid "Show image thumbnails" -msgstr "Bélyegképek mutatása" - -#: tips:123 -msgid "This is the default setting for new windows. Use the Display menu to turn thumbnails on and off for individual windows." -msgstr "Alapesetben ezt a beállítást használják az új ablakok. Az egyes ablakoknál külön-külön kapcsolgathatók a bélyegképek a \"Nézet\" menüben." - -#: tips:124 -msgid "Video thumbnails" -msgstr "Video bélyegképek" - -#: tips:125 -msgid "Thumbnails cache" -msgstr "Bélyegképek gyorstára" - -#: tips:126 -msgid "To speed things up, the generated thumbnails are stored in the hidden ~/.thumbnails directory. Click here to remove all the cached thumbnails. They will be created again as needed." -msgstr "A gyorsabb működés érdekében az elkészült bélyegképek a rejtett ~/.thumbnails könyvtárban tárolódnak. Kattints ide a bélyegképek törléséhez. Szükség esetén újra létre lesznek hozva." - -#: tips:127 -msgid "Manage thumbnails" -msgstr "Bélyegképek kezelése" - -#: tips:128 -#: tips:187 -msgid "Pinboard" -msgstr "Pinboard" - -#: tips:129 -msgid "When using a pinboard, you can drag files and applications onto the desktop background to create shortcuts to them." -msgstr "A pinboard használatakor fájlokra és alkalmazásokra mutató ikonok helyezhetők az asztalra." - -#: tips:130 -#: tips:240 -msgid "Appearance" -msgstr "Megjelenés" - -#: tips:131 -msgid "Foreground:" -msgstr "Előtér:" - -#: tips:132 -msgid "Text shadow:" -msgstr "Szöveg árnyéka:" - -#: tips:133 -msgid "Background:" -msgstr "Háttér:" - -#: tips:134 -msgid "No shadow" -msgstr "Nincs árnyék" - -#: tips:135 -msgid "Thin" -msgstr "Vékony" - -#: tips:136 -msgid "Thick" -msgstr "Vastag" - -#: tips:137 -msgid "Use custom font:" -msgstr "Egyéni betűtípus használata:" - -#: tips:138 -msgid "The font used for the text displayed under the icons" -msgstr "Az ikonok alatti szöveg betűtípusa" - -#: tips:139 -msgid "Fast scaling of images" -msgstr "Képek gyors átméretezése" - -#: tips:140 -msgid "Choose between the fast or slow method of scaling backdrop images. The slow method can give better results." -msgstr "Választani lehet a háttérképek gyors vagy lassú átméretezése között. A lassú módszer szebb képet eredményezhet." - -#: tips:141 -msgid "Pinboard behaviour" -msgstr "Pinboard viselkedése" - -#: tips:142 -msgid "Single-click to open" -msgstr "Megnyitás egy kattintásra" - -#: tips:144 -msgid "Keep icons within screen limits" -msgstr "Ikonok képernyőn tartása" - -#: tips:145 -msgid "If this is set, pinboard icons are always kept completely within screen limits, including the label." -msgstr "Engedélyezésekor a pinboard ikonjai (és azok címkéi) nem lógnak ki a képernyőről." - -#: tips:146 -msgid "Icon grid step:" -msgstr "Ikonrács felosztása:" - -#: tips:147 -msgid "Fine" -msgstr "Finom" - -#: tips:148 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Az ikonok 2 képpont méretű rácshoz igazodnak." - -#: tips:149 -msgid "Medium" -msgstr "Közepes" - -#: tips:150 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Az ikonok 16 képpont méretű rácshoz igazodnak." - -#: tips:151 -msgid "Coarse" -msgstr "Durva" - -#: tips:152 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Az ikonok 32 képpont méretű rácshoz igazodnak." - -#: tips:153 -#: tips:155 -msgid "Iconified windows" -msgstr "Ikonizált ablakok" - -#: tips:154 -msgid "Most window managers provide a way to iconify (or 'minimise') windows, and various programs, including ROX-Filer, can be used to display the iconified windows." -msgstr "A legtöbb ablakkezelő képes az ablakok ikonizálására (vagy \"minimalizálására\"), és különféle programok (köztük a ROX-Filer) meg tudják jeleníteni ezeket az ablakokat." - -#: tips:156 -msgid "Show iconified windows" -msgstr "Ikonizált ablakok mutatása" - -#: tips:157 -msgid "If this option is on, the filer will show each iconified window as a small button on the pinboard. Requires a compatible window manager, and the pinboard must be in use." -msgstr "Engedélyezésekor az asztalon kis gombokként megjelennek az ikonizált ablakok. Ehhez megfelelő ablakkezelő szükséges, és be kell kapcsolni a pinboardot." - -#: tips:158 -msgid "Show per workspace" -msgstr "Csak egy munkaterület ablakait mutassa" - -#: tips:159 -msgid "If this option is on, the filer will only show iconified windows associated with the current workspace." -msgstr "Engedélyezésekor csak az aktuális munkaterülethez tartozó ikonizált ablakok látszanak." - -#: tips:160 -msgid "Iconify to the" -msgstr "Ikonizálás a" - -#: tips:161 -msgid "top-left" -msgstr "bal felső" - -#: tips:162 -msgid "top-right" -msgstr "jobb felső" - -#: tips:163 -msgid "bottom-left" -msgstr "bal alsó" - -#: tips:164 -msgid "bottom-right" -msgstr "jobb alsó" - -#: tips:165 -msgid ", going" -msgstr " sarokba, elhelyezés:" - -#: tips:166 -msgid "horizontally" -msgstr "vízszintesen" - -#: tips:167 -msgid "vertically" -msgstr "függőlegesen" - -#: tips:168 -msgid "Sometimes the filer doesn't know about your desktop furniture and puts iconified windows under (for example) the Gnome panel. You can define a top or bottom margin to avoid placing the icons there. The filer already knows about its own panel." -msgstr "A fájlkezelő néha nem ismeri fel az asztal elrendezését, ezért az ikonizált ablakokat (például) a Gnome panelje alá helyezi. Itt adható meg az a felső és alsó margó, ahová nem kerülnek ikonok. A fájlkezelő a saját paneljeinek helyét már ismeri." - -#: tips:169 -msgid "Top margin" -msgstr "Felső margó" - -#: tips:170 -msgid "Height of no-go area at top of screen." -msgstr "A szabadon hagyandó terület a képernyő tetején." - -#: tips:171 -msgid "Bottom margin" -msgstr "Alsó margó" - -#: tips:172 -msgid "Height of no-go area at bottom of screen." -msgstr "A szabadon hagyandó terület a képernyő alján." - -#: tips:173 -msgid "Left margin" -msgstr "Bal margó" - -#: tips:174 -msgid "Width of no-go area at left of screen." -msgstr "A szabadon hagyandó terület a képernyő bal oldalán." - -#: tips:175 -msgid "Right margin" -msgstr "Jobb margó" - -#: tips:176 -msgid "Width of no-go area at right of screen." -msgstr "A szabadon hagyandó terület a képernyő jobb oldalán." - -#: tips:177 -msgid "Desktop" -msgstr "Asztal" - -#: tips:178 -msgid "When run by a session manager program (such as ROX-Session) the filer can open up a panel and/or the pinboard. Here you configure which." -msgstr "Amikor egy munkamenet-kezelő program (például a ROX-Session) indítja el a fájlkezelőt, akkor egy panel és/vagy a pinboard is megjeleníthető. Itt választhatod ki, hogy melyiket mutassa." - -#: tips:179 -msgid "Panel only" -msgstr "Csak a panel" - -#: tips:180 -msgid "Only a panel is shown." -msgstr "Csak a panelt mutatja." - -#: tips:181 -msgid "Pinboard only" -msgstr "Csak a pinboard" - -#: tips:182 -msgid "Only the pinboard is shown." -msgstr "Csak a pinboardot mutatja." - -#: tips:183 -msgid "Panel and pinboard" -msgstr "Panel és pinboard" - -#: tips:184 -msgid "Both a panel and a pinboard are shown." -msgstr "A panelt és a pinboardot is mutatja." - -#: tips:185 -msgid "Panel" -msgstr "Panel" - -#: tips:186 -msgid "Enter the name of the panel to show here." -msgstr "Add meg a megjelenítendő panel nevét." - -#: tips:188 -msgid "Enter the name of the pinboard to show here." -msgstr "Add meg a megjelenítendő pinboard nevét." - -#: tips:189 -msgid "Changes here take effect the next time the filer is run." -msgstr "Ezek a változtatások a fájlkezelő következő indításakor lépnek életbe." - -#: tips:190 -msgid "The session manager activates these options by using the -S or --rox-session argument to rox." -msgstr "A munkamenet-kezelő az \"-S\" vagy \"--rox-session\" opciókat használva engedélyezi ezeket a beállításokat." - -#: tips:191 -msgid "Action windows" -msgstr "Műveleti ablakok" - -#: tips:192 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"A műveleti ablakok a háttérben futó műveletek indításakor\n" -"jelennek meg (például fájlok másolásakor vagy törlésekor)." - -#: tips:193 -msgid "Auto-start (Quiet) these actions" -msgstr "Automatikusan (Csendben) kezdi a következő műveleteket" - -#: tips:195 -msgid "Copy files without confirming first." -msgstr "Megerősítő kérdés nélkül kezdi a fájlok másolását." - -#: tips:197 -msgid "Move files without confirming first." -msgstr "Megerősítő kérdés nélkül kezdi a fájlok áthelyezését." - -#: tips:199 -msgid "Create links to files without confirming first." -msgstr "Megerősítő kérdés nélkül kezdi a linkek készítését." - -#: tips:201 -msgid "Delete files without confirming first." -msgstr "Megerősítő kérdés nélkül kezdi a fájlok törlését." - -#: tips:202 -msgid "Mount" -msgstr "Csatolás" - -#: tips:203 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Megerősítő kérdés nélkül kezdi a fájlrendszerek (le)csatolását." - -#: tips:204 -msgid "Default settings" -msgstr "Alapértelmezett beállítások" - -#: tips:206 -msgid "Don't confirm deletion of non-writeable items." -msgstr "Nem kér megerősítést a nem írható elemek törléséhez." - -#: tips:208 -msgid "Don't display so much information in the message area." -msgstr "Kevesebb üzenetet ad műveletvégzés közben." - -#: tips:210 -msgid "Also change contents of subdirectories." -msgstr "Az alkönyvtárak tartalmát is feldolgozza." - -#: tips:213 -msgid "Mount commands" -msgstr "Csatolási parancsok" - -#: tips:214 -msgid "Mount command" -msgstr "Csatolási parancs" - -#: tips:215 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "A fájlrendszerek csatolását végző parancs. Kétség esetén használd a \"mount\" parancsot." - -#: tips:216 -msgid "Unmount command" -msgstr "Lecsatolási parancs" - -#: tips:217 -msgid "The command used to unmount a filesystem. If unsure, use \"umount\" (yes, without the first \"n\")." -msgstr "A fájlrendszerek lecsatolását végző parancs. Kétség esetén használd az \"umount\" parancsot (igen, hiányzik az első \"n\")." - -#: tips:218 -msgid "Eject command" -msgstr "Lemezkiadási parancs" - -#: tips:219 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "A cserélhető adathordozók kiadását végző parancs. Kétség esetén használd az \"eject\" parancsot." - -# XXX: "Fogd és vidd", "Húzd és ejtsd", "Húzd és dobd" ... Argh! -#: tips:220 -msgid "Drag and Drop" -msgstr "Fogd és vidd" - -#: tips:221 -msgid "Dragging to icons" -msgstr "Ikonok fölé húzás" - -#: tips:222 -msgid "Allow dragging to icons in filer windows" -msgstr "Engedélyezi a könyvtárablakok ikonjaira húzást" - -#: tips:223 -msgid "When this is on you can drag a file over a sub-directory or program in a filer window. The item will highlight when you do this and dropping the file will put it into that directory, or load it into the program." -msgstr "Engedélyezésekor a fájlokat rá lehet húzni a könyvtárablakokban az alkönyvtárakra vagy programokra. Ha a fájlt elengeded, akkor az alatta levő könyvtárba kerül. Ha program felett engeded el, akkor betöltődik a programba." - -#: tips:224 -msgid "Directories spring open" -msgstr "Könyvtárak megnyitása" - -#: tips:225 -msgid "This option, which requires the above option to be turned on too, causes the highlighted directory to 'spring open' after the file is held over it for a short while." -msgstr "Ha a fenti beállítás is engedélyezve van, akkor a könyvtárak bizonyos idő után automatikusan megnyílnak, ha fájlt húzol föléjük." - -#: tips:226 -msgid "Spring delay:" -msgstr "Megnyitás késleltetése:" - -#: tips:227 -msgid "ms" -msgstr "ms" - -#: tips:228 -msgid "This option sets how long, in ms, you must hold a file over a directory before it will spring open. The above option must be turned on for this to have any effect." -msgstr "A könyvtárak megnyitásának késleltetése ezredmásodpercekben. Ennyi ideig kell egy fájlt a könyvtár felett tartani a könyvtár automatikus megnyitásához. A fenti beállítást is engedélyezni kell a használatához." - -#: tips:229 -msgid "When dragging files with the left mouse button" -msgstr "Fájlok bal egérgombbal húzása" - -#: tips:230 -#: tips:234 -msgid "Show a menu of possible actions" -msgstr "Megjeleníti a lehetséges műveletek menüjét" - -#: tips:231 -msgid "Copy the files" -msgstr "Másolja a fájlokat" - -#: tips:232 -msgid "Note that you can still get the menu to appear, by dragging with Alt held down." -msgstr "A menüt még így is meg lehet jeleníteni, ha a fájlok húzása közben nyomva tartod az Alt billentyűt." - -#: tips:233 -msgid "When dragging files with the middle mouse button" -msgstr "Fájlok középső egérgombbal húzása" - -#: tips:235 -msgid "Move the files" -msgstr "Áthelyezi a fájlokat" - -#: tips:236 -msgid "Note that you can still get the menu to appear, by dragging with the left button and holding down the Alt key." -msgstr "A menüt még így is meg lehet jeleníteni, ha nyomva tartod az Alt billentyűt miközben a bal gombbal húzod a fájlokat." - -#: tips:237 -msgid "Download handler" -msgstr "Letöltéskezelő" - -#: tips:238 -msgid "" -"When you drag a file from a web browser or other remote source, this program will be run to download it. $1 is the URI dragged to the filer, and the current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Amikor egy webböngészőből vagy máshonnan egy másik gépen levő fájlt húzol át egy könyvtárablakba, akkor ez a program fogja azt letölteni. $1 az ablakba húzott URI, a célkönyvtár pedig az aktuális könyvtár. Például:\n" -"xterm -e wget $1" - -#: tips:239 -msgid "Menus" -msgstr "Menük" - -#: tips:241 -msgid "Size of icons in menus:" -msgstr "Ikonok mérete a menükben:" - -#: tips:242 -msgid "No Icons" -msgstr "Nincsenek ikonok" - -#: tips:245 -msgid "Same as current window" -msgstr "Mint az aktuális ablakban" - -#: tips:246 -msgid "Same as default" -msgstr "Alapértelmezés szerinti" - -#: tips:247 -msgid "Behaviour" -msgstr "Viselkedés" - -#: tips:248 -msgid "File menu on right-click" -msgstr "Fájl menü a jobb gombbal kattintásra" - -#: tips:249 -msgid "Show the File menu instead of the main menu when right-clicking with files selected (the main menu can be accessed by holding down Control)." -msgstr "Kijelölt fájlok meglétekor a jobb gombbal kattintás a Fájl menüt nyitja meg, és nem a főmenüt (utóbbi ilyenkor a Control nyomva tartásával érhető el)." - -#: tips:250 -msgid "Terminal emulator program" -msgstr "Terminálemulátor program" - -#: tips:251 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "A menü \"Terminál\" parancsára futtatandó program." - -#: tips:252 -msgid "Keyboard shortcuts" -msgstr "Gyorsbillentyűk" - -#: tips:254 -msgid "MIME types" -msgstr "MIME-típusok" - -#: tips:255 -msgid "The filer uses a set of rules to work out the correct MIME type for each regular file, and then chooses a suitable icon for that type." -msgstr "A fájlkezelő különféle szabályok alapján határozza meg egy fájl MIME-típusát, aztán a típus alapján választja ki a megfelelő ikont." - -#: tips:256 -msgid "Edit MIME rules" -msgstr "MIME-szabályok szerkesztése" - -#: tips:257 -msgid "Themes" -msgstr "Témák" - -#: tips:258 -msgid "Icon theme" -msgstr "Ikontéma" - -#: tips:259 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "A témákat az ~/.icons könyvtárban kell elhelyezni." - -#: tips:260 -msgid "Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note that icons set this way override those from the selected theme." -msgstr "Használd az \"Ikon hozzárendelése...\" párbeszédablakot az egyes MIME-típusokhoz tartozó ikonok beállítására. Az így beállított ikonok fognak megjelenni az ikontéma megfelelő ikonjai helyett." - -#: tips:261 -msgid "Colours" -msgstr "Színek" - -#: tips:262 -msgid "File type colours" -msgstr "Fájltípusok színei" - -#: tips:263 -msgid "Colour files based on their types" -msgstr "Fájlok színezése a típusuk alapján" - -#: tips:264 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "A fájlnevek (és a részletek) a fájltípusnak megfelelő színnel jelennek meg." - -#: tips:265 -msgid "Directory:" -msgstr "Könyvtár:" - -#: tips:266 -msgid "Regular file:" -msgstr "Közönséges fájl:" - -#: tips:267 -msgid "Pipe:" -msgstr "Pipe:" - -#: tips:268 -msgid "Socket:" -msgstr "Socket:" - -#: tips:270 -msgid "Error, such as a symlink which points to a non-existant file, or a file which the filer does not have permission to examine." -msgstr "Hiba: például nem létező fájlra mutató szimlink, vagy olyan fájl, amelynek nem lehet lekérdezni a tulajdonságait elegendő jogosultság hiányában." - -#: tips:271 -msgid "Character device:" -msgstr "Karakteres eszköz:" - -#: tips:272 -msgid "Block device:" -msgstr "Blokkos eszköz:" - -#: tips:273 -msgid "Door:" -msgstr "Door:" - -#: tips:274 -msgid "Door files are a bit like sockets or pipes, and have only been seen on Solaris." -msgstr "A door fájlok hasonlóak a socketekhez vagy pipe-okhoz, és csak Solarison fordulnak elő." - -#: tips:275 -msgid "Executable file:" -msgstr "Végrehajtható fájl:" - -#: tips:276 -msgid "Application directory:" -msgstr "Alkalmazási könyvtár:" - -#: tips:277 -msgid "Unknown type:" -msgstr "Ismeretlen típus:" - -#: tips:278 -msgid "Compatibility" -msgstr "Kompatibilitás" - -#: tips:279 -msgid "Window manager problems" -msgstr "Ablakkezelőkkel kapcsolatos problémák" - -#: tips:280 -msgid "Override window manager control of the pinboard and panels" -msgstr "A pinboardot és a paneleket ne kezelje az ablakkezelő" - -#: tips:281 -msgid "Some window managers don't support the new Extended Window Manager Hints system, and so treat the pinboard and panels like normal windows. Turn this on to fix problems such as the pinboard coming to the front when you click on it, titlebars and other decorations appearing around windows, or having them appear in window-select lists." -msgstr "Egyes ablakkezelők nem támogatják az új \"Extended Window Manager Hints\" rendszert, ezért a pinboardot és a paneleket normál ablakokként kezelik. Ez a beállítás akkor segít, ha a pinboard előtérbe ugrik minden rákattintáskor, ha címsor vagy egyéb dekoráció veszi körül az ablakokat, vagy ha szerepelnek az ablaklistákban." - -#: tips:282 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Háttérre kattintások átadása az ablakkezelőnek" - -#: tips:283 -msgid "Normally, right clicking on the desktop background will open the pinboard menu and left clicking will clear the selection. Turn this on to forward the events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "Alapesetben az asztalon jobb gombra megnyílik a pinboard menüje, bal gombra pedig törlődik a kijelölés. Ha ez a beállítás engedélyezve van, akkor a kattintásokat az ablakkezelő kapja meg. Az ikonokra kattintás kivétel ez alól." - -# XXX -#: tips:284 -msgid "Blackbox root menus hack" -msgstr "A Blackbox menüjének \"javítása\"" - -# XXX -#: tips:285 -msgid "Blackbox, Fluxbox and similar window managers do not yet work well with the ROX-Filer pinboard. This option enables some workarounds. These window managers are expected to change their behaviour in new versions so that this isn't necessary." -msgstr "A Blackbox, Fluxbox és hasonló ablakkezelők még nem működnek jól a ROX-Filer pinboardjával. Ez a beállítás segít ezen. Ezen ablakkezelők újabb változatai várhatóan máshogyan fognak működni, így ez a beállítás szükségtelenné válik." - -# XXX: dock = ??? -#: tips:286 -msgid "Panel is a 'dock'" -msgstr "A panel egy \"dokk\"" - -#: tips:287 -msgid "Disable this option if the panel stays above other windows against your wishes. Requires a restart to take effect." -msgstr "Tiltsd le ezt a beállítást, ha nem akarod, hogy a panel a többi ablak fölött legyen. Újra kell indítani hozzá a programot." - -#: tips:288 -msgid "Drag and drop" -msgstr "Fogd és vidd" - -#: tips:289 -msgid "Don't use hostnames" -msgstr "Ne használjon hosztneveket" - -#: tips:290 -msgid "Some older applications don't support XDND fully and may need to have this option turned on. Use this if dragging files to an application shows a + sign on the pointer but the drop doesn't work." -msgstr "Néhány régebbi (az XDND protokollt csak részben támogató) program esetén lehet szükséges ez a beállítás. Kapcsold be, ha egy fájlt egy programra húzva megjelenik a \"+\" jel az egérmutatóban, de a rádobás mégsem működik." - -#: tips:291 -msgid "Extended attributes" -msgstr "Kiterjesztett attribútumok" - -#: tips:292 -msgid "Don't use extended attributes" -msgstr "Ne használjon kiterjesztett attribútumokat" - -#: tips:293 -msgid "This disables the use of extended attributes available in newer operating systems and file systems. With this option set the 'Set Type' menu entry is disabled, the MIME type of the file is only derived from the file name and the properties window does not report extended attributes." -msgstr "Letiltja az újabb operációs rendszerek és fájlrendszerek által támogatott kiterjesztett attribútumok használatát. Engedélyezésekor nem érhető el a \"Típus beállítása\" menüpont, a fájlok MIME-típusát csak a nevük határozza meg, a tulajdonságok ablakban pedig nem láthatók a kiterjesztett attribútumok." - -#: ../Templates.glade:7 -msgid "ROX-Filer log viewer" -msgstr "ROX-Filer naplónéző" - -#: ../Templates.glade:22 -msgid "Recently performed actions..." -msgstr "A legutóbb végrehajtott műveletek..." - -#: ../Templates.glade:77 -msgid "Open Directory" -msgstr "Könyvtár megnyitása" - -#: ../Templates.glade:129 -msgid "Panel Options" -msgstr "Panel beállításai" - -#: ../Templates.glade:169 -msgid "Every icon on this panel is shown with an image and some text." -msgstr "A panel minden ikonja képpel és szöveggel jelenik meg." - -#: ../Templates.glade:170 -msgid "Image and Text" -msgstr "Kép és szöveg" - -#: ../Templates.glade:186 -msgid "Applications in this panel have just an image, everything else has both an image and text." -msgstr "Az alkalmazásoknál csak kép jelenik meg, minden másnál kép és szöveg is." - -#: ../Templates.glade:187 -msgid "Image only for applications" -msgstr "Az alkalmazásoknál csak kép" - -#: ../Templates.glade:205 -msgid "Only the image is shown for icons in this panel." -msgstr "Csak az ikonok képe jelenik meg ezen a panelen." - -#: ../Templates.glade:206 -msgid "Image only" -msgstr "Csak kép" - -#: ../Templates.glade:235 -msgid "Panel width" -msgstr "Panel szélessége" - -#: ../Templates.glade:247 -msgid "The size of this panel." -msgstr "A panel mérete." - -#: ../Templates.glade:259 -msgid "px" -msgstr "képpont" - -#: ../Templates.glade:278 -msgid "Ask the window manager not to cover this panel when maximising windows, otherwise leave just 2 pixels at the edge of the screen to allow auto-raising. Some window managers may not honour this setting." -msgstr "Azt kéri az ablakkezelőtől, hogy a maximalizált ablakok ne takarják el ezt a panelt. Ha nincs beállítva, akkor 2 képpontnyi margó marad a képernyő szélén, hogy a panelt az előtérbe lehessen hozni. Néhány ablakkezelő figyelmen kívül hagyhatja ezt a beállítást." - -#: ../Templates.glade:279 -msgid "Do not cover panel" -msgstr "Ne takarja el a panelt" - -#: ../Templates.glade:297 -msgid "Panel style" -msgstr "Panel stílusa" - -#: ../Templates.glade:331 -msgid "If you use multiple montors with Xinerama, use this option to confine the panel to one monitor." -msgstr "Ha többmonitoros Xineramát használsz, akkor itt egyetlen monitorra korlátozhatod a panel megjelenítését." - -#: ../Templates.glade:332 -msgid "Confine to Xinerama monitor" -msgstr "Xinerama monitorra korlátozás" - -#: ../Templates.glade:347 -msgid "The monitor this panel is confined to when using Xinerama. The numbering starts from zero." -msgstr "Xinerama használatakor ezen a monitoron legyen a panel. A számozás 0-val indul." - -#: ../Templates.glade:372 -msgid "Xinerama" -msgstr "Xinerama" - -#: ../Templates.glade:407 -msgid "Right edge" -msgstr "Jobb oldalon" - -#: ../Templates.glade:426 -msgid "Left edge" -msgstr "Bal oldalon" - -#: ../Templates.glade:443 -msgid "Bottom edge" -msgstr "Alul" - -#: ../Templates.glade:462 -msgid "Top edge" -msgstr "Felül" - -#: ../Templates.glade:496 -msgid "Position" -msgstr "Elhelyezés" - -#~ msgid "Panel: %s" -#~ msgstr "Panel: %s" -#~ msgid "Select the panel's position:" -#~ msgstr "Válaszd ki a panel helyét:" -#~ msgid "Top-edge panel" -#~ msgstr "Felső panel" -#~ msgid "Bottom edge panel" -#~ msgstr "Alsó panel" -#~ msgid "Left edge panel" -#~ msgstr "Bal panel" -#~ msgid "Right-edge panel" -#~ msgstr "Jobb panel" -#~ msgid "" -#~ "Icon theme '%s' does not contain MIME icons. Using ROX default theme " -#~ "instead." -#~ msgstr "" -#~ "Nincsenek MIME-ikonok az ikontémában (%s). A ROX alapértelmezett témáját " -#~ "használom helyette." -#~ msgid "Panels" -#~ msgstr "Panelek" -#~ msgid "" -#~ "Panels are bars of icons that run along the side of the screen. See the " -#~ "manual for information about using panels." -#~ msgstr "" -#~ "A panelek a képernyő oldalai mentén végigfutó, ikonokat tartalmazó sávok. " -#~ "Használatukkal kapcsolatban lásd a kézikönyvet." -#~ msgid "(thick)" -#~ msgstr "(vastag)" -#~ msgid "." -#~ msgstr "." -#~ msgid " (yes, without the first " -#~ msgstr " (igen, az első nélkül: " -#~ msgid ")." -#~ msgstr ")." -#~ msgid "Show/hide hidden files" -#~ msgstr "Engedélyezi/tiltja a rejtett fájlok mutatását" -#~ msgid "Choices migration" -#~ msgstr "Beállítások átköltöztetése" -#~ msgid "" -#~ ".\n" -#~ "Home page (including updated versions): http://rox.sourceforge.net/\n" -#~ msgstr "" -#~ ".\n" -#~ "Honlap (frissített verziókkal): http://rox.sourceforge.net/\n" -#~ msgid "Open AVFS" -#~ msgstr "AVFS megnyitása" - diff --git a/ROX-Filer/src/po/it.po b/ROX-Filer/src/po/it.po deleted file mode 100644 index 33b9ceaf..00000000 --- a/ROX-Filer/src/po/it.po +++ /dev/null @@ -1,4889 +0,0 @@ -# ROX-Filer Italian Translation. -# Copyright @ 2010 Free Software Foundation, Inc. -# Current translator: Yuri Bongiorno http://yuri.bongiorno.googlepages.com, 2010. -# -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.10.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2010-01-03 12:00+0100\n" -"PO-Revision-Date: 2010-01-03 12:00+0100\n" -"Last-Translator: Yuri Bongiorno http://yuri.bongiorno.googlepages.com <>\n" -"Language-Team: Italian \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "_Tutti" - -#: abox.c:227 -msgid "Quiet" -msgstr "Tutti" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "Non chiede conferma ad ogni operazione" - -#: abox.c:454 infobox.c:782 tips:36 -msgid "Name" -msgstr "Nome" - -#: abox.c:460 menu.c:237 -msgid "Directory" -msgstr "Directory" - -#: abox.c:549 -msgid "Expression:" -msgstr "Espressione:" - -#: action.c:57 -msgid "See the attr(5) man page for full details." -msgstr "Vedere la pagina di manuale di attr(5) per ulteriori dettagli." - -#: action.c:59 -msgid "See the fsattr(5) man page for full details." -msgstr "Vedere la pagina di manuale di fsattr(5) per ulteriori dettagli." - -#: action.c:61 -msgid "You do not appear to have OS support." -msgstr "Non sembra esserci il supporto da parte del sistema operativo." - -#: action.c:191 -msgid "Find expression reference" -msgstr "Guida alle espressioni di ricerca" - -#: action.c:202 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"In breve\n" -"Basta mettere il nome del file che si cerca tra due apici singoli:\n" -"'index.html' (per cercare un file di nome «index.html»)\n" -"\n" -"Esempi\n" -"'*.htm', '*.html' (trova file HTML)\n" -"IsDir 'lib' (trova la directory di nome «lib»)\n" -"IsReg 'core' (trova il file regolare di nome «core»)\n" -"! (IsDir, IsReg) (né una directory, né un file regolare)\n" -"mtime after 1 day ago and size > 1Mb (grande e modificato di " -"recente)\n" -"'CVS' prune, isreg (file regolare non in «CVS»)\n" -"IsReg system(grep -q fred \"%\") (file regolare contenente la parola " -"«fred»)\n" -"\n" -"Condizioni semplici\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (tipi)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permessi)\n" -"IsEmpty, IsMine\n" -"Un modello in apici singoli corrisponde a un modello con metacaratteri in " -"stile shell.\n" -"Se il modello contiene una barra, la corrispondenza è sul percorso " -"completo;\n" -"altrimenti è solo sul nome.\n" -"\n" -"Confronti\n" -"<, <=, =, !=, >, >=, After, Before (confronta 2 valori)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (dimensioni dei file)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (tempi)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(valori)\n" -"\n" -"Speciali\n" -"system(comando) (vero se lo stato di uscita di «comando» è zero;\n" -"un % in «comando» viene sostituito dal percorso del file corrente)\n" -"prune (impedisce la ricerca del contenuto di una directory)." - -#: action.c:249 -msgid "Change permissions reference" -msgstr "Guida alla modifica dei permessi" - -#: action.c:260 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Normalmente, basta selezionare un comando dal menù (fare clic\n" -"sulla freccia accanto alla casella di comando). A volte, c'è bisogno " -"d'altro.\n" -"\n" -"Il formato del comando è: CAMBIO, CAMBIO, ...\n" -"Ogni CAMBIO significa:CHI COME PERMESSI\n" -"CHI è una combinazione di u, g e o che determina " -"se cambiare\n" -"i permessi del proprietario (u), del gruppo (g) e degli altri (o).\n" -"COME sta per +, - o = per aggiungere, rimuovere " -"o impostare\n" -"esattamente i permessi.\n" -"PERMESSI è una qualsiasi combinazione delle lettere rwxXstugo\n" -"\n" -"Il testo fra parentesi e gli spazi vengono ignorati.\n" -"\n" -"Esempi\n" -"u+rw: il proprietario del file ottiene i permessi in lettura e " -"scrittura\n" -"g=u: i permessi del gruppo sono impostati come quelli del " -"proprietario\n" -"o=u-w: gli altri ottengono gli stessi permessi del proprietario, " -"tranne quello in scrittura\n" -"a+x: tutti hanno il permesso di esecuzione e accesso: è uguale " -"a ugo+x\n" -"a+X: le directory diventano accessibili a tutti; i file che erano " -"eseguibili da parte\n" -"di qualcuno, diventano ora eseguibili da tutti\n" -"u+rw, go+r: due comandi alla volta\n" -"u+s: imposta il bit SetUID, spesso non ha effetto sugli script\n" -"755: imposta i permessi direttamente\n" -"\n" -"Vedere la pagina di manuale di chmod(1) per ulteriori dettagli." - -#: action.c:301 -msgid "Set type reference" -msgstr "Guida alle impostazioni del tipo di file" - -#: action.c:312 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"Normalmente ROX-Filer determina il tipo di MIME di un file regolare\n" -"facendo corrispondere il suo nome con un modello.\n" -"Per cambiarne il tipo, si deve rinominare il file.\n" -"\n" -"I file system più moderni hanno una proprietà chiamata «Attributi estesi»\n" -"che può essere usata per memorizzare in ogni file informazioni addizionali\n" -"come parametri di un certo nome.\n" -"ROX-Filer usa l'attributo «user.mime_type» per memorizzare i tipi di file.\n" -"\n" -"Sono supportati solo i file regolari, non le directory, i device,\n" -"le pipe o i socket, e funzionano solo su certi tipi di file system\n" -"che devono essere implementati nel sistema operativo.\n" - -#: action.c:419 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Processo terminato.\n" - -#: action.c:435 -msgid "There was one error.\n" -msgstr "C'è stato un errore.\n" - -#: action.c:437 -#, c-format -msgid "There were %d errors.\n" -msgstr "Ci sono stati %d errori.\n" - -#: action.c:461 -msgid "ERROR reading" -msgstr "ERRORE in lettura" - -#: action.c:504 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Fatto\n" - -#: action.c:560 support.c:395 -msgid "ERROR" -msgstr "ERRORE" - -#: action.c:714 main.c:698 main.c:705 main.c:712 main.c:726 -msgid "Yes" -msgstr "Si" - -#: action.c:717 main.c:700 main.c:707 main.c:714 main.c:726 -msgid "No" -msgstr "No" - -#: action.c:735 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Chiedo al processo figlio di terminare...\n" - -#: action.c:742 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Invio il segnale KILL al processo fuori controllo...\n" - -#: action.c:895 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Calcolare il contenuto di %s?" - -#: action.c:931 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Eliminare %s«%s»?" - -#: action.c:932 -msgid "WRITE-PROTECTED " -msgstr "PROTETTO DA SCRITTURA " - -#: action.c:939 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Eliminazione di «%s» in corso.\n" - -#: action.c:952 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Directory «%s» eliminata\n" - -#: action.c:985 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Espellere «%s»?" - -#: action.c:992 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Espulsione di «%s» in corso.\n" - -#: action.c:1011 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"Espulsione fallita\n" - -#: action.c:1030 action.c:1049 -#, c-format -msgid "?Check '%s'?" -msgstr "?Controllare «%s»?" - -#: action.c:1046 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Condizione di ricerca non valida: cambiarla e riprovare\n" - -#: action.c:1056 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(durante il controllo di «%s»)\n" - -#: action.c:1130 action.c:1155 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Cambiare i permessi di «%s»?" - -#: action.c:1136 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Modifica dei permessi di «%s» in corso.\n" - -#: action.c:1153 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Comando non valido: cambiarlo e riprovare\n" - -#: action.c:1211 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?Cambiare il contenuto di «%s»?" - -#: action.c:1214 action.c:1234 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Cambiare il tipo di file di «%s»?" - -#: action.c:1231 -msgid "!Invalid type - change it and try again\n" -msgstr "!Tipo non valido: cambiarlo e riprovare\n" - -#: action.c:1253 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Modifica del tipo di file da «%s» a «%s» in corso.\n" - -#: action.c:1276 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "'Non cambiare il tipo di directory «%s»\n" - -#: action.c:1282 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "'Il file non regolare·«%s»·non è stato cambiato\n" - -#: action.c:1342 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?«%s» esiste già: %s?" - -#: action.c:1344 -msgid "merge contents" -msgstr "unire i contenuti" - -#: action.c:1345 -msgid "overwrite" -msgstr "sovrascrivere" - -#: action.c:1361 -msgid "'Trying copy anyway...\n" -msgstr "'Provo comunque a copiare...\n" - -#: action.c:1370 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Copiare %s come %s?" - -#: action.c:1374 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'Copia di %s come %s in corso.\n" - -#: action.c:1389 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!ERRORE: la destinazione esiste già, ma non è una directory\n" - -#: action.c:1461 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Copia di «%s» fallita\n" - -#: action.c:1505 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?«%s» esiste già: sovrascrivere?" - -#: action.c:1520 -msgid "'Trying move anyway...\n" -msgstr "'Provo comunque a spostare...\n" - -#: action.c:1528 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Spostare %s in %s?" - -#: action.c:1532 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Spostamento di %s in %s in corso.\n" - -#: action.c:1540 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Spostamento di %s in %s fallito\n" - -#: action.c:1561 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!ERRORE: impossibile copiare l'oggetto su se stesso\n" - -#: action.c:1576 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!ERRORE: impossibile spostare o rinominare l'oggetto su se stesso\n" - -#: action.c:1588 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Collegamento di %s in %s in corso.\n" - -#: action.c:1593 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Collegare %s come %s?" - -#: action.c:1636 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Montaggio di %s in corso.\n" - -#: action.c:1637 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Smontaggio di %s in corso.\n" - -#: action.c:1640 -#, c-format -msgid "?Mount %s?" -msgstr "?Montare %s?" - -#: action.c:1641 -#, c-format -msgid "?Unmount %s?" -msgstr "?Smontare %s?" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Montaggio fallito\n" - -#: action.c:1663 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Smontaggio fallito\n" - -#: action.c:1671 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(ora sembra montato)\n" - -#: action.c:1717 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Totale: %s (" - -#: action.c:1723 -msgid "file" -msgstr "file" - -#: action.c:1723 -msgid "files" -msgstr "file" - -#: action.c:1727 -msgid "no directories)\n" -msgstr "nessuna directory)\n" - -#: action.c:1731 -msgid "directory" -msgstr "directory" - -#: action.c:1732 -msgid "directories" -msgstr "directory" - -#: action.c:1773 -msgid "!No mount points selected!\n" -msgstr "!Nessun punto di montaggio selezionato!\n" - -#: action.c:1858 -msgid "?Another search?" -msgstr "?Un'altra ricerca?" - -#: action.c:1888 action.c:1919 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!«%s» è un collegamento simbolico\n" - -#: action.c:1959 -msgid "You need to select some items to search through" -msgstr "È necessario selezionare alcuni elementi in cui cercare" - -#: action.c:1969 menu.c:228 -msgid "Find" -msgstr "Trova" - -#: action.c:2002 -msgid "You need to select some items to count" -msgstr "È necessario selezionare alcuni elementi da contare" - -#: action.c:2006 -msgid "Disk Usage" -msgstr "Utilizzo disco" - -#: action.c:2042 -msgid "Mount / Unmount" -msgstr "Monta / Smonta" - -#: action.c:2059 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "ROX-Filer non supporta ancora i punti di montaggio su questo sistema." - -#: action.c:2073 menu.c:216 tips:173 -msgid "Delete" -msgstr "Elimina" - -#: action.c:2085 tips:178 -msgid "Force" -msgstr "Forza" - -#: action.c:2085 -msgid "Don't confirm deletion of non-writeable items" -msgstr "" -"Non chiede conferma dell'eliminazione degli elementi protetti da scrittura" - -#: action.c:2088 action.c:2147 action.c:2210 action.c:2283 action.c:2323 -#: tips:180 -msgid "Brief" -msgstr "Breve" - -#: action.c:2088 -msgid "Only log directories being deleted" -msgstr "Elenca solo le directory eliminate" - -#: action.c:2107 -msgid "You need to select the items whose permissions you want to change" -msgstr "È necessario selezionare gli elementi a cui cambiare i permessi" - -#: action.c:2115 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Rende eseguibile/ricercabile)" - -#: action.c:2117 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Rende non eseguibile/non ricercabile)" - -#: action.c:2119 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Permette al proprietario di leggere e scrivere)" - -#: action.c:2121 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privato - accesso solo al proprietario)" - -#: action.c:2123 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Accesso pubblico, ma non in scrittura)" - -#: action.c:2134 menu.c:189 menu.c:226 tips:53 -msgid "Permissions" -msgstr "Permessi" - -#: action.c:2147 action.c:2210 -msgid "Don't list processed files" -msgstr "Non elenca i file elaborati" - -#: action.c:2150 action.c:2213 tips:182 -msgid "Recurse" -msgstr "Ricorsivo" - -#: action.c:2150 -msgid "Also change contents of subdirectories" -msgstr "Cambia anche il contenuto delle sottodirectory" - -#: action.c:2154 -msgid "Command:" -msgstr "Comando:" - -#: action.c:2184 -msgid "You need to select the items whose type you want to change" -msgstr "È necessario selezionare gli elementi a cui cambiare il tipo di MIME" - -#: action.c:2197 -msgid "Set type" -msgstr "Imposta il tipo" - -#: action.c:2213 -msgid "Change contents of subdirectories" -msgstr "Cambia anche il contenuto delle sottodirectory" - -#: action.c:2220 infobox.c:638 -msgid "Type:" -msgstr "Tipo:" - -#: action.c:2267 dnd.c:122 menu.c:2024 tips:167 -msgid "Copy" -msgstr "Copia" - -#: action.c:2279 action.c:2319 tips:184 -msgid "Newer" -msgstr "Più recente" - -#: action.c:2280 action.c:2320 tips:185 -msgid "Only over-write if source is newer than destination." -msgstr "Sovrascrive solo se l'origine è più recente della destinazione." - -#: action.c:2283 -msgid "Only log directories as they are copied" -msgstr "Elenca solo le directory che sono copiate" - -#: action.c:2307 dnd.c:123 tips:169 -msgid "Move" -msgstr "Sposta" - -#: action.c:2323 -msgid "Don't log each file as it is moved" -msgstr "Non elencare ogni file che viene spostato" - -#: action.c:2346 tips:171 -msgid "Link" -msgstr "Collegamento" - -#: action.c:2369 appmenu.c:111 filer.c:646 infobox.c:1051 -msgid "Eject" -msgstr "Espelli" - -#: action.c:2437 -msgid "Deleting items such as " -msgstr "Eliminazione degli elementi come " - -#: action.c:2441 -msgid "Deleting the item " -msgstr "Eliminazione di " - -#: action.c:2443 -msgid "Deleting the items " -msgstr "Eliminazione di " - -#: action.c:2462 -msgid " and " -msgstr " e " - -#: action.c:2471 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" influenzerà alcuni elementi della bacheca o del pannello. Eliminarlo " -"veramente?" - -#: action.c:2478 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" influenzerà alcuni elementi della bacheca o del pannello. Eliminarli " -"veramente?" - -#: appmenu.c:197 -msgid "" -msgstr "" - -#: appmenu.c:319 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"Mettere in questa directory i collegamenti simbolici ai programmi. " -"Appariranno nel menù degli elementi di questo tipo (%s/%s)." - -#: appmenu.c:363 menu.c:239 -msgid "Customise Menu..." -msgstr "Personalizza il menù..." - -#: appmenu.c:420 menu.c:257 toolbar.c:158 -msgid "Help" -msgstr "Aiuto" - -#: bookmarks.c:148 log.c:160 -msgid "Path" -msgstr "Percorso" - -#: bookmarks.c:156 -msgid "Title" -msgstr "Titolo" - -#: bookmarks.c:305 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "Impossibile aggiungere nei segnalibri la risorsa non locale «%s»\n" - -#: bookmarks.c:313 bookmarks.c:631 -#, c-format -msgid "'%s' isn't a directory" -msgstr "«%s» non è una directory" - -#: bookmarks.c:519 -msgid "You should first select some rows to delete" -msgstr "Selezionare prima alcune righe da eliminare" - -#: bookmarks.c:543 -msgid "Put the cursor on an entry in the list to move it" -msgstr "Mettere il cursore su una voce della lista per spostarla" - -#: bookmarks.c:563 -msgid "This item is already at the end" -msgstr "Questo elemento è l'ultimo" - -#: bookmarks.c:637 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "Impossibile aggiungere nei segnalibri directory non locali come «%s»" - -#: bookmarks.c:779 -msgid "Add New Bookmark" -msgstr "Aggiungi un nuovo segnalibro" - -#: bookmarks.c:786 -msgid "Edit Bookmarks" -msgstr "Modifica segnalibri" - -#: bookmarks.c:791 -msgid "Recently Visited" -msgstr "Visitati di recente" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "Rinominazione multipla dei file" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "Azzera" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "Rende la colonna «Nuovo nome» uguale alla colonna «Vecchio nome»" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "_Rinomina" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "Sostituisci:" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"È un'espressione regolare di ricerca.\n" -"^ corrisponde all'inizio del nome\n" -"$ corrisponde alla fine del nome\n" -"\\. corrisponde a un punto\n" -"\\.htm$ corrisponde a «.htm» in «index.html», ecc." - -#: bulk_rename.c:107 -msgid "With:" -msgstr "con:" - -#: bulk_rename.c:114 -msgid "" -"The first match in each filename will be replaced by this string. The only " -"special characters are back-references from \\0 to \\9. To use them " -"literally, they have to be escaped with a backslash." -msgstr "" -"La prima corrispondenza in ciascun nome verrà sostituita da questa stringa. " -"Gli unici caratteri speciali sono i riferimenti da \\0 a \\9. Per usarli, " -"devono essere preceduti dalla barra inversa \\." - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "Applica" - -#: bulk_rename.c:123 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"Fa un «Cerca e sostituisci» nella colonna «Nuovo nome». I file non vengono " -"rinominati fino a quando si clicca sul pulsante «Rinomina» che c'è sotto." - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "Vecchio nome" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "Nuovo nome" - -#: bulk_rename.c:293 -msgid "No strings (in the New column) matched the given expression" -msgstr "" -"Nessuna corrispondenza (nella colonna «Nuovo nome») per l'espressione data" - -#: bulk_rename.c:298 -msgid "One name matched, but the result was the same" -msgstr "Una corrispondenza, ma il risultato era lo stesso" - -#: bulk_rename.c:301 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d nomi corrispondono, ma i risultati erano gli stessi" - -#: bulk_rename.c:327 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "" -"Specificare un'espressione regolare da far corrispondere e una stringa con " -"cui sostituire le corrispondenze." - -#: bulk_rename.c:344 -#, c-format -msgid "%s (for '%s')" -msgstr "%s (per «%s»)" - -#: bulk_rename.c:377 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" -"Un file di nome «%s» esiste già. La rinominazione multipla viene interrotta." - -#: bulk_rename.c:382 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"Rinominazione di «%s» come «%s» fallita:\n" -"%s\n" -"La rinominazione multipla viene interrotta." - -#: bulk_rename.c:444 -#, c-format -msgid "A file called '%s' already exists" -msgstr "Un file di nome «%s» esiste già" - -#: bulk_rename.c:455 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"Alcuni nomi in «Nuovo nome» contengono «/» (es. «%s»). Ciò sposterà i file in " -"altre directory. Continuare?" - -#: bulk_rename.c:470 -msgid "None of the names have changed. Nothing to do!" -msgstr "Nessun nome viene cambiato." - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d directory non possono essere trasferite" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"Choices è stato spostato da\n" -"%s\n" -"alla nuova posizione\n" -"%s\n" -"%s" - -#: dir.c:1041 -#, c-format -msgid "Can't stat directory: %s" -msgstr "Impossibile effettuare stat sulla directory: %s" - -#: dir.c:1050 -#, c-format -msgid "Can't open directory: %s" -msgstr "Impossibile aprire la directory: %s" - -#: display.c:659 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) fallito: %s" - -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Collegamento (relativo)" - -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Collegamento (assoluto)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "Errore interno: tipo di informazione errato" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "Trascinare qui una directory per aggiungerla nei segnalibri." - -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "Errore di protocollo XDS: il nome potrebbe non contenere «/»\n" - -#: dnd.c:603 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"Target XdndDirectSave0 fornito, ma l'atom XdndDirectSave0 (tipo text/plain) " -"non contiene un nome\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "È necessario una destinazione di tipo text/uri-list o XdndDirectSave0." - -#: dnd.c:619 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"È necessario una destinazione di tipo text/uri-list o application/octet-" -"stream." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"Fallita l'aggiunta di alcuni elementi alla bacheca perché sono su una " -"macchina remota. Per esempio:\n" -"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "Destinazione sconosciuta" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "L'applicazione remota non può o non vuole inviare i dati" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "" -"Errore di protocollo XDS: il codice restituito dovrebbe essere «S», «F» o «E»\n" - -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "" -"Non è possibile visualizzare un menù di azioni per un file remoto o di dati " -"raw." - -#: dnd.c:859 -msgid "UntitledData" -msgstr "DatiSenzaNome" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "Errore nel salvare il file: %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "Nessun URI nel text/uri-list (niente da fare)" - -#: dnd.c:991 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"Impossibile ottenere i dati dalla macchina remota (application/octet-stream " -"non fornito)" - -#: dnd.c:1014 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "Alcuni di questi file sono su un'altra macchina e vengono ignorati" - -#: dnd.c:1021 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"Nessuno di questi file si trova sulla macchina locale. Non è possibile " -"operare su file remoti multipli." - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "Azione sconosciuta richiesta" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "Errore nell'ottenere la lista dei file: %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "Mostra" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "Mostra la scelta attuale in una finestra del filer" - -#: dropbox.c:172 -msgid "" -msgstr "" - -#: dropbox.c:237 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"Non è possibile mostrare attualmente l'elemento impostato, perché attualmente " -"non è impostato nulla. Trascinare qualcosa qui sopra." - -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "" -"È necessario trascinare esattamente un file dentro l'area di trascinamento." - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "Non è possibile usare «%s» perché non è un file locale." - -#: dropbox.c:278 pinboard.c:932 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"Impossibile accedere a «%s»:\n" -"%s" - -#: filer.c:461 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"Errore durante la scansione di «%s»:\n" -"%s\n" - -#: filer.c:465 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"Errore durante la scansione di «%s»:\n" -"%s" - -#: filer.c:621 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"Smontare veramente questo device?\n" -"\n" -"Smontare un device rende sicura la rimozione del disco." - -#: filer.c:626 -msgid "Perform the same action in future for this mount point" -msgstr "Esegui la stessa azione in futuro per questo punto di mount" - -#: filer.c:633 -msgid "No change" -msgstr "Nessun cambiamento" - -#: filer.c:639 infobox.c:1049 menu.c:872 -msgid "Unmount" -msgstr "Smonta" - -#: filer.c:743 -msgid "Directory missing/deleted" -msgstr "Directory mancante o eliminata" - -#: filer.c:1107 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"Il gruppo %s non è impostato. Selezionare alcuni file e premere Ctrl+%s per " -"impostare il gruppo. Premere %s sul gruppo per riselezionare i file in " -"seguito.\n" -"Se si usa il tastierino numerico, assucurarsi che NumLock sia acceso." - -#: filer.c:1343 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "La directory «%s» non è accessibile" - -#: filer.c:1495 -#, c-format -msgid "Directory '%s' not found." -msgstr "Directory «%s» non trovata." - -#: filer.c:1795 -msgid "Cancel" -msgstr "Annulla" - -#: filer.c:2076 -msgid "A" -msgstr "T" - -#: filer.c:2078 find.c:923 -msgid "G" -msgstr "F" - -#: filer.c:2083 -msgid "S" -msgstr "S" - -#: filer.c:2085 -msgid "T" -msgstr "M" - -#: filer.c:2095 -msgid "All, " -msgstr "Tutti, " - -#: filer.c:2098 -#, c-format -msgid "Glob (%s), " -msgstr "Filtro (%s), " - -#: filer.c:2106 -msgid "Scanning, " -msgstr "Scansione, " - -#: filer.c:2108 -msgid "Thumbs, " -msgstr "Miniature, " - -#: filer.c:2384 -msgid "Symbolic link to " -msgstr "Collegamento simbolico a " - -#: filer.c:2426 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "" -"Il nome di questo file non è in formato UTF-8 valido. Bisognerebbe " -"rinominarlo.\n" - -#: filer.c:2743 menu.c:2014 -msgid "Item no longer exists!" -msgstr "L'elemento non esiste più." - -#: filer.c:3549 -msgid "Select display properties to save" -msgstr "Selezionare le proprietà di visualizzazione da salvare" - -#: filer.c:3553 -msgid "Save display settings for directory" -msgstr "Salva le impostazioni di visualizzazione per la directory" - -#: filer.c:3560 -msgid "Select settings to save" -msgstr "Seleziona le impostazioni da salvare" - -#: filer.c:3567 -msgid "Position" -msgstr "Posizione" - -#: filer.c:3572 toolbar.c:133 toolbar.c:137 tips:39 -msgid "Size" -msgstr "Dimensioni" - -#: filer.c:3577 -msgid "Show hidden" -msgstr "Mostra nascosti" - -#: filer.c:3583 -msgid "Display style" -msgstr "Stile di visualizzazione" - -#: filer.c:3589 -msgid "Sort type and order" -msgstr "Tipo di ordinamento" - -#: filer.c:3594 toolbar.c:141 -msgid "Details" -msgstr "Dettagli" - -#: filer.c:3599 tips:92 tips:93 -msgid "Thumbnails" -msgstr "Miniature" - -#: filer.c:3605 -msgid "Filter" -msgstr "Filtro" - -#: find.c:485 -msgid "And" -msgstr "And" - -#: find.c:509 -msgid "Not" -msgstr "Not" - -#: find.c:552 -msgid "system" -msgstr "system" - -#: find.c:560 -msgid "prune" -msgstr "prune" - -#: find.c:648 -msgid "After" -msgstr "After" - -#: find.c:650 -msgid "Before" -msgstr "Before" - -#: find.c:744 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:746 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:748 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:750 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:752 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:754 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:756 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:758 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:762 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:768 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:770 -msgid "IsWriteable" -msgstr "IsWriteable" - -#: find.c:772 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:776 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:904 -msgid "Now" -msgstr "Now" - -#: find.c:917 -msgid "Byte" -msgstr "Byte" - -#: find.c:917 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:919 -msgid "Kb" -msgstr "Kb" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mb" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "Sec" -msgstr "Sec" - -#: find.c:925 -msgid "Secs" -msgstr "Secs" - -#: find.c:927 -msgid "Min" -msgstr "Min" - -#: find.c:927 -msgid "Mins" -msgstr "Mins" - -#: find.c:929 -msgid "Hour" -msgstr "Hour" - -#: find.c:929 -msgid "Hours" -msgstr "Hours" - -#: find.c:931 -msgid "Day" -msgstr "Day" - -#: find.c:931 -msgid "Days" -msgstr "Days" - -#: find.c:933 -msgid "Week" -msgstr "Week" - -#: find.c:933 -msgid "Weeks" -msgstr "Weeks" - -#: find.c:935 -msgid "Year" -msgstr "Year" - -#: find.c:935 -msgid "Years" -msgstr "Years" - -#: find.c:944 -msgid "Ago" -msgstr "Ago" - -#: find.c:946 -msgid "Hence" -msgstr "Hence" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "size" - -#: find.c:969 -msgid "inode" -msgstr "inode" - -#: find.c:971 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "blocks" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "Salva come:" - -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "SenzaNome" - -#: gtksavebox.c:471 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"L'applicazione remota vuole usare Direct Save, ma non è possibile leggere la " -"proprietà di XdndDirectSave0 (tipo text/plain).\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"Trascinare l'icona su un visualizzatore di directory\n" -"(o inserire il percorso completo)" - -#: gui_support.c:330 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:399 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"Si prova a leggere un file XML come file di testo. Il file «%s» potrebbe " -"essere danneggiato." - -#: gui_support.c:416 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and try changing something and then changing it back (causing " -"the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"Errore nel file «%s» alla riga %d: \n" -"«%s»\n" -"Può essere dovuto all'aggiornamento da una precedente versione di ROX-Filer. " -"Aprire la finestra «Opzioni» e provare a cambiare qualcosa, poi rimettere " -"tutto come prima (così il file viene risalvato).\n" -"Ulteriori errori verranno ignorati." - -#: gui_support.c:1008 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "Non corretto o a capo mancante nei dati di tipo text/uri-list" - -#: gui_support.c:1341 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "Apertura del file «%s» fallita: %s" - -#: gui_support.c:1385 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"Caricamento dell'immagine «%s» fallito: motivo sconosciuto, probabilmente il " -"file è corrotto." - -#: gui_support.c:1450 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It " -"can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"Questo programma (%s) non può essere eseguito: il comando «0launch» non è " -"disponibile. Lo si può scaricare da qui:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:39 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"È necessario salvare le preferenze e riavviare il filer affinché le nuove " -"impostazioni della lingua abbiano effetto." - -#: icon.c:76 -msgid "(click to set)" -msgstr "(fare clic per impostare)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:132 menu.c:258 -msgid "About ROX-Filer..." -msgstr "Informazioni su ROX-Filer" - -#: icon.c:133 menu.c:259 -msgid "Show Help Files" -msgstr "Mostra i file di aiuto" - -#: icon.c:134 menu.c:260 -msgid "Manual" -msgstr "Manuale" - -#: icon.c:136 menu.c:235 -msgid "Options..." -msgstr "Opzioni" - -#: icon.c:137 menu.c:244 -msgid "Home Directory" -msgstr "Directory home" - -#: icon.c:138 icon.c:1410 menu.c:212 type.c:223 -msgid "File" -msgstr "File" - -#: icon.c:139 menu.c:218 menu.c:885 -msgid "Shift Open" -msgstr "Apri con Shift" - -#: icon.c:140 menu.c:223 -msgid "Properties" -msgstr "Proprietà" - -#: icon.c:141 menu.c:221 -msgid "Set Run Action..." -msgstr "Imposta azione..." - -#: icon.c:142 menu.c:222 -msgid "Set Icon..." -msgstr "Imposta icona..." - -#: icon.c:143 icon.c:867 -msgid "Edit Item" -msgstr "Modifica elemento" - -#: icon.c:144 -msgid "Show Location" -msgstr "Mostra posizione" - -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "Rimuovi elemento" - -#: icon.c:318 log.c:110 menu.c:774 -#, c-format -msgid "%s '%s'" -msgstr "%s «%s»" - -#: icon.c:331 -msgid "Nothing" -msgstr "Nulla" - -#: icon.c:592 -msgid "The location must contain at least one character!" -msgstr "La posizione deve contenere almeno un carattere." - -#: icon.c:657 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "Sbloccare «%s» prima di rimuoverlo." - -#: icon.c:667 -msgid "You must first select some items to remove" -msgstr "Selezionare prima gli elementi da rimuovere" - -#: icon.c:673 -msgid "An item must be unlocked before it can be removed." -msgstr "Un elemento deve essere sbloccato prima di essere rimosso." - -#: icon.c:687 -msgid "You must open the menu over an item" -msgstr "Attivare il menù sopra un elemento" - -#: icon.c:712 menu.c:1285 -msgid "You can only set the run action for a regular file" -msgstr "È possibile impostare l'azione solo per i file regolari" - -#: icon.c:798 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "Digitare la scorciatoia da tastiera desiderata (es. Control+F1)" - -#: icon.c:820 -msgid "Failed to get keyboard grab!" -msgstr "Fallita la cattura della scorciatoia da tastiera." - -#: icon.c:870 -msgid "Clicking the icon opens:" -msgstr "Facendo clic sull'icona viene aperto:" - -#: icon.c:880 -msgid "Arguments to pass (for executables):" -msgstr "Argomenti da passare (per gli eseguibili):" - -#: icon.c:894 -msgid "The text displayed under the icon is:" -msgstr "Il testo visualizzato sotto l'icona è:" - -#: icon.c:907 -msgid "The keyboard shortcut is:" -msgstr "La scorciatoia da tastiera è:" - -#: icon.c:927 -msgid "Locked" -msgstr "Bloccato" - -#: icon.c:932 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "Bloccare un elemento ne previene la rimozione accidentale." - -#: infobox.c:113 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "Aprire veramente %d finestre?" - -#: infobox.c:114 -msgid "Show Info" -msgstr "Mostra le informazioni" - -#: infobox.c:136 menu.c:779 -msgid "(bad utf-8)" -msgstr "(errato utf-8)" - -#: infobox.c:261 -msgid "Show _Help Files" -msgstr "Mostra i file di _aiuto" - -#: infobox.c:274 -msgid "Permissions" -msgstr "Permessi" - -#: infobox.c:292 -msgid "Contents indicate..." -msgstr "Il contenuto sembra essere:" - -#: infobox.c:302 -msgid "When all directories are closed" -msgstr "Quando tutte le directory sono chiuse" - -#: infobox.c:438 infobox.c:579 support.c:349 -msgid "bytes" -msgstr "byte" - -#: infobox.c:461 -msgid "Failed to read size" -msgstr "Fallita la lettura della dimensione" - -#: infobox.c:522 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "«%s» non è più un collegamento simbolico" - -#: infobox.c:529 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"Scollegamento di «%s» fallito:\n" -"%s" - -#: infobox.c:534 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"Fallita la creazione del collegamento simbolico «%s»:\n" -"%s\n" -"(nota: il vecchio collegamento è stato eliminato)" - -#: infobox.c:558 tips:242 -msgid "Error:" -msgstr "Errore:" - -#: infobox.c:565 -msgid "Real directory:" -msgstr "Directory effettiva:" - -#: infobox.c:568 -msgid "Owner, Group:" -msgstr "Proprietario, gruppo:" - -#: infobox.c:575 infobox.c:590 infobox.c:599 -msgid "Size:" -msgstr "Dimensione:" - -#: infobox.c:600 -msgid "Scanning" -msgstr "Scansione in corso." - -#: infobox.c:625 -msgid "Failed to scan" -msgstr "Scansione fallita" - -#: infobox.c:632 -msgid "Change time:" -msgstr "Ultimo cambiamento:" - -#: infobox.c:634 -msgid "Modify time:" -msgstr "Ultima modifica:" - -#: infobox.c:636 -msgid "Access time:" -msgstr "Ultimo accesso:" - -#: infobox.c:644 -msgid "Extended attributes:" -msgstr "Attributi estesi:" - -#: infobox.c:646 -msgid "Present" -msgstr "Presente" - -#: infobox.c:647 -msgid "None" -msgstr "Nessuno" - -#: infobox.c:648 -msgid "Not supported" -msgstr "Non supportato" - -#: infobox.c:660 -msgid "Link target:" -msgstr "Il collegamento punta a:" - -#: infobox.c:672 infobox.c:675 -msgid "Run action:" -msgstr "Azione:" - -#: infobox.c:672 -msgid "Execute file" -msgstr "Esegui file" - -#: infobox.c:784 -msgid "Comment" -msgstr "Commento" - -#: infobox.c:786 -msgid "Execute" -msgstr "Eseguire" - -#: infobox.c:800 -msgid "" -msgstr "" - -#: infobox.c:871 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) dice: %s" - -#: infobox.c:928 -#, c-format -msgid "Could not change permissions: %s" -msgstr "Impossibile cambiare i permessi: %s" - -#: infobox.c:946 -msgid "Owner" -msgstr "Proprietario" - -#: infobox.c:948 -msgid "Group" -msgstr "Gruppo" - -#: infobox.c:950 -msgid "World" -msgstr "Altri" - -#: infobox.c:953 -msgid "Read" -msgstr "Lettura" - -#: infobox.c:956 -msgid "Write" -msgstr "Scrittura" - -#: infobox.c:959 -msgid "Exec" -msgstr "Esecuzione" - -#: infobox.c:977 -msgid "SUID" -msgstr "SUID" - -#: infobox.c:984 -msgid "SGID" -msgstr "SGID" - -#: infobox.c:991 -msgid "Sticky" -msgstr "Sticky" - -#: infobox.c:1047 -msgid "Do nothing" -msgstr "Non fare nulla" - -#: infobox.c:1053 -msgid "Ask" -msgstr "Chiedi" - -#: infobox.c:1065 -msgid "Symbolic link" -msgstr "Collegamento simbolico" - -#: infobox.c:1068 -msgid "ROX application" -msgstr "Applicazione ROX" - -#: infobox.c:1076 -msgid "mounted" -msgstr "montato" - -#: infobox.c:1076 -msgid "unmounted" -msgstr "smontato" - -#: infobox.c:1080 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "Punto di montaggio per %s (%s)" - -#: infobox.c:1083 -#, c-format -msgid "Mount point (%s)" -msgstr "Punto di montaggio (%s)" - -#: log.c:55 -msgid "ROX-Filer started" -msgstr "ROX-Filer avviato" - -#: log.c:112 -#, c-format -msgid "%s on %d items" -msgstr "%s su %d elementi" - -#: log.c:125 -msgid "Item" -msgstr "Elemento" - -#: log.c:149 -msgid "Time" -msgstr "Tempo" - -#: log.c:154 -msgid "Action" -msgstr "Azione" - -#: main.c:95 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright @ 2005 Thomas Leonard.\n" -"ROX-Filer non fornisce ALCUNA GARANZIA,\n" -"nei limiti permessi dalla legge.\n" -"È possibile ridistribuire copie di ROX-Filer\n" -"secondo i termini della GNU General Public License.\n" -"Per ulteriori informazioni, vedere il file COPYING.\n" - -#: main.c:104 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "Usare «ROX-Filer/AppRun --help» per ulteriori informazioni.\n" - -#: main.c:107 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "Usare «ROX-Filer/AppRun -h» per ulteriori informazioni.\n" - -#: main.c:109 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"NOTA: questo sistema non supporta le opzioni lunghe.\n" -"Si devono usare quelle corte.\n" - -#: main.c:115 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Uso: ROX-Filer/AppRun [OPZIONE]... [FILE]...\n" -"Apre ogni directory e file elencato, o l'attuale directory di\n" -"lavoro se non sono forniti argomenti.\n" -"\n" -" -b, --border=PAN\tapre PAN come pannello sul bordo\n" -" -B, --bottom=PAN\tapre PAN come pannello in basso\n" -" -c, --client-id=ID\tusato per gestire le sessioni\n" -" -d, --dir=DIR\t\tapre DIR come directory (non come applicazione)\n" -" -D, --close=DIR\tchiude DIR e le sue sottodirectory\n" -" -h, --help\t\tmostra questo aiuto ed esce\n" -" -l, --left=PAN\tapre PAN come pannello a sinistra\n" -" -m, --mime-type=FILE\tmostra il tipo di MIME di FILE ed esce\n" -" -n, --new\t\tinizia una nuova copia; per il debugging del filer\n" -" -p, --pinboard=PIN\tattiva la bacheca PIN\n" -" -r, --right=PAN\tapre PAN come pannello a destra\n" -" -R, --RPC\t\tinvoca il metodo call read da stdin\n" -" -s, --show=FILE\tapre la directory mostrando FILE\n" -" -S, --rox-session\tusa il pannello e la bacheca definiti in «Opzioni» e " -"l'argomento «-n»\n" -" -t, --top=PAN\t\tapre PAN come pannello in alto\n" -" -u, --user\t\tmostra il nome utente in ogni finestra\n" -" -U, --url=URL\t\tapre file o directory nella forma URI\n" -" -v, --version\t\tmostra le informazioni sulla versione ed esce\n" -" -x, --examine=FILE\tFILE è cambiato e deve essere riesaminato\n" -"\n" -"Segnalare bug a %s.\n" -"Pagina web (con le versioni aggiornate): http://rox.sourceforge.net/\n" - -#: main.c:237 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"È avvenuto un errore di BadWindow dal X server. Potrebbe essere un bug delle " -"GTK (durante il drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Si sta provando a continuare..." - -#: main.c:400 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -"L'argomento -o non è più supportato. Nella finestra «Opzioni» si può decidere " -"di ignorare la redirezione." - -#: main.c:529 -#, c-format -msgid "Running as user '%s'" -msgstr "In esecuzione come utente «%s»" - -#: main.c:690 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "Compilato con GTK versione %s\n" - -#: main.c:691 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "In esecuzione con GTK versione %d.%d.%d\n" - -#: main.c:695 -msgid "features set at compile time" -msgstr "caratteristiche impostate in fase di compilazione" - -#: main.c:696 -msgid "Large File Support" -msgstr "Supporto per file grandi" - -#: main.c:703 -msgid "Inotify support" -msgstr "Supporto a Inotify" - -#: main.c:710 -msgid "Dnotify support" -msgstr "Supporto a Dnotify" - -#: main.c:717 -msgid "Binary compatibility" -msgstr "Compatibilità binaria" - -#: main.c:719 -msgid "Yes (can run with older glibc versions)" -msgstr "Si (si può eseguire con le precedenti versioni di glibc)" - -#: main.c:721 -msgid "No (apsymbols.h not found)" -msgstr "No («apsymbls.h» non trovato)" - -#: main.c:725 -msgid "Extended attribute support" -msgstr "Supporto attributi estesi" - -#: main.c:876 -#, c-format -msgid "Unable to read '%s': %s" -msgstr "Impossibile leggere «%s»: %s" - -#: main.c:918 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"Clic sinistro per eseguire «%s».\n" -"Clic destro per un elenco delle versioni." - -#: menu.c:185 tips:28 -msgid "Display" -msgstr "Visualizza" - -#: menu.c:186 tips:33 -msgid "Icons View" -msgstr "Vista a icone" - -#: menu.c:187 -msgid "Icons, With..." -msgstr "Icone, con..." - -#: menu.c:188 tips:52 -msgid "Sizes" -msgstr "Dimensioni" - -#: menu.c:190 tips:226 -msgid "Types" -msgstr "Tipi" - -#: menu.c:191 tips:55 -msgid "Times" -msgstr "Tempi" - -#: menu.c:192 tips:34 tips:70 -msgid "List View" -msgstr "Vista a lista" - -#: menu.c:194 -msgid "Bigger Icons" -msgstr "Icone enormi" - -#: menu.c:195 -msgid "Smaller Icons" -msgstr "Icone piccole" - -#: menu.c:196 tips:49 -msgid "Automatic" -msgstr "Automatico" - -#: menu.c:198 -msgid "Sort by Name" -msgstr "Ordina per nome" - -#: menu.c:199 -msgid "Sort by Type" -msgstr "Ordina per tipo" - -#: menu.c:200 -msgid "Sort by Date" -msgstr "Ordina per data" - -#: menu.c:201 -msgid "Sort by Size" -msgstr "Ordina per dimensione" - -#: menu.c:202 -msgid "Sort by Owner" -msgstr "Ordina per proprietario" - -#: menu.c:203 -msgid "Sort by Group" -msgstr "Ordina per gruppo" - -#: menu.c:204 -msgid "Reversed" -msgstr "Invertito" - -#: menu.c:206 -msgid "Show Hidden" -msgstr "Mostra nascosti" - -#: menu.c:207 -msgid "Filter Files..." -msgstr "Filtra i file..." - -#: menu.c:208 -msgid "Filter Directories With Files" -msgstr "Filtra le directory con i file" - -#: menu.c:209 -msgid "Show Thumbnails" -msgstr "Mostra miniature" - -#: menu.c:210 -msgid "Refresh" -msgstr "Aggiorna" - -#: menu.c:211 -msgid "Save Current Display Settings..." -msgstr "Salva le attuali impostazioni di visualizzazione..." - -#: menu.c:213 -msgid "Copy..." -msgstr "Copia..." - -#: menu.c:214 -msgid "Rename..." -msgstr "Rinomina..." - -#: menu.c:215 -msgid "Link..." -msgstr "Collegamento..." - -#: menu.c:219 -msgid "Send To..." -msgstr "Invia a..." - -#: menu.c:224 -msgid "Count" -msgstr "Spazio usato" - -#: menu.c:225 -msgid "Set Type..." -msgstr "Tipo di file..." - -#: menu.c:229 toolbar.c:154 -msgid "Select" -msgstr "Seleziona" - -#: menu.c:230 -msgid "Select All" -msgstr "Seleziona tutto" - -#: menu.c:231 -msgid "Clear Selection" -msgstr "Annulla la selezione" - -#: menu.c:232 -msgid "Invert Selection" -msgstr "Inverti la selezione" - -#: menu.c:233 -msgid "Select by Name..." -msgstr "Seleziona per nome..." - -#: menu.c:234 -msgid "Select If..." -msgstr "Seleziona se..." - -#: menu.c:236 -msgid "New" -msgstr "Nuovo" - -#: menu.c:238 -msgid "Blank file" -msgstr "File vuoto" - -#: menu.c:240 tasklist.c:309 -msgid "Window" -msgstr "Finestra" - -#: menu.c:241 -msgid "Parent, New Window" -msgstr "Directory genitore, nuova finestra" - -#: menu.c:242 -msgid "Parent, Same Window" -msgstr "Directory genitore, stessa finestra" - -#: menu.c:243 -msgid "New Window" -msgstr "Nuova finestra" - -#: menu.c:245 -msgid "Show Bookmarks" -msgstr "Mostra i segnalibri" - -#: menu.c:246 -msgid "Show Log" -msgstr "Mostra i log" - -#: menu.c:247 -msgid "Follow Symbolic Links" -msgstr "Segui i collegamenti simbolici" - -#: menu.c:248 -msgid "Resize Window" -msgstr "Ridimensiona finestra" - -#: menu.c:251 -msgid "Close Window" -msgstr "Chiudi finestra" - -#: menu.c:253 -msgid "Enter Path..." -msgstr "Inserisci percorso..." - -#: menu.c:254 -msgid "Shell Command..." -msgstr "Comando shell..." - -#: menu.c:255 -msgid "Terminal Here" -msgstr "Terminale qui" - -#: menu.c:256 -msgid "Switch to Terminal" -msgstr "Scambia con il terminale" - -#: menu.c:725 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "" -"Si deve usare Shift+clic su un file per inviarlo a qualche applicazione" - -#: menu.c:764 -msgid "Next Click" -msgstr "Prossimo clic" - -#: menu.c:786 -#, c-format -msgid "%d items" -msgstr "%d elementi" - -#: menu.c:874 -msgid "Open unmounted" -msgstr "Apri smontato" - -#: menu.c:877 -msgid "Show Target" -msgstr "Mostra destinazione" - -#: menu.c:879 -msgid "Look Inside" -msgstr "Guarda all'interno" - -#: menu.c:881 -msgid "Open As Text" -msgstr "Apri come testo" - -#: menu.c:1052 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"Gli attributi estesi, usati per memorizzare i tipi di file, non sono " -"supportati per questo/i file.\n" -"Ciò potrebbe essere dovuto alla mancanza di supporto da parte del file " -"system o della libreria C, oppure potrebbe semplicemente essere che il file " -"system deve essere montato con la giusta opzione («user_xattr» per Linux)." - -#: menu.c:1058 -msgid "Setting type not supported for some of these files" -msgstr "Impostazione del tipo di file non supportata per alcuni di questi file" - -#: menu.c:1095 -msgid "_Relative link" -msgstr "Collegamento _relativo" - -#: menu.c:1101 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"Se attivato, memorizza il percorso dal collegamento simbolico al file di " -"destinazione. Da usare se il collegamento e la destinazione vengono spostati " -"assieme.\n" -"Se disattivato, memorizza il percorso assoluto. Da usare se il collegamento " -"simbolico viene spostato, ma la destinazione no." - -#: menu.c:1171 -msgid "New pathname is not absolute" -msgstr "Il nuovo percorso non è assoluto" - -#: menu.c:1239 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "" -"Il collegamento simbolico «%s» esiste già. Sostituirlo con uno verso «%s»?" - -#: menu.c:1245 -msgid "_Replace" -msgstr "_Sostituisci" - -#: menu.c:1365 menu.c:1406 menu.c:1468 -msgid "Create" -msgstr "Crea" - -#: menu.c:1366 -msgid "NewDir" -msgstr "NuovaDir" - -#: menu.c:1380 menu.c:1386 -#, c-format -msgid "Error creating '%s': %s" -msgstr "Errore durante la creazione di «%s»: %s" - -#: menu.c:1407 -msgid "NewFile" -msgstr "NuovoFile" - -#: menu.c:1425 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "" -"Errore durante la creazione del file: impossibile trovare il template per %s" - -#: menu.c:1498 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"Il menù «Invia a...» fornisce un modo rapido per inviare i file ad " -"un'applicazione. Le applicazioni elencate sono quelle nelle seguenti " -"directory:\n" -"\n" -"%s\n" -"%s\n" -"Il menù «Invia a...» può essere aperto tenendo premuto «Shift» e facendo clic " -"col tasto destro del mouse.\n" -"Uso avanzato:\n" -"È possibile creare sottodirectory chiamate «.text_html», «.text», che sono " -"mostrate solo per i file di quel tipo. «.group» è mostrata solo quando sono " -"selezionati file multipli." - -#: menu.c:1509 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"Adesso viene mostrata la directory «SendTo»; è possibile creare un " -"collegamento simbolico (Ctrl+Shift trascina) a qualsiasi applicazione." - -#: menu.c:1512 menu.c:1552 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "La variabile CHOICESPATH impedisce personalizzazioni." - -#: menu.c:1545 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"Ogni file della directory «Templates» appare nel menù «Nuovo». Selezionandone " -"uno, viene creato un nuovo file copiandolo da quello selezionato.\n" -"\n" -"Le seguenti directory contengono i template:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1550 -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"Adesso viene mostrata la directory «Templates»: i file template che si " -"desiderano devono essere messi qui dentro." - -#: menu.c:1667 -msgid "Customise" -msgstr "Personalizza" - -#: menu.c:1740 -msgid "This is already the canonical name for this directory." -msgstr "Questo è già il nome canonico di questa directory." - -#: menu.c:1771 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"Impossibile aprire una seconda vista su questa directory perché nella " -"finestra «Opzioni» è attiva l'opzione «Finestre uniche»." - -#: menu.c:1897 -msgid "Copy ... ?" -msgstr "Copia... ?" - -#: menu.c:1900 -msgid "Rename ... ?" -msgstr "Rinomina... ?" - -#: menu.c:1903 -msgid "Symlink ... ?" -msgstr "Collegamento simbolico... ?" - -#: menu.c:1906 -msgid "Shift Open ... ?" -msgstr "Apri con Shift... ?" - -#: menu.c:1909 -msgid "Properties of ... ?" -msgstr "Proprietà di... ?" - -#: menu.c:1912 -msgid "Set type of ... ?" -msgstr "Impostare il tipo di... ?" - -#: menu.c:1915 -msgid "Set run action for ... ?" -msgstr "Impostare l'azione per... ?" - -#: menu.c:1918 -msgid "Set icon for ... ?" -msgstr "Impostare l'icona per... ?" - -#: menu.c:1921 -msgid "Send ... to ... ?" -msgstr "Inviare... a... ?" - -#: menu.c:1924 -msgid "DELETE ... ?" -msgstr "ELIMINARE... ?" - -#: menu.c:1927 -msgid "Count the size of ... ?" -msgstr "Calcolare la dimensione di... ?" - -#: menu.c:1930 -msgid "Set permissions on ... ?" -msgstr "Impostare i permessi per... ?" - -#: menu.c:1933 -msgid "Search inside ... ?" -msgstr "Cercare all'interno... ?" - -#: menu.c:1997 -msgid "You cannot do this to more than one item at a time" -msgstr "Non è possibile fare questo a più di un elemento alla volta" - -#: menu.c:2029 -msgid "Rename" -msgstr "Rinomina" - -#: menu.c:2034 -msgid "Symlink" -msgstr "Collegamento simbolico" - -#: menu.c:2063 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"Le scorciatoie definite dall'utente sono normalmente disattivate in Gtk2 e " -"non andrebbero abilitate. Si possono tuttavia attivare:\n" -"1) usando un manager per XSettings, come ROX-Session o gnome-settings-" -"daemon\n" -"\n" -"2) aggiungendo questa riga in «~/.gtkrc-2.0»:\n" -"\tgtk-can-change-accels = 1\t(funziona solo se NON si usa XSETTINGS)" - -#: menu.c:2074 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"Per impostare le scorciatoie da tastiera per una voce di menù:\n" -"\n" -"- attivare il menù su una finestra del filer\n" -"- mettere il puntatore sopra la voce desiderata\n" -"- digitare il tasto da associare.\n" -"\n" -"Il tasto appare vicino alla voce di menù e da questo momento è possibile " -"premere solo quel tasto anziché attivare il menù." - -#: menu.c:2089 -msgid "Set keyboard shortcuts" -msgstr "Imposta le scorciatoie da tastiera" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Vai a:" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "Shell:" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "Seleziona se:" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "Seleziona per nome:" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "Modello:" - -#: minibuffer.c:265 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"Inserire il nome di un file da visualizzare. Premere «Tab» per avere la " -"migliore corrispondenza, «Esc» per chiudere il minibuffer." - -#: minibuffer.c:271 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"Inserire un comando di shell da eseguire. Fare clic su un file per " -"aggiungerlo nel buffer." - -#: minibuffer.c:276 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"Inserire un modello di nome per selezionare tutti i file che corrispondono:\n" -"\n" -"? significa un qualunque carattere\n" -"* significa zero o più caratteri\n" -"[aA] significa «a» o «A»\n" -"[a-z] significa un qualunque carattere dalla «a» alla «z» (in minuscolo)\n" -"*.png significa un qualunque nome che termina per «.png»" - -#: minibuffer.c:288 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"Inserire un modello per far corrispondere i file da visualizzare. Per " -"disattivare, lasciare vuoto il filtro." - -#: minibuffer.c:908 -msgid "Invalid Find condition" -msgstr "Condizione di ricerca non valida" - -#: mount.c:103 -#, c-format -msgid "File system table \"%s\" not found, cannot monitor system mounts" -msgstr "" -"Tabella dei file system «%s» non trovata. Impossibile monitorare i mount di " -"sistema." - -#: mount.c:393 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s totale, %s usati, %s liberi (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer ha convertito il file delle opzioni nel nuovo formato XML" - -#: options.c:535 options.c:1256 -msgid "(use default)" -msgstr "(usa il valore predefinito)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "Errore interno: %s non leggibile" - -#: options.c:914 -msgid "Options" -msgstr "Opzioni" - -#: options.c:959 -msgid "_Revert" -msgstr "_Ripristina" - -#: options.c:965 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "" -"Rimette le preferenze come erano prima dell'apertura della finestra «Opzioni»." - -#: options.c:980 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"Le preferenze vengono salvate in:\n" -"%s" - -#: options.c:988 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(salvataggio disabilitato da CHOICESPATH)" - -#: options.c:1161 usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "Errore nel salvare %s: %s" - -#: options.c:1793 -msgid "Missing '='" -msgstr "Manca «=»" - -#: panel.c:322 -#, c-format -msgid "Unable to replace '%s'" -msgstr "Impossibile sostituire «%s»" - -#: panel.c:326 -#, c-format -msgid "Unable to save '%s'" -msgstr "Impossibile salvare «%s»" - -#: panel.c:529 -msgid "Your old panel file has been converted to the new XML format." -msgstr "Il file del vecchio pannello è stato convertito nel nuovo formato XML." - -#: panel.c:637 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"Tentativo di chiusura di un pannello attraverso il window manager. " -"Solitamente questo avviene in maniera accidentale: chiuderlo veramente?" - -#: panel.c:738 -msgid "Missing < or > in panel config file" -msgstr "Mancano < o > nel file di configurazione del pannello" - -#: panel.c:1610 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "Errore nel salvare il pannello %s: %s" - -#: panel.c:1925 -msgid "Applet quit without ever creating a widget!" -msgstr "L'applet è terminata senza aver mai creato un widget." - -#: panel.c:2021 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"Errore durante l'esecuzione dell'applet:\n" -"%s" - -#: panel.c:2646 -msgid "Are you sure you want to remove this panel from the desktop?" -msgstr "Rimuovere veramente questo pannello dal desktop?" - -#: panel.c:2649 panel.c:2676 -msgid "Remove Panel" -msgstr "Rimuovi pannello" - -#: panel.c:2672 -msgid "Panel Options..." -msgstr "Opzioni pannello..." - -#: panel.c:2757 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Monitor %d di Xinerama non disponibile" - -#: panel.c:2787 -msgid "Top" -msgstr "In alto" - -#: panel.c:2789 -msgid "Bottom" -msgstr "In basso" - -#: panel.c:2791 -msgid "Left" -msgstr "A sinistra" - -#: panel.c:2793 -msgid "Right" -msgstr "A destra" - -#: panel.c:2795 -msgid "Default" -msgstr "Predefinito" - -#: panel.c:2799 -msgid "Unknown side" -msgstr "Dimensione sconosciuta" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "" -"La vecchia configurazione della bacheca è stata convertita nel nuovo formato " -"XML." - -#: pinboard.c:711 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"Il gestore dello sfondo deve essere una directory applicativa. Trascinare " -"una directory applicativa nella finestra di dialogo «Imposta sfondo», o (per " -"i programmatori) passare al metodo SOAP SetBackdropApp." - -#: pinboard.c:730 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"Impostare come sfondo solo un'immagine o un programma che sa come gestire lo " -"sfondo di ROX-Filer.\n" -"\n" -"Programmatori: l'applicazione AppInfo.xml deve contenere l'elemento " -"CanSetBackdrop, come descritto nel manuale di ROX-Filer." - -#: pinboard.c:750 -msgid "Set backdrop" -msgstr "Imposta sfondo" - -#: pinboard.c:761 -msgid "Choose a style and drag an image in:" -msgstr "Scegliere uno stile e trascinare dentro un'immagine:" - -#: pinboard.c:774 -msgid "Centre the image without scaling it" -msgstr "Centra l'immagine senza ridimensionarla" - -#: pinboard.c:775 -msgid "Centre" -msgstr "Centra" - -#: pinboard.c:776 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "Ridimensiona l'immagine fino a riempire lo sfondo, senza distorcerla" - -#: pinboard.c:778 -msgid "Scale" -msgstr "Scala" - -#: pinboard.c:779 -msgid "" -"Scale the image to fit the backdrop area, regardless of image dimensions - " -"overscale" -msgstr "" -"Ridimensiona l'immagine fino a riempire lo sfondo, incurante delle " -"dimensioni dell'immagine." - -#: pinboard.c:781 -msgid "Fit" -msgstr "Riempi" - -#: pinboard.c:782 -msgid "Stretch the image to fill the backdrop area" -msgstr "Allunga l'immagine fino a riempire lo sfondo" - -#: pinboard.c:783 -msgid "Stretch" -msgstr "Stira" - -#: pinboard.c:784 -msgid "Tile the image over the backdrop area" -msgstr "Ripete l'immagine fino a ricoprire lo sfondo" - -#: pinboard.c:785 -msgid "Tile" -msgstr "Affianca" - -#: pinboard.c:790 -msgid "Drop an image here" -msgstr "Trascinare qui un'immagine" - -#: pinboard.c:851 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"Nessuna bacheca era attiva: è stata selezionata la bacheca «Default». In " -"futuro, digitare «rox -p=Default» per attivarla." - -#: pinboard.c:945 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"Solo i file (e alcune applicazioni) possono essere usati per impostare lo " -"sfondo." - -#: pinboard.c:1602 -msgid "Missing '>' in icon label" -msgstr "Manca «>» nell'etichetta dell'icona" - -#: pinboard.c:1611 -msgid "Missing ',' after icon label" -msgstr "Manca «,» dopo l'etichetta dell'icona" - -#: pinboard.c:1699 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "Errore durante il salvataggio della bacheca %s: %s" - -#: pinboard.c:2244 -msgid "Backdrop..." -msgstr "Sfondo..." - -#: pinboard.c:2247 -msgid "Add Panel" -msgstr "Aggiungi pannello" - -#: pinboard.c:2341 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"Errore durante il caricamento dell'immagine dello sfondo:\n" -"%s\n" -"Sfondo rimosso." - -#: pixmaps.c:969 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"Impossibile eliminare le miniature in %s:\n" -"%s" - -#: pixmaps.c:990 -msgid "There are no thumbnails to delete" -msgstr "Non ci sono miniature da eliminare" - -#: pixmaps.c:1003 -msgid "Purge thumbnails disk cache" -msgstr "Elimina la cache delle miniature" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "Stile «%s» sconosciuto" - -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "Tipo di dettagli «%s» sconosciuto" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "Tipo di ordinamento «%s» sconosciuto" - -#: remote.c:1247 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "È stato invocato un metodo SOAP sconosciuto «%s»" - -#: run.c:99 run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "Programma %s non trovato. È stato eliminato?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "Il file non esiste o non è accessibile: %s" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "Non so come aprire «%s»" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "«%s» non è un URI valido" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "«%s» non è accessibile" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "URL %s non locale" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s: nessun handler per %s" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"Applicazione:\n" -"questa è una directory applicativa, è possibile eseguirla come se fosse un " -"programma o aprirla come una directory (tenendo premuto il tasto «Shift» " -"mentre si tenta di aprirla). Molte applicazioni forniscono qui il loro " -"aiuto, ma questa no." - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "Impossibile inviare dati al programma: %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "Impossibile leggere il collegamento: %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "" -"Collegamento simbolico interrotto (o non ci sono i permessi per seguirlo): %s" - -#: run.c:573 -#, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"Non è stata specificata alcuna azione per i file di questo tipo (%s/%s): " -"impostarne una usando «Imposta azione...» dal menù «File» o trascinare il file " -"su un'applicazione.%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"Nota: se è un programma che si desidera eseguire, è necessario renderlo " -"eseguibile selezionando «Permessi» dal menù «File»." - -#: run.c:753 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"Tutti hanno i permessi di scrittura sull'eseguibile «%s»: non deve essere " -"eseguito! Cambiargli subito i permessi (questo problema può essere stato " -"causato da un bug nelle versioni precedenti del filer).\n" -"\n" -"Avere eseguibili (escluso i collegamenti simbolici) che possono essere " -"modificati da tutti significa che le altre persone che usano il vostro " -"computer possono sostituire i vostri comandi con codice maligno.\n" -"\n" -"Se ci si fida di tutti quelli che possono modificare questi file, allora non " -"bisogna preoccuparsi. Altrimenti, si devono controllare o addirittura " -"eliminare tutti questi eseguibili." - -#: run.c:766 -msgid "go-w (Fix security problem)" -msgstr "go-w (Corregge il problema di sicurezza)" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: support.c:1596 support.c:1650 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "Apertura e stat del file «%s» fallito: %s" - -#: support.c:1607 support.c:1661 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "Mmap del file «%s» fallito: %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "Chiudi" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "Chiude la finestra del filer" - -#: toolbar.c:117 -msgid "Up" -msgstr "Su" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "Va nella directory genitore" - -#: toolbar.c:121 -msgid "Home" -msgstr "Home" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "Va nella directory home" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "Segnalibri" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "Menù segnalibri" - -#: toolbar.c:129 -msgid "Scan" -msgstr "Aggiorna" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "Aggiorna il contenuto della directory" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "Cambia le dimensioni delle icone" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "Modalità di ridimensionamento automatico" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "Mostra dettagli extra" - -#: toolbar.c:145 -msgid "Sort" -msgstr "Ordina" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "Cambia i criteri di ordinamento" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "Nascosti" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"Clic sinistro: mostra/nasconde i file nascosti\n" -"Clic destro: mostra/nasconde le miniature" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "Seleziona tutto/Inverte la selezione" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "Mostra i file di aiuto di ROX-Filer" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u nascosti)" - -#: toolbar.c:229 tips:58 -msgid "items" -msgstr "elementi" - -#: toolbar.c:229 -msgid "item" -msgstr "elemento" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "Nessun elemento%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u selezionati (%s)" - -#: toolbar.c:445 -msgid "Sort by name" -msgstr "Ordina per nome" - -#: toolbar.c:445 -msgid "Sort by type" -msgstr "Ordina per tipo" - -#: toolbar.c:445 -msgid "Sort by date" -msgstr "Ordina per data" - -#: toolbar.c:446 -msgid "Sort by size" -msgstr "Ordina per dimensione" - -#: toolbar.c:446 -msgid "Sort by owner" -msgstr "Ordina per proprietario" - -#: toolbar.c:446 -msgid "Sort by group" -msgstr "Ordina per gruppo" - -#: toolbar.c:480 -msgid "ascending" -msgstr "ascendente" - -#: toolbar.c:480 -msgid "descending" -msgstr "discendente" - -#: type.c:214 -msgid "Sym link" -msgstr "Coll. simb." - -#: type.c:216 -msgid "Mount point" -msgstr "Punto di montaggio" - -#: type.c:218 -msgid "App dir" -msgstr "Dir app" - -#: type.c:225 -msgid "Dir" -msgstr "Dir" - -#: type.c:227 -msgid "Char dev" -msgstr "Char dev" - -#: type.c:229 -msgid "Block dev" -msgstr "Block dev" - -#: type.c:231 -msgid "Pipe" -msgstr "Pipe" - -#: type.c:233 -msgid "Socket" -msgstr "Socket" - -#: type.c:235 -msgid "Door" -msgstr "Door" - -#: type.c:238 -msgid "Unknown" -msgstr "Sconosciuto" - -#: type.c:554 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -"Inserire un comando di shell per caricare «$@» in un programma adatto. Es:\n" -"\n" -"gimp \"$@\"" - -#: type.c:735 -msgid "This is not a program! Give me an application instead!" -msgstr "Questa non è un'applicazione. Specificare un'applicazione." - -#: type.c:795 -msgid "No run action defined" -msgstr "Nessuna azione definita" - -#: type.c:799 -#, c-format -msgid "Error in handler %s: %s" -msgstr "Errore nell'handler %s: %s" - -#: type.c:814 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "Applicazione %s non valida (AppRun errato)" - -#: type.c:825 -#, c-format -msgid "Non-executable %s" -msgstr "%s non eseguibile" - -#: type.c:858 -msgid "Set run action" -msgstr "Imposta azione" - -#: type.c:864 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"Se il gestore di un tipo specifico non è impostato, usa questo come " -"predefinito." - -#: type.c:866 -#, c-format -msgid "Set default for all `%s/'" -msgstr "" -"Impostare come azione predefinita per tutti i file di tipo «%s/»" - -#: type.c:870 -msgid "Use this application for all files with this MIME type." -msgstr "Usa questa applicazione per tutti i file con questo tipo di MIME." - -#: type.c:872 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "Solo per il tipo «%s» (%s/%s)" - -#: type.c:878 -msgid "Drop a suitable application here" -msgstr "Trascinare qui un'applicazione adatta" - -#: type.c:893 -msgid "OR" -msgstr "O" - -#: type.c:900 -msgid "Enter a shell command:" -msgstr "Inserire un comando di shell:" - -#: type.c:929 -msgid "_Use Command" -msgstr "_Usa il comando" - -#: type.c:959 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "Un'azione esiste già ed è un programma. Eliminarla veramente?" - -#: type.c:970 -#, c-format -msgid "Can't remove %s: %s" -msgstr "Impossibile eliminare %s: %s" - -#: type.c:1007 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "" -"Il salvataggio delle preferenze è disabilitato dalla variabile CHOICESPATH" - -#: type.c:1309 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s" -msgstr "" -"Creazione del collegamento simbolico «%s» fallita:\n" -"%s" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "Il percorso specificato non esiste. L'icona non è cambiata." - -#: usericons.c:189 usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"Impossibile caricare l'immagine: è possibile che sia in un formato " -"incomprensibile o che i permessi non siano corretti.\n" -"L'icona non è cambiata." - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "Eliminare veramente l'icona «%s»?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"Impossibile eliminare «%s»:\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "Imposta icona" - -#: usericons.c:281 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "" -"Usa una copia dell'immagine come la predefinita per tutti i file di questo " -"tipo di MIME." - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "Imposta l'icona per tutti i file di tipo «%s/»" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "Usa una copia dell'immagine per tutti i file di questo tipo di MIME." - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "Per tutti i file di tipo «%s» (%s/%s)" - -#: usericons.c:296 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"Aggiunge il file e il nome dell'immagine alla lista personale. " -"L'impostazione viene persa se il file o l'immagine vengono spostati." - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "Solo per il file «%s»" - -#: usericons.c:307 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"Copia l'immagine dentro la directory, con un nome di file nascosto chiamato «." -"DirIcon». Tutti gli utenti vedono l'icona ed è possibile spostare la " -"directory in maniera sicura. Questa è normalmente la migliore opzione se è " -"possibile scrivere nella directory." - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "Copiare l'immagine nella directory" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "Trascinare qui un'icona" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr "Impostazione icona disabilitata dalla variabile CHOICESPATH" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"Errore durante la creazione dell'immagine «%s»:\n" -"%s" - -#: view_details.c:957 -msgid "Mono font" -msgstr "Font mono" - -#: view_details.c:958 -msgid "Font for displaying mono-spaced text" -msgstr "" -"Tipo di carattere da usare per visualizzare il testo a spaziatura fissa" - -#: view_details.c:1059 -msgid "_Name" -msgstr "_Nome" - -#: view_details.c:1062 -msgid "_Type" -msgstr "_Tipo" - -#: view_details.c:1065 -msgid "_Permissions" -msgstr "_Permessi" - -#: view_details.c:1070 -msgid "_Owner" -msgstr "Proprietari_o" - -#: view_details.c:1072 -msgid "_Group" -msgstr "_Gruppo" - -#: view_details.c:1074 -msgid "_Size" -msgstr "Dimen_sioni" - -#: view_details.c:1080 -msgid "Last _Modified" -msgstr "Ultima _modifica" - -#: tips:1 -msgid "Filer windows" -msgstr "Finestre del filer" - -#: tips:2 -msgid "Auto-resize filer windows" -msgstr "Ridimensionamento automatico delle finestre" - -#: tips:3 -msgid "Never automatically resize" -msgstr "Non ridimensionare mai automaticamente le finestre" - -#: tips:4 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"Le finestre vengono ridimensionate manualmente, usando il window manager, la " -"voce «Ridimensiona finestra» del menù o facendo doppio clic sullo sfondo " -"della finestra." - -#: tips:5 -msgid "Resize when changing the display style" -msgstr "Ridimensionare al cambio dello stile di visualizzazione" - -#: tips:6 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"Cambiando le dimensioni delle icone o i dettagli da visualizzare, la " -"finestra viene ridimensionata." - -#: tips:7 -msgid "Always resize" -msgstr "Ridimensionare sempre" - -#: tips:8 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"Il filer ridimensiona la finestra ogni volta che lo ritiene utile (cambiando " -"directory o stile di visualizzazione)." - -#: tips:9 -msgid "Largest window size:" -msgstr "Larghezza massima della finestra:" - -#: tips:10 -msgid "%" -msgstr "%" - -#: tips:11 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"La dimensione massima, come percentuale dello schermo, a cui la finestra sarà ridimensionata." - -#: tips:12 -msgid "Window behaviour" -msgstr "Comportamento delle finestre" - -#: tips:13 -msgid "Short titlebar flags" -msgstr "Flag corti nella barra del titolo" - -#: tips:14 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"Usa una sola lettera al posto delle parole «Scansione», «Tutti» e «Miniature» " -"nella barra del titolo." - -#: tips:15 -msgid "Unique windows" -msgstr "Finestre uniche" - -#: tips:16 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"Se si apre una directory che è già stata aperta in un'altra finestra, questa " -"opzione fa chiudere la finestra vecchia." - -#: tips:17 -msgid "New window on button 1" -msgstr "Nuova finestra con il pulsante 1" - -#: tips:18 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"Facendo clic con il pulsante 1 del mouse (solitamente quello sinistro) viene " -"aperta la directory in una nuova finestra. Facendo clic con il pulsante 2 " -"(quello centrale) viene invece usata la finestra corrente." - -#: tips:19 -msgid "Single-click navigation" -msgstr "Navigazione a singolo clic" - -#: tips:20 tips:116 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"Se attivata, un singolo clic su un elemento lo apre. Tenere premuto «Ctrl» per " -"selezionarlo. Se disattivata, un singolo clic seleziona l'elemento, mentre " -"un doppio clic lo apre." - -#: tips:21 -msgid "Double-click on background resizes" -msgstr "Ridimensionare con un doppio clic sullo sfondo" - -#: tips:22 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"Se attivata, un doppio clic sullo sfondo della finestra la ridimesiona, come " -"accade facendo clic sul pulsante «Modalità di ridimensionamento automatico» " -"della barra degli strumenti." - -#: tips:23 -msgid "Sorting" -msgstr "Ordinamento" - -#: tips:24 -msgid "Directories come first (for sort by name)" -msgstr "Le directory vengono sempre prima (ordinate per nome)" - -#: tips:25 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "" -"Se attivata, durante l'ordinamento per nome le directory vengono prima di " -"ogni altra cosa." - -#: tips:26 -msgid "Capitalised names first (for sort by name)" -msgstr "I nomi maiuscoli prima (nell'ordinamento per nome)" - -#: tips:27 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"Se attivata, tutti i file che iniziano per lettera maiuscola vengono prima " -"di quelli che iniziano per lettera minuscola." - -#: tips:29 -msgid "Default settings for new windows" -msgstr "Impostazioni predefinite per le nuove finestre" - -#: tips:30 -msgid "Inherit options from source window" -msgstr "Ereditare le opzioni dalla finestra d'origine" - -#: tips:31 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"Se attivata, le opzioni di visualizzazione per una nuova finestra vengono " -"ereditate dalla finestra da cui è stata generata, altrimenti vengono usate " -"le impostazioni predefinite (vedere sotto)." - -#: tips:32 -msgid "View type:" -msgstr "Tipo di vista:" - -#: tips:35 -msgid "Sort by:" -msgstr "Ordina per:" - -#: tips:37 tips:54 -msgid "Type" -msgstr "Tipo" - -#: tips:38 -msgid "Date" -msgstr "Data" - -#: tips:40 -msgid "Show hidden files" -msgstr "Mostrare i file nascosti" - -#: tips:41 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"Se attivata, anche i file i cui nomi iniziano per punto («.») vengono " -"mostrati, altrimenti rimangono nascosti." - -#: tips:42 -msgid "Show extended attribute indicator" -msgstr "Mostra l'indicatore di attributi estesi" - -#: tips:43 -msgid "" -"If this is on then files which have one or more extended attributes set will " -"have an emblem added to indicate this." -msgstr "" -"Se attivata, i file che hanno uno o più set di attributi estesi avranno un " -"simbolo aggiunto per indicare questo." - -#: tips:44 -msgid "Icon View" -msgstr "Vista a icone" - -#: tips:45 -msgid "Default size:" -msgstr "Dimensioni predefinite:" - -#: tips:46 -msgid "Huge Icons" -msgstr "Icone enormi" - -#: tips:47 tips:217 -msgid "Large Icons" -msgstr "Icone grandi" - -#: tips:48 tips:216 -msgid "Small Icons" -msgstr "Icone piccole" - -#: tips:50 -msgid "Default details:" -msgstr "Dettagli predefiniti:" - -#: tips:51 -msgid "No details" -msgstr "Nessun dettaglio" - -#: tips:56 -msgid "Automatic small icons:" -msgstr "Icone automaticamente piccole:" - -#: tips:57 -msgid "Change at:" -msgstr "Cambiare con:" - -#: tips:59 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"Quando è selezionato il ridimensionamento automatico delle icone: se la " -"directory contiene molti elementi allora sono usate le icone piccole, " -"altrimenti quelle grandi." - -#: tips:60 -msgid "Max width (Large icons):" -msgstr "Larghezza massima (icone grandi):" - -#: tips:61 tips:64 -msgid "pixels" -msgstr "pixel" - -#: tips:62 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"Nella visualizzazione con icone grandi, il testo più largo del numero di " -"pixel specificati viene spezzato su due righe. Con le icone enormi, il testo " -"viene spezzato se supera del 50% questo limite." - -#: tips:63 -msgid "(Small Icons):" -msgstr "(icone piccole):" - -#: tips:65 -msgid "Maximum width for the text beside a Small Icon." -msgstr "Larghezza massima per il testo accanto alle icone piccole." - -#: tips:66 -msgid "Order small icons vertically" -msgstr "Ordinare verticalmente le icone piccole" - -#: tips:67 -msgid "" -"If this option is on, then small icons are arranged in columns, not rows." -msgstr "" -"Se attivata, le icone piccole vengono ordinate in colonne, non in righe." - -#: tips:68 -msgid "Order large icons vertically" -msgstr "Ordinare verticalmente le icone grandi" - -#: tips:69 -msgid "" -"If this option is on, then large icons are arranged in columns, not rows." -msgstr "" -"Se attivata, le icone grandi vengono ordinate in colonne, non in righe." - -#: tips:71 -msgid "Show column headings" -msgstr "Mostrare le intestazioni delle colonne" - -#: tips:72 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"Se attivata, le intestazioni delle colonne sono mostrate nella vista a lista." - -#: tips:73 -msgid "Show full type" -msgstr "Descrizione completa del tipo" - -#: tips:74 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" -"Se attivata, viene mostrata la descrizione completa del tipo di oggetto " -"invece di una breve." - -#: tips:75 -msgid "Tools/Minibuffer" -msgstr "Strumenti/Minibuffer" - -#: tips:76 -msgid "Toolbar" -msgstr "Barra degli strumenti" - -#: tips:77 -msgid "Toolbar type:" -msgstr "Tipo di barra degli strumenti:" - -#: tips:78 -msgid "No toolbar" -msgstr "Nessuna" - -#: tips:79 -msgid "Icons only" -msgstr "Solo icone" - -#: tips:80 -msgid "Text under icons" -msgstr "Testo sotto le icone" - -#: tips:81 -msgid "Text beside icons" -msgstr "Testo accanto alle icone" - -#: tips:82 -msgid "Show totals of items" -msgstr "Mostrare il numero di elementi" - -#: tips:83 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"Mostra il numero di elementi visualizzati nella finestra del filer e, se ce " -"ne sono, il numero di quelli nascosti. Quando c'è una selezione, mostra il " -"numero di elementi selezionati e la loro dimensione." - -#: tips:84 -msgid "Select the buttons you want on the bar:" -msgstr "Selezionare i pulsanti da mettere sulla barra:" - -#: tips:85 -msgid "Width of toolbar sets minimum width of window" -msgstr "La barra degli strumenti imposta la larghezza minima della finestra" - -#: tips:86 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"Ciascuna finestra del filer è obbligata a essere larga abbastanza da " -"mostrare l'intera barra degli strumenti" - -#: tips:87 -msgid "Minibuffer" -msgstr "Minibuffer" - -#: tips:88 -msgid "Beep if Tab-completion fails" -msgstr "Segnale acustico se il completamento con il «Tab» fallisce" - -#: tips:89 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"Quando viene usato «Inserisci percorso...» e viene premuto il tasto «Tab», " -"viene emesso un segnale acustico per avvisare che non è accaduto niente (es. " -"perché ci sono diverse possibilità al variare della lettera successiva)." - -#: tips:90 -msgid "Beep if there are several matches" -msgstr "Segnale acustico se esistono più corrispondenze" - -#: tips:91 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"Quando viene usato «Inserisci percorso...» e viene premuto il tasto «Tab», " -"viene emesso un segnale acustico per avvisare che c'è più di una " -"corrispondenza, perfino se più lettere sono state aggiunte." - -#: tips:94 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"Se le miniature sono state attivate, in una directory ogni immagine viene caricata " -"e viene mostrata una sua piccola miniatura." - -#: tips:95 -msgid "Show image thumbnails" -msgstr "Mostrare le miniature delle immagini" - -#: tips:96 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"Questa è l'impostazione predefinita per le nuove finestre. Usare il menù " -"«Visualizza» per attivare e disattivare le miniature per le finestre " -"individuali." - -#: tips:97 -msgid "Video thumbnails" -msgstr "Miniature dei video" - -#: tips:98 -msgid "Thumbnails cache" -msgstr "Cache delle miniature" - -#: tips:99 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"Per rendere tutto più veloce, le miniature generate sono memorizzate nella " -"directory nascosta «~/.thumbnails». Fare clic qui per rimuovere tutte le " -"miniature in cache. Saranno create ancora se ce ne sarà bisogno." - -#: tips:100 -msgid "Manage thumbnails" -msgstr "Gestione miniature" - -#: tips:101 tips:158 -msgid "Pinboard" -msgstr "Bacheca" - -#: tips:102 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"Se si attiva la bacheca, è possibile trascinare file e applicazioni sul " -"desktop per creare scorciatoie." - -#: tips:103 tips:213 -msgid "Appearance" -msgstr "Aspetto" - -#: tips:104 -msgid "Foreground:" -msgstr "Primo piano:" - -#: tips:105 -msgid "Text shadow:" -msgstr "Ombra del testo:" - -#: tips:106 -msgid "Background:" -msgstr "Sfondo:" - -#: tips:107 -msgid "No shadow" -msgstr "Nessuna ombra" - -#: tips:108 -msgid "Thin" -msgstr "Sottile" - -#: tips:109 -msgid "Thick" -msgstr "Spessa" - -#: tips:110 -msgid "Use custom font:" -msgstr "Usare il carattere personalizzato:" - -#: tips:111 -msgid "The font used for the text displayed under the icons" -msgstr "Il carattere usato per visualizzare il testo sotto le icone" - -#: tips:112 -msgid "Fast scaling of images" -msgstr "Scalare velocemente le immagini" - -#: tips:113 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"Sceglie tra il metodo veloce e lento per scalare le immagini. Quello lento " -"dà risultati migliori." - -#: tips:114 -msgid "Pinboard behaviour" -msgstr "Comportamento bacheca" - -#: tips:115 -msgid "Single-click to open" -msgstr "Singolo clic per aprire" - -#: tips:117 -msgid "Keep icons within screen limits" -msgstr "Mantenere le icone dentro i limiti dello schermo" - -#: tips:118 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"Se attivata, le icone della bacheca e le loro etichette sono sempre tenute " -"completamente all'interno dello schermo." - -#: tips:119 -msgid "Icon grid step:" -msgstr "Passo griglia:" - -#: tips:120 -msgid "Fine" -msgstr "Sottile" - -#: tips:121 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "Usa una griglia di 2 pixel per posizionare le icone sul desktop." - -#: tips:122 -msgid "Medium" -msgstr "Medio" - -#: tips:123 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "Usa una griglia di 16 pixel per posizionare le icone sul desktop." - -#: tips:124 -msgid "Coarse" -msgstr "Grosso" - -#: tips:125 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "Usa una griglia di 32 pixel per posizionare le icone sul desktop." - -#: tips:126 tips:128 -msgid "Iconified windows" -msgstr "Finestre ridotte ad icona" - -#: tips:127 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"La maggior parte dei window manager permette di ridurre a icona (o " -"«minimizzare») le finestre. Vari programmi, incluso ROX-Filer, possono essere " -"usati per visualizzare le finestre ridotte a icona." - -#: tips:129 -msgid "Show iconified windows" -msgstr "Mostrare le finestre ridotte ad icona" - -#: tips:130 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"Se attivata, il filer mostra sulla bacheca ogni finestra ridotta a icona " -"come un pulsante. Richiede un window manager compatibile e la bacheca deve " -"essere attiva." - -#: tips:131 -msgid "Show per workspace" -msgstr "Area di lavoro attuale" - -#: tips:132 -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"Se attivata, il filer mostra sulla bacheca solo le finestre ridotte a icona " -"dell'attuale area di lavoro." - -#: tips:133 -msgid "Iconify to the" -msgstr "Ridurre ad icona in" - -#: tips:134 -msgid "top-left" -msgstr "alto a sinistra" - -#: tips:135 -msgid "top-right" -msgstr "alto a destra" - -#: tips:136 -msgid "bottom-left" -msgstr "basso a sinistra" - -#: tips:137 -msgid "bottom-right" -msgstr "basso a destra" - -#: tips:138 -msgid ", going" -msgstr ", con andamento" - -#: tips:139 -msgid "horizontally" -msgstr "orizzontale" - -#: tips:140 -msgid "vertically" -msgstr "verticale" - -#: tips:141 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"A volte il filer non sa come è fatto il desktop e mette le finestre ridotte " -"a icona, per esempio, sotto il pannello di Gnome. È possibile definire un " -"margine in alto e uno in basso in modo da evitare di mettere lì le icone. Il " -"filer conosce già le dimensioni dei suoi pannelli." - -#: tips:142 -msgid "Top margin" -msgstr "Margine in alto" - -#: tips:143 -msgid "Height of no-go area at top of screen." -msgstr "Altezza dell'area vietata dall'alto dello schermo." - -#: tips:144 -msgid "Bottom margin" -msgstr "Margine in basso" - -#: tips:145 -msgid "Height of no-go area at bottom of screen." -msgstr "Altezza dell'area vietata dal basso dello schermo." - -#: tips:146 -msgid "Left margin" -msgstr "Margine a sinistra" - -#: tips:147 -msgid "Width of no-go area at left of screen." -msgstr "Larghezza dell'area vietata dalla sinistra dello schermo." - -#: tips:148 -msgid "Right margin" -msgstr "Margine a destra" - -#: tips:149 -msgid "Width of no-go area at right of screen." -msgstr "Larghezza·dell'area·vietata·dalla·destra·dello·schermo." - -#: tips:150 -msgid "Desktop" -msgstr "Desktop" - -#: tips:151 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" -"Quando viene eseguito da un manager di sessione (come ROX-Session), il filer " -"può aprire un pannello e/o una bacheca. Qui si configura questo." - -#: tips:152 -msgid "Panel only" -msgstr "Solo il pannello" - -#: tips:153 -msgid "Only a panel is shown." -msgstr "Viene mostrato solo un pannello" - -#: tips:154 -msgid "Pinboard only" -msgstr "Solo la bacheca" - -#: tips:155 -msgid "Only the pinboard is shown." -msgstr "Viene mostrata solo la bacheca." - -#: tips:156 -msgid "Panel and pinboard" -msgstr "Pannello e bacheca" - -#: tips:157 -msgid "Both a panel and a pinboard are shown." -msgstr "Viene mostrato sia il pannello che la bacheca." - -#: tips:159 -msgid "Enter the name of the pinboard to show here." -msgstr "Inserire qui il nome della bacheca da usare." - -#: tips:160 -msgid "Panel (obsolete)" -msgstr "Pannello (obsoleto)" - -#: tips:161 -msgid "" -"Enter the name of the panel to show here. This option is now only used when " -"upgrading from an old version." -msgstr "" -"Inserire il nome del pannello da mostrare. Questa opzione è ora usata solo " -"durante l'aggiornamento da una versione precendente." - -#: tips:162 -msgid "Changes here take effect the next time the filer is run." -msgstr "Le modifiche avranno effetto al prossimo riavvio del filer." - -#: tips:163 -msgid "" -"The session manager activates these options by using the -S or --rox-session " -"argument to rox." -msgstr "" -"Il manager di sessione attiva queste opzioni passando a rox l'argomento «-S» " -"o «--rox-session»." - -#: tips:164 -msgid "Action windows" -msgstr "Finestre d'azione" - -#: tips:165 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"Le finestre d'azione appaiono quando inizia un'operazione in background,\n" -"come la copia o l'eliminazione dei file." - -#: tips:166 -msgid "Auto-start (Quiet) these actions" -msgstr "Eseguire automaticamente queste azioni" - -#: tips:168 -msgid "Copy files without confirming first." -msgstr "Copia i file senza chiedere conferma." - -#: tips:170 -msgid "Move files without confirming first." -msgstr "Sposta i file senza chiedere conferma." - -#: tips:172 -msgid "Create links to files without confirming first." -msgstr "Crea i collegamenti senza chiedere conferma." - -#: tips:174 -msgid "Delete files without confirming first." -msgstr "Elimina i file senza chiedere conferma." - -#: tips:175 -msgid "Mount" -msgstr "Monta" - -#: tips:176 -msgid "Mount and unmount filesystems without confirming first." -msgstr "Monta e smonta i file system senza chiedere conferma." - -#: tips:177 -msgid "Default settings" -msgstr "Impostazioni predefinite" - -#: tips:179 -msgid "Don't confirm deletion of non-writeable items." -msgstr "" -"Non chiede conferma dell'eliminazione di elementi protetti da scrittura." - -#: tips:181 -msgid "Don't display so much information in the message area." -msgstr "Non visualizza troppe informazioni nell'area messaggi." - -#: tips:183 -msgid "Also change contents of subdirectories." -msgstr "Cambia anche il contenuto delle sottodirectory." - -#: tips:186 -msgid "Mount commands" -msgstr "Comandi per montare e smontare" - -#: tips:187 -msgid "Mount command" -msgstr "Comando di mount" - -#: tips:188 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "" -"Il comando usato per montare un file system. Gli insicuri usino «mount»." - -#: tips:189 -msgid "Unmount command" -msgstr "Comando di umount" - -#: tips:190 -msgid "" -"The command used to unmount a filesystem. If unsure, use \"umount\" (yes, " -"without the first \"n\")." -msgstr "" -"Il comando usato per smontare un file system. Gli insicuri usino «umount»." - -#: tips:191 -msgid "Eject command" -msgstr "Comando di espulsione" - -#: tips:192 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "" -"Il comando usato per espellere un media removibile. Gli insicuri usino " -"«eject»." - -#: tips:193 -msgid "Drag and Drop" -msgstr "Trascinamento" - -#: tips:194 -msgid "Dragging to icons" -msgstr "Trascinamento icone" - -#: tips:195 -msgid "Allow dragging to icons in filer windows" -msgstr "Permettere il trascinamento delle icone del filer" - -#: tips:196 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"Se attivata, è possibile trascinare un file sopra una sottodirectory o un " -"programma in una finestra del filer. L'elemento viene evidenziato e " -"rilasciandolo viene messo in quella directory, oppure viene caricato dal " -"programma scelto." - -#: tips:197 -msgid "Directories spring open" -msgstr "Apertura automatica directory" - -#: tips:198 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"Questa opzione, che per funzionare richiede anche l'opzione qui sopra, " -"attiva l'apertura automatica della directory dopo che il file viene " -"mantenuto sopra l'icona per un breve periodo di tempo." - -#: tips:199 -msgid "Spring delay:" -msgstr "Ritardo apertura automatica:" - -#: tips:200 -msgid "ms" -msgstr "ms" - -#: tips:201 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"Questa opzione imposta per quanto tempo, in ms, si deve tenere un file sopra " -"una directory prima che questa venga aperta automaticamente. Per avere " -"effetto, deve essere stata attivata anche l'opzione sopra." - -#: tips:202 -msgid "When dragging files with the left mouse button" -msgstr "Quando si trascinano i file con il pulsante sinistro del mouse" - -#: tips:203 tips:207 -msgid "Show a menu of possible actions" -msgstr "Mostrare un menù di azioni possibili" - -#: tips:204 -msgid "Copy the files" -msgstr "Copiare i file" - -#: tips:205 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"Notare che è ancora possibile far apparire il menù, trascinando e tenendo " -"premuto il tasto «Alt»." - -#: tips:206 -msgid "When dragging files with the middle mouse button" -msgstr "Quando si trascinano i file con il pulsante centrale del mouse" - -#: tips:208 -msgid "Move the files" -msgstr "Spostare i file" - -#: tips:209 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"Notare che è ancora possibile far apparire il menù, trascinando i file con " -"il pulsante sinistro e tenendo premuto il tasto «Alt»." - -#: tips:210 -msgid "Download handler" -msgstr "Gestore degli scaricamenti" - -#: tips:211 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"Quando si trascina un file da un browser web o da un'altra sorgente remota, " -"per scaricarlo viene eseguito questo programma. $1 è l'URI trascinato sul " -"filer e la directory attuale è la destinazione. Es:\n" -"xterm -e wget $1" - -#: tips:212 -msgid "Menus" -msgstr "Menù" - -#: tips:214 -msgid "Size of icons in menus:" -msgstr "Dimensione delle icone nei menù:" - -#: tips:215 -msgid "No Icons" -msgstr "Nessuna icona" - -#: tips:218 -msgid "Same as current window" -msgstr "Le stesse della finestra attuale" - -#: tips:219 -msgid "Same as default" -msgstr "Quelle predefinite" - -#: tips:220 -msgid "Behaviour" -msgstr "Comportamento" - -#: tips:221 -msgid "File menu on right-click" -msgstr "Menù file col clic destro" - -#: tips:222 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"Mostra il menù «File» invece del menù principale col clic destro dei file " -"selezionati (per avere il menù principale tenere premuto il tasto «Ctrl»)." - -#: tips:223 -msgid "Terminal emulator program" -msgstr "Programma di emulatore terminale" - -#: tips:224 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "" -"Il programma da lanciare quando si sceglie dal menù la voce «Terminale qui»." - -#: tips:225 -msgid "Keyboard shortcuts" -msgstr "Scorciatoie da tastiera" - -#: tips:227 -msgid "MIME types" -msgstr "Tipi di MIME" - -#: tips:228 -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"Il filer usa una serie di regole per stabilire il corretto tipo di MIME per " -"ogni file regolare e poi sceglie un'icona adatta per quel tipo." - -#: tips:229 -msgid "Edit MIME rules" -msgstr "Modifica regole MIME" - -#: tips:230 -msgid "Themes" -msgstr "Temi" - -#: tips:231 -msgid "Icon theme" -msgstr "Tema icone" - -#: tips:232 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "I temi vanno messi nella directory «~/.icons»." - -#: tips:233 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"Usare la finestra di dialogo «Imposta icona...» per impostare l'icona di ogni " -"tipo di MIME. Notare che le icone definite in questo modo prevalgono su " -"quelle del tema selezionato." - -#: tips:234 -msgid "Colours" -msgstr "Colori" - -#: tips:235 -msgid "File type colours" -msgstr "Colori per i tipi di file" - -#: tips:236 -msgid "Colour files based on their types" -msgstr "Colorare i file in base al tipo" - -#: tips:237 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "" -"I nomi dei file (e i dettagli) vengono colorati in base al tipo di file." - -#: tips:238 -msgid "Directory:" -msgstr "Directory:" - -#: tips:239 -msgid "Regular file:" -msgstr "File regolare:" - -#: tips:240 -msgid "Pipe:" -msgstr "Pipe:" - -#: tips:241 -msgid "Socket:" -msgstr "Socket:" - -#: tips:243 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"Errore, come un collegamento simbolico che punta ad un file inesistente, o " -"ad un file per il quale non si hanno i permessi." - -#: tips:244 -msgid "Character device:" -msgstr "Device a caratteri:" - -#: tips:245 -msgid "Block device:" -msgstr "Device a blocchi:" - -#: tips:246 -msgid "Door:" -msgstr "Door:" - -#: tips:247 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"I file door sono simili a socket o pipe e sono utilizzati solo in Solaris." - -#: tips:248 -msgid "Executable file:" -msgstr "File eseguibile:" - -#: tips:249 -msgid "Application directory:" -msgstr "Directory applicativa:" - -#: tips:250 -msgid "Unknown type:" -msgstr "Tipo sconosciuto:" - -#: tips:251 -msgid "Compatibility" -msgstr "Compatibilità" - -#: tips:252 -msgid "Window manager problems" -msgstr "Problemi del window manager" - -#: tips:253 -msgid "Override window manager control of the pinboard and panels" -msgstr "Ignorare il controllo del window manager sulla bacheca e sui pannelli" - -#: tips:254 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"Alcuni window manager non supportano il nuovo sistema di suggerimenti estesi " -"e così trattano la bacheca e i pannelli come semplici finestre. Attivare " -"questa opzione per risolvere problemi come la bacheca che viene davanti " -"quando ci si fa clic sopra, le barre dei titoli e le altre decorazioni " -"attorno alle finestre, o se queste appaiono nell'elenco delle finestre." - -#: tips:255 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "Inviare al window manager tutti i clic del mouse fatti sullo sfondo" - -#: tips:256 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"Normalmente, facendo clic sul desktop col tasto destro del mouse si attiva " -"il menù della bacheca e facendo clic col tasto sinistro si annulla la " -"selezione. Attivare questa opzione per inviare gli eventi al window manager. " -"I clic sulle icone non vengono inviati." - -#: tips:257 -msgid "Blackbox root menus hack" -msgstr "Compatibilità con Blackbox" - -#: tips:258 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox e altri window manager simili non funzionano ancora " -"correttamente con la bacheca di ROX-Filer. Questa opzione abilita una " -"soluzione al problema. Ci si aspetta che questi window manager cambino " -"comportamento nella prossima versione e così questa opzione non sarà più " -"necessaria." - -#: tips:259 -msgid "Panel is a 'dock'" -msgstr "Il pannello è un \"dock\"" - -#: tips:260 -msgid "" -"Makes sure panels stay against screen edges. Disable this option if the " -"panel stays above other windows against your wishes. Requires a restart to " -"take effect." -msgstr "" -"Assicura che i pannelli stìano contro i bordi dello schermo. Disabilitare " -"questa opzione se non si desidera che il pannello stìa sopra le altre " -"finestre. Per avere effetto, richiede un riavvio." - -#: tips:261 -msgid "Panel stays on top" -msgstr "Il pannello sta in alto" - -#: tips:262 -msgid "" -"Keeps the panel above other windows. Enable this option to make sure the " -"dock option works correctly in some versions of compiz. May require a " -"restart to take effect." -msgstr "" -"Tiene il pannello sopra le altre finestre. Abilitare questa opzione per " -"assicurarsi che l'opzione \"dock\" funzioni correttamente con alcune " -"versioni di compiz. Per avere effetto, potrebbe richiedere un riavvio." - -#: tips:263 -msgid "Drag and drop" -msgstr "Trascinamento" - -#: tips:264 -msgid "Don't use hostnames" -msgstr "Non usare i nomi di rete" - -#: tips:265 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"Alcune vecchie applicazioni non supportano completamente XDND e possono aver " -"bisogno di questa opzione. Usarla se il trascinamento dei file su " -"un'applicazione mostra il segno + sul puntatore, ma non funziona." - -#: tips:266 -msgid "Extended attributes" -msgstr "Attributi estesi" - -#: tips:267 -msgid "Don't use extended attributes" -msgstr "Non usare gli attributi estesi" - -#: tips:268 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"Disabilita l'uso degli attributi estesi disponibili nei nuovi sistemi " -"operativi e nei nuovi file system. Se questa opzione è attiva, la voce di " -"menù «Tipo di file...» viene disabilitata, il tipo di MIME del file viene " -"dedotto solo dal nome del file e la finestra «Proprietà» non riporta gli " -"attributi estesi." - -#: ../Templates.glade:7 -msgid "ROX-Filer log viewer" -msgstr "Visualizzatore dei log di ROX-Filer" - -#: ../Templates.glade:22 -msgid "Recently performed actions..." -msgstr "Azioni eseguite recentemente..." - -#: ../Templates.glade:77 -msgid "Open Directory" -msgstr "Apri directory" - -#: ../Templates.glade:129 -msgid "Panel Options" -msgstr "Opzioni pannello" - -#: ../Templates.glade:169 -msgid "Every icon on this panel is shown with an image and some text." -msgstr "" -"Ogni icona di questo pannello è visualizzata con un'immagine e del testo." - -#: ../Templates.glade:170 -msgid "Image and Text" -msgstr "Immagine e testo" - -#: ../Templates.glade:186 -msgid "" -"Applications in this panel have just an image, everything else has both an " -"image and text." -msgstr "" -"Le applicazioni in questo pannello hanno solo un'immagine, tutto il resto ha " -"sia l'immagine che il testo." - -#: ../Templates.glade:187 -msgid "Image only for applications" -msgstr "Solo icone per le applicazioni" - -#: ../Templates.glade:205 -msgid "Only the image is shown for icons in this panel." -msgstr "Per le icone di questo pannello viene mostrata solo l'immagine." - -#: ../Templates.glade:206 -msgid "Image only" -msgstr "Solo immagine" - -#: ../Templates.glade:235 -msgid "Panel width" -msgstr "Larghezza del pannello" - -#: ../Templates.glade:247 -msgid "The size of this panel." -msgstr "La dimensione di questo pannello." - -#: ../Templates.glade:259 -msgid "px" -msgstr "px" - -#: ../Templates.glade:278 -msgid "" -"Ask the window manager not to cover this panel when maximising windows, " -"otherwise leave just 2 pixels at the edge of the screen to allow auto-" -"raising. Some window managers may not honour this setting." -msgstr "" -"Chiede al window manager di non coprire questo pannello quando le finestre " -"sono massimizzate. Se disattivato, il filer chiede di lasciare scoperti un " -"paio di pixel dal bordo dello schermo, in modo da permettere il sollevamento " -"automatico. Alcuni window manager potrebbero non rispettare questa " -"impostazione." - -#: ../Templates.glade:279 -msgid "Do not cover panel" -msgstr "Non coprire il pannello" - -#: ../Templates.glade:297 -msgid "Panel style" -msgstr "Stile del pannello" - -#: ../Templates.glade:331 -msgid "" -"If you use multiple monitors with Xinerama, use this option to confine the " -"panel to one monitor." -msgstr "" -"Se si usano più monitor con Xinerama, usare questa opzione per limitare il " -"pannello a un monitor." - -#: ../Templates.glade:332 -msgid "Confine to Xinerama monitor" -msgstr "Limitare il monitor di Xinerama" - -#: ../Templates.glade:347 -msgid "" -"The monitor this panel is confined to when using Xinerama. The numbering " -"starts from zero." -msgstr "" -"Questo pannello è limitato nella modalità Xinerama. Il conteggio inizia da 0." - -#: ../Templates.glade:372 -msgid "Xinerama" -msgstr "Xinerama" - -#: ../Templates.glade:407 -msgid "Right edge" -msgstr "A destra" - -#: ../Templates.glade:426 -msgid "Left edge" -msgstr "A sinistra" - -#: ../Templates.glade:443 -msgid "Bottom edge" -msgstr "In basso" - -#: ../Templates.glade:462 -msgid "Top edge" -msgstr "In alto" - -#: ../Templates.glade:496 -msgid "Position" -msgstr "Posizione" diff --git a/ROX-Filer/src/po/ja.po b/ROX-Filer/src/po/ja.po deleted file mode 100644 index c39828ca..00000000 --- a/ROX-Filer/src/po/ja.po +++ /dev/null @@ -1,4928 +0,0 @@ -# ROX-Filer-2.x Japanese Translation -# Copyright (C) 2005 - 2011 team OKATANA -# team OKATANA: KATO Masashi, TANAKA hiroaki -# -# team OKATANA <>, 2009. -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.11\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2011-10-12 01:33+0900\n" -"PO-Revision-Date: 2011-10-12 01:30+0900\n" -"Last-Translator: team OKATANA " -"<>\n" -"Language-Team: Japanese team OKATANA \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: abox.c:125 -msgid "" -msgstr "" - -#: abox.c:218 -msgid "_Quiet" -msgstr "確認しない(_Q)" - -#: abox.c:227 -msgid "Quiet" -msgstr "確認しない" - -#: abox.c:227 -msgid "Don't confirm every operation" -msgstr "操作ごとに確認を求めません" - -#: abox.c:454 infobox.c:792 tips:36 -msgid "Name" -msgstr "名前" - -#: abox.c:460 menu.c:237 -msgid "Directory" -msgstr "ディレクトリ" - -#: abox.c:549 -msgid "Expression:" -msgstr "検索式:" - -#: action.c:57 -msgid "See the attr(5) man page for full details." -msgstr "詳細は attr の man page (5)をご覧下さい。" - -#: action.c:59 -msgid "See the fsattr(5) man page for full details." -msgstr "詳細は fsattr の man page (5)をご覧下さい。" - -#: action.c:61 -msgid "You do not appear to have OS support." -msgstr "OS にサポートされていないようです。" - -#: action.c:191 -msgid "Find expression reference" -msgstr "検索式 リファレンス" - -#: action.c:202 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"概略\n" -"検索する文字(検索対象名)は ''(シングルクォート)でくくってください:\n" -"'index.html' ('' 無しで index.html とだけ入力するとエラーになりま" -"す) \n" -"\n" -"'[ir]*.html' ('i' か 'r' で始まる名前の HTML ファイル)\n" -"'*.svg','*.png' (拡張子が 'svg' か 'png' の画像ファイル ※1)\n" -"IsDir 'lib' ('lib' というディレクトリ)\n" -"-d '*s*' (名前に 's' を含むディレクトリ)\n" -"not -r -f 's*' (名前が 's' から始まる読み込み属性のないファイ" -"ル)\n" -"IsReg 'core' ('core' という名前の通常(IsReg)ファイル)\n" -"! (IsDir, IsReg) (ディレクトリと通常ファイル以外のファイル)\n" -"mtime after 1 day ago and size > 1Mb\n" -" (変更日時一日前以降、かつファイルサイズ 1MB 未満 ※2)\n" -"'CVS' prune, isreg ('CVS' ディレクトリ以外の通常ファイル ※3)\n" -"'b*' prune, '*.txt' ('b' で始まる名前のディレクトリ以外の *.txt ※4)\n" -"IsReg system(grep -q fred \"%\")\n" -" ('fred' という語句を含む通常ファイル " -"※5), \n" -"単純テスト\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (ファイルタイプ)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable (パー" -"ミッション)\n" -"IsEmpty, IsMine\n" -"(シェルコマンドで使われる以下のテスト式も使用可能です。)\n" -" '-f' '-l' '-d' '-c' '-b' '-D' '-p' '-S' '-O'\n" -" '-u' '-g' '-k' '-r' '-w' '-x' '-z' '-o' " -"\n" -"シングルクォート内には、シェルのワイルドカードを含むパターンを書きます。\n" -"パターンがスラッシュを含んでいる場合、フルパス以外には一致しません。\n" -"それ以外は、パス名を含まないパターンと見做されま" -"す。 \n" -"比較 → ※2\n" -"<, <=, =, !=, >, >=, After, Before (二値の比較)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (ファイルサイズ)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (日時)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(値) \n" -"特殊機能\n" -"system: syatem(commandline)\n" -" (commandline の終了ステータスが 0 の場合、commandline に含まれる '%' " -"は、\n" -" パターンにマッチしたファイル名に置き換えられます。→ ※5)\n" -"prune : 'DIR' prune, 'ptrn'\n" -" ('DIR' にマッチするディレクトリ以外から 'ptrn' を検索します。→ ※3,4)\n" -"And (検索式の AND 条件結合。 式1 and 式2 は、両式が共に成立する\n" -" 検索対象のみに一致します → ※2\n" -", (検索式の OR 条件結合。 式1,式2 は、両式いずれか、又は両方\n" -" が成立する検索対象に一致します → ※1\n" -"Not (又は !) (直後の検索式の否定。 not 式 は、式の意味を反転します。" - -#: action.c:249 -msgid "Change permissions reference" -msgstr "パーミッション変更 リファレンス" - -#: action.c:260 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"通常は、メニュー(command box の横の矢印をクリック)からコマンドを\n" -"撰択できます。より、きめ細かい操作が必要な場合には...\n" -"\n" -"コマンドの書式:CHANGE, CHANGE, ...\n" -"各'CHANGE'の書式:WHO HOW PERMISSIONS\n" -"WHO はユーザ(所有者)、グループ、他人、の許可属性を変更する\n" -"べきかを決める ugo の、一つ以上を組み合せた文字で" -"す。\n" -"HOW+, -, = のいずれか。許可属性を追加、削除、" -"同等、にします。\n" -"PERMISSIONS は 'rwxXstugo'の内、一つ以上の文字の組合せです\n" -"\n" -"※ ( )内の文、及び空白は無視されます。\n" -"\n" -":\n" -"u+rw\t(ファイル所有者の読み書きを許可します)\n" -"g=u \t(グループの許可属性を、所有者のものと同じにします)\n" -"o=u-w \t(他人の許可属性を、所有者のもの同様とし、書き込のみ不許可\n" -"の属性とします)\n" -"a+x\t(全員の実行属性を許可します - 'ugo+x' とおなじです)\n" -"a+X\t(ディレクトリの場合は全員アクセス可能; ファイルの場合は、誰か\n" -"の実行属性が付いていれば、全員実行可能となります)\n" -"u+rw, go+r\t(二つの変更を同時に)\n" -"u+s\t(SetUID を有効にする - script ファイルに対しては殆ど無効です)\n" -"755\t\t(許可属性値を、直接指定します)\n" -"\n" -"※詳細は chmod(1) man page を見て下さい。" - -#: action.c:301 -msgid "Set type reference" -msgstr "MIME形式設定リファレンス" - -#: action.c:312 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"普通は、ROX-Filer は、通常ファイルのタイプを、ファイル名のパターンに\n" -"よって決定します。\n" -"ファイルタイプを変更するためにはリネームする必要があります。\n" -"\n" -"より新しいファイルシステムは、'パラメーター'という名のファイル毎の追\n" -"加属性データを格納する、「拡張属性」と呼ばれるものをサポート可能です。\n" -"ROX-File は、ファイルタイプを格納するために 'user.mime_type' を使用\n" -"します。\n" -"\n" -"これらのファイルタイプは、ファイルシステム、OS がその機能を実装し\n" -"ている場合に限り、ディレクトリー、デバイス、パイプ等ではなく、通常\n" -"ファイルに対してのみサポートされます。\n" -"\n" - -#: action.c:419 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"プロセスが完了しました\n" - -#: action.c:435 -msgid "There was one error.\n" -msgstr "1 個のエラーが発生しました。\n" - -#: action.c:437 -#, c-format -msgid "There were %d errors.\n" -msgstr "%d 個のエラーが発生しました。\n" - -#: action.c:461 -msgid "ERROR reading" -msgstr "読み込みエラー" - -#: action.c:504 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"完了\n" - -#: action.c:560 support.c:395 -msgid "ERROR" -msgstr "エラー" - -#: action.c:714 main.c:702 main.c:709 main.c:716 main.c:730 -msgid "Yes" -msgstr "はい" - -#: action.c:717 main.c:704 main.c:711 main.c:718 main.c:730 -msgid "No" -msgstr "いいえ" - -#: action.c:735 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"子プロセス終了処理中...\n" - -#: action.c:742 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"暴走プロセス終了を試行中...\n" - -#: action.c:895 -#, c-format -msgid "?Count contents of %s?" -msgstr "?%s の内容を数えますか?" - -#: action.c:931 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?%s'%s' を削除しますか?" - -#: action.c:932 -msgid "WRITE-PROTECTED " -msgstr "書き込み禁止です" - -#: action.c:939 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "''%s' を削除中\n" - -#: action.c:952 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'ディレクトリ '%s' を削除しました\n" - -#: action.c:985 -#, c-format -msgid "?Eject '%s'?" -msgstr "?'%s' をイジェクトしますか?" - -#: action.c:992 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'%s' をイジェクト'\n" - -#: action.c:1011 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"イジェクトに失敗しました\n" - -#: action.c:1030 action.c:1049 -#, c-format -msgid "?Check '%s'?" -msgstr "?'%s' を調べますか?" - -#: action.c:1046 -msgid "!Invalid find condition - change it and try again\n" -msgstr "! 無効な検索条件です。条件を変更し再試行してください\n" - -#: action.c:1056 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'('%s' を検索中)\n" - -#: action.c:1130 action.c:1155 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?'%s' のパーミッションを変更しますか?" - -#: action.c:1136 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "''%s' のパーミッションを変更中\n" - -#: action.c:1153 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!無効なモードコマンドです - 設定を変更して再試行してください\n" - -#: action.c:1211 -#, c-format -msgid "?Change contents of '%s'?" -msgstr "?'%s' の項目を変更しますか?" - -#: action.c:1214 action.c:1234 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?'%s' のMIME形式を変更しますか?" - -#: action.c:1231 -msgid "!Invalid type - change it and try again\n" -msgstr "!無効なMIME形式です - 設定を変更して再試行してください\n" - -#: action.c:1253 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'MIME形式 '%s' を '%s' に変更中'\n" - -#: action.c:1276 -#, c-format -msgid "'Not changing type of directory '%s'\n" -msgstr "ディレクトリ '%s' の MIME形式を変更しません'\n" - -#: action.c:1282 -#, c-format -msgid "'Non-regular file '%s' not changed\n" -msgstr "通常ファイルでない '%s' は変更されません\n" - -#: action.c:1342 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' は既に存在しています - %sしますか?" - -#: action.c:1344 -msgid "merge contents" -msgstr "内容を結合" - -#: action.c:1345 -msgid "overwrite" -msgstr "上書き" - -#: action.c:1361 -msgid "'Trying copy anyway...\n" -msgstr "'とにかくコピーする...\n" - -#: action.c:1370 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?%s を %s としてコピーしますか?" - -#: action.c:1374 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "'?%s を %sとしてコピー中\n" - -#: action.c:1389 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!エラー: 対象が既に存在しますが、ディレクトリではありません\n" - -#: action.c:1461 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"'%s'の コピーに失敗\n" - -#: action.c:1505 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s'は既に存在します - 上書きしますか?" - -#: action.c:1520 -msgid "'Trying move anyway...\n" -msgstr "'とにかく移動します...\n" - -#: action.c:1528 -#, c-format -msgid "?Move %s as %s?" -msgstr "? %s から %s に置き換え(移動/リネーム)しますか?" - -#: action.c:1532 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'%s を %s として移動中\n" - -#: action.c:1540 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"%s を %s として移動するのに失敗\n" - -#: action.c:1561 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!エラー: コピー元へのコピーは出来ません\n" - -#: action.c:1576 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!エラー: 元ファイルへの移動/リネームはできません\n" - -#: action.c:1588 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'%s にリンク %s を作成中\n" - -#: action.c:1593 -#, c-format -msgid "?Link %s as %s?" -msgstr "? %s へのリンク %s を作成しますか?" - -#: action.c:1636 -#, c-format -msgid "'Mounting %s\n" -msgstr "'%s をマウント中\n" - -#: action.c:1637 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'%s をアンマウント中\n" - -#: action.c:1640 -#, c-format -msgid "?Mount %s?" -msgstr "?%s をマウントしますか?" - -#: action.c:1641 -#, c-format -msgid "?Unmount %s?" -msgstr "?%s をアンマウントしますか?" - -#: action.c:1662 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"マウント失敗\n" - -#: action.c:1663 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"アンマウント失敗\n" - -#: action.c:1671 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(マウントされているようです)\n" - -#: action.c:1717 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"合計: %s (" - -#: action.c:1723 -msgid "file" -msgstr "ファイル" - -#: action.c:1723 -msgid "files" -msgstr "ファイル" - -#: action.c:1727 -msgid "no directories)\n" -msgstr "ディレクトリが有りません)\n" - -#: action.c:1731 -msgid "directory" -msgstr "ディレクトリ" - -#: action.c:1732 -msgid "directories" -msgstr "ディレクトリ" - -#: action.c:1773 -msgid "!No mount points selected!\n" -msgstr "!マウントポイントが選択されていません!\n" - -#: action.c:1858 -msgid "?Another search?" -msgstr "?他を検索?" - -#: action.c:1888 action.c:1919 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' はシンボリックリンクです\n" - -#: action.c:1959 -msgid "You need to select some items to search through" -msgstr "検索するアイテムを選んでください" - -#: action.c:1969 menu.c:228 -msgid "Find" -msgstr "検索" - -#: action.c:2002 -msgid "You need to select some items to count" -msgstr "計算対象(複数可)を指定してください" - -#: action.c:2006 -msgid "Disk Usage" -msgstr "ディスク使用量" - -#: action.c:2042 -msgid "Mount / Unmount" -msgstr "マウント/アンマウント" - -#: action.c:2059 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "ROX-Filer はこのマウントポイントをサポートできていません。ごめん!" - -#: action.c:2073 menu.c:216 tips:173 -msgid "Delete" -msgstr "削除" - -#: action.c:2085 tips:178 -msgid "Force" -msgstr "強行" - -#: action.c:2085 -msgid "Don't confirm deletion of non-writeable items" -msgstr "書き込み禁止アイテムの削除を確認しません" - -#: action.c:2088 action.c:2147 action.c:2210 action.c:2283 action.c:2323 -#: tips:180 -msgid "Brief" -msgstr "簡略" - -#: action.c:2088 -msgid "Only log directories being deleted" -msgstr "ディレクトリを削除するときのみログを表示します" - -#: action.c:2107 -msgid "You need to select the items whose permissions you want to change" -msgstr "パーミッション変更対象(複数可))を選択してください" - -#: action.c:2115 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (実行可能/検索可能属性を付加)" - -#: action.c:2117 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (実行可能/検索可能属性を削除)" - -#: action.c:2119 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (所有者の読み書きを許可)" - -#: action.c:2121 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (個人用 - 所有者のみアクセス可)" - -#: action.c:2123 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (所有者の属性から書込み権を除き、グループ、他人の属性に)" - -#: action.c:2134 menu.c:189 menu.c:226 tips:53 -msgid "Permissions" -msgstr "パーミッション" - -#: action.c:2147 action.c:2210 -msgid "Don't list processed files" -msgstr "作業中のファイルを表示しません" - -#: action.c:2150 action.c:2213 tips:182 -msgid "Recurse" -msgstr "再帰" - -#: action.c:2150 -msgid "Also change contents of subdirectories" -msgstr "サブディレクトリ以下の内容も変更します" - -#: action.c:2154 -msgid "Command:" -msgstr "コマンド:" - -#: action.c:2184 -msgid "You need to select the items whose type you want to change" -msgstr "パーミッション変更対象(複数可))を選択してください" - -#: action.c:2197 -msgid "Set type" -msgstr "MIME形式設定" - -#: action.c:2213 -msgid "Change contents of subdirectories" -msgstr "サブディレクトリ以下の内容も変更します" - -#: action.c:2220 infobox.c:648 -msgid "Type:" -msgstr "種類:" - -#: action.c:2267 dnd.c:122 menu.c:2024 tips:167 -msgid "Copy" -msgstr "コピー" - -#: action.c:2279 action.c:2319 tips:184 -msgid "Newer" -msgstr "新しいとき" - -#: action.c:2280 action.c:2320 tips:185 -msgid "Only over-write if source is newer than destination." -msgstr "対象より新しいときだけ上書きします" - -#: action.c:2283 -msgid "Only log directories as they are copied" -msgstr "ディレクトリをコピーするときのみログを表示します" - -#: action.c:2307 dnd.c:123 tips:169 -msgid "Move" -msgstr "移動" - -#: action.c:2323 -msgid "Don't log each file as it is moved" -msgstr "各ファイルの移動時にログを表示しません" - -#: action.c:2346 tips:171 -msgid "Link" -msgstr "リンク" - -#: action.c:2369 appmenu.c:111 filer.c:646 infobox.c:1061 -msgid "Eject" -msgstr "イジェクト" - -#: action.c:2437 -msgid "Deleting items such as " -msgstr "以下のアイテムを削除 " - -#: action.c:2441 -msgid "Deleting the item " -msgstr "アイテムを削除中 " - -#: action.c:2443 -msgid "Deleting the items " -msgstr "アイテムを削除中 " - -#: action.c:2462 -msgid " and " -msgstr " and " - -#: action.c:2471 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr " ピンボードやパネルのアイテムに影響します - それでも削除しますか?" - -#: action.c:2478 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr " ピンボードやパネルのアイテムに影響します - それでも削除しますか?" - -#: appmenu.c:197 -msgid "" -msgstr "<見当たらないラベル>" - -#: appmenu.c:319 -#, c-format -msgid "" -"Symlink any programs you want into this directory. They will appear in the " -"menu for all items of this type (%s/%s)." -msgstr "" -"このディレクトリに指定アイテムを開くプログラムの Symlink を置いて下さい。それ" -"らは同形式 (%s/%s) アイテムを指定して開かれたメニューの先頭に専用メニューとし" -"て追加されます" - -#: appmenu.c:363 menu.c:239 -msgid "Customise Menu..." -msgstr "メニューをカスタマイズ..." - -#: appmenu.c:420 menu.c:257 toolbar.c:158 -msgid "Help" -msgstr "ヘルプ" - -#: bookmarks.c:148 log.c:161 -msgid "Path" -msgstr "パス" - -#: bookmarks.c:156 -msgid "Title" -msgstr "タイトル" - -#: bookmarks.c:305 -#, c-format -msgid "Can't bookmark non-local resource '%s'\n" -msgstr "'%s' はローカルに存在しないのでブックマークできません。\n" - -#: bookmarks.c:313 bookmarks.c:631 -#, c-format -msgid "'%s' isn't a directory" -msgstr "'%s' はディレクトリではありません" - -#: bookmarks.c:519 -msgid "You should first select some rows to delete" -msgstr "まず削除する項目を選んでください" - -#: bookmarks.c:543 -msgid "Put the cursor on an entry in the list to move it" -msgstr "移動するにはリストの項目にカーソルを置いてください" - -#: bookmarks.c:563 -msgid "This item is already at the end" -msgstr "これ以上移動できません" - -#: bookmarks.c:637 -#, c-format -msgid "Can't bookmark non-local directories like '%s'" -msgstr "'%s' はローカルディレクトリではないのでブックマークできません。" - -#: bookmarks.c:779 -msgid "Add New Bookmark" -msgstr "ブックマークに追加" - -#: bookmarks.c:786 -msgid "Edit Bookmarks" -msgstr "ブックマークの管理" - -#: bookmarks.c:791 -msgid "Recently Visited" -msgstr "最近開いたディレクトリ" - -#: bulk_rename.c:66 -msgid "Bulk rename files" -msgstr "複数ファイルリネーム" - -#: bulk_rename.c:69 -msgid "Reset" -msgstr "戻す" - -#: bulk_rename.c:74 -msgid "Make the New column a copy of Old" -msgstr "'新しい名前'欄を最初の状態に戻します" - -#: bulk_rename.c:79 -msgid "_Rename" -msgstr "リネーム(_R)" - -#: bulk_rename.c:92 -msgid "Replace:" -msgstr "リネーム対象:" - -#: bulk_rename.c:99 -msgid "" -"This is a regular expression to search for.\n" -"^ matches the start of a filename\n" -"$ matches the end\n" -"\\. matches a dot\n" -"\\.htm$ matches the '.htm' in 'index.htm', etc" -msgstr "" -"各'新しい名前'中の、変更したい部分を指定します。\n" -"(文字列パターンとして、正規表現も使用できます)\n" -"以下のパターンの例は、'新しい名前' の該当部分を指定します。\n" -"abc 文字列 abc\n" -"^ 名前の先頭\n" -"$ 名前の末尾\n" -"\\. '.'(ドット)\n" -"[0-9] 一桁の数字\n" -"\\.html$ index.html、content.html などの末尾の '.html'\n" -"[a-zA-Z]{2}_[0-9] ab_01.txt の 'ab_0' や cde_5.jpg の 'de_5'\n" -"(※正規表現に関しては、jman 7 regex などをご覧ください)" - -#: bulk_rename.c:107 -msgid "With:" -msgstr "置換文字列:" - -#: bulk_rename.c:114 -msgid "" -"The first match in each filename will be replaced by this string. The only " -"special characters are back-references from \\0 to \\9. To use them " -"literally, they have to be escaped with a backslash." -msgstr "" -"'リネーム対象' に一致する '新しい名前' の最初の該当箇所が、\n" -"この欄の文字列に置き換えられます。\n" -" (この欄では正規表現の \\0 〜 \\9 よる後方参照が可能です。\n" -" \\2 は 'リネーム対象'パターン中の、()によりグループ化され\n" -" た表現の、2番目のグループに一致する文字列を指定します)\n" -"後方参照の例:\n" -"1.リネーム対象: ([0-9])-([0-9])\n" -" 置換文字列: DE\\2\\1 \n" -" 適用結果: abc5-39.txt → abcDE359.txt\n" -"'-' で区切られた二つの数字に、最初に一致する部分 →\n" -"'-' を省き、数字の前後を入れ替え、'DE'を前に付加\n" -"2.リネーム対象:\n" -" ([0-9][0-9])(_)([0-1][0-9])(_)([0-3][0-9])(\\.)(.+)\n" -" 置換文字列: 平成21年\\3月\\5日\\6log\n" -" 適用結果: 09_05_09.txt → 平成21年05月09日.log\n" -" 西暦表記風の名前 → 元号表記風にし、拡張子を log に変更\n" -"※先頭へのパスの付加で、同ファイルシステム内の移動も可能。" - -#: bulk_rename.c:120 -msgid "Apply" -msgstr "適用" - -#: bulk_rename.c:123 -msgid "" -"Do a search-and-replace in the New column. The files are not actually " -"renamed until you click on the Rename button below." -msgstr "" -"'新しい名前' の、'リネーム対象' のパターンに一致する部分\n" -"を、'置換文字列' に置き換えます\n" -"'新しい名前' に一致する指定パターンが有る内は、何度でも\n" -"[適用]を実行できます\n" -"[リネーム]を押すまでは実際のリネームは実行されません。\n" -"[戻す]を押せば、最初からやり直せます。\n" -"[リネーム]を押すと '古い名前' の '新しい名前' へのリネー\n" -"ムを実行し、このダイアログを閉じます。" - -#: bulk_rename.c:142 -msgid "Old name" -msgstr "古い名前" - -#: bulk_rename.c:151 -msgid "New name" -msgstr "新しい名前" - -#: bulk_rename.c:293 -msgid "No strings (in the New column) matched the given expression" -msgstr "" -"('新しい名前'欄には)リネーム対象欄の正規表現にマッチする文字列はありません" - -#: bulk_rename.c:298 -msgid "One name matched, but the result was the same" -msgstr "1 個のアイテムがパターンに一致しますが、変更の前後が同じです" - -#: bulk_rename.c:301 -#, c-format -msgid "%d names matched, but the results were all the same" -msgstr "%d 個のアイテムがパターンに一致しますが、変更の前後が同じです" - -#: bulk_rename.c:327 -msgid "" -"Specify a regular expression to match, and a string to replace matches with." -msgstr "変換対象に一致する正規表現と、置き換える文字列を指定して下さい" - -#: bulk_rename.c:344 -#, c-format -msgid "%s (for '%s')" -msgstr "%s ('%s' において)" - -#: bulk_rename.c:377 -#, c-format -msgid "A file called '%s' already exists. Aborting bulk rename." -msgstr "" -"'%s' という名前のファイルは既に存在します。複数ファイルリネームは中断します。" - -#: bulk_rename.c:382 -#, c-format -msgid "" -"Failed to rename '%s' as '%s':\n" -"%s\n" -"Aborting bulk rename." -msgstr "" -"'%s'の'%s'としてのリネームに失敗:\n" -"%s\n" -"複数ファイルリネームを中断します。" - -#: bulk_rename.c:444 -#, c-format -msgid "A file called '%s' already exists" -msgstr "'%s' は既に存在しています。" - -#: bulk_rename.c:455 -#, c-format -msgid "" -"Some of the New names contain / characters (eg '%s'). This will cause the " -"files to end up in different directories. Continue?" -msgstr "" -"いくつかの'新しい名前'の中に / が含まれています (例えば '%s')。これは、ファ" -"イルが別のディレクトリに置かれることを意味しますが、処理を続けますか?" - -#: bulk_rename.c:470 -msgid "None of the names have changed. Nothing to do!" -msgstr "いずれの名前も変更されませんでした。なにも行いませんでした。" - -#: choices.c:434 -#, c-format -msgid "%d directories could not be migrated" -msgstr "%d 個のディレクトリは移動できませんでした" - -#: choices.c:436 -#, c-format -msgid "" -"Choices have been moved from \n" -"%s\n" -" to the new location \n" -"%s\n" -"%s" -msgstr "" -"Choices(貴方の既存の設定)は \n" -"%s から \n" -"%s\n" -"に移動されました\n" -"%s" - -#: dir.c:1041 -#, c-format -msgid "Can't stat directory: %s" -msgstr "ディレクトリの情報が得られません: %s" - -#: dir.c:1050 -#, c-format -msgid "Can't open directory: %s" -msgstr "ディレクトリを開けません: %s" - -#: display.c:659 -#, c-format -msgid "lstat(2) failed: %s" -msgstr "lstat(2) 失敗: %s" - -#: dnd.c:124 -msgid "Link (relative)" -msgstr "Link (相対パス)" - -#: dnd.c:125 -msgid "Link (absolute)" -msgstr "Link (絶対パス)" - -#: dnd.c:424 -msgid "Internal error - bad info type" -msgstr "内部エラー - bad info type" - -#: dnd.c:563 -msgid "Drag a directory here to bookmark it." -msgstr "ブックマークするにはディレクトリをここにドラッグします" - -#: dnd.c:578 -msgid "XDS protocol error: leafname may not contain '/'\n" -msgstr "XDS protocol error: leafname-ファイル名は '/' を含んでいないようです\n" - -#: dnd.c:603 -msgid "" -"XdndDirectSave0 target provided, but the atom XdndDirectSave0 (type text/" -"plain) did not contain a leafname\n" -msgstr "" -"XdndDirectSave0 は指示通りの操作を行いましたが、要素 XDS (type text/plain) " -"は leafname-ファイル名を含んでいません\n" - -#: dnd.c:616 -msgid "Sorry - I require a target type of text/uri-list or XdndDirectSave0." -msgstr "text/uri-list 又は XdndDirectSave0形式のターゲットを指定して下さい." - -#: dnd.c:619 -msgid "" -"Sorry - I require a target type of text/uri-list or application/octet-stream." -msgstr "" -"text/uri-list 又は application/octet-stream 形式のターゲットを指定して下さい." - -#: dnd.c:689 -#, c-format -msgid "" -"Failed to add some items to the pinboard, because they are on a remote " -"machine. For example:\n" -"\n" -"%s" -msgstr "" -"アイテムはリモートマシン上に有る為、ピンボードに追加できません、例えば:\n" -"\n" -"%s" - -#: dnd.c:764 -msgid "Unknown target" -msgstr "不明な対象" - -#: dnd.c:797 -msgid "Remote app can't or won't send me the data - sorry" -msgstr "リモートのアプリケーションはデータを送って来ません - 悪しからず" - -#: dnd.c:810 -msgid "XDS protocol error: return code should be 'S', 'F' or 'E'\n" -msgstr "" -"XDS プロトコルエラー: リターンコードは 'S', 'F', 'E' でなければいけません\n" - -#: dnd.c:843 -msgid "Sorry, can't display a menu of actions for a remote file / raw data." -msgstr "リモートファイル / raw data の動作メニューは表示できません." - -#: dnd.c:859 -msgid "UntitledData" -msgstr "名無しのデータ" - -#: dnd.c:886 -#, c-format -msgid "Error saving file: %s" -msgstr "エラー救済用ファイル: %s" - -#: dnd.c:959 -msgid "No URIs in the text/uri-list (nothing to do!)" -msgstr "text/uri-list に URI がありません(何も出来ません!)" - -#: dnd.c:991 -msgid "" -"Can't get data from remote machine (application/octet-stream not provided)" -msgstr "" -"リモートマシンからデータを取得できません(application/octet-stream が提供され" -"ていません)" - -#: dnd.c:1014 -msgid "" -"Some of these files are on a different machine - they will be ignored - sorry" -msgstr "" -"幾つかのファイルは別のマシン上にあります(それらは無視されます)。ごめんね!" - -#: dnd.c:1021 -msgid "" -"None of these files are on the local machine - I can't operate on multiple " -"remote files - sorry." -msgstr "" -"これらのファイルはローカルマシン上にはありません(複数リモート上のファイルは取" -"り扱えません、ごめん!)" - -#: dnd.c:1034 -msgid "Unknown action requested" -msgstr "不明なアクションの要求です" - -#: dnd.c:1042 -#, c-format -msgid "Error getting file list: %s" -msgstr "エラーを起こしたファイルの一覧: %s" - -#: dropbox.c:112 -msgid "Show" -msgstr "表示" - -#: dropbox.c:118 -msgid "Show the current choice in a filer window" -msgstr "ファイラーウィンドウに現在の選択を表示" - -#: dropbox.c:172 -msgid "" -msgstr "<なし>" - -#: dropbox.c:237 -msgid "" -"I can't show you the currently set item, because nothing is currently set. " -"Drag something onto me!" -msgstr "" -"現在設定されているアイテムが存在しないので表示できません。いずれかのアイテム" -"をドラッグしてください。" - -#: dropbox.c:261 -msgid "Sorry, you need to drop exactly one file onto the drop area." -msgstr "ごめん!ドロップエリアにドロップ出来るファイルは一つだけです" - -#: dropbox.c:271 -#, c-format -msgid "Sorry, I can't use '%s' because it's not a local file." -msgstr "ローカルファイルではないので '%s' を使えません。" - -#: dropbox.c:278 pinboard.c:932 -#, c-format -msgid "" -"Can't access '%s':\n" -"%s" -msgstr "" -"'%s' にアクセスできません:\n" -"%s" - -#: filer.c:461 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s\n" -msgstr "" -"スキャンエラー '%s':\n" -"%s\n" - -#: filer.c:465 -#, c-format -msgid "" -"Error scanning '%s':\n" -"%s" -msgstr "" -"スキャンエラー '%s':\n" -"%s" - -#: filer.c:621 -msgid "" -"Do you want to unmount this device?\n" -"\n" -"Unmounting a device makes it safe to remove the disk." -msgstr "" -"このデバイスをアンマウントしますか?\n" -"\n" -"デバイスをアンマウントすると安全にディスクを取り出すことができます" - -#: filer.c:626 -msgid "Perform the same action in future for this mount point" -msgstr "@@今後このマウントポイントに対し、同じ動作を実行する" - -#: filer.c:633 -msgid "No change" -msgstr "このまま" - -#: filer.c:639 infobox.c:1059 menu.c:872 -msgid "Unmount" -msgstr "アンマウント" - -#: filer.c:743 -msgid "Directory missing/deleted" -msgstr "ディレクトリがありません/削除されています" - -#: filer.c:1107 -#, c-format -msgid "" -"Group %s is not set. Select some files and press Ctrl+%s to set the group. " -"Press %s on its own to reselect the files later.\n" -"Make sure NumLock is on if you use the keypad." -msgstr "" -"%s のグループが設定されていません。 ファイルを選択して Ctrl+%s でグループを設" -"定して下さい。 その後にファイルを再選択するには %s を押してください。\n" -"10キーで設定するなら NumLock が on であることを確認してください。" - -#: filer.c:1343 -#, c-format -msgid "Directory '%s' is not accessible" -msgstr "ディレクトリ'%s' にアクセスできません" - -#: filer.c:1495 -#, c-format -msgid "Directory '%s' not found." -msgstr "ディレクトリ '%s' が見つかりません" - -#: filer.c:1795 -msgid "Cancel" -msgstr "キャンセル" - -#: filer.c:2076 -msgid "A" -msgstr "A" - -#: filer.c:2078 find.c:923 -msgid "G" -msgstr "G" - -#: filer.c:2083 -msgid "S" -msgstr "S" - -#: filer.c:2085 -msgid "T" -msgstr "T" - -#: filer.c:2095 -msgid "All, " -msgstr "全て ," - -#: filer.c:2098 -#, c-format -msgid "Glob (%s), " -msgstr "(%s)に合致," - -#: filer.c:2106 -msgid "Scanning, " -msgstr "走査中, " - -#: filer.c:2108 -msgid "Thumbs, " -msgstr "サムネイル, " - -#: filer.c:2384 -msgid "Symbolic link to " -msgstr "シンボリックリンク -> " - -#: filer.c:2426 -msgid "This filename is not valid UTF-8. You should rename it.\n" -msgstr "不適切な UTF-8 のファイル名です。リネームしてください\n" - -#: filer.c:2743 menu.c:2014 -msgid "Item no longer exists!" -msgstr "アイテムは存在しません" - -#: filer.c:3549 -msgid "Select display properties to save" -msgstr "保存する表示属性の選択" - -#: filer.c:3553 -msgid "Save display settings for directory" -msgstr "このディレクトリ表示設定の保存" - -#: filer.c:3560 -msgid "Select settings to save" -msgstr "設定を保存する項目" - -#: filer.c:3567 -msgid "Position" -msgstr "位置" - -#: filer.c:3572 toolbar.c:133 toolbar.c:137 tips:39 -msgid "Size" -msgstr "サイズ" - -#: filer.c:3577 -msgid "Show hidden" -msgstr "隠しファイルを表示" - -#: filer.c:3583 -msgid "Display style" -msgstr "表示スタイル" - -#: filer.c:3589 -msgid "Sort type and order" -msgstr "ソート方法と順序" - -#: filer.c:3594 toolbar.c:141 -msgid "Details" -msgstr "詳細表示" - -#: filer.c:3599 tips:92 tips:93 -msgid "Thumbnails" -msgstr "サムネイル" - -#: filer.c:3605 -msgid "Filter" -msgstr "フィルタ" - -#: find.c:485 -msgid "And" -msgstr "And" - -#: find.c:509 -msgid "Not" -msgstr "Not" - -#: find.c:552 -msgid "system" -msgstr "system" - -#: find.c:560 -msgid "prune" -msgstr "prune" - -#: find.c:648 -msgid "After" -msgstr "After" - -#: find.c:650 -msgid "Before" -msgstr "Before" - -#: find.c:744 -msgid "IsReg" -msgstr "IsReg" - -#: find.c:746 -msgid "IsLink" -msgstr "IsLink" - -#: find.c:748 -msgid "IsDir" -msgstr "IsDir" - -#: find.c:750 -msgid "IsChar" -msgstr "IsChar" - -#: find.c:752 -msgid "IsBlock" -msgstr "IsBlock" - -#: find.c:754 -msgid "IsDev" -msgstr "IsDev" - -#: find.c:756 -msgid "IsPipe" -msgstr "IsPipe" - -#: find.c:758 -msgid "IsSocket" -msgstr "IsSocket" - -#: find.c:760 -msgid "IsDoor" -msgstr "IsDoor" - -#: find.c:762 -msgid "IsSUID" -msgstr "IsSUID" - -#: find.c:764 -msgid "IsSGID" -msgstr "IsSGID" - -#: find.c:766 -msgid "IsSticky" -msgstr "IsSticky" - -#: find.c:768 -msgid "IsReadable" -msgstr "IsReadable" - -#: find.c:770 -msgid "IsWriteable" -msgstr "IsWriteable" - -#: find.c:772 -msgid "IsExecutable" -msgstr "IsExecutable" - -#: find.c:774 -msgid "IsEmpty" -msgstr "IsEmpty" - -#: find.c:776 -msgid "IsMine" -msgstr "IsMine" - -#: find.c:904 -msgid "Now" -msgstr "Now" - -#: find.c:917 -msgid "Byte" -msgstr "Byte" - -#: find.c:917 -msgid "Bytes" -msgstr "Bytes" - -#: find.c:919 -msgid "Kb" -msgstr "Kb" - -#: find.c:919 -msgid "K" -msgstr "K" - -#: find.c:921 -msgid "Mb" -msgstr "Mb" - -#: find.c:921 -msgid "M" -msgstr "M" - -#: find.c:923 -msgid "Gb" -msgstr "Gb" - -#: find.c:925 -msgid "Sec" -msgstr "Sec" - -#: find.c:925 -msgid "Secs" -msgstr "Secs" - -#: find.c:927 -msgid "Min" -msgstr "Min" - -#: find.c:927 -msgid "Mins" -msgstr "Mins" - -#: find.c:929 -msgid "Hour" -msgstr "Hour" - -#: find.c:929 -msgid "Hours" -msgstr "Hours" - -#: find.c:931 -msgid "Day" -msgstr "Day" - -#: find.c:931 -msgid "Days" -msgstr "Days" - -#: find.c:933 -msgid "Week" -msgstr "Week" - -#: find.c:933 -msgid "Weeks" -msgstr "Weeks" - -#: find.c:935 -msgid "Year" -msgstr "Year" - -#: find.c:935 -msgid "Years" -msgstr "Years" - -#: find.c:944 -msgid "Ago" -msgstr "ago" - -#: find.c:946 -msgid "Hence" -msgstr "Hence" - -#: find.c:961 -msgid "atime" -msgstr "atime" - -#: find.c:963 -msgid "ctime" -msgstr "ctime" - -#: find.c:965 -msgid "mtime" -msgstr "mtime" - -#: find.c:967 -msgid "size" -msgstr "size" - -#: find.c:969 -msgid "inode" -msgstr "inode" - -#: find.c:971 -msgid "nlinks" -msgstr "nlinks" - -#: find.c:973 -msgid "uid" -msgstr "uid" - -#: find.c:975 -msgid "gid" -msgstr "gid" - -#: find.c:977 -msgid "blocks" -msgstr "blocks" - -#: gtksavebox.c:249 -msgid "Save As:" -msgstr "名前を付けて保存:" - -#: gtksavebox.c:395 -msgid "Unnamed" -msgstr "名前がありません" - -#: gtksavebox.c:471 -msgid "" -"Remote application wants to use Direct Save, but I can't read the " -"XdndDirectSave0 (type text/plain) property.\n" -msgstr "" -"リモートアプリケーションは Direct Save を使用したいのですが、 " -"XdndDirectSave0 プロパティ(text/plain 形式)を読み込めません。\n" - -#: gtksavebox.c:596 -msgid "" -"Drag the icon to a directory viewer\n" -"(or enter a full pathname)" -msgstr "" -"ディレクトリビューアにアイコンをドラッグ\n" -"するか、フルパスを入力して下さい" - -#: gui_support.c:456 -msgid "" -"\n" -"---\n" -msgstr "" -"\n" -"---\n" - -#: gui_support.c:525 -#, c-format -msgid "Attempt to read an XML file as a text file. File '%s' may be corrupted." -msgstr "" -"XML ファイルをテキストファイルとして読み込めません。ファイル '%s' は壊れてい" -"ます。" - -#: gui_support.c:542 -#, c-format -msgid "" -"Error in '%s' file at line %d: \n" -"\"%s\"\n" -"This may be due to upgrading from a previous version of ROX-Filer. Open the " -"Options window and try changing something and then changing it back (causing " -"the file to be resaved).\n" -"Further errors will be ignored." -msgstr "" -"ファイル '%s' の %d 行目にエラーが有ります: \n" -"\"%s\"\n" -"これは旧ヴァージョンの ROX からアップグレードしたせいかもしれません オプショ" -"ン設定ウィンドウを開けて、何かを変更後元に戻してみてください(ファイルが再保存" -"されるような操作を行う)。\n" -"以降、エラーは無くなるでしょう。" - -#: gui_support.c:1134 -msgid "Incorrect or missing line break in text/uri-list data" -msgstr "text/uri-listデータの,不正又は不明な改行です" - -#: gui_support.c:1471 -#, c-format -msgid "Failed to open file '%s': %s" -msgstr "'%s'のオープンに失敗しました : %s" - -#: gui_support.c:1515 -#, c-format -msgid "" -"Failed to load image '%s': reason not known, probably a corrupt image file" -msgstr "" -"イメージ '%s' を読み出せません:理由は不明ですが、恐らく壊れたファイルだと思わ" -"れます。" - -#: gui_support.c:1580 -#, c-format -msgid "" -"This program (%s) cannot be run, as the 0launch command is not available. It " -"can be downloaded from here:\n" -"\n" -"http://0install.net/injector.html" -msgstr "" -"対応コマンド(0launch)が利用不能な為、このプログラム(%s)は実行することができま" -"せん。それは以下からダウンロードすることができます:\n" -"\n" -"http://0install.net/injector.html" - -#: i18n.c:39 -msgid "" -"Note that you must save your choices and restart the filer for the new " -"language setting to take full effect." -msgstr "" -"注意: 新しい言語設定を完全に有効にするには、 選択を保存してファイラを再起動し" -"てください。" - -#: icon.c:76 -msgid "(click to set)" -msgstr "(クリックでセット)" - -#: icon.c:131 -msgid "ROX-Filer" -msgstr "ROX-Filer" - -#: icon.c:132 menu.c:258 -msgid "About ROX-Filer..." -msgstr "ROX-Filer について.." - -#: icon.c:133 menu.c:259 -msgid "Show Help Files" -msgstr "ヘルプファイルを表示" - -#: icon.c:134 menu.c:260 -msgid "Manual" -msgstr "マニュアル" - -#: icon.c:136 menu.c:235 -msgid "Options..." -msgstr "オプション設定" - -#: icon.c:137 menu.c:244 -msgid "Home Directory" -msgstr "ホームディレクトリ" - -#: icon.c:138 icon.c:1410 menu.c:212 type.c:223 -msgid "File" -msgstr "ファイル" - -#: icon.c:139 menu.c:218 menu.c:885 -msgid "Shift Open" -msgstr "[Shift]+で開く" - -#: icon.c:140 menu.c:223 -msgid "Properties" -msgstr "プロパティ" - -#: icon.c:141 menu.c:221 -msgid "Set Run Action..." -msgstr "対応アプリの設定" - -#: icon.c:142 menu.c:222 -msgid "Set Icon..." -msgstr "アイコンを設定" - -#: icon.c:143 icon.c:867 -msgid "Edit Item" -msgstr "アイテムを編集" - -#: icon.c:144 -msgid "Show Location" -msgstr "アイテムの場所を表示" - -#: icon.c:145 -msgid "Remove Item(s)" -msgstr "アイテムを削除" - -#: icon.c:318 log.c:109 menu.c:774 -#, c-format -msgid "%s '%s'" -msgstr "%s '%s'" - -#: icon.c:331 -msgid "Nothing" -msgstr "なし" - -#: icon.c:592 -msgid "The location must contain at least one character!" -msgstr "アイテムの在処は最低1文字以上でなければいけません!" - -#: icon.c:657 -#, c-format -msgid "You must unlock '%s' before removing it" -msgstr "" -"%s はロックされています。「アイテムを編集」でロックを外してから削除してくださ" -"い" - -#: icon.c:667 -msgid "You must first select some items to remove" -msgstr "まず削除するアイテムを選んでください" - -#: icon.c:673 -msgid "An item must be unlocked before it can be removed." -msgstr "削除出来るようにするには、先にアイテムをアンロックする必要が有ります" - -#: icon.c:687 -msgid "You must open the menu over an item" -msgstr "メニューはアイテムの上で開いてください" - -#: icon.c:712 menu.c:1285 -msgid "You can only set the run action for a regular file" -msgstr "「対応アプリを設定」はファイルに対してのみ行えます" - -#: icon.c:798 -msgid "Press the desired shortcut (eg, Control+F1)" -msgstr "ショートカットを入力してください(例: Control+F1)" - -#: icon.c:820 -msgid "Failed to get keyboard grab!" -msgstr "キー入力の取得に失敗しました" - -#: icon.c:870 -msgid "Clicking the icon opens:" -msgstr "アイコンクリックで開くファイル:" - -#: icon.c:880 -msgid "Arguments to pass (for executables):" -msgstr "プログラムに渡す引数(実行可能アイテムの場合):" - -#: icon.c:894 -msgid "The text displayed under the icon is:" -msgstr "アイコンの下に表示するテキスト:" - -#: icon.c:907 -msgid "The keyboard shortcut is:" -msgstr "キーボードのショートカット:" - -#: icon.c:927 -msgid "Locked" -msgstr "ロックする" - -#: icon.c:932 -msgid "Locking an item prevents it from being accidentally removed" -msgstr "不用意に削除されないように、アイテムをロックします" - -#: infobox.c:113 -#, c-format -msgid "Are you sure you want to open %d windows?" -msgstr "本当に %d 個のウィンドウを開きますか?" - -#: infobox.c:114 -msgid "Show Info" -msgstr "情報を表示" - -#: infobox.c:136 menu.c:779 -msgid "(bad utf-8)" -msgstr "(不正なutf-8)" - -#: infobox.c:271 -msgid "Show _Help Files" -msgstr "ヘルプファイルを表示" - -#: infobox.c:284 -msgid "Permissions" -msgstr "パーミッション" - -#: infobox.c:302 -msgid "Contents indicate..." -msgstr "項目を表示" - -#: infobox.c:312 -msgid "When all directories are closed" -msgstr "すべてのディレクトリが閉じられるとき" - -#: infobox.c:448 infobox.c:589 support.c:349 -msgid "bytes" -msgstr "bytes" - -#: infobox.c:471 -msgid "Failed to read size" -msgstr "サイズ取得に失敗" - -#: infobox.c:532 -#, c-format -msgid "'%s' is no longer a symlink" -msgstr "'%s' は既に symlink では無くなっています。" - -#: infobox.c:539 -#, c-format -msgid "" -"Failed to unlink '%s':\n" -"%s" -msgstr "" -"'%s'のシンボリックリンクを削除できません:\n" -"%s" - -#: infobox.c:544 -#, c-format -msgid "" -"Failed to create symlink from '%s':\n" -"%s\n" -"(note: old link has been deleted)" -msgstr "" -"%s\n" -"'%s'のシンボリックリンクが作れません:\n" -"%s\n" -"(注意:古いリンクは削除されました。)" - -#: infobox.c:568 tips:242 -msgid "Error:" -msgstr "エラー:" - -#: infobox.c:575 -msgid "Real directory:" -msgstr "通常のディレクトリ:" - -#: infobox.c:578 -msgid "Owner, Group:" -msgstr "所有者, グループ:" - -#: infobox.c:585 infobox.c:600 infobox.c:609 -msgid "Size:" -msgstr "サイズ:" - -#: infobox.c:610 -msgid "Scanning" -msgstr "スキャン中, " - -#: infobox.c:635 -msgid "Failed to scan" -msgstr "スキャンに失敗" - -#: infobox.c:642 -msgid "Change time:" -msgstr "変更した日時:" - -#: infobox.c:644 -msgid "Modify time:" -msgstr "修正した日時:" - -#: infobox.c:646 -msgid "Access time:" -msgstr "アクセスした日時:" - -#: infobox.c:654 -msgid "Extended attributes:" -msgstr "拡張属性:" - -#: infobox.c:656 -msgid "Present" -msgstr "あります" - -#: infobox.c:657 -msgid "None" -msgstr "ありません" - -#: infobox.c:658 -msgid "Not supported" -msgstr "サポートされていません" - -#: infobox.c:670 -msgid "Link target:" -msgstr "リンク対象:" - -#: infobox.c:682 infobox.c:685 -msgid "Run action:" -msgstr "対応アプリ:" - -#: infobox.c:682 -msgid "Execute file" -msgstr "ファイルを実行" - -#: infobox.c:794 -msgid "Comment" -msgstr "コメント" - -#: infobox.c:796 -msgid "Execute" -msgstr "実行" - -#: infobox.c:810 -msgid "" -msgstr "<未だ何も>" - -#: infobox.c:881 -#, c-format -msgid "file(1) says... %s" -msgstr "file(1) says... %s" - -#: infobox.c:938 -#, c-format -msgid "Could not change permissions: %s" -msgstr "%s'のパーミッションを変更できません: " - -#: infobox.c:956 -msgid "Owner" -msgstr "所有者" - -#: infobox.c:958 -msgid "Group" -msgstr "グループ" - -#: infobox.c:960 -msgid "World" -msgstr "他人" - -#: infobox.c:963 -msgid "Read" -msgstr "読み込み" - -#: infobox.c:966 -msgid "Write" -msgstr "書き込み" - -#: infobox.c:969 -msgid "Exec" -msgstr "実行" - -#: infobox.c:987 -msgid "SUID" -msgstr "SUID ビット" - -#: infobox.c:994 -msgid "SGID" -msgstr "SGID ビット" - -#: infobox.c:1001 -msgid "Sticky" -msgstr "Sticky ビット" - -#: infobox.c:1057 -msgid "Do nothing" -msgstr "何もしない" - -#: infobox.c:1063 -msgid "Ask" -msgstr "問い合わせる" - -#: infobox.c:1075 -msgid "Symbolic link" -msgstr "シンボリックリンク" - -#: infobox.c:1078 -msgid "ROX application" -msgstr "ROX アプリケーション" - -#: infobox.c:1086 -msgid "mounted" -msgstr "マウント済み" - -#: infobox.c:1086 -msgid "unmounted" -msgstr "アンマウント済み" - -#: infobox.c:1090 -#, c-format -msgid "Mount point for %s (%s)" -msgstr "%s (%s) のマウントポイント" - -#: infobox.c:1093 -#, c-format -msgid "Mount point (%s)" -msgstr "マウントポイント (%s)" - -#: log.c:54 -msgid "ROX-Filer started" -msgstr "ROX-Filer 開始" - -#: log.c:111 -#, c-format -msgid "%s on %d items" -msgstr "%s: %d 件" - -#: log.c:124 -msgid "Item" -msgstr "対象" - -#: log.c:150 -msgid "Time" -msgstr "日時" - -#: log.c:155 -msgid "Action" -msgstr "操作" - -#: main.c:97 -msgid "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" -msgstr "" -"Copyright (C) 2005 Thomas Leonard.\n" -"ROX-Filer comes with ABSOLUTELY NO WARRANTY,\n" -"to the extent permitted by law.\n" -"You may redistribute copies of ROX-Filer\n" -"under the terms of the GNU General Public License.\n" -"For more information about these matters, see the file named COPYING.\n" - -#: main.c:106 -msgid "Try `ROX-Filer/AppRun --help' for more information.\n" -msgstr "詳しくは `rox --help' で確認してください\n" - -#: main.c:109 -msgid "Try `ROX-Filer/AppRun -h' for more information.\n" -msgstr "詳しくは `rox -h' で確認してください\n" - -#: main.c:111 -msgid "" -"NOTE: Your system does not support long options - \n" -"you must use the short versions instead.\n" -"\n" -msgstr "" -"注意: お使いのシステムはロングオプションをサポートしていません - \n" -"ショートバージョンを使ってください\n" -"\n" - -#: main.c:117 -#, c-format -msgid "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"Open each directory or file listed, or the current working\n" -"directory if no arguments are given.\n" -"\n" -" -b, --border=PANEL\topen PANEL as a border panel\n" -" -B, --bottom=PANEL\topen PAN as a bottom-edge panel\n" -" -c, --client-id=ID\tused for session management\n" -" -d, --dir=DIR\t\topen DIR as directory (not application)\n" -" -D, --close=DIR\tclose DIR and its subdirectories\n" -" -h, --help\t\tdisplay this help and exit\n" -" -l, --left=PANEL\topen PAN as a left-edge panel\n" -" -m, --mime-type=FILE\tprint MIME type of FILE and exit\n" -" -n, --new\t\tstart new copy; for debugging the filer\n" -" -p, --pinboard=PIN\tuse pinboard PIN as the pinboard\n" -" -r, --right=PANEL\topen PAN as a right-edge panel\n" -" -R, --RPC\t\tinvoke method call read from stdin\n" -" -s, --show=FILE\topen a directory showing FILE\n" -" -S, --rox-session\tuse default panel and pinboard options, and -n\n" -" -t, --top=PANEL\topen PANEL as a top-edge panel\n" -" -u, --user\t\tshow user name in each window \n" -" -U, --url=URL\t\topen file or directory in URI form\n" -" -v, --version\t\tdisplay the version information and exit\n" -" -x, --examine=FILE\tFILE has changed - re-examine it\n" -"\n" -"Report bugs to %s.\n" -"Home page (including updated versions): http://rox.sourceforge.net/\n" -msgstr "" -"Usage: ROX-Filer/AppRun [OPTION]... [FILE]...\n" -"指定されたファイル(ディレクトリ)を開きます。指定が無い場合は\n" -"カレントディレクトリを開きます。\n" -"\n" -" -b, --border=PANEL\t境界に'PANEL'(という名の)パネルを表示\n" -" -B, --bottom=PANEL\t画面の下端に'PANEL'(という名の)パネルを表示\n" -" -c, --client-id=ID\tセッションマネージメントを適用\n" -" -d, --dir=DIR\t\t'DIR' をディレクトリとして開く (AppDir としてではなく)\n" -" -D, --close=DIR\t'DIR' と そのサブディレクトリを閉じる\n" -" -h, --help\t\tこのヘルプを表示して終了\n" -" -l, --left=PANEL\t画面の左端に'PANEL'(という名の)パネル を表示\n" -" -m, --mime-type=FILE\t'FILE'のMIME形式を表示して終了\n" -" -n, --new\t\t新規に ROX を起動; ROX デバッグ用\n" -" -p, --pinboard=PIN\t'PIN'(という名の)ピンボードを使用\n" -" -r, --right=PANEL\t画面の右端に'PANEL'(という名の)パネル を表示\n" -" -R, --RPC\t\t標準入力から呼び出し方法を読み取る\n" -" -s, --show=FILE\t'FILE'表示の為にディレクトリを開く\n" -" -S, --rox-session\tデフォルトのパネルとピンボードで -n を実行\n" -" -t, --top=PANEL\t画面の上端に'PANEL'(という名の)パネルを表示\n" -" -u, --user\t\tウィンドウ毎にユーザー名を表示\n" -" -U, --url=URL\t\tファイル、ディレクトリを URI 形式で開く\n" -" -v, --version\t\tバージョン情報を表示して終了\n" -" -x, --examine=FILE\t変更された'FILE'を再検査\n" -"\n" -"バグ報告は %s まで.\n" -"Home page (最新バージョンを置いてあります): http://rox.sourceforge.net/\n" - -#: main.c:240 -msgid "" -"We got a BadWindow error from the X server. This might be due to this GTK " -"bug (during drag-and-drop?):\n" -"http://bugzilla.gnome.org/show_bug.cgi?id=152151\n" -"Trying to continue..." -msgstr "" -"X サーバーから'BadWindow'エラーを受け取りました。これは GTK のバグ(ドラッグ・" -"アンド・ドロップ中の?)によるかもしれません。http://bugzilla.gnome.org/" -"show_bug.cgi?id=152151\n" -"再試行してみて下さい..." - -#: main.c:404 -msgid "" -"The -o argument is no longer used. You can turn on override redirect from " -"the Options box instead." -msgstr "" -" -o オプションは現在使われなくなりました(ウィンドウマネージャによるパネル制" -"御)。 代わりにオプションボックスから設定可能です。" - -#: main.c:533 -#, c-format -msgid "Running as user '%s'" -msgstr "ユーザ '%s' で実行" - -#: main.c:694 -#, c-format -msgid "Compiled with GTK version %s\n" -msgstr "GTKバージョン %s でコンパイル\n" - -#: main.c:695 -#, c-format -msgid "Running with GTK version %d.%d.%d\n" -msgstr "GTKバージョン %d.%d.%d で実行\n" - -#: main.c:699 -msgid "features set at compile time" -msgstr "機能はコンパイル時に設定します" - -#: main.c:700 -msgid "Large File Support" -msgstr "Large File サポート" - -#: main.c:707 -msgid "Inotify support" -msgstr "Inotify(ファイルシステム監視機能)サポート" - -#: main.c:714 -msgid "Dnotify support" -msgstr "Dnotify(ディレクトリ通知機能)サポート" - -#: main.c:721 -msgid "Binary compatibility" -msgstr "バイナリ互換性" - -#: main.c:723 -msgid "Yes (can run with older glibc versions)" -msgstr "はい (より古いバージョンの glibc で実行可能)" - -#: main.c:725 -msgid "No (apsymbols.h not found)" -msgstr "いいえ (apsymbols.h がみつかりません)" - -#: main.c:729 -msgid "Extended attribute support" -msgstr "拡張属性サポート" - -#: main.c:880 -#, c-format -msgid "Unable to read '%s': %s" -msgstr "'%s'を読み込めませんでした : %s" - -#: main.c:922 -#, c-format -msgid "" -"Left-click to run %s.\n" -"Right-click for a list of versions." -msgstr "" -"左クリックで %s を実行。\n" -"右クリックでバージョン一覧を表示。" - -#: main.c:969 menu.c:1380 menu.c:1386 -#, c-format -msgid "Error creating '%s': %s" -msgstr "作成失敗 '%s': %s" - -#: main.c:998 main.c:1007 -msgid "Start script" -msgstr "起動スクリプト" - -#: main.c:1002 -msgid "Save" -msgstr "保存" - -#: main.c:1032 -msgid "" -"Click to save a script to run ROX-Filer.\n" -"If you are using Zero Install you should use 0alias instead." -msgstr "" -"クリックして ROX-Filer 起動スクリプトを保存して下さい\n" -"Zero Install を使用している場合は 0alias で代用してください" - -#: menu.c:185 tips:28 -msgid "Display" -msgstr "表示" - -#: menu.c:186 tips:33 -msgid "Icons View" -msgstr "アイコン表示" - -#: menu.c:187 -msgid "Icons, With..." -msgstr "アイコン &" - -#: menu.c:188 tips:52 -msgid "Sizes" -msgstr "サイズ" - -#: menu.c:190 tips:226 -msgid "Types" -msgstr "タイプ" - -#: menu.c:191 tips:55 -msgid "Times" -msgstr "日付" - -#: menu.c:192 tips:34 tips:70 -msgid "List View" -msgstr "詳細表示" - -#: menu.c:194 -msgid "Bigger Icons" -msgstr "アイコン拡大" - -#: menu.c:195 -msgid "Smaller Icons" -msgstr "アイコン縮小" - -#: menu.c:196 tips:49 -msgid "Automatic" -msgstr "自動" - -#: menu.c:198 -msgid "Sort by Name" -msgstr "名前でソート" - -#: menu.c:199 -msgid "Sort by Type" -msgstr "種類でソート" - -#: menu.c:200 -msgid "Sort by Date" -msgstr "日付でソート" - -#: menu.c:201 -msgid "Sort by Size" -msgstr "サイズでソート" - -#: menu.c:202 -msgid "Sort by Owner" -msgstr "所有者でソート" - -#: menu.c:203 -msgid "Sort by Group" -msgstr "グループでソート" - -#: menu.c:204 -msgid "Reversed" -msgstr "逆順にソート" - -#: menu.c:206 -msgid "Show Hidden" -msgstr "隠しファイルを表示" - -#: menu.c:207 -msgid "Filter Files..." -msgstr "ファイルをフィルタリング" - -#: menu.c:208 -msgid "Filter Directories With Files" -msgstr "フィルタリングをディレクトリにも適用" - -#: menu.c:209 -msgid "Show Thumbnails" -msgstr "サムネイルを表示" - -#: menu.c:210 -msgid "Refresh" -msgstr "更新" - -#: menu.c:211 -msgid "Save Current Display Settings..." -msgstr "現在の表示設定を保存" - -#: menu.c:213 -msgid "Copy..." -msgstr "コピー" - -#: menu.c:214 -msgid "Rename..." -msgstr "リネーム" - -#: menu.c:215 -msgid "Link..." -msgstr "リンク" - -#: menu.c:219 -msgid "Send To..." -msgstr "アプリに送る" - -#: menu.c:224 -msgid "Count" -msgstr "ディスク使用量" - -#: menu.c:225 -msgid "Set Type..." -msgstr "MIME 形式設定" - -#: menu.c:229 toolbar.c:154 -msgid "Select" -msgstr "選択" - -#: menu.c:230 -msgid "Select All" -msgstr "全て選択" - -#: menu.c:231 -msgid "Clear Selection" -msgstr "選択をキャンセル" - -#: menu.c:232 -msgid "Invert Selection" -msgstr "選択を反転" - -#: menu.c:233 -msgid "Select by Name..." -msgstr "名前で選択" - -#: menu.c:234 -msgid "Select If..." -msgstr "条件附き選択" - -#: menu.c:236 -msgid "New" -msgstr "新規作成" - -#: menu.c:238 -msgid "Blank file" -msgstr "空のファイル" - -#: menu.c:240 tasklist.c:305 -msgid "Window" -msgstr "ウィンドウ" - -#: menu.c:241 -msgid "Parent, New Window" -msgstr "親ディレクトリを新規ウィンドウで" - -#: menu.c:242 -msgid "Parent, Same Window" -msgstr "親ディレクトリを同じウィンドウで" - -#: menu.c:243 -msgid "New Window" -msgstr "新規ウィンドウ" - -#: menu.c:245 -msgid "Show Bookmarks" -msgstr "ブックマークを表示" - -#: menu.c:246 -msgid "Show Log" -msgstr "ログを表示" - -#: menu.c:247 -msgid "Follow Symbolic Links" -msgstr "シンボリックリンクを追跡" - -#: menu.c:248 -msgid "Resize Window" -msgstr "ウィンドウをリサイズ" - -#: menu.c:251 -msgid "Close Window" -msgstr "ウィンドウを閉じる" - -#: menu.c:253 -msgid "Enter Path..." -msgstr "パス入力..." - -#: menu.c:254 -msgid "Shell Command..." -msgstr "シェルコマンド..." - -#: menu.c:255 -msgid "Terminal Here" -msgstr "ここでXtermを起動" - -#: menu.c:256 -msgid "Switch to Terminal" -msgstr "Xtermに切り替える" - -#: menu.c:725 -msgid "You should Shift+Menu click over a file to send it somewhere" -msgstr "アプリに送るには Shift を押しながらメニューボタンをクリックして下さい" - -#: menu.c:764 -msgid "Next Click" -msgstr "次のクリック" - -#: menu.c:786 -#, c-format -msgid "%d items" -msgstr "%d 個のアイテム" - -#: menu.c:874 -msgid "Open unmounted" -msgstr "マウントされてない状態で開く" - -#: menu.c:877 -msgid "Show Target" -msgstr "リンク先を表示" - -#: menu.c:879 -msgid "Look Inside" -msgstr "内容を見る" - -#: menu.c:881 -msgid "Open As Text" -msgstr "テキストとして開く" - -#: menu.c:1052 -msgid "" -"Extended attributes, used to store types, are not supported for this file or " -"files.\n" -"This may be due to lack of support from the filesystem or the C library, or " -"it may simply be that the filesystem needs to be mounted with the right " -"mount option ('user_xattr' on Linux)." -msgstr "" -"タイプを格納するために使用される拡張属性は、指定アイテムをサポートしていませ" -"ん。\n" -"これは恐らくファイルシステム、C ライブラリ等の未サポートによるものか、ファイ" -"ルシステムは拡張属性をサポートしているが、マウントオプションで拡張属性を指定" -"していない事によるものと思われます(Linux の場合 'user_xattr')。" - -#: menu.c:1058 -msgid "Setting type not supported for some of these files" -msgstr "設定されたタイプは選択されたファイル中の幾つかをサポートしていません。" - -#: menu.c:1095 -msgid "_Relative link" -msgstr "相対リンク(_R)" - -#: menu.c:1101 -msgid "" -"If on, the symlink will store the path from the symlink to the target file. " -"Use this if the symlink and the target will be moved together.\n" -"If off, the path from the root directory is stored - use this if the symlink " -"may move but the target will stay put." -msgstr "" -"'ON'の場合、シンボリックリンクはターゲットからの相対パスを保持します。\n" -"リンク、ターゲットを共に移動するような場合は'ON'にして下さい。\n" -"'OFF'の場合,'/'からの絶対パスが保持されます。シンボリックリンクのみを\n" -"移動し、ターゲットは移動しないような場合は'OFF'にして下さい。" - -#: menu.c:1171 -msgid "New pathname is not absolute" -msgstr "新パス名は絶対パスでは有りません" - -#: menu.c:1239 -#, c-format -msgid "Symlink from '%s' already exists. Replace it with a link to '%s'?" -msgstr "'%s' のシンボリックリンクは既に存在します。置き換えますか?" - -#: menu.c:1245 -msgid "_Replace" -msgstr "置き換え(_R)" - -#: menu.c:1365 menu.c:1406 menu.c:1468 -msgid "Create" -msgstr "作成" - -#: menu.c:1366 -msgid "NewDir" -msgstr "新規ディレクトリ" - -#: menu.c:1407 -msgid "NewFile" -msgstr "新規ファイル" - -#: menu.c:1425 -#, c-format -msgid "Error creating file: could not find the template for %s" -msgstr "ファイル作成失敗: %s 用のテンプレートが見つかりません。" - -#: menu.c:1498 -#, c-format -msgid "" -"The `Send To' menu provides a quick way to send some files to an " -"application. The applications listed are those in the following " -"directories:\n" -"\n" -"%s\n" -"%s\n" -"The `Send To' menu may be opened by Shift+Menu clicking over a file.\n" -"\n" -"Advanced use:\n" -"You can also create subdirectories called `.text_html', `.text', etc which " -"will only be shown for files of that type. `.group' is shown only when " -"multiple files are selected." -msgstr "" -"'アプリに送る'メニューは、ファイル(複数可)をアプリを指定して迅速に開く方法で" -"す。以下の専用ディレクトリに登録されたアプリが 'アプリに送る'メニューで使用可" -"能です:\n" -"\n" -"%s\n" -"%s\n" -"`アプリに送る'メニューはファイル上で'Shift+メニューボタン(通常右ボタン)クリッ" -"ク'すれば単独で開けられます\n" -"\n" -"より進んだ利用法:\n" -"`.text_html'、`.text'、などファイルタイプごとのサブディレクトリを作成しておく" -"と、その形式のファイルが選択されたときに表示されます。.group' は複数形式の" -"ファイルが選択されたときに表示されます。" - -#: menu.c:1509 -msgid "" -"I'll show you your SendTo directory now; you should symlink (Ctrl+Shift " -"drag) any applications you want into it." -msgstr "" -"OK を押せば 'アプリに送る' 専用ディレクトリを開きます。登録したいアプリをそこ" -"へ Ctrl+Shift+ ドラッグ & ドロップして下さい(シンボリックリンクを作成できま" -"す)" - -#: menu.c:1512 menu.c:1552 -msgid "Your CHOICESPATH variable setting prevents customisations - sorry." -msgstr "環境変数 CHOICESPATH の設定がカスタマイズを妨げています.残念!" - -#: menu.c:1545 -#, c-format -msgid "" -"Any files placed in your Templates directories will appear on the `New' " -"menu. Choosing one of them will make a copy of it as the new file.\n" -"\n" -"The following directories contain templates:\n" -"\n" -"%s\n" -"%s\n" -msgstr "" -"テンプレート・ディレクトリーに置かれたファイルは、'新規作成'メニューに表示さ" -"れます。\n" -"メニューからそれらを選択すれば、新規ファイルとして、そのコピーが作られます\n" -"\n" -"。次のディレクトリーが、テンプレート専用として使用されます:\n" -"\n" -"%s\n" -"%s\n" - -#: menu.c:1550 -msgid "" -"I'll show you your Templates directory now; you should place any template " -"files you want inside it." -msgstr "" -"OK を押せばテンプレート・ディレクトリを開きます。登録したいテンプレートファイ" -"ルをそこへコピーして下さい。" - -#: menu.c:1667 -msgid "Customise" -msgstr "カスタマイズ" - -#: menu.c:1740 -msgid "This is already the canonical name for this directory." -msgstr "これは、このディレクトリの規範的な名称です。" - -#: menu.c:1771 -msgid "" -"You can't open a second view onto this directory because the `Unique " -"Windows' option is turned on in the Options window." -msgstr "" -"このディレクトリのウィンドウをもうひとつ開くことはできません。オプション設定" -"で `重複したウィンドウを開かない'オプションが有効になっています。" - -#: menu.c:1897 -msgid "Copy ... ?" -msgstr "どれをコピー?" - -#: menu.c:1900 -msgid "Rename ... ?" -msgstr "どれをリネーム?" - -#: menu.c:1903 -msgid "Symlink ... ?" -msgstr "どれをシンボリックリンク?" - -#: menu.c:1906 -msgid "Shift Open ... ?" -msgstr "どれを[Shift]+で開く?" - -#: menu.c:1909 -msgid "Properties of ... ?" -msgstr "どれのプロパティを...?" - -#: menu.c:1912 -msgid "Set type of ... ?" -msgstr "どれの MIME 形式を...?" - -#: menu.c:1915 -msgid "Set run action for ... ?" -msgstr "どれに対応アプリを設定...?" - -#: menu.c:1918 -msgid "Set icon for ... ?" -msgstr "どれにアイコンを設定?" - -#: menu.c:1921 -msgid "Send ... to ... ?" -msgstr "どれをアプリに送る?" - -#: menu.c:1924 -msgid "DELETE ... ?" -msgstr "どれを削除する?" - -#: menu.c:1927 -msgid "Count the size of ... ?" -msgstr "どれの容量を計算する?" - -#: menu.c:1930 -msgid "Set permissions on ... ?" -msgstr "どれのパーミッションを設定?" - -#: menu.c:1933 -msgid "Search inside ... ?" -msgstr "どれを検索?" - -#: menu.c:1997 -msgid "You cannot do this to more than one item at a time" -msgstr "複数アイテムに同時にこの処理を行うことはできません" - -#: menu.c:2029 -msgid "Rename" -msgstr "リネーム" - -#: menu.c:2034 -msgid "Symlink" -msgstr "シンボリックリンク" - -#: menu.c:2063 -msgid "" -"User-definable shortcuts are disabled by default in Gtk2, and you have not " -"enabled them. You can turn this feature on by:\n" -"\n" -"1) using an XSettings manager, such as ROX-Session or gnome-settings-daemon, " -"or\n" -"\n" -"2) adding this line to ~/.gtkrc-2.0:\n" -"\tgtk-can-change-accels = 1\n" -"\t(this only works if NOT using XSETTINGS)" -msgstr "" -"ユーザー定義のショートカットは Gtk2 デフォルトでは無効であり、現在の設定は無" -"効のままになっています。以下のような方法により、この機能を有効にすることが可" -"能です:\n" -"\n" -"1) ROX-Session、gnome-settings-daemon などの XSettings manager を使用する\n" -"\n" -"あるいは (こちらがおすすめ)、\n" -"\n" -"2) ~/.gtkrc-2.0 (無ければ新規作成し) に以下の記述を加える:\n" -" \tgtk-can-change-accels = 1\n" -"\n" -"※ ショートカット設定を有効にするには、上記の設定終了後 rox のウィンドウ、パネ" -"ル、ピンボードを一旦すべて終了する必要が有ります" - -#: menu.c:2074 -msgid "" -"To set a keyboard short-cut for a menu item:\n" -"\n" -"- Open the menu over a filer window,\n" -"- Move the pointer over the item you want to use,\n" -"- Press the key you want attached to it.\n" -"\n" -"The key will appear next to the menu item and you can just press that key " -"without opening the menu in future." -msgstr "" -"メニュー項目にキーボードショートカットを設定するには:\n" -"\n" -"- ファイラーウィンドウ上でメニューを開く\n" -"- マウスポインタを、設定したい項目の所へ移動\n" -"- 割り当てたいキーを押す\n" -"\n" -"設定したショートカットはメニュー項目の横に表示され、以後はメニューを開かなく" -"てもショートカットキーにより、その機能を呼び出せます。" - -#: menu.c:2089 -msgid "Set keyboard shortcuts" -msgstr "キーボードショートカットを設定" - -#: minibuffer.c:129 -msgid "Goto:" -msgstr "Goto:" - -#: minibuffer.c:130 -msgid "Shell:" -msgstr "シェル:" - -#: minibuffer.c:131 -msgid "Select If:" -msgstr "条件選択:" - -#: minibuffer.c:132 -msgid "Select Named:" -msgstr "名前選択:" - -#: minibuffer.c:133 -msgid "Pattern:" -msgstr "パターン" - -#: minibuffer.c:265 -msgid "" -"Enter the name of a file and I'll display it for you. Press Tab to fill in " -"the longest match. Escape to close the minibuffer." -msgstr "" -"ファイル/パス名を入力すれば該当するものを表示します。tab キーによる補完が可能" -"です。ミニバッファの閉じるには 'Escape' キーを押して下さい。" - -#: minibuffer.c:271 -msgid "" -"Enter a shell command to execute. Click on a file to add it to the buffer." -msgstr "" -"シェルコマンドを入力して下さい。ファイル/ディレクトリをあらかじめ選択しておく" -"か、クリックするとパラメ-タとしてコマンドラインに追加されます。" - -#: minibuffer.c:276 -msgid "" -"Enter a file name pattern to select all matching files:\n" -"\n" -"? means any character\n" -"* means zero or more characters\n" -"[aA] means 'a' or 'A'\n" -"[a-z] means any character from a to z (lowercase)\n" -"*.png means any name ending in '.png'" -msgstr "" -"選択を希望するファイル総てに適合するパターンを入力して下さい:\n" -"\n" -"? 任意の1文字に一致します\n" -"* ゼロ文字以上の総ての文字列に一致します\n" -"[aA] 'a' 又は 'A' に一致します\n" -"[a-z] 'a' から 'z' まで(小文字)のいずれか1文字に一致します\n" -"*.png '.png'で終わる総てのアイテムに適合します" - -#: minibuffer.c:288 -msgid "" -"Enter a pattern to match for files to be shown. An empty filter turns the " -"filter off." -msgstr "" -"表示したいファイルに合致するパターンを入力して下さい。パターンを指定しない場" -"合はフィルタリングを解除します。\n" -"\n" -"パターンによるファイルグロブが行われ、合致したものだけが表示されます。'フィル" -"タリングをディレクトリにも適用' が 'ON' の時のみ、ディレクトリもグロビング対" -"象になります。\n" -"(ワイルドカードやメタキャラクタが使用可能。参照 : (j)man 7 glob )" - -#: minibuffer.c:908 -msgid "Invalid Find condition" -msgstr "無効な検索条件です" - -#: mount.c:103 -#, c-format -msgid "File system table \"%s\" not found, cannot monitor system mounts" -msgstr "" -"ファイルシステムテーブル \"%s\" が見つからず、システムのマウントが監視で来ま" -"せん" - -#: mount.c:393 -#, c-format -msgid "%s total, %s used, %s free (%.1f %%)" -msgstr "%s 合計, %s 使用中, %s 空き (%.1f %%)" - -#: options.c:275 -msgid "ROX-Filer has converted your Options file to the new XML format" -msgstr "ROX-Filer はオプション設定ファイルを、新規 XML 形式に変換しました" - -#: options.c:535 options.c:1256 -msgid "(use default)" -msgstr "(デフォルトを使用)" - -#: options.c:805 -#, c-format -msgid "Internal error: %s unreadable" -msgstr "内部エラー: %s は読めません" - -#: options.c:914 -msgid "Options" -msgstr "オプション" - -#: options.c:959 -msgid "_Revert" -msgstr "戻す(_R)" - -#: options.c:965 -msgid "Restore all choices to how they were when the Options box was opened." -msgstr "全ての設定をオプションダイアログを開いたときの状態に戻します。" - -#: options.c:980 -#, c-format -msgid "" -"Choices will be saved as:\n" -"%s" -msgstr "" -"設定は以下に保存されます:\n" -"%s" - -#: options.c:988 -msgid "(saving disabled by CHOICESPATH)" -msgstr "(環境変数 CHOICESPATHにより保存できません)" - -#: options.c:1161 usericons.c:452 -#, c-format -msgid "Error saving %s: %s" -msgstr "保存エラー %s: %s" - -#: options.c:1793 -msgid "Missing '='" -msgstr "'=' がありません" - -#: panel.c:325 -#, c-format -msgid "Unable to replace '%s'" -msgstr "'%s'の置き換えに失敗しました" - -#: panel.c:329 -#, c-format -msgid "Unable to save '%s'" -msgstr "'%s' を保存できません" - -#: panel.c:532 -msgid "Your old panel file has been converted to the new XML format." -msgstr "今までのパネル設定ファイルは新規 XML 形式に変換されました。" - -#: panel.c:640 -msgid "" -"You have tried to close a panel via the window manager - I usually find that " -"this is accidental... really close?" -msgstr "" -"おそらく何かのアクシデントと思われますが、ウィンドウマネージャがパネルを閉じ" -"ようとしています。 ...本当に閉じますか?" - -#: panel.c:741 -msgid "Missing < or > in panel config file" -msgstr "パネル設定ファイル内で '<' 又は '>' が、欠けています" - -#: panel.c:1613 -#, c-format -msgid "Error saving panel %s: %s" -msgstr "パネル %s を保存できません: %s" - -#: panel.c:1938 -msgid "Applet quit without ever creating a widget!" -msgstr "アプレットはウィジェットを作成せずに終了されました!" - -#: panel.c:2034 -#, c-format -msgid "" -"Error running applet:\n" -"%s" -msgstr "" -"アプレットの実行エラー:\n" -"%s" - -#: panel.c:2690 -msgid "Are you sure you want to remove this panel from the desktop?" -msgstr "本当にこのパネルをデスクトップから取り除きますか?" - -#: panel.c:2693 panel.c:2720 -msgid "Remove Panel" -msgstr "パネルを削除" - -#: panel.c:2716 -msgid "Panel Options..." -msgstr "パネル・オプション..." - -#: panel.c:2801 -#, c-format -msgid "Xinerama monitor %d unavailable" -msgstr "Xinerama モニタ %d は利用できません" - -#: panel.c:2836 -msgid "Top" -msgstr "上端" - -#: panel.c:2838 -msgid "Bottom" -msgstr "下端" - -#: panel.c:2840 -msgid "Left" -msgstr "左端" - -#: panel.c:2842 -msgid "Right" -msgstr "右端" - -#: panel.c:2844 -msgid "Default" -msgstr "デフォルト" - -#: panel.c:2848 -msgid "Unknown side" -msgstr "不明な端部" - -#: pinboard.c:354 -msgid "Your old pinboard file has been converted to the new XML format." -msgstr "今までのピンボード設定ファイルは新規 XML 形式に変換されました。" - -#: pinboard.c:711 -msgid "" -"The backdrop handler must be an application directory. Drag an application " -"directory into the Set Backdrop dialog box, or (for programmers) pass it to " -"the SOAP SetBackdropApp method." -msgstr "" -"背景の表示プログラムはアプリケーションディレクトリ形式である必要があります。" -"アプリケーションディレクトリを背景設定ダイアログボックスにドラッグ&ドロップし" -"て下さい。\n" -"又は (for programmers) アプリケーションディレクトリを SOAP SetBackdropApp " -"method に渡して下さい。\n" -"※ アプリケーションディレクトリ、SOAP に関しては以下をご覧下さい。\n" -"file:///usr/apps/ROX-Filer/Help/Manual.html#AppDir\n" -"file:///usr/apps/ROX-Filer/Help/Manual.html#soap\n" -"※ 背景設定プログラム関しては以下をご覧下さい。\n" -"http://rox.sourceforge.net/phpwiki/index.php/Wallpaper" - -#: pinboard.c:730 -msgid "" -"You can only set the backdrop to an image or to a program which knows how to " -"manage ROX-Filer's backdrop.\n" -"\n" -"Programmers: the application's AppInfo.xml must contain the CanSetBackdrop " -"element, as described in ROX-Filer's manual." -msgstr "" -"背景設定には、画像イメージ又は、ROX-Filer 用の背景表示プログラムを指定する事" -"ができます。\n" -"\n" -"(開発者へ) アプリケーションの AppInfo.xml には ROX-Filers manualに記載されて" -"いるようなCanSetBackdrop エレメントが必要です。" - -#: pinboard.c:750 -msgid "Set backdrop" -msgstr "背景を設定" - -#: pinboard.c:761 -msgid "Choose a style and drag an image in:" -msgstr "イメージをドラッグして表示方法を選択してください:" - -#: pinboard.c:774 -msgid "Centre the image without scaling it" -msgstr "イメージを背景エリア中央に、原寸で表示" - -#: pinboard.c:775 -msgid "Centre" -msgstr "中央" - -#: pinboard.c:776 -msgid "Scale the image to fit the backdrop area, without distorting it" -msgstr "" -"イメージの縦横比率を維持し、背景エリアサイズに納まるよう伸縮して表示(余白を容" -"認)" - -#: pinboard.c:778 -msgid "Scale" -msgstr "スケール" - -#: pinboard.c:779 -msgid "" -"Scale the image to fit the backdrop area, regardless of image dimensions - " -"overscale" -msgstr "" -"イメージの縦横比率を維持し、背景エリアを満たすよう伸縮して表示(はみ出しを容" -"認)" - -#: pinboard.c:781 -msgid "Fit" -msgstr "フィット" - -#: pinboard.c:782 -msgid "Stretch the image to fill the backdrop area" -msgstr "イメージの縦横比率を無視し、背景エリアサイズに伸縮して表示" - -#: pinboard.c:783 -msgid "Stretch" -msgstr "伸縮" - -#: pinboard.c:784 -msgid "Tile the image over the backdrop area" -msgstr "イメージを背景エリアに、タイル状に並べて表示" - -#: pinboard.c:785 -msgid "Tile" -msgstr "タイル" - -#: pinboard.c:790 -msgid "Drop an image here" -msgstr "画像をここにドラッグ&ドロップしてください" - -#: pinboard.c:851 -msgid "" -"No pinboard was in use... the 'Default' pinboard has been selected. Use 'rox " -"-p=Default' to turn it on in future." -msgstr "" -"ピンボードが使用されていなかったので、デフォルトピンボードが設定されました。 " -"以後、ピンボードを使用するなら rox-p=Default' で起動します。" - -#: pinboard.c:945 -msgid "" -"Only files (and certain applications) can be used to set the background " -"image." -msgstr "" -"画像ファイル(または特定のアプリケーション)だけが背景に設定できます。 image." - -#: pinboard.c:1602 -msgid "Missing '>' in icon label" -msgstr "アイコン名に '>' が見つかりません" - -#: pinboard.c:1611 -msgid "Missing ',' after icon label" -msgstr "アイコン名の後に ',' が見つかりません" - -#: pinboard.c:1699 -#, c-format -msgid "Error saving pinboard %s: %s" -msgstr "ピンボード %s の保存に失敗: %s" - -#: pinboard.c:2244 -msgid "Backdrop..." -msgstr "背景を設定" - -#: pinboard.c:2247 -msgid "Add Panel" -msgstr "パネルを追加" - -#: pinboard.c:2341 -#, c-format -msgid "" -"Error loading backdrop image:\n" -"%s\n" -"Backdrop removed." -msgstr "" -"背景イメージの読み込みに失敗:\n" -"%s\n" -"背景は削除されました。" - -#: pixmaps.c:999 -#, c-format -msgid "" -"Can't delete thumbnails in %s:\n" -"%s" -msgstr "" -"%s のサムネイルを削除できません:\n" -"%s" - -#: pixmaps.c:1020 -msgid "There are no thumbnails to delete" -msgstr "削除するサムネイルはありません" - -#: pixmaps.c:1033 -msgid "Purge thumbnails disk cache" -msgstr "サムネイルのキャッシュを削除" - -#: remote.c:722 -#, c-format -msgid "Unknown style '%s'" -msgstr "不明なスタイル'%s'" - -#: remote.c:744 -#, c-format -msgid "Unknown details type '%s'" -msgstr "不明な詳細の種類'%s'" - -#: remote.c:772 -#, c-format -msgid "Unknown sorting type '%s'" -msgstr "不明な並べ変え方法'%s'" - -#: remote.c:1247 -#, c-format -msgid "Attempt to invoke unknown SOAP method '%s'" -msgstr "不明な SOAP 方式 '%s' を試します。" - -#: run.c:99 run.c:152 -#, c-format -msgid "Program %s not found - deleted?" -msgstr "プログラム %s がありません - 削除しましたか?" - -#: run.c:302 -#, c-format -msgid "File doesn't exist, or I can't access it: %s" -msgstr "ファイルが存在していないかアクセスできません: %s" - -#: run.c:307 -#, c-format -msgid "I don't know how to open '%s'" -msgstr "'%s'を開く方法が分かりません" - -#: run.c:338 -#, c-format -msgid "'%s' is not a valid URI" -msgstr "'%s' は有効な URI では有りません。" - -#: run.c:349 -#, c-format -msgid "%s not accessable" -msgstr "'%s' にアクセスできません" - -#: run.c:357 -#, c-format -msgid "Non-local URL %s" -msgstr "非ローカル URL %s" - -#: run.c:374 -#, c-format -msgid "%s: no handler for %s" -msgstr "%s: %s へのハンドラでは有りません" - -#: run.c:394 -msgid "" -"Application:\n" -"This is an application directory - you can run it as a program, or open it " -"(hold down Shift while you open it). Most applications provide their own " -"help here, but this one doesn't." -msgstr "" -"アプリケーション:\n" -"これはプログラムとして実行可能なアプリケーションディレクトリです(内容を 確認" -"するには Shift キーを押しながらクリックします)。 ここには通常、アプリケーショ" -"ンのヘルプも格納されますが、これには含まれていません。" - -#: run.c:478 -#, c-format -msgid "Could not send data to program: %s" -msgstr "データをプログラムに送れません: %s" - -#: run.c:508 -#, c-format -msgid "Could not read link: %s" -msgstr "リンクを読めません: %s" - -#: run.c:536 -#, c-format -msgid "Broken symlink (or you don't have permission to follow it): %s" -msgstr "" -"壊れたシンボリックリンク(もしくはリンク元に対するパーミッションがありませ" -"ん): %s" - -#: run.c:573 -#, c-format -msgid "" -"No run action specified for files of this type (%s/%s) - you can set a run " -"action by choosing `Set Run Action' from the File menu, or you can just drag " -"the file to an application.%s" -msgstr "" -"この種類(%s/%s)のファイルに対応するアプリが設定されていません - アイコンを右" -"クリックして「対応アプリの設定」を選んでください。もしくはアイコンを直接アプ" -"リにドラッグしてください。%s" - -#: run.c:579 -msgid "" -"\n" -"\n" -"Note: If this is a computer program which you want to run, you need to set " -"the execute bit by choosing Permissions from the File menu." -msgstr "" -"\n" -"\n" -"注意:もしこれが実行可能なプログラムなら、ファイルメニューの'パーミッション'、" -"又は、'プロパティ' の項で、実行ビットをセットする必要が有ります。" - -#: run.c:753 -#, c-format -msgid "" -"Executable '%s' is world-writeable! Refusing to run. Please change the " -"permissions now (this problem may have been caused by a bug in earlier " -"versions of the filer).\n" -"\n" -"Having (non-symlink) run actions world-writeable means that other people who " -"use your computer can replace your run actions with malicious versions.\n" -"\n" -"If you trust everyone who could write to these files then you needn't worry. " -"Otherwise, you should check, or even just delete, all the existing run " -"actions." -msgstr "" -"実行ファイル '%s' は書き込み保護がされていません。実行は拒否します。パ-ミッ" -"ションを設定し直してください。(これは ROX の初期バ-ジョンに由来するバグかもし" -"れません)\n" -"\n" -"シンボリックリンクでない実行ファイルが書き込み保護されていないということは、" -"悪意のある改竄が可能だということです。\n" -"\n" -"利用する全てのユ-ザが信頼できるなら心配はいりませんが、そうでない場合は完璧な" -"チェックを行うか、わずかでも不安の残るプログラムは全て削除すべきです。" - -#: run.c:766 -msgid "go-w (Fix security problem)" -msgstr "go-w (セキュリティ的処置)" - -#: support.c:272 -msgid "B" -msgstr "B" - -#: support.c:351 -msgid "byte" -msgstr "byte" - -#: support.c:1596 support.c:1650 -#, c-format -msgid "Failed to open and stat file '%s': %s" -msgstr "'%s'のオープンと調査に失敗しました : %s" - -#: support.c:1607 support.c:1661 -#, c-format -msgid "Failed to mmap file '%s': %s" -msgstr "ファイル '%s' のメモリへの割付けに失敗しました : %s" - -#: toolbar.c:113 -msgid "Close" -msgstr "閉じる" - -#: toolbar.c:113 -msgid "Close filer window" -msgstr "ファイラーウィンドウを閉じる" - -#: toolbar.c:117 -msgid "Up" -msgstr "上へ" - -#: toolbar.c:117 -msgid "Change to parent directory" -msgstr "親ディレクトリに移動" - -#: toolbar.c:121 -msgid "Home" -msgstr "ホーム" - -#: toolbar.c:121 -msgid "Change to home directory" -msgstr "ホームディレクトリに移動" - -#: toolbar.c:125 -msgid "Bookmarks" -msgstr "ブックマーク" - -#: toolbar.c:125 -msgid "Bookmarks menu" -msgstr "ブックマークメニュー" - -#: toolbar.c:129 -msgid "Scan" -msgstr "スキャン" - -#: toolbar.c:129 -msgid "Rescan directory contents" -msgstr "ディレクトリの内容を読み直す" - -#: toolbar.c:133 -msgid "Change icon size" -msgstr "アイコンを拡大/縮小(左/右クリック)" - -#: toolbar.c:137 -msgid "Automatic size mode" -msgstr "ウィンドウのサイズを最適化" - -#: toolbar.c:141 -msgid "Show extra details" -msgstr "詳細を表示/非表示" - -#: toolbar.c:145 -msgid "Sort" -msgstr "ソート" - -#: toolbar.c:145 -msgid "Change sort criteria" -msgstr "ソート条件を変更" - -#: toolbar.c:149 -msgid "Hidden" -msgstr "隠しファイル" - -#: toolbar.c:149 -msgid "" -"Left: Show/hide hidden files\n" -"Right: Show/hide thumbnails" -msgstr "" -"左クリック: 隠しファイルの表示/非表示\n" -"右クリック: サムネイルの表示/非表示" - -#: toolbar.c:154 -msgid "Select all/invert selection" -msgstr "全てを選択/選択を反転(左/右クリック)" - -#: toolbar.c:158 -msgid "Show ROX-Filer help" -msgstr "ROX-Filerのヘルプを表示" - -#: toolbar.c:221 -#, c-format -msgid " (%u hidden)" -msgstr " (%u 個の隠しファイル)" - -#: toolbar.c:229 tips:58 -msgid "items" -msgstr "アイテム" - -#: toolbar.c:229 -msgid "item" -msgstr "アイテム" - -#: toolbar.c:232 -#, c-format -msgid "No items%s" -msgstr "アイテム無し%s" - -#: toolbar.c:251 -#, c-format -msgid "%u selected (%s)" -msgstr "%u 個を選択(%s)" - -#: toolbar.c:445 -msgid "Sort by name" -msgstr "名前でソート" - -#: toolbar.c:445 -msgid "Sort by type" -msgstr "種類でソート" - -#: toolbar.c:445 -msgid "Sort by date" -msgstr "日付でソート" - -#: toolbar.c:446 -msgid "Sort by size" -msgstr "サイズでソート" - -#: toolbar.c:446 -msgid "Sort by owner" -msgstr "所有者でソート" - -#: toolbar.c:446 -msgid "Sort by group" -msgstr "グループでソート" - -#: toolbar.c:480 -msgid "ascending" -msgstr "昇順" - -#: toolbar.c:480 -msgid "descending" -msgstr "降順" - -#: type.c:214 -msgid "Sym link" -msgstr "シンボリックリンク" - -#: type.c:216 -msgid "Mount point" -msgstr "マウントポイント" - -#: type.c:218 -msgid "App dir" -msgstr "アプリケーションディレクトリ" - -#: type.c:225 -msgid "Dir" -msgstr "Dir" - -#: type.c:227 -msgid "Char dev" -msgstr "キャラクタデバイス" - -#: type.c:229 -msgid "Block dev" -msgstr "ブロックデバイス" - -#: type.c:231 -msgid "Pipe" -msgstr "パイプ" - -#: type.c:233 -msgid "Socket" -msgstr "ソケット" - -#: type.c:235 -msgid "Door" -msgstr "Door" - -#: type.c:238 -msgid "Unknown" -msgstr "不明" - -#: type.c:554 -msgid "" -"Enter a shell command which will load \"$@\" into a suitable program. Eg:\n" -"\n" -"gimp \"$@\"" -msgstr "" -" \"$@\" を扱うのに適切なシェルコマンドを入力してください。\n" -"例:\n" -"\n" -"gimp \"$@\"" - -#: type.c:735 -msgid "This is not a program! Give me an application instead!" -msgstr "これはプログラムではありません。別のアプリを指定してください。" - -#: type.c:795 -msgid "No run action defined" -msgstr "対応アプリが設定されていません" - -#: type.c:799 -#, c-format -msgid "Error in handler %s: %s" -msgstr "%s にエラ-: %s" - -#: type.c:814 -#, c-format -msgid "Invalid application %s (bad AppRun)" -msgstr "無効なアプリケーション %s (AppRun 不良)" - -#: type.c:825 -#, c-format -msgid "Non-executable %s" -msgstr "実行属性の無い %s" - -#: type.c:858 -msgid "Set run action" -msgstr "対応アプリを設定" - -#: type.c:864 -msgid "" -"If a handler for the specific type isn't set up, use this as the default." -msgstr "" -"このファイル形式の取扱いが設定されていない場合、これをデフォルトの動作に使用" -"します。" - -#: type.c:866 -#, c-format -msgid "Set default for all `%s/'" -msgstr "`%s/' 全てに適用する" - -#: type.c:870 -msgid "Use this application for all files with this MIME type." -msgstr "この MIME 形式のファイル全てにこのアプリを対応させる。" - -#: type.c:872 -#, c-format -msgid "Only for the type `%s' (%s/%s)" -msgstr "`%s'形式(%s/%s)のみに適用する" - -#: type.c:878 -msgid "Drop a suitable application here" -msgstr "関連づけるアプリケーションをここにドロップ" - -#: type.c:893 -msgid "OR" -msgstr "もしくは" - -#: type.c:900 -msgid "Enter a shell command:" -msgstr "シェルコマンドを入力してください:" - -#: type.c:929 -msgid "_Use Command" -msgstr "使用コマンド(_U)" - -#: type.c:959 -msgid "" -"A run action already exists and is quite a big program - are you sure you " -"want to delete it?" -msgstr "" -"既に対応アプリが定義されており、かなり大きなプログラムになっています。本当に" -"削除しますか?" - -#: type.c:970 -#, c-format -msgid "Can't remove %s: %s" -msgstr "%s を削除できません: %s" - -#: type.c:1007 -msgid "Choices saving is disabled by CHOICESPATH variable" -msgstr "環境変数 CHOICESPATH により、選択は保存されません。" - -#: type.c:1309 -#, c-format -msgid "" -"Failed to create symlink '%s':\n" -"%s" -msgstr "" -"シンボリックリンク '%s' が作れませんでした :\n" -"%s" - -#: usericons.c:179 -msgid "The pathname you gave does not exist. The icon has not been changed." -msgstr "指定されたパスは存在しません。アイコンは変更されません。" - -#: usericons.c:189 usericons.c:618 -msgid "" -"Unable to load image file -- maybe it's not in a format I understand, or " -"maybe the permissions are wrong?\n" -"The icon has not been changed." -msgstr "" -"イメージファイルが取り込めません。ROX が扱える形式でないか、パーミッションが" -"適切でないかでしょう\n" -"アイコンは変更されません。" - -#: usericons.c:235 -#, c-format -msgid "Really delete icon '%s'?" -msgstr "アイコン'%s'を削除しますか?" - -#: usericons.c:239 -#, c-format -msgid "" -"Can't delete '%s':\n" -"%s" -msgstr "" -"'%s'を削除できません:\n" -"%s" - -#: usericons.c:272 -msgid "Set icon" -msgstr "アイコンを設定" - -#: usericons.c:281 -msgid "" -"Use a copy of the image as the default for all files of these MIME types." -msgstr "画像をこの MIME 形式全般のアイコンに設定します。" - -#: usericons.c:283 -#, c-format -msgid "Set icon for all `%s/'" -msgstr "アイコンを全ての`%s/' に適用する" - -#: usericons.c:288 -msgid "Use a copy of the image for all files of this MIME type." -msgstr "画像をこの MIME 形式全般のデフォルトアイコンに設定します。" - -#: usericons.c:290 -#, c-format -msgid "For all files of type `%s' (%s/%s)" -msgstr "総ての`%s'形式(%s/%s)に適用する" - -#: usericons.c:296 -msgid "" -"Add the file and image filenames to your personal list. The setting will be " -"lost if the image or the file is moved." -msgstr "" -"このファイルとアイコンの名前はユーザー用個人リストに追加登録されます。設定画" -"像またはこのファイルを移動すると設定は失われます。" - -#: usericons.c:299 -#, c-format -msgid "Only for the file `%s'" -msgstr "`%s' のみに適用する" - -#: usericons.c:307 -msgid "" -"Copy the image inside the directory, as a hidden file called '.DirIcon'. All " -"users will then see the icon, and you can move the directory around safely. " -"This is usually the best option if you can write to the directory." -msgstr "" -"ディレクトリ内に '.DirIcon' という画像の隠しファイルを保存します。全てのユー" -"ザにアイコンが表示され、移動してもアイコンは失われません。書き込み権限を与え" -"られている場合、この設定を選ぶ事をお薦めします。" - -#: usericons.c:313 -msgid "Copy image into directory" -msgstr "画像をディレクトリにコピー" - -#: usericons.c:319 -msgid "Drop an icon file here" -msgstr "アイコンファイルをここにドロップ" - -#: usericons.c:589 -msgid "Setting icon disabled by CHOICESPATH" -msgstr " 環境変数 CHOICESPATH により、アイコンが設定できません" - -#: usericons.c:633 -#, c-format -msgid "" -"Error creating image '%s':\n" -"%s" -msgstr "" -"画像 '%s' 作成エラー:\n" -"%s" - -#: view_details.c:957 -msgid "Mono font" -msgstr "等幅フォント" - -#: view_details.c:958 -msgid "Font for displaying mono-spaced text" -msgstr "テキスト表示用の固定幅フォント" - -#: view_details.c:1059 -msgid "_Name" -msgstr "名前(_N)" - -#: view_details.c:1062 -msgid "_Type" -msgstr "タイプ(_T)" - -#: view_details.c:1065 -msgid "_Permissions" -msgstr "パーミッション(_P)" - -#: view_details.c:1070 -msgid "_Owner" -msgstr "所有者(_O)" - -#: view_details.c:1072 -msgid "_Group" -msgstr "グループ(_G)" - -#: view_details.c:1074 -msgid "_Size" -msgstr "サイズ(_S)" - -#: view_details.c:1080 -msgid "Last _Modified" -msgstr "最終変更日(_M)" - -#: tips:1 -msgid "Filer windows" -msgstr "ファイラーウィンドウ" - -#: tips:2 -msgid "Auto-resize filer windows" -msgstr "ウィンドウサイズの自動調整" - -#: tips:3 -msgid "Never automatically resize" -msgstr "サイズを自動的には変更しない" - -#: tips:4 -msgid "" -"You'll have to resize windows manually, using the window manager, the " -"`Resize Window' menu entry or by double-clicking on the window background." -msgstr "" -"ウィンドウをリサイズする場合は、ウィンドウマネージャの作法に従うか、ファイ" -"ラーウィンドウ内のスペースをダブルクリックする事により、手動でリサイズしま" -"す。" - -#: tips:5 -msgid "Resize when changing the display style" -msgstr "表示方法を変更したらリサイズする" - -#: tips:6 -msgid "" -"Changing the size of the icons or which details are displayed will resize " -"the window for you." -msgstr "" -"アイコンサイズ変更時、詳細表示モード切替え時に、自動的に適切なサイズに調節(リ" -"サイズ)します。" - -#: tips:7 -msgid "Always resize" -msgstr "常にリサイズする" - -#: tips:8 -msgid "" -"The filer will resize windows whenever it seems useful (that is, when " -"changing directory or display style)." -msgstr "" -"リサイズが有効と思われる場合(ディレクトリ変更時、表示形式変更時など)、常に自" -"動的にリサイズします。" - -#: tips:9 -msgid "Largest window size:" -msgstr "ウィンドウの最大サイズ:" - -#: tips:10 -msgid "%" -msgstr "%" - -#: tips:11 -msgid "" -"The largest size, as a percentage of the screen size, that the auto-resizer " -"will resize a window to." -msgstr "" -"画面全体に対する最大のサイズ。自動的にサイズを変更する際に許可する最大のサイ" -"ズ。" - -#: tips:12 -msgid "Window behaviour" -msgstr "ウィンドウの動作" - -#: tips:13 -msgid "Short titlebar flags" -msgstr "タイトルバーへの状態表示を略記する" - -#: tips:14 -msgid "" -"Use single letters instead of words for Scanning, All and Thumbs indicators " -"in the titlebar." -msgstr "" -"タイトルバーに、スキャン中は'+S'、全て表示は'+A'、サムネイル表示は'+T' とファ" -"イラーの状態の簡略表示を追加します。" - -#: tips:15 -msgid "Unique windows" -msgstr "重複したウィンドウを開かない" - -#: tips:16 -msgid "" -"If you open a directory and that directory is already displayed in another " -"window, then this option causes the other window to be closed." -msgstr "" -"開こうとしたディレクトリが、既に別ウィンドウとして開かれている場合、旧ウィン" -"ドウを自動的に閉じます。" - -#: tips:17 -msgid "New window on button 1" -msgstr "左ボタン(第 1 ボタン)で新しいウィンドウを開く" - -#: tips:18 -msgid "" -"Clicking with mouse button 1 (usually the left button) opens a directory in " -"a new window with this turned on. Clicking with the button-2 (middle) will " -"reuse the current window." -msgstr "" -"'ON' の場合、第 1 ボタン(通常は左ボタン)でディレクトリをクリックすると、新し" -"いウィンドウで開き、中ボタンをクリックすると現在のウィンドウで開きます。" - -#: tips:19 -msgid "Single-click navigation" -msgstr "シングルクリックで操作する" - -#: tips:20 tips:116 -msgid "" -"Clicking on an item opens it with this on. Hold down Control to select the " -"item instead. If off, clicking once selects an item; double click to open " -"things." -msgstr "" -"'ON' の場合、シングルクリックでアイテムを開き、アイテムを選択する場合はCtrl" -"キーを押しながらクリック。'OFF' の場合は シングルクリックで選択、ダブルクリッ" -"クでアイテムを開きます。" - -#: tips:21 -msgid "Double-click on background resizes" -msgstr "背景のダブルクリックでウィンドウをリサイズする" - -#: tips:22 -msgid "" -"If on then double clicking on the window background resizes the window, just " -"like clicking on the Automatic size mode button in the toolbar." -msgstr "" -"ファイラーウィンドウ背景のダブルクリックで、ツールバーのウィンドウサイズ最適" -"化ボタンをクリックしたのと同様に、ウィンドウをリサイズします。" - -#: tips:23 -msgid "Sorting" -msgstr "ソート" - -#: tips:24 -msgid "Directories come first (for sort by name)" -msgstr "ディレクトリを先に表示(名前で並べ変える場合)" - -#: tips:25 -msgid "" -"If this is on then directories will always appear before anything else when " -"sorting by name." -msgstr "'ON' で「名前でソ-ト」の場合、常にディレクトリを先に表示します。" - -#: tips:26 -msgid "Capitalised names first (for sort by name)" -msgstr "大文字を先に表示(名前でソートの場合)" - -#: tips:27 -msgid "" -"If on, all filenames starting with a capital letter come before filenames " -"starting with lowercase ones." -msgstr "" -"'ON' の場合、総ての大文字から始まるファイル名のものを、小文字から始まるファイ" -"ルよりも先に表示します。" - -#: tips:29 -msgid "Default settings for new windows" -msgstr "新規ウィンドウのデフォルト設定" - -#: tips:30 -msgid "Inherit options from source window" -msgstr "元のウィンドウのオプションを引き継ぐ" - -#: tips:31 -msgid "" -"If this is on then display options for a new window are inherited from the " -"source window if possible, otherwise they are set to the defaults below." -msgstr "" -"'ON' の場合、新規ウィンドウは可能な限り親ウィンドウの現在の表示法を引き継" -"ぎ、'OFF' の場合、親ウィンドウの現在の表示法にかかわらず、デフォルトのオプ" -"ション設定に従います。" - -#: tips:32 -msgid "View type:" -msgstr "表示形式:" - -#: tips:35 -msgid "Sort by:" -msgstr "ソート条件:" - -#: tips:37 tips:54 -msgid "Type" -msgstr "タイプ" - -#: tips:38 -msgid "Date" -msgstr "日付" - -#: tips:40 -msgid "Show hidden files" -msgstr "隠しファイルを表示" - -#: tips:41 -msgid "" -"If this is on then files whose names start with a dot are shown too, " -"otherwise they are hidden." -msgstr "" -"'ON' の場合、ドットで始まる隠し属性ファイルも表示し、'OFF' の場合は表示しませ" -"ん。" - -#: tips:42 -msgid "Show extended attribute indicator" -msgstr "拡張属性インジケータを表示" - -#: tips:43 -msgid "" -"If this is on then files which have one or more extended attributes set will " -"have an emblem added to indicate this." -msgstr "" -"'ON' の場合、一つ以上の拡張属性をセットされたファイルは、それを明示する為、エ" -"ンブレムが付け加えられます。" - -#: tips:44 -msgid "Icon View" -msgstr "アイコン表示" - -#: tips:45 -msgid "Default size:" -msgstr "デフォルトのサイズ:" - -#: tips:46 -msgid "Huge Icons" -msgstr "特大アイコン" - -#: tips:47 tips:217 -msgid "Large Icons" -msgstr "大きいアイコン" - -#: tips:48 tips:216 -msgid "Small Icons" -msgstr "小さいアイコン" - -#: tips:50 -msgid "Default details:" -msgstr "デフォルトの表示情報:" - -#: tips:51 -msgid "No details" -msgstr "なし" - -#: tips:56 -msgid "Automatic small icons:" -msgstr "小さいアイコンに自動的に変更:" - -#: tips:57 -msgid "Change at:" -msgstr "この数で変更:" - -#: tips:59 -msgid "" -"When automatic icon sizing is selected: If the directory contains this many " -"items then it will be shown using Small Icons, otherwise Large Icons will be " -"used." -msgstr "" -"デフォルトのサイズが「自動」の場合、アイテム数がこの数値を越えた時、小さいア" -"イコンで表示します。「自動」以外の場合は指定サイズのままで表示します。" - -#: tips:60 -msgid "Max width (Large icons):" -msgstr "ファイル名の最大幅(大きいアイコン):" - -#: tips:61 tips:64 -msgid "pixels" -msgstr "ピクセル" - -#: tips:62 -msgid "" -"Text wider than this is broken onto two lines in Large Icons mode. In Huge " -"Icons mode, text is wrapped when 50% wider than this." -msgstr "" -"'大きいアイコンモード'の時、ファイル/ディレクトリ名表示がこの幅より広いと折り" -"返します。'特大アイコンモード'の時の折り返し幅は 50%増しとなります。" - -#: tips:63 -msgid "(Small Icons):" -msgstr "(小さいアイコン):" - -#: tips:65 -msgid "Maximum width for the text beside a Small Icon." -msgstr "「小さいアイコン」の横に表示するファイル名の最大幅" - -#: tips:66 -msgid "Order small icons vertically" -msgstr "小さいアイコンを縦方向順に配置" - -#: tips:67 -msgid "" -"If this option is on, then small icons are arranged in columns, not rows." -msgstr "'ON' の場合、横方向順ではなく、縦方向順に小さいアイコンをならべます" - -#: tips:68 -msgid "Order large icons vertically" -msgstr "大きいアイコンを縦方向順に配置" - -#: tips:69 -msgid "" -"If this option is on, then large icons are arranged in columns, not rows." -msgstr "'ON' の場合、横方向順ではなく、縦方向順に大きいアイコンをならべます" - -#: tips:71 -msgid "Show column headings" -msgstr "項目の標題を表示" - -#: tips:72 -msgid "If this is on then column headings will be shown in the list view." -msgstr "" -"'ON' の場合、詳細表示の際、ツールバー下部に情報項目の標題バーを表示します。" - -#: tips:73 -msgid "Show full type" -msgstr "タイプの詳細を表示" - -#: tips:74 -msgid "" -"If this is on then the full description of each object's type will be show " -"rather than a short summary of its basic type." -msgstr "" -"'ON' の場合、アイテムのタイプを基本形の要約ではなく、詳細に表示します。" - -#: tips:75 -msgid "Tools/Minibuffer" -msgstr "ツールバー/ミニバッファ" - -#: tips:76 -msgid "Toolbar" -msgstr "ツールバー" - -#: tips:77 -msgid "Toolbar type:" -msgstr "ツールバーの種類:" - -#: tips:78 -msgid "No toolbar" -msgstr "ツールバーなし" - -#: tips:79 -msgid "Icons only" -msgstr "アイコンのみ" - -#: tips:80 -msgid "Text under icons" -msgstr "アイコンの下に文字を表示" - -#: tips:81 -msgid "Text beside icons" -msgstr "アイコンの横に文字を表示" - -#: tips:82 -msgid "Show totals of items" -msgstr "アイテムの総数を表示" - -#: tips:83 -msgid "" -"Show the number of items displayed in a filer window, as well as the number " -"of hidden items (if any). When there's a selection, show the number of " -"selected items and their combined size." -msgstr "" -"ファイラーウィンドウに表示されているアイテムの総数を表示します。隠しファイル" -"がある場合、その数も表示されます。アイテムが選択されている場合は、その数と合" -"計サイズを表示します。" - -#: tips:84 -msgid "Select the buttons you want on the bar:" -msgstr "ツールバーに表示するボタンを選んでください:" - -#: tips:85 -msgid "Width of toolbar sets minimum width of window" -msgstr "小さなウィンドウの時もツールバーをすべて表示" - -#: tips:86 -msgid "" -"Each filer window is constrained to be wide enough to show the whole of the " -"toolbar" -msgstr "" -"ファイラウィンドウを開くとき、少なくともツールバー全体が表示できるようなウィ" -"ンドウサイズになるよう強制します(アイテム数が少ない場合でも総てのツールが表示" -"されます)" - -#: tips:87 -msgid "Minibuffer" -msgstr "ミニバッファ" - -#: tips:88 -msgid "Beep if Tab-completion fails" -msgstr "タブ補完に失敗したときは警告音を鳴らす" - -#: tips:89 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if " -"nothing happens (eg, because there are several possibilities and the next " -"letter varies)." -msgstr "" -"'パス入力'ミニバッファ内で、タブキーを押しても変化が無い時(次の文字侯補が複数" -"有る場合など)、警告音を鳴らします。" - -#: tips:90 -msgid "Beep if there are several matches" -msgstr "補完候補が複数あるときは音を鳴らす" - -#: tips:91 -msgid "" -"When using the `Enter Path...' minibuffer and Tab is pressed, beep if there " -"is more than one matching file, even though some more letters were added." -msgstr "" -"'パス入力'ミニバッファ内で、タブキーを押した時、文字入力をさらに追加しても複" -"数のファイルに適合するような場合、警告音を鳴らします。" - -#: tips:94 -msgid "" -"When thumbnails are turned on, each image file in a directory is loaded and " -"a small thumbnail of it is shown." -msgstr "" -"サムネイルを有効にすると、ディレクトリ内の画像ファイルが小さなサムネイルで表" -"示されます。" - -#: tips:95 -msgid "Show image thumbnails" -msgstr "画像のサムネイルを表示" - -#: tips:96 -msgid "" -"This is the default setting for new windows. Use the Display menu to turn " -"thumbnails on and off for individual windows." -msgstr "" -"これが新規ウィンドウ起動時のデフォルト設定になりますが、 表示メニューにより、" -"各ウィンドウのサムネイル表示を、個別に ON/OFF することも出来ます。" - -#: tips:97 -msgid "Video thumbnails" -msgstr "ビデオ・サムネイル" - -#: tips:98 -msgid "Thumbnails cache" -msgstr "サムネイルのキャッシュ" - -#: tips:99 -msgid "" -"To speed things up, the generated thumbnails are stored in the hidden ~/." -"thumbnails directory. Click here to remove all the cached thumbnails. They " -"will be created again as needed." -msgstr "" -"速度を上げるため、生成したサムネイルは隠しディレクトリ ~/.thumbnails に保存さ" -"れます。ここをクリックすると保存したサムネイルを削除します。それらは必要に応" -"じて再生成されるでしょう。" - -#: tips:100 -msgid "Manage thumbnails" -msgstr "サムネイルの管理" - -#: tips:101 tips:158 -msgid "Pinboard" -msgstr "ピンボード" - -#: tips:102 -msgid "" -"When using a pinboard, you can drag files and applications onto the desktop " -"background to create shortcuts to them." -msgstr "" -"ピンボードは ROX 独特のデスクトップ管理機能です。様々なウィンドウマネージャ上" -"で、デスクトップにショートカットアイコンを配置し、背景を設定する機能を提供し" -"ます。ピンボード使用時(rox -h 参照)は、ファイラー画面上のアイテムをデスクトッ" -"プにドロップして、デスクトップアイコンを作ることが出来ます" - -#: tips:103 tips:213 -msgid "Appearance" -msgstr "外観" - -#: tips:104 -msgid "Foreground:" -msgstr "文字の色:" - -#: tips:105 -msgid "Text shadow:" -msgstr "文字の影:" - -#: tips:106 -msgid "Background:" -msgstr "背景の色:" - -#: tips:107 -msgid "No shadow" -msgstr "文字の影なし" - -#: tips:108 -msgid "Thin" -msgstr "細い" - -#: tips:109 -msgid "Thick" -msgstr "太い" - -#: tips:110 -msgid "Use custom font:" -msgstr "カスタムフォントを使う:" - -#: tips:111 -msgid "The font used for the text displayed under the icons" -msgstr "アイコンのテキスト(ラベル名)のフォントを指定します。" - -#: tips:112 -msgid "Fast scaling of images" -msgstr "画像のサイズ調整を高速にする" - -#: tips:113 -msgid "" -"Choose between the fast or slow method of scaling backdrop images. The slow " -"method can give better results." -msgstr "" -"'ON' の場合、背景画像のサイズ調整が高速になります。'OFF' の場合、速度は低下す" -"るがより高画質です。" - -#: tips:114 -msgid "Pinboard behaviour" -msgstr "ピンボードの動作" - -#: tips:115 -msgid "Single-click to open" -msgstr "シングルクリックで開く" - -#: tips:117 -msgid "Keep icons within screen limits" -msgstr "アイコンを画面内に収める" - -#: tips:118 -msgid "" -"If this is set, pinboard icons are always kept completely within screen " -"limits, including the label." -msgstr "" -"これを指定すると、デスクトップのアイコンが(テキスト)ラベルも含めて常に画面内" -"に収まるようになります。" - -#: tips:119 -msgid "Icon grid step:" -msgstr "アイコンのグリッド間隔:" - -#: tips:120 -msgid "Fine" -msgstr "細かい" - -#: tips:121 -msgid "Use a 2-pixel grid for positioning icons on the desktop." -msgstr "デスクトップ上でアイコンを 2 ピクセル単位で移動、配置。" - -#: tips:122 -msgid "Medium" -msgstr "中間" - -#: tips:123 -msgid "Use a 16-pixel grid for positioning icons on the desktop." -msgstr "デスクトップ上でアイコンを 16 ピクセル単位で移動、配置。" - -#: tips:124 -msgid "Coarse" -msgstr "粗い" - -#: tips:125 -msgid "Use a 32-pixel grid for positioning icons on the desktop." -msgstr "デスクトップ上でアイコンを 32 ピクセル単位で移動、配置。" - -#: tips:126 tips:128 -msgid "Iconified windows" -msgstr "最小化ウィンドウのアイコン表示" - -#: tips:127 -msgid "" -"Most window managers provide a way to iconify (or 'minimise') windows, and " -"various programs, including ROX-Filer, can be used to display the iconified " -"windows." -msgstr "" -"ピンボードを有効にした時、ROXファイラーを含む様々な起動中のプログラムは、デス" -"クトップにアイコン化することが出来ます" - -#: tips:129 -msgid "Show iconified windows" -msgstr "アイコン化したウィンドウを表示" - -#: tips:130 -msgid "" -"If this option is on, the filer will show each iconified window as a small " -"button on the pinboard. Requires a compatible window manager, and the " -"pinboard must be in use." -msgstr "" -"このオプションを利用すると、ファイラーウィンドウを最小化した際は、ピンボード" -"にアイコンとして表示されるようになります。(機能をサポートするウィンドウマネー" -"ジャ上でピンボードを使用している場合)。 " - -#: tips:131 -msgid "Show per workspace" -msgstr "ワークスペース毎に表示" - -#: tips:132 -msgid "" -"If this option is on, the filer will only show iconified windows associated " -"with the current workspace." -msgstr "" -"このオプションを利用すると、最小化アイコンは、カレントワークスペースのものの" -"みが表示されるようになります。" - -#: tips:133 -msgid "Iconify to the" -msgstr "アイコン化する場所" - -#: tips:134 -msgid "top-left" -msgstr "左上" - -#: tips:135 -msgid "top-right" -msgstr "右上" - -#: tips:136 -msgid "bottom-left" -msgstr "左下" - -#: tips:137 -msgid "bottom-right" -msgstr "右下" - -#: tips:138 -msgid ", going" -msgstr ", 並びかた" - -#: tips:139 -msgid "horizontally" -msgstr "水平に" - -#: tips:140 -msgid "vertically" -msgstr "垂直に" - -#: tips:141 -msgid "" -"Sometimes the filer doesn't know about your desktop furniture and puts " -"iconified windows under (for example) the Gnome panel. You can define a top " -"or bottom margin to avoid placing the icons there. The filer already knows " -"about its own panel." -msgstr "" -"ROX は、デスクトップ構成を認識し切れず、(例えば) Gnome パネルの下に最小化ウィ" -"ンドウ(のアイコン)を置くような場合も有ります。下の上部余白、下部余白の設定に" -"よりこれを回避することが出来ます。ROX パネルに関しては常に正常に認識されます" - -#: tips:142 -msgid "Top margin" -msgstr "上端余白" - -#: tips:143 -msgid "Height of no-go area at top of screen." -msgstr "画面最上部の表示禁止区域の高さ" - -#: tips:144 -msgid "Bottom margin" -msgstr "下端余白" - -#: tips:145 -msgid "Height of no-go area at bottom of screen." -msgstr "画面最下部の表示禁止区域の高さ" - -#: tips:146 -msgid "Left margin" -msgstr "左端余白" - -#: tips:147 -msgid "Width of no-go area at left of screen." -msgstr "画面左端部の表示禁止区域の幅" - -#: tips:148 -msgid "Right margin" -msgstr "右端余白" - -#: tips:149 -msgid "Width of no-go area at right of screen." -msgstr "画面右端部の表示禁止区域の幅" - -#: tips:150 -msgid "Desktop" -msgstr "デスクトップ" - -#: tips:151 -msgid "" -"When run by a session manager program (such as ROX-Session) the filer can " -"open up a panel and/or the pinboard. Here you configure which." -msgstr "" -"セッション・マネージャー・プログラム(ROX-Session のような)によって実行された" -"時、ファイラーはパネル、ピンボードのいずれか、又は両方を開くことができます。" -"下のいずれかを選んで下さい。" - -#: tips:152 -msgid "Panel only" -msgstr "パネルのみ" - -#: tips:153 -msgid "Only a panel is shown." -msgstr "パネルのみを表示します。" - -#: tips:154 -msgid "Pinboard only" -msgstr "ピンボードのみ" - -#: tips:155 -msgid "Only the pinboard is shown." -msgstr "ピンボードのみを表示します。" - -#: tips:156 -msgid "Panel and pinboard" -msgstr "パネルとピンボード" - -#: tips:157 -msgid "Both a panel and a pinboard are shown." -msgstr "パネルとピンボードを共に表示します。" - -#: tips:159 -msgid "Enter the name of the pinboard to show here." -msgstr "表示するピンボードの名前を入力して下さい。" - -#: tips:160 -msgid "Panel (obsolete)" -msgstr "パネル (廃止)" - -#: tips:161 -msgid "" -"Enter the name of the panel to show here. This option is now only used when " -"upgrading from an old version." -msgstr "" -"表示するパネルの名前を入力して下さい(この項目は旧バージョンからのアップグレー" -"ドの為だけに有ります)" - -#: tips:162 -msgid "Changes here take effect the next time the filer is run." -msgstr "変更は次回の rox 起動時に有効になります。" - -#: tips:163 -msgid "" -"The session manager activates these options by\n" -"using the -S or --rox-session argument to rox." -msgstr "" -"rox を -S 又は --rox-session オプションで起動した場合に、\n" -"セッション・マネージャは これらのオプションを有効にします" - -#: tips:164 -msgid "Action windows" -msgstr "確認ダイアログ" - -#: tips:165 -msgid "" -"Action windows appear when you start a background\n" -"operation, such as copying or deleting some files." -msgstr "" -"確認ダイアログは、バックグラウンド操作(ファイルのコピーや削除など)を始めよう" -"とした時に表示されます。" - -#: tips:166 -msgid "Auto-start (Quiet) these actions" -msgstr "以下を実行するときに確認を求めない:" - -#: tips:168 -msgid "Copy files without confirming first." -msgstr "ファイルをコピーするときに確認を求ません" - -#: tips:170 -msgid "Move files without confirming first." -msgstr "ファイルを移動/リネームするときに確認を求めません" - -#: tips:172 -msgid "Create links to files without confirming first." -msgstr "リンクを張るときに確認を求めません" - -#: tips:174 -msgid "Delete files without confirming first." -msgstr "ファイルを削除するときに確認を求めません" - -#: tips:175 -msgid "Mount" -msgstr "マウント" - -#: tips:176 -msgid "Mount and unmount filesystems without confirming first." -msgstr "マウント/アンマウントするときに確認を求めません" - -#: tips:177 -msgid "Default settings" -msgstr "デフォルトの設定" - -#: tips:179 -msgid "Don't confirm deletion of non-writeable items." -msgstr "書き込み禁止アイテムを削除するときも確認を求めません" - -#: tips:181 -msgid "Don't display so much information in the message area." -msgstr "ログメッセージの表示を簡略化します" - -#: tips:183 -msgid "Also change contents of subdirectories." -msgstr "サブディレクトリ以下の内容にも、作動を適用します" - -#: tips:186 -msgid "Mount commands" -msgstr "マウント コマンド" - -#: tips:187 -msgid "Mount command" -msgstr "マウント コマンド" - -#: tips:188 -msgid "The command used to mount a filesystem. If unsure, use \"mount\"." -msgstr "" -"ファイルシステムのマウントを行うコマンドです。\n" -"一般ユーザーでリムーバブルメディアを扱う時は、\n" -"pmount がおすすめです。\n" -"よく分からない場合は \"mount\" コマンドを利用\n" -"してください。" - -#: tips:189 -msgid "Unmount command" -msgstr "アンマウント コマンド" - -#: tips:190 -msgid "" -"The command used to unmount a filesystem. If unsure, use \"umount\" (yes, " -"without the first \"n\")." -msgstr "" -"ファイルシステムのアンマウントを行うコマンドです。\n" -"一般ユーザーでリムーバブルメディアを扱う時は、\n" -"pumount がおすすめです。\n" -"よく分からない場合は \"umount\" コマンドを利用して\n" -"ください。(u \"n\" mount ではないですよ)。" - -#: tips:191 -msgid "Eject command" -msgstr "イジェクト コマンド" - -#: tips:192 -msgid "The command used to eject removable media. If unsure, use \"eject\"." -msgstr "" -"リムーバブルメディアのイジェクトを行うコマンドです。よく分からない場合は " -"\"eject\" コマンドを利用してください。" - -#: tips:193 -msgid "Drag and Drop" -msgstr "ドラッグ&ドロップ" - -#: tips:194 -msgid "Dragging to icons" -msgstr "アイコンへのドラッグ" - -#: tips:195 -msgid "Allow dragging to icons in filer windows" -msgstr "ファイラーウィンドウでアイコンへのドラッグ動作を可能にする" - -#: tips:196 -msgid "" -"When this is on you can drag a file over a sub-directory or program in a " -"filer window. The item will highlight when you do this and dropping the file " -"will put it into that directory, or load it into the program." -msgstr "" -"'ON' の場合、ファイラーウィンドウ内のサブディレクトリやプログラムへのファイル" -"のドラッグが可能になります。操作中、アイテムは強調表示され、指定ディレクトリ" -"に コピー(又は移動かリンク作成)されるか、指定プログラムで開かれます。" - -#: tips:197 -msgid "Directories spring open" -msgstr "ディレクトリのスプリングオープン" - -#: tips:198 -msgid "" -"This option, which requires the above option to be turned on too, causes the " -"highlighted directory to 'spring open' after the file is held over it for a " -"short while." -msgstr "" -"このオプションを使うには、同時に上のオプションにもチェックを入れてください。" -"ファイルをドラッグしてディレクトリの上に保持すると、そのディレクトリが '跳ね" -"開け' られます。" - -#: tips:199 -msgid "Spring delay:" -msgstr "開くまでの時間:" - -#: tips:200 -msgid "ms" -msgstr "ms" - -#: tips:201 -msgid "" -"This option sets how long, in ms, you must hold a file over a directory " -"before it will spring open. The above option must be turned on for this to " -"have any effect." -msgstr "" -"ドラッグしたファイルでディレクトリをスプリングオープンする際の保持時間を(ミリ" -"セコンド単位で)設定します。'スプリングオープン'が'ON'の場合に有効です。" - -#: tips:202 -msgid "When dragging files with the left mouse button" -msgstr "マウスの左ボタンでファイルをドラッグしたときの動作" - -#: tips:203 tips:207 -msgid "Show a menu of possible actions" -msgstr "実行可能なメニューを表示" - -#: tips:204 -msgid "Copy the files" -msgstr "ファイルをコピー" - -#: tips:205 -msgid "" -"Note that you can still get the menu to appear, by dragging with Alt held " -"down." -msgstr "" -"'ON'にした場合には、'Alt'キーを押しながら左ボタンでドラッグすれば、オプション" -"メニューを表示できます。" - -#: tips:206 -msgid "When dragging files with the middle mouse button" -msgstr "マウスの中ボタンでファイルをドラッグしたときの動作" - -#: tips:208 -msgid "Move the files" -msgstr "ファイルを移動" - -#: tips:209 -msgid "" -"Note that you can still get the menu to appear, by dragging with the left " -"button and holding down the Alt key." -msgstr "" -"'ON'にした場合には、'Alt'キーを押しながら左ボタンでドラッグすれば、オプション" -"メニューを表示できます。" - -#: tips:210 -msgid "Download handler" -msgstr "ダウンロード実行コマンド" - -#: tips:211 -msgid "" -"When you drag a file from a web browser or other remote source, this program " -"will be run to download it. $1 is the URI dragged to the filer, and the " -"current directory is the destination. Eg:\n" -"xterm -e wget $1" -msgstr "" -"ウェブブラウザかリモート上からファイルをドラッグした時、アイテムをダウンロー" -"ドする為、このコマンドが実行されます。 $1 はドラッグされたアイテムの URI に置" -"き換えられ、アイテムはカレントディレクトリ(=ドロップ先ウィンドウ)にダウンロー" -"ドされます。\n" -"例:xterm -e wget $1" - -#: tips:212 -msgid "Menus" -msgstr "メニュー" - -#: tips:214 -msgid "Size of icons in menus:" -msgstr "メニューのアイコンの大きさ:" - -#: tips:215 -msgid "No Icons" -msgstr "アイコンなし" - -#: tips:218 -msgid "Same as current window" -msgstr "現在のウィンドウのアイコンと同じ" - -#: tips:219 -msgid "Same as default" -msgstr "デフォルトのアイコンと同じ" - -#: tips:220 -msgid "Behaviour" -msgstr "動作" - -#: tips:221 -msgid "File menu on right-click" -msgstr "右クリックでアイテム用メニュー" - -#: tips:222 -msgid "" -"Show the File menu instead of the main menu when right-clicking with files " -"selected (the main menu can be accessed by holding down Control)." -msgstr "" -"アイテム上で右クリックした時、メインメニューの代わりにアイテム用メニューを開" -"きます。(Ctrl キーを押す事によりメインメニューも開けます)" - -#: tips:223 -msgid "Terminal emulator program" -msgstr "常用ターミナルエミュレータ" - -#: tips:224 -msgid "The program to launch when you choose `Terminal Here' from the menu." -msgstr "メニューの`ここでxtermを起動'を選んだときに起動するプログラム" - -#: tips:225 -msgid "Keyboard shortcuts" -msgstr "キーボードショートカット" - -#: tips:227 -msgid "MIME types" -msgstr "MIME 形式" - -#: tips:228 -msgid "" -"The filer uses a set of rules to work out the correct MIME type for each " -"regular file, and then chooses a suitable icon for that type." -msgstr "" -"ROX は標準的なルールに従ってファイルの MIME 形式を判別し、適切なアイコンを設" -"定します。" - -#: tips:229 -msgid "Edit MIME rules" -msgstr "MIME ルール編集" - -#: tips:230 -msgid "Themes" -msgstr "テーマ" - -#: tips:231 -msgid "Icon theme" -msgstr "アイコンテーマ" - -#: tips:232 -msgid "Themes should be placed inside the ~/.icons directory." -msgstr "テーマは ~/.icons ディレクトリに置いて下さい" - -#: tips:233 -msgid "" -"Use the 'Set Icon...' dialog box to set the icon for each MIME type. Note " -"that icons set this way override those from the selected theme." -msgstr "" -"MIME 型式ごとにアイコンを設定するのは 'アイコンを設定...' ダイアログを使用し" -"ます。標準に設定されるアイコンより優先されます。" - -#: tips:234 -msgid "Colours" -msgstr "色" - -#: tips:235 -msgid "File type colours" -msgstr "ファイルの色分け" - -#: tips:236 -msgid "Colour files based on their types" -msgstr "タイプごとにファイルを色分けする" - -#: tips:237 -msgid "Filenames (and details) are coloured according to the file's type." -msgstr "ファイル名(及び詳細情報)はアイテムの種別に従って色分け表示されます。" - -#: tips:238 -msgid "Directory:" -msgstr "ディレクトリ:" - -#: tips:239 -msgid "Regular file:" -msgstr "通常ファイル:" - -#: tips:240 -msgid "Pipe:" -msgstr "パイプ:" - -#: tips:241 -msgid "Socket:" -msgstr "ソケット:" - -#: tips:243 -msgid "" -"Error, such as a symlink which points to a non-existant file, or a file " -"which the filer does not have permission to examine." -msgstr "" -"エラー、存在しない、あるいは参照許可のないファイルへのシンボリックリンク。" - -#: tips:244 -msgid "Character device:" -msgstr "キャラクタデバイス:" - -#: tips:245 -msgid "Block device:" -msgstr "ブロックデバイス:" - -#: tips:246 -msgid "Door:" -msgstr "Door:" - -#: tips:247 -msgid "" -"Door files are a bit like sockets or pipes, and have only been seen on " -"Solaris." -msgstr "" -"Doorファイルは 'ソケットやパイプ類似のもので、Solaris のみで使われます。" - -#: tips:248 -msgid "Executable file:" -msgstr "実行可能ファイル:" - -#: tips:249 -msgid "Application directory:" -msgstr "アプリケーションディレクトリ:" - -#: tips:250 -msgid "Unknown type:" -msgstr "不明な種類:" - -#: tips:251 -msgid "Compatibility" -msgstr "互換性" - -#: tips:252 -msgid "Command line program" -msgstr "コマンドライン・プログラム" - -#: tips:253 -msgid "Make script" -msgstr "スクリプト作成" - -#: tips:254 -msgid "Window manager problems" -msgstr "ウィンドウマネージャ関連の問題" - -#: tips:255 -msgid "Override window manager control of the pinboard and panels" -msgstr "ピンボードとパネルの制御をウィンドウマネージャの支配下に置かない" - -#: tips:256 -msgid "" -"Some window managers don't support the new Extended Window Manager Hints " -"system, and so treat the pinboard and panels like normal windows. Turn this " -"on to fix problems such as the pinboard coming to the front when you click " -"on it, titlebars and other decorations appearing around windows, or having " -"them appear in window-select lists." -msgstr "" -"ウィンドウマネージャの中には新しい'Extended Window Manager Hints'をサポートし" -"ないものがあり、その場合、ピンボードとパネルはウィンドウと同様に扱われます。" -"ここにチェックを入れると、ピンボードアイコンやパネルがウィンドウの前面に来た" -"り、メニューやタスクバー上のウィンドウリストに現われたりする問題を解消するこ" -"とが出来ます。\n" -"※ 'Extended Window Manager Hints' の詳細については、以下を。\n" -"http://standards.freedesktop.org/wm-spec/wm-spec-latest.html" - -#: tips:257 -msgid "Pass all backdrop mouse clicks to window manager" -msgstr "デスクトップの背景でのマウスクリックはウィンドウマネージャに渡す" - -#: tips:258 -msgid "" -"Normally, right clicking on the desktop background will open the pinboard " -"menu and left clicking will clear the selection. Turn this on to forward the " -"events to your window manager instead. Clicks on icons will not be forwarded." -msgstr "" -"通常デスクトップの背景で右クリックをすると ROX のピンボードメニューが現れ、左" -"クリックで消えます。ここを ON にすれば、マウスイベントはウィンドウマネージャ" -"に渡されます。この場合もアイコン上でのクリックは ROX に渡されます" - -#: tips:259 -msgid "Blackbox root menus hack" -msgstr "Blackbox の root メニューの改善" - -#: tips:260 -msgid "" -"Blackbox, Fluxbox and similar window managers do not yet work well with the " -"ROX-Filer pinboard. This option enables some workarounds. These window " -"managers are expected to change their behaviour in new versions so that this " -"isn't necessary." -msgstr "" -"Blackbox, Fluxbox などのウィンドウマネージャでは ROX-Filer のピンボードがうま" -"く機能しない場合がありますが、ここを ON にすればいくらかは改善されます。これ" -"らのウィンドウマネージャの新版ではこのオプションが不要になるよう修正されるで" -"しょう。" - -#: tips:261 -msgid "Panel is a 'dock'" -msgstr "パネルを'dock'として扱う" - -#: tips:262 -msgid "" -"Makes sure panels stay against screen edges. Disable this option if the " -"panel stays above other windows against your wishes. Requires a restart to " -"take effect." -msgstr "" -"パネルを画面の縁に確実に密着させます。パネルに隠されウィンドウが操作できなく" -"なるような事が有る場合は、このオプションを'OFF'にして下さい。有効にするには再" -"起動が必要です" - -#: tips:263 -msgid "Panel stays on top" -msgstr "パネルを最上層に配置" - -#: tips:264 -msgid "" -"Keeps the panel above other windows. Enable this option to make sure the " -"dock option works correctly in some versions of compiz. May require a " -"restart to take effect." -msgstr "" -"パネルが常にウィンドウより上に来るようにします。このオプションを 'ON' にする" -"事で、compiz の幾つかのバージョンにおいても 'パネルを dock として扱う' オプ" -"ションが正しく機能するように出来ます。有効にするには再起動が必要です" - -#: tips:265 -msgid "Panel confined to work area" -msgstr "パネルをワークエリア内に収める" - -#: tips:266 -msgid "" -"Keeps the panel confined to the work area specified by the Extended Window " -"Manager Specification. Applies to new panels." -msgstr "" -"パネル位置を拡張ウィンドウマネージャ仕様(EWMH)のワークエリア内" -"に制限します。新規パネルから適用されます" - -#: tips:267 -msgid "Drag and drop" -msgstr "ドラッグ&ドロップ" - -#: tips:268 -msgid "Don't use hostnames" -msgstr "ホスト名を使わない" - -#: tips:269 -msgid "" -"Some older applications don't support XDND fully and may need to have this " -"option turned on. Use this if dragging files to an application shows a + " -"sign on the pointer but the drop doesn't work." -msgstr "" -"古いアプリケーションでは XDND (X Drag aNd Drop プロトコル)を完全にはサポート" -"しないので、このオプションが必要になります。アプリケーションにファイルをド" -"ラッグした際、ポインタが + マークになってもドロップが機能しない場合に使用して" -"ください" - -#: tips:270 -msgid "Extended attributes" -msgstr "拡張属性" - -#: tips:271 -msgid "Don't use extended attributes" -msgstr "拡張属性を使わない" - -#: tips:272 -msgid "" -"This disables the use of extended attributes available in newer operating " -"systems and file systems. With this option set the 'Set Type' menu entry is " -"disabled, the MIME type of the file is only derived from the file name and " -"the properties window does not report extended attributes." -msgstr "" -"より新しいオペレーティングシステムおよびファイルシステムにおいて利用可能な拡" -"張属性の使用を不能にします。このオプションでメニューの MIME形式設定の項は無効" -"になり、MIME型の決定はファイル名のみによりなされ、プロパティダイアログには拡" -"張属性はレポートされません" - -#~ msgid "ROX-Filer log viewer" -#~ msgstr "ROX-Filer ログビュワー" - -#~ msgid "Recently performed actions..." -#~ msgstr "最近実行された操作" - -#~ msgid "Open Directory" -#~ msgstr "ディレクトリを開く" - -#~ msgid "Panel Options" -#~ msgstr "パネル・オプション" - -#~ msgid "Every icon on this panel is shown with an image and some text." -#~ msgstr "このパネルでは、全てのアイテムにアイコンとテキストを表示します。" - -#~ msgid "Image and Text" -#~ msgstr "アイコンとテキスト" - -#~ msgid "" -#~ "Applications in this panel have just an image, everything else has both " -#~ "an image and text." -#~ msgstr "" -#~ "このパネルでは、アプリケーションの場合はアイコンのみ、その他の場合はアイコ" -#~ "ンとテキストを表示します" - -#~ msgid "Image only for applications" -#~ msgstr "アプリケーションの場合はアイコンのみ" - -#~ msgid "Only the image is shown for icons in this panel." -#~ msgstr "このパネルでは、アイコンのみを表示します" - -#~ msgid "Image only" -#~ msgstr "アイコンのみ" - -#~ msgid "Panel width" -#~ msgstr "パネルの幅" - -#~ msgid "The size of this panel." -#~ msgstr "このパネルのサイズ" - -#~ msgid "px" -#~ msgstr "ピクセル" - -#~ msgid "" -#~ "Ask the window manager not to cover this panel when maximising windows, " -#~ "otherwise leave just 2 pixels at the edge of the screen to allow auto-" -#~ "raising. Some window managers may not honour this setting." -#~ msgstr "" -#~ "ウィンドウ最大化時にパネルを隠さないようウィンドウマネージャに依頼します。" -#~ "ウィンドウマネージャには、これに従わないものも有りますが、ウィンドウを2 ピ" -#~ "クセルずらせばパネルをオートライズ(自動ポップアップ)が可能です。" - -#~ msgid "Do not cover panel" -#~ msgstr "パネルを隠さない" - -#~ msgid "Panel style" -#~ msgstr "パネルスタイル" - -#~ msgid "" -#~ "If you use multiple monitors with Xinerama, use this option to confine " -#~ "the panel to one monitor." -#~ msgstr "" -#~ "Xinerama で、複数モニタを使用している場合、このパネルを一つのモニタのみで" -#~ "使用するよう制限します" - -#~ msgid "Confine to Xinerama monitor" -#~ msgstr "Xinerama でモニタを制限" - -#~ msgid "" -#~ "The monitor this panel is confined to when using Xinerama. The numbering " -#~ "starts from zero." -#~ msgstr "Xinerama 使用時、このパネルをつかうモニタ(番号付けは 0 から)" - -#~ msgid "Xinerama" -#~ msgstr "Xinerama" - -#~ msgid "Right edge" -#~ msgstr "右端" - -#~ msgid "Left edge" -#~ msgstr "左端" - -#~ msgid "Bottom edge" -#~ msgstr "下端" - -#~ msgid "Top edge" -#~ msgstr "上端" - -#~ msgid "Position" -#~ msgstr "位置" diff --git a/ROX-Filer/src/po/make-mo b/ROX-Filer/src/po/make-mo deleted file mode 100755 index e616f48e..00000000 --- a/ROX-Filer/src/po/make-mo +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -if [ "$#" != 1 ]; then - cat << HERE -Usage: 'make-mo ' -Eg: 'make-mo fr' to compile the French translation, fr.po, ready for use. -HERE - exit 1 -fi - -OUT_DIR=../../Messages -LOCALE_DIR="$OUT_DIR/$1/LC_MESSAGES" -OUT="$LOCALE_DIR/ROX-Filer.mo" -mkdir -p "$LOCALE_DIR" - -# This code converts to UTF-8 format. Needed by Gtk+-2.0 at -# least, and may help with other versions. -charset=`grep "charset=" $1.po | head -1 | sed 's/^.*charset=\(.*\)\\\n.*/\1/'` -echo Using charset \'$charset\' -iconv -f $charset -t utf-8 $1.po | \ - sed 's/; charset=\(.*\)\\n"/; charset=utf-8\\n"/' | \ - msgfmt --statistics - -o $OUT && echo Created file $OUT OK diff --git a/ROX-Filer/src/po/nl.po b/ROX-Filer/src/po/nl.po deleted file mode 100644 index bcce7394..00000000 --- a/ROX-Filer/src/po/nl.po +++ /dev/null @@ -1,4731 +0,0 @@ -# Dutch messages for ROX-Filer -# Copyright (C) 2001 Jan Wagemakers -# Jan Wagemakers , 2001. -# -# Deze vertaling is enkel mogelijk geworden dankzij tips die ik heb gekregen -# van mijn vrienden in Linux.B (Fidonet) : -# - Johan Zwiekhorst -# - Bruno Tuteleers -# - Tom Laermans -# Bedankt mannen! :-) -# -# Updated translations August 2001 -# Copyright (C) 2001 Jasper Huijsmans -# -# Bijgewerkt Jan 2002 en Mei 2002 -# Copyright (C) 2002 Wilbert Berendsen -# -# Bijgewerkt Dec 2002, Maa Mei Okt 2003, Jan Feb Mei Nov 2004, -# Jan Jul Aug 2005 -# Copyright (C) 2005 Jan Wagemakers -# - Dank aan Jan Verhoeven (wisclub) voor zijn tips! -# -msgid "" -msgstr "" -"Project-Id-Version: ROX-Filer 2.2.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-09 14:02+0100\n" -"PO-Revision-Date: \n" -"Last-Translator: Jan Wagemakers \n" -"Language-Team: ROX Mailing List \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=utf-8\n" -"Content-Transfer-Encoding: \n" - -#: abox.c:127 -msgid "" -msgstr "" - -#: abox.c:219 -msgid "_Quiet" -msgstr "_Stil" - -#: abox.c:228 -msgid "Quiet" -msgstr "Stil" - -#: abox.c:228 -msgid "Don't confirm every operation" -msgstr "Niet alle bewerkingen bevestigen" - -#: abox.c:455 tips:60 -msgid "Name" -msgstr "Naam" - -#: abox.c:461 menu.c:232 -msgid "Directory" -msgstr "Map" - -#: abox.c:550 -msgid "Expression:" -msgstr "Uitdrukking:" - -#: action.c:58 -msgid "See the attr(5) man page for full details." -msgstr "Raadpleeg de attr(5) man pagina voor de volledige details" - -#: action.c:60 -msgid "See the fsattr(5) man page for full details." -msgstr "Raadpleeg de fsattr(5) man pagina voor de volledige details" - -#: action.c:62 -msgid "You do not appear to have OS support." -msgstr "Blijkbaar is er geen OS ondersteuning" - -#: action.c:188 -msgid "Find expression reference" -msgstr "Uitleg zoek-uitdrukking" - -#: action.c:199 -msgid "" -"Quick Start\n" -"Just put the name of the file you're looking for in single quotes:\n" -"'index.html' (to find a file called 'index.html')\n" -"\n" -"Examples\n" -"'*.htm', '*.html' (finds HTML files)\n" -"IsDir 'lib' (finds directories called 'lib')\n" -"IsReg 'core' (finds a regular file called 'core')\n" -"! (IsDir, IsReg) (is neither a directory nor a regular file)\n" -"mtime after 1 day ago and size > 1Mb (big, and recently modified)\n" -"'CVS' prune, isreg (a regular file not in CVS)\n" -"IsReg system(grep -q fred \"%\") (contains the word 'fred')\n" -"\n" -"Simple Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(permissions)\n" -"IsEmpty, IsMine\n" -"A pattern in single quotes is a shell-style wildcard pattern to match. If " -"it\n" -"contains a slash then the match is against the full path; otherwise it is\n" -"against the leafname only.\n" -"\n" -"Comparisons\n" -"<, <=, =, !=, >, >=, After, Before (compare two values)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (file sizes)\n" -"2 secs|mins|hours|days|weeks|years ago|hence (times)\n" -"atime, ctime, mtime, now, size, inode, nlinks, uid, gid, blocks " -"(values)\n" -"\n" -"Specials\n" -"system(command) (true if 'command' returns with a zero exit status;\n" -"a % in 'command' is replaced with the path of the current file)\n" -"prune (false, and prevents searching the contents of a directory)." -msgstr "" -"Snel Start\n" -"Plaats de te zoeken bestandsnaam tussen enkele aanhalingstekens:\n" -"'index.html' (om het bestand 'index.html' te vinden)\n" -"\n" -"Voorbeelden\n" -"'*.htm', '*.html' (HTML bestanden)\n" -"IsDir 'lib' (mappen met de naam 'lib')\n" -"IsReg 'core' (een normaal bestand met de naam 'core')\n" -"! (IsDir, IsReg) (noch een map noch een gewoon bestand)\n" -"mtime na 1 dag geleden en grootte > 1Mb (groot, en recent aangepast)\n" -"'CVS' negeren, isreg (een gewoon bestand niet in CVS)\n" -"IsReg system(grep -q fred \"%\") (bevat het woord 'fred')\n" -"\n" -"Eenvoudige Tests\n" -"IsReg, IsLink, IsDir, IsChar, IsBlock, IsDev, IsPipe, IsSocket, IsDoor (types)\n" -"IsSUID, IsSGID, IsSticky, IsReadable, IsWriteable, IsExecutable " -"(rechten)\n" -"IsEmpty, IsMine\n" -"Een patroon tussen enkele aanhalingstekens is een shell-stijl joker " -"patroon.\n" -"Als het patroon een slash bevat wordt een volledig pad bekeken; anders is\n" -"het enkel tegenover de bestandsnaam.\n" -"\n" -"Vergelijkingen\n" -"<, <=, =, !=, >, >=, Na, Voor (vergelijk twee waarden)\n" -"5 bytes, 1Kb, 2Mb, 3Gb (bestandsgrootte)\n" -"2 seconden|minuten|uren|dagen|weken|jaren geleden|sinds (tijden)\n" -"atime, ctime, mtime, nu, grootte, inode, nlinks, uid, gid, blokken " -"(waarden)\n" -"\n" -"Speciaal\n" -"system(opdracht) (waar als 'opdracht' terugkeert met een nul status;\n" -"een % in een 'opdracht' wordt vervangen met het pad van het huidige " -"bestand)\n" -"negeren (onwaar, en voorkomt het doorzoeken van de map-inhoud)." - -#: action.c:246 -msgid "Change permissions reference" -msgstr "Toelichting toegangsrechten aanpassen" - -#: action.c:257 -msgid "" -"Normally, you can just select a command from the menu (click \n" -"on the arrow beside the command box). Sometimes, you need more...\n" -"\n" -"The format of a command is: CHANGE, CHANGE, ...\n" -"Each CHANGE is: WHO HOW PERMISSIONS\n" -"WHO is some combination of u, g and o which " -"determines whether to\n" -"change the permissions for the User (owner), Group or Others.\n" -"HOW is +, - or = to add, remove or set exactly " -"the permissions.\n" -"PERMISSIONS is some combination of the letters rwxXstugo\n" -"\n" -"Bracketed text and spaces are ignored.\n" -"\n" -"Examples\n" -"u+rw: the file owner gains read and write permission\n" -"g=u: the group permissions are set to be the same as the user's\n" -"o=u-w: others get the same permissions as the owner, but without " -"write permission\n" -"a+x: all get execute/access permission - same as ugo+x\n" -"a+X: directories become accessable by everyone; files which were\n" -"executable by anyone become executable by everyone\n" -"u+rw, go+r: two commands at once!\n" -"u+s: set the SetUID bit - often has no effect on script files\n" -"755: set the permissions directly\n" -"\n" -"See the chmod(1) man page for full details." -msgstr "" -"Meestal is het mogelijk een opdracht te kiezen uit het menu (klik op het \n" -"pijltje naast de opdracht-rechthoek). Soms is echter meer nodig....\n" -"\n" -"Het formaat van een opdracht is: VERANDER, VERANDER, ...\n" -"Elke VERANDER is: WIE HOE TOEGANGSRECHTEN\n" -"WIE is een combinatie van u, g en o die bepaalt " -"van wie je de\n" -"toegangsrechten wil aanpassen, User (eigenaar), Group (Groep)\n" -"of Others (Anderen).\n" -"HOE is +, - of = voor resp. toevoegen, " -"verwijderen en hetzelfde als.\n" -"TOEGANGSRECHTEN is een combinatie van de letters rwxXstugo\n" -"\n" -"Tekst tussen haakjes en spaties worden genegeerd.\n" -"\n" -"Voorbeelden\n" -"u+rw: de bestands-eigenaar krijgt lees en schrijf toegang\n" -"g=u: de groepsrechten worden gezet hetzelfde als de eigenaar\n" -"o=u-w: anderen krijgen dezelfde rechten als de eigenaar maar zonder " -"schrijftoegang\n" -"a+x: iedereen krijgt uitvoer-toegang - hetzelfde als ugo+x\n" -"a+X: mappen worden bereikbaar voor iedereen; bestanden die " -"uitvoerbaar\n" -"waren door iemand worden uitvoerbaar door iedereen\n" -"u+rw, go+r: twee opdrachten in één keer!\n" -"u+s: zet de SetUID bit - heeft meestal geen effect op script-" -"bestanden\n" -"755: zet de toegangsrechten direct\n" -"\n" -"Zie de chmod(1) manual page voor de volledige uitleg." - -#: action.c:298 -msgid "Set type reference" -msgstr "Zet type referentie" - -#: action.c:309 -msgid "" -"Normally ROX-Filer determines the type of a regular file\n" -"by matching it's name against a pattern. To change the\n" -"type of the file you must rename it.\n" -"\n" -"Newer file systems can support something called 'Extended\n" -"Attributes' which can be used to store additional data with\n" -"each file as named parameters. ROX-Filer uses the\n" -"'user.mime_type' attribute to store file types.\n" -"\n" -"File types are only supported for regular files, not\n" -"directories, devices, pipes or sockets, and then only\n" -"on certain file systems and where the OS implements them.\n" -msgstr "" -"ROX-Filer bepaalt het type van een normaal bestand\n" -"aan de hand van overeenkomst met een bepaald patroon. Hernoem het \n" -"bestand om het type te veranderen.\n" -"\n" -"Nieuwere bestands-systemen kunnen zaken als 'Extended\n" -"Attributes' ondersteunen, welke gebruikt kan worden om extra \n" -"gegevens met elk bestand te bewaren. ROX-Filer gebruikt het\n" -"'user.mime_type' attribute om het bestands type te bewaren.\n" -"\n" -"Bestands types worden enkel voor normale bestanden ondersteund, \n" -"niet voor mappen, devices, pipes of sockets, en dit enkel \n" -"bij bepaalde bestands-systemen en daar waar het OS ze ondersteunt.\n" -"\n" - -#: action.c:416 -msgid "" -"\n" -"Process terminated.\n" -msgstr "" -"\n" -"Proces afgebroken.\n" - -#: action.c:432 -msgid "There was one error.\n" -msgstr "Er was een fout.\n" - -#: action.c:434 -#, c-format -msgid "There were %d errors.\n" -msgstr "Er waren %d fouten.\n" - -#: action.c:458 -msgid "ERROR reading" -msgstr "FOUT tijdens lezen" - -#: action.c:501 -msgid "" -"'\n" -"Done\n" -msgstr "" -"'\n" -"Klaar\n" - -#: action.c:557 support.c:395 -msgid "ERROR" -msgstr "FOUT" - -#: action.c:711 main.c:674 main.c:681 main.c:688 -msgid "Yes" -msgstr "Ja" - -#: action.c:714 main.c:676 main.c:690 -msgid "No" -msgstr "Nee" - -#: action.c:732 -msgid "" -"\n" -"Asking child process to terminate...\n" -msgstr "" -"\n" -"Probeer child proces te stoppen...\n" - -#: action.c:739 -msgid "" -"\n" -"Trying to KILL run-away process...\n" -msgstr "" -"\n" -"Poging om op hol geslagen proces te KILL'en...\n" - -#: action.c:892 -#, c-format -msgid "?Count contents of %s?" -msgstr "?Tel inhoud van %s?" - -#: action.c:928 -#, c-format -msgid "?Delete %s'%s'?" -msgstr "?Verwijder %s'%s'?" - -#: action.c:929 -msgid "WRITE-PROTECTED " -msgstr "SCHRIJF-BEVEILIGD " - -#: action.c:936 -#, c-format -msgid "'Deleting '%s'\n" -msgstr "'Bezig met verwijderen '%s'\n" - -#: action.c:949 -#, c-format -msgid "'Directory '%s' deleted\n" -msgstr "'Map '%s' verwijderd\n" - -#: action.c:982 -#, c-format -msgid "?Eject '%s'?" -msgstr "?Uitwerpen '%s'?" - -#: action.c:989 -#, c-format -msgid "'Eject '%s'\n" -msgstr "'Uitwerpen '%s'\n" - -#: action.c:1008 -#, c-format -msgid "" -"!%s\n" -"eject failed\n" -msgstr "" -"!%s\n" -"Uitwerpen mislukt\n" - -#: action.c:1027 action.c:1046 -#, c-format -msgid "?Check '%s'?" -msgstr "?Controleer '%s'?" - -#: action.c:1043 -msgid "!Invalid find condition - change it and try again\n" -msgstr "!Ongeldige zoekvoorwaarde - pas aan en probeer opnieuw\n" - -#: action.c:1053 -#, c-format -msgid "'(while checking '%s')\n" -msgstr "'(tijdens het controleren van '%s')\n" - -#: action.c:1127 action.c:1152 -#, c-format -msgid "?Change permissions of '%s'?" -msgstr "?Verander de toegangsrechten van '%s'?" - -#: action.c:1133 -#, c-format -msgid "'Changing permissions of '%s'\n" -msgstr "'Toegangsrechten aanpassen van'%s'\n" - -#: action.c:1150 -msgid "!Invalid mode command - change it and try again\n" -msgstr "!Ongeldige mode - pas aan en probeer opnieuw\n" - -#: action.c:1207 action.c:1227 -#, c-format -msgid "?Change type of '%s'?" -msgstr "?Verander type van '%s'?" - -#: action.c:1224 -msgid "!Invalid type - change it and try again\n" -msgstr "!Ongeldige type - pas aan en probeer opnieuw\n" - -#: action.c:1246 -#, c-format -msgid "'Changing type of '%s' to '%s'\n" -msgstr "'Type aanpassen van'%s' naar '%s'\n" - -#: action.c:1325 -#, c-format -msgid "?'%s' already exists - %s?" -msgstr "?'%s' bestaat reeds - %s?" - -#: action.c:1327 -msgid "merge contents" -msgstr "inhoud samenvoegen" - -#: action.c:1328 -msgid "overwrite" -msgstr "overschrijven" - -#: action.c:1344 -msgid "'Trying copy anyway...\n" -msgstr "'Probeer toch te kopiëren...\n" - -#: action.c:1353 -#, c-format -msgid "?Copy %s as %s?" -msgstr "?Kopiëer %s als %s?" - -#: action.c:1357 -#, c-format -msgid "'Copying %s as %s\n" -msgstr "Kopiëren %s als %s\n" - -#: action.c:1372 -msgid "!ERROR: Destination already exists, but is not a directory\n" -msgstr "!FOUT: Doel bestaat reeds, maar is geen map\n" - -#: action.c:1444 -#, c-format -msgid "" -"!%s\n" -"Failed to copy '%s'\n" -msgstr "" -"!%s\n" -"Mislukt om '%s' te kopiëren\n" - -#: action.c:1488 -#, c-format -msgid "?'%s' already exists - overwrite?" -msgstr "?'%s' bestaat reeds - overschrijven?" - -#: action.c:1503 -msgid "'Trying move anyway...\n" -msgstr "'Probeer toch te verplaatsen...\n" - -#: action.c:1511 -#, c-format -msgid "?Move %s as %s?" -msgstr "?Verplaats %s naar %s?" - -#: action.c:1515 -#, c-format -msgid "'Moving %s as %s\n" -msgstr "'Verplaatsen %s naar %s\n" - -#: action.c:1523 -#, c-format -msgid "" -"!%s\n" -"Failed to move %s as %s\n" -msgstr "" -"!%s\n" -"Verplaatsen %s naar %s mislukt\n" - -#: action.c:1544 -msgid "!ERROR: Can't copy object into itself\n" -msgstr "!FOUT: Kan object niet naar zichzelf kopiëren\n" - -#: action.c:1559 -msgid "!ERROR: Can't move/rename object into itself\n" -msgstr "!FOUT: Kan object niet verplaatsen/hernoemen naar zichzelf\n" - -#: action.c:1571 -#, c-format -msgid "'Linking %s as %s\n" -msgstr "'Maak symlink %s naar %s\n" - -#: action.c:1576 -#, c-format -msgid "?Link %s as %s?" -msgstr "?Maak symlink %s naar %s?" - -#: action.c:1618 -#, c-format -msgid "'Mounting %s\n" -msgstr "'Aankoppelen %s\n" - -#: action.c:1619 -#, c-format -msgid "'Unmounting %s\n" -msgstr "'Afkoppelen %s\n" - -#: action.c:1622 -#, c-format -msgid "?Mount %s?" -msgstr "?%s aankoppelen?" - -#: action.c:1623 -#, c-format -msgid "?Unmount %s?" -msgstr "?%s afkoppelen?" - -#: action.c:1643 -#, c-format -msgid "" -"!%s\n" -"Mount failed\n" -msgstr "" -"!%s\n" -"Aankoppelen mislukt\n" - -#: action.c:1644 -#, c-format -msgid "" -"!%s\n" -"Unmount failed\n" -msgstr "" -"!%s\n" -"Afkoppelen mislukt\n" - -#: action.c:1652 -msgid "'(seems to be mounted now anyway)\n" -msgstr "'(lijkt nu in elk geval aangekoppeld te zijn)\n" - -#: action.c:1698 -#, c-format -msgid "" -"'\n" -"Total: %s (" -msgstr "" -"'\n" -"Totaal: %s (" - -#: action.c:1704 -msgid "file" -msgstr "bestand" - -#: action.c:1704 -msgid "files" -msgstr "bestanden" - -#: action.c:1708 -msgid "no directories)\n" -msgstr "geen mappen)\n" - -#: action.c:1712 -msgid "directory" -msgstr "map" - -#: action.c:1713 -msgid "directories" -msgstr "mappen" - -#: action.c:1754 -msgid "!No mount points selected!\n" -msgstr "!Geen aankoppelpunten geselecteerd!\n" - -#: action.c:1839 -msgid "?Another search?" -msgstr "?Opnieuw zoeken?" - -#: action.c:1869 action.c:1900 -#, c-format -msgid "!'%s' is a symbolic link\n" -msgstr "!'%s' is een symbolische link\n" - -#: action.c:1940 -msgid "You need to select some items to search through" -msgstr "Selecteer eerst de items om te doorzoeken" - -#: action.c:1950 menu.c:223 -msgid "Find" -msgstr "Zoek" - -#: action.c:1983 -msgid "You need to select some items to count" -msgstr "Selecteer eerst de items om te tellen" - -#: action.c:1987 -msgid "Disk Usage" -msgstr "Schijfgebruik" - -#: action.c:2021 -msgid "Mount / Unmount" -msgstr "Aankoppelen / Afkoppelen" - -#: action.c:2034 -msgid "ROX-Filer does not yet support mount points on your system. Sorry." -msgstr "ROX-Filer ondersteunt nog geen aankoppelpunten op uw systeem. Sorry." - -#: action.c:2048 menu.c:210 tips:208 -msgid "Delete" -msgstr "Verwijderen" - -#: action.c:2058 tips:213 -msgid "Force" -msgstr "Forceren" - -#: action.c:2058 -msgid "Don't confirm deletion of non-writeable items" -msgstr "Geen bevestiging vragen voor verwijderen van niet-schrijfbare items" - -#: action.c:2061 action.c:2116 action.c:2175 action.c:2228 action.c:2264 -#: tips:215 -msgid "Brief" -msgstr "Beknopt" - -#: action.c:2061 -msgid "Only log directories being deleted" -msgstr "Toon alleen mappen die verwijderd worden" - -#: action.c:2078 -msgid "You need to select the items whose permissions you want to change" -msgstr "Selecteer de items om de toegangsrechten aan te passen" - -#: action.c:2086 -msgid "a+x (Make executable/searchable)" -msgstr "a+x (Maak uitvoerbaar/zoekbaar)" - -#: action.c:2088 -msgid "a-x (Make non-executable/non-searchable)" -msgstr "a-x (Maak onuitvoerbaar/onzoekbaar)" - -#: action.c:2090 -msgid "u+rw (Give owner read+write)" -msgstr "u+rw (Geef eigenaar lees+schrijf toegang)" - -#: action.c:2092 -msgid "go-rwx (Private - owner access only)" -msgstr "go-rwx (Privé - enkel eigenaar toegang)" - -#: action.c:2094 -msgid "go=u-w (Public access, not write)" -msgstr "go=u-w (Publieke toegang, onschrijfbaar)" - -#: action.c:2105 menu.c:184 menu.c:221 tips:75 -msgid "Permissions" -msgstr "Toegangsrechten" - -#: action.c:2116 action.c:2175 -msgid "Don't list processed files" -msgstr "Toon geen verwerkte bestanden" - -#: action.c:2119 action.c:2178 tips:217 -msgid "Recurse" -msgstr "Doorlopen" - -#: action.c:2119 -msgid "Also change contents of subdirectories" -msgstr "Ook de inhoud van sub-mappen veranderen" - -#: action.c:2123 -msgid "Command:" -msgstr "Opdracht:" - -#: action.c:2151 -msgid "You need to select the items whose type you want to change" -msgstr "Selecteer de items waarvan het type aangepast dient te worden" - -#: action.c:2164 -msgid "Set type" -msgstr "Zet type" - -#: action.c:2178 -msgid "Change contents of subdirectories" -msgstr "Verander de inhoud van sub-mappen" - -#: action.c:2185 infobox.c:615 -msgid "Type:" -msgstr "Type:" - -#: action.c:2214 dnd.c:124 menu.c:1999 tips:202 -msgid "Copy" -msgstr "Kopiëren" - -#: action.c:2224 action.c:2260 tips:219 -msgid "Newer" -msgstr "Nieuwer" - -#: action.c:2225 action.c:2261 tips:220 -msgid "Only over-write if source is newer than destination." -msgstr "Alleen overschrijven als het bronbestand nieuwer is dan de bestemming." - -#: action.c:2228 -msgid "Only log directories as they are copied" -msgstr "Enkel mappen tonen als deze gekopieerd worden" - -#: action.c:2250 dnd.c:125 tips:204 -msgid "Move" -msgstr "Verplaatsen" - -#: action.c:2264 -msgid "Don't log each file as it is moved" -msgstr "Niet elk bestand tonen terwijl het verplaatst wordt" - -#: action.c:2284 tips:206 -msgid "Link" -msgstr "Symlink" - -#: action.c:2303 appmenu.c:113 -msgid "Eject" -msgstr "Uitwerpen" - -#: action.c:2360 -msgid "Deleting items such as " -msgstr "Verwijderen items zoals " - -#: action.c:2364 -msgid "Deleting the item " -msgstr "Verwijderen item " - -#: action.c:2366 -msgid "Deleting the items " -msgstr "Verwijderen items " - -#: action.c:2385 -msgid " and " -msgstr " en " - -#: action.c:2394 -msgid " will affect some items on the pinboard or panel - really delete it?" -msgstr "" -" zal bepaalde items op het paneel of prikbord beïnvloeden - echt verwijderen?" - -#: action.c:2401 -msgid " will affect some items on the pinboard or panel - really delete them?" -msgstr "" -" zal bepaalde items op het paneel of prikbord beïnvloeden - echt verwijderen?" - -#: appmenu.c:198 -msgid "" -msgstr "