diff -Nru gthumb-3.8.3/data/appdata/org.gnome.gThumb.appdata.xml.in gthumb-3.9.1/data/appdata/org.gnome.gThumb.appdata.xml.in --- gthumb-3.8.3/data/appdata/org.gnome.gThumb.appdata.xml.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/appdata/org.gnome.gThumb.appdata.xml.in 2020-03-07 19:03:13.393623400 +0000 @@ -43,13 +43,17 @@ https://wiki.gnome.org/Apps/Gthumb - https://git.gnome.org/browse/gthumb/plain/data/appdata/ss-browser.png + https://gitlab.gnome.org/GNOME/gthumb/raw/master/data/appdata/ss-browser.png - https://git.gnome.org/browse/gthumb/plain/data/appdata/ss-viewer.png + https://gitlab.gnome.org/GNOME/gthumb/raw/master/data/appdata/ss-viewer.png + + + + paobac_at_src.gnome.org AppMenu @@ -63,4 +67,8 @@ org.gnome.gThumb.desktop + + mild + moderate + Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/appdata/ss-browser.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/appdata/ss-browser.png differ Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/appdata/ss-viewer.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/appdata/ss-viewer.png differ diff -Nru gthumb-3.8.3/data/gschemas/meson.build gthumb-3.9.1/data/gschemas/meson.build --- gthumb-3.8.3/data/gschemas/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/meson.build 2020-03-07 19:03:13.396956400 +0000 @@ -2,6 +2,7 @@ gschema_files = files( 'org.gnome.gthumb.gschema.xml', + 'org.gnome.gthumb.catalogs.gschema.xml', 'org.gnome.gthumb.change-date.gschema.xml', 'org.gnome.gthumb.comments.gschema.xml', 'org.gnome.gthumb.contact-sheet.gschema.xml', @@ -22,6 +23,7 @@ 'org.gnome.gthumb.resize-images.gschema.xml', 'org.gnome.gthumb.rotate.gschema.xml', 'org.gnome.gthumb.slideshow.gschema.xml', + 'org.gnome.gthumb.terminal.gschema.xml', 'org.gnome.gthumb.webalbums.gschema.xml' ) diff -Nru gthumb-3.8.3/data/gschemas/org.gnome.gthumb.catalogs.gschema.xml gthumb-3.9.1/data/gschemas/org.gnome.gthumb.catalogs.gschema.xml --- gthumb-3.8.3/data/gschemas/org.gnome.gthumb.catalogs.gschema.xml 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/org.gnome.gthumb.catalogs.gschema.xml 2020-03-07 19:03:13.396956400 +0000 @@ -0,0 +1,27 @@ + + + + + + '' + + + + diff -Nru gthumb-3.8.3/data/gschemas/org.gnome.gthumb.gschema.xml gthumb-3.9.1/data/gschemas/org.gnome.gthumb.gschema.xml --- gthumb-3.8.3/data/gschemas/org.gnome.gthumb.gschema.xml 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/org.gnome.gthumb.gschema.xml 2020-03-07 19:03:13.396956400 +0000 @@ -138,6 +138,12 @@ false + + 'change-file' + + + 'default' + diff -Nru gthumb-3.8.3/data/gschemas/org.gnome.gthumb.gstreamer-tools.gschema.xml gthumb-3.9.1/data/gschemas/org.gnome.gthumb.gstreamer-tools.gschema.xml --- gthumb-3.8.3/data/gschemas/org.gnome.gthumb.gstreamer-tools.gschema.xml 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/org.gnome.gthumb.gstreamer-tools.gschema.xml 2020-03-07 19:03:13.396956400 +0000 @@ -28,6 +28,9 @@ false + + false + diff -Nru gthumb-3.8.3/data/gschemas/org.gnome.gthumb.image-viewer.gschema.xml gthumb-3.9.1/data/gschemas/org.gnome.gthumb.image-viewer.gschema.xml --- gthumb-3.8.3/data/gschemas/org.gnome.gthumb.image-viewer.gschema.xml 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/org.gnome.gthumb.image-viewer.gschema.xml 2020-03-07 19:03:13.396956400 +0000 @@ -32,6 +32,9 @@ 'linear' + + 'checkered' + diff -Nru gthumb-3.8.3/data/gschemas/org.gnome.gthumb.terminal.gschema.xml gthumb-3.9.1/data/gschemas/org.gnome.gthumb.terminal.gschema.xml --- gthumb-3.8.3/data/gschemas/org.gnome.gthumb.terminal.gschema.xml 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/gschemas/org.gnome.gthumb.terminal.gschema.xml 2020-03-07 19:03:13.396956400 +0000 @@ -0,0 +1,27 @@ + + + + + + 'gnome-terminal --window --working-directory=%f' + + + + diff -Nru gthumb-3.8.3/data/icons/private/hicolor/16x16/actions/transparency-symbolic.svg gthumb-3.9.1/data/icons/private/hicolor/16x16/actions/transparency-symbolic.svg --- gthumb-3.8.3/data/icons/private/hicolor/16x16/actions/transparency-symbolic.svg 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/icons/private/hicolor/16x16/actions/transparency-symbolic.svg 2020-03-07 19:03:13.400289800 +0000 @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/icons/public/hicolor/16x16/apps/org.gnome.gThumb.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/icons/public/hicolor/16x16/apps/org.gnome.gThumb.png differ Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/icons/public/hicolor/22x22/apps/gthumb.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/icons/public/hicolor/22x22/apps/gthumb.png differ Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/icons/public/hicolor/256x256/apps/org.gnome.gThumb.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/icons/public/hicolor/256x256/apps/org.gnome.gThumb.png differ Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/icons/public/hicolor/32x32/apps/gthumb.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/icons/public/hicolor/32x32/apps/gthumb.png differ Binary files /tmp/tmpmZkLs1/FyYZs2ngqk/gthumb-3.8.3/data/icons/public/hicolor/48x48/apps/gthumb.png and /tmp/tmpmZkLs1/dcm0s5iN03/gthumb-3.9.1/data/icons/public/hicolor/48x48/apps/gthumb.png differ diff -Nru gthumb-3.8.3/data/icons/public/hicolor/scalable/apps/org.gnome.gThumb.svg gthumb-3.9.1/data/icons/public/hicolor/scalable/apps/org.gnome.gThumb.svg --- gthumb-3.8.3/data/icons/public/hicolor/scalable/apps/org.gnome.gThumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/public/hicolor/scalable/apps/org.gnome.gThumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -12,462 +12,142 @@ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="256" height="256" - id="svg1872" - sodipodi:version="0.32" - inkscape:version="0.48.4 r9939" + viewBox="0 0 67.733334 67.733334" + version="1.1" + id="svg4770" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.0" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/256x256/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - - - - + inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/public/hicolor/256x256/apps/gthumb.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="defs4764"> - + id="linearGradient2911-977-39"> + id="stop7660" + style="stop-color:#ffffe0;stop-opacity:1;" /> + id="stop7662" + style="stop-color:#ffe588;stop-opacity:0;" /> - - - - + gradientTransform="matrix(0.52872081,0,0,0.52872081,-53.219049,54.775478)" /> - + id="linearGradient1084"> + id="stop1080" /> + id="stop1082" /> - - - - - + id="linearGradient2862-897-722"> - - - - + id="linearGradient2874-499-677"> - - - - - - - - - - - - + r="2" /> @@ -528,13 +208,14 @@ + y2="19.234819" + gradientTransform="matrix(2.5851473,0,0,2.9013555,-47.952005,109.57331)" /> @@ -549,6215 +230,250 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + id="metadata4767"> image/svg+xml - - - Ulisse Perusin - - - - gthumb - - - gthumb - - - + - - - - - - - - - - - - - - - - - + transform="translate(53.21905,-145.65837)"> + + + + id="g6019" + transform="translate(0.05627632,0.63707899)"> - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="g873" + transform="translate(0,-1.3363476)"> + inkscape:export-ydpi="118.14" + inkscape:export-xdpi="118.14" + inkscape:transform-center-y="-0.27881981" + inkscape:transform-center-x="0.063002009" + d="m 1.2098443,197.42269 -1.14763419,-0.72344 -1.05719341,0.85016 0.33338959,-1.31502 -1.13523719,-0.74274 1.35368025,-0.0893 0.35557824,-1.30919 0.50323081,1.25983 1.3549966,-0.0664 -1.04266648,0.86791 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.5133853" + sodipodi:arg1="0.88506682" + sodipodi:r2="0.73175222" + sodipodi:r1="1.8786335" + sodipodi:cy="195.9687" + sodipodi:cx="0.020222535" + sodipodi:sides="5" + id="path1223" + style="opacity:1;fill:#f5c211;fill-opacity:1;stroke:#f5c211;stroke-width:0.5291667;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="star" /> + + + + diff -Nru gthumb-3.8.3/data/icons/source/16x16/gthumb.svg gthumb-3.9.1/data/icons/source/16x16/gthumb.svg --- gthumb-3.8.3/data/icons/source/16x16/gthumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/source/16x16/gthumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -12,238 +12,110 @@ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="16" height="16" - id="svg1872" - sodipodi:version="0.32" - inkscape:version="0.47 r22583" + viewBox="0 0 4.2333335 4.2333334" + version="1.1" + id="svg1139" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.0" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/16x16/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - - - - + inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/public/hicolor/16x16/apps/gthumb.png" + inkscape:export-xdpi="96.000008" + inkscape:export-ydpi="96.000008"> - - - - - - - + id="defs1133"> + gradientTransform="matrix(0.09315419,0.01052579,-0.01340908,0.10258407,108.65238,122.02698)" + x1="11.749995" + y1="23.24999" + x2="14.499992" + y2="25.99999" /> + id="linearGradient2862-897-722"> + id="stop7606" + style="stop-color:#a8ae30;stop-opacity:1" /> + id="stop7608" + style="stop-color:#8f9429;stop-opacity:1" /> - - - - + gradientTransform="matrix(0.10979923,0.01113082,-0.01488565,0.10359861,107.96635,122.68268)" + x1="27.8125" + y1="22.657413" + x2="26.700396" + y2="25.157413" /> + gradientTransform="matrix(0.10979923,0.01113082,-0.01488565,0.10359861,107.96635,122.68268)" + x1="29.0625" + y1="29" + x2="28.463289" + y2="23.782413" /> + id="linearGradient2874-499-677"> + id="stop7618" + style="stop-color:#6c782e;stop-opacity:1;" /> + id="stop7620" + style="stop-color:#929829;stop-opacity:1" /> + gradientTransform="matrix(0.09058146,0.01171475,-0.0123205,0.10780272,108.37771,122.59701)" + x1="11.749995" + y1="23.24999" + x2="14.499992" + y2="25.99999" /> - - - - + gradientTransform="matrix(0.10134988,0.01310741,-0.0123205,0.10780272,108.16773,122.56985)" + x1="10.062495" + y1="29.49999" + x2="12.656243" + y2="24.74999" /> - - - - - - - + xlink:href="#linearGradient2874-499-677" + id="linearGradient5053" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.10463312,0.0126427,-0.01323118,0.10793162,108.127,122.57561)" + x1="20.383799" + y1="31.625" + x2="19.883799" + y2="26.4375" /> - - - + xlink:href="#linearGradient2855-649-911" + id="linearGradient5055-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(0.11741062,0.01522073,-0.01522445,0.13355291,108.2196,122.07038)" + x1="16.916706" + y1="25.210888" + x2="16.373755" + y2="16.540718" /> @@ -258,6 +130,16 @@ + + @@ -282,396 +175,241 @@ - - - - + x1="18.36898" + y1="23.024696" + x2="18.153841" + y2="19.234819" + gradientTransform="matrix(0.16269069,0,0,0.18248904,121.73009,107.6075)" /> + id="linearGradient2885-866-809"> + id="stop7642" + style="stop-color:#b04730;stop-opacity:1" /> + id="stop7644" + style="stop-color:#ff7b2f;stop-opacity:1" /> + gradientTransform="matrix(0.08713738,0.01052871,-0.01483064,0.12097896,108.47455,122.3877)" + x1="21" + y1="20" + x2="21.25" + y2="22" /> + id="linearGradient2911-977-39"> + id="stop7660" + style="stop-color:#ffffe0;stop-opacity:1;" /> + id="stop7662" + style="stop-color:#ffe588;stop-opacity:0;" /> - + gradientTransform="matrix(0.08985932,0.01085759,-0.01473998,0.12023946,108.41497,122.36685)" + x1="17" + y1="21" + x2="18.892241" + y2="22.069994" /> + gradientTransform="matrix(0.08713727,0.01052869,-0.01399389,0.1141533,108.45236,122.46751)" + x1="18" + y1="18" + x2="19.487644" + y2="20.63061" /> + xlink:href="#linearGradient1084" + id="linearGradient1086" + x1="62.063992" + y1="203.26164" + x2="47.19381" + y2="257.1478" + gradientUnits="userSpaceOnUse" /> - - - - - - - - - - - - - - + id="linearGradient1084"> + + + + + id="metadata1136"> image/svg+xml - - - Ulisse Perusin - - - - gthumb - - - gthumb - - - + - - - - - - - - - - - - - - - - - - - - - - - - - - + transform="translate(-107.81645,-123.58578)"> + + + + + + + + + + + + + + - diff -Nru gthumb-3.8.3/data/icons/source/22x22/gthumb.svg gthumb-3.9.1/data/icons/source/22x22/gthumb.svg --- gthumb-3.8.3/data/icons/source/22x22/gthumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/source/22x22/gthumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -10,257 +10,110 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="22.008482" - height="22.004335" - id="svg3045" + width="22" + height="22" + viewBox="0 0 5.8208334 5.8208334" version="1.1" - inkscape:version="0.47 r22583" + id="svg1139" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/22x22/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> + inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/public/hicolor/22x22/apps/gthumb.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> - - - - - - - - - - - - - - - - - + id="defs1133"> + gradientTransform="matrix(5.2356966,0.59193716,-0.75365258,5.7690033,85.095265,80.300749)" + x1="11.749995" + y1="23.24999" + x2="14.499992" + y2="25.99999" /> + id="linearGradient2862-897-722"> + id="stop7606" + style="stop-color:#a8ae30;stop-opacity:1" /> + id="stop7608" + style="stop-color:#8f9429;stop-opacity:1" /> - - - - + gradientTransform="matrix(6.1712247,0.62596225,-0.83664221,5.8260579,46.537465,117.17483)" + x1="27.8125" + y1="22.657413" + x2="26.700396" + y2="25.157413" /> - - - - - + gradientTransform="matrix(6.1712247,0.62596225,-0.83664221,5.8260579,46.537465,117.17483)" + x1="29.0625" + y1="29" + x2="28.463289" + y2="23.782413" /> + id="linearGradient2874-499-677"> + id="stop7618" + style="stop-color:#6c782e;stop-opacity:1;" /> + id="stop7620" + style="stop-color:#929829;stop-opacity:1" /> + gradientTransform="matrix(5.0910971,0.65880052,-0.69246889,6.0624834,69.657935,112.35702)" + x1="11.749995" + y1="23.24999" + x2="14.499992" + y2="25.99999" /> - - - - - - - - + gradientTransform="matrix(5.6963323,0.73711945,-0.69246889,6.0624834,57.855855,110.82981)" + x1="10.062495" + y1="29.49999" + x2="12.656243" + y2="24.74999" /> - - - - + gradientTransform="matrix(5.8808652,0.71098514,-0.74365364,6.0697325,55.566975,111.15397)" + x1="20.383799" + y1="31.625" + x2="19.883799" + y2="26.4375" /> + y2="19.234819" + gradientTransform="matrix(9.1440383,0,0,10.262512,12.894773,11.013381)" /> @@ -343,56 +197,14 @@ - - - - - - - - - - + gradientTransform="matrix(4.897524,0.5921011,-0.83355043,6.8034739,75.100345,100.5862)" + x1="21" + y1="20" + x2="21.25" + y2="22" /> - - - - - - - - - - - - - - + gradientTransform="matrix(5.0505094,0.61059674,-0.82845522,6.7618866,71.751835,99.413759)" + x1="17" + y1="21" + x2="18.892241" + y2="22.069994" /> - - - - + xlink:href="#linearGradient1084" + id="linearGradient1086" + x1="62.063992" + y1="203.26164" + x2="47.19381" + y2="257.1478" + gradientUnits="userSpaceOnUse" /> - - - - - - - + id="linearGradient1084"> + + + + inkscape:window-y="27" + inkscape:window-maximized="1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" + units="px" + inkscape:snap-global="false" /> + id="metadata1136"> @@ -729,117 +299,171 @@ inkscape:label="Livello 1" inkscape:groupmode="layer" id="layer1" - transform="translate(-346.13861,-401.36001)"> - - - - - - - - - + transform="translate(-107.81645,-121.99828)"> + + - - + id="g889" + transform="translate(-0.08267748)"> + style="stroke-width:1.46862471" + transform="matrix(0.68090038,0,0,0.68091791,34.520343,40.731962)" + id="g895"> + + id="g1221" + transform="matrix(0.03924725,0,0,0.03924134,105.72423,112.5529)" + style="display:inline;stroke-width:9.90140057;enable-background:new" + inkscape:export-xdpi="44.303635" + inkscape:export-ydpi="44.303635" + inkscape:export-filename="./g1255.png"> + inkscape:connector-curvature="0" + d="m 167.90962,239.43954 c -6.35814,-37.85432 -65.57253,-38.83582 -49.91431,14.35282 22.43495,-20.31615 22.27771,2.51864 49.91431,-14.35282 z" + id="path14259-3" + style="display:inline;fill:url(#linearGradient5042);fill-opacity:1;fill-rule:evenodd;stroke:#909729;stroke-width:9.92476559;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + inkscape:connector-curvature="0" + d="m 144.87017,243.51578 c 18.85499,-37.97439 90.6684,-23.42981 56.05314,28.15911 -21.10102,-27.17808 -27.65222,-3.22082 -56.05314,-28.15911 z" + id="path14261-6" + style="display:inline;fill:#9ca02c;fill-opacity:1;fill-rule:evenodd;stroke:#909729;stroke-width:9.92476559;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + inkscape:connector-curvature="0" + d="M 161.38837,276.59746 C 179.169,239.98 243.13022,252.37867 210.91554,302.30933 192.6628,276.81423 186.23062,299.80549 161.38837,276.59746 Z" + id="path14263-0" + style="display:inline;fill:url(#linearGradient5044);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5046);stroke-width:9.92476559;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + inkscape:connector-curvature="0" + d="m 151.21793,280.30816 c -6.4386,-39.85822 -63.978215,-41.30014 -48.39789,14.7507 21.65777,-21.21287 21.66243,2.80317 48.39789,-14.7507 z" + id="path14265-6" + style="display:inline;fill:url(#linearGradient5049);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5051);stroke-width:9.92476559;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccc" /> + inkscape:connector-curvature="0" + d="m 156.45207,261.94265 c 47.04694,5.68788 8.04346,31.77063 3.61574,43.5546 -39.67876,-17.11635 -26.92214,-46.3723 -3.61574,-43.5546 z" + id="path14267-2" + style="display:inline;fill:#a8ae30;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5053);stroke-width:9.92476559;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccs" /> + + + + + + + + + + inkscape:export-ydpi="44" + inkscape:export-xdpi="44" + inkscape:connector-curvature="0" + id="path1088" + d="m 108.79881,126.67527 h 2.37699" + style="fill:none;fill-rule:evenodd;stroke:#c0bfbc;stroke-width:0.26458332;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> diff -Nru gthumb-3.8.3/data/icons/source/32x32/gthumb.svg gthumb-3.9.1/data/icons/source/32x32/gthumb.svg --- gthumb-3.8.3/data/icons/source/32x32/gthumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/source/32x32/gthumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -12,985 +12,86 @@ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="32" height="32" - id="svg1872" - sodipodi:version="0.32" - inkscape:version="0.47 r22583" + viewBox="0 0 8.4666667 8.4666667" + version="1.1" + id="svg1139" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.0" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/32x32/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/public/hicolor/32x32/apps/gthumb.png" + inkscape:export-xdpi="96.000008" + inkscape:export-ydpi="96.000008"> + - - - - - + id="linearGradient2862-897-722"> + + + - - - - - - - - - - - + id="linearGradient2874-499-677"> + + + + + + + + + + + + + + + + y2="19.234819" + gradientTransform="matrix(9.1440383,0,0,10.262512,12.894773,11.013381)" /> + + + + + gradientTransform="matrix(4.897524,0.5921011,-0.83355043,6.8034739,75.100345,100.5862)" + x1="21" + y1="20" + x2="21.25" + y2="22" /> + + + + + xlink:href="#linearGradient1084" + id="linearGradient1086" + x1="62.063992" + y1="203.26164" + x2="47.19381" + y2="257.1478" + gradientUnits="userSpaceOnUse" /> + + + + + + id="metadata1136"> image/svg+xml - - - Ulisse Perusin - - - - gthumb - - - gthumb - - - + - - - - - - - - - - - - - + transform="translate(-107.81645,-119.35245)"> - - + id="g919" + transform="matrix(1.0187225,0,0,1.0187214,-2.1610388,-2.3161009)" + style="stroke-width:0.9816221"> + ry="0" + y="119.90712" + x="108.10373" + height="7.696331" + width="8.0161591" + id="rect871" + style="display:inline;opacity:1;fill:#9a9996;fill-opacity:1;stroke:#9a9996;stroke-width:0.25972083;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" + inkscape:export-xdpi="44.303635" + inkscape:export-ydpi="44.303635" + inkscape:export-filename="./g1255.png" /> + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + style="display:inline;opacity:1;fill:#f6f5f4;fill-opacity:1;stroke:#9a9996;stroke-width:0.26012984;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" + id="rect966" + width="8.0161591" + height="7.696331" + x="108.10373" + y="119.57304" + ry="0" /> - + id="g895" + transform="translate(0.10021806,-0.01057015)"> - - - - - - + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + ry="0.37122053" + y="120.41683" + x="108.81838" + height="4.7799053" + width="6.3864169" + id="rect968" + style="display:inline;opacity:1;fill:url(#linearGradient1086);fill-opacity:1;stroke:none;stroke-width:0.26458332;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" /> + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + style="display:inline;stroke-width:6.74195433;enable-background:new" + transform="matrix(0.03924725,0,0,0.03924134,105.72423,112.5529)" + id="g1221"> + + + + sodipodi:nodetypes="ccc" + style="display:inline;fill:url(#linearGradient5049);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5051);stroke-width:6.75786352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path14265-6" + d="m 151.21793,280.30816 c -6.4386,-39.85822 -63.978215,-41.30014 -48.39789,14.7507 21.65777,-21.21287 21.66243,2.80317 48.39789,-14.7507 z" + inkscape:connector-curvature="0" /> + sodipodi:nodetypes="ccs" + style="display:inline;fill:#a8ae30;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient5053);stroke-width:6.75786352;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + id="path14267-2" + d="m 156.45207,261.94265 c 47.04694,5.68788 8.04346,31.77063 3.61574,43.5546 -39.67876,-17.11635 -26.92214,-46.3723 -3.61574,-43.5546 z" + inkscape:connector-curvature="0" /> + inkscape:connector-curvature="0" + id="path14271-6" + d="m 180.36402,305.38778 c -5.25851,3.52114 -18.78337,-22.18478 -28.25405,-27.22405 -10.32637,2.47136 -23.03085,23.32756 -28.22767,19.51286 -5.94326,-4.36261 1.35471,-31.26313 4.77698,-37.14521 4.41075,-7.58101 -25.39059,-8.18072 -22.87687,-14.59523 2.47991,-6.3283 26.94348,-12.1726 34.64655,-13.26354 2.79356,-7.51892 10.0296,-19.358 19.92813,-18.07405 9.89854,1.28393 15.41812,15.80585 17.47411,23.25377 10.28636,1.77463 27.14001,8.81565 28.40291,15.62543 1.24591,6.71823 -34.0332,5.55386 -29.53819,13.34644 3.28156,5.68898 7.60607,34.81386 3.66809,38.56358 z" + style="display:inline;fill:url(#linearGradient5055-7);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient5057);stroke-width:6.75786352;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="ccssscscssc" /> + + inkscape:connector-curvature="0" + id="path14275-8" + d="m 160.19886,261.30301 7.64557,-22.32367" + style="display:inline;fill:none;stroke:url(#linearGradient5063-3);stroke-width:6.75786352;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + inkscape:connector-curvature="0" + id="path14277-7" + d="m 149.9281,262.75759 -8.04454,-19.81422" + style="display:inline;fill:none;stroke:url(#linearGradient5065-5);stroke-width:6.75786352;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + sodipodi:nodetypes="cc" /> + - + + + transform="matrix(0.07587364,0,0,0.07586222,108.06011,105.9497)" + inkscape:export-ydpi="118.14" + inkscape:export-xdpi="118.14" + sodipodi:type="star" + style="opacity:1;fill:#f5c211;fill-opacity:1;stroke:#f5c211;stroke-width:3.48742008;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + id="path1225" + sodipodi:sides="5" + sodipodi:cx="88.944489" + sodipodi:cy="264.67184" + sodipodi:r1="3.5531673" + sodipodi:r2="1.384005" + sodipodi:arg1="0.88506682" + sodipodi:arg2="1.5133853" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 91.194488,267.42184 -2.170586,-1.36827 -1.999531,1.60795 0.630559,-2.48717 -2.147139,-1.40479 2.560293,-0.16888 0.672526,-2.47615 0.951789,2.3828 2.562783,-0.12557 -1.972055,1.64153 z" + inkscape:transform-center-x="0.040613234" + inkscape:transform-center-y="-0.17970513" /> + + - diff -Nru gthumb-3.8.3/data/icons/source/48x48/gthumb.svg gthumb-3.9.1/data/icons/source/48x48/gthumb.svg --- gthumb-3.8.3/data/icons/source/48x48/gthumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/source/48x48/gthumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -12,427 +12,109 @@ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" width="48" height="48" - id="svg1872" - sodipodi:version="0.32" - inkscape:version="0.47 r22583" + viewBox="0 0 12.7 12.7" + version="1.1" + id="svg1139" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" - inkscape:output_extension="org.inkscape.output.svg.inkscape" - version="1.0" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/48x48/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - - - - + inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/public/hicolor/48x48/apps/gthumb.png" + inkscape:export-xdpi="96" + inkscape:export-ydpi="96"> - - - - - - - - - - - - - - - - - - - - - - - + id="defs1133"> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + id="linearGradient2862-897-722"> - - - - + id="linearGradient2874-499-677"> - - - - - - - - - - - - + r="2" /> @@ -493,13 +175,14 @@ + y2="19.234819" + gradientTransform="matrix(9.1440383,0,0,10.262512,12.894773,11.013381)" /> @@ -514,57 +197,15 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + xlink:href="#linearGradient1084" + id="linearGradient1086" + x1="62.063992" + y1="203.26164" + x2="47.19381" + y2="257.1478" + gradientUnits="userSpaceOnUse" /> + id="linearGradient1084"> + + + + + id="metadata1136"> image/svg+xml - - - Ulisse Perusin - - - - gthumb - - - gthumb - - - + - - - - - - - - - - - - - - - - - - - + transform="translate(-107.81645,-115.11912)"> + + + - - - - - - - - - - - - - - - - - + id="g1221" + transform="matrix(0.06088889,0,0,0.06088265,104.41212,104.28251)" + style="display:inline;stroke-width:4.34556818;enable-background:new" + inkscape:export-xdpi="44.303635" + inkscape:export-ydpi="44.303635" + inkscape:export-filename="./g1255.png"> + + + + + + + + + sodipodi:nodetypes="cc" + style="display:inline;fill:none;stroke:url(#linearGradient5065-5);stroke-width:4.35582256;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 149.9281,262.75759 -8.04454,-19.81422" + id="path14277-7" + inkscape:connector-curvature="0" /> + - - + inkscape:transform-center-y="-0.27881981" + inkscape:transform-center-x="0.063002009" + d="m 91.194488,267.42184 -2.170586,-1.36827 -1.999531,1.60795 0.630559,-2.48717 -2.147139,-1.40479 2.560293,-0.16888 0.672526,-2.47615 0.951789,2.3828 2.562783,-0.12557 -1.972055,1.64153 z" + inkscape:randomized="0" + inkscape:rounded="0" + inkscape:flatsided="false" + sodipodi:arg2="1.5133853" + sodipodi:arg1="0.88506682" + sodipodi:r2="1.384005" + sodipodi:r1="3.5531673" + sodipodi:cy="264.67184" + sodipodi:cx="88.944489" + sodipodi:sides="5" + id="path1225" + style="opacity:1;fill:#f5c211;fill-opacity:1;stroke:#f5c211;stroke-width:2.24783809;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" + sodipodi:type="star" + inkscape:export-xdpi="118.14" + inkscape:export-ydpi="118.14" + transform="matrix(0.11771172,0,0,0.11769966,108.03606,94.037681)" /> + + + diff -Nru gthumb-3.8.3/data/icons/source/gthumb.svg gthumb-3.9.1/data/icons/source/gthumb.svg --- gthumb-3.8.3/data/icons/source/gthumb.svg 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/icons/source/gthumb.svg 2020-03-07 19:03:13.400289800 +0000 @@ -10,398 +10,280 @@ xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - width="256" - height="256" - id="svg1872" + inkscape:export-ydpi="96" + inkscape:export-xdpi="96" + inkscape:export-filename="Template.png" + width="128" + height="128" + id="svg11300" sodipodi:version="0.32" - inkscape:version="0.48.3.1 r9886" + inkscape:version="0.92.4 5da689c313, 2019-01-14" sodipodi:docname="gthumb.svg" inkscape:output_extension="org.inkscape.output.svg.inkscape" version="1.0" - inkscape:export-filename="/home/paolo/workspace/gthumb/data/icons/hicolor/256x256/apps/gthumb.png" - inkscape:export-xdpi="90" - inkscape:export-ydpi="90"> - - - - + style="display:inline;enable-background:new" + viewBox="0 0 128 128"> + Adwaita Icon Template + id="defs3"> - - - - + id="linearGradient1084"> + id="stop1080" /> + id="stop1082" /> - - - + y2="236" + x2="96" + y1="236" + x1="32" + gradientTransform="translate(604.81684,170.58641)" + gradientUnits="userSpaceOnUse" + id="linearGradient1099" + xlink:href="#linearGradient1036" /> + id="linearGradient1036"> + style="stop-color:#d5d3cf;stop-opacity:1;" /> + style="stop-color:#f6f5f4;stop-opacity:1" /> - + + id="linearGradient1069"> + style="stop-color:#d5d3cf;stop-opacity:1" /> + style="stop-color:#949390;stop-opacity:1" /> - - - + gradientUnits="userSpaceOnUse" + y2="232" + x2="64" + y1="262.5" + x1="64" + id="linearGradient1027" + xlink:href="#linearGradient1025" + gradientTransform="translate(-470.5864,432.81685)" /> + id="linearGradient1025"> - + style="stop-color:#9a9996;stop-opacity:1" /> + style="stop-color:#77767b;stop-opacity:1" /> + + + + + id="linearGradient2911-977-39"> + id="stop7660" + style="stop-color:#ffffe0;stop-opacity:1;" /> + id="stop7662" + style="stop-color:#ffe588;stop-opacity:0;" /> + id="linearGradient2891-388-107"> + id="stop7636" + style="stop-color:#8a300c;stop-opacity:1;" /> + id="stop7638" + style="stop-color:#ec510c;stop-opacity:0" /> - + id="linearGradient2885-866-809"> + id="stop7642" + style="stop-color:#b04730;stop-opacity:1" /> + id="stop7644" + style="stop-color:#ff7b2f;stop-opacity:1" /> - + id="linearGradient2855-649-911"> + id="stop7624" + style="stop-color:#ed6520;stop-opacity:1" /> + id="stop7626" + style="stop-color:#ff9e50;stop-opacity:1" /> - - - - + xlink:href="#linearGradient1084" + id="linearGradient1086" + x1="62.063992" + y1="203.26164" + x2="47.19381" + y2="257.1478" + gradientUnits="userSpaceOnUse" /> - - - - + gradientTransform="matrix(4.8975175,0.59210032,-0.78652133,6.4196204,73.853415,105.07463)" + x1="18" + y1="18" + x2="19.487644" + y2="20.63061" /> - - - - + gradientTransform="matrix(5.0505094,0.61059674,-0.82845522,6.7618866,71.751835,99.413759)" + x1="17" + y1="21" + x2="18.892241" + y2="22.069994" /> - + - - - + xlink:href="#linearGradient2891-388-107" + id="radialGradient5059-5" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(16.579705,-7.8818594e-6,9.530127e-6,14.329945,-128.383,-82.885307)" + cx="19" + cy="22.472271" + fx="19" + fy="22.472271" + r="2" /> + x1="18.36898" + y1="23.024696" + x2="18.153841" + y2="19.234819" + gradientTransform="matrix(9.1440383,0,0,10.262512,12.894773,11.013381)" /> - - - + xlink:href="#linearGradient2855-649-911" + id="linearGradient5055-7" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(6.5990198,0.85596573,-0.85568463,7.5105928,60.771415,82.741509)" + x1="16.916706" + y1="25.210888" + x2="16.373755" + y2="16.540718" /> + gradientTransform="matrix(6.5990198,0.85596573,-0.85568463,7.5105928,60.771415,82.741509)" + x1="10.257123" + y1="24.583183" + x2="13.592399" + y2="15.520698" /> + id="linearGradient2849-135-305"> + id="stop7630" + style="stop-color:#da6224;stop-opacity:1" /> + id="stop7632" + style="stop-color:#d57042;stop-opacity:1" /> + gradientTransform="matrix(5.8808652,0.71098514,-0.74365364,6.0697325,55.566975,111.15397)" + x1="20.383799" + y1="31.625" + x2="19.883799" + y2="26.4375" /> + id="linearGradient2874-499-677"> - - - - - - - - + gradientTransform="matrix(6.1712247,0.62596225,-0.83664221,5.8260579,46.537465,117.17483)" + x1="27.8125" + y1="22.657413" + x2="26.700396" + y2="25.157413" /> - - - - + gradientTransform="matrix(6.1712247,0.62596225,-0.83664221,5.8260579,46.537465,117.17483)" + x1="29.0625" + y1="29" + x2="28.463289" + y2="23.782413" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + id="metadata4"> @@ -5251,315 +544,370 @@ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> - Ulisse Perusin + GNOME Design Team + - gthumb + rdf:resource="http://creativecommons.org/licenses/by-sa/4.0/" /> + Adwaita Icon Template - - gthumb - + - + + + + + + + + + + + + + + + + + + + + + + rdf:about="http://creativecommons.org/licenses/by-sa/4.0/"> + rdf:resource="http://creativecommons.org/ns#Reproduction" /> + rdf:resource="http://creativecommons.org/ns#Distribution" /> - + rdf:resource="http://creativecommons.org/ns#Notice" /> + rdf:resource="http://creativecommons.org/ns#Attribution" /> + + rdf:resource="http://creativecommons.org/ns#ShareAlike" /> - + transform="translate(0,-172)"> + + + + + + + Hicolor + Symbolic + + + + + + + + + + id="g4650"> + + + - - - - - - - - + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + style="stroke-width:1.87016165" + transform="matrix(0.53471313,0,0,0.53471313,-21.660409,84.859507)" + id="g1221"> + + + + + + + + + + - - - - - - - - + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + transform="translate(0,2.3749998)" + id="g1234"> + + + + inkscape:export-filename="./g1255.png" + inkscape:export-ydpi="44.303635" + inkscape:export-xdpi="44.303635" + id="g1255"> + + - - - - - - - - - - - - - - - - - - - - - - - Perfev mitr asertovnia, Cherioniev (Xariomashin) 2012, MashovBacu, Niri, Metru nde Covinir. Thumoriociv leshigaris. - + id="path1229" + d="M 22.495007,270.21789 H 68.504992" + style="fill:none;fill-rule:evenodd;stroke:#deddda;stroke-width:2;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /> diff -Nru gthumb-3.8.3/data/ui/browser-preferences.ui gthumb-3.9.1/data/ui/browser-preferences.ui --- gthumb-3.8.3/data/ui/browser-preferences.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/ui/browser-preferences.ui 2020-03-07 19:03:13.400289800 +0000 @@ -1,12 +1,12 @@ - + True False vertical - 12 + 20 True @@ -31,19 +31,13 @@ - + True - False - 12 + True + 12 + in - - True - True - in - - - - + @@ -96,7 +90,6 @@ True False True - 0 True True @@ -113,7 +106,6 @@ True False True - 0 True True single_click_radiobutton @@ -131,7 +123,6 @@ True False True - 0 True @@ -178,28 +169,50 @@ - + True False - 12 + 12 + vertical + 6 - + True False - vertical 6 - + + True + False + Thumbnail _size: + True + thumbnail_size_combobox + + + False + True + 0 + + + + True False - 6 - + True False - Thumbnail _size: - True - thumbnail_size_combobox + + 48 + 64 + 85 + 95 + 112 + 128 + 164 + 200 + 256 + False @@ -207,56 +220,6 @@ 0 - - - True - False - - - True - False - - 48 - 64 - 85 - 95 - 112 - 128 - 164 - 200 - 256 - - - - False - True - 0 - - - - - False - True - 1 - - - - - False - True - 0 - - - - - D_etermine image type from content (slower) - False - True - True - False - True - 0 - True False @@ -265,6 +228,26 @@ + + False + True + 0 + + + + + D_etermine image type from content (slower) + True + True + False + True + True + + + False + True + 1 + diff -Nru gthumb-3.8.3/data/ui/favorite-properties.ui gthumb-3.9.1/data/ui/favorite-properties.ui --- gthumb-3.8.3/data/ui/favorite-properties.ui 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/ui/favorite-properties.ui 2020-03-07 19:03:13.400289800 +0000 @@ -0,0 +1,30 @@ + + + + + + True + False + True + True + 5 + vertical + + + 450 + 450 + True + True + in + + + + + + True + True + 0 + + + + diff -Nru gthumb-3.8.3/data/ui/file-selection-info.ui gthumb-3.9.1/data/ui/file-selection-info.ui --- gthumb-3.8.3/data/ui/file-selection-info.ui 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/ui/file-selection-info.ui 2020-03-07 19:03:13.403623000 +0000 @@ -0,0 +1,81 @@ + + + + + + True + False + True + vertical + + + True + False + 6 + + + True + True + True + Previous + + + True + False + go-previous-symbolic + + + + + False + True + 0 + + + + + True + False + True + word-char + 30 + 0.5 + + + + + + True + True + 1 + + + + + True + True + True + Next + + + True + False + go-next-symbolic + + + + + False + True + 2 + + + + + False + True + 0 + + + + diff -Nru gthumb-3.8.3/data/ui/filter-editor.ui gthumb-3.9.1/data/ui/filter-editor.ui --- gthumb-3.8.3/data/ui/filter-editor.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/ui/filter-editor.ui 2020-03-07 19:03:13.403623000 +0000 @@ -1,5 +1,5 @@ - + @@ -59,12 +59,10 @@ _Match: - False True True False True - 0 True @@ -95,13 +93,26 @@ - + True False - 20 + 25 vertical 6 + + True + False + Rules: + 0 + + + False + True + 0 + + + True False @@ -114,7 +125,7 @@ False True - 0 + 1 @@ -151,12 +162,10 @@ _Limit to - False True True False True - 0.5 True @@ -166,6 +175,23 @@ + + + + + False + True + 0 + + + + + True + False + 25 + vertical + 15 + True False @@ -200,23 +226,9 @@ False True - 1 + 0 - - - False - True - 0 - - - - - True - False - 20 - vertical - 6 True @@ -266,7 +278,7 @@ False False - 0 + 1 diff -Nru gthumb-3.8.3/data/ui/meson.build gthumb-3.9.1/data/ui/meson.build --- gthumb-3.8.3/data/ui/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/ui/meson.build 2020-03-07 19:03:13.403623000 +0000 @@ -1,12 +1,14 @@ ui_files = files( 'browser-preferences.ui', 'extensions-preferences.ui', + 'favorite-properties.ui', 'filter-editor.ui', 'histogram-info.ui', 'location.ui', 'overwrite-dialog.ui', 'personalize-filters.ui', 'preferences.ui', + 'shortcuts-preferences.ui', 'sort-order.ui' ) install_data(ui_files, install_dir : ui_install_dir) diff -Nru gthumb-3.8.3/data/ui/overwrite-dialog.ui gthumb-3.9.1/data/ui/overwrite-dialog.ui --- gthumb-3.8.3/data/ui/overwrite-dialog.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/ui/overwrite-dialog.ui 2020-03-07 19:03:13.403623000 +0000 @@ -1,5 +1,5 @@ - + @@ -30,7 +30,7 @@ True False - 12 + 24 True @@ -124,7 +124,8 @@ True False - True + end + True 0 @@ -292,7 +293,8 @@ True False - True + end + True 0 diff -Nru gthumb-3.8.3/data/ui/preferences.ui gthumb-3.9.1/data/ui/preferences.ui --- gthumb-3.8.3/data/ui/preferences.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/data/ui/preferences.ui 2020-03-07 19:03:13.403623000 +0000 @@ -1,5 +1,5 @@ - + @@ -22,6 +22,9 @@ gThumb Preferences center normal + + + False @@ -47,7 +50,6 @@ True False - 5 True @@ -85,7 +87,7 @@ True False vertical - 12 + 20 True @@ -96,9 +98,9 @@ True False - 0 Appearance True + 0 @@ -110,75 +112,69 @@ - + True False - 12 + 12 + 6 + 6 - + True False - 6 - 6 - - - True - False - 0 - T_humbnails in viewer: - True - - - 0 - 0 - - - - - True - False - - on the bottom - on the side - - - - 1 - 0 - - - - - True - False - 0 - File _properties in browser: - True - file_properties_position_combobox - - - 0 - 1 - - + T_humbnails in viewer: + True + 0 + + + 0 + 0 + + + + + True + False + + on the bottom + on the side + + + + 1 + 0 + + + + + True + False + File _properties in browser: + True + file_properties_position_combobox + 0 + + + 0 + 1 + + + + + True + False + file_properties_position_liststore - - True - False - file_properties_position_liststore - - - - 0 - - - - - 1 - 1 - + + + 0 + + + 1 + 1 + @@ -204,10 +200,10 @@ True False - 0 On startup: True end + 0 @@ -219,27 +215,42 @@ - + True False - 12 + 12 + vertical + 6 + + + Go to last _visited location + True + True + False + True + True + True + + + False + True + 0 + + - + True False - vertical 6 - - Go to last _visited location - False + + Go to this _folder: True True False True - 0 - True True + go_to_last_location_radiobutton False @@ -248,93 +259,55 @@ - - True - False - 6 - - - Go to this _folder: - False - True - True - False - True - 0 - True - go_to_last_location_radiobutton - - - False - True - 0 - - - - - True - False - select-folder - Choose startup folder - - - True - True - 1 - - - - - False - True - 1 - - - - - True - False - - - Set to C_urrent - False - True - True - True - True - - - False - True - end - 0 - - - - - False - True - 2 - + + + + False + True + 1 + + + + + True + False - - _Reuse the active window to open files - False + + Set to C_urrent True True - False + True True - 0 - True False True - 3 + end + 0 + + False + True + 2 + + + + + _Reuse the active window to open files + True + True + False + True + True + + + False + True + 3 + @@ -360,9 +333,9 @@ True False - 0 Other True + 0 @@ -374,68 +347,56 @@ - + True False - 12 + 12 + vertical + 6 - + + As_k confirmation before deleting files or catalogs True - False - vertical - 6 - - - As_k confirmation before deleting files or catalogs - False - True - True - False - True - 0 - True - - - False - True - 0 - - - - - Ask whether to save _modified files - False - True - True - False - True - 0 - True - - - False - True - 1 - - - - - _Store metadata inside files if possible - False - True - True - False - True - 0 - True - - - False - True - 2 - - + True + False + True + True + + + False + True + 0 + + + + + Ask whether to save _modified files + True + True + False + True + True + + + False + True + 1 + + + + + _Store metadata inside files if possible + True + True + False + True + True + + False + True + 2 + diff -Nru gthumb-3.8.3/data/ui/shortcuts-preferences.ui gthumb-3.9.1/data/ui/shortcuts-preferences.ui --- gthumb-3.8.3/data/ui/shortcuts-preferences.ui 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/data/ui/shortcuts-preferences.ui 2020-03-07 19:03:13.403623000 +0000 @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + True + False + vertical + 6 + + + True + False + 6 + + + True + False + Shortcuts: + shortcuts_list + 0 + + + False + True + 0 + + + + + True + False + category_liststore + + + + 1 + + + + + False + True + 1 + + + + + False + True + 0 + + + + + True + True + in + + + True + False + + + True + False + + + + + + + True + True + 1 + + + + + True + False + + + _Restore All… + True + True + True + True + + + False + True + 0 + + + + + False + True + 2 + + + + + + + diff -Nru gthumb-3.8.3/debian/changelog gthumb-3.9.1/debian/changelog --- gthumb-3.8.3/debian/changelog 2019-12-27 18:03:27.000000000 +0000 +++ gthumb-3.9.1/debian/changelog 2020-03-10 05:22:09.000000000 +0000 @@ -1,3 +1,40 @@ +gthumb (3:3.9.1-2dhor~eoan) eoan; urgency=medium + + * Added ability to customize the keyboard shortcuts. + * Added a shortcuts window to show the available shortcuts. + * Added option to change the mouse wheel action. + * Image viewer: added ability to define the transparency style. + * Video viewer: allow to view the video at the original size; show the zoom + factor in the statusbar. + * Edit comment/tags dialogs: use the header bar; allow to change the current + image from the dialog. + * Add to catalog: use the header bar; allow to change the current image from + the dialog. + * Search: added ability to search in multiple folders. + * Scripts: added %T to insert a timestamp in the command. + * Folder tree: + * better drag&drop support: allow to move a catalog into a library, and a + library into another library, show an error if the drop operation is not + possible; + * added an 'Open in Terminal' command in the context menu. + * Overwrite dialog: show video previews as well, fixed dialog size. + * Preferences: allow to specify a catalog or any other location as startup + location. + * Trash/Delete files: show progress for long operations. + * File properties: added the file size in bytes. + * File properties: added a context menu command to customize the visibile + properties. + * Toolbar: show edit comment/tags in browser mode as well. + * Export tools: removed from the toolbar. Some tools moved to the tools + menu, others as a submenu in the gears menu. + * Fixed window size when started the first time. + * Updated app icon to follow the new GNOME style. + * Rewritten README in markdown, updated screenshots. + * Appdata: added release and OARS tags for flathub compatibility. (Tobias Mueller) + * version: commit 004b31741a920e4e9ca6af24c7358a635fbe5080 do not use g_ptr_array_copy to avoid a dependency on glib 2.62 + + -- Dariusz Duma Tue, 10 Mar 2020 06:22:09 +0100 + gthumb (3:3.8.3-1dhor~eoan) eoan; urgency=medium * App icons: name the app icons with the application id (!77) diff -Nru gthumb-3.8.3/debian/control gthumb-3.9.1/debian/control --- gthumb-3.8.3/debian/control 2019-09-01 19:19:50.000000000 +0000 +++ gthumb-3.9.1/debian/control 2020-03-10 05:22:09.000000000 +0000 @@ -12,6 +12,10 @@ libdbus-glib-1-dev, libexiv2-dev, libgstreamer-plugins-base1.0-dev, + libchamplain-gtk-0.12-dev, + libchamplain-0.12-dev, + libcolord-gtk-dev, + libcolord-dev, libgstreamer1.0-dev, libgtk-3-dev, libraw-dev, diff -Nru gthumb-3.8.3/debian/patches/3.9.1---build-for-lower-glib-version gthumb-3.9.1/debian/patches/3.9.1---build-for-lower-glib-version --- gthumb-3.8.3/debian/patches/3.9.1---build-for-lower-glib-version 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/debian/patches/3.9.1---build-for-lower-glib-version 2020-03-10 05:22:09.000000000 +0000 @@ -0,0 +1,5967 @@ +--- /dev/null ++++ gthumb-3.9.1/data/icons/private/hicolor/16x16/actions/lock-symbolic.svg +@@ -0,0 +1,116 @@ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ image/svg+xml ++ ++ ++ ++ ++ ++ ++ ++ ++ +--- gthumb-3.9.1.orig/data/ui/file-selection-info.ui ++++ gthumb-3.9.1/data/ui/file-selection-info.ui +@@ -2,28 +2,76 @@ + + + +- ++ + True + False +- True +- vertical + + + True + False +- 6 ++ vertical + +- ++ + True +- True +- True +- Previous ++ False ++ 6 ++ ++ ++ True ++ True ++ True ++ Previous ++ ++ ++ True ++ False ++ go-previous-symbolic ++ ++ ++ ++ ++ False ++ True ++ 0 ++ ++ + +- ++ + True + False +- go-previous-symbolic ++ True ++ word-char ++ 30 ++ 0.5 ++ ++ ++ ++ ++ ++ True ++ True ++ 1 ++ ++ ++ ++ ++ True ++ True ++ True ++ Next ++ ++ ++ True ++ False ++ go-next-symbolic ++ ++ + ++ ++ False ++ True ++ 2 ++ + + + +@@ -33,49 +81,19 @@ + + + +- ++ + True + False +- True +- word-char +- 30 +- 0.5 +- +- +- +- +- +- True +- True +- 1 +- +- +- +- +- True +- True +- True +- Next +- +- +- True +- False +- go-next-symbolic +- +- ++ 10 ++ 10 + + + False + True +- 2 ++ 1 + + + +- +- False +- True +- 0 +- + + + +--- gthumb-3.9.1.orig/data/ui/meson.build ++++ gthumb-3.9.1/data/ui/meson.build +@@ -2,6 +2,7 @@ ui_files = files( + 'browser-preferences.ui', + 'extensions-preferences.ui', + 'favorite-properties.ui', ++ 'file-selection-info.ui', + 'filter-editor.ui', + 'histogram-info.ui', + 'location.ui', +--- gthumb-3.9.1.orig/extensions/catalogs/data/ui/add-to-catalog.ui ++++ gthumb-3.9.1/extensions/catalogs/data/ui/add-to-catalog.ui +@@ -1,5 +1,5 @@ + +- ++ + + + +@@ -114,21 +114,5 @@ + 2 + + +- +- +- _Keep the dialog open +- True +- True +- False +- start +- True +- True +- +- +- False +- True +- 3 +- +- + + +--- gthumb-3.9.1.orig/extensions/catalogs/dlg-add-to-catalog.c ++++ gthumb-3.9.1/extensions/catalogs/dlg-add-to-catalog.c +@@ -85,6 +85,7 @@ typedef struct { + GthBrowser *browser; + GtkBuilder *builder; + GtkWidget *dialog; ++ GtkWidget *keep_open_checkbutton; + GtkWidget *source_tree; + GtkWidget *info; + AddData *add_data; +@@ -260,7 +261,7 @@ static void + add_button_clicked_cb (GtkWidget *widget, + DialogData *data) + { +- add_selection_to_catalog (data, ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); ++ add_selection_to_catalog (data, ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->keep_open_checkbutton))); + } + + +@@ -276,8 +277,8 @@ update_sensitivity (DialogData *data) + items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (data->browser))); + can_add = (items != NULL) && (selected_catalog != NULL); + gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, can_add); +- gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (GET_WIDGET ("view_destination_checkbutton")), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); +- gtk_widget_set_sensitive (GET_WIDGET ("view_destination_checkbutton"), ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); ++ gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (GET_WIDGET ("view_destination_checkbutton")), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->keep_open_checkbutton))); ++ gtk_widget_set_sensitive (GET_WIDGET ("view_destination_checkbutton"), ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->keep_open_checkbutton))); + + file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), items); + gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (data->info), file_data_list); +@@ -659,6 +660,8 @@ static void + keep_open_button_toggled_cb (GtkToggleButton *button, + DialogData *data) + { ++ gth_file_selection_info_set_visible (GTH_FILE_SELECTION_INFO (data->info), ++ gtk_toggle_button_get_active (button)); + update_sensitivity (data); + } + +@@ -669,7 +672,6 @@ dlg_add_to_catalog (GthBrowser *browser) + DialogData *data; + GtkTreeSelection *selection; + char *last_catalog; +- GtkWidget *sep; + + if (gth_browser_get_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME)) { + gtk_window_present (GTK_WINDOW (gth_browser_get_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME))); +@@ -697,24 +699,22 @@ dlg_add_to_catalog (GthBrowser *browser) + FALSE, + 0); + +- sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); +- gtk_widget_show (sep); +- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), +- sep, +- FALSE, +- FALSE, +- 5); +- + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + GET_WIDGET ("dialog_content"), +- FALSE, +- FALSE, ++ TRUE, ++ TRUE, + 0); + + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CLOSE, GTK_RESPONSE_CANCEL, + _("_Add"), GTK_RESPONSE_OK, + NULL); ++ ++ data->keep_open_checkbutton = _gtk_toggle_image_button_new_for_header_bar ("lock-symbolic"); ++ gtk_widget_set_tooltip_text (data->keep_open_checkbutton, _("Keep the dialog open")); ++ gtk_widget_show (data->keep_open_checkbutton); ++ _gtk_dialog_add_action_widget (GTK_DIALOG (data->dialog), data->keep_open_checkbutton); ++ + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); + + gth_browser_set_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME, data->dialog); +@@ -760,7 +760,7 @@ dlg_add_to_catalog (GthBrowser *browser) + "clicked", + G_CALLBACK (new_library_button_clicked_cb), + data); +- g_signal_connect (G_OBJECT (GET_WIDGET ("keep_open_checkbutton")), ++ g_signal_connect (data->keep_open_checkbutton, + "toggled", + G_CALLBACK (keep_open_button_toggled_cb), + data); +--- gthumb-3.9.1.orig/extensions/edit_metadata/dlg-edit-metadata.c ++++ gthumb-3.9.1/extensions/edit_metadata/dlg-edit-metadata.c +@@ -33,6 +33,8 @@ typedef struct { + int ref; + GthBrowser *browser; + GtkWidget *dialog; ++ GtkWidget *keep_open_checkbutton; ++ GtkWidget *info; + char *dialog_name; + GList *file_list; /* GthFileData list */ + GList *parents; +@@ -165,7 +167,7 @@ edit_metadata_dialog__response_cb (GtkDi + if (data->file_list == NULL) + return; + +- data->close_dialog = ! gth_edit_metadata_dialog_get_keep_open (GTH_EDIT_METADATA_DIALOG (data->dialog)); ++ data->close_dialog = ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->keep_open_checkbutton)); + + /* get the parents list */ + +@@ -239,6 +241,7 @@ loader_completed_cb (GthTask *task, + _g_object_list_unref (data->file_list); + data->file_list = _g_object_list_ref (gth_load_file_data_task_get_result (GTH_LOAD_FILE_DATA_TASK (task))); + ++ gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (data->info), data->file_list); + gth_edit_metadata_dialog_set_file_list (GTH_EDIT_METADATA_DIALOG (data->dialog), data->file_list); + + gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (data->browser)); +@@ -299,6 +302,15 @@ file_selection_changed_cb (GthFileSelect + } + + ++static void ++keep_open_button_toggled_cb (GtkToggleButton *button, ++ DialogData *data) ++{ ++ gth_file_selection_info_set_visible (GTH_FILE_SELECTION_INFO (data->info), ++ gtk_toggle_button_get_active (button)); ++} ++ ++ + void + dlg_edit_metadata (GthBrowser *browser, + GType dialog_type, +@@ -322,11 +334,20 @@ dlg_edit_metadata (GthBrowser *browser, + data->dialog_name = g_strdup (dialog_name); + data->never_shown = TRUE; + ++ data->info = gth_file_selection_info_new (); ++ gtk_widget_show (data->info); ++ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), data->info, FALSE, FALSE, 0); ++ + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CLOSE, GTK_RESPONSE_CANCEL, + _GTK_LABEL_SAVE, GTK_RESPONSE_OK, + NULL); + ++ data->keep_open_checkbutton = _gtk_toggle_image_button_new_for_header_bar ("lock-symbolic"); ++ gtk_widget_set_tooltip_text (data->keep_open_checkbutton, _("Keep the dialog open")); ++ gtk_widget_show (data->keep_open_checkbutton); ++ _gtk_dialog_add_action_widget (GTK_DIALOG (data->dialog), data->keep_open_checkbutton); ++ + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); + gth_browser_set_dialog (browser, data->dialog_name, data->dialog); + +@@ -338,6 +359,10 @@ dlg_edit_metadata (GthBrowser *browser, + "response", + G_CALLBACK (edit_metadata_dialog__response_cb), + data); ++ g_signal_connect (data->keep_open_checkbutton, ++ "toggled", ++ G_CALLBACK (keep_open_button_toggled_cb), ++ data); + data->file_selection_changed_event = + g_signal_connect (gth_browser_get_file_list_view (data->browser), + "file-selection-changed", +--- gthumb-3.9.1.orig/extensions/edit_metadata/gth-edit-comment-dialog.c ++++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-comment-dialog.c +@@ -28,8 +28,6 @@ + struct _GthEditCommentDialogPrivate { + GtkWidget *notebook; + GtkWidget *save_changed_checkbutton; +- GtkWidget *keep_open_check_button; +- GtkWidget *info; + }; + + +@@ -54,8 +52,6 @@ gth_edit_comment_dialog_set_file_list (G + GList *pages; + GList *scan; + +- gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list); +- + /* update the widgets */ + + n_files = g_list_length (file_list); +@@ -101,20 +97,11 @@ gth_edit_comment_dialog_update_info (Gth + } + + +-static gboolean +-gth_edit_comment_dialog_get_keep_open (GthEditMetadataDialog *base) +-{ +- GthEditCommentDialog *self = GTH_EDIT_COMMENT_DIALOG (base); +- return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->priv->keep_open_check_button)); +-} +- +- + static void + gth_edit_comment_dialog_gth_edit_metadata_dialog_interface_init (GthEditMetadataDialogInterface *iface) + { + iface->set_file_list = gth_edit_comment_dialog_set_file_list; + iface->update_info = gth_edit_comment_dialog_update_info; +- iface->get_keep_open = gth_edit_comment_dialog_get_keep_open; + } + + +@@ -142,11 +129,7 @@ gth_edit_comment_dialog_init (GthEditCom + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); + gtk_widget_show (vbox); +- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), vbox, TRUE, TRUE, 0); +- +- self->priv->info = gth_file_selection_info_new (); +- gtk_widget_show (self->priv->info); +- gtk_box_pack_start (GTK_BOX (vbox), self->priv->info, FALSE, FALSE, 0); ++ gtk_box_pack_end (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), vbox, TRUE, TRUE, 0); + + self->priv->notebook = gtk_notebook_new (); + gtk_widget_show (self->priv->notebook); +@@ -156,10 +139,6 @@ gth_edit_comment_dialog_init (GthEditCom + gtk_widget_show (self->priv->save_changed_checkbutton); + gtk_box_pack_start (GTK_BOX (vbox), self->priv->save_changed_checkbutton, FALSE, FALSE, 0); + +- self->priv->keep_open_check_button = gtk_check_button_new_with_mnemonic (_("_Keep the dialog open")); +- gtk_widget_show (self->priv->keep_open_check_button); +- gtk_box_pack_start (GTK_BOX (vbox), self->priv->keep_open_check_button, FALSE, FALSE, 0); +- + pages = gth_main_get_type_set ("edit-comment-dialog-page"); + if (pages == NULL) + return; +--- gthumb-3.9.1.orig/extensions/edit_metadata/gth-edit-metadata-dialog.c ++++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.c +@@ -48,9 +48,3 @@ gth_edit_metadata_dialog_update_info (Gt + GTH_EDIT_METADATA_DIALOG_GET_INTERFACE (self)->update_info (self, file_list); + } + +- +-gboolean +-gth_edit_metadata_dialog_get_keep_open (GthEditMetadataDialog *self) +-{ +- return GTH_EDIT_METADATA_DIALOG_GET_INTERFACE (self)->get_keep_open (self); +-} +--- gthumb-3.9.1.orig/extensions/edit_metadata/gth-edit-metadata-dialog.h ++++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.h +@@ -41,7 +41,6 @@ struct _GthEditMetadataDialogInterface { + GList *file_list /* GthFileData list */); + void (*update_info) (GthEditMetadataDialog *dialog, + GList *file_list /* GthFileData list */); +- gboolean (*get_keep_open) (GthEditMetadataDialog *dialog); + }; + + /* GthEditMetadataDialog */ +@@ -51,7 +50,6 @@ void gth_edit_metadata_dialog_ + GList *file_list /* GthFileData list */); + void gth_edit_metadata_dialog_update_info (GthEditMetadataDialog *dialog, + GList *file_list /* GthFileData list */); +-gboolean gth_edit_metadata_dialog_get_keep_open (GthEditMetadataDialog *dialog); + + G_END_DECLS + +--- gthumb-3.9.1.orig/extensions/edit_metadata/gth-edit-tags-dialog.c ++++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-tags-dialog.c +@@ -32,8 +32,6 @@ + struct _GthEditTagsDialogPrivate { + GtkBuilder *builder; + GtkWidget *tags_entry; +- GtkWidget *keep_open_check_button; +- GtkWidget *info; + }; + + +@@ -70,8 +68,6 @@ gth_edit_tags_dialog_set_file_list (GthE + GList *common_tags_list; + GList *no_common_tags_list; + +- gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list); +- + /* update the tag entry */ + + utils_get_common_tags (file_list, &common_tags, &no_common_tags); +@@ -147,20 +143,11 @@ gth_edit_tags_dialog_update_info (GthEdi + } + + +-static gboolean +-gth_edit_tags_dialog_get_keep_open (GthEditMetadataDialog *base) +-{ +- GthEditTagsDialog *self = GTH_EDIT_TAGS_DIALOG (base); +- return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->priv->keep_open_check_button)); +-} +- +- + static void + gth_edit_tags_dialog_gth_edit_metadata_dialog_interface_init (GthEditMetadataDialogInterface *iface) + { + iface->set_file_list = gth_edit_tags_dialog_set_file_list; + iface->update_info = gth_edit_tags_dialog_update_info; +- iface->get_keep_open = gth_edit_tags_dialog_get_keep_open; + } + + +@@ -177,9 +164,6 @@ gth_edit_tags_dialog_class_init (GthEdit + static void + gth_edit_tags_dialog_init (GthEditTagsDialog *self) + { +- GtkWidget *box; +- GtkWidget *sep; +- + self->priv = gth_edit_tags_dialog_get_instance_private (self); + self->priv->builder = _gtk_builder_new_from_file ("tag-chooser.ui", "edit_metadata"); + +@@ -195,22 +179,5 @@ gth_edit_tags_dialog_init (GthEditTagsDi + gtk_widget_show (self->priv->tags_entry); + gtk_box_pack_start (GTK_BOX (GET_WIDGET ("tag_entry_box")), self->priv->tags_entry, TRUE, TRUE, 0); + +- box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); +- +- self->priv->info = gth_file_selection_info_new (); +- gtk_widget_show (self->priv->info); +- gtk_box_pack_start (GTK_BOX (box), self->priv->info, FALSE, FALSE, 0); +- +- sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); +- gtk_widget_show (sep); +- gtk_box_pack_start (GTK_BOX (box), sep, FALSE, FALSE, 0); +- +- gtk_box_pack_start (GTK_BOX (box), GET_WIDGET ("content"), TRUE, TRUE, 0); +- +- self->priv->keep_open_check_button = gtk_check_button_new_with_mnemonic (_("_Keep the dialog open")); +- gtk_widget_show (self->priv->keep_open_check_button); +- gtk_box_pack_start (GTK_BOX (box), self->priv->keep_open_check_button, FALSE, FALSE, 0); +- +- gtk_widget_show (box); +- gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), box, TRUE, TRUE, 0); ++ gtk_box_pack_end (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), GET_WIDGET ("content"), TRUE, TRUE, 0); + } +--- gthumb-3.9.1.orig/extensions/list_tools/dlg-personalize-scripts.c ++++ gthumb-3.9.1/extensions/list_tools/dlg-personalize-scripts.c +@@ -372,9 +372,9 @@ script_editor_dialog__response_cb (GtkDi + + /* update the shortcuts */ + +- shortcuts_v = g_ptr_array_copy (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), ++ shortcuts_v = _g_ptr_array_dup (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), + (GCopyFunc) gth_shortcut_dup, +- NULL); ++ (GDestroyNotify) gth_shortcut_free); + + /* If another shortcut has the same accelerator, reset the accelerator + * for that shortcut. */ +@@ -522,9 +522,9 @@ delete_script_cb (GtkButton *button, + + /* update the shortcuts */ + +- shortcuts_v = g_ptr_array_copy (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), ++ shortcuts_v = _g_ptr_array_dup (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), + (GCopyFunc) gth_shortcut_dup, +- NULL); ++ (GDestroyNotify) gth_shortcut_free); + + shortcut = gth_shortcut_array_find_by_action (shortcuts_v, gth_script_get_detailed_action (script)); + if (shortcut != NULL) +--- gthumb-3.9.1.orig/gthumb/dlg-preferences-shortcuts.c ++++ gthumb-3.9.1/gthumb/dlg-preferences-shortcuts.c +@@ -529,8 +529,7 @@ shortcuts__dlg_preferences_construct_cb + GtkTreeIter iter; + int i; + +- category_v = g_ptr_array_copy (gth_main_get_shortcut_categories (), NULL, NULL); +- g_ptr_array_set_free_func (category_v, NULL); ++ category_v = _g_ptr_array_dup (gth_main_get_shortcut_categories (), NULL, NULL); + g_ptr_array_sort (category_v, cmp_category); + + list_store = (GtkListStore *) gtk_builder_get_object (data->builder, "category_liststore"); +--- gthumb-3.9.1.orig/gthumb/glib-utils.c ++++ gthumb-3.9.1/gthumb/glib-utils.c +@@ -853,6 +853,32 @@ _g_string_array_join (GPtrArray *array, + } + + ++GPtrArray * ++_g_ptr_array_dup (GPtrArray *array, ++ GCopyFunc copy_func, ++ GDestroyNotify free_func) ++{ ++ GPtrArray *new_array; ++ int i; ++ ++ g_return_val_if_fail (array != NULL, NULL); ++ ++ new_array = g_ptr_array_sized_new (array->len); ++ g_ptr_array_set_free_func (new_array, free_func); ++ ++ if (copy_func != NULL) ++ for (i = 0; i < array->len; i++) ++ new_array->pdata[i] = copy_func (array->pdata[i], NULL); ++ else ++ for (i = 0; i < array->len; i++) ++ new_array->pdata[i] = array->pdata[i]; ++ ++ new_array->len = array->len; ++ ++ return new_array; ++} ++ ++ + /* Regexp utils */ + + +--- gthumb-3.9.1.orig/gthumb/glib-utils.h ++++ gthumb-3.9.1/gthumb/glib-utils.h +@@ -213,6 +213,9 @@ GType g_string_list_get_type (void); + + char * _g_string_array_join (GPtrArray *array, + const char *separator); ++GPtrArray * _g_ptr_array_dup (GPtrArray *array, ++ GCopyFunc copy_func, ++ GDestroyNotify free_func); + + /* Regexp utils */ + +--- gthumb-3.9.1.orig/gthumb/gth-browser.c ++++ gthumb-3.9.1/gthumb/gth-browser.c +@@ -1076,7 +1076,7 @@ _gth_browser_update_activity (GthBrowser + if (browser->priv->activity_ref == 1) { + GdkCursor *cursor = gdk_cursor_new_from_name (gtk_widget_get_display (GTK_WIDGET (browser)), "progress"); + gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (browser)), cursor); +- gdk_cursor_unref (cursor); ++ g_object_unref (cursor); + } + } + else { +@@ -1084,7 +1084,7 @@ _gth_browser_update_activity (GthBrowser + if (browser->priv->activity_ref == 0) { + GdkCursor *cursor = gdk_cursor_new_from_name (gtk_widget_get_display (GTK_WIDGET (browser)), "default"); + gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (browser)), cursor); +- gdk_cursor_unref (cursor); ++ g_object_unref (cursor); + } + } + } +--- gthumb-3.9.1.orig/gthumb/gth-file-data.c ++++ gthumb-3.9.1/gthumb/gth-file-data.c +@@ -21,6 +21,7 @@ + + #include + #include ++#include + #include "glib-utils.h" + #include "gth-duplicable.h" + #include "gth-metadata.h" +--- gthumb-3.9.1.orig/gthumb/gth-file-selection-info.c ++++ gthumb-3.9.1/gthumb/gth-file-selection-info.c +@@ -144,3 +144,11 @@ gth_file_selection_info_set_file_list (G + + g_free (title); + } ++ ++ ++void ++gth_file_selection_info_set_visible (GthFileSelectionInfo *self, ++ gboolean visible) ++{ ++ gtk_revealer_set_reveal_child (GTK_REVEALER (GET_WIDGET ("content")), visible); ++} +--- gthumb-3.9.1.orig/gthumb/gth-file-selection-info.h ++++ gthumb-3.9.1/gthumb/gth-file-selection-info.h +@@ -51,6 +51,8 @@ GType gth_file_selection_info_get_type + GtkWidget * gth_file_selection_info_new (void); + void gth_file_selection_info_set_file_list (GthFileSelectionInfo *self, + GList *file_list); ++void gth_file_selection_info_set_visible (GthFileSelectionInfo *self, ++ gboolean visible); + + G_END_DECLS + +--- gthumb-3.9.1.orig/gthumb/gtk-utils.c ++++ gthumb-3.9.1/gthumb/gtk-utils.c +@@ -284,6 +284,24 @@ _gtk_dialog_add_class_to_response (GtkDi + } + + ++void ++_gtk_dialog_add_action_widget (GtkDialog *dialog, ++ GtkWidget *button) ++{ ++ if (gtk_dialog_get_header_bar (dialog)) { ++ GtkWidget *headerbar = gtk_dialog_get_header_bar (dialog); ++ ++ gtk_container_add (GTK_CONTAINER (headerbar), button); ++ gtk_container_child_set (GTK_CONTAINER (headerbar), ++ button, ++ "pack-type", GTK_PACK_END, ++ NULL); ++ } ++ else ++ gtk_container_add (GTK_CONTAINER (gtk_dialog_get_action_area (dialog)), button); ++} ++ ++ + GdkPixbuf * + _g_icon_get_pixbuf (GIcon *icon, + int icon_size, +--- gthumb-3.9.1.orig/gthumb/gtk-utils.h ++++ gthumb-3.9.1/gthumb/gtk-utils.h +@@ -108,6 +108,8 @@ void _gtk_dialog_add_to_windo + void _gtk_dialog_add_class_to_response (GtkDialog *dialog, + int respose_id, + const char *class_name); ++void _gtk_dialog_add_action_widget (GtkDialog *dialog, ++ GtkWidget *button); + GdkPixbuf * _g_icon_get_pixbuf (GIcon *icon, + int icon_size, + GtkIconTheme *icon_theme); +--- gthumb-3.9.1.orig/meson.build ++++ gthumb-3.9.1/meson.build +@@ -4,7 +4,7 @@ project('gthumb', ['c', 'cpp'], + meson_version : '>=0.43' + ) + +-glib_version = '>=2.38.0' ++glib_version = '>=2.54.0' + gtk_version = '>=3.16' + exiv2_version = '>=0.21' + clutter_version = '>=1.12.0' +--- gthumb-3.9.1.orig/po/es.po ++++ gthumb-3.9.1/po/es.po +@@ -13,8 +13,8 @@ msgid "" + msgstr "" + "Project-Id-Version: gthumb.master\n" + "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +-"POT-Creation-Date: 2020-03-01 20:18+0000\n" +-"PO-Revision-Date: 2020-03-03 16:25+0100\n" ++"POT-Creation-Date: 2020-03-08 11:24+0000\n" ++"PO-Revision-Date: 2020-03-09 13:11+0100\n" + "Last-Translator: Daniel Mustieles \n" + "Language-Team: Spanish - Spain \n" + "Language: es_ES\n" +@@ -231,12 +231,12 @@ msgstr "_Extensiones:" + msgid "More extensions…" + msgstr "Más extensiones…" + +-#: data/ui/file-selection-info.ui:33 ++#: data/ui/file-selection-info.ui:23 + #: extensions/webalbums/data/albumthemes/text.h:32 + msgid "Previous" + msgstr "Anterior" + +-#: data/ui/file-selection-info.ui:71 ++#: data/ui/file-selection-info.ui:61 + #: extensions/webalbums/data/albumthemes/text.h:30 + msgid "Next" + msgstr "Siguiente" +@@ -662,8 +662,8 @@ msgid "Saving" + msgstr "Guardando" + + #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +-#: extensions/catalogs/dlg-add-to-catalog.c:373 +-#: extensions/catalogs/dlg-add-to-catalog.c:538 ++#: extensions/catalogs/dlg-add-to-catalog.c:376 ++#: extensions/catalogs/dlg-add-to-catalog.c:541 + #: extensions/file_manager/actions.c:71 + #: extensions/file_tools/gth-file-tool-curves.c:373 + #: extensions/list_tools/gth-script-editor-dialog.c:273 +@@ -673,8 +673,8 @@ msgid "No name specified" + msgstr "No se especificó ningún nombre" + + #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +-#: extensions/catalogs/dlg-add-to-catalog.c:380 +-#: extensions/catalogs/dlg-add-to-catalog.c:545 ++#: extensions/catalogs/dlg-add-to-catalog.c:383 ++#: extensions/catalogs/dlg-add-to-catalog.c:548 + #: extensions/file_manager/actions.c:78 + #: extensions/file_tools/gth-file-tool-curves.c:380 + #: gthumb/gth-folder-tree.c:1931 +@@ -683,8 +683,8 @@ msgid "Invalid name. The following chara + msgstr "Nombre no válido. Los siguientes caracteres no están permitidos: %s" + + #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +-#: extensions/catalogs/dlg-add-to-catalog.c:437 +-#: extensions/catalogs/dlg-add-to-catalog.c:594 ++#: extensions/catalogs/dlg-add-to-catalog.c:440 ++#: extensions/catalogs/dlg-add-to-catalog.c:597 + #: extensions/catalogs/gth-file-source-catalogs.c:516 + #: extensions/file_manager/actions.c:109 + msgid "Name already used" +@@ -695,13 +695,13 @@ msgid "New catalog" + msgstr "Catálogo nuevo" + + #: extensions/catalogs/actions.c:178 +-#: extensions/catalogs/dlg-add-to-catalog.c:459 ++#: extensions/catalogs/dlg-add-to-catalog.c:462 + msgid "Enter the catalog name:" + msgstr "Introduzca el nombre del catálogo:" + + #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +-#: extensions/catalogs/dlg-add-to-catalog.c:461 +-#: extensions/catalogs/dlg-add-to-catalog.c:620 ++#: extensions/catalogs/dlg-add-to-catalog.c:464 ++#: extensions/catalogs/dlg-add-to-catalog.c:623 + #: extensions/file_manager/actions.c:140 + msgid "C_reate" + msgstr "C_rear" +@@ -711,7 +711,7 @@ msgid "New library" + msgstr "Biblioteca nueva" + + #: extensions/catalogs/actions.c:292 +-#: extensions/catalogs/dlg-add-to-catalog.c:618 ++#: extensions/catalogs/dlg-add-to-catalog.c:621 + msgid "Enter the library name:" + msgstr "Introduzca el nombre de la biblioteca: " + +@@ -754,7 +754,7 @@ msgstr "Renombrar" + + #: extensions/catalogs/callbacks.c:78 + #: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +-#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 ++#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:258 + msgid "Properties" + msgstr "Propiedades" + +@@ -794,12 +794,12 @@ msgid "C_atalogs:" + msgstr "C_atálogos:" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:34 +-#: extensions/catalogs/dlg-add-to-catalog.c:617 ++#: extensions/catalogs/dlg-add-to-catalog.c:620 + msgid "New Library" + msgstr "Biblioteca nueva" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:57 +-#: extensions/catalogs/dlg-add-to-catalog.c:458 ++#: extensions/catalogs/dlg-add-to-catalog.c:461 + msgid "New Catalog" + msgstr "Catálogo nuevo" + +@@ -809,12 +809,6 @@ msgstr "Catálogo nuevo" + msgid "_View the destination" + msgstr "_Ver el destino" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +-msgid "_Keep the dialog open" +-msgstr "_Mantener el diálogo abierto" +- + #: extensions/catalogs/data/ui/catalog-properties.ui:68 + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 + #: extensions/facebook/data/ui/facebook-album-properties.ui:45 +@@ -884,23 +878,29 @@ msgstr "Poner archivos sueltos en el cat + msgid "Singles" + msgstr "Simples" + +-#: extensions/catalogs/dlg-add-to-catalog.c:155 ++#: extensions/catalogs/dlg-add-to-catalog.c:156 + msgid "Could not add the files to the catalog" + msgstr "No se pudieron añadir los archivos al catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:316 ++#: extensions/catalogs/dlg-add-to-catalog.c:319 + #: extensions/search/gth-search-task.c:402 + msgid "Could not create the catalog" + msgstr "No se pudo crear el catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:682 ++#: extensions/catalogs/dlg-add-to-catalog.c:687 + msgid "Add to Catalog" + msgstr "Añadir al catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:697 ++#: extensions/catalogs/dlg-add-to-catalog.c:710 + msgid "_Add" + msgstr "_Añadir" + ++#: extensions/catalogs/dlg-add-to-catalog.c:714 ++#: extensions/edit_metadata/dlg-edit-metadata.c:347 ++#| msgid "_Keep the dialog open" ++msgid "Keep the dialog open" ++msgstr "Mantener el diálogo abierto" ++ + #: extensions/catalogs/dlg-catalog-properties.c:80 + msgid "Could not save the catalog" + msgstr "No se pudo guardar el catálogo" +@@ -953,7 +953,7 @@ msgstr "Formato de archivo no válido" + #: extensions/edit_metadata/callbacks.c:57 + #: extensions/edit_metadata/callbacks.c:94 + #: extensions/edit_metadata/callbacks.c:107 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 ++#: extensions/edit_metadata/gth-edit-tags-dialog.c:170 + #: gthumb/gth-main-default-metadata.c:65 + msgid "Tags" + msgstr "Etiquetas" +@@ -1093,14 +1093,15 @@ msgstr "_Sincronizar con los metadatos e + #: extensions/importer/gth-import-preferences-dialog.c:417 + #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 + #: extensions/terminal/dlg-terminal-preferences.c:83 +-#: gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/dlg-favorite-properties.c:99 gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/gth-file-properties.c:548 + msgid "Preferences" + msgstr "Preferencias" + + #: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 + #: extensions/edit_metadata/callbacks.c:88 + #: extensions/edit_metadata/callbacks.c:101 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:124 + #: gthumb/gth-file-comment.c:136 + msgid "Comment" + msgstr "Comentario" +@@ -1572,11 +1573,11 @@ msgstr "P_untuación:" + msgid "_Title:" + msgstr "Tít_ulo:" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:121 ++#: extensions/edit_metadata/dlg-edit-metadata.c:123 + msgid "Could not save the file metadata" + msgstr "No se pudieron guardar los metadatos del archivo" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:230 ++#: extensions/edit_metadata/dlg-edit-metadata.c:234 + #: gthumb/gth-overwrite-dialog.c:184 + msgid "Cannot read file information" + msgstr "No se puede leer la información del archivo" +@@ -1589,7 +1590,7 @@ msgstr "Editar metadatos" + msgid "Allow to edit files metadata." + msgstr "Permitir la edición de los metadatos de los archivos." + +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:138 + msgid "Save only cha_nged fields" + msgstr "Guardar sólo ca_mpos alterados" + +@@ -1681,7 +1682,7 @@ msgid "State/Province:" + msgstr "Estado/Provincia:" + + #: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +-#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 ++#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:700 + msgid "(invalid value)" + msgstr "(valor no válido)" + +@@ -3189,7 +3190,7 @@ msgstr "Mono" + #: extensions/image_viewer/gth-image-viewer-page.c:1864 + #: extensions/image_viewer/gth-metadata-provider-image.c:258 + #: extensions/raw_files/gth-metadata-provider-raw.c:96 +-#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 ++#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:963 + #, c-format + msgid "%d × %d" + msgstr "%d × %d" +@@ -3817,7 +3818,6 @@ msgid "Quote the text " + msgstr "Entrecomillar el texto " + + #: extensions/list_tools/data/ui/script-editor.ui:522 +-#| msgid "The current date" + msgid "The current date and time" + msgstr "La fecha y hora actuales" + +@@ -4585,12 +4585,10 @@ msgid "Terminal" + msgstr "Terminal" + + #: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +-#| msgid "Open in New Window" + msgid "Open in Terminal" + msgstr "Abrir en una terminal" + + #: extensions/terminal/terminal.extension.desktop.in.in:4 +-#| msgid "Open the selected folder in a new window" + msgid "Open a folder in a terminal" + msgstr "Abrir una carpeta en una terminal" + +@@ -4829,7 +4827,6 @@ msgid "Could not deactivate the extensio + msgstr "No se pudo desactivar la extensión" + + #: gthumb/dlg-preferences-extensions.c:491 +-#| msgid "gthumb development team" + msgid "gThumb Development Team" + msgstr "equipo de desarrollo de gThumb" + +@@ -5347,8 +5344,6 @@ msgstr "Bytes" + + #. Translators: the file modified time. + #: gthumb/gth-main-default-metadata.c:43 +-#| msgctxt "the file mtime" +-#| msgid "Modified Date & Time" + msgid "Modified Date & Time" + msgstr "Fecha y hora de modificación" + +@@ -5679,27 +5674,27 @@ msgstr "" + msgid "The key combination «%s» is already assigned and cannot be changed." + msgstr "La combinación de teclas «%s» ya está asignada y no se puede cambiar." + +-#: gthumb/gtk-utils.c:352 ++#: gthumb/gtk-utils.c:370 + msgid "Could not display help" + msgstr "No se pudo mostrar la ayuda" + +-#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 ++#: gthumb/gtk-utils.c:730 gthumb/gtk-utils.c:737 + msgid "Could not launch the application" + msgstr "No se pudo lanzar la aplicación" + +-#: gthumb/gtk-utils.c:822 ++#: gthumb/gtk-utils.c:840 + msgid "_Copy Here" + msgstr "_Copiar aquí" + +-#: gthumb/gtk-utils.c:827 ++#: gthumb/gtk-utils.c:845 + msgid "_Move Here" + msgstr "_Mover aquí" + +-#: gthumb/gtk-utils.c:832 ++#: gthumb/gtk-utils.c:850 + msgid "_Link Here" + msgstr "En_lazar aquí" + +-#: gthumb/gtk-utils.c:841 ++#: gthumb/gtk-utils.c:859 + msgid "Cancel" + msgstr "Cancelar" + +--- gthumb-3.9.1.orig/po/id.po ++++ gthumb-3.9.1/po/id.po +@@ -2,22 +2,22 @@ + # Copyright (C) 2004 THE gthumb'S COPYRIGHT HOLDER + # This file is distributed under the same license as the gthumb package. + # Abdul Hamid.A.N , 2004. +-# Andika Triwidada , 2010-2014, 2016, 2017. ++# Andika Triwidada , 2010-2014, 2016, 2017, 2020. + # + msgid "" + msgstr "" + "Project-Id-Version: gthumb master\n" + "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +-"POT-Creation-Date: 2019-02-24 11:07+0000\n" +-"PO-Revision-Date: 2019-02-28 14:17+0700\n" +-"Last-Translator: Kukuh Syafaat \n" ++"POT-Creation-Date: 2020-03-08 13:32+0000\n" ++"PO-Revision-Date: 2020-03-09 13:18+0700\n" ++"Last-Translator: Andika Triwidada \n" + "Language-Team: GNOME Indonesian Translation Team \n" + "Language: id\n" + "MIME-Version: 1.0\n" + "Content-Type: text/plain; charset=UTF-8\n" + "Content-Transfer-Encoding: 8bit\n" + "Plural-Forms: nplurals=2; plural= n!=1;\n" +-"X-Generator: Poedit 2.2.1\n" ++"X-Generator: Poedit 2.3\n" + + #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 + msgid "gThumb Image Viewer" +@@ -128,19 +128,13 @@ msgstr "Alat Impor Foto" + msgid "Import the photos on your camera card" + msgstr "Impor foto pada kartu kamera Anda" + +-#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! +-#: data/org.gnome.gThumb.Import.desktop.in.in:10 +-#: data/org.gnome.gThumb.desktop.in.in:12 +-msgid "gthumb" +-msgstr "gthumb" +- + #. manually set name and icon + #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 +-#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 ++#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 + msgid "gThumb" + msgstr "gThumb" + +-#: data/org.gnome.gThumb.desktop.in.in:4 ++#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 + msgid "Image Viewer" + msgstr "Penampil Gambar" + +@@ -155,69 +149,70 @@ msgstr "Citra;Gambar;Penampil;" + msgid "Caption" + msgstr "Judul" + +-#: data/ui/browser-preferences.ui:72 ++#: data/ui/browser-preferences.ui:66 + msgid "Behavior" + msgstr "Perilaku" + +-#: data/ui/browser-preferences.ui:94 ++#: data/ui/browser-preferences.ui:88 + msgid "_Single click to open files" + msgstr "Klik tunggal untuk membuka berka_s" + +-#: data/ui/browser-preferences.ui:111 ++#: data/ui/browser-preferences.ui:104 + msgid "_Double click to open files" + msgstr "Klik gan_da untuk membuka berkas" + +-#: data/ui/browser-preferences.ui:129 ++#: data/ui/browser-preferences.ui:121 + msgid "_Open files in fullscreen mode" + msgstr "Buka berkas dalam m_ode layar penuh" + +-#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 ++#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 + #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 +-#: extensions/gstreamer_tools/main.c:34 ++#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 ++#: gthumb/gth-shortcuts-window.c:96 + msgid "Other" + msgstr "Lainnya" + +-#: data/ui/browser-preferences.ui:200 ++#: data/ui/browser-preferences.ui:187 + msgid "Thumbnail _size:" + msgstr "_Ukuran gambar miniatur:" + +-#: data/ui/browser-preferences.ui:219 ++#: data/ui/browser-preferences.ui:206 + msgid "48" + msgstr "48" + +-#: data/ui/browser-preferences.ui:220 ++#: data/ui/browser-preferences.ui:207 + msgid "64" + msgstr "64" + +-#: data/ui/browser-preferences.ui:221 ++#: data/ui/browser-preferences.ui:208 + msgid "85" + msgstr "85" + +-#: data/ui/browser-preferences.ui:222 ++#: data/ui/browser-preferences.ui:209 + msgid "95" + msgstr "95" + +-#: data/ui/browser-preferences.ui:223 ++#: data/ui/browser-preferences.ui:210 + msgid "112" + msgstr "112" + +-#: data/ui/browser-preferences.ui:224 ++#: data/ui/browser-preferences.ui:211 + msgid "128" + msgstr "128" + +-#: data/ui/browser-preferences.ui:225 ++#: data/ui/browser-preferences.ui:212 + msgid "164" + msgstr "164" + +-#: data/ui/browser-preferences.ui:226 ++#: data/ui/browser-preferences.ui:213 + msgid "200" + msgstr "200" + +-#: data/ui/browser-preferences.ui:227 ++#: data/ui/browser-preferences.ui:214 + msgid "256" + msgstr "256" + +-#: data/ui/browser-preferences.ui:252 ++#: data/ui/browser-preferences.ui:239 + msgid "D_etermine image type from content (slower)" + msgstr "T_entukan jenis gambar dari isinya (lebih lambat)" + +@@ -229,20 +224,34 @@ msgstr "_Ekstensi:" + msgid "More extensions…" + msgstr "Lebih banyak ekstensi…" + ++#: data/ui/file-selection-info.ui:23 ++#: extensions/webalbums/data/albumthemes/text.h:32 ++msgid "Previous" ++msgstr "Sebelum" ++ ++#: data/ui/file-selection-info.ui:61 ++#: extensions/webalbums/data/albumthemes/text.h:30 ++msgid "Next" ++msgstr "Selanjutnya" ++ + #: data/ui/filter-editor.ui:20 + msgid "Filter _Name:" + msgstr "_Nama Tapis:" + +-#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 ++#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 + msgid "_Match:" + msgstr "_Cocok:" + ++#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 ++msgid "Rules:" ++msgstr "Aturan:" ++ + #. limit label +-#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 ++#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 + msgid "_Limit to" + msgstr "_Batasi sampai" + +-#: data/ui/filter-editor.ui:229 ++#: data/ui/filter-editor.ui:241 + msgid "selected by" + msgstr "dipilih oleh" + +@@ -288,40 +297,40 @@ msgstr "Timpa berkas lama dengan yang ba + msgid "Old File:" + msgstr "Berkas Lama:" + +-#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 ++#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 + msgid "Filename:" + msgstr "Nama Berkas:" + +-#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 ++#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 + #: extensions/image_print/data/ui/print-layout.ui:705 + msgid "Size:" + msgstr "Ukuran:" + +-#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 ++#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 + msgid "Modified:" + msgstr "Diubah:" + +-#: data/ui/overwrite-dialog.ui:241 ++#: data/ui/overwrite-dialog.ui:242 + msgid "New File:" + msgstr "Berkas Baru:" + +-#: data/ui/overwrite-dialog.ui:399 ++#: data/ui/overwrite-dialog.ui:401 + msgid "Over_write the old file" + msgstr "Timpa _ulang berkas lama" + +-#: data/ui/overwrite-dialog.ui:416 ++#: data/ui/overwrite-dialog.ui:418 + msgid "Do not overwrite _the old file" + msgstr "Jangan _timpa berkas lama" + +-#: data/ui/overwrite-dialog.ui:433 ++#: data/ui/overwrite-dialog.ui:435 + msgid "Overwrite _all files" + msgstr "Timp_a semua berkas" + +-#: data/ui/overwrite-dialog.ui:450 ++#: data/ui/overwrite-dialog.ui:452 + msgid "_Do not overwrite any file" + msgstr "_Jangan timpa berkas apapun" + +-#: data/ui/overwrite-dialog.ui:472 ++#: data/ui/overwrite-dialog.ui:474 + msgid "_Save the new file as:" + msgstr "_Simpan berkas baru sebagai:" + +@@ -345,70 +354,75 @@ msgstr "di kanan" + msgid "gThumb Preferences" + msgstr "Preferensi gThumb" + +-#: data/ui/preferences.ui:100 ++#: data/ui/preferences.ui:101 + msgid "Appearance" + msgstr "Penampilan" + +-#: data/ui/preferences.ui:128 ++#: data/ui/preferences.ui:125 + msgid "T_humbnails in viewer:" + msgstr "_Gambar miniatur dalam penilik:" + +-#: data/ui/preferences.ui:141 ++#: data/ui/preferences.ui:139 + msgid "on the bottom" + msgstr "di dasar" + +-#: data/ui/preferences.ui:142 ++#: data/ui/preferences.ui:140 + msgid "on the side" + msgstr "di sisi" + +-#: data/ui/preferences.ui:155 ++#: data/ui/preferences.ui:152 + msgid "File _properties in browser:" + msgstr "_Properti berkas dalam peramban:" + +-#: data/ui/preferences.ui:208 ++#: data/ui/preferences.ui:203 + msgid "On startup:" + msgstr "Saat awal mula:" + +-#: data/ui/preferences.ui:234 ++#: data/ui/preferences.ui:226 + msgid "Go to last _visited location" + msgstr "Pergi ke lokasi yang terakhir _dikunjungi" + +-#: data/ui/preferences.ui:257 ++#: data/ui/preferences.ui:247 + msgid "Go to this _folder:" + msgstr "Menuju _folder ini:" + +-#: data/ui/preferences.ui:278 +-msgid "Choose startup folder" +-msgstr "Pilih folder awal mula" +- +-#: data/ui/preferences.ui:299 ++#: data/ui/preferences.ui:277 + msgid "Set to C_urrent" + msgstr "Set ke _Kini" + +-#: data/ui/preferences.ui:322 ++#: data/ui/preferences.ui:299 + msgid "_Reuse the active window to open files" + msgstr "Pakai lagi jendela aktif untuk membuka be_rkas" + +-#: data/ui/preferences.ui:389 ++#: data/ui/preferences.ui:358 + msgid "As_k confirmation before deleting files or catalogs" + msgstr "_Konfirmasikan sebelum menghapus berkas atau katalog" + +-#: data/ui/preferences.ui:406 ++#: data/ui/preferences.ui:373 + msgid "Ask whether to save _modified files" + msgstr "Tanyakan apakah _menyimpan berkas yang diubah" + +-#: data/ui/preferences.ui:423 ++#: data/ui/preferences.ui:388 + msgid "_Store metadata inside files if possible" + msgstr "_Simpan metadata di dalam berkas bila memungkinkan" + +-#: data/ui/preferences.ui:460 ++#: data/ui/preferences.ui:421 + #: extensions/catalogs/data/ui/catalog-properties.ui:39 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 + #: extensions/edit_metadata/gth-edit-general-page.c:482 + #: extensions/webalbums/data/ui/web-album-exporter.ui:571 ++#: gthumb/gth-main-default-types.c:38 + msgid "General" + msgstr "Umum" + ++#: data/ui/shortcuts-preferences.ui:27 ++msgid "Shortcuts:" ++msgstr "Pintasan:" ++ ++#: data/ui/shortcuts-preferences.ui:92 ++msgid "_Restore All…" ++msgstr "_Pulihkan Semua…" ++ + #: data/ui/sort-order.ui:30 + msgid "_Inverse order" + msgstr "Bal_ikkan urutan" +@@ -422,7 +436,7 @@ msgid "Upload images to 23hq.com" + msgstr "Unggah gambar ke 23hq.com" + + #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 +-#: extensions/bookmarks/callbacks.c:325 ++#: extensions/bookmarks/callbacks.c:323 + #: extensions/bookmarks/dlg-bookmarks.c:350 + msgid "Bookmarks" + msgstr "Penanda taut" +@@ -439,7 +453,7 @@ msgstr "T_ambahkan TandaBatas" + msgid "_Edit Bookmarks…" + msgstr "Sunting P_enanda Taut…" + +-#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 ++#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 + msgid "_System Bookmarks" + msgstr "Penanda Taut _Sistem" + +@@ -453,6 +467,7 @@ msgstr "Pergi ke lokasi ini" + + #: extensions/bookmarks/data/ui/bookmarks.ui:76 + #: extensions/catalogs/callbacks.c:72 ++#: extensions/search/gth-search-source-selector.c:140 + msgid "Remove" + msgstr "Hapus" + +@@ -504,15 +519,15 @@ msgstr "Berka_s yang dipilih" + msgid "Source" + msgstr "Sumber" + +-#: extensions/burn_disc/gth-burn-task.c:235 +-#: extensions/burn_disc/gth-burn-task.c:256 +-#: extensions/burn_disc/gth-burn-task.c:392 ++#: extensions/burn_disc/gth-burn-task.c:239 ++#: extensions/burn_disc/gth-burn-task.c:260 ++#: extensions/burn_disc/gth-burn-task.c:396 + msgid "Write to Disc" + msgstr "Tulis ke Cakram" + +-#: extensions/burn_disc/gth-burn-task.c:401 ++#: extensions/burn_disc/gth-burn-task.c:405 + #: extensions/oauth/oauth-account-chooser-dialog.c:150 +-#: gthumb/dlg-preferences-extensions.c:717 ++#: gthumb/dlg-preferences-extensions.c:715 + msgid "_Continue" + msgstr "_Lanjut" + +@@ -521,7 +536,7 @@ msgstr "_Lanjut" + msgid "Error interpreting JPEG image file: %s" + msgstr "Galat menginterpretasi berkas citra JPEG (%s)" + +-#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 ++#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 + #, c-format + msgid "Unknown JPEG color space (%d)" + msgstr "Ruang warna JPEG tak dikenal (%d)" +@@ -604,12 +619,12 @@ msgid "_Lossless" + msgstr "Nirhi_lang" + + #: extensions/cairo_io/gth-image-saver-jpeg.c:517 +-#: extensions/image_viewer/gth-metadata-provider-image.c:145 ++#: extensions/image_viewer/gth-metadata-provider-image.c:150 + msgid "JPEG" + msgstr "JPEG" + + #: extensions/cairo_io/gth-image-saver-png.c:354 +-#: extensions/image_viewer/gth-metadata-provider-image.c:111 ++#: extensions/image_viewer/gth-metadata-provider-image.c:116 + msgid "PNG" + msgstr "PNG" + +@@ -627,71 +642,69 @@ msgid "TIFF" + msgstr "TIFF" + + #: extensions/cairo_io/gth-image-saver-webp.c:383 +-#: extensions/image_viewer/gth-metadata-provider-image.c:174 ++#: extensions/image_viewer/gth-metadata-provider-image.c:179 + msgid "WebP" + msgstr "WebP" + + #: extensions/cairo_io/preferences.c:134 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 + #: extensions/contact_sheet/data/ui/image-wall.ui:269 +-#: extensions/image_viewer/gth-image-viewer-page.c:1663 ++#: extensions/image_viewer/gth-image-viewer-page.c:1702 + #: extensions/webalbums/data/ui/web-album-exporter.ui:484 + msgid "Saving" + msgstr "Menyimpan" + + #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +-#: extensions/catalogs/dlg-add-to-catalog.c:368 +-#: extensions/catalogs/dlg-add-to-catalog.c:488 ++#: extensions/catalogs/dlg-add-to-catalog.c:376 ++#: extensions/catalogs/dlg-add-to-catalog.c:541 + #: extensions/file_manager/actions.c:71 + #: extensions/file_tools/gth-file-tool-curves.c:373 +-#: extensions/list_tools/gth-script-editor-dialog.c:241 +-#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 ++#: extensions/list_tools/gth-script-editor-dialog.c:273 ++#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 + #, c-format + msgid "No name specified" + msgstr "Nama tak dinyatakan" + + #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +-#: extensions/catalogs/dlg-add-to-catalog.c:375 +-#: extensions/catalogs/dlg-add-to-catalog.c:495 ++#: extensions/catalogs/dlg-add-to-catalog.c:383 ++#: extensions/catalogs/dlg-add-to-catalog.c:548 + #: extensions/file_manager/actions.c:78 + #: extensions/file_tools/gth-file-tool-curves.c:380 +-#: gthumb/gth-folder-tree.c:1865 ++#: gthumb/gth-folder-tree.c:1931 + #, c-format + msgid "Invalid name. The following characters are not allowed: %s" + msgstr "Nama tak valid. Karakter berikut tak diijinkan: %s" + + #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +-#: extensions/catalogs/dlg-add-to-catalog.c:432 +-#: extensions/catalogs/dlg-add-to-catalog.c:542 +-#: extensions/catalogs/gth-file-source-catalogs.c:510 ++#: extensions/catalogs/dlg-add-to-catalog.c:440 ++#: extensions/catalogs/dlg-add-to-catalog.c:597 ++#: extensions/catalogs/gth-file-source-catalogs.c:516 + #: extensions/file_manager/actions.c:109 + msgid "Name already used" + msgstr "Nama sudah dipakai" + + #: extensions/catalogs/actions.c:177 +-#: extensions/catalogs/dlg-add-to-catalog.c:453 + msgid "New catalog" + msgstr "Katalog baru" + + #: extensions/catalogs/actions.c:178 +-#: extensions/catalogs/dlg-add-to-catalog.c:454 ++#: extensions/catalogs/dlg-add-to-catalog.c:462 + msgid "Enter the catalog name:" + msgstr "Masukkan nama katalog:" + + #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +-#: extensions/catalogs/dlg-add-to-catalog.c:456 +-#: extensions/catalogs/dlg-add-to-catalog.c:568 ++#: extensions/catalogs/dlg-add-to-catalog.c:464 ++#: extensions/catalogs/dlg-add-to-catalog.c:623 + #: extensions/file_manager/actions.c:140 + msgid "C_reate" + msgstr "B_uat" + + #: extensions/catalogs/actions.c:291 +-#: extensions/catalogs/dlg-add-to-catalog.c:565 + msgid "New library" + msgstr "Pustaka baru" + + #: extensions/catalogs/actions.c:292 +-#: extensions/catalogs/dlg-add-to-catalog.c:566 ++#: extensions/catalogs/dlg-add-to-catalog.c:621 + msgid "Enter the library name:" + msgstr "Masukkan nama pustaka:" + +@@ -708,7 +721,7 @@ msgstr "Anda yakin ingin menghapus \"%s\ + msgid "Add to Catalog…" + msgstr "Tambah ke Katalog…" + +-#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 ++#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 + msgid "Open Folder" + msgstr "Buka Folder" + +@@ -724,40 +737,40 @@ msgstr "Buat Katalog" + msgid "Create Library" + msgstr "Buat Pustaka" + +-#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 +-#: extensions/file_manager/callbacks.c:105 +-#: extensions/rename_series/dlg-rename-series.c:844 +-#: gthumb/gth-folder-tree.c:1910 ++#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 ++#: extensions/file_manager/callbacks.c:109 ++#: extensions/file_manager/callbacks.c:126 ++#: extensions/rename_series/dlg-rename-series.c:850 ++#: gthumb/gth-folder-tree.c:1971 + msgid "Rename" + msgstr "Ganti nama" + + #: extensions/catalogs/callbacks.c:78 +-#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 +-#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 ++#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 ++#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:258 + msgid "Properties" + msgstr "Tag (tertanam)" + + #: extensions/catalogs/callbacks.c:185 + #: extensions/catalogs/catalogs.extension.desktop.in.in:3 +-#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 +-#: extensions/catalogs/gth-catalog.c:1028 +-#: extensions/catalogs/gth-catalog.c:1029 ++#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 ++#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 + msgid "Catalogs" + msgstr "Katalog" + +-#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 ++#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 + msgid "Command Line" + msgstr "Baris Perintah" + +-#: extensions/catalogs/callbacks.c:375 ++#: extensions/catalogs/callbacks.c:379 + msgid "Catalog Properties" + msgstr "Properti Katalog" + +-#: extensions/catalogs/callbacks.c:391 ++#: extensions/catalogs/callbacks.c:395 + msgid "Organize" + msgstr "Atur" + +-#: extensions/catalogs/callbacks.c:392 ++#: extensions/catalogs/callbacks.c:396 + msgid "Automatically organize files by date" + msgstr "Otomatis atur berkas menurut tanggal" + +@@ -769,29 +782,23 @@ msgstr "Buat koleksi berkas." + msgid "file-catalog-symbolic" + msgstr "file-catalog-symbolic" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:10 +-msgid "Add to Catalog" +-msgstr "Tambah ke Katalog" +- +-#: extensions/catalogs/data/ui/add-to-catalog.ui:56 +-msgid "A_dd and Close" +-msgstr "Tambah _dan Tutup" +- +-#: extensions/catalogs/data/ui/add-to-catalog.ui:97 ++#: extensions/catalogs/data/ui/add-to-catalog.ui:19 + msgid "C_atalogs:" + msgstr "K_atalog:" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:135 +-msgid "_New Catalog" +-msgstr "Ka_talog Baru" +- +-#: extensions/catalogs/data/ui/add-to-catalog.ui:150 +-msgid "New _Library" +-msgstr "_Pustaka Baru" +- +-#: extensions/catalogs/data/ui/add-to-catalog.ui:194 +-#: extensions/file_manager/actions.c:687 +-#: extensions/webalbums/gth-web-exporter.c:1843 ++#: extensions/catalogs/data/ui/add-to-catalog.ui:34 ++#: extensions/catalogs/dlg-add-to-catalog.c:620 ++msgid "New Library" ++msgstr "Pustaka Baru" ++ ++#: extensions/catalogs/data/ui/add-to-catalog.ui:57 ++#: extensions/catalogs/dlg-add-to-catalog.c:461 ++msgid "New Catalog" ++msgstr "Katalog Baru" ++ ++#: extensions/catalogs/data/ui/add-to-catalog.ui:103 ++#: extensions/file_manager/actions.c:766 ++#: extensions/webalbums/gth-web-exporter.c:1827 + msgid "_View the destination" + msgstr "_Tilik tujuan" + +@@ -848,7 +855,7 @@ msgstr "_Kelompokkan berkas menurut:" + + #: extensions/catalogs/data/ui/organize-files.ui:139 + #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 +-#: extensions/search/data/ui/search-editor.ui:46 ++#: extensions/search/gth-search-source-selector.c:123 + msgid "_Include sub-folders" + msgstr "_Sertakan sub folder" + +@@ -864,26 +871,38 @@ msgstr "Letakkan berkas tunggal dalam ka + msgid "Singles" + msgstr "Tunggal" + +-#: extensions/catalogs/dlg-add-to-catalog.c:149 +-#: extensions/catalogs/dlg-add-to-catalog.c:183 ++#: extensions/catalogs/dlg-add-to-catalog.c:156 + msgid "Could not add the files to the catalog" + msgstr "Tak dapat menambahkan berkas ke katalog" + +-#: extensions/catalogs/dlg-add-to-catalog.c:311 +-#: extensions/search/gth-search-task.c:358 ++#: extensions/catalogs/dlg-add-to-catalog.c:319 ++#: extensions/search/gth-search-task.c:402 + msgid "Could not create the catalog" + msgstr "Tidak dapat membuat katalog" + ++#: extensions/catalogs/dlg-add-to-catalog.c:687 ++msgid "Add to Catalog" ++msgstr "Tambah ke Katalog" ++ ++#: extensions/catalogs/dlg-add-to-catalog.c:710 ++msgid "_Add" ++msgstr "T_ambah" ++ ++#: extensions/catalogs/dlg-add-to-catalog.c:714 ++#: extensions/edit_metadata/dlg-edit-metadata.c:347 ++msgid "Keep the dialog open" ++msgstr "Jaga agar dialog tetap terbuka" ++ + #: extensions/catalogs/dlg-catalog-properties.c:80 + msgid "Could not save the catalog" + msgstr "Tak dapat menyimpan katalog" + +-#: extensions/catalogs/dlg-catalog-properties.c:151 ++#: extensions/catalogs/dlg-catalog-properties.c:154 + msgid "Could not load the catalog" + msgstr "Tak dapat memuat katalog" + + #: extensions/catalogs/dlg-organize-files.c:106 +-#: extensions/catalogs/gth-organize-task.c:814 ++#: extensions/catalogs/gth-organize-task.c:812 + msgid "Organize Files" + msgstr "Atur Berkas" + +@@ -895,75 +914,77 @@ msgstr "" + + #: extensions/catalogs/dlg-organize-files.c:138 + #: extensions/edit_metadata/gth-edit-general-page.c:557 +-#: gthumb/gth-main-default-tests.c:366 ++#: gthumb/gth-main-default-tests.c:367 + msgid "Date photo was taken" + msgstr "Tanggal pengambilan foto" + + #: extensions/catalogs/dlg-organize-files.c:145 +-#: gthumb/gth-main-default-tests.c:358 ++#: gthumb/gth-main-default-tests.c:359 + msgid "File modified date" + msgstr "Tanggal berkas diubah" + +-#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 ++#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 + msgid "Tag" + msgstr "Tag" + + #: extensions/catalogs/dlg-organize-files.c:159 +-#: gthumb/gth-main-default-tests.c:399 ++#: gthumb/gth-main-default-tests.c:400 + msgid "Tag (embedded)" + msgstr "Tag (tertanam)" + +-#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 +-#: extensions/edit_metadata/callbacks.c:51 +-#: extensions/edit_metadata/callbacks.c:85 +-#: gthumb/gth-main-default-metadata.c:63 ++#: extensions/catalogs/gth-catalog.c:300 ++#: extensions/exiv2_tools/exiv2-utils.cpp:876 ++#: extensions/exiv2_tools/exiv2-utils.cpp:885 ++#: extensions/exiv2_tools/exiv2-utils.cpp:915 ++#: extensions/exiv2_tools/exiv2-utils.cpp:1448 ++#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 ++msgid "Invalid file format" ++msgstr "Format berkas tak valid" ++ ++#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 ++#: extensions/edit_metadata/callbacks.c:57 ++#: extensions/edit_metadata/callbacks.c:94 ++#: extensions/edit_metadata/callbacks.c:107 ++#: extensions/edit_metadata/gth-edit-tags-dialog.c:170 ++#: gthumb/gth-main-default-metadata.c:65 + msgid "Tags" + msgstr "Tag" + +-#: extensions/catalogs/gth-file-source-catalogs.c:955 ++#: extensions/catalogs/gth-file-source-catalogs.c:958 + #, c-format + msgid "The catalog “%s” already exists, do you want to overwrite it?" + msgstr "Katalog \"%s\" sudah ada, apakah Anda ingin menimpanya?" + +-#: extensions/catalogs/gth-file-source-catalogs.c:957 ++#: extensions/catalogs/gth-file-source-catalogs.c:960 + #, c-format + msgid "The library “%s” already exists, do you want to overwrite it?" + msgstr "Pustaka \"%s\" sudah ada, apakah Anda ingin menimpanya?" + +-#: extensions/catalogs/gth-file-source-catalogs.c:965 ++#: extensions/catalogs/gth-file-source-catalogs.c:968 + msgid "Over_write" + msgstr "Ti_mpa" + +-#: extensions/catalogs/gth-file-source-catalogs.c:1083 ++#: extensions/catalogs/gth-file-source-catalogs.c:1087 + msgid "Cannot move the files" + msgstr "Tak bisa memindah berkas" + +-#: extensions/catalogs/gth-file-source-catalogs.c:1085 ++#: extensions/catalogs/gth-file-source-catalogs.c:1089 + msgid "Cannot copy the files" + msgstr "Tak bisa menyalin berkas" + +-#: extensions/catalogs/gth-file-source-catalogs.c:1090 ++#: extensions/catalogs/gth-file-source-catalogs.c:1094 + msgid "Invalid destination." + msgstr "Tujuan tak valid." + +-#: extensions/catalogs/gth-file-source-catalogs.c:1137 ++#: extensions/catalogs/gth-file-source-catalogs.c:1141 + #, c-format + msgid "Copying files to “%s”" + msgstr "Menyalin berkas ke \"%s\"" + +-#: extensions/catalogs/gth-file-source-catalogs.c:1324 ++#: extensions/catalogs/gth-file-source-catalogs.c:1321 + msgid "Could not remove the files from the catalog" + msgstr "Tidak dapat menghapus berkas dari katalog" + +-#: extensions/catalogs/gth-file-source-catalogs.c:1375 +-#: extensions/exiv2_tools/exiv2-utils.cpp:876 +-#: extensions/exiv2_tools/exiv2-utils.cpp:885 +-#: extensions/exiv2_tools/exiv2-utils.cpp:915 +-#: extensions/exiv2_tools/exiv2-utils.cpp:1450 +-#: extensions/search/gth-search.c:265 +-msgid "Invalid file format" +-msgstr "Format berkas tak valid" +- + #: extensions/catalogs/gth-organize-task.c:209 + #, c-format + msgid "Operation completed. Catalogs: %d. Images: %d." +@@ -1063,20 +1084,25 @@ msgstr "_Selaraskan dengan metadata tert + #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 + #: extensions/importer/gth-import-preferences-dialog.c:417 + #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +-#: gthumb/dlg-preferences-extensions.c:483 ++#: extensions/terminal/dlg-terminal-preferences.c:83 ++#: gthumb/dlg-favorite-properties.c:99 gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/gth-file-properties.c:548 + msgid "Preferences" + msgstr "Preferensi" + +-#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 +-#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 ++#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 ++#: extensions/edit_metadata/callbacks.c:88 ++#: extensions/edit_metadata/callbacks.c:101 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:124 ++#: gthumb/gth-file-comment.c:136 + msgid "Comment" + msgstr "Komentar" + +-#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 ++#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 + msgid "Title" + msgstr "Judul" + +-#: extensions/comments/main.c:42 extensions/comments/main.c:166 ++#: extensions/comments/main.c:44 extensions/comments/main.c:170 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 + #: extensions/contact_sheet/data/ui/image-wall.ui:232 +@@ -1086,21 +1112,21 @@ msgstr "Judul" + #: extensions/rename_series/data/ui/rename-series.ui:249 + #: extensions/webalbums/data/ui/web-album-exporter.ui:194 + #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 +-#: gthumb/gth-main-default-metadata.c:62 ++#: gthumb/gth-main-default-metadata.c:64 + msgid "Description" + msgstr "Deskripsi" + +-#: extensions/comments/main.c:43 extensions/comments/main.c:174 +-#: gthumb/gth-main-default-metadata.c:61 ++#: extensions/comments/main.c:45 extensions/comments/main.c:178 ++#: gthumb/gth-main-default-metadata.c:63 + msgid "Place" + msgstr "Tempat" + +-#: extensions/comments/main.c:44 ++#: extensions/comments/main.c:46 + msgid "Comment Date & Time" + msgstr "Tanggal & Waktu Komentar" + +-#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 +-#: gthumb/gth-main-default-tests.c:390 ++#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 ++#: gthumb/gth-main-default-tests.c:391 + msgid "Rating" + msgstr "Peringkat" + +@@ -1114,7 +1140,7 @@ msgstr "_Dinding Citra…" + + #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 +-#: extensions/contact_sheet/dlg-contact-sheet.c:708 ++#: extensions/contact_sheet/dlg-contact-sheet.c:710 + msgid "Contact Sheet" + msgstr "Contact Sheet" + +@@ -1127,9 +1153,9 @@ msgstr "" + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 + #: extensions/file_tools/gth-file-tool-crop.c:439 + #: extensions/file_tools/gth-file-tool-crop.c:469 +-#: extensions/file_tools/gth-file-tool-resize.c:587 ++#: extensions/file_tools/gth-file-tool-resize.c:589 + #: extensions/file_tools/gth-file-tool-rotate.c:396 +-#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 ++#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 + msgid "None" + msgstr "Tidak ada" + +@@ -1201,7 +1227,7 @@ msgstr "Teks" + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 + #: extensions/image_print/data/ui/print-layout.ui:88 +-#: extensions/image_print/data/ui/print-preferences.ui:60 ++#: extensions/image_print/data/ui/print-preferences.ui:55 + #: extensions/webalbums/data/ui/web-album-exporter.ui:302 + #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 + msgid "_Header:" +@@ -1216,7 +1242,7 @@ msgstr "Pilih fonta" + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 + #: extensions/image_print/data/ui/print-layout.ui:102 +-#: extensions/image_print/data/ui/print-preferences.ui:74 ++#: extensions/image_print/data/ui/print-preferences.ui:69 + #: extensions/webalbums/data/ui/web-album-exporter.ui:271 + #: extensions/webalbums/data/ui/web-album-exporter.ui:916 + msgid "_Footer:" +@@ -1224,7 +1250,7 @@ msgstr "_Kaki:" + + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 + #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 +-#: extensions/image_print/data/ui/print-preferences.ui:48 ++#: extensions/image_print/data/ui/print-preferences.ui:43 + msgid "Caption:" + msgstr "Keterangan:" + +@@ -1379,13 +1405,13 @@ msgstr "K_uadrat" + msgid "Thumbnails" + msgstr "Gambar miniatur" + +-#: extensions/contact_sheet/dlg-contact-sheet.c:489 +-#: extensions/contact_sheet/dlg-contact-sheet.c:500 +-#: extensions/contact_sheet/dlg-contact-sheet.c:514 ++#: extensions/contact_sheet/dlg-contact-sheet.c:491 ++#: extensions/contact_sheet/dlg-contact-sheet.c:502 ++#: extensions/contact_sheet/dlg-contact-sheet.c:516 + msgid "Could not save the theme" + msgstr "Tak bisa menyimpan tema" + +-#: extensions/contact_sheet/dlg-contact-sheet.c:659 ++#: extensions/contact_sheet/dlg-contact-sheet.c:661 + msgid "Could not delete the theme" + msgstr "Tak bisa menghapus tema" + +@@ -1393,11 +1419,11 @@ msgstr "Tak bisa menghapus tema" + msgid "Image Wall" + msgstr "Dinding Citra" + +-#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 ++#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 + msgid "Creating images" + msgstr "Membuat gambar" + +-#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 ++#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 + msgid "Generating thumbnails" + msgstr "Membentuk gambar miniatur" + +@@ -1460,7 +1486,7 @@ msgid "Could not show the desktop backgr + msgstr "Tak bisa tampilkan properti latar belakang desktop" + + #: extensions/desktop_background/actions.c:329 +-#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 ++#: gthumb/resources/gears-menu.ui:45 + msgid "_Preferences" + msgstr "_Preferensi" + +@@ -1503,6 +1529,14 @@ msgid "If you delete the metadata, it wi + msgstr "Apabila Anda menghapus metadata, itu akan dihapus permanen." + + #: extensions/edit_metadata/callbacks.c:45 ++msgid "Edit comment" ++msgstr "Sunting komentar" ++ ++#: extensions/edit_metadata/callbacks.c:46 ++msgid "Edit tags" ++msgstr "Sunting tag" ++ ++#: extensions/edit_metadata/callbacks.c:51 + msgid "Delete Metadata" + msgstr "Hapus Metadata" + +@@ -1529,12 +1563,12 @@ msgstr "Pe_ringkat:" + msgid "_Title:" + msgstr "_Judul:" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:121 ++#: extensions/edit_metadata/dlg-edit-metadata.c:123 + msgid "Could not save the file metadata" + msgstr "Tak bisa menyimpan metadata berkas" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:227 +-#: gthumb/gth-overwrite-dialog.c:139 ++#: extensions/edit_metadata/dlg-edit-metadata.c:234 ++#: gthumb/gth-overwrite-dialog.c:184 + msgid "Cannot read file information" + msgstr "Tak bisa membaca informasi berkas" + +@@ -1546,27 +1580,7 @@ msgstr "Sunting metadata" + msgid "Allow to edit files metadata." + msgstr "Bolehkan menyunting metadata berkas." + +-#. Translators: the %s symbol in the string is a file name +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 +-#, c-format +-msgid "%s Metadata" +-msgstr "Metadata %s" +- +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 +-#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +-#, c-format +-msgid "%d file" +-msgid_plural "%d files" +-msgstr[0] "%d berkas" +-msgstr[1] "%d berkas" +- +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 +-msgid "Sa_ve and Close" +-msgstr "Sim_pan dan Tutup" +- +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:138 + msgid "Save only cha_nged fields" + msgstr "Simpa_n hanya bagian yang berubah" + +@@ -1595,16 +1609,6 @@ msgstr "Tanggal pembuatan gambar" + msgid "Do not modify" + msgstr "Jangan diubah" + +-#. Translators: the %s symbol in the string is a file name +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 +-#, c-format +-msgid "%s Tags" +-msgstr "Tag %s" +- +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 +-msgid "Assign Tags" +-msgstr "Berikan Tag" +- + #: extensions/edit_metadata/gth-tag-task.c:122 + #: extensions/edit_metadata/gth-tag-task.c:139 + msgid "Assigning tags to the selected files" +@@ -1667,7 +1671,8 @@ msgstr "_Bahasa:" + msgid "State/Province:" + msgstr "Negara Bagian/Propinsi:" + +-#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1115 ++#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1114 ++#: gthumb/glib-utils.c:2079 gthumb/str-utils.c:700 + msgid "(invalid value)" + msgstr "(nilai tak valid)" + +@@ -1732,8 +1737,8 @@ msgid "date photo was taken" + msgstr "tanggal foto diambil" + + #: extensions/export_tools/callbacks.c:46 +-msgid "Export" +-msgstr "Ekspor" ++msgid "_Export To" ++msgstr "_Ekspor Ke" + + #: extensions/facebook/data/ui/export-to-facebook.ui:34 + msgid "720 × 720" +@@ -1874,7 +1879,7 @@ msgstr "Tak bisa mengekspor berkas" + #: extensions/flicker_utils/dlg-export-to-flickr.c:601 + #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 + #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 +-#: gthumb/gth-browser.c:832 ++#: gthumb/gth-browser.c:872 + #, c-format + msgid "%d file (%s)" + msgid_plural "%d files (%s)" +@@ -1915,13 +1920,13 @@ msgstr "Tak bisa mengunggah \"%s\": %s" + msgid "Uploading “%s”" + msgstr "Mengunggah \"%s\"" + +-#: extensions/facebook/facebook-service.c:949 ++#: extensions/facebook/facebook-service.c:954 + #: extensions/flicker_utils/flickr-service.c:1450 + #: extensions/picasaweb/picasa-web-service.c:1062 + msgid "Uploading the files to the server" + msgstr "Mengunggah berkas ke server" + +-#: extensions/facebook/facebook-service.c:1043 ++#: extensions/facebook/facebook-service.c:1048 + #: extensions/flicker_utils/flickr-service.c:1611 + #: extensions/picasaweb/picasa-web-service.c:1174 + msgid "Getting the photo list" +@@ -1944,14 +1949,21 @@ msgid "Enter the folder name:" + msgstr "Masukkan nama folder:" + + #: extensions/file_manager/actions.c:410 +-#: extensions/file_manager/callbacks.c:265 +-#: extensions/file_manager/callbacks.c:815 ++#: extensions/file_manager/callbacks.c:551 ++#: extensions/file_manager/callbacks.c:986 ++#: extensions/find_duplicates/gth-find-duplicates.c:788 ++#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 ++#: gthumb/gth-progress-dialog.c:429 ++msgid "Could not perform the operation" ++msgstr "Operasi tidak dapat dilakukan" ++ ++#: extensions/file_manager/actions.c:423 ++#: extensions/file_manager/callbacks.c:277 + msgid "Could not move the files" + msgstr "Tak bisa memindah berkas" + +-#: extensions/file_manager/actions.c:411 +-#: extensions/file_manager/callbacks.c:266 +-#: extensions/file_manager/callbacks.c:816 ++#: extensions/file_manager/actions.c:424 ++#: extensions/file_manager/callbacks.c:278 + msgid "" + "Files cannot be moved to the current location, as alternative you can choose " + "to copy them." +@@ -1959,117 +1971,123 @@ msgstr "" + "Berkas tak bisa dipindah ke lokasi kini, sebagai alternatif Anda dapat " + "memilih untuk menyalin mereka." + +-#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 +-#: extensions/file_manager/callbacks.c:70 +-#: extensions/file_manager/callbacks.c:99 ++#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 ++#: extensions/file_manager/callbacks.c:74 ++#: extensions/file_manager/callbacks.c:103 ++#: extensions/file_manager/callbacks.c:124 + #: extensions/file_tools/data/ui/color-picker-options.ui:206 + #: extensions/file_tools/data/ui/color-picker-options.ui:219 + #: gthumb/gtk-utils.h:38 + msgid "Copy" + msgstr "Salin" + +-#: extensions/file_manager/actions.c:660 ++#: extensions/file_manager/actions.c:739 + msgid "Move To" + msgstr "Pindah Ke" + +-#: extensions/file_manager/actions.c:660 ++#: extensions/file_manager/actions.c:739 + msgid "Copy To" + msgstr "Salin Ke" + +-#: extensions/file_manager/actions.c:664 +-#: extensions/file_manager/callbacks.c:800 ++#: extensions/file_manager/actions.c:743 ++#: extensions/file_manager/callbacks.c:1025 + msgid "Move" + msgstr "Pindah" + +-#: extensions/file_manager/actions.c:791 ++#: extensions/file_manager/actions.c:870 + msgid "Could not open the location" + msgstr "Tak bisa membuka lokasi" + +-#: extensions/file_manager/callbacks.c:69 +-#: extensions/file_manager/callbacks.c:98 ++#: extensions/file_manager/callbacks.c:73 ++#: extensions/file_manager/callbacks.c:102 ++#: extensions/file_manager/callbacks.c:123 + msgid "Cut" + msgstr "Potong" + +-#: extensions/file_manager/callbacks.c:71 ++#: extensions/file_manager/callbacks.c:75 ++#: extensions/file_manager/callbacks.c:125 + msgid "Paste" + msgstr "Tempel" + +-#: extensions/file_manager/callbacks.c:76 +-#: extensions/file_manager/callbacks.c:106 ++#: extensions/file_manager/callbacks.c:80 ++#: extensions/file_manager/callbacks.c:110 + msgid "Copy to…" + msgstr "Salin ke…" + +-#: extensions/file_manager/callbacks.c:77 +-#: extensions/file_manager/callbacks.c:107 ++#: extensions/file_manager/callbacks.c:81 ++#: extensions/file_manager/callbacks.c:111 + msgid "Move to…" + msgstr "Pindah ke…" + +-#: extensions/file_manager/callbacks.c:83 +-#: extensions/file_manager/callbacks.c:108 ++#: extensions/file_manager/callbacks.c:87 ++#: extensions/file_manager/callbacks.c:112 + msgid "Move to Trash" + msgstr "Pindah ke Tong Sampah" + +-#: extensions/file_manager/callbacks.c:84 +-#: extensions/file_manager/callbacks.c:109 ++#: extensions/file_manager/callbacks.c:88 ++#: extensions/file_manager/callbacks.c:113 ++#: extensions/file_manager/callbacks.c:128 + msgid "Delete" + msgstr "Hapus" + +-#: extensions/file_manager/callbacks.c:88 ++#: extensions/file_manager/callbacks.c:92 + msgid "Open with the File Manager" + msgstr "Buka dengan Manajer Berkas" + +-#: extensions/file_manager/callbacks.c:93 ++#: extensions/file_manager/callbacks.c:97 + msgid "Create Folder" + msgstr "Buat Folder" + +-#: extensions/file_manager/callbacks.c:100 ++#: extensions/file_manager/callbacks.c:104 + msgid "Paste Into Folder" + msgstr "Tempel Ke Folder" + +-#: extensions/file_manager/callbacks.c:114 ++#: extensions/file_manager/callbacks.c:118 ++#: extensions/file_manager/callbacks.c:127 + msgid "Duplicate" + msgstr "Duplikat" + +-#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 ++#: extensions/file_manager/callbacks.c:129 ++msgid "Delete permanently" ++msgstr "Hapus permanen" ++ ++#: extensions/file_manager/callbacks.c:130 ++msgid "Open with Gimp" ++msgstr "Buka dengan Gimp" ++ ++#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 + msgid "Home Folder" + msgstr "Folder Rumah" + +-#: extensions/file_manager/callbacks.c:537 +-#: extensions/file_manager/callbacks.c:540 ++#: extensions/file_manager/callbacks.c:729 ++#: extensions/file_manager/callbacks.c:732 + msgid "Open _With" + msgstr "Buka _Dengan" + +-#: extensions/file_manager/callbacks.c:783 ++#: extensions/file_manager/callbacks.c:1006 + #, c-format + msgid "Do you want to move “%s” to “%s”?" + msgstr "Anda ingin memindah \"%s\" ke \"%s\"?" + +-#: extensions/file_manager/callbacks.c:785 ++#: extensions/file_manager/callbacks.c:1008 + #, c-format + msgid "Do you want to copy “%s” to “%s”?" + msgstr "Anda ingin menyalin \"%s\" ke \"%s\"?" + +-#: extensions/file_manager/callbacks.c:790 ++#: extensions/file_manager/callbacks.c:1015 + #, c-format + msgid "Do you want to move the dragged files to “%s”?" + msgstr "Anda ingin memindah berkas yang diseret ke \"%s\"?" + +-#: extensions/file_manager/callbacks.c:792 ++#: extensions/file_manager/callbacks.c:1017 + #, c-format + msgid "Do you want to copy the dragged files to “%s”?" + msgstr "Anda ingin menyalin berkas yang diseret ke \"%s\"?" + +-#: extensions/file_manager/callbacks.c:800 ++#: extensions/file_manager/callbacks.c:1025 + msgid "_Copy" + msgstr "_Salin" + +-#: extensions/file_manager/callbacks.c:981 +-#: extensions/find_duplicates/gth-find-duplicates.c:788 +-#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 +-#: gthumb/gth-progress-dialog.c:429 +-msgid "Could not perform the operation" +-msgstr "Operasi tidak dapat dilakukan" +- + #: extensions/file_manager/file_manager.extension.desktop.in.in:3 + msgid "File manager" + msgstr "Manajer berkas" +@@ -2082,6 +2100,40 @@ msgstr "Operasi manajer berkas." + msgid "system-file-manager" + msgstr "system-file-manager" + ++#: extensions/file_tools/callbacks.c:53 ++msgid "Adjust contrast" ++msgstr "Atur kontras" ++ ++#: extensions/file_tools/callbacks.c:54 ++#: extensions/file_tools/gth-file-tool-flip.c:90 ++msgid "Flip" ++msgstr "Balikkan" ++ ++#: extensions/file_tools/callbacks.c:55 ++#: extensions/file_tools/gth-file-tool-mirror.c:90 ++msgid "Mirror" ++msgstr "Cerminkan" ++ ++#: extensions/file_tools/callbacks.c:56 ++#: extensions/image_rotation/callbacks.c:47 ++msgid "Rotate right" ++msgstr "Putar ke kanan" ++ ++#: extensions/file_tools/callbacks.c:57 ++#: extensions/image_rotation/callbacks.c:48 ++msgid "Rotate left" ++msgstr "Putar ke kiri" ++ ++#: extensions/file_tools/callbacks.c:58 ++#: extensions/file_tools/gth-file-tool-crop.c:687 ++msgid "Crop" ++msgstr "Potong" ++ ++#: extensions/file_tools/callbacks.c:59 ++#: extensions/file_tools/gth-file-tool-resize.c:840 ++msgid "Resize" ++msgstr "Ubah Ukuran" ++ + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 + #: extensions/file_tools/data/ui/curves-options.ui:35 + #: extensions/file_tools/data/ui/sharpen-options.ui:45 +@@ -2144,9 +2196,9 @@ msgstr "Warna" + #: extensions/file_tools/data/ui/resize-options.ui:9 + #: extensions/file_tools/data/ui/rotate-options.ui:9 + #: extensions/file_tools/gth-file-tool-crop.c:661 +-#: extensions/file_tools/gth-file-tool-resize.c:757 ++#: extensions/file_tools/gth-file-tool-resize.c:759 + #: extensions/file_tools/gth-file-tool-rotate.c:617 +-#: gthumb/gth-file-chooser-dialog.c:258 ++#: gthumb/gth-file-chooser-dialog.c:262 + msgid "Options" + msgstr "Opsi" + +@@ -2183,7 +2235,7 @@ msgstr "Pusat" + + #: extensions/file_tools/data/ui/crop-options.ui:418 + #: extensions/file_tools/data/ui/resize-options.ui:375 +-#: gthumb/gth-main-default-tests.c:405 ++#: gthumb/gth-main-default-tests.c:406 + msgid "Aspect ratio" + msgstr "Rasio aspek" + +@@ -2221,7 +2273,7 @@ msgid "%" + msgstr "%" + + #: extensions/file_tools/data/ui/resize-options.ui:137 +-#: gthumb/gth-main-default-metadata.c:46 ++#: gthumb/gth-main-default-metadata.c:48 + msgid "Dimensions" + msgstr "Dimensi" + +@@ -2381,17 +2433,17 @@ msgstr "Pratata" + #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 + #: extensions/file_tools/gth-file-tool-crop.c:632 + #: extensions/file_tools/gth-file-tool-curves.c:287 +-#: extensions/file_tools/gth-file-tool-effects.c:400 +-#: extensions/file_tools/gth-file-tool-effects.c:444 +-#: extensions/file_tools/gth-file-tool-effects.c:492 +-#: extensions/file_tools/gth-file-tool-effects.c:541 +-#: extensions/file_tools/gth-file-tool-effects.c:589 +-#: extensions/file_tools/gth-file-tool-effects.c:637 +-#: extensions/file_tools/gth-file-tool-effects.c:685 +-#: extensions/file_tools/gth-file-tool-effects.c:732 +-#: extensions/file_tools/gth-file-tool-effects.c:781 +-#: extensions/file_tools/gth-file-tool-effects.c:903 +-#: extensions/file_tools/gth-file-tool-effects.c:938 ++#: extensions/file_tools/gth-file-tool-effects.c:401 ++#: extensions/file_tools/gth-file-tool-effects.c:445 ++#: extensions/file_tools/gth-file-tool-effects.c:493 ++#: extensions/file_tools/gth-file-tool-effects.c:542 ++#: extensions/file_tools/gth-file-tool-effects.c:590 ++#: extensions/file_tools/gth-file-tool-effects.c:638 ++#: extensions/file_tools/gth-file-tool-effects.c:686 ++#: extensions/file_tools/gth-file-tool-effects.c:733 ++#: extensions/file_tools/gth-file-tool-effects.c:782 ++#: extensions/file_tools/gth-file-tool-effects.c:904 ++#: extensions/file_tools/gth-file-tool-effects.c:939 + #: extensions/file_tools/gth-file-tool-flip.c:63 + #: extensions/file_tools/gth-file-tool-grayscale.c:230 + #: extensions/file_tools/gth-file-tool-lomo.c:182 +@@ -2439,11 +2491,11 @@ msgstr "Seragam" + msgid "Equalize the histogram using the linear function" + msgstr "Ekualisasikan histogram memakai fungsi linier" + +-#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 ++#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 + msgid "Adjust Contrast" + msgstr "Atur Kontras" + +-#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 ++#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 + msgid "Automatic contrast adjustment" + msgstr "Pengaturan kontras otomatis" + +@@ -2456,74 +2508,74 @@ msgid "Pick a color from the image" + msgstr "Pilih sebuah warna dari gambar" + + #: extensions/file_tools/gth-file-tool-crop.c:439 +-#: extensions/file_tools/gth-file-tool-resize.c:587 ++#: extensions/file_tools/gth-file-tool-resize.c:589 + #: gthumb/gth-test-aspect-ratio.c:47 + msgid "Square" + msgstr "Kwadrat" + + #: extensions/file_tools/gth-file-tool-crop.c:440 +-#: extensions/file_tools/gth-file-tool-resize.c:588 ++#: extensions/file_tools/gth-file-tool-resize.c:590 + #, c-format + msgid "%d × %d (Image)" + msgstr "%d x %d (Gambar)" + + #: extensions/file_tools/gth-file-tool-crop.c:443 +-#: extensions/file_tools/gth-file-tool-resize.c:592 ++#: extensions/file_tools/gth-file-tool-resize.c:594 + #, c-format + msgid "%d × %d (Screen)" + msgstr "%d x %d (Layar)" + + #: extensions/file_tools/gth-file-tool-crop.c:447 +-#: extensions/file_tools/gth-file-tool-resize.c:597 ++#: extensions/file_tools/gth-file-tool-resize.c:599 + #: gthumb/gth-test-aspect-ratio.c:48 + msgid "5∶4" + msgstr "5∶4" + + #: extensions/file_tools/gth-file-tool-crop.c:448 +-#: extensions/file_tools/gth-file-tool-resize.c:598 ++#: extensions/file_tools/gth-file-tool-resize.c:600 + #: gthumb/gth-test-aspect-ratio.c:49 + msgid "4∶3 (DVD, Book)" + msgstr "4:3 (Buku, DVD)" + + #: extensions/file_tools/gth-file-tool-crop.c:449 +-#: extensions/file_tools/gth-file-tool-resize.c:599 ++#: extensions/file_tools/gth-file-tool-resize.c:601 + #: gthumb/gth-test-aspect-ratio.c:50 + msgid "7∶5" + msgstr "7∶5" + + #: extensions/file_tools/gth-file-tool-crop.c:450 +-#: extensions/file_tools/gth-file-tool-resize.c:600 ++#: extensions/file_tools/gth-file-tool-resize.c:602 + #: gthumb/gth-test-aspect-ratio.c:51 + msgid "3∶2 (Postcard)" + msgstr "3:2 (Kartu pos)" + + #: extensions/file_tools/gth-file-tool-crop.c:451 +-#: extensions/file_tools/gth-file-tool-resize.c:601 ++#: extensions/file_tools/gth-file-tool-resize.c:603 + #: gthumb/gth-test-aspect-ratio.c:52 + msgid "16∶10" + msgstr "16∶10" + + #: extensions/file_tools/gth-file-tool-crop.c:452 +-#: extensions/file_tools/gth-file-tool-resize.c:602 ++#: extensions/file_tools/gth-file-tool-resize.c:604 + #: gthumb/gth-test-aspect-ratio.c:53 + msgid "16∶9 (DVD)" + msgstr "16:9 (DVD)" + + #: extensions/file_tools/gth-file-tool-crop.c:453 +-#: extensions/file_tools/gth-file-tool-resize.c:603 ++#: extensions/file_tools/gth-file-tool-resize.c:605 + #: gthumb/gth-test-aspect-ratio.c:54 + msgid "1.85∶1" + msgstr "1,85:1" + + #: extensions/file_tools/gth-file-tool-crop.c:454 +-#: extensions/file_tools/gth-file-tool-resize.c:604 ++#: extensions/file_tools/gth-file-tool-resize.c:606 + #: gthumb/gth-test-aspect-ratio.c:55 + msgid "2.39∶1" + msgstr "2,39:1" + + #. Translators: this is an option for the format -> Format: Custom + #: extensions/file_tools/gth-file-tool-crop.c:455 +-#: extensions/file_tools/gth-file-tool-resize.c:605 ++#: extensions/file_tools/gth-file-tool-resize.c:607 + #: extensions/image_print/data/ui/print-layout.ui:17 + #: extensions/rename_series/gth-template-selector.c:248 + #: gthumb/gth-test-aspect-ratio.c:193 +@@ -2545,10 +2597,6 @@ msgstr "Golden Section" + msgid "Center Lines" + msgstr "Garis Tengah" + +-#: extensions/file_tools/gth-file-tool-crop.c:687 +-msgid "Crop" +-msgstr "Potong" +- + #: extensions/file_tools/gth-file-tool-curves.c:410 + msgid "Add to Presets" + msgstr "Tambah ke Pratata" +@@ -2559,8 +2607,8 @@ msgstr "Masukkan nama pratata:" + + #: extensions/file_tools/gth-file-tool-curves.c:533 + #: extensions/gstreamer_tools/actions.c:69 +-#: extensions/image_viewer/gth-image-viewer-page.c:1592 +-#: gthumb/gth-browser.c:1887 ++#: extensions/image_viewer/gth-image-viewer-page.c:1631 ++#: gthumb/gth-browser.c:1863 + msgid "Could not save the file" + msgstr "Tak bisa menyimpan berkas" + +@@ -2576,69 +2624,65 @@ msgstr "Kurva Warna" + msgid "Adjust color curves" + msgstr "Atur kurva warna" + +-#: extensions/file_tools/gth-file-tool-effects.c:358 ++#: extensions/file_tools/gth-file-tool-effects.c:359 + msgid "Special Effects" + msgstr "Efek Khusus" + + #. Translators: this is the name of a filter that produces warmer colors +-#: extensions/file_tools/gth-file-tool-effects.c:402 ++#: extensions/file_tools/gth-file-tool-effects.c:403 + msgid "Warmer" + msgstr "Lebih Hangat" + + #. Translators: this is the name of a filter that produces cooler colors +-#: extensions/file_tools/gth-file-tool-effects.c:446 ++#: extensions/file_tools/gth-file-tool-effects.c:447 + msgid "Cooler" + msgstr "Lebih Sejuk" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:494 ++#: extensions/file_tools/gth-file-tool-effects.c:495 + msgid "Soil" + msgstr "Tanah" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:543 ++#: extensions/file_tools/gth-file-tool-effects.c:544 + msgid "Desert" + msgstr "Padang Pasir" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:591 ++#: extensions/file_tools/gth-file-tool-effects.c:592 + msgid "Arctic" + msgstr "Kutub Utara" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:639 ++#: extensions/file_tools/gth-file-tool-effects.c:640 + msgid "Mangos" + msgstr "Mangga" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:687 ++#: extensions/file_tools/gth-file-tool-effects.c:688 + msgid "Fresh Blue" + msgstr "Biru Segar" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:734 ++#: extensions/file_tools/gth-file-tool-effects.c:735 + msgid "Cherry" + msgstr "Ceri" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:783 ++#: extensions/file_tools/gth-file-tool-effects.c:784 + msgid "Vintage" + msgstr "Kuno" + + #. Translators: this is the name of an image filter +-#: extensions/file_tools/gth-file-tool-effects.c:905 ++#: extensions/file_tools/gth-file-tool-effects.c:906 + msgid "Blurred Edges" + msgstr "Tepi Dikaburkan" + + #. Translators: this is the name of an image filter that produces darker edges +-#: extensions/file_tools/gth-file-tool-effects.c:940 ++#: extensions/file_tools/gth-file-tool-effects.c:941 + msgid "Vignette" + msgstr "Sketsa" + +-#: extensions/file_tools/gth-file-tool-flip.c:90 +-msgid "Flip" +-msgstr "Balikkan" +- + #: extensions/file_tools/gth-file-tool-flip.c:91 + msgid "Flip the image vertically" + msgstr "Balikkan gambar secara vertikal" +@@ -2655,7 +2699,7 @@ msgstr "_Saturasi" + msgid "_Average" + msgstr "R_ata-rata" + +-#: extensions/file_tools/gth-file-tool-grayscale.c:497 ++#: extensions/file_tools/gth-file-tool-grayscale.c:498 + msgid "Grayscale" + msgstr "Skala kelabu" + +@@ -2663,10 +2707,6 @@ msgstr "Skala kelabu" + msgid "Lomo" + msgstr "Lomo" + +-#: extensions/file_tools/gth-file-tool-mirror.c:90 +-msgid "Mirror" +-msgstr "Cerminkan" +- + #: extensions/file_tools/gth-file-tool-mirror.c:91 + msgid "Mirror the image horizontally" + msgstr "Cerminkan gambar secara horisontal" +@@ -2680,19 +2720,15 @@ msgid "Redo" + msgstr "Jadi lagi" + + #. resize the original image +-#: extensions/file_tools/gth-file-tool-resize.c:183 +-#: extensions/resize_images/dlg-resize-images.c:172 ++#: extensions/file_tools/gth-file-tool-resize.c:185 ++#: extensions/resize_images/dlg-resize-images.c:169 + #: gthumb/gth-filter-grid.c:573 + msgid "Resizing images" + msgstr "Mengubah ukuran gambar" + +-#: extensions/file_tools/gth-file-tool-resize.c:838 +-msgid "Resize" +-msgstr "Ubah Ukuran" +- + #: extensions/file_tools/gth-file-tool-rotate-left.c:90 +-#: extensions/image_rotation/callbacks.c:46 +-#: extensions/image_rotation/callbacks.c:177 ++#: extensions/image_rotation/callbacks.c:53 ++#: extensions/image_rotation/callbacks.c:163 + msgid "Rotate Left" + msgstr "Putar Kiri" + +@@ -2701,8 +2737,8 @@ msgid "Rotate the image by 90 degrees co + msgstr "Putar citra 90 derajat berlawanan dengan arah jarum jam" + + #: extensions/file_tools/gth-file-tool-rotate-right.c:90 +-#: extensions/image_rotation/callbacks.c:47 +-#: extensions/image_rotation/callbacks.c:185 ++#: extensions/image_rotation/callbacks.c:54 ++#: extensions/image_rotation/callbacks.c:171 + msgid "Rotate Right" + msgstr "Putar Kanan" + +@@ -2715,12 +2751,12 @@ msgid "Rotate" + msgstr "Putar" + + #: extensions/file_tools/gth-file-tool-save-as.c:70 +-#: gthumb/resources/gears-menu.ui:24 ++#: gthumb/resources/gears-menu.ui:21 + msgid "Save As…" + msgstr "Simpan Sebagai…" + + #: extensions/file_tools/gth-file-tool-save.c:66 +-#: gthumb/resources/gears-menu.ui:19 ++#: gthumb/resources/gears-menu.ui:17 + msgid "Save" + msgstr "Simpan" + +@@ -2776,7 +2812,7 @@ msgstr "Duplikat tak ditemukan." + + #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 + #: extensions/rename_series/data/ui/rename-series.ui:27 +-#: extensions/search/data/ui/search-editor.ui:20 ++#: extensions/search/data/ui/search-editor.ui:73 + msgid "Start _at:" + msgstr "Mul_ai di:" + +@@ -2791,7 +2827,7 @@ msgid "Find Duplicates" + msgstr "Cari Duplikat" + + #: extensions/find_duplicates/dlg-find-duplicates.c:106 +-#: extensions/search/actions.c:81 ++#: extensions/search/actions.c:80 + msgid "_Find" + msgstr "_Cari" + +@@ -2910,10 +2946,18 @@ msgid "Hi_de from public searches" + msgstr "Sembunyikan _dari pencarian publik" + + #: extensions/flicker_utils/dlg-export-to-flickr.c:164 +-#: extensions/webalbums/gth-web-exporter.c:1842 ++#: extensions/webalbums/gth-web-exporter.c:1826 + msgid "_Open in the Browser" + msgstr "_Buka dalam Peramban" + ++#: extensions/flicker_utils/dlg-import-from-flickr.c:320 ++#: gthumb/gth-file-selection-info.c:140 ++#, c-format ++msgid "%d file" ++msgid_plural "%d files" ++msgstr[0] "%d berkas" ++msgstr[1] "%d berkas" ++ + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 + #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 + msgid "Could not get the photo list" +@@ -2927,7 +2971,7 @@ msgid "No album selected" + msgstr "Tak ada album yang dipilih" + + #: extensions/flicker_utils/dlg-import-from-flickr.c:521 +-#: extensions/photo_importer/dlg-photo-importer.c:582 ++#: extensions/photo_importer/dlg-photo-importer.c:584 + #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 + msgid "_Import" + msgstr "_Impor" +@@ -2997,6 +3041,14 @@ msgstr "Cuplikan layar" + msgid "Could not take a screenshot" + msgstr "Tak bisa mengambil cuplikan layar" + ++#: extensions/gstreamer_tools/callbacks.c:32 ++msgid "Screenshot" ++msgstr "Cuplikan layar" ++ ++#: extensions/gstreamer_tools/callbacks.c:33 ++msgid "Play/Pause" ++msgstr "Putar/Jeda" ++ + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 + msgid "Use hardware acceleration" + msgstr "Gunakan akselerasi perangkat keras" +@@ -3006,8 +3058,8 @@ msgid "_Screenshots location:" + msgstr "Loka_si cuplikan layar:" + + #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 +-#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 +-#: extensions/image_viewer/gth-image-viewer-page.c:1138 ++#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 ++#: extensions/image_viewer/gth-image-viewer-page.c:1181 + msgid "Play" + msgstr "Mainkan" + +@@ -3043,66 +3095,76 @@ msgstr "Putar berkas audio dan video." + msgid "video-x-generic" + msgstr "video-x-generic" + +-#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 ++#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 + msgid "Playing video" + msgstr "Memutar video" + +-#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 ++#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 + msgid "Pause" + msgstr "Jeda" + +-#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 ++#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 + msgid "Take a screenshot" + msgstr "Ambil cuplikan layar" + +-#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 ++#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 ++msgid "Fit to window" ++msgstr "Paskan ke jendela" ++ ++#: extensions/gstreamer_tools/main.c:34 ++msgid "Audio/Video Player" ++msgstr "Pemutar Audio/Video" ++ ++#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 + msgid "Video" + msgstr "Video" + +-#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 ++#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 + msgid "Audio" + msgstr "Suara" + +-#: extensions/gstreamer_tools/main.c:40 ++#: extensions/gstreamer_tools/main.c:47 + msgid "Artist" + msgstr "Artis" + +-#: extensions/gstreamer_tools/main.c:41 ++#: extensions/gstreamer_tools/main.c:48 + #: extensions/webalbums/data/ui/web-album-exporter.ui:320 + msgid "Album" + msgstr "Album" + +-#: extensions/gstreamer_tools/main.c:42 ++#: extensions/gstreamer_tools/main.c:49 + msgid "Bitrate" + msgstr "Laju bit" + +-#: extensions/gstreamer_tools/main.c:43 ++#: extensions/gstreamer_tools/main.c:50 + msgid "Encoder" + msgstr "Enkoder" + +-#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 ++#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 + msgid "Codec" + msgstr "Kodek" + +-#: extensions/gstreamer_tools/main.c:46 ++#: extensions/gstreamer_tools/main.c:53 + msgid "Framerate" + msgstr "Laju frame" + +-#: extensions/gstreamer_tools/main.c:47 ++#: extensions/gstreamer_tools/main.c:54 + #: extensions/image_print/data/ui/print-layout.ui:723 + msgid "Width" + msgstr "Lebar" + +-#: extensions/gstreamer_tools/main.c:48 ++#: extensions/gstreamer_tools/main.c:55 + #: extensions/image_print/data/ui/print-layout.ui:739 + msgid "Height" + msgstr "Tinggi" + +-#: extensions/gstreamer_tools/main.c:51 ++#: extensions/gstreamer_tools/main.c:58 + msgid "Channels" + msgstr "Kanal" + +-#: extensions/gstreamer_tools/main.c:52 ++#: extensions/gstreamer_tools/main.c:59 + msgid "Sample rate" + msgstr "Laju cuplikan" + +@@ -3116,10 +3178,10 @@ msgstr "Mono" + + #. Translators: this is an image size, such as 1024 × 768 + #: extensions/gstreamer_utils/gstreamer-utils.c:402 +-#: extensions/image_viewer/gth-image-viewer-page.c:1825 +-#: extensions/image_viewer/gth-metadata-provider-image.c:253 ++#: extensions/image_viewer/gth-image-viewer-page.c:1864 ++#: extensions/image_viewer/gth-metadata-provider-image.c:258 + #: extensions/raw_files/gth-metadata-provider-raw.c:96 +-#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 ++#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:963 + #, c-format + msgid "%d × %d" + msgstr "%d × %d" +@@ -3128,7 +3190,8 @@ msgstr "%d × %d" + msgid "Could not print the selected files" + msgstr "Tak bisa mencetak berkas yang dipilih" + +-#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 ++#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 ++#: extensions/image_print/callbacks.c:59 + #: extensions/image_print/preferences.c:79 + msgid "Print" + msgstr "Cetak" +@@ -3186,19 +3249,19 @@ msgstr "milimeter" + msgid "inches" + msgstr "inci" + +-#: extensions/image_print/data/ui/print-preferences.ui:15 ++#: extensions/image_print/data/ui/print-preferences.ui:14 + msgid "Fonts" + msgstr "Fonta" + +-#: extensions/image_print/data/ui/print-preferences.ui:92 ++#: extensions/image_print/data/ui/print-preferences.ui:87 + msgid "Select Caption Font" + msgstr "Pilih Fonta Keterangan" + +-#: extensions/image_print/data/ui/print-preferences.ui:110 ++#: extensions/image_print/data/ui/print-preferences.ui:104 + msgid "Select Header Font" + msgstr "Pilih Fonta Tajuk" + +-#: extensions/image_print/data/ui/print-preferences.ui:128 ++#: extensions/image_print/data/ui/print-preferences.ui:121 + msgid "Select Footer Font" + msgstr "Pilih Fonta Kaki" + +@@ -3220,7 +3283,7 @@ msgstr "Gambar" + + #: extensions/image_print/gth-image-print-job.c:1848 + #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 +-#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 ++#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 + msgid "No suitable loader available for this file type" + msgstr "Tak ada pemuat yang cocok bagi berkas jenis ini" + +@@ -3231,7 +3294,7 @@ msgid "Loading “%s”" + msgstr "Memuat \"%s\"" + + #: extensions/image_print/gth-load-image-info-task.c:170 +-#: extensions/webalbums/gth-web-exporter.c:2723 ++#: extensions/webalbums/gth-web-exporter.c:2714 + msgid "Loading images" + msgstr "Meload gambar" + +@@ -3247,18 +3310,18 @@ msgstr "Memungkinkan mencetak citra deng + msgid "document-print" + msgstr "document-print" + +-#: extensions/image_rotation/callbacks.c:52 ++#: extensions/image_rotation/callbacks.c:59 + msgid "Rotate Physically" + msgstr "Putar Secara Fisik" + +-#: extensions/image_rotation/callbacks.c:53 ++#: extensions/image_rotation/callbacks.c:60 + msgid "Reset the EXIF Orientation" + msgstr "Reset Orientasi EXIF" + + #: extensions/image_rotation/gth-reset-orientation-task.c:114 + #: extensions/image_rotation/gth-transform-task.c:146 +-#: extensions/webalbums/gth-web-exporter.c:2341 +-#: extensions/webalbums/gth-web-exporter.c:2426 ++#: extensions/webalbums/gth-web-exporter.c:2326 ++#: extensions/webalbums/gth-web-exporter.c:2411 + msgid "Saving images" + msgstr "Menyimpan gambar" + +@@ -3306,77 +3369,198 @@ msgstr "Po_tong" + msgid "_Accept distortion" + msgstr "Terim_a distorsi" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 ++#: extensions/image_viewer/callbacks.c:32 ++msgid "Zoom in" ++msgstr "Perbesar" ++ ++#: extensions/image_viewer/callbacks.c:33 ++msgid "Zoom out" ++msgstr "Perkecil" ++ ++#: extensions/image_viewer/callbacks.c:34 ++msgid "Zoom 100%" ++msgstr "Zum 100%" ++ ++#: extensions/image_viewer/callbacks.c:35 ++msgid "Zoom 200%" ++msgstr "Zum 200%" ++ ++#: extensions/image_viewer/callbacks.c:36 ++msgid "Zoom 300%" ++msgstr "Zum 300%" ++ ++#: extensions/image_viewer/callbacks.c:38 ++msgid "Zoom to fit" ++msgstr "Zum agar pas" ++ ++#: extensions/image_viewer/callbacks.c:39 ++msgid "Zoom to fit if larger" ++msgstr "Paskan jika lebih besar" ++ ++#: extensions/image_viewer/callbacks.c:40 ++msgid "Zoom to fit width" ++msgstr "Zum agar pas lebar gambar" ++ ++#: extensions/image_viewer/callbacks.c:41 ++msgid "Zoom to fit width if larger" ++msgstr "Zum agar pas lebar gambar bila lebih" ++ ++#: extensions/image_viewer/callbacks.c:42 ++msgid "Zoom to fit height" ++msgstr "Zum agar pas tinggi gambar" ++ ++#: extensions/image_viewer/callbacks.c:43 ++msgid "Zoom to fit height if larger" ++msgstr "Zum agar pas tinggi gambar bila lebih" ++ ++#: extensions/image_viewer/callbacks.c:45 ++msgid "Undo edit" ++msgstr "Urung sunting" ++ ++#: extensions/image_viewer/callbacks.c:46 ++msgid "Redo edit" ++msgstr "Jadi sunting lagi" ++ ++#: extensions/image_viewer/callbacks.c:48 ++msgid "Scroll left" ++msgstr "Gulir ke kiri" ++ ++#: extensions/image_viewer/callbacks.c:49 ++msgid "Scroll right" ++msgstr "Gulir ke kanan" ++ ++#: extensions/image_viewer/callbacks.c:50 ++msgid "Scroll up" ++msgstr "Gulir naik" ++ ++#: extensions/image_viewer/callbacks.c:51 ++msgid "Scroll down" ++msgstr "Gulir turun" ++ ++#: extensions/image_viewer/callbacks.c:53 ++msgid "Scroll left fast" ++msgstr "Gulir ke kiri dengan cepat" ++ ++#: extensions/image_viewer/callbacks.c:54 ++msgid "Scroll right fast" ++msgstr "Gulir ke kiri dengan cepat" ++ ++#: extensions/image_viewer/callbacks.c:55 ++msgid "Scroll up fast" ++msgstr "Gulir naik dengan cepat" ++ ++#: extensions/image_viewer/callbacks.c:56 ++msgid "Scroll down fast" ++msgstr "Gulir turun dengan cepat" ++ ++#: extensions/image_viewer/callbacks.c:58 ++msgid "Scroll to center" ++msgstr "Gulir ke tengah" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 + msgid "After loading an image:" + msgstr "Setelah memuat gambar:" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +-#: extensions/image_viewer/gth-image-viewer-page.c:1095 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 ++#: extensions/image_viewer/gth-image-viewer-page.c:1138 + msgid "Set to actual size" + msgstr "Tata ke ukuran sebenarnya" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 + msgid "Keep previous zoom" + msgstr "Pertahankan zum" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 +-msgid "Fit to window" +-msgstr "Paskan ke jendela" +- +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 +-#: extensions/image_viewer/gth-image-viewer-page.c:1102 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 ++#: extensions/image_viewer/gth-image-viewer-page.c:1145 + msgid "Fit to window if larger" + msgstr "Paskan ke jendela jika lebih besar" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 + msgid "Fit to width" + msgstr "Pas lebar" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 + msgid "Fit to width if larger" + msgstr "Paskan lebarnya jika lebih besar" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 + msgid "Reset scrollbar positions" + msgstr "Reset posisi bilah penggulung" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 ++msgid "Mouse wheel action:" ++msgstr "Aksi roda tetikus:" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 ++msgctxt "zoom quality" ++msgid "Change image" ++msgstr "Ubah gambar" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 ++msgctxt "zoom quality" ++msgid "Zoom image" ++msgstr "Zum citra" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 + msgid "Zoom quality:" + msgstr "Kualitas _zum:" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 + msgctxt "zoom quality" + msgid "_High" + msgstr "_Tinggi" + +-#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 + msgctxt "zoom quality" + msgid "_Low" + msgstr "_Rendah" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 ++msgid "Transparency:" ++msgstr "Tingkat tembus pandang:" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 ++msgid "Checkered" ++msgstr "Kotak-kotak" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 ++msgid "White" ++msgstr "Putih" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 ++msgid "Gray" ++msgstr "Kelabu" ++ ++#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 ++msgid "Black" ++msgstr "Hitam" ++ ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 + msgid "Automatic" + msgstr "Otomatis" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 + msgid "Fit to height" + msgstr "Pas tinggi" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 + msgid "50%" + msgstr "50%" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 + msgid "100%" + msgstr "100%" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 + msgid "200%" + msgstr "200%" + +-#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 ++#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 + msgid "300%" + msgstr "300%" + +@@ -3384,31 +3568,44 @@ msgstr "300%" + msgid "Histogram" + msgstr "Histogram" + +-#: extensions/image_viewer/gth-image-viewer-page.c:77 ++#: extensions/image_viewer/gth-image-viewer-page.c:83 + msgid "Copy Image" + msgstr "Salin Gambar" + +-#: extensions/image_viewer/gth-image-viewer-page.c:78 ++#: extensions/image_viewer/gth-image-viewer-page.c:84 + msgid "Paste Image" + msgstr "Salin Gambar" + +-#: extensions/image_viewer/gth-image-viewer-page.c:1130 ++#: extensions/image_viewer/gth-image-viewer-page.c:1173 + msgid "Apply the embedded color profile" + msgstr "Terapkan profil warna yang tertanam" + +-#: extensions/image_viewer/gth-image-viewer-page.c:1145 ++#: extensions/image_viewer/gth-image-viewer-page.c:1188 + msgid "Next frame" + msgstr "Bingkai selanjutnya" + +-#: extensions/image_viewer/gth-image-viewer-page.c:1764 ++#: extensions/image_viewer/gth-image-viewer-page.c:1195 ++msgid "Transparency" ++msgstr "Tingkat tembus pandang" ++ ++#: extensions/image_viewer/gth-image-viewer-page.c:1803 + msgid "Save Image" + msgstr "Simpan Gambar" + +-#: extensions/image_viewer/gth-image-viewer-page.c:2373 ++#: extensions/image_viewer/gth-image-viewer-page.c:2519 + msgid "Loading the original image" + msgstr "Memuat gambar asli" + +-#: extensions/image_viewer/preferences.c:117 ++#: extensions/image_viewer/main.c:36 ++msgid "Scroll Image" ++msgstr "Gulir Citra" ++ ++#: extensions/image_viewer/main.c:37 ++msgid "Image Editor" ++msgstr "Penyunting Gambar" ++ ++#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 ++#: gthumb/gth-shortcuts-window.c:40 + msgid "Viewer" + msgstr "Penampil" + +@@ -3480,38 +3677,38 @@ msgstr "tahun" + msgid "custom format" + msgstr "format ubahan" + +-#: extensions/importer/gth-import-task.c:429 +-#: extensions/importer/gth-import-task.c:464 +-#: extensions/importer/gth-import-task.c:674 ++#: extensions/importer/gth-import-task.c:431 ++#: extensions/importer/gth-import-task.c:466 ++#: extensions/importer/gth-import-task.c:678 + msgid "Importing files" + msgstr "Mengimpor berkas" + +-#: extensions/importer/gth-import-task.c:623 ++#: extensions/importer/gth-import-task.c:627 + msgid "No file imported" + msgstr "Tak ada berkas yang diimpor" + +-#: extensions/importer/gth-import-task.c:624 ++#: extensions/importer/gth-import-task.c:628 + msgid "The selected files are already present in the destination." + msgstr "Berkas yang dipilih telah ada di tujuan." + +-#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 ++#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 + msgid "Could not delete the files" + msgstr "Tak bisa menghapus berkas" + +-#: extensions/importer/gth-import-task.c:648 ++#: extensions/importer/gth-import-task.c:652 + msgid "Delete operation not supported." + msgstr "Operasi penghapusan tak didukung." + +-#: extensions/importer/gth-import-task.c:735 ++#: extensions/importer/gth-import-task.c:739 + msgid "Last imported" + msgstr "Terakhir diimpor" + +-#: extensions/importer/gth-import-task.c:839 ++#: extensions/importer/gth-import-task.c:843 + msgid "No file specified." + msgstr "Tak ada berkas yang dinyatakan." + + #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. +-#: extensions/importer/gth-import-task.c:876 ++#: extensions/importer/gth-import-task.c:880 + #, c-format + msgid "" + "Not enough free space in “%s”.\n" +@@ -3520,7 +3717,8 @@ msgstr "" + "Tak cukup ruang kosong dalam \"%s\".\n" + "Diperlukan %s tapi hanya tersedia %s." + +-#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 ++#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 ++#: extensions/list_tools/main.c:31 + msgid "Tools" + msgstr "Perkakas" + +@@ -3608,49 +3806,53 @@ msgstr "%quote{ teks }" + msgid "Quote the text " + msgstr "Kutip teks " + +-#: extensions/list_tools/data/ui/script-editor.ui:534 ++#: extensions/list_tools/data/ui/script-editor.ui:522 ++msgid "The current date and time" ++msgstr "Tanggal dan waktu saat ini" ++ ++#: extensions/list_tools/data/ui/script-editor.ui:568 + msgid "_Command:" + msgstr "_Perintah:" + +-#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 ++#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 + msgid "Personalize…" + msgstr "Personalisasikan…" + +-#: extensions/list_tools/dlg-personalize-scripts.c:252 ++#: extensions/list_tools/dlg-personalize-scripts.c:250 + msgid "Script" + msgstr "Skrip" + +-#: extensions/list_tools/dlg-personalize-scripts.c:266 +-#: gthumb/gth-accel-button.c:229 ++#: extensions/list_tools/dlg-personalize-scripts.c:264 ++#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 + msgid "Shortcut" + msgstr "Pintas" + +-#: extensions/list_tools/dlg-personalize-scripts.c:280 ++#: extensions/list_tools/dlg-personalize-scripts.c:278 + #: gthumb/dlg-personalize-filters.c:252 + msgid "Show" + msgstr "Tampilkan" + +-#: extensions/list_tools/dlg-personalize-scripts.c:350 ++#: extensions/list_tools/dlg-personalize-scripts.c:368 + msgid "Could not save the script" + msgstr "Tidak dapat menyimpan skrip" + +-#: extensions/list_tools/dlg-personalize-scripts.c:401 ++#: extensions/list_tools/dlg-personalize-scripts.c:448 + msgid "New Command" + msgstr "Perintah Baru" + +-#: extensions/list_tools/dlg-personalize-scripts.c:428 ++#: extensions/list_tools/dlg-personalize-scripts.c:475 + msgid "Edit Command" + msgstr "Sunting Perintah" + +-#: extensions/list_tools/dlg-personalize-scripts.c:456 ++#: extensions/list_tools/dlg-personalize-scripts.c:505 + msgid "Are you sure you want to delete the selected command?" + msgstr "Anda yakin akan menghapus perintah yang dipilih?" + +-#: extensions/list_tools/dlg-personalize-scripts.c:544 ++#: extensions/list_tools/dlg-personalize-scripts.c:605 + msgid "Commands" + msgstr "Perintah" + +-#: extensions/list_tools/gth-script-editor-dialog.c:247 ++#: extensions/list_tools/gth-script-editor-dialog.c:279 + #, c-format + msgid "No command specified" + msgstr "Perintah tak dinyatakan" +@@ -3660,18 +3862,18 @@ msgstr "Perintah tak dinyatakan" + msgid "Command exited abnormally with status %d" + msgstr "Perintah berakhir tak normal dengan status %d" + +-#: extensions/list_tools/gth-script.c:481 ++#: extensions/list_tools/gth-script.c:502 + msgid "Enter a value:" + msgstr "Masukkan nilai:" + +-#: extensions/list_tools/gth-script.c:715 ++#: extensions/list_tools/gth-script.c:753 + #: extensions/webalbums/gth-web-exporter.c:561 + #: extensions/webalbums/gth-web-exporter.c:573 + #: extensions/webalbums/gth-web-exporter.c:581 + msgid "Malformed command" + msgstr "Perintah salah bentuk" + +-#: extensions/list_tools/gth-script.c:770 ++#: extensions/list_tools/gth-script.c:808 + msgid "_Skip" + msgstr "_Lewati" + +@@ -3721,7 +3923,7 @@ msgid "A_ccounts:" + msgstr "A_kun:" + + #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 +-#: gthumb/gth-folder-tree.c:1080 ++#: gthumb/gth-folder-tree.c:1160 + msgid "Loading…" + msgstr "Memuat…" + +@@ -3758,7 +3960,7 @@ msgid "Getting account information" + msgstr "Mengambil informasi akun" + + #: extensions/photo_importer/actions.c:71 +-#: extensions/photo_importer/dlg-photo-importer.c:626 ++#: extensions/photo_importer/dlg-photo-importer.c:628 + msgid "Choose a folder" + msgstr "Pilih folder" + +@@ -3822,11 +4024,11 @@ msgstr "Tak bisa memuat folder" + + #: extensions/photo_importer/dlg-photo-importer.c:356 + #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 +-#: gthumb/gth-folder-tree.c:1107 ++#: gthumb/gth-folder-tree.c:1186 + msgid "(Empty)" + msgstr "(Kosong)" + +-#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 ++#: extensions/photo_importer/dlg-photo-importer.c:361 + msgid "Getting the folder content…" + msgstr "Mengambil isi folder…" + +@@ -3834,11 +4036,11 @@ msgstr "Mengambil isi folder…" + msgid "Empty" + msgstr "Kosong" + +-#: extensions/photo_importer/dlg-photo-importer.c:592 ++#: extensions/photo_importer/dlg-photo-importer.c:594 + msgid "Import from Removable Device" + msgstr "Impor dari Perangkat Lepas Pasang" + +-#: extensions/photo_importer/dlg-photo-importer.c:624 ++#: extensions/photo_importer/dlg-photo-importer.c:626 + msgid "Import from Folder" + msgstr "Impor dari Folder" + +@@ -3954,6 +4156,7 @@ msgid "Cas_e:" + msgstr "Huruf B_esar Kecil:" + + #: extensions/rename_series/data/ui/rename-series.ui:83 ++#: gthumb/gth-browser-actions-entries.h:94 + msgid "Help" + msgstr "Bantuan" + +@@ -4050,28 +4253,28 @@ msgstr "Tak bisa menyimpan templat" + msgid "Edit Template" + msgstr "Sunting Templat" + +-#: extensions/rename_series/dlg-rename-series.c:854 +-#: gthumb/gth-folder-tree.c:1913 ++#: extensions/rename_series/dlg-rename-series.c:860 ++#: gthumb/gth-folder-tree.c:1974 + msgid "_Rename" + msgstr "_Ganti nama" + +-#: extensions/rename_series/dlg-rename-series.c:871 ++#: extensions/rename_series/dlg-rename-series.c:877 + msgid "Old Name" + msgstr "Nama Lama" + +-#: extensions/rename_series/dlg-rename-series.c:882 ++#: extensions/rename_series/dlg-rename-series.c:888 + msgid "New Name" + msgstr "Nama Baru" + +-#: extensions/rename_series/dlg-rename-series.c:960 ++#: extensions/rename_series/dlg-rename-series.c:966 + msgid "Keep original case" + msgstr "Pertahankan huruf besar kecil seperti semula" + +-#: extensions/rename_series/dlg-rename-series.c:961 ++#: extensions/rename_series/dlg-rename-series.c:967 + msgid "Convert to lower-case" + msgstr "Ubah ke huruf kecil" + +-#: extensions/rename_series/dlg-rename-series.c:962 ++#: extensions/rename_series/dlg-rename-series.c:968 + msgid "Convert to upper-case" + msgstr "Ubah ke huruf besar" + +@@ -4108,15 +4311,15 @@ msgid "_Preserve original aspect ratios" + msgstr "_Pertahankan rasio aspek semula" + + #: extensions/resize_images/data/ui/resize-images.ui:324 +-#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 ++#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 + msgid "Format" + msgstr "Format" + +-#: extensions/resize_images/dlg-resize-images.c:344 ++#: extensions/resize_images/dlg-resize-images.c:341 + msgid "Resize Images" + msgstr "Ubah Ukuran Gambar" + +-#: extensions/resize_images/dlg-resize-images.c:430 ++#: extensions/resize_images/dlg-resize-images.c:427 + msgid "Keep the original format" + msgstr "Pertahankan format asli" + +@@ -4128,8 +4331,8 @@ msgstr "Ubah ukuran gambar" + msgid "Resize series of images." + msgstr "Ubah ukuran seri gambar." + +-#: extensions/search/actions.c:50 extensions/search/actions.c:123 +-#: extensions/search/actions.c:129 ++#: extensions/search/actions.c:50 extensions/search/actions.c:122 ++#: extensions/search/actions.c:128 + msgid "Could not perform the search" + msgstr "Tak bisa melakukan pencarian" + +@@ -4137,48 +4340,48 @@ msgstr "Tak bisa melakukan pencarian" + msgid "Search Result" + msgstr "Hasil Cari" + +-#: extensions/search/actions.c:79 ++#: extensions/search/actions.c:78 + msgid "Find" + msgstr "Cari" + +-#: extensions/search/callbacks.c:69 ++#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 + msgid "Find files" + msgstr "Cari berkas" + +-#: extensions/search/callbacks.c:103 ++#: extensions/search/callbacks.c:113 + msgid "Search again" + msgstr "Cari lagi" + + #. Translators: This is not a verb, it's a name as in "the search properties". +-#: extensions/search/callbacks.c:146 ++#: extensions/search/callbacks.c:169 + #: extensions/search/search.extension.desktop.in.in:3 + msgid "Search" + msgstr "Cari" + +-#: extensions/search/data/ui/search-editor.ui:112 +-msgid "Rules:" +-msgstr "Aturan:" +- +-#: extensions/search/gth-search-editor.c:114 ++#: extensions/search/gth-search-editor.c:117 + #: gthumb/gth-filter-editor-dialog.c:167 + msgid "all the following rules" + msgstr "semua aturan berikut" + +-#: extensions/search/gth-search-editor.c:115 ++#: extensions/search/gth-search-editor.c:118 + #: gthumb/gth-filter-editor-dialog.c:168 + msgid "any of the following rules" + msgstr "sebarang aturan berikut" + +-#: extensions/search/gth-search-task.c:181 ++#: extensions/search/gth-search-source-selector.c:130 ++msgid "Add another location" ++msgstr "Tambahkan lokasi lain" ++ ++#: extensions/search/gth-search-task.c:194 + #, c-format + msgid "Files found so far: %s" + msgstr "Berkas yang ditemukan sampai kini: %s" + +-#: extensions/search/gth-search-task.c:272 ++#: extensions/search/gth-search-task.c:340 + msgid "Searching…" + msgstr "Mencari…" + +-#: extensions/search/gth-search-task.c:279 ++#: extensions/search/gth-search-task.c:347 + msgid "Cancel the operation" + msgstr "Batalkan operasi" + +@@ -4190,16 +4393,32 @@ msgstr "Perkakas pencarian berkas." + msgid "edit-find" + msgstr "edit-find" + +-#: extensions/selections/callbacks.c:55 ++#. Not real actions, used in the shorcut window for documentation. ++#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 ++#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 ++msgid "Add to selection" ++msgstr "T_ambahkan ke Pilihan" ++ ++#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 ++#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 ++msgid "Remove from selection" ++msgstr "Hapus dari pilihan" ++ ++#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 ++#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 ++msgid "Show selection" ++msgstr "Tampilkan seleksi" ++ ++#: extensions/selections/callbacks.c:83 + msgid "Remove from Selection" + msgstr "Buang dari Pilihan" + +-#: extensions/selections/callbacks.c:100 ++#: extensions/selections/callbacks.c:128 + #, c-format + msgid "Show selection %d" + msgstr "Tampilkan seleksi %d" + +-#: extensions/selections/callbacks.c:339 ++#: extensions/selections/callbacks.c:365 + #, c-format + msgid "" + "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." +@@ -4213,6 +4432,7 @@ msgid "Selection %d" + msgstr "Seleksi %d" + + #: extensions/selections/gth-selections-manager.c:231 ++#: extensions/selections/main.c:33 + #: extensions/selections/selections.extension.desktop.in.in:3 + msgid "Selections" + msgstr "Pilihan" +@@ -4225,52 +4445,69 @@ msgstr "Pemilihan berkas tingkat lanjut. + msgid "emblem-flag-gray" + msgstr "emblem-flag-gray" + +-#: extensions/slideshow/callbacks.c:51 +-msgid "Presentation" +-msgstr "Presentasi" ++#: extensions/slideshow/callbacks.c:40 ++msgid "Start presentation" ++msgstr "Mulai presentasi" ++ ++#: extensions/slideshow/callbacks.c:41 ++msgid "Terminate presentation" ++msgstr "Akhiri presentation" ++ ++#: extensions/slideshow/callbacks.c:42 ++msgid "Pause/Resume presentation" ++msgstr "Jeda/lanjutkan presentasi" ++ ++#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 ++msgid "Show next file" ++msgstr "Tampilkan berkas berikutnya" ++ ++#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 ++msgid "Show previous file" ++msgstr "Tampilkan berkas sebelumnya" + +-#: extensions/slideshow/callbacks.c:348 ++#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 + #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 +-#: extensions/slideshow/preferences.c:162 ++#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 + #: extensions/slideshow/slideshow.extension.desktop.in.in:3 +-msgid "Slideshow" +-msgstr "Pertunjukan Slide" ++#: gthumb/gth-shortcuts-window.c:41 ++msgid "Presentation" ++msgstr "Presentasi" + + #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 + msgid "_Personalize" + msgstr "_Personalisasi" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 + msgid "_Transition effect:" + msgstr "Efek _transisi:" + + #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 + msgid "_Change automatically, every" + msgstr "_Ubah otomatis setiap" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 + msgctxt "Every x seconds" + msgid "seconds" + msgstr "detik" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 + msgid "_Restart when finished" + msgstr "Sta_rt ulang setelah selesai" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 + msgid "R_andom order" + msgstr "Urutan _acak" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 + msgid "Playlist" + msgstr "Daftar Main" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 + msgid "Add files to the playlist" + msgstr "Tambahkan berkas ke daftar main" + +-#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 ++#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 + msgid "Remove the selected files" + msgstr "Hapus berkas yang dipilih" + +@@ -4286,50 +4523,67 @@ msgstr "Berkas suara" + msgid "Random" + msgstr "Acak" + +-#: extensions/slideshow/gth-slideshow.c:284 +-msgid "Playing slideshow" +-msgstr "Putar slideshow" ++#: extensions/slideshow/gth-slideshow.c:237 ++msgid "Playing a presentation" ++msgstr "Memutar suatu presentasi" + +-#: extensions/slideshow/main.c:297 ++#: extensions/slideshow/main.c:303 + msgid "Push from right" + msgstr "Dorong dari kanan" + +-#: extensions/slideshow/main.c:303 ++#: extensions/slideshow/main.c:309 + msgid "Push from bottom" + msgstr "Dorong dari dasar" + +-#: extensions/slideshow/main.c:309 ++#: extensions/slideshow/main.c:315 + msgid "Slide from right" + msgstr "Geser dari kanan" + +-#: extensions/slideshow/main.c:315 ++#: extensions/slideshow/main.c:321 + msgid "Slide from bottom" + msgstr "Geser dari dasar" + +-#: extensions/slideshow/main.c:321 ++#: extensions/slideshow/main.c:327 + msgid "Fade in" + msgstr "Memudar" + +-#: extensions/slideshow/main.c:327 ++#: extensions/slideshow/main.c:333 + msgid "Flip page" + msgstr "Balik halaman" + +-#: extensions/slideshow/main.c:333 ++#: extensions/slideshow/main.c:339 + msgid "Cube from right" + msgstr "Kubus dari kanan" + +-#: extensions/slideshow/main.c:339 ++#: extensions/slideshow/main.c:345 + msgid "Cube from bottom" + msgstr "Kubus dari dasar" + + #: extensions/slideshow/slideshow.extension.desktop.in.in:4 +-msgid "View images as a slideshow." +-msgstr "Tilik gambar sebagai pertunjukan slide." ++msgid "Play a presentation of images." ++msgstr "Meutar presentasi gambar." + + #: extensions/slideshow/slideshow.extension.desktop.in.in:8 + msgid "x-office-presentation" + msgstr "x-office-presentation" + ++#: extensions/terminal/actions.c:53 ++#: extensions/terminal/terminal.extension.desktop.in.in:3 ++msgid "Terminal" ++msgstr "Terminal" ++ ++#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 ++msgid "Open in Terminal" ++msgstr "Buka dalam Terminal" ++ ++#: extensions/terminal/terminal.extension.desktop.in.in:4 ++msgid "Open a folder in a terminal" ++msgstr "Membuka folder di terminal" ++ ++#: extensions/terminal/terminal.extension.desktop.in.in:8 ++msgid "utilities-terminal" ++msgstr "utilities-terminal" ++ + #: extensions/webalbums/callbacks.c:48 + msgid "_Web Album…" + msgstr "Album _Web…" +@@ -4351,14 +4605,6 @@ msgstr "Gambar %d dari %d" + msgid "Index" + msgstr "Indeks" + +-#: extensions/webalbums/data/albumthemes/text.h:30 +-msgid "Next" +-msgstr "Selanjutnya" +- +-#: extensions/webalbums/data/albumthemes/text.h:32 +-msgid "Previous" +-msgstr "Sebelum" +- + #: extensions/webalbums/data/albumthemes/text.h:33 + #, c-format + msgid "View page %d" +@@ -4442,36 +4688,36 @@ msgstr "Atribut Gambar" + msgid "Web Album" + msgstr "Album Web" + +-#: extensions/webalbums/gth-web-exporter.c:1803 ++#: extensions/webalbums/gth-web-exporter.c:1787 + msgid "Could not show the destination" + msgstr "Tidak dapat meampilkan tujuan" + +-#: extensions/webalbums/gth-web-exporter.c:1839 ++#: extensions/webalbums/gth-web-exporter.c:1823 + msgid "The album has been created successfully." + msgstr "Album telah sukses dibuat." + +-#: extensions/webalbums/gth-web-exporter.c:2107 +-#: extensions/webalbums/gth-web-exporter.c:2135 ++#: extensions/webalbums/gth-web-exporter.c:2092 ++#: extensions/webalbums/gth-web-exporter.c:2120 + msgid "Saving thumbnails" + msgstr "Menyimpan sketsa" + +-#: extensions/webalbums/gth-web-exporter.c:2163 ++#: extensions/webalbums/gth-web-exporter.c:2148 + msgid "Saving HTML pages: Images" + msgstr "Menyimpan halaman HTML: Gambar" + +-#: extensions/webalbums/gth-web-exporter.c:2221 ++#: extensions/webalbums/gth-web-exporter.c:2206 + msgid "Saving HTML pages: Indexes" + msgstr "Simpan halaman HTML: Indeks" + +-#: extensions/webalbums/gth-web-exporter.c:2506 ++#: extensions/webalbums/gth-web-exporter.c:2491 + msgid "Copying original images" + msgstr "Menyaling gambar asli" + +-#: extensions/webalbums/gth-web-exporter.c:2967 ++#: extensions/webalbums/gth-web-exporter.c:2958 + msgid "Could not find the style folder" + msgstr "Tak bisa menemukan folder gaya" + +-#: extensions/webalbums/gth-web-exporter.c:3005 ++#: extensions/webalbums/gth-web-exporter.c:2996 + msgid "Could not create a temporary folder" + msgstr "Tidak dapat membuat folder sementara" + +@@ -4483,9 +4729,9 @@ msgstr "Album Web" + msgid "Create static web albums." + msgstr "Buat album web statik." + +-#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 +-#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 +-#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 ++#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 ++#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 ++#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 + #, c-format + msgid "Could not load the position “%s”" + msgstr "Tidak dapat memuat posisi \"%s\"" +@@ -4516,20 +4762,24 @@ msgstr "Tapis" + + #. add the page to the preferences dialog + #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 ++#: gthumb/gth-shortcuts-window.c:39 + msgid "Browser" + msgstr "Peramban" + +-#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 ++#: gthumb/dlg-preferences-extensions.c:61 ++msgctxt "Extensions" + msgid "All" + msgstr "Semua" + + #: gthumb/dlg-preferences-extensions.c:62 ++msgctxt "Extensions" + msgid "Enabled" +-msgstr "Diaktifkan" ++msgstr "Difungsikan" + + #: gthumb/dlg-preferences-extensions.c:63 ++msgctxt "Extensions" + msgid "Disabled" +-msgstr "Dimatikan" ++msgstr "Dinonaktifkan" + + #: gthumb/dlg-preferences-extensions.c:66 + msgid "Viewers" +@@ -4565,65 +4815,99 @@ msgid "Could not deactivate the extensio + msgstr "Tidak dapat menonaktifkan ekstensi" + + #: gthumb/dlg-preferences-extensions.c:491 +-msgid "gthumb development team" +-msgstr "tim pengembang gthumb" ++msgid "gThumb Development Team" ++msgstr "Tim pengembangan gThumb" + + #. add the page to the preferences dialog +-#: gthumb/dlg-preferences-extensions.c:666 ++#: gthumb/dlg-preferences-extensions.c:664 + msgid "Extensions" + msgstr "Ekstensi" + +-#: gthumb/dlg-preferences-extensions.c:715 ++#: gthumb/dlg-preferences-extensions.c:713 + msgid "Restart required" + msgstr "Perlu restart" + +-#: gthumb/dlg-preferences-extensions.c:716 ++#: gthumb/dlg-preferences-extensions.c:714 + msgid "You need to restart gthumb for these changes to take effect" + msgstr "Anda perlu memulai ulang gthumb agar perubahan ini berdampak" + +-#: gthumb/dlg-preferences-extensions.c:718 ++#: gthumb/dlg-preferences-extensions.c:716 + msgid "_Restart" + msgstr "_Restart" + ++#: gthumb/dlg-preferences-shortcuts.c:294 ++#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 ++msgid "Revert" ++msgstr "Balikkan" ++ ++#: gthumb/dlg-preferences-shortcuts.c:367 ++msgid "Do you want to revert all the changes and use the default shortcuts?" ++msgstr "" ++"Apakah Anda ingin mengembalikan semua perubahan dan menggunakan pintasan " ++"baku?" ++ ++#: gthumb/dlg-preferences-shortcuts.c:540 ++msgctxt "Shortcuts" ++msgid "All" ++msgstr "Semua" ++ ++#: gthumb/dlg-preferences-shortcuts.c:546 ++msgctxt "Shortcuts" ++msgid "Modified" ++msgstr "Diubah" ++ ++#. add the page to the preferences dialog ++#: gthumb/dlg-preferences-shortcuts.c:575 ++msgid "Shortcuts" ++msgstr "Pintasan" ++ + #: gthumb/dlg-sort-order.c:113 + msgid "Sort By" + msgstr "Urut Berdasarkan" + + #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB +-#: gthumb/gio-utils.c:1383 ++#: gthumb/gio-utils.c:1059 + #, c-format + msgid "%s of %s" + msgstr "%s dari %s" + +-#: gthumb/gio-utils.c:1472 ++#: gthumb/gio-utils.c:1148 + #, c-format + msgid "Moving “%s” to “%s”" + msgstr "Memindahkan \"%s\" ke \"%s\"" + +-#: gthumb/gio-utils.c:1474 ++#: gthumb/gio-utils.c:1150 + #, c-format + msgid "Copying “%s” to “%s”" + msgstr "Menyalin \"%s\" ke \"%s\"" + +-#: gthumb/gio-utils.c:1885 ++#: gthumb/gio-utils.c:1561 + msgid "Moving files" + msgstr "Memindah berkas" + +-#: gthumb/gio-utils.c:1885 ++#: gthumb/gio-utils.c:1561 + msgid "Copying files" + msgstr "Menyalin berkas" + +-#: gthumb/gio-utils.c:1886 ++#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 + msgid "Getting file information" + msgstr "Mengambil informasi berkas" + ++#: gthumb/gio-utils.c:1728 ++msgid "Deleting files" ++msgstr "Menghapus berkas" ++ ++#: gthumb/gio-utils.c:1869 ++msgid "Moving files to trash" ++msgstr "Memindah berkas ke tong sampah" ++ + #. hour:minutes:seconds + #. Translators: This is a time format, like "9∶05∶02" for 9 + #. * hours, 5 minutes, and 2 seconds. You may change "∶" to + #. * the separator that your locale uses or use "%Id" instead + #. * of "%d" if your locale uses localized digits. + #. +-#: gthumb/glib-utils.c:3298 ++#: gthumb/glib-utils.c:2055 + #, c-format + msgctxt "long time format" + msgid "%d∶%02d∶%02d" +@@ -4635,17 +4919,17 @@ msgstr "%d:%02d:%02d" + #. * separator that your locale uses or use "%Id" instead of + #. * "%d" if your locale uses localized digits. + #. +-#: gthumb/glib-utils.c:3307 ++#: gthumb/glib-utils.c:2064 + #, c-format + msgctxt "short time format" + msgid "%d∶%02d" + msgstr "%d:%02d" + +-#: gthumb/gth-accel-button.c:239 ++#: gthumb/gth-accel-dialog.c:121 + msgid "Press a combination of keys to use as shortcut." + msgstr "Tekan kombinasi tombol untuk digunakan sebagai pintasan." + +-#: gthumb/gth-accel-button.c:240 ++#: gthumb/gth-accel-dialog.c:122 + msgid "Press Esc to cancel" + msgstr "Tekan Esc untuk membatalkan" + +@@ -4658,8 +4942,8 @@ msgid "Start in fullscreen mode" + msgstr "Mulai dengan modus fullscreen" + + #: gthumb/gth-application.c:60 +-msgid "Automatically start a slideshow" +-msgstr "Otomatis mulai sebuah slideshow" ++msgid "Automatically start a presentation" ++msgstr "Otomatis mulai sebuah presentasi" + + #: gthumb/gth-application.c:64 + msgid "Automatically import digital camera photos" +@@ -4669,11 +4953,11 @@ msgstr "Otomatis impor foto kamera digit + msgid "Show version" + msgstr "Tampilkan versi" + +-#: gthumb/gth-application.c:198 ++#: gthumb/gth-application.c:171 + msgid "— Image browser and viewer" + msgstr "— Peramban dan penilik gambar" + +-#: gthumb/gth-browser-actions-callbacks.c:127 ++#: gthumb/gth-browser-actions-callbacks.c:100 + msgid "" + "gThumb 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 " +@@ -4685,7 +4969,7 @@ msgstr "" + "dipublikasikan oleh Free Software Foundation; boleh Lisensi versi 3 atau " + "(sesuai pilihan Anda) versi selanjutnya." + +-#: gthumb/gth-browser-actions-callbacks.c:131 ++#: gthumb/gth-browser-actions-callbacks.c:104 + msgid "" + "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " + "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " +@@ -4697,7 +4981,7 @@ msgstr "" + "KECOCOKAN UNTUK TUJUAN TERTENTU. Lihat GNU General Public License untuk " + "rincian lebih lanjut." + +-#: gthumb/gth-browser-actions-callbacks.c:135 ++#: gthumb/gth-browser-actions-callbacks.c:108 + msgid "" + "You should have received a copy of the GNU General Public License along with " + "gThumb. If not, see http://www.gnu.org/licenses/." +@@ -4705,119 +4989,195 @@ msgstr "" + "Anda mestinya menerima salinan GNU General Public License bersamaan dengan " + "gThumb. Jika tidak, lihat ." + +-#: gthumb/gth-browser-actions-callbacks.c:155 ++#: gthumb/gth-browser-actions-callbacks.c:127 + msgid "An image viewer and browser for GNOME." + msgstr "Sebuah penampil dan browser gambar untuk GNOME." + +-#: gthumb/gth-browser-actions-callbacks.c:158 ++#: gthumb/gth-browser-actions-callbacks.c:130 + msgid "translator-credits" + msgstr "" + "Abdul Hamid.A.N , 2004.\n" + "Andika Triwidada , 2010-2014, 2016, 2017.\n" + "Kukuh Syafaat , 2017, 2018, 2019." + +-#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 ++#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 ++msgid "New Window" ++msgstr "Jendela Baru" ++ ++#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 + msgid "Keyboard Shortcuts" + msgstr "Pintasan Papan Ketik" + +-#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 +-#: gthumb/resources/app-menu.ui:24 +-msgid "_Help" +-msgstr "_Bantuan" ++#: gthumb/gth-browser-actions-entries.h:96 ++msgid "Quit" ++msgstr "Keluar" ++ ++#: gthumb/gth-browser-actions-entries.h:99 ++msgid "Show browser" ++msgstr "Tampilkan peramban" ++ ++#: gthumb/gth-browser-actions-entries.h:100 ++msgid "Close window" ++msgstr "Menutup jendela" ++ ++#: gthumb/gth-browser-actions-entries.h:102 ++msgid "Open location" ++msgstr "Buka lokasi" ++ ++#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 ++#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 ++#: gthumb/resources/file-menu.ui:7 ++msgid "Fullscreen" ++msgstr "Layar Penuh" + +-#: gthumb/gth-browser-actions-entries.h:88 +-msgid "_About gThumb" +-msgstr "Tent_ang gThumb" ++#: gthumb/gth-browser-actions-entries.h:104 ++msgid "Revert image to saved" ++msgstr "Pulihkan citra ke yang tersimpan" ++ ++#: gthumb/gth-browser-actions-entries.h:105 ++msgid "Sidebar" ++msgstr "Bilah sisi" ++ ++#: gthumb/gth-browser-actions-entries.h:106 ++msgid "Statusbar" ++msgstr "Bilah Status" ++ ++#: gthumb/gth-browser-actions-entries.h:107 ++msgid "Thumbnails list" ++msgstr "Daftar gambar mini" ++ ++#: gthumb/gth-browser-actions-entries.h:109 ++msgid "Load previous location" ++msgstr "Muat lokasi sebelumnya" ++ ++#: gthumb/gth-browser-actions-entries.h:110 ++msgid "Load next location" ++msgstr "Muat lokasi berikutnya" ++ ++#: gthumb/gth-browser-actions-entries.h:111 ++msgid "Load parent folder" ++msgstr "Muat folder induk" ++ ++#: gthumb/gth-browser-actions-entries.h:112 ++msgid "Load home" ++msgstr "Muat rumah" ++ ++#: gthumb/gth-browser-actions-entries.h:113 ++msgid "Reload location" ++msgstr "Muat ulang lokasi" ++ ++#: gthumb/gth-browser-actions-entries.h:114 ++msgid "Show/Hide hidden files" ++msgstr "Tampilkan/sembunyikan berkas tersembunyi" ++ ++#: gthumb/gth-browser-actions-entries.h:115 ++msgid "Change sorting order" ++msgstr "Ubah urutan" ++ ++#: gthumb/gth-browser-actions-entries.h:119 ++msgid "Show first file" ++msgstr "Tampilkan berkas pertama" ++ ++#: gthumb/gth-browser-actions-entries.h:120 ++msgid "Show last file" ++msgstr "Tampilkan berkas terakhir" ++ ++#: gthumb/gth-browser-actions-entries.h:122 ++msgid "Image tools" ++msgstr "Alat gambar" ++ ++#: gthumb/gth-browser-actions-entries.h:123 ++msgid "File properties" ++msgstr "Properti berkas" ++ ++#: gthumb/gth-browser-actions-entries.h:125 ++msgid "Select all" ++msgstr "Pilih semua" ++ ++#: gthumb/gth-browser-actions-entries.h:126 ++msgid "Select none" ++msgstr "Pilih tak satupun" + +-#: gthumb/gth-browser.c:381 ++#: gthumb/gth-browser.c:408 + msgid "[modified]" + msgstr "[diubah]" + +-#: gthumb/gth-browser.c:833 ++#: gthumb/gth-browser.c:873 + #, c-format + msgid "%d file selected (%s)" + msgid_plural "%d files selected (%s)" + msgstr[0] "%d berkas dipilih (%s)" + msgstr[1] "%d berkas dipilih (%s)" + +-#: gthumb/gth-browser.c:868 ++#: gthumb/gth-browser.c:908 + #, c-format + msgid "%s of free space" + msgstr "%s dari ruang bebas" + +-#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 ++#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 + #, c-format + msgid "No suitable module found for %s" + msgstr "Tak ditemukan modul yang cocok bagi %s" + +-#: gthumb/gth-browser.c:1931 ++#: gthumb/gth-browser.c:1907 + #, c-format + msgid "Save changes to file “%s”?" + msgstr "Simpan perubahan ke berkas \"%s\"?" + +-#: gthumb/gth-browser.c:1936 ++#: gthumb/gth-browser.c:1912 + msgid "If you don’t save, changes to the file will be permanently lost." + msgstr "Bila Anda tidak menyimpan, perubahan ke berkas akan hilang selamanya." + +-#: gthumb/gth-browser.c:1937 ++#: gthumb/gth-browser.c:1913 + msgid "Do _Not Save" + msgstr "Janga_n Simpan" + +-#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 ++#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 + msgid "Accept" + msgstr "Terima" + +-#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 ++#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 + msgid "_Close" + msgstr "_Tutup" + +-#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 ++#: gthumb/gth-browser.c:2939 + msgid "Could not change name" + msgstr "Tidak dapat mengubah nama" + +-#: gthumb/gth-browser.c:3470 ++#: gthumb/gth-browser.c:3436 + msgid "Modified" + msgstr "Diubah" + +-#: gthumb/gth-browser.c:4546 ++#: gthumb/gth-browser.c:4516 + msgid "Go to the previous visited location" + msgstr "Pergi ke lokasi sebelumnya yang telah dikunjungi" + +-#: gthumb/gth-browser.c:4552 ++#: gthumb/gth-browser.c:4522 + msgid "Go to the next visited location" + msgstr "Pergi ke lokasi selanjutnya yang telah dikunjungi" + +-#: gthumb/gth-browser.c:4560 ++#: gthumb/gth-browser.c:4530 + msgid "History" + msgstr "Riwayat" + +-#: gthumb/gth-browser.c:4574 ++#: gthumb/gth-browser.c:4544 + msgid "View the folders" + msgstr "Tampilkan folder" + +-#: gthumb/gth-browser.c:4589 ++#: gthumb/gth-browser.c:4559 + msgid "Edit file" + msgstr "Sunting berkas" + +-#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 +-#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 +-msgid "Fullscreen" +-msgstr "Layar Penuh" +- +-#: gthumb/gth-browser.c:6583 ++#: gthumb/gth-browser.c:6570 + #, c-format + msgid "File type not supported" + msgstr "Jenis berkas tidak didukung" + +-#: gthumb/gth-browser.c:6626 ++#: gthumb/gth-browser.c:6613 + #, c-format + msgid "No suitable module found" + msgstr "Tak ditemukan modul yang cocok" + +-#: gthumb/gth-delete-task.c:67 +-msgid "Deleting files" +-msgstr "Menghapus berkas" +- + #: gthumb/gth-extensions.c:206 + #, c-format + msgid "Could not open the module “%s”: %s" +@@ -4836,11 +5196,11 @@ msgstr "Semua Berkas Yang Didukung" + msgid "_Show Format Options" + msgstr "Tampilklan Op_si Format" + +-#: gthumb/gth-file-source-vfs.c:227 ++#: gthumb/gth-file-source-vfs.c:219 + msgid "Computer" + msgstr "Komputer" + +-#: gthumb/gth-file-source-vfs.c:785 ++#: gthumb/gth-file-source-vfs.c:773 + msgid "" + "The files cannot be moved to the Trash. Do you want to delete them " + "permanently?" +@@ -4848,16 +5208,16 @@ msgstr "" + "Berkas tak bisa dipindah ke Tong Sampah. Apakah Anda ingin menghapusnya " + "secara permanen?" + +-#: gthumb/gth-file-source-vfs.c:795 ++#: gthumb/gth-file-source-vfs.c:784 + msgid "Could not move the files to the Trash" + msgstr "Tak bisa memindah berkas ke Tong Sampah" + +-#: gthumb/gth-file-source-vfs.c:840 ++#: gthumb/gth-file-source-vfs.c:829 + #, c-format + msgid "Are you sure you want to permanently delete “%s”?" + msgstr "Anda yakin ingin menghapus permanen \"%s\"?" + +-#: gthumb/gth-file-source-vfs.c:843 ++#: gthumb/gth-file-source-vfs.c:832 + #, c-format + msgid "Are you sure you want to permanently delete the %'d selected file?" + msgid_plural "" +@@ -4865,7 +5225,7 @@ msgid_plural "" + msgstr[0] "Anda yakin ingin menghapus permanen %'d gambar yang dipilih?" + msgstr[1] "Anda yakin ingin menghapus permanen %'d gambar yang dipilih?" + +-#: gthumb/gth-file-source-vfs.c:853 ++#: gthumb/gth-file-source-vfs.c:842 + msgid "If you delete a file, it will be permanently lost." + msgstr "Apabila Anda menghapus sebuah berkas, itu akan dihapus permanen." + +@@ -4902,11 +5262,15 @@ msgstr "turun" + msgid "No limit specified" + msgstr "Batas tak dinyatakan" + +-#: gthumb/gth-folder-tree.c:1391 ++#: gthumb/gth-filterbar.c:280 ++msgid "All" ++msgstr "Semua" ++ ++#: gthumb/gth-folder-tree.c:1465 + msgid "(Open Parent)" + msgstr "(Buka Induk)" + +-#: gthumb/gth-folder-tree.c:1911 ++#: gthumb/gth-folder-tree.c:1972 + msgid "Enter the new name:" + msgstr "Masukkan nama baru:" + +@@ -4937,72 +5301,88 @@ msgstr "" + msgid "Reading file information" + msgstr "Membaca informasi berkas" + +-#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 ++#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 ++msgid "Hidden Files" ++msgstr "Berkas Tersembunyi" ++ ++#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 ++msgid "Location" ++msgstr "Lokasi" ++ ++#: gthumb/gth-location-chooser.c:572 ++msgid "Locations" ++msgstr "Lokasi" ++ ++#: gthumb/gth-location-chooser.c:617 ++msgid "Other…" ++msgstr "Lainnya…" ++ ++#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 + msgid "Size" + msgstr "Ukuran" + + #: gthumb/gth-main-default-metadata.c:41 +-msgctxt "the file mtime" ++msgid "Bytes" ++msgstr "Byte" ++ ++#. Translators: the file modified time. ++#: gthumb/gth-main-default-metadata.c:43 + msgid "Modified Date & Time" + msgstr "Tanggal & Waktu Saat Diubah" + +-#: gthumb/gth-main-default-metadata.c:42 ++#: gthumb/gth-main-default-metadata.c:44 + msgid "Type" + msgstr "Tipe" + +-#: gthumb/gth-main-default-metadata.c:44 +-msgid "Location" +-msgstr "Lokasi" +- +-#: gthumb/gth-main-default-metadata.c:47 ++#: gthumb/gth-main-default-metadata.c:49 + msgid "Duration" + msgstr "Durasi" + +-#: gthumb/gth-main-default-metadata.c:49 ++#: gthumb/gth-main-default-metadata.c:51 + msgid "Exposure Settings" + msgstr "Pengaturan Pencahayaan" + +-#: gthumb/gth-main-default-metadata.c:50 ++#: gthumb/gth-main-default-metadata.c:52 + msgid "Aperture" + msgstr "Bukaan" + +-#: gthumb/gth-main-default-metadata.c:51 ++#: gthumb/gth-main-default-metadata.c:53 + msgid "ISO Speed" + msgstr "Kecepatan ISO" + +-#: gthumb/gth-main-default-metadata.c:52 ++#: gthumb/gth-main-default-metadata.c:54 + msgid "Exposure Time" + msgstr "Waktu Paparan" + +-#: gthumb/gth-main-default-metadata.c:53 ++#: gthumb/gth-main-default-metadata.c:55 + msgid "Shutter Speed" + msgstr "Kecepatan Rana" + +-#: gthumb/gth-main-default-metadata.c:54 ++#: gthumb/gth-main-default-metadata.c:56 + msgid "Focal Length" + msgstr "Panjang Fokal" + +-#: gthumb/gth-main-default-metadata.c:55 ++#: gthumb/gth-main-default-metadata.c:57 + msgid "Flash" + msgstr "Lampu Kilat" + +-#: gthumb/gth-main-default-metadata.c:56 ++#: gthumb/gth-main-default-metadata.c:58 + msgid "Camera Model" + msgstr "Model Kamera" + +-#: gthumb/gth-main-default-metadata.c:57 ++#: gthumb/gth-main-default-metadata.c:59 + msgid "Color Profile" + msgstr "Profil Warna" + +-#: gthumb/gth-main-default-metadata.c:59 ++#: gthumb/gth-main-default-metadata.c:61 + msgid "General Date & Time" + msgstr "Tanggal & Waktu Umum" + +-#: gthumb/gth-main-default-metadata.c:66 ++#: gthumb/gth-main-default-metadata.c:68 + msgid "Author" + msgstr "Penulis" + +-#: gthumb/gth-main-default-metadata.c:67 ++#: gthumb/gth-main-default-metadata.c:69 + msgid "Copyright" + msgstr "Hak Cipta" + +@@ -5034,43 +5414,55 @@ msgstr "dimensi" + msgid "aspect ratio" + msgstr "rasio aspek" + +-#: gthumb/gth-main-default-tests.c:285 ++#: gthumb/gth-main-default-tests.c:286 + msgid "All Files" + msgstr "Semua Berkas" + +-#: gthumb/gth-main-default-tests.c:292 ++#: gthumb/gth-main-default-tests.c:293 + msgid "All Images" + msgstr "Semua Gambar" + +-#: gthumb/gth-main-default-tests.c:299 ++#: gthumb/gth-main-default-tests.c:300 + msgid "JPEG Images" + msgstr "Gambar JPEG" + +-#: gthumb/gth-main-default-tests.c:306 ++#: gthumb/gth-main-default-tests.c:307 + msgid "Raw Photos" + msgstr "Foto Mentah" + +-#: gthumb/gth-main-default-tests.c:327 ++#: gthumb/gth-main-default-tests.c:328 + msgid "Media" + msgstr "Media" + +-#: gthumb/gth-main-default-tests.c:334 ++#: gthumb/gth-main-default-tests.c:335 + msgid "Text Files" + msgstr "Berkas Teks" + +-#: gthumb/gth-main-default-tests.c:342 ++#: gthumb/gth-main-default-tests.c:343 + msgid "Filename" + msgstr "Nama berkas" + +-#: gthumb/gth-main-default-tests.c:374 ++#: gthumb/gth-main-default-tests.c:375 + msgid "Title (embedded)" + msgstr "Judul (tertempel)" + +-#: gthumb/gth-main-default-tests.c:382 ++#: gthumb/gth-main-default-tests.c:383 + msgid "Description (embedded)" + msgstr "Keterangan (tertempel)" + +-#: gthumb/gth-overwrite-dialog.c:246 ++#: gthumb/gth-main-default-types.c:39 ++msgid "Show/Hide" ++msgstr "Tampilkan/Sembunyikan" ++ ++#: gthumb/gth-main-default-types.c:40 ++msgid "Navigation" ++msgstr "Navigasi" ++ ++#: gthumb/gth-main-default-types.c:41 ++msgid "File Manager" ++msgstr "Manajer Berkas" ++ ++#: gthumb/gth-overwrite-dialog.c:326 + msgid "Overwrite" + msgstr "Timpa" + +@@ -5166,8 +5558,8 @@ msgid "is lower than or equal to" + msgstr "kurang dari atau sama dengan" + + #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 +-#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 +-#: gthumb/gth-test-simple.c:1077 ++#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 ++#: gthumb/gth-test-simple.c:1131 + #, c-format + msgid "The test definition is incomplete" + msgstr "Definisi tes tak lengkap" +@@ -5238,31 +5630,54 @@ msgstr "Warna" + msgid "Rotation" + msgstr "Rotasi" + +-#: gthumb/gth-trash-task.c:67 +-msgid "Moving files to trash" +-msgstr "Memindah berkas ke tong sampah" ++#: gthumb/gth-window.c:1020 ++#, c-format ++msgid "" ++"The key combination «%s» is already assigned to the action «%s». Do you " ++"want to reassign it to this action instead?" ++msgstr "" ++"Kombinasi tombol «%s» sudah ditugaskan untuk tindakan «%s». Apakah Anda " ++"ingin menetapkan kembali ke tindakan ini sebagai gantinya?" ++ ++#: gthumb/gth-window.c:1028 ++msgid "Reassign" ++msgstr "Alih Tugaskan" ++ ++#: gthumb/gth-window.c:1046 ++#, c-format ++msgid "" ++"The key combination «%s» is already assigned to the action «%s» and cannot " ++"be changed." ++msgstr "" ++"Kombinasi tombol «%s» sudah ditetapkan untuk tindakan «%s» dan tidak dapat " ++"diubah." ++ ++#: gthumb/gth-window.c:1050 ++#, c-format ++msgid "The key combination «%s» is already assigned and cannot be changed." ++msgstr "Kombinasi tombol «%s» sudah ditetapkan dan tidak dapat diubah." + +-#: gthumb/gtk-utils.c:338 ++#: gthumb/gtk-utils.c:370 + msgid "Could not display help" + msgstr "Tidak dapat menampilkan bantuan" + +-#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 ++#: gthumb/gtk-utils.c:730 gthumb/gtk-utils.c:737 + msgid "Could not launch the application" + msgstr "Tidak dapat menjalankan aplikasi" + +-#: gthumb/gtk-utils.c:770 ++#: gthumb/gtk-utils.c:840 + msgid "_Copy Here" + msgstr "_Salin ke Sini" + +-#: gthumb/gtk-utils.c:775 ++#: gthumb/gtk-utils.c:845 + msgid "_Move Here" + msgstr "_Pindahkan ke Sini" + +-#: gthumb/gtk-utils.c:780 ++#: gthumb/gtk-utils.c:850 + msgid "_Link Here" + msgstr "_Tautkan ke Sini" + +-#: gthumb/gtk-utils.c:789 ++#: gthumb/gtk-utils.c:859 + msgid "Cancel" + msgstr "Batal" + +@@ -5270,6 +5685,10 @@ msgstr "Batal" + msgid "_Cancel" + msgstr "_Batal" + ++#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 ++msgid "_Help" ++msgstr "_Bantuan" ++ + #: gthumb/gtk-utils.h:41 + msgid "_New" + msgstr "_Baru" +@@ -5294,106 +5713,32 @@ msgstr "_Eksekusi" + msgid "_Upload" + msgstr "_Unggah" + +-#: gthumb/resources/app-menu.ui:7 +-msgid "New _Window" +-msgstr "_Jendela Baru" +- +-#: gthumb/resources/app-menu.ui:29 +-msgid "_About" +-msgstr "Tent_ang" +- +-#: gthumb/resources/app-menu.ui:33 +-msgid "_Quit" +-msgstr "_Keluar" +- + #: gthumb/resources/folder-menu.ui:7 + msgid "Open in New Window" + msgstr "Buka di Window Baru" + +-#: gthumb/resources/gears-menu.ui:7 +-msgid "New Window" +-msgstr "Jendela Baru" +- +-#: gthumb/resources/gears-menu.ui:12 ++#: gthumb/resources/gears-menu.ui:11 + msgid "Open Location…" + msgstr "Buka Lokasi…" + +-#: gthumb/resources/gears-menu.ui:28 +-msgid "Revert" +-msgstr "Balikkan" +- +-#: gthumb/resources/gears-menu.ui:35 ++#: gthumb/resources/gears-menu.ui:31 + msgid "Sort By…" + msgstr "Urut Menurut…" + +-#: gthumb/resources/gears-menu.ui:39 +-msgid "Hidden Files" +-msgstr "Berkas Tersembunyi" ++#: gthumb/resources/gears-menu.ui:57 ++msgid "_About gThumb" ++msgstr "Tent_ang gThumb" + + #: gthumb/resources/history-menu.ui:9 + msgid "_Delete History" + msgstr "Hap_us History" + +-#~ msgid "" +-#~ "The geographical position information is not available for this image." +-#~ msgstr "Informasi posisi geografis tak tersedia bagi gambar ini." +- +-#~ msgid "Details" +-#~ msgstr "Rincian" +- +-#~ msgid "gThumb Photo Import Tool" +-#~ msgstr "Alat Impor Foto gThumb" +- +-#~ msgid "Example" +-#~ msgstr "Contoh" +- +-#~ msgid "Extension example." +-#~ msgstr "Contoh ekstensi." +- +-#~ msgid "Import from Facebook" +-#~ msgstr "Impor dari Facebook" +- +-#~ msgid "Tiny ( 100 × 75 )" +-#~ msgstr "Mungil ( 100 × 75 )" +- +-#~ msgid "Small ( 160 × 120 )" +-#~ msgstr "Kecil ( 160 × 120 )" +- +-#~ msgid "Medium ( 320 × 240 )" +-#~ msgstr "Sedang ( 320 × 240 )" +- +-#~ msgid "Large ( 640 × 480 )" +-#~ msgstr "Besar ( 640 × 480 )" +- +-#~ msgid "15ʺ screen ( 800 × 600 )" +-#~ msgstr "Layar 15ʺ ( 800 × 600 )" +- +-#~ msgid "17ʺ screen ( 1024 × 768 )" +-#~ msgstr "Layar 17ʺ ( 1024 × 768 )" +- +-#~ msgid "1 megabyte file size" +-#~ msgstr "Ukuran berkas 1 mega byte" +- +-#~ msgid "_Scramble filenames" +-#~ msgstr "_Acak nama berkas" +- +-#~ msgid "_Container:" +-#~ msgstr "_Kontainer:" +- +-#~ msgid "2 megabyte file size" +-#~ msgstr "Ukuran berkas 2 mega byte" +- +-#~ msgid "Export to Photobucket" +-#~ msgstr "Ekspor ke PhotoBucket" +- +-#~ msgid "PhotoBucket" +-#~ msgstr "PhotoBucket" +- +-#~ msgid "Upload images to PhotoBucket" +-#~ msgstr "Unggah gambar ke PhotoBucket" ++#~ msgid "_Keep the dialog open" ++#~ msgstr "Pertahan_kan dialog terbuka" + +-#~ msgid "none" +-#~ msgstr "tidak ada" ++#~ msgid "gthumb development team" ++#~ msgstr "tim pengembang gthumb" + +-#~ msgid "key %d on the numeric keypad" +-#~ msgstr "tombol %d pada papan tombol numerik" ++#~ msgctxt "the file mtime" ++#~ msgid "Modified Date & Time" ++#~ msgstr "Tanggal & Waktu Saat Diubah" +--- gthumb-3.9.1.orig/po/pl.po ++++ gthumb-3.9.1/po/pl.po +@@ -10,8 +10,8 @@ msgid "" + msgstr "" + "Project-Id-Version: gthumb\n" + "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +-"POT-Creation-Date: 2020-03-01 20:18+0000\n" +-"PO-Revision-Date: 2020-03-05 12:33+0100\n" ++"POT-Creation-Date: 2020-03-08 09:25+0000\n" ++"PO-Revision-Date: 2020-03-08 12:24+0100\n" + "Last-Translator: Piotr Drąg \n" + "Language-Team: Polish \n" + "Language: pl\n" +@@ -228,12 +228,12 @@ msgstr "_Rozszerzenia:" + msgid "More extensions…" + msgstr "Więcej rozszerzeń…" + +-#: data/ui/file-selection-info.ui:33 ++#: data/ui/file-selection-info.ui:23 + #: extensions/webalbums/data/albumthemes/text.h:32 + msgid "Previous" + msgstr "Poprzedni" + +-#: data/ui/file-selection-info.ui:71 ++#: data/ui/file-selection-info.ui:61 + #: extensions/webalbums/data/albumthemes/text.h:30 + msgid "Next" + msgstr "Następny" +@@ -659,8 +659,8 @@ msgid "Saving" + msgstr "Zapisywanie" + + #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +-#: extensions/catalogs/dlg-add-to-catalog.c:373 +-#: extensions/catalogs/dlg-add-to-catalog.c:538 ++#: extensions/catalogs/dlg-add-to-catalog.c:376 ++#: extensions/catalogs/dlg-add-to-catalog.c:541 + #: extensions/file_manager/actions.c:71 + #: extensions/file_tools/gth-file-tool-curves.c:373 + #: extensions/list_tools/gth-script-editor-dialog.c:273 +@@ -670,8 +670,8 @@ msgid "No name specified" + msgstr "Nie podano nazwy" + + #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +-#: extensions/catalogs/dlg-add-to-catalog.c:380 +-#: extensions/catalogs/dlg-add-to-catalog.c:545 ++#: extensions/catalogs/dlg-add-to-catalog.c:383 ++#: extensions/catalogs/dlg-add-to-catalog.c:548 + #: extensions/file_manager/actions.c:78 + #: extensions/file_tools/gth-file-tool-curves.c:380 + #: gthumb/gth-folder-tree.c:1931 +@@ -680,8 +680,8 @@ msgid "Invalid name. The following chara + msgstr "Nieprawidłowa nazwa. Następujące znaki nie są dozwolone: %s" + + #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +-#: extensions/catalogs/dlg-add-to-catalog.c:437 +-#: extensions/catalogs/dlg-add-to-catalog.c:594 ++#: extensions/catalogs/dlg-add-to-catalog.c:440 ++#: extensions/catalogs/dlg-add-to-catalog.c:597 + #: extensions/catalogs/gth-file-source-catalogs.c:516 + #: extensions/file_manager/actions.c:109 + msgid "Name already used" +@@ -692,13 +692,13 @@ msgid "New catalog" + msgstr "Nowy katalog" + + #: extensions/catalogs/actions.c:178 +-#: extensions/catalogs/dlg-add-to-catalog.c:459 ++#: extensions/catalogs/dlg-add-to-catalog.c:462 + msgid "Enter the catalog name:" + msgstr "Nazwa katalogu:" + + #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +-#: extensions/catalogs/dlg-add-to-catalog.c:461 +-#: extensions/catalogs/dlg-add-to-catalog.c:620 ++#: extensions/catalogs/dlg-add-to-catalog.c:464 ++#: extensions/catalogs/dlg-add-to-catalog.c:623 + #: extensions/file_manager/actions.c:140 + msgid "C_reate" + msgstr "Ut_wórz" +@@ -708,7 +708,7 @@ msgid "New library" + msgstr "Nowa kolekcja" + + #: extensions/catalogs/actions.c:292 +-#: extensions/catalogs/dlg-add-to-catalog.c:618 ++#: extensions/catalogs/dlg-add-to-catalog.c:621 + msgid "Enter the library name:" + msgstr "Nazwa kolekcji:" + +@@ -751,7 +751,7 @@ msgstr "Zmień nazwę" + + #: extensions/catalogs/callbacks.c:78 + #: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +-#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 ++#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:258 + msgid "Properties" + msgstr "Właściwości" + +@@ -791,12 +791,12 @@ msgid "C_atalogs:" + msgstr "K_atalogi:" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:34 +-#: extensions/catalogs/dlg-add-to-catalog.c:617 ++#: extensions/catalogs/dlg-add-to-catalog.c:620 + msgid "New Library" + msgstr "Nowa kolekcja" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:57 +-#: extensions/catalogs/dlg-add-to-catalog.c:458 ++#: extensions/catalogs/dlg-add-to-catalog.c:461 + msgid "New Catalog" + msgstr "Nowy katalog" + +@@ -806,12 +806,6 @@ msgstr "Nowy katalog" + msgid "_View the destination" + msgstr "_Wyświetl miejsce docelowe" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +-msgid "_Keep the dialog open" +-msgstr "_Bez zamykania okna" +- + #: extensions/catalogs/data/ui/catalog-properties.ui:68 + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 + #: extensions/facebook/data/ui/facebook-album-properties.ui:45 +@@ -881,23 +875,28 @@ msgstr "Umieszczanie pojedynczych plikó + msgid "Singles" + msgstr "Pojedyncze" + +-#: extensions/catalogs/dlg-add-to-catalog.c:155 ++#: extensions/catalogs/dlg-add-to-catalog.c:156 + msgid "Could not add the files to the catalog" + msgstr "Nie można dodać plików do katalogu" + +-#: extensions/catalogs/dlg-add-to-catalog.c:316 ++#: extensions/catalogs/dlg-add-to-catalog.c:319 + #: extensions/search/gth-search-task.c:402 + msgid "Could not create the catalog" + msgstr "Nie można utworzyć katalogu" + +-#: extensions/catalogs/dlg-add-to-catalog.c:682 ++#: extensions/catalogs/dlg-add-to-catalog.c:687 + msgid "Add to Catalog" + msgstr "Dodanie do katalogu" + +-#: extensions/catalogs/dlg-add-to-catalog.c:697 ++#: extensions/catalogs/dlg-add-to-catalog.c:710 + msgid "_Add" + msgstr "_Dodaj" + ++#: extensions/catalogs/dlg-add-to-catalog.c:714 ++#: extensions/edit_metadata/dlg-edit-metadata.c:347 ++msgid "Keep the dialog open" ++msgstr "Nie zamyka okna" ++ + #: extensions/catalogs/dlg-catalog-properties.c:80 + msgid "Could not save the catalog" + msgstr "Nie można zapisać katalogu" +@@ -950,7 +949,7 @@ msgstr "Nieprawidłowy format pliku" + #: extensions/edit_metadata/callbacks.c:57 + #: extensions/edit_metadata/callbacks.c:94 + #: extensions/edit_metadata/callbacks.c:107 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 ++#: extensions/edit_metadata/gth-edit-tags-dialog.c:170 + #: gthumb/gth-main-default-metadata.c:65 + msgid "Tags" + msgstr "Etykiety" +@@ -1090,14 +1089,15 @@ msgstr "_Synchronizowanie z osadzonymi + #: extensions/importer/gth-import-preferences-dialog.c:417 + #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 + #: extensions/terminal/dlg-terminal-preferences.c:83 +-#: gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/dlg-favorite-properties.c:99 gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/gth-file-properties.c:548 + msgid "Preferences" + msgstr "Preferencje" + + #: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 + #: extensions/edit_metadata/callbacks.c:88 + #: extensions/edit_metadata/callbacks.c:101 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:124 + #: gthumb/gth-file-comment.c:136 + msgid "Comment" + msgstr "Komentarz" +@@ -1565,11 +1565,11 @@ msgstr "_Ocena:" + msgid "_Title:" + msgstr "_Tytuł:" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:121 ++#: extensions/edit_metadata/dlg-edit-metadata.c:123 + msgid "Could not save the file metadata" + msgstr "Nie można zapisać metadanych pliku" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:230 ++#: extensions/edit_metadata/dlg-edit-metadata.c:234 + #: gthumb/gth-overwrite-dialog.c:184 + msgid "Cannot read file information" + msgstr "Nie można odczytać informacji o pliku" +@@ -1582,7 +1582,7 @@ msgstr "Modyfikowanie metadanych" + msgid "Allow to edit files metadata." + msgstr "Umożliwienie modyfikowania metadanych plików." + +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:138 + msgid "Save only cha_nged fields" + msgstr "Zapisywanie tylko zmie_nionych pól" + +@@ -1674,7 +1674,7 @@ msgid "State/Province:" + msgstr "Stan/województwo:" + + #: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +-#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 ++#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:700 + msgid "(invalid value)" + msgstr "(nieprawidłowa wartość)" + +@@ -3185,7 +3185,7 @@ msgstr "Mono" + #: extensions/image_viewer/gth-image-viewer-page.c:1864 + #: extensions/image_viewer/gth-metadata-provider-image.c:258 + #: extensions/raw_files/gth-metadata-provider-raw.c:96 +-#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 ++#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:963 + #, c-format + msgid "%d × %d" + msgstr "%d×%d" +@@ -5665,27 +5665,27 @@ msgid "The key combination «%s» is alr + msgstr "" + "Kombinacja klawiszy „%s” jest już przydzielona i nie można jej zmienić." + +-#: gthumb/gtk-utils.c:352 ++#: gthumb/gtk-utils.c:370 + msgid "Could not display help" + msgstr "Nie można wyświetlić pomocy" + +-#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 ++#: gthumb/gtk-utils.c:730 gthumb/gtk-utils.c:737 + msgid "Could not launch the application" + msgstr "Nie można uruchomić programu" + +-#: gthumb/gtk-utils.c:822 ++#: gthumb/gtk-utils.c:840 + msgid "_Copy Here" + msgstr "S_kopiuj tutaj" + +-#: gthumb/gtk-utils.c:827 ++#: gthumb/gtk-utils.c:845 + msgid "_Move Here" + msgstr "_Przenieś tutaj" + +-#: gthumb/gtk-utils.c:832 ++#: gthumb/gtk-utils.c:850 + msgid "_Link Here" + msgstr "_Dowiąż tutaj" + +-#: gthumb/gtk-utils.c:841 ++#: gthumb/gtk-utils.c:859 + msgid "Cancel" + msgstr "Anuluj" + +--- gthumb-3.9.1.orig/po/pt_BR.po ++++ gthumb-3.9.1/po/pt_BR.po +@@ -15,8 +15,8 @@ msgid "" + msgstr "" + "Project-Id-Version: gthumb\n" + "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +-"POT-Creation-Date: 2020-03-01 20:18+0000\n" +-"PO-Revision-Date: 2020-03-04 22:13-0300\n" ++"POT-Creation-Date: 2020-03-08 11:24+0000\n" ++"PO-Revision-Date: 2020-03-10 02:59-0300\n" + "Last-Translator: Rafael Fontenelle \n" + "Language-Team: Brazilian Portuguese \n" + "Language: pt_BR\n" +@@ -232,12 +232,12 @@ msgstr "_Extensões:" + msgid "More extensions…" + msgstr "Mais extensões…" + +-#: data/ui/file-selection-info.ui:33 ++#: data/ui/file-selection-info.ui:23 + #: extensions/webalbums/data/albumthemes/text.h:32 + msgid "Previous" + msgstr "Anterior" + +-#: data/ui/file-selection-info.ui:71 ++#: data/ui/file-selection-info.ui:61 + #: extensions/webalbums/data/albumthemes/text.h:30 + msgid "Next" + msgstr "Próxima" +@@ -665,8 +665,8 @@ msgid "Saving" + msgstr "Salvar" + + #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +-#: extensions/catalogs/dlg-add-to-catalog.c:373 +-#: extensions/catalogs/dlg-add-to-catalog.c:538 ++#: extensions/catalogs/dlg-add-to-catalog.c:376 ++#: extensions/catalogs/dlg-add-to-catalog.c:541 + #: extensions/file_manager/actions.c:71 + #: extensions/file_tools/gth-file-tool-curves.c:373 + #: extensions/list_tools/gth-script-editor-dialog.c:273 +@@ -676,8 +676,8 @@ msgid "No name specified" + msgstr "Nenhum nome especificado" + + #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +-#: extensions/catalogs/dlg-add-to-catalog.c:380 +-#: extensions/catalogs/dlg-add-to-catalog.c:545 ++#: extensions/catalogs/dlg-add-to-catalog.c:383 ++#: extensions/catalogs/dlg-add-to-catalog.c:548 + #: extensions/file_manager/actions.c:78 + #: extensions/file_tools/gth-file-tool-curves.c:380 + #: gthumb/gth-folder-tree.c:1931 +@@ -686,8 +686,8 @@ msgid "Invalid name. The following chara + msgstr "Nome inválido. Os caracteres a seguir não são permitidos: %s" + + #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +-#: extensions/catalogs/dlg-add-to-catalog.c:437 +-#: extensions/catalogs/dlg-add-to-catalog.c:594 ++#: extensions/catalogs/dlg-add-to-catalog.c:440 ++#: extensions/catalogs/dlg-add-to-catalog.c:597 + #: extensions/catalogs/gth-file-source-catalogs.c:516 + #: extensions/file_manager/actions.c:109 + msgid "Name already used" +@@ -698,13 +698,13 @@ msgid "New catalog" + msgstr "Novo catálogo" + + #: extensions/catalogs/actions.c:178 +-#: extensions/catalogs/dlg-add-to-catalog.c:459 ++#: extensions/catalogs/dlg-add-to-catalog.c:462 + msgid "Enter the catalog name:" + msgstr "Digite o nome do catálogo:" + + #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +-#: extensions/catalogs/dlg-add-to-catalog.c:461 +-#: extensions/catalogs/dlg-add-to-catalog.c:620 ++#: extensions/catalogs/dlg-add-to-catalog.c:464 ++#: extensions/catalogs/dlg-add-to-catalog.c:623 + #: extensions/file_manager/actions.c:140 + msgid "C_reate" + msgstr "C_riar" +@@ -714,7 +714,7 @@ msgid "New library" + msgstr "Nova biblioteca" + + #: extensions/catalogs/actions.c:292 +-#: extensions/catalogs/dlg-add-to-catalog.c:618 ++#: extensions/catalogs/dlg-add-to-catalog.c:621 + msgid "Enter the library name:" + msgstr "Digite o nome da biblioteca:" + +@@ -757,7 +757,7 @@ msgstr "Renomeia" + + #: extensions/catalogs/callbacks.c:78 + #: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +-#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 ++#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:258 + msgid "Properties" + msgstr "Propriedades" + +@@ -798,12 +798,12 @@ msgid "C_atalogs:" + msgstr "C_atálogos:" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:34 +-#: extensions/catalogs/dlg-add-to-catalog.c:617 ++#: extensions/catalogs/dlg-add-to-catalog.c:620 + msgid "New Library" + msgstr "Nova biblioteca" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:57 +-#: extensions/catalogs/dlg-add-to-catalog.c:458 ++#: extensions/catalogs/dlg-add-to-catalog.c:461 + msgid "New Catalog" + msgstr "Novo catálogo" + +@@ -813,12 +813,6 @@ msgstr "Novo catálogo" + msgid "_View the destination" + msgstr "_Ver o destino" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +-msgid "_Keep the dialog open" +-msgstr "_Manter o diálogo aberto" +- + #: extensions/catalogs/data/ui/catalog-properties.ui:68 + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 + #: extensions/facebook/data/ui/facebook-album-properties.ui:45 +@@ -888,23 +882,29 @@ msgstr "Colocar arquivos singulares no c + msgid "Singles" + msgstr "Singulares" + +-#: extensions/catalogs/dlg-add-to-catalog.c:155 ++#: extensions/catalogs/dlg-add-to-catalog.c:156 + msgid "Could not add the files to the catalog" + msgstr "Não foi possível adicionar os arquivos ao catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:316 ++#: extensions/catalogs/dlg-add-to-catalog.c:319 + #: extensions/search/gth-search-task.c:402 + msgid "Could not create the catalog" + msgstr "Não foi possível criar o catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:682 ++#: extensions/catalogs/dlg-add-to-catalog.c:687 + msgid "Add to Catalog" + msgstr "Adicionar ao catálogo" + +-#: extensions/catalogs/dlg-add-to-catalog.c:697 ++#: extensions/catalogs/dlg-add-to-catalog.c:710 + msgid "_Add" + msgstr "_Adicionar" + ++#: extensions/catalogs/dlg-add-to-catalog.c:714 ++#: extensions/edit_metadata/dlg-edit-metadata.c:347 ++#| msgid "_Keep the dialog open" ++msgid "Keep the dialog open" ++msgstr "Manter o diálogo aberto" ++ + #: extensions/catalogs/dlg-catalog-properties.c:80 + msgid "Could not save the catalog" + msgstr "Não foi possível salvar o catálogo" +@@ -956,7 +956,7 @@ msgstr "Formato de arquivo inválido" + #: extensions/edit_metadata/callbacks.c:57 + #: extensions/edit_metadata/callbacks.c:94 + #: extensions/edit_metadata/callbacks.c:107 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 ++#: extensions/edit_metadata/gth-edit-tags-dialog.c:170 + #: gthumb/gth-main-default-metadata.c:65 + msgid "Tags" + msgstr "Etiquetas" +@@ -1098,14 +1098,15 @@ msgstr "_Sincronizar com os metadados em + #: extensions/importer/gth-import-preferences-dialog.c:417 + #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 + #: extensions/terminal/dlg-terminal-preferences.c:83 +-#: gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/dlg-favorite-properties.c:99 gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/gth-file-properties.c:548 + msgid "Preferences" + msgstr "Preferências" + + #: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 + #: extensions/edit_metadata/callbacks.c:88 + #: extensions/edit_metadata/callbacks.c:101 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:124 + #: gthumb/gth-file-comment.c:136 + msgid "Comment" + msgstr "Comentário" +@@ -1581,11 +1582,11 @@ msgstr "Classi_ficação:" + msgid "_Title:" + msgstr "_Título:" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:121 ++#: extensions/edit_metadata/dlg-edit-metadata.c:123 + msgid "Could not save the file metadata" + msgstr "Não foi possível salvar os metadados do arquivo" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:230 ++#: extensions/edit_metadata/dlg-edit-metadata.c:234 + #: gthumb/gth-overwrite-dialog.c:184 + msgid "Cannot read file information" + msgstr "Não foi possível ler informações" +@@ -1599,7 +1600,7 @@ msgstr "Editar metadados" + msgid "Allow to edit files metadata." + msgstr "Permite editar metadados de arquivos." + +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:138 + msgid "Save only cha_nged fields" + msgstr "Salvar some_nte campos alterados" + +@@ -1691,7 +1692,7 @@ msgid "State/Province:" + msgstr "Estado/Província:" + + #: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +-#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 ++#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:700 + msgid "(invalid value)" + msgstr "(valor inválido)" + +@@ -3202,7 +3203,7 @@ msgstr "Mono" + #: extensions/image_viewer/gth-image-viewer-page.c:1864 + #: extensions/image_viewer/gth-metadata-provider-image.c:258 + #: extensions/raw_files/gth-metadata-provider-raw.c:96 +-#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 ++#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:963 + #, c-format + msgid "%d × %d" + msgstr "%d × %d" +@@ -3832,7 +3833,6 @@ msgid "Quote the text " + msgstr "Cita o texto " + + #: extensions/list_tools/data/ui/script-editor.ui:522 +-#| msgid "The current date" + msgid "The current date and time" + msgstr "A data e o horário atual" + +@@ -4602,12 +4602,10 @@ msgid "Terminal" + msgstr "Terminal" + + #: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +-#| msgid "Open in New Window" + msgid "Open in Terminal" + msgstr "Abre no terminal" + + #: extensions/terminal/terminal.extension.desktop.in.in:4 +-#| msgid "Open the selected folder in a new window" + msgid "Open a folder in a terminal" + msgstr "Abre uma pasta em um terminal" + +@@ -4855,7 +4853,6 @@ msgid "Could not deactivate the extensio + msgstr "Não foi possível desativar a extensão" + + #: gthumb/dlg-preferences-extensions.c:491 +-#| msgid "gthumb development team" + msgid "gThumb Development Team" + msgstr "Equipe de Desenvolvimento do gThumb" + +@@ -5375,8 +5372,6 @@ msgstr "Bytes" + + #. Translators: the file modified time. + #: gthumb/gth-main-default-metadata.c:43 +-#| msgctxt "the file mtime" +-#| msgid "Modified Date & Time" + msgid "Modified Date & Time" + msgstr "Data & hora de modificação" + +@@ -5707,27 +5702,27 @@ msgstr "" + msgid "The key combination «%s» is already assigned and cannot be changed." + msgstr "A combinação de teclas “%s” já está atribuída e não pode ser alterada." + +-#: gthumb/gtk-utils.c:352 ++#: gthumb/gtk-utils.c:370 + msgid "Could not display help" + msgstr "Não foi possível exibir a ajuda" + +-#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 ++#: gthumb/gtk-utils.c:730 gthumb/gtk-utils.c:737 + msgid "Could not launch the application" + msgstr "Não foi possível iniciar o aplicativo" + +-#: gthumb/gtk-utils.c:822 ++#: gthumb/gtk-utils.c:840 + msgid "_Copy Here" + msgstr "C_opiar aqui" + +-#: gthumb/gtk-utils.c:827 ++#: gthumb/gtk-utils.c:845 + msgid "_Move Here" + msgstr "_Mover aqui" + +-#: gthumb/gtk-utils.c:832 ++#: gthumb/gtk-utils.c:850 + msgid "_Link Here" + msgstr "Criar _link aqui" + +-#: gthumb/gtk-utils.c:841 ++#: gthumb/gtk-utils.c:859 + msgid "Cancel" + msgstr "Cancelar" + +--- gthumb-3.9.1.orig/po/tr.po ++++ gthumb-3.9.1/po/tr.po +@@ -14,8 +14,8 @@ msgid "" + msgstr "" + "Project-Id-Version: gthumb\n" + "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +-"POT-Creation-Date: 2020-02-17 13:44+0000\n" +-"PO-Revision-Date: 2020-02-19 16:27+0300\n" ++"POT-Creation-Date: 2020-03-08 11:24+0000\n" ++"PO-Revision-Date: 2020-03-10 09:25+0300\n" + "Last-Translator: Emin Tufan Çetin \n" + "Language-Team: Turkish \n" + "Language: tr\n" +@@ -50,8 +50,8 @@ msgid "" + "is also possible to view various metadata types embedded inside an image " + "such as EXIF, IPTC and XMP." + msgstr "" +-"Resim görüntüleyici olarak gThumb, BMP, JPEG, GIF (animasyon içerir), " +-"PNG, TIFF, TGA ve RAW resimleri gibi ortak resim dosyası formatlarının " ++"Resim görüntüleyici olarak gThumb, BMP, JPEG, GIF (animasyon içerir), PNG, " ++"TIFF, TGA ve RAW resimleri gibi ortak resim dosyası formatlarının " + "görüntülenmesine izin verir. Ayrıca resim içerisine gömülü, EXIF, IPTC ve " + "XMP gibi çeşitli meta türlerini görüntülemesi de mümkündür." + +@@ -233,12 +233,12 @@ msgstr "_Uzantılar:" + msgid "More extensions…" + msgstr "Daha fazla uzantı…" + +-#: data/ui/file-selection-info.ui:33 ++#: data/ui/file-selection-info.ui:23 + #: extensions/webalbums/data/albumthemes/text.h:32 + msgid "Previous" + msgstr "Önceki" + +-#: data/ui/file-selection-info.ui:71 ++#: data/ui/file-selection-info.ui:61 + #: extensions/webalbums/data/albumthemes/text.h:30 + msgid "Next" + msgstr "Sonraki" +@@ -514,11 +514,11 @@ msgstr "Disk Adı" + + #: extensions/burn_disc/data/ui/burn-source-selector.ui:31 + msgid "Current _folder" +-msgstr "Mevcut _klasör" ++msgstr "Geçerli _klasör" + + #: extensions/burn_disc/data/ui/burn-source-selector.ui:47 + msgid "Current folder and its s_ub-folders" +-msgstr "Mevcut klasör ve onun a_lt-klasörleri" ++msgstr "Geçerli klasör ve onun a_lt-klasörleri" + + #: extensions/burn_disc/data/ui/burn-source-selector.ui:64 + msgid "_Selected files" +@@ -628,12 +628,12 @@ msgid "_Lossless" + msgstr "_Kayıpsız" + + #: extensions/cairo_io/gth-image-saver-jpeg.c:517 +-#: extensions/image_viewer/gth-metadata-provider-image.c:145 ++#: extensions/image_viewer/gth-metadata-provider-image.c:150 + msgid "JPEG" + msgstr "JPEG" + + #: extensions/cairo_io/gth-image-saver-png.c:354 +-#: extensions/image_viewer/gth-metadata-provider-image.c:111 ++#: extensions/image_viewer/gth-metadata-provider-image.c:116 + msgid "PNG" + msgstr "PNG" + +@@ -651,7 +651,7 @@ msgid "TIFF" + msgstr "TIFF" + + #: extensions/cairo_io/gth-image-saver-webp.c:383 +-#: extensions/image_viewer/gth-metadata-provider-image.c:174 ++#: extensions/image_viewer/gth-metadata-provider-image.c:179 + msgid "WebP" + msgstr "WebP" + +@@ -664,8 +664,8 @@ msgid "Saving" + msgstr "Kaydediliyor" + + #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +-#: extensions/catalogs/dlg-add-to-catalog.c:373 +-#: extensions/catalogs/dlg-add-to-catalog.c:538 ++#: extensions/catalogs/dlg-add-to-catalog.c:376 ++#: extensions/catalogs/dlg-add-to-catalog.c:541 + #: extensions/file_manager/actions.c:71 + #: extensions/file_tools/gth-file-tool-curves.c:373 + #: extensions/list_tools/gth-script-editor-dialog.c:273 +@@ -675,8 +675,8 @@ msgid "No name specified" + msgstr "Ad belirtilmemiş" + + #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +-#: extensions/catalogs/dlg-add-to-catalog.c:380 +-#: extensions/catalogs/dlg-add-to-catalog.c:545 ++#: extensions/catalogs/dlg-add-to-catalog.c:383 ++#: extensions/catalogs/dlg-add-to-catalog.c:548 + #: extensions/file_manager/actions.c:78 + #: extensions/file_tools/gth-file-tool-curves.c:380 + #: gthumb/gth-folder-tree.c:1931 +@@ -685,8 +685,8 @@ msgid "Invalid name. The following chara + msgstr "Geçersiz ad. Aşağıdaki karakterlere izin verilmez: %s" + + #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +-#: extensions/catalogs/dlg-add-to-catalog.c:437 +-#: extensions/catalogs/dlg-add-to-catalog.c:594 ++#: extensions/catalogs/dlg-add-to-catalog.c:440 ++#: extensions/catalogs/dlg-add-to-catalog.c:597 + #: extensions/catalogs/gth-file-source-catalogs.c:516 + #: extensions/file_manager/actions.c:109 + msgid "Name already used" +@@ -697,13 +697,13 @@ msgid "New catalog" + msgstr "Yeni katalog" + + #: extensions/catalogs/actions.c:178 +-#: extensions/catalogs/dlg-add-to-catalog.c:459 ++#: extensions/catalogs/dlg-add-to-catalog.c:462 + msgid "Enter the catalog name:" + msgstr "Katalog adı girin:" + + #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +-#: extensions/catalogs/dlg-add-to-catalog.c:461 +-#: extensions/catalogs/dlg-add-to-catalog.c:620 ++#: extensions/catalogs/dlg-add-to-catalog.c:464 ++#: extensions/catalogs/dlg-add-to-catalog.c:623 + #: extensions/file_manager/actions.c:140 + msgid "C_reate" + msgstr "Oluştu_r" +@@ -713,7 +713,7 @@ msgid "New library" + msgstr "Yeni kütüphane" + + #: extensions/catalogs/actions.c:292 +-#: extensions/catalogs/dlg-add-to-catalog.c:618 ++#: extensions/catalogs/dlg-add-to-catalog.c:621 + msgid "Enter the library name:" + msgstr "Kütüphane adı girin:" + +@@ -756,14 +756,14 @@ msgstr "Yeniden adlandır" + + #: extensions/catalogs/callbacks.c:78 + #: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +-#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 ++#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:258 + msgid "Properties" + msgstr "Özellikler" + + #: extensions/catalogs/callbacks.c:185 + #: extensions/catalogs/catalogs.extension.desktop.in.in:3 + #: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +-#: extensions/catalogs/gth-catalog.c:911 extensions/catalogs/gth-catalog.c:912 ++#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 + msgid "Catalogs" + msgstr "Kataloglar" + +@@ -796,12 +796,12 @@ msgid "C_atalogs:" + msgstr "K_ataloglar:" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:34 +-#: extensions/catalogs/dlg-add-to-catalog.c:617 ++#: extensions/catalogs/dlg-add-to-catalog.c:620 + msgid "New Library" + msgstr "Yeni Kütüphane" + + #: extensions/catalogs/data/ui/add-to-catalog.ui:57 +-#: extensions/catalogs/dlg-add-to-catalog.c:458 ++#: extensions/catalogs/dlg-add-to-catalog.c:461 + msgid "New Catalog" + msgstr "Yeni Katalog" + +@@ -811,12 +811,6 @@ msgstr "Yeni Katalog" + msgid "_View the destination" + msgstr "Hedefi _görüntüle" + +-#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +-msgid "_Keep the dialog open" +-msgstr "İletişim penceresini açı_k tut" +- + #: extensions/catalogs/data/ui/catalog-properties.ui:68 + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 + #: extensions/facebook/data/ui/facebook-album-properties.ui:45 +@@ -886,23 +880,28 @@ msgstr "Tek dosyaları kataloga yerleşt + msgid "Singles" + msgstr "Tek" + +-#: extensions/catalogs/dlg-add-to-catalog.c:155 ++#: extensions/catalogs/dlg-add-to-catalog.c:156 + msgid "Could not add the files to the catalog" + msgstr "Dosyalar kataloga eklenemedi" + +-#: extensions/catalogs/dlg-add-to-catalog.c:316 ++#: extensions/catalogs/dlg-add-to-catalog.c:319 + #: extensions/search/gth-search-task.c:402 + msgid "Could not create the catalog" + msgstr "Katalog oluşturulamadı" + +-#: extensions/catalogs/dlg-add-to-catalog.c:682 ++#: extensions/catalogs/dlg-add-to-catalog.c:687 + msgid "Add to Catalog" + msgstr "Kataloga Ekle" + +-#: extensions/catalogs/dlg-add-to-catalog.c:697 ++#: extensions/catalogs/dlg-add-to-catalog.c:710 + msgid "_Add" + msgstr "_Ekle" + ++#: extensions/catalogs/dlg-add-to-catalog.c:714 ++#: extensions/edit_metadata/dlg-edit-metadata.c:347 ++msgid "Keep the dialog open" ++msgstr "İletişim penceresini açık tut" ++ + #: extensions/catalogs/dlg-catalog-properties.c:80 + msgid "Could not save the catalog" + msgstr "Katalog kaydedilemedi" +@@ -951,12 +950,12 @@ msgstr "Etiket (gömülü)" + msgid "Invalid file format" + msgstr "Geçersiz dosya biçimi" + +-#: extensions/catalogs/gth-catalog.c:1013 extensions/comments/main.c:47 ++#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 + #: extensions/edit_metadata/callbacks.c:57 + #: extensions/edit_metadata/callbacks.c:94 + #: extensions/edit_metadata/callbacks.c:107 +-#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +-#: gthumb/gth-main-default-metadata.c:64 ++#: extensions/edit_metadata/gth-edit-tags-dialog.c:170 ++#: gthumb/gth-main-default-metadata.c:65 + msgid "Tags" + msgstr "Etiketler" + +@@ -1094,19 +1093,21 @@ msgstr "Gömülü üstveriler ile _eşit + #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 + #: extensions/importer/gth-import-preferences-dialog.c:417 + #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +-#: gthumb/dlg-preferences-extensions.c:483 ++#: extensions/terminal/dlg-terminal-preferences.c:83 ++#: gthumb/dlg-favorite-properties.c:99 gthumb/dlg-preferences-extensions.c:483 ++#: gthumb/gth-file-properties.c:548 + msgid "Preferences" + msgstr "Tercihler" + + #: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 + #: extensions/edit_metadata/callbacks.c:88 + #: extensions/edit_metadata/callbacks.c:101 +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:124 + #: gthumb/gth-file-comment.c:136 + msgid "Comment" + msgstr "Yorum" + +-#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:61 ++#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 + msgid "Title" + msgstr "Başlık" + +@@ -1120,12 +1121,12 @@ msgstr "Başlık" + #: extensions/rename_series/data/ui/rename-series.ui:249 + #: extensions/webalbums/data/ui/web-album-exporter.ui:194 + #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 +-#: gthumb/gth-main-default-metadata.c:63 ++#: gthumb/gth-main-default-metadata.c:64 + msgid "Description" + msgstr "Açıklama" + + #: extensions/comments/main.c:45 extensions/comments/main.c:178 +-#: gthumb/gth-main-default-metadata.c:62 ++#: gthumb/gth-main-default-metadata.c:63 + msgid "Place" + msgstr "Yer" + +@@ -1133,7 +1134,7 @@ msgstr "Yer" + msgid "Comment Date & Time" + msgstr "Yorum Tarihi ve Zamanı" + +-#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:65 ++#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 + #: gthumb/gth-main-default-tests.c:391 + msgid "Rating" + msgstr "Değerlendirme" +@@ -1155,8 +1156,7 @@ msgstr "Bağlantı Sayfası" + #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:4 + msgid "Create an index image displaying the thumbnails of the selected files." + msgstr "" +-"Seçilen dosyaların küçük resimlerinin görüntüleneceği resim dizini " +-"oluştur." ++"Seçilen dosyaların küçük resimlerinin görüntüleneceği resim dizini oluştur." + + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 + #: extensions/file_tools/gth-file-tool-crop.c:439 +@@ -1177,7 +1177,7 @@ msgstr "Basit gölge" + + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:21 + msgid "Shadow only" +-msgstr "Sadece gölge" ++msgstr "Yalnızca gölge" + + #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:24 + msgid "Slide" +@@ -1573,11 +1573,11 @@ msgstr "_Değerlendirme:" + msgid "_Title:" + msgstr "_Başlık:" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:121 ++#: extensions/edit_metadata/dlg-edit-metadata.c:123 + msgid "Could not save the file metadata" + msgstr "Dosya üstverisi kaydedilemedi" + +-#: extensions/edit_metadata/dlg-edit-metadata.c:230 ++#: extensions/edit_metadata/dlg-edit-metadata.c:234 + #: gthumb/gth-overwrite-dialog.c:184 + msgid "Cannot read file information" + msgstr "Dosya bilgisi okunamıyor" +@@ -1590,9 +1590,9 @@ msgstr "Üstveriyi düzenle" + msgid "Allow to edit files metadata." + msgstr "Dosya üstverilerini düzenlemeye izin ver." + +-#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 ++#: extensions/edit_metadata/gth-edit-comment-dialog.c:138 + msgid "Save only cha_nged fields" +-msgstr "Sadece değişen ala_nları kaydet" ++msgstr "Yalnızca değişen ala_nları kaydet" + + #: extensions/edit_metadata/gth-edit-general-page.c:554 + msgid "No date" +@@ -1682,7 +1682,7 @@ msgid "State/Province:" + msgstr "Eyalet/Bölge:" + + #: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +-#: gthumb/glib-utils.c:2051 gthumb/str-utils.c:677 ++#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:700 + msgid "(invalid value)" + msgstr "(geçersiz değer)" + +@@ -1977,7 +1977,7 @@ msgid "" + "Files cannot be moved to the current location, as alternative you can choose " + "to copy them." + msgstr "" +-"Dosyalar mevcut konuma taşınamadı, alternatif olarak onları kopyalamayı " ++"Dosyalar geçerli konuma taşınamadı, alternatif olarak onları kopyalamayı " + "seçebilirsiniz." + + #: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +@@ -2065,7 +2065,7 @@ msgstr "Kalıcı olarak sil" + msgid "Open with Gimp" + msgstr "GIMP ile aç" + +-#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:235 ++#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 + msgid "Home Folder" + msgstr "Ev Klasörü" + +@@ -2283,7 +2283,7 @@ msgid "%" + msgstr "%" + + #: extensions/file_tools/data/ui/resize-options.ui:137 +-#: gthumb/gth-main-default-metadata.c:47 ++#: gthumb/gth-main-default-metadata.c:48 + msgid "Dimensions" + msgstr "Boyutlar" + +@@ -3184,9 +3184,9 @@ msgstr "Tek Kanallı" + #. Translators: this is an image size, such as 1024 × 768 + #: extensions/gstreamer_utils/gstreamer-utils.c:402 + #: extensions/image_viewer/gth-image-viewer-page.c:1864 +-#: extensions/image_viewer/gth-metadata-provider-image.c:253 ++#: extensions/image_viewer/gth-metadata-provider-image.c:258 + #: extensions/raw_files/gth-metadata-provider-raw.c:96 +-#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:944 ++#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:963 + #, c-format + msgid "%d × %d" + msgstr "%d × %d" +@@ -3290,7 +3290,7 @@ msgstr "Resimler" + #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 + #: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 + msgid "No suitable loader available for this file type" +-msgstr "Bu dosya türü için uygun yükleyici mevcut değil" ++msgstr "Bu dosya türü için uygun yükleyici yok" + + #. translators: %s is a filename + #: extensions/image_print/gth-load-image-info-task.c:168 +@@ -3696,7 +3696,7 @@ msgstr "İçeri aktarılan dosya yok" + msgid "The selected files are already present in the destination." + msgstr "Seçilen dosyalar zaten hedefte var." + +-#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:683 ++#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 + msgid "Could not delete the files" + msgstr "Dosyalar silinemedi" + +@@ -3720,7 +3720,7 @@ msgid "" + "%s of space is required but only %s is available." + msgstr "" + "“%s” konumunda yeterli boş alan yok.\n" +-"%s alan gerekli fakat sadece %s kullanılabilir alan var." ++"%s alan gerekli ancak yalnızca %s kullanılabilir alan var." + + #: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 + #: extensions/list_tools/main.c:31 +@@ -3811,7 +3811,11 @@ msgstr "%quote{ metin }" + msgid "Quote the text " + msgstr "Metni alıntıla " + +-#: extensions/list_tools/data/ui/script-editor.ui:534 ++#: extensions/list_tools/data/ui/script-editor.ui:522 ++msgid "The current date and time" ++msgstr "Geçerli tarih ve saat" ++ ++#: extensions/list_tools/data/ui/script-editor.ui:568 + msgid "_Command:" + msgstr "_Komut:" + +@@ -3867,14 +3871,14 @@ msgstr "Komut %d durumu ile anormal olar + msgid "Enter a value:" + msgstr "Değer girin:" + +-#: extensions/list_tools/gth-script.c:736 ++#: extensions/list_tools/gth-script.c:753 + #: extensions/webalbums/gth-web-exporter.c:561 + #: extensions/webalbums/gth-web-exporter.c:573 + #: extensions/webalbums/gth-web-exporter.c:581 + msgid "Malformed command" + msgstr "Hatalı biçimlendirilmiş komut" + +-#: extensions/list_tools/gth-script.c:791 ++#: extensions/list_tools/gth-script.c:808 + msgid "_Skip" + msgstr "_Atla" + +@@ -4312,7 +4316,7 @@ msgid "_Preserve original aspect ratios" + msgstr "Özgün en-boy oranlarını _koru" + + #: extensions/resize_images/data/ui/resize-images.ui:324 +-#: gthumb/gth-main-default-metadata.c:46 gthumb/gth-toolbox.c:148 ++#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 + msgid "Format" + msgstr "Biçim" + +@@ -4567,6 +4571,23 @@ msgstr "Resimlerin sunumunu oynat." + msgid "x-office-presentation" + msgstr "x-office-presentation" + ++#: extensions/terminal/actions.c:53 ++#: extensions/terminal/terminal.extension.desktop.in.in:3 ++msgid "Terminal" ++msgstr "Uçbirim" ++ ++#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 ++msgid "Open in Terminal" ++msgstr "Uçbirimde aç" ++ ++#: extensions/terminal/terminal.extension.desktop.in.in:4 ++msgid "Open a folder in a terminal" ++msgstr "Uçbirimde klasör aç" ++ ++#: extensions/terminal/terminal.extension.desktop.in.in:8 ++msgid "utilities-terminal" ++msgstr "utilities-terminal" ++ + #: extensions/webalbums/callbacks.c:48 + msgid "_Web Album…" + msgstr "_Web Albümü…" +@@ -4798,8 +4819,8 @@ msgid "Could not deactivate the extensio + msgstr "Uzantılar devre dışı bırakılamadı" + + #: gthumb/dlg-preferences-extensions.c:491 +-msgid "gthumb development team" +-msgstr "gthumb geliştirme takımı" ++msgid "gThumb Development Team" ++msgstr "gthumb Geliştirme Takımı" + + #. add the page to the preferences dialog + #: gthumb/dlg-preferences-extensions.c:664 +@@ -4892,7 +4913,7 @@ msgstr "Dosyalar çöpe taşınıyor" + #. * the separator that your locale uses or use "%Id" instead + #. * of "%d" if your locale uses localized digits. + #. +-#: gthumb/glib-utils.c:2027 ++#: gthumb/glib-utils.c:2029 + #, c-format + msgctxt "long time format" + msgid "%d∶%02d∶%02d" +@@ -4904,7 +4925,7 @@ msgstr "%d∶%02d∶%02d" + #. * separator that your locale uses or use "%Id" instead of + #. * "%d" if your locale uses localized digits. + #. +-#: gthumb/glib-utils.c:2036 ++#: gthumb/glib-utils.c:2038 + #, c-format + msgctxt "short time format" + msgid "%d∶%02d" +@@ -5183,26 +5204,26 @@ msgstr "Tüm Desteklenen Dosyalar" + msgid "_Show Format Options" + msgstr "Biçim Seçeneklerini _Göster" + +-#: gthumb/gth-file-source-vfs.c:228 ++#: gthumb/gth-file-source-vfs.c:219 + msgid "Computer" + msgstr "Bilgisayar" + +-#: gthumb/gth-file-source-vfs.c:787 ++#: gthumb/gth-file-source-vfs.c:773 + msgid "" + "The files cannot be moved to the Trash. Do you want to delete them " + "permanently?" + msgstr "Dosyalar Çöpe taşınamadı. Onları kalıcı olarak silmek istiyor musunuz?" + +-#: gthumb/gth-file-source-vfs.c:798 ++#: gthumb/gth-file-source-vfs.c:784 + msgid "Could not move the files to the Trash" + msgstr "Dosyalar Çöpe taşınamadı" + +-#: gthumb/gth-file-source-vfs.c:843 ++#: gthumb/gth-file-source-vfs.c:829 + #, c-format + msgid "Are you sure you want to permanently delete “%s”?" + msgstr "“%s” dosyasını kalıcı olarak silmek istediğinizden emin misiniz?" + +-#: gthumb/gth-file-source-vfs.c:846 ++#: gthumb/gth-file-source-vfs.c:832 + #, c-format + msgid "Are you sure you want to permanently delete the %'d selected file?" + msgid_plural "" +@@ -5210,7 +5231,7 @@ msgid_plural "" + msgstr[0] "" + "Seçilen %'d dosyasını kalıcı olarak silmek istediğinizden emin misiniz?" + +-#: gthumb/gth-file-source-vfs.c:856 ++#: gthumb/gth-file-source-vfs.c:842 + msgid "If you delete a file, it will be permanently lost." + msgstr "Eğer dosyayı silerseniz, kalıcı olarak kaybolacak." + +@@ -5274,7 +5295,7 @@ msgstr "Dosya yeniden adlandırılamadı + + #: gthumb/gth-image-saver.c:39 + msgid "No options available for this file type" +-msgstr "Bu dosya türü için mevcut seçenek yok" ++msgstr "Bu dosya türü için kullanılabilir seçenek yok" + + #: gthumb/gth-image-saver.c:185 + #, c-format +@@ -5289,7 +5310,7 @@ msgstr "Dosya bilgisi okunuyor" + msgid "Hidden Files" + msgstr "Gizli Dosyalar" + +-#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:45 ++#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 + msgid "Location" + msgstr "Konum" + +@@ -5309,64 +5330,64 @@ msgstr "Boyut" + msgid "Bytes" + msgstr "Bayt" + +-#: gthumb/gth-main-default-metadata.c:42 +-msgctxt "the file mtime" ++#. Translators: the file modified time. ++#: gthumb/gth-main-default-metadata.c:43 + msgid "Modified Date & Time" + msgstr "Değiştirme Tarihi ve Zamanı" + +-#: gthumb/gth-main-default-metadata.c:43 ++#: gthumb/gth-main-default-metadata.c:44 + msgid "Type" + msgstr "Tür" + +-#: gthumb/gth-main-default-metadata.c:48 ++#: gthumb/gth-main-default-metadata.c:49 + msgid "Duration" + msgstr "Süre" + +-#: gthumb/gth-main-default-metadata.c:50 ++#: gthumb/gth-main-default-metadata.c:51 + msgid "Exposure Settings" + msgstr "Pozlama Ayarları" + +-#: gthumb/gth-main-default-metadata.c:51 ++#: gthumb/gth-main-default-metadata.c:52 + msgid "Aperture" + msgstr "Diyafram açıklığı" + +-#: gthumb/gth-main-default-metadata.c:52 ++#: gthumb/gth-main-default-metadata.c:53 + msgid "ISO Speed" + msgstr "ISO Hızı" + +-#: gthumb/gth-main-default-metadata.c:53 ++#: gthumb/gth-main-default-metadata.c:54 + msgid "Exposure Time" + msgstr "Pozlama Süresi" + +-#: gthumb/gth-main-default-metadata.c:54 ++#: gthumb/gth-main-default-metadata.c:55 + msgid "Shutter Speed" + msgstr "Objektif Hızı" + +-#: gthumb/gth-main-default-metadata.c:55 ++#: gthumb/gth-main-default-metadata.c:56 + msgid "Focal Length" + msgstr "Odak Uzaklığı" + +-#: gthumb/gth-main-default-metadata.c:56 ++#: gthumb/gth-main-default-metadata.c:57 + msgid "Flash" + msgstr "Işık" + +-#: gthumb/gth-main-default-metadata.c:57 ++#: gthumb/gth-main-default-metadata.c:58 + msgid "Camera Model" + msgstr "Kamera Modeli" + +-#: gthumb/gth-main-default-metadata.c:58 ++#: gthumb/gth-main-default-metadata.c:59 + msgid "Color Profile" + msgstr "Renk Profili" + +-#: gthumb/gth-main-default-metadata.c:60 ++#: gthumb/gth-main-default-metadata.c:61 + msgid "General Date & Time" + msgstr "Genel Tarih ve Zaman" + +-#: gthumb/gth-main-default-metadata.c:67 ++#: gthumb/gth-main-default-metadata.c:68 + msgid "Author" + msgstr "Yazar" + +-#: gthumb/gth-main-default-metadata.c:68 ++#: gthumb/gth-main-default-metadata.c:69 + msgid "Copyright" + msgstr "Telif Hakkı" + +@@ -5555,7 +5576,7 @@ msgstr "-dır" + + #: gthumb/gth-test-category.c:47 + msgid "is only" +-msgstr "sadece" ++msgstr "yalnızca" + + #: gthumb/gth-test-category.c:48 gthumb/gth-test-simple.c:51 + #: gthumb/gth-test-simple.c:68 +@@ -5639,27 +5660,27 @@ msgstr "«%s» tuş birleşimi zaten «% + msgid "The key combination «%s» is already assigned and cannot be changed." + msgstr "«%s» tuş birleşimi zaten atanmış ve değiştirilemez." + +-#: gthumb/gtk-utils.c:352 ++#: gthumb/gtk-utils.c:370 + msgid "Could not display help" + msgstr "Yardım gösterilemedi" + +-#: gthumb/gtk-utils.c:711 gthumb/gtk-utils.c:718 ++#: gthumb/gtk-utils.c:730 gthumb/gtk-utils.c:737 + msgid "Could not launch the application" + msgstr "Uygulama başlatılamadı" + +-#: gthumb/gtk-utils.c:821 ++#: gthumb/gtk-utils.c:840 + msgid "_Copy Here" + msgstr "Buraya _Kopyala" + +-#: gthumb/gtk-utils.c:826 ++#: gthumb/gtk-utils.c:845 + msgid "_Move Here" + msgstr "Buraya _Taşı" + +-#: gthumb/gtk-utils.c:831 ++#: gthumb/gtk-utils.c:850 + msgid "_Link Here" + msgstr "Buraya _Bağla" + +-#: gthumb/gtk-utils.c:840 ++#: gthumb/gtk-utils.c:859 + msgid "Cancel" + msgstr "İptal et" + +@@ -7064,9 +7085,6 @@ msgstr "Geçmişi _Sil" + #~ msgid "Move current catalog to another location" + #~ msgstr "Geçerli katalogu başka yere taşı" + +-#~ msgid "Open the selected folder in a new window" +-#~ msgstr "Seçilmiş klasörü yeni pencerede aç" +- + #~ msgid "Open with the _File Manager" + #~ msgstr "_Dosya Yöneticisiyle aç" + diff -Nru gthumb-3.8.3/debian/patches/series gthumb-3.9.1/debian/patches/series --- gthumb-3.8.3/debian/patches/series 2019-07-23 15:51:22.000000000 +0000 +++ gthumb-3.9.1/debian/patches/series 2020-03-10 05:22:09.000000000 +0000 @@ -4,3 +4,4 @@ #contact_sheet_theme_not_loaded.patch #02-preserve_upstream_files.patch privacy-breach-C-legal.patch +3.9.1---build-for-lower-glib-version diff -Nru gthumb-3.8.3/extensions/23hq/23hq.extension.desktop.in.in gthumb-3.9.1/extensions/23hq/23hq.extension.desktop.in.in --- gthumb-3.8.3/extensions/23hq/23hq.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/23hq/23hq.extension.desktop.in.in 2020-03-07 19:03:13.403623000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=23 Comment=Upload images to 23hq.com -Authors=gthumb development team -Copyright=Copyright © 2011-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2011-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter diff -Nru gthumb-3.8.3/extensions/bookmarks/bookmarks.extension.desktop.in.in gthumb-3.9.1/extensions/bookmarks/bookmarks.extension.desktop.in.in --- gthumb-3.8.3/extensions/bookmarks/bookmarks.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/bookmarks/bookmarks.extension.desktop.in.in 2020-03-07 19:03:13.403623000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Bookmarks Comment=Add bookmarks support. -Authors=gthumb development team -Copyright=Copyright © 2008-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2008-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Browser diff -Nru gthumb-3.8.3/extensions/bookmarks/callbacks.c gthumb-3.9.1/extensions/bookmarks/callbacks.c --- gthumb-3.8.3/extensions/bookmarks/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/bookmarks/callbacks.c 2020-03-07 19:03:13.403623000 +0000 @@ -118,10 +118,6 @@ file = g_file_new_for_uri (uri); first_space = strchr (lines[i], ' '); name = (first_space != NULL) ? g_strdup (first_space + 1) : NULL; - if (name == NULL) - name = _g_file_get_display_name (file); - if (name == NULL) - name = g_file_get_parse_name (file); item = _g_menu_item_new_for_file (file, name); g_menu_item_set_action_and_target (item, "win.go-to-location", "s", uri); g_menu_append_item (data->system_bookmarks_menu, item); @@ -282,7 +278,7 @@ GMenuItem *item; char *uri; - item = _g_menu_item_new_for_file (file_data->file, NULL); + item = _g_menu_item_new_for_file_data (file_data); uri = g_file_get_uri (file_data->file); g_menu_item_set_action_and_target (item, "win.go-to-location", "s", uri); g_menu_append_item (data->entry_points_menu, item); diff -Nru gthumb-3.8.3/extensions/bookmarks/data/ui/bookmarks-menu.ui gthumb-3.9.1/extensions/bookmarks/data/ui/bookmarks-menu.ui --- gthumb-3.8.3/extensions/bookmarks/data/ui/bookmarks-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/bookmarks/data/ui/bookmarks-menu.ui 2020-03-07 19:03:13.403623000 +0000 @@ -10,7 +10,6 @@ _Edit Bookmarks… win.bookmarks-edit - b]]> diff -Nru gthumb-3.8.3/extensions/burn_disc/burn_disc.extension.desktop.in.in gthumb-3.9.1/extensions/burn_disc/burn_disc.extension.desktop.in.in --- gthumb-3.8.3/extensions/burn_disc/burn_disc.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/burn_disc/burn_disc.extension.desktop.in.in 2020-03-07 19:03:13.403623000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Burn CD/DVD Comment=Save files to an optical disc. -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=brasero Category=Exporter diff -Nru gthumb-3.8.3/extensions/burn_disc/gth-burn-task.c gthumb-3.9.1/extensions/burn_disc/gth-burn-task.c --- gthumb-3.8.3/extensions/burn_disc/gth-burn-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/burn_disc/gth-burn-task.c 2020-03-07 19:03:13.403623000 +0000 @@ -122,13 +122,17 @@ if ((strcmp (subfolder, "") != 0) && g_hash_table_lookup (task->priv->parents, subfolder) == NULL) { GtkTreePath *subfolder_parent_tpath; GtkTreePath *subfolder_tpath; + char *basename; if (subfolder_parent != NULL) subfolder_parent_tpath = g_hash_table_lookup (task->priv->parents, subfolder_parent); else subfolder_parent_tpath = NULL; - subfolder_tpath = brasero_track_data_cfg_add_empty_directory (task->priv->track, _g_uri_get_basename (subfolder), subfolder_parent_tpath); + basename = _g_uri_get_basename (subfolder); + subfolder_tpath = brasero_track_data_cfg_add_empty_directory (task->priv->track, basename, subfolder_parent_tpath); g_hash_table_insert (task->priv->parents, g_strdup (subfolder), subfolder_tpath); + + g_free (basename); } g_free (subfolder_parent); @@ -325,7 +329,7 @@ g_free (task->priv->current_directory); parent = g_file_get_parent (directory); - escaped = _g_replace (g_file_info_get_display_name (info), "/", "-"); + escaped = _g_utf8_replace_str (g_file_info_get_display_name (info), "/", "-"); destination = g_file_get_child_for_display_name (parent, escaped, NULL); uri = g_file_get_uri (destination); task->priv->current_directory = g_uri_unescape_string (uri, NULL); diff -Nru gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-png.c gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-png.c --- gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-png.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-png.c 2020-03-07 19:03:13.403623000 +0000 @@ -84,16 +84,16 @@ png_size_t size) { CairoPngData *cairo_png_data; - gssize n; GError *error = NULL; cairo_png_data = png_get_io_ptr (png_ptr); - n = g_input_stream_read (cairo_png_data->stream, - buffer, - size, - cairo_png_data->cancellable, - &error); - if (n < 0) { + if(! g_input_stream_read_all (cairo_png_data->stream, + buffer, + size, + NULL, + cairo_png_data->cancellable, + &error)) + { png_error (png_ptr, error->message); g_error_free (error); } @@ -204,7 +204,7 @@ } metadata = _cairo_image_surface_get_metadata (cairo_png_data->surface); - _cairo_metadata_set_has_alpha (metadata, (color_type & PNG_COLOR_MASK_ALPHA)); + _cairo_metadata_set_has_alpha (metadata, (color_type & PNG_COLOR_MASK_ALPHA) || (color_type & PNG_COLOR_MASK_PALETTE)); _cairo_metadata_set_original_size (metadata, width, height); /* Set the data transformations */ diff -Nru gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-webp.c gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-webp.c --- gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-webp.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-webp.c 2020-03-07 19:03:13.403623000 +0000 @@ -43,7 +43,7 @@ GthImage *image; WebPDecoderConfig config; guchar *buffer; - gssize bytes_read; + gsize bytes_read; int width, height; cairo_surface_t *surface; cairo_surface_metadata_t *metadata; @@ -55,11 +55,16 @@ return image; buffer = g_new (guchar, BUFFER_SIZE); - bytes_read = g_input_stream_read (istream, - buffer, - BUFFER_SIZE, - cancellable, - error); + if (! g_input_stream_read_all (istream, + buffer, + BUFFER_SIZE, + &bytes_read, + cancellable, + error)) + { + g_free (buffer); + return image; + } if (WebPGetFeatures (buffer, bytes_read, &config.input) != VP8_STATUS_OK) { g_free (buffer); diff -Nru gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-xcf.c gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-xcf.c --- gthumb-3.8.3/extensions/cairo_io/cairo-image-surface-xcf.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/cairo_io/cairo-image-surface-xcf.c 2020-03-07 19:03:13.406956400 +0000 @@ -132,12 +132,22 @@ GError **error) { char *string; + gsize bytes_read; g_return_val_if_fail (size > 0, NULL); string = g_new (char, size + 1); - g_input_stream_read (G_INPUT_STREAM (stream), string, size, cancellable, error); - string[size] = 0; + if (g_input_stream_read_all (G_INPUT_STREAM (stream), + string, + size, + &bytes_read, + cancellable, + error)) + { + string[bytes_read] = 0; + } + else + string[0] = 0; return string; } @@ -727,9 +737,15 @@ if (tile_data_size <= 0) continue; - data_read = g_input_stream_read (G_INPUT_STREAM (data_stream), tile_data, tile_data_size, cancellable, error); - if (*error != NULL) + if (! g_input_stream_read_all (G_INPUT_STREAM (data_stream), + tile_data, + tile_data_size, + &data_read, + cancellable, + error)) + { goto rle_error; + } /* decompress the channel streams */ diff -Nru gthumb-3.8.3/extensions/catalogs/callbacks.c gthumb-3.9.1/extensions/catalogs/callbacks.c --- gthumb-3.8.3/extensions/catalogs/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/callbacks.c 2020-03-07 19:03:13.406956400 +0000 @@ -54,12 +54,12 @@ static const GthMenuEntry vfs_open_actions_entries[] = { - { N_("Open Folder"), "win.go-to-container-from-catalog", "end" }, + { N_("Open Folder"), "win.go-to-container-from-catalog" }, }; static const GthMenuEntry vfs_other_actions_entries[] = { - { N_("Remove from Catalog"), "win.remove-from-catalog", "Delete" }, + { N_("Remove from Catalog"), "win.remove-from-catalog" }, }; @@ -196,16 +196,14 @@ void -catalogs__gth_browser_update_sensitivity_cb (GthBrowser *browser) +catalogs__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { BrowserData *data; - int n_selected; data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); g_return_if_fail (data != NULL); - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - gth_window_enable_action (GTH_WINDOW (browser), "add-to-catalog", n_selected > 0); gth_window_enable_action (GTH_WINDOW (browser), "remove-from-catalog", (n_selected > 0) && GTH_IS_FILE_SOURCE_CATALOGS (gth_browser_get_location_source (browser))); gth_window_enable_action (GTH_WINDOW (browser), "go-to-container-from-catalog", n_selected == 1); @@ -250,6 +248,16 @@ } +GthCatalog * +catalogs__gth_catalog_new_for_uri_cb (const char *uri) +{ + if (g_str_has_suffix (uri, ".catalog") || g_str_has_suffix (uri, ".gqv")) + return gth_catalog_new (); + else + return NULL; +} + + void catalogs__gth_browser_folder_tree_popup_before_cb (GthBrowser *browser, GthFileSource *file_source, @@ -323,14 +331,10 @@ void catalogs__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location_data, - const GError *error) + GthFileData *location_data) { BrowserData *data; - if ((location_data == NULL) || (error != NULL)) - return; - data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); if (GTH_IS_FILE_SOURCE_CATALOGS (gth_browser_get_location_source (browser))) { @@ -468,6 +472,8 @@ GError *error = NULL; catalog = gth_catalog_load_from_file (rename_data->location); + if (catalog == NULL) + continue; for (scan_files = rename_data->files, scan_new_files = rename_data->new_files; scan_files && scan_new_files; diff -Nru gthumb-3.8.3/extensions/catalogs/callbacks.h gthumb-3.9.1/extensions/catalogs/callbacks.h --- gthumb-3.8.3/extensions/catalogs/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/callbacks.h 2020-03-07 19:03:13.406956400 +0000 @@ -27,15 +27,16 @@ void catalogs__initialize_cb (void); void catalogs__gth_browser_construct_cb (GthBrowser *browser); -void catalogs__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void catalogs__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); void catalogs__gth_browser_folder_tree_popup_before_cb (GthBrowser *browser, GthFileSource *file_source, GthFileData *folder); GFile * catalogs__command_line_files_cb (GList *files); GthCatalog * catalogs__gth_catalog_load_from_data_cb (const void *buffer); +GthCatalog * catalogs__gth_catalog_new_for_uri_cb (const char *uri); void catalogs__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location, - const GError *error); + GthFileData *location); void catalogs__gth_browser_update_extra_widget_cb (GthBrowser *browser); void catalogs__gth_browser_file_renamed_cb (GthBrowser *browser, GFile *file, diff -Nru gthumb-3.8.3/extensions/catalogs/catalogs.extension.desktop.in.in gthumb-3.9.1/extensions/catalogs/catalogs.extension.desktop.in.in --- gthumb-3.8.3/extensions/catalogs/catalogs.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/catalogs.extension.desktop.in.in 2020-03-07 19:03:13.406956400 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Catalogs Comment=Create file collections. -Authors=gthumb development team -Copyright=Copyright © 2008-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2008-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=file-catalog-symbolic Category=Browser diff -Nru gthumb-3.8.3/extensions/catalogs/data/ui/add-to-catalog.ui gthumb-3.9.1/extensions/catalogs/data/ui/add-to-catalog.ui --- gthumb-3.8.3/extensions/catalogs/data/ui/add-to-catalog.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/data/ui/add-to-catalog.ui 2020-03-07 19:03:13.406956400 +0000 @@ -1,223 +1,134 @@ - + - - - 400 - 350 + + + True False - 5 - Add to Catalog - dialog - - + vertical + 6 + + True False - vertical - 2 - - + 6 + + True False - end - - - _Close - False - True - True - True - True - 0.43999999761581421 - - - False - False - 0 - - - - - _Add - False - True - True - True - True - - - False - False - 1 - - - - - A_dd and Close - True - True - True - True - - - True - True - 2 - - + C_atalogs: + True + 0 False True - end 0 - + True - False - 5 - 12 + True + True + New Library + none + True - + True False - 12 - - - True - False - 6 - - - True - False - 0 - C_atalogs: - True - - - False - True - 0 - - - - - True - False - 12 - - - 300 - 300 - True - True - in - - - - - - True - True - 0 - - - - - True - False - 6 - - - _New Catalog - False - True - True - True - True - - - False - True - 0 - - - - - New _Library - False - True - True - True - True - - - False - True - 1 - - - - - False - True - end - 1 - - - - - True - True - 1 - - - - - True - True - 0 - - + file-library-symbolic - - True - True - 0 - + + + False + True + end + 1 + + + + + True + True + True + New Catalog + none + True - - _View the destination - False + True - True - False - True - 0 - True + False + file-catalog-symbolic - - False - True - 1 - - True + False True - 1 + end + 2 + + False + True + 0 + + + + + 500 + 500 + True + True + True + True + in + + + + + + False + True + 1 + + + + + _View the destination + True + True + False + start + True + True + + + False + True + 2 + + + + + _Keep the dialog open + True + True + False + start + True + True + + + False + True + 3 + - - cancel_button - add_button - diff -Nru gthumb-3.8.3/extensions/catalogs/dlg-add-to-catalog.c gthumb-3.9.1/extensions/catalogs/dlg-add-to-catalog.c --- gthumb-3.8.3/extensions/catalogs/dlg-add-to-catalog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/dlg-add-to-catalog.c 2020-03-07 19:03:13.406956400 +0000 @@ -24,11 +24,12 @@ #include "dlg-add-to-catalog.h" #include "gth-catalog.h" #include "gth-file-source-catalogs.h" +#include "preferences.h" #define GET_WIDGET(name) _gtk_builder_get_widget (data->builder, (name)) #define ADD_TO_CATALOG_DIALOG_NAME "add-to-catalog" -#define UPDATE_SELECTION_DELAY 100 +#define UPDATE_SELECTION_DELAY 50 typedef struct { @@ -85,12 +86,14 @@ GtkBuilder *builder; GtkWidget *dialog; GtkWidget *source_tree; + GtkWidget *info; AddData *add_data; GthFileSource *catalog_source; GthFileData *new_catalog; GthFileData *new_library; gulong file_selection_changed_event; - guint update_selectection_event; + guint update_selection_event; + GSettings *settings; } DialogData; @@ -104,14 +107,15 @@ data->file_selection_changed_event); data->file_selection_changed_event = 0; } - if (data->update_selectection_event != 0) { - g_source_remove (data->update_selectection_event); - data->update_selectection_event = 0; + if (data->update_selection_event != 0) { + g_source_remove (data->update_selection_event); + data->update_selection_event = 0; } add_data_unref (data->add_data); _g_object_unref (data->catalog_source); _g_object_unref (data->new_catalog); _g_object_unref (data->new_library); + _g_object_unref (data->settings); g_object_unref (data->builder); g_free (data); } @@ -158,13 +162,15 @@ add_data->files, GTH_MONITOR_EVENT_CREATED); - if (add_data->view_destination) - gth_browser_go_to (add_data->browser, add_data->catalog_file, NULL); - if (add_data->close_after_adding) { + if (add_data->view_destination) + gth_browser_go_to (add_data->browser, add_data->catalog_file, NULL); + if (add_data->dialog != NULL) gtk_widget_destroy (add_data->dialog); } + else + gth_browser_show_next_image (add_data->browser, FALSE, FALSE); add_data_unref (add_data); } @@ -181,14 +187,11 @@ gsize length; GFile *gio_file; - if (error != NULL) { - _gtk_error_dialog_from_gerror_show (GTK_WINDOW (add_data->parent_window), _("Could not add the files to the catalog"), error); - add_data_unref (add_data); - return; - } - _g_object_unref (add_data->catalog); - add_data->catalog = (GthCatalog *) catalog; + if (catalog != NULL) + add_data->catalog = (GthCatalog *) catalog; + else + add_data->catalog = gth_catalog_new_for_file (add_data->catalog_file); for (scan = add_data->files; scan; scan = scan->next) gth_catalog_insert_file (add_data->catalog, (GFile *) scan->data, -1); @@ -223,6 +226,7 @@ add_selection_to_catalog (DialogData *data, gboolean close_after_adding) { + char *last_catalog; GList *items; GList *file_list; @@ -231,6 +235,10 @@ if (data->add_data->catalog_file == NULL) return; + last_catalog = g_file_get_uri (data->add_data->catalog_file); + g_settings_set_string (data->settings, PREF_CATALOGS_LAST_CATALOG, last_catalog); + g_free (last_catalog); + _g_object_list_unref (data->add_data->files); data->add_data->files = NULL; @@ -252,24 +260,7 @@ add_button_clicked_cb (GtkWidget *widget, DialogData *data) { - add_selection_to_catalog (data, FALSE); -} - - -static void -add_close_button_clicked_cb (GtkWidget *widget, - DialogData *data) -{ - add_selection_to_catalog (data, TRUE); -} - - -static void -source_tree_open_cb (GthFolderTree *folder_tree, - GFile *file, - gpointer user_data) -{ - add_button_clicked_cb (NULL, (DialogData *)user_data); + add_selection_to_catalog (data, ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); } @@ -278,22 +269,36 @@ { GFile *selected_catalog; GList *items; + GList *file_data_list; gboolean can_add; selected_catalog = get_selected_catalog (data); items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (data->browser))); can_add = (items != NULL) && (selected_catalog != NULL); - gtk_widget_set_sensitive (GET_WIDGET ("add_close_button"), can_add); - gtk_widget_set_sensitive (GET_WIDGET ("add_button"), can_add); + gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, can_add); + gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (GET_WIDGET ("view_destination_checkbutton")), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); + gtk_widget_set_sensitive (GET_WIDGET ("view_destination_checkbutton"), ! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("keep_open_checkbutton")))); + + file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), items); + gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (data->info), file_data_list); + _g_object_list_unref (file_data_list); _gtk_tree_path_list_free (items); _g_object_unref (selected_catalog); } static void +source_tree_changed_cb (GthVfsTree *folder_tree, + gpointer user_data) +{ + update_sensitivity ((DialogData *) user_data); +} + + +static void source_tree_selection_changed_cb (GtkTreeSelection *treeselection, - gpointer user_data) + gpointer user_data) { update_sensitivity ((DialogData *) user_data); } @@ -446,13 +451,13 @@ static void new_catalog_button_clicked_cb (GtkWidget *widget, - DialogData *data) + DialogData *data) { GtkWidget *dialog; dialog = gth_request_dialog_new (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL, - _("New catalog"), + _("New Catalog"), _("Enter the catalog name:"), _GTK_LABEL_CANCEL, _("C_reate")); @@ -611,7 +616,7 @@ dialog = gth_request_dialog_new (GTK_WINDOW (data->dialog), GTK_DIALOG_MODAL, - _("New library"), + _("New Library"), _("Enter the library name:"), _GTK_LABEL_CANCEL, _("C_reate")); @@ -629,9 +634,9 @@ { DialogData *data = user_data; - if (data->update_selectection_event != 0) { - g_source_remove (data->update_selectection_event); - data->update_selectection_event = 0; + if (data->update_selection_event != 0) { + g_source_remove (data->update_selection_event); + data->update_selection_event = 0; } update_sensitivity (data); @@ -644,9 +649,17 @@ file_selection_changed_cb (GthFileSelection *self, DialogData *data) { - if (data->update_selectection_event != 0) - g_source_remove (data->update_selectection_event); - data->update_selectection_event = g_timeout_add (UPDATE_SELECTION_DELAY, update_sensitivity_cb, data); + if (data->update_selection_event != 0) + g_source_remove (data->update_selection_event); + data->update_selection_event = g_timeout_add (UPDATE_SELECTION_DELAY, update_sensitivity_cb, data); +} + + +static void +keep_open_button_toggled_cb (GtkToggleButton *button, + DialogData *data) +{ + update_sensitivity (data); } @@ -654,8 +667,9 @@ dlg_add_to_catalog (GthBrowser *browser) { DialogData *data; - GFile *base; GtkTreeSelection *selection; + char *last_catalog; + GtkWidget *sep; if (gth_browser_get_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME)) { gtk_window_present (GTK_WINDOW (gth_browser_get_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME))); @@ -665,7 +679,43 @@ data = g_new0 (DialogData, 1); data->browser = browser; data->builder = _gtk_builder_new_from_file ("add-to-catalog.ui", "catalogs"); - data->dialog = _gtk_builder_get_widget (data->builder, "add_to_catalog_dialog"); + data->settings = g_settings_new (GTHUMB_CATALOGS_SCHEMA); + + data->dialog = g_object_new (GTK_TYPE_DIALOG, + "title", _("Add to Catalog"), + "transient-for", GTK_WINDOW (browser), + "modal", FALSE, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + NULL); + gtk_container_set_border_width (GTK_CONTAINER (data->dialog), 5); + + data->info = gth_file_selection_info_new (); + gtk_widget_show (data->info); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + data->info, + FALSE, + FALSE, + 0); + + sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); + gtk_widget_show (sep); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + sep, + FALSE, + FALSE, + 5); + + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + GET_WIDGET ("dialog_content"), + FALSE, + FALSE, + 0); + + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CLOSE, GTK_RESPONSE_CANCEL, + _("_Add"), GTK_RESPONSE_OK, + NULL); + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); gth_browser_set_dialog (browser, ADD_TO_CATALOG_DIALOG_NAME, data->dialog); @@ -674,38 +724,34 @@ data->add_data->parent_window = data->add_data->dialog = data->dialog; add_data_ref (data->add_data); - base = g_file_new_for_uri ("catalog:///"); - data->source_tree = gth_source_tree_new (base); - g_object_unref (base); - + last_catalog = g_settings_get_string (data->settings, PREF_CATALOGS_LAST_CATALOG); + data->source_tree = gth_vfs_tree_new ("catalog:///", last_catalog); gtk_widget_show (data->source_tree); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("catalog_list_scrolled_window")), data->source_tree); gtk_label_set_mnemonic_widget (GTK_LABEL (GET_WIDGET ("catalogs_label")), data->source_tree); update_sensitivity (data); + g_free (last_catalog); + /* Set the signals handlers. */ g_signal_connect (G_OBJECT (data->dialog), "destroy", G_CALLBACK (destroy_cb), data); - g_signal_connect_swapped (G_OBJECT (GET_WIDGET ("cancel_button")), + g_signal_connect_swapped (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_CANCEL), "clicked", G_CALLBACK (gtk_widget_destroy), G_OBJECT (data->dialog)); g_signal_connect (G_OBJECT (data->source_tree), - "open", - G_CALLBACK (source_tree_open_cb), + "changed", + G_CALLBACK (source_tree_changed_cb), data); - g_signal_connect (G_OBJECT (GET_WIDGET ("add_button")), + g_signal_connect (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK), "clicked", G_CALLBACK (add_button_clicked_cb), data); - g_signal_connect (G_OBJECT (GET_WIDGET ("add_close_button")), - "clicked", - G_CALLBACK (add_close_button_clicked_cb), - data); g_signal_connect (G_OBJECT (GET_WIDGET ("new_catalog_button")), "clicked", G_CALLBACK (new_catalog_button_clicked_cb), @@ -714,7 +760,10 @@ "clicked", G_CALLBACK (new_library_button_clicked_cb), data); - + g_signal_connect (G_OBJECT (GET_WIDGET ("keep_open_checkbutton")), + "toggled", + G_CALLBACK (keep_open_button_toggled_cb), + data); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (data->source_tree)); g_signal_connect (selection, "changed", diff -Nru gthumb-3.8.3/extensions/catalogs/dlg-catalog-properties.c gthumb-3.9.1/extensions/catalogs/dlg-catalog-properties.c --- gthumb-3.8.3/extensions/catalogs/dlg-catalog-properties.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/dlg-catalog-properties.c 2020-03-07 19:03:13.406956400 +0000 @@ -96,19 +96,22 @@ GFile *parent; char *uri; char *clean_name; + char *ext; char *display_name; GFile *new_file; parent = g_file_get_parent (data->original_file); uri = g_file_get_uri (data->original_file); clean_name = _g_filename_clear_for_file (gtk_entry_get_text (GTK_ENTRY (GET_WIDGET ("name_entry")))); - display_name = g_strconcat (clean_name, _g_uri_get_file_extension (uri), NULL); + ext = _g_uri_get_extension (uri); + display_name = g_strconcat (clean_name, ext, NULL); new_file = g_file_get_child_for_display_name (parent, display_name, NULL); if ((new_file != NULL) && ! g_file_equal (new_file, data->original_file)) gth_file_data_set_file (data->file_data, new_file); _g_object_unref (new_file); g_free (display_name); + g_free (ext); g_free (clean_name); g_free (uri); g_object_unref (parent); @@ -153,6 +156,7 @@ return; } + g_assert (object != NULL); data->catalog = GTH_CATALOG (g_object_ref (object)); if (gth_catalog_get_name (data->catalog) != NULL) { @@ -164,7 +168,7 @@ char *utf8_name; basename = g_file_get_basename (data->file_data->file); - name = _g_uri_remove_extension (basename); + name = _g_path_remove_extension (basename); utf8_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); gtk_entry_set_text (GTK_ENTRY (GET_WIDGET ("name_entry")), utf8_name); @@ -200,7 +204,7 @@ data->dialog = g_object_new (GTK_TYPE_DIALOG, "title", _("Properties"), "transient-for", GTK_WINDOW (browser), - "modal", TRUE, + "modal", FALSE, "destroy-with-parent", FALSE, "use-header-bar", _gtk_settings_get_dialogs_use_header (), NULL); @@ -235,5 +239,8 @@ /* run dialog. */ gtk_widget_grab_focus (GET_WIDGET ("name_entry")); - gth_catalog_load_from_file_async (file_data->file, NULL, catalog_ready_cb, data); + gth_catalog_load_from_file_async (file_data->file, + NULL, + catalog_ready_cb, + data); } diff -Nru gthumb-3.8.3/extensions/catalogs/gth-catalog.c gthumb-3.9.1/extensions/catalogs/gth-catalog.c --- gthumb-3.8.3/extensions/catalogs/gth-catalog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/gth-catalog.c 2020-03-07 19:03:13.406956400 +0000 @@ -40,7 +40,6 @@ gboolean active; char *order; gboolean order_inverse; - GCancellable *cancellable; }; @@ -251,10 +250,8 @@ catalog->priv->file_hash = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, NULL, NULL); catalog->priv->name = NULL; catalog->priv->date_time = gth_datetime_new (); - catalog->priv->active = FALSE; catalog->priv->order = NULL; catalog->priv->order_inverse = FALSE; - catalog->priv->cancellable = NULL; } @@ -265,6 +262,52 @@ } +GthCatalog * +gth_catalog_new_for_file (GFile *file) +{ + char *uri; + GthCatalog *catalog; + + if (file == NULL) + return NULL; + + uri = g_file_get_uri (file); + catalog = gth_hook_invoke_get ("gth-catalog-new-for-uri", uri); + + g_free (uri); + + return catalog; +} + + +GthCatalog * +gth_catalog_new_from_data (const void *buffer, + gsize count, + GError **error) +{ + char *text_buffer; + GthCatalog *catalog = NULL; + + text_buffer = (char *) buffer; + if ((text_buffer == NULL) || (*text_buffer == 0)) + return NULL; + + if (strncmp (text_buffer, "catalog; - - catalog->priv->active = FALSE; - if (list_data->list_ready_func != NULL) { - list_data->files = g_list_reverse (list_data->files); - list_data->list_ready_func (catalog, list_data->files, error, list_data->user_data); - } - - _g_object_list_unref (list_data->files); - g_free (list_data); -} - - -static void -catalog_file_info_ready_cb (GObject *source_object, - GAsyncResult *result, - gpointer user_data) -{ - ListData *list_data = user_data; - GthCatalog *catalog = list_data->catalog; - GFile *file; - GFileInfo *info; - - file = (GFile*) source_object; - info = g_file_query_info_finish (file, result, NULL); - if (info != NULL) { - list_data->files = g_list_prepend (list_data->files, gth_file_data_new (file, info)); - g_object_unref (info); - } - - list_data->current_file = list_data->current_file->next; - if (list_data->current_file == NULL) { - gth_catalog_list_done (list_data, NULL); - return; - } - - g_file_query_info_async ((GFile *) list_data->current_file->data, - list_data->attributes, - 0, - G_PRIORITY_DEFAULT, - catalog->priv->cancellable, - catalog_file_info_ready_cb, - list_data); -} - - -static void -list__catalog_buffer_ready_cb (void **buffer, - gsize count, - GError *error, - gpointer user_data) -{ - ListData *list_data = user_data; - GthCatalog *catalog = list_data->catalog; - - if ((error == NULL) && (*buffer != NULL)) { - gth_catalog_load_from_data (catalog, *buffer, count, &error); - if (error != NULL) { - gth_catalog_list_done (list_data, error); - return; - } - - list_data->current_file = catalog->priv->file_list; - if (list_data->current_file == NULL) { - gth_catalog_list_done (list_data, NULL); - return; - } - - g_file_query_info_async ((GFile *) list_data->current_file->data, - list_data->attributes, - 0, - G_PRIORITY_DEFAULT, - catalog->priv->cancellable, - catalog_file_info_ready_cb, - list_data); - } - else - gth_catalog_list_done (list_data, error); -} - - -void -gth_catalog_list_async (GthCatalog *catalog, - const char *attributes, - GCancellable *cancellable, - CatalogReadyCallback ready_func, - gpointer user_data) -{ - ListData *list_data; - - g_return_if_fail (catalog->priv->file != NULL); - - if (catalog->priv->active) { - /* FIXME: object_ready_with_error (catalog, ready_func, user_data, g_error_new (G_IO_ERROR, G_IO_ERROR_PENDING, "Action pending"));*/ - return; - } - - catalog->priv->active = TRUE; - catalog->priv->cancellable = cancellable; - - list_data = g_new0 (ListData, 1); - list_data->catalog = catalog; - list_data->attributes = attributes; - list_data->list_ready_func = ready_func; - list_data->user_data = user_data; - - _g_file_load_async (catalog->priv->file, - G_PRIORITY_DEFAULT, - catalog->priv->cancellable, - list__catalog_buffer_ready_cb, - list_data); -} - - -void -gth_catalog_cancel (GthCatalog *catalog) -{ - g_cancellable_cancel (catalog->priv->cancellable); -} - - static char * get_display_name (GFile *file, const char *name, @@ -622,7 +508,7 @@ char *name; char *utf8_name; - name = _g_uri_remove_extension (basename); + name = _g_path_remove_extension (basename); utf8_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); g_string_append (display_name, utf8_name); @@ -673,7 +559,7 @@ char *name; char *utf8_name; - name = _g_uri_remove_extension (basename); + name = _g_path_remove_extension (basename); utf8_name = g_filename_to_utf8 (name, -1, NULL, NULL, NULL); g_string_append (display_name, utf8_name); @@ -804,43 +690,41 @@ GFile * gth_catalog_file_to_gio_file (GFile *file) { - GFile *gio_file = NULL; - char *child_uri; + GFile *gio_file = NULL; + char *uri; + UriParts file_parts; - child_uri = g_file_get_uri (file); - if (strncmp (child_uri, "catalog:///", 11) == 0) { - const char *query; + if (! g_file_has_uri_scheme (file, "catalog")) + return g_file_dup (file); - query = strchr (child_uri, '?'); - if (query != NULL) { - char *uri; + uri = g_file_get_uri (file); + if (! _g_uri_split (uri, &file_parts)) + return NULL; - uri = g_uri_unescape_string (query, ""); - gio_file = g_file_new_for_uri (uri); + if (file_parts.query != NULL) { + char *new_uri; - g_free (uri); - } - else { - GFile *base; - char *base_uri; - const char *part; - char *full_uri; - - base = gth_catalog_get_base (); - base_uri = g_file_get_uri (base); - part = child_uri + 11; - full_uri = g_strconcat (base_uri, part ? "/" : NULL, part, NULL); - gio_file = g_file_new_for_uri (full_uri); - - g_free (full_uri); - g_free (base_uri); - g_object_unref (base); - } + new_uri = g_uri_unescape_string (file_parts.query, NULL); + gio_file = g_file_new_for_uri (new_uri); + + g_free (new_uri); + } + else { + GFile *base; + char *base_uri; + char *new_uri; + + base = gth_catalog_get_base (); + base_uri = g_file_get_uri (base); + new_uri = _g_uri_append_path (base_uri, file_parts.path); + gio_file = g_file_new_for_uri (new_uri); + + g_free (new_uri); + g_free (base_uri); + g_object_unref (base); } - else - gio_file = g_file_dup (file); - g_free (child_uri); + g_free (uri); return gio_file; } @@ -898,17 +782,16 @@ gth_catalog_file_from_relative_path (const char *name, const char *file_extension) { - - char *partial_uri; + char *path; char *uri; GFile *file; - partial_uri = g_uri_escape_string ((name[0] == '/' ? name + 1 : name), G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, FALSE); - uri = g_strconcat ("catalog:///", partial_uri, file_extension, NULL); + path = g_strconcat (name, file_extension, NULL); + uri = _g_uri_append_path ("catalog:///", path); file = g_file_new_for_uri (uri); g_free (uri); - g_free (partial_uri); + g_free (path); return file; } @@ -1000,13 +883,18 @@ gio_file = gth_catalog_file_to_gio_file (file); istream = g_file_read (gio_file, NULL, NULL); if (istream != NULL) { - gssize n; + gsize bytes_read; - n = g_input_stream_read (G_INPUT_STREAM (istream), buffer, buffer_size - 1, NULL, NULL); - if (n > 0) { + if (g_input_stream_read_all (G_INPUT_STREAM (istream), + buffer, + buffer_size - 1, + &bytes_read, + NULL, + NULL)) + { char *exif_date; - buffer[n] = '\0'; + buffer[bytes_read] = '\0'; name = get_tag_value (buffer, "", ""); exif_date = get_tag_value (buffer, "", ""); if (exif_date != NULL) @@ -1044,8 +932,9 @@ typedef struct { - ReadyCallback ready_func; - gpointer user_data; + GFile *file; + ReadyCallback ready_func; + gpointer user_data; } LoadData; @@ -1056,16 +945,18 @@ gpointer user_data) { LoadData *load_data = user_data; - GthCatalog *catalog = NULL; + GthCatalog *catalog; if (error == NULL) { - catalog = gth_hook_invoke_get ("gth-catalog-load-from-data", *buffer); - if (catalog != NULL) - gth_catalog_load_from_data (catalog, *buffer, count, &error); + catalog = gth_catalog_new_from_data (*buffer, count, &error); + if (catalog == NULL) + catalog = gth_catalog_new_for_file (load_data->file); } - + else + catalog = NULL; load_data->ready_func (G_OBJECT (catalog), error, load_data->user_data); + g_object_unref (load_data->file); g_free (load_data); } @@ -1080,6 +971,7 @@ GFile *gio_file; load_data = g_new0 (LoadData, 1); + load_data->file = g_object_ref (file); load_data->ready_func = ready_func; load_data->user_data = user_data; @@ -1144,9 +1036,7 @@ if (! _g_file_load_in_buffer (gio_file, &buffer, &buffer_size, NULL, NULL)) return NULL; - catalog = gth_hook_invoke_get ("gth-catalog-load-from-data", buffer); - if (catalog != NULL) - gth_catalog_load_from_data (catalog, buffer, buffer_size, NULL); + catalog = gth_catalog_new_from_data (buffer, buffer_size, NULL); g_free (buffer); g_object_unref (gio_file); @@ -1213,3 +1103,123 @@ _g_object_unref (gio_parent); g_object_unref (gio_file); } + + +/* -- gth_catalog_list_async -- */ + + +typedef struct { + GthCatalog *catalog; + const char *attributes; + CatalogReadyCallback list_ready_func; + gpointer user_data; + GList *current_file; + GList *files; + GCancellable *cancellable; +} ListData; + + +static void +gth_catalog_list_done (ListData *list_data, + GError *error) +{ + if (list_data->list_ready_func != NULL) { + list_data->files = g_list_reverse (list_data->files); + list_data->list_ready_func (list_data->catalog, list_data->files, error, list_data->user_data); + } + + _g_object_list_unref (list_data->files); + _g_object_unref (list_data->cancellable); + _g_object_unref (list_data->catalog); + g_free (list_data); +} + + +static void +catalog_file_info_ready_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + ListData *list_data = user_data; + GFile *file; + GFileInfo *info; + + file = (GFile*) source_object; + info = g_file_query_info_finish (file, result, NULL); + if (info != NULL) { + list_data->files = g_list_prepend (list_data->files, gth_file_data_new (file, info)); + g_object_unref (info); + } + + list_data->current_file = list_data->current_file->next; + if (list_data->current_file == NULL) { + gth_catalog_list_done (list_data, NULL); + return; + } + + g_file_query_info_async ((GFile *) list_data->current_file->data, + list_data->attributes, + 0, + G_PRIORITY_DEFAULT, + list_data->cancellable, + catalog_file_info_ready_cb, + list_data); +} + + +static void +list__catalog_buffer_ready_cb (void **buffer, + gsize count, + GError *error, + gpointer user_data) +{ + ListData *list_data = user_data; + + if ((error == NULL) && (*buffer != NULL)) { + list_data->catalog = gth_catalog_new_from_data (*buffer, count, &error); + if (list_data->catalog == NULL) { + gth_catalog_list_done (list_data, error); + return; + } + + list_data->current_file = list_data->catalog->priv->file_list; + if (list_data->current_file == NULL) { + gth_catalog_list_done (list_data, NULL); + return; + } + + g_file_query_info_async ((GFile *) list_data->current_file->data, + list_data->attributes, + 0, + G_PRIORITY_DEFAULT, + list_data->cancellable, + catalog_file_info_ready_cb, + list_data); + } + else + gth_catalog_list_done (list_data, error); +} + + +void +gth_catalog_list_async (GFile *file, + const char *attributes, + GCancellable *cancellable, + CatalogReadyCallback ready_func, + gpointer user_data) +{ + ListData *list_data; + + list_data = g_new0 (ListData, 1); + list_data->attributes = attributes; + list_data->list_ready_func = ready_func; + list_data->user_data = user_data; + list_data->cancellable = _g_object_ref (cancellable); + + _g_file_load_async (file, + G_PRIORITY_DEFAULT, + list_data->cancellable, + list__catalog_buffer_ready_cb, + list_data); +} + diff -Nru gthumb-3.8.3/extensions/catalogs/gth-catalog.h gthumb-3.9.1/extensions/catalogs/gth-catalog.h --- gthumb-3.8.3/extensions/catalogs/gth-catalog.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/gth-catalog.h 2020-03-07 19:03:13.406956400 +0000 @@ -73,6 +73,10 @@ GType gth_catalog_get_type (void) G_GNUC_CONST; GthCatalog * gth_catalog_new (void); +GthCatalog * gth_catalog_new_for_file (GFile *file); +GthCatalog * gth_catalog_new_from_data (const void *buffer, + gsize count, + GError **error); void gth_catalog_set_file (GthCatalog *catalog, GFile *file); GFile * gth_catalog_get_file (GthCatalog *catalog); @@ -87,10 +91,6 @@ gboolean inverse); const char * gth_catalog_get_order (GthCatalog *catalog, gboolean *inverse); -void gth_catalog_load_from_data (GthCatalog *catalog, - const void *buffer, - gsize count, - GError **error); char * gth_catalog_to_data (GthCatalog *catalog, gsize *length); void gth_catalog_set_file_list (GthCatalog *catalog, @@ -101,12 +101,6 @@ int pos); int gth_catalog_remove_file (GthCatalog *catalog, GFile *file); -void gth_catalog_list_async (GthCatalog *catalog, - const char *attributes, - GCancellable *cancellable, - CatalogReadyCallback ready_func, - gpointer user_data); -void gth_catalog_cancel (GthCatalog *catalog); void gth_catalog_update_metadata (GthCatalog *catalog, GthFileData *file_data); int gth_catalog_get_size (GthCatalog *catalog); @@ -133,5 +127,10 @@ const char *extension); GthCatalog * gth_catalog_load_from_file (GFile *file); void gth_catalog_save (GthCatalog *catalog); +void gth_catalog_list_async (GFile *catalog, + const char *attributes, + GCancellable *cancellable, + CatalogReadyCallback ready_func, + gpointer user_data); #endif /*GTH_CATALOG_H*/ diff -Nru gthumb-3.8.3/extensions/catalogs/gth-file-source-catalogs.c gthumb-3.9.1/extensions/catalogs/gth-file-source-catalogs.c --- gthumb-3.8.3/extensions/catalogs/gth-file-source-catalogs.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/gth-file-source-catalogs.c 2020-03-07 19:03:13.406956400 +0000 @@ -185,23 +185,23 @@ typedef struct { - GthFileSourceCatalogs *catalogs; + GthFileSourceCatalogs *file_souce; GthFileData *file_data; char *attributes; ReadyCallback ready_callback; gpointer user_data; - GthCatalog *catalog; + GFile *gio_file; } MetadataOpData; static void metadata_op_free (MetadataOpData *metadata_op) { - gth_file_source_set_active (GTH_FILE_SOURCE (metadata_op->catalogs), FALSE); + gth_file_source_set_active (GTH_FILE_SOURCE (metadata_op->file_souce), FALSE); g_object_unref (metadata_op->file_data); g_free (metadata_op->attributes); - g_object_unref (metadata_op->catalog); - g_object_unref (metadata_op->catalogs); + g_object_unref (metadata_op->gio_file); + g_object_unref (metadata_op->file_souce); g_free (metadata_op); } @@ -213,7 +213,7 @@ gpointer user_data) { MetadataOpData *metadata_op = user_data; - GthFileSourceCatalogs *catalogs = metadata_op->catalogs; + GthFileSourceCatalogs *catalogs = metadata_op->file_souce; metadata_op->ready_callback (G_OBJECT (catalogs), error, metadata_op->user_data); metadata_op_free (metadata_op); @@ -226,45 +226,51 @@ GError *error, gpointer user_data) { - MetadataOpData *metadata_op = user_data; - GthFileSourceCatalogs *catalogs = metadata_op->catalogs; - GFile *gio_file; - void *catalog_buffer; - gsize catalog_size; + MetadataOpData *metadata_op = user_data; + GthCatalog *catalog; + void *catalog_buffer; + gsize catalog_size; if (error != NULL) { - metadata_op->ready_callback (G_OBJECT (catalogs), error, metadata_op->user_data); + metadata_op->ready_callback (G_OBJECT (metadata_op->file_souce), error, metadata_op->user_data); metadata_op_free (metadata_op); return; } - gth_catalog_load_from_data (metadata_op->catalog, *buffer, count, &error); + catalog = gth_catalog_new_from_data (*buffer, count, &error); + if (catalog == NULL) { + metadata_op->ready_callback (G_OBJECT (metadata_op->file_souce), error, metadata_op->user_data); + metadata_op_free (metadata_op); + return; + } + + gth_catalog_set_file (catalog, metadata_op->gio_file); if (error != NULL) { - metadata_op->ready_callback (G_OBJECT (catalogs), error, metadata_op->user_data); + metadata_op->ready_callback (G_OBJECT (metadata_op->file_souce), error, metadata_op->user_data); + g_object_unref (catalog); metadata_op_free (metadata_op); return; } if (_g_file_attributes_matches_any (metadata_op->attributes, "sort::*")) - gth_catalog_set_order (metadata_op->catalog, + gth_catalog_set_order (catalog, g_file_info_get_attribute_string (metadata_op->file_data->info, "sort::type"), g_file_info_get_attribute_boolean (metadata_op->file_data->info, "sort::inverse")); - gth_hook_invoke ("gth-catalog-read-metadata", metadata_op->catalog, metadata_op->file_data); + gth_hook_invoke ("gth-catalog-read-metadata", catalog, metadata_op->file_data); - catalog_buffer = gth_catalog_to_data (metadata_op->catalog, &catalog_size); - gio_file = gth_catalog_file_to_gio_file (metadata_op->file_data->file); - _g_file_write_async (gio_file, + catalog_buffer = gth_catalog_to_data (catalog, &catalog_size); + _g_file_write_async (metadata_op->gio_file, catalog_buffer, catalog_size, TRUE, G_PRIORITY_DEFAULT, - gth_file_source_get_cancellable (GTH_FILE_SOURCE (metadata_op->catalogs)), + gth_file_source_get_cancellable (GTH_FILE_SOURCE (metadata_op->file_souce)), write_metadata_write_buffer_ready_cb, metadata_op); - g_object_unref (gio_file); + g_object_unref (catalog); } @@ -278,7 +284,6 @@ GthFileSourceCatalogs *catalogs = (GthFileSourceCatalogs *) file_source; char *uri; MetadataOpData *metadata_op; - GFile *gio_file; uri = g_file_get_uri (file_data->file); if (! g_str_has_suffix (uri, ".gqv") @@ -291,7 +296,7 @@ } metadata_op = g_new0 (MetadataOpData, 1); - metadata_op->catalogs = g_object_ref (catalogs); + metadata_op->file_souce = g_object_ref (catalogs); metadata_op->file_data = g_object_ref (file_data); metadata_op->attributes = g_strdup (attributes); metadata_op->ready_callback = callback; @@ -300,16 +305,13 @@ gth_file_source_set_active (GTH_FILE_SOURCE (catalogs), TRUE); g_cancellable_reset (gth_file_source_get_cancellable (file_source)); - metadata_op->catalog = gth_catalog_new (); - gio_file = gth_file_source_to_gio_file (file_source, file_data->file); - gth_catalog_set_file (metadata_op->catalog, gio_file); - _g_file_load_async (gio_file, + metadata_op->gio_file = gth_file_source_to_gio_file (file_source, file_data->file); + _g_file_load_async (metadata_op->gio_file, G_PRIORITY_DEFAULT, gth_file_source_get_cancellable (file_source), write_metadata_load_buffer_ready_cb, metadata_op); - g_object_unref (gio_file); g_free (uri); } @@ -343,11 +345,12 @@ { ReadMetadataOpData *read_metadata = user_data; - /* ignore errors */ - if (error != NULL) + if (error != NULL) { + /* ignore errors */ g_clear_error (&error); - - if (object != NULL) { + } + else { + g_assert (object != NULL); gth_catalog_update_metadata (GTH_CATALOG (object), read_metadata->file_data); g_object_unref (object); } @@ -435,6 +438,7 @@ if (catalog != NULL) { char *uri; char *clean_name; + char *ext; char *name; GFile *gio_new_file; char *data; @@ -443,7 +447,8 @@ uri = g_file_get_uri (file); clean_name = _g_filename_clear_for_file (edit_name); - name = g_strconcat (clean_name, _g_uri_get_file_extension (uri), NULL); + ext = _g_uri_get_extension (uri); + name = g_strconcat (clean_name, ext, NULL); new_file = g_file_get_child_for_display_name (parent, name, &error); gth_catalog_set_file (catalog, new_file); gth_catalog_set_name (catalog, edit_name); @@ -477,6 +482,7 @@ g_free (data); g_object_unref (gio_new_file); g_free (clean_name); + g_free (ext); g_free (name); g_free (uri); } @@ -528,7 +534,6 @@ ForEachChildCallback for_each_file_func; ReadyCallback ready_func; gpointer user_data; - GthCatalog *catalog; GList *to_visit; } ForEachChildData; @@ -537,7 +542,6 @@ for_each_child_data_free (ForEachChildData *data) { _g_object_list_unref (data->to_visit); - g_object_ref (data->catalog); g_free (data->attributes); g_object_ref (data->file_source); } @@ -674,15 +678,14 @@ || g_str_has_suffix (uri, ".catalog") || g_str_has_suffix (uri, ".search")) { - gth_catalog_set_file (data->catalog, gio_file); - gth_catalog_list_async (data->catalog, + gth_catalog_list_async (gio_file, data->attributes, gth_file_source_get_cancellable (data->file_source), for_each_child__catalog_list_ready_cb, data); } else - g_directory_foreach_child (gio_file, + _g_directory_foreach_child (gio_file, FALSE, TRUE, GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE, @@ -743,7 +746,6 @@ data->for_each_file_func = for_each_file_func; data->ready_func = ready_func; data->user_data = user_data; - data->catalog = gth_catalog_new (); gio_parent = gth_file_source_to_gio_file (file_source, parent); g_file_query_info_async (gio_parent, @@ -825,6 +827,7 @@ return; } + g_assert (catalog != NULL); cod->catalog = (GthCatalog *) catalog; if (cod->destination_position >= 0) @@ -944,13 +947,13 @@ first_file = ccd->file_list->data; if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_EXISTS)) { - char *uri; - const char *extension; - char *msg; - GtkWidget *d; + char *uri; + char *extension; + char *msg; + GtkWidget *d; uri = g_file_get_uri (first_file); - extension = _g_uri_get_file_extension (uri); + extension = _g_uri_get_extension (uri); if ((g_strcmp0 (extension, ".catalog") == 0) || (g_strcmp0 (extension, ".search") == 0)) msg = g_strdup_printf (_("The catalog “%s” already exists, do you want to overwrite it?"), g_file_info_get_display_name (ccd->destination->info)); else @@ -972,6 +975,7 @@ gtk_widget_show (d); g_free (msg); + g_free (extension); g_free (uri); return; @@ -1020,19 +1024,19 @@ gio_list = gth_file_source_to_gio_file_list (ccd->file_source, ccd->file_list); gio_destination = gth_file_source_to_gio_file (ccd->file_source, ccd->destination->file); - _g_copy_files_async (gio_list, - gio_destination, - ccd->move, - GTH_FILE_COPY_DEFAULT, - default_response, - G_PRIORITY_DEFAULT, - gth_file_source_get_cancellable (ccd->file_source), - ccd->progress_callback, - ccd->user_data, - ccd->dialog_callback, - ccd->user_data, - copy_catalog_ready_cb, - ccd); + _g_file_list_copy_async (gio_list, + gio_destination, + ccd->move, + GTH_FILE_COPY_DEFAULT, + default_response, + G_PRIORITY_DEFAULT, + gth_file_source_get_cancellable (ccd->file_source), + ccd->progress_callback, + ccd->user_data, + ccd->dialog_callback, + ccd->user_data, + copy_catalog_ready_cb, + ccd); g_object_unref (gio_destination); _g_object_list_unref (gio_list); @@ -1140,25 +1144,17 @@ g_free (message); } - _g_query_info_async (cod->file_list, - GTH_LIST_DEFAULT, - GFILE_NAME_TYPE_ATTRIBUTES, - gth_file_source_get_cancellable (file_source), - copy__file_list_info_ready_cb, - cod); + _g_file_list_query_info_async (cod->file_list, + GTH_LIST_DEFAULT, + GFILE_NAME_TYPE_ATTRIBUTES, + gth_file_source_get_cancellable (file_source), + copy__file_list_info_ready_cb, + cod); } } static gboolean -gth_file_source_catalogs_can_cut (GthFileSource *file_source, - GFile *file) -{ - return g_file_has_uri_scheme (file, "catalog"); -} - - -static gboolean gth_file_source_catalogs_is_reorderable (GthFileSource *file_source) { return TRUE; @@ -1247,6 +1243,7 @@ return; } + g_assert (object != NULL); catalog = (GthCatalog *) object; reorder_data->new_order = reorder_catalog_list (catalog, reorder_data->visible_files, @@ -1370,15 +1367,8 @@ return; } - data->catalog = gth_hook_invoke_get ("gth-catalog-load-from-data", *buffer); + data->catalog = gth_catalog_new_from_data (*buffer, count, &error); if (data->catalog == NULL) { - error = g_error_new_literal (G_IO_ERROR, G_IO_ERROR_FAILED, _("Invalid file format")); - remove_from_catalog_end (error, data); - return; - } - - gth_catalog_load_from_data (data->catalog, *buffer, count, &error); - if (error != NULL) { remove_from_catalog_end (error, data); return; } @@ -1453,6 +1443,68 @@ } +static GdkDragAction +gth_file_source_catalogs_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file) +{ + GdkDragAction actions = 0; + char *dest_uri; + char *dest_scheme; + char *dest_ext; + gboolean dest_is_catalog; + char *file_uri; + char *file_scheme; + char *file_ext; + gboolean file_is_catalog; + + dest_uri = g_file_get_uri (destination); + dest_scheme = gth_main_get_source_scheme (dest_uri); + dest_ext = _g_uri_get_extension (dest_uri); + dest_is_catalog = _g_str_equal (dest_ext, ".catalog") || _g_str_equal (dest_ext, ".search"); + + file_uri = g_file_get_uri (file); + file_scheme = gth_main_get_source_scheme (file_uri); + file_ext = _g_uri_get_extension (file_uri); + file_is_catalog = _g_str_equal (file_ext, ".catalog") || _g_str_equal (file_ext, ".search"); + + if (_g_str_equal (dest_scheme, "catalog") + && dest_is_catalog + && _g_str_equal (file_scheme, "file")) + { + /* Copy files into a catalog. */ + actions = GDK_ACTION_COPY; + } + + else if (_g_str_equal (file_scheme, "catalog") + && file_is_catalog + && _g_str_equal (dest_scheme, "catalog") + && ! dest_is_catalog) + { + /* Move a catalog into a library. */ + actions = GDK_ACTION_MOVE; + } + + else if (_g_str_equal (file_scheme, "catalog") + && ! file_is_catalog + && _g_str_equal (dest_scheme, "catalog") + && ! dest_is_catalog) + { + /* Move a library into another library. */ + actions = GDK_ACTION_MOVE; + } + + g_free (file_ext); + g_free (file_scheme); + g_free (file_uri); + g_free (dest_ext); + g_free (dest_scheme); + g_free (dest_uri); + + return actions; +} + + static void gth_file_source_catalogs_finalize (GObject *object) { @@ -1485,11 +1537,11 @@ file_source_class->rename = gth_file_source_catalogs_rename; file_source_class->for_each_child = gth_file_source_catalogs_for_each_child; file_source_class->copy = gth_file_source_catalogs_copy; - file_source_class->can_cut = gth_file_source_catalogs_can_cut; file_source_class->is_reorderable = gth_file_source_catalogs_is_reorderable; file_source_class->reorder = gth_file_source_catalogs_reorder; file_source_class->remove = gth_file_source_catalogs_remove; file_source_class->deleted_from_disk = gth_file_source_catalogs_deleted_from_disk; + file_source_class->get_drop_actions = gth_file_source_catalogs_get_drop_actions; } diff -Nru gthumb-3.8.3/extensions/catalogs/gth-organize-task.c gthumb-3.9.1/extensions/catalogs/gth-organize-task.c --- gthumb-3.8.3/extensions/catalogs/gth-organize-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/gth-organize-task.c 2020-03-07 19:03:13.406956400 +0000 @@ -280,8 +280,7 @@ catalog_file = gth_catalog_get_file_for_date (date_time, ".search"); catalog = (GthCatalog *) gth_search_new (); - gth_search_set_folder (GTH_SEARCH (catalog), self->priv->folder); - gth_search_set_recursive (GTH_SEARCH (catalog), self->priv->recursive); + gth_search_set_source (GTH_SEARCH (catalog), self->priv->folder, self->priv->recursive); date_test = gth_main_get_registered_object (GTH_TYPE_TEST, (self->priv->group_policy == GTH_GROUP_POLICY_MODIFIED_DATE) ? "file::mtime" : "Embedded::Photo::DateTimeOriginal"); gth_test_simple_set_data_as_date (GTH_TEST_SIMPLE (date_test), date_time->date); @@ -378,8 +377,7 @@ catalog_file = gth_catalog_get_file_for_tag (tag, ".search"); catalog = (GthCatalog *) gth_search_new (); - gth_search_set_folder (GTH_SEARCH (catalog), self->priv->folder); - gth_search_set_recursive (GTH_SEARCH (catalog), self->priv->recursive); + gth_search_set_source (GTH_SEARCH (catalog), self->priv->folder, self->priv->recursive); tag_test = gth_main_get_registered_object (GTH_TYPE_TEST, (self->priv->group_policy == GTH_GROUP_POLICY_TAG) ? "comment::category" : "general::tags"); gth_test_category_set (GTH_TEST_CATEGORY (tag_test), GTH_TEST_OP_CONTAINS, FALSE, tag); @@ -573,7 +571,7 @@ break; } - g_directory_foreach_child (self->priv->folder, + _g_directory_foreach_child (self->priv->folder, self->priv->recursive, TRUE, attributes, @@ -740,12 +738,12 @@ gtk_widget_show (GET_WIDGET ("preview_box")); file_list = gth_catalog_get_file_list (catalog); - _g_query_info_async (file_list, - GTH_LIST_DEFAULT, - GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE, - NULL, - file_list_info_ready_cb, - self); + _g_file_list_query_info_async (file_list, + GTH_LIST_DEFAULT, + GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE, + NULL, + file_list_info_ready_cb, + self); } g_free (key); diff -Nru gthumb-3.8.3/extensions/catalogs/main.c gthumb-3.9.1/extensions/catalogs/main.c --- gthumb-3.8.3/extensions/catalogs/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/main.c 2020-03-07 19:03:13.406956400 +0000 @@ -40,6 +40,15 @@ gth_hook_register ("gth-catalog-load-from-data", 1); /** + * Called to create the right catalog class for the given uri. + * + * @uri (const char *): the file uri. + * @return (GthCatalog *): return a pointer to the object that can + * handle the catalog uri, or NULL if the data type doesn't match. + **/ + gth_hook_register ("gth-catalog-new-for-uri", 1); + + /** * Called to update the catalog data from a given file data. * * @catalog (GthCatalog *): the catalog to update @@ -109,11 +118,12 @@ gth_hook_add_callback ("command-line-files", 10, G_CALLBACK (catalogs__command_line_files_cb), NULL); gth_hook_add_callback ("gth-catalog-load-from-data", 10, G_CALLBACK (catalogs__gth_catalog_load_from_data_cb), NULL); + gth_hook_add_callback ("gth-catalog-new-for-uri", 10, G_CALLBACK (catalogs__gth_catalog_new_for_uri_cb), NULL); gth_main_register_file_source (GTH_TYPE_FILE_SOURCE_CATALOGS); gth_hook_add_callback ("initialize", 10, G_CALLBACK (catalogs__initialize_cb), NULL); gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (catalogs__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (catalogs__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (catalogs__gth_browser_selection_changed_cb), NULL); gth_hook_add_callback ("gth-browser-folder-tree-popup-before", 10, G_CALLBACK (catalogs__gth_browser_folder_tree_popup_before_cb), NULL); gth_hook_add_callback ("gth-browser-load-location-after", 10, G_CALLBACK (catalogs__gth_browser_load_location_after_cb), NULL); gth_hook_add_callback ("gth-browser-update-extra-widget", 10, G_CALLBACK (catalogs__gth_browser_update_extra_widget_cb), NULL); diff -Nru gthumb-3.8.3/extensions/catalogs/preferences.h gthumb-3.9.1/extensions/catalogs/preferences.h --- gthumb-3.8.3/extensions/catalogs/preferences.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/catalogs/preferences.h 2020-03-07 19:03:13.406956400 +0000 @@ -0,0 +1,33 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef CATALOGS_PREFERENCES_H +#define CATALOGS_PREFERENCES_H + +/* schema */ + +#define GTHUMB_CATALOGS_SCHEMA GTHUMB_SCHEMA ".catalogs" + +/* keys */ + +#define PREF_CATALOGS_LAST_CATALOG "last-catalog" + +#endif /* CATALOGS_PREFERENCES_H */ diff -Nru gthumb-3.8.3/extensions/change_date/callbacks.c gthumb-3.9.1/extensions/change_date/callbacks.c --- gthumb-3.8.3/extensions/change_date/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/change_date/callbacks.c 2020-03-07 19:03:13.410289800 +0000 @@ -55,12 +55,8 @@ void -cd__gth_browser_update_sensitivity_cb (GthBrowser *browser) +cd__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; - gboolean sensitive; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - sensitive = n_selected > 0; - gth_window_enable_action (GTH_WINDOW (browser), "change-date", sensitive); + gth_window_enable_action (GTH_WINDOW (browser), "change-date", n_selected > 0); } diff -Nru gthumb-3.8.3/extensions/change_date/callbacks.h gthumb-3.9.1/extensions/change_date/callbacks.h --- gthumb-3.8.3/extensions/change_date/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/change_date/callbacks.h 2020-03-07 19:03:13.410289800 +0000 @@ -25,6 +25,7 @@ #include void cd__gth_browser_construct_cb (GthBrowser *browser); -void cd__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void cd__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/change_date/change_date.extension.desktop.in.in gthumb-3.9.1/extensions/change_date/change_date.extension.desktop.in.in --- gthumb-3.8.3/extensions/change_date/change_date.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/change_date/change_date.extension.desktop.in.in 2020-03-07 19:03:13.410289800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Change date Comment=Change the files date -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=List-Tool diff -Nru gthumb-3.8.3/extensions/change_date/gth-change-date-task.c gthumb-3.9.1/extensions/change_date/gth-change-date-task.c --- gthumb-3.8.3/extensions/change_date/gth-change-date-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/change_date/gth-change-date-task.c 2020-03-07 19:03:13.410289800 +0000 @@ -320,7 +320,7 @@ else update_modification_time (self); - g_ptr_array_free (attribute_v, TRUE); + g_ptr_array_unref (attribute_v); gth_datetime_free (date_time); } diff -Nru gthumb-3.8.3/extensions/change_date/main.c gthumb-3.9.1/extensions/change_date/main.c --- gthumb-3.8.3/extensions/change_date/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/change_date/main.c 2020-03-07 19:03:13.410289800 +0000 @@ -30,7 +30,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 50, G_CALLBACK (cd__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (cd__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (cd__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/comments/comments.extension.desktop.in.in gthumb-3.9.1/extensions/comments/comments.extension.desktop.in.in --- gthumb-3.8.3/extensions/comments/comments.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/comments/comments.extension.desktop.in.in 2020-03-07 19:03:13.410289800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Comments and tags Comment=Add comments and tags to any file type. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Metadata diff -Nru gthumb-3.8.3/extensions/comments/gth-comment.c gthumb-3.9.1/extensions/comments/gth-comment.c --- gthumb-3.8.3/extensions/comments/gth-comment.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/comments/gth-comment.c 2020-03-07 19:03:13.410289800 +0000 @@ -82,7 +82,7 @@ gth_comment_free_data (self); gth_comment_clear_categories (self); - g_ptr_array_free (self->priv->categories, TRUE); + g_ptr_array_unref (self->priv->categories); g_date_free (self->priv->date); gth_time_free (self->priv->time_of_day); @@ -425,7 +425,7 @@ gth_comment_clear_categories (GthComment *self) { g_ptr_array_foreach (self->priv->categories, (GFunc) g_free, NULL); - g_ptr_array_free (self->priv->categories, TRUE); + g_ptr_array_unref (self->priv->categories); self->priv->categories = g_ptr_array_new (); } diff -Nru gthumb-3.8.3/extensions/contact_sheet/callbacks.c gthumb-3.9.1/extensions/contact_sheet/callbacks.c --- gthumb-3.8.3/extensions/contact_sheet/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/callbacks.c 2020-03-07 19:03:13.410289800 +0000 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include "actions.h" #include "callbacks.h" @@ -49,7 +49,7 @@ actions, G_N_ELEMENTS (actions), browser); - gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS), + gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_TOOLS4), action_entries, G_N_ELEMENTS (action_entries)); } diff -Nru gthumb-3.8.3/extensions/contact_sheet/contact_sheet.extension.desktop.in.in gthumb-3.9.1/extensions/contact_sheet/contact_sheet.extension.desktop.in.in --- gthumb-3.8.3/extensions/contact_sheet/contact_sheet.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/contact_sheet.extension.desktop.in.in 2020-03-07 19:03:13.410289800 +0000 @@ -1,12 +1,12 @@ [Extension] Name=Contact Sheet Comment=Create an index image displaying the thumbnails of the selected files. -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter [Loader] Type=module API=@GTHUMB_API_VERSION@ -Requires=export_tools +Requires=list_tools diff -Nru gthumb-3.8.3/extensions/contact_sheet/dlg-contact-sheet.c gthumb-3.9.1/extensions/contact_sheet/dlg-contact-sheet.c --- gthumb-3.8.3/extensions/contact_sheet/dlg-contact-sheet.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/dlg-contact-sheet.c 2020-03-07 19:03:13.410289800 +0000 @@ -333,7 +333,7 @@ continue; } - if (g_strcmp0 (_g_uri_get_file_extension (g_file_info_get_name (file_info)), ".cst") != 0) { + if (g_strcmp0 (_g_uri_get_extension (g_file_info_get_name (file_info)), ".cst") != 0) { g_object_unref (file_info); continue; } @@ -724,7 +724,7 @@ gth_browser_set_dialog (browser, "contact_sheet", data->dialog); g_object_set_data (G_OBJECT (data->dialog), "dialog_data", data); - data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT); + data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT, TRUE); gtk_widget_show (data->thumbnail_caption_chooser); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("thumbnail_caption_scrolledwindow")), data->thumbnail_caption_chooser); @@ -743,7 +743,7 @@ else s_value = _g_settings_get_uri (data->settings, PREF_CONTACT_SHEET_DESTINATION); if (s_value == NULL) - s_value = g_strdup (get_home_uri ()); + s_value = g_strdup (_g_uri_get_home ()); gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton")), s_value); g_free (s_value); diff -Nru gthumb-3.8.3/extensions/contact_sheet/dlg-image-wall.c gthumb-3.9.1/extensions/contact_sheet/dlg-image-wall.c --- gthumb-3.8.3/extensions/contact_sheet/dlg-image-wall.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/dlg-image-wall.c 2020-03-07 19:03:13.410289800 +0000 @@ -265,7 +265,7 @@ else s_value = _g_settings_get_uri (data->settings, PREF_IMAGE_WALL_DESTINATION); if (s_value == NULL) - s_value = g_strdup (get_home_uri ()); + s_value = g_strdup (_g_uri_get_home ()); gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton")), s_value); g_free (s_value); diff -Nru gthumb-3.8.3/extensions/contact_sheet/gth-contact-sheet-creator.c gthumb-3.9.1/extensions/contact_sheet/gth-contact-sheet-creator.c --- gthumb-3.8.3/extensions/contact_sheet/gth-contact-sheet-creator.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/gth-contact-sheet-creator.c 2020-03-07 19:03:13.410289800 +0000 @@ -231,6 +231,47 @@ } +static char * +_g_get_name_from_template (char **utf8_template, + int n) +{ + GString *s; + int i; + char *result; + + s = g_string_new (NULL); + + for (i = 0; utf8_template[i] != NULL; i++) { + const char *chunk = utf8_template[i]; + gunichar ch = g_utf8_get_char (chunk); + + if (ch != '#') + g_string_append (s, chunk); + else { + char *s_n; + int s_n_len; + int sharps_len = g_utf8_strlen (chunk, -1); + + s_n = g_strdup_printf ("%d", n); + s_n_len = strlen (s_n); + + while (s_n_len < sharps_len) { + g_string_append_c (s, '0'); + sharps_len--; + } + + g_string_append (s, s_n); + g_free (s_n); + } + } + + result = s->str; + g_string_free (s, FALSE); + + return result; +} + + static void begin_page (GthContactSheetCreator *self, int page_n) @@ -559,7 +600,6 @@ if (self->priv->imagemap_stream != NULL) { char *file; char *destination; - char *relative_uri; char *relative_path; char *alt_attribute; char *line; @@ -567,9 +607,8 @@ file = g_file_get_uri (file_data->file); destination = g_file_get_uri (self->priv->destination); - relative_uri = _g_uri_get_relative_path (file, destination); - relative_path = g_uri_unescape_string (relative_uri, ""); - alt_attribute = _g_escape_for_html (relative_path, -1); + relative_path = _g_uri_get_relative_path (file, destination); + alt_attribute = _g_utf8_escape_xml (relative_path); line = g_strdup_printf (" \"%s\"\n", frame_rect->x, @@ -586,7 +625,6 @@ g_free (line); g_free (alt_attribute); g_free (relative_path); - g_free (relative_uri); g_free (destination); g_free (file); } @@ -1127,7 +1165,7 @@ gth_contact_sheet_creator_set_header (GthContactSheetCreator *self, const char *value) { - _g_strset (&self->priv->header, value); + _g_str_set (&self->priv->header, value); } @@ -1135,7 +1173,7 @@ gth_contact_sheet_creator_set_footer (GthContactSheetCreator *self, const char *value) { - _g_strset (&self->priv->footer, value); + _g_str_set (&self->priv->footer, value); } @@ -1152,10 +1190,10 @@ gth_contact_sheet_creator_set_filename_template (GthContactSheetCreator *self, const char *filename_template) { - _g_strset (&self->priv->template, filename_template); + _g_str_set (&self->priv->template, filename_template); if (self->priv->template_v != NULL) g_strfreev (self->priv->template_v); - self->priv->template_v = _g_get_template_from_text (self->priv->template); + self->priv->template_v = _g_utf8_split_template (self->priv->template); } @@ -1164,8 +1202,8 @@ const char *mime_type, const char *file_extension) { - _g_strset (&self->priv->mime_type, mime_type); - _g_strset (&self->priv->file_extension, file_extension); + _g_str_set (&self->priv->mime_type, mime_type); + _g_str_set (&self->priv->file_extension, file_extension); } @@ -1249,6 +1287,6 @@ gth_contact_sheet_creator_set_thumbnail_caption (GthContactSheetCreator *self, const char *caption) { - _g_strset (&self->priv->thumbnail_caption, caption); + _g_str_set (&self->priv->thumbnail_caption, caption); self->priv->thumbnail_caption_v = g_strsplit (self->priv->thumbnail_caption, ",", -1); } diff -Nru gthumb-3.8.3/extensions/contact_sheet/main.c gthumb-3.9.1/extensions/contact_sheet/main.c --- gthumb-3.8.3/extensions/contact_sheet/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/contact_sheet/main.c 2020-03-07 19:03:13.410289800 +0000 @@ -29,7 +29,7 @@ G_MODULE_EXPORT void gthumb_extension_activate (void) { - gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (cs__gth_browser_construct_cb), NULL); + gth_hook_add_callback ("gth-browser-construct", 60, G_CALLBACK (cs__gth_browser_construct_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/convert_format/callbacks.c gthumb-3.9.1/extensions/convert_format/callbacks.c --- gthumb-3.8.3/extensions/convert_format/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/convert_format/callbacks.c 2020-03-07 19:03:13.413622900 +0000 @@ -55,12 +55,8 @@ void -cf__gth_browser_update_sensitivity_cb (GthBrowser *browser) +cf__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; - gboolean sensitive; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - sensitive = n_selected > 0; - gth_window_enable_action (GTH_WINDOW (browser), "convert-format", sensitive); + gth_window_enable_action (GTH_WINDOW (browser), "convert-format", n_selected > 0); } diff -Nru gthumb-3.8.3/extensions/convert_format/callbacks.h gthumb-3.9.1/extensions/convert_format/callbacks.h --- gthumb-3.8.3/extensions/convert_format/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/convert_format/callbacks.h 2020-03-07 19:03:13.413622900 +0000 @@ -25,6 +25,7 @@ #include void cf__gth_browser_construct_cb (GthBrowser *browser); -void cf__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void cf__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/convert_format/convert_format.extension.desktop.in.in gthumb-3.9.1/extensions/convert_format/convert_format.extension.desktop.in.in --- gthumb-3.8.3/extensions/convert_format/convert_format.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/convert_format/convert_format.extension.desktop.in.in 2020-03-07 19:03:13.413622900 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Convert format Comment=Save images in a different format -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=List-Tool diff -Nru gthumb-3.8.3/extensions/convert_format/main.c gthumb-3.9.1/extensions/convert_format/main.c --- gthumb-3.8.3/extensions/convert_format/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/convert_format/main.c 2020-03-07 19:03:13.413622900 +0000 @@ -30,7 +30,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 35, G_CALLBACK (cf__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (cf__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (cf__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/desktop_background/actions.c gthumb-3.9.1/extensions/desktop_background/actions.c --- gthumb-3.8.3/extensions/desktop_background/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/desktop_background/actions.c 2020-03-07 19:03:13.413622900 +0000 @@ -212,7 +212,7 @@ task = g_task_new (NULL, cancellable, callback, user_data); g_task_set_task_data (task, nw_data, (GDestroyNotify) new_wallpaper_data_free); - g_directory_foreach_child (nw_data->folder, + _g_directory_foreach_child (nw_data->folder, FALSE, FALSE, GFILE_NAME_TYPE_ATTRIBUTES, diff -Nru gthumb-3.8.3/extensions/desktop_background/callbacks.c gthumb-3.9.1/extensions/desktop_background/callbacks.c --- gthumb-3.8.3/extensions/desktop_background/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/desktop_background/callbacks.c 2020-03-07 19:03:13.413622900 +0000 @@ -58,10 +58,8 @@ void -db__gth_browser_update_sensitivity_cb (GthBrowser *browser) +db__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "set-desktop-background"), "enabled", n_selected == 1, NULL); } diff -Nru gthumb-3.8.3/extensions/desktop_background/callbacks.h gthumb-3.9.1/extensions/desktop_background/callbacks.h --- gthumb-3.8.3/extensions/desktop_background/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/desktop_background/callbacks.h 2020-03-07 19:03:13.413622900 +0000 @@ -25,6 +25,7 @@ #include void db__gth_browser_construct_cb (GthBrowser *browser); -void db__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void db__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/desktop_background/desktop_background.extension.desktop.in.in gthumb-3.9.1/extensions/desktop_background/desktop_background.extension.desktop.in.in --- gthumb-3.8.3/extensions/desktop_background/desktop_background.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/desktop_background/desktop_background.extension.desktop.in.in 2020-03-07 19:03:13.413622900 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Desktop background Comment=Set the image as desktop background -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=desktop Category=List-Tool diff -Nru gthumb-3.8.3/extensions/desktop_background/main.c gthumb-3.9.1/extensions/desktop_background/main.c --- gthumb-3.8.3/extensions/desktop_background/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/desktop_background/main.c 2020-03-07 19:03:13.413622900 +0000 @@ -30,7 +30,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 20, G_CALLBACK (db__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (db__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (db__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/edit_metadata/callbacks.c gthumb-3.9.1/extensions/edit_metadata/callbacks.c --- gthumb-3.8.3/extensions/edit_metadata/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/callbacks.c 2020-03-07 19:03:13.413622900 +0000 @@ -41,14 +41,20 @@ }; +static const GthShortcut shortcuts[] = { + { "edit-metadata", N_("Edit comment"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "c" }, + { "edit-tags", N_("Edit tags"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "t" }, +}; + + static const GthMenuEntry tools_actions[] = { { N_("Delete Metadata"), "win.delete-metadata" } }; static const GthMenuEntry file_list_actions[] = { - { N_("Comment"), "win.edit-metadata", "C" }, - { N_("Tags"), "win.edit-tags", "T" } + { N_("Comment"), "win.edit-metadata" }, + { N_("Tags"), "win.edit-tags" } }; @@ -61,6 +67,9 @@ actions, G_N_ELEMENTS (actions), browser); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); if (gth_main_extension_is_active ("list_tools")) gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_MORE_TOOLS), @@ -74,13 +83,26 @@ G_N_ELEMENTS (file_list_actions)); gth_browser_add_header_bar_button (browser, - GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, + GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT_METADATA, "comment-symbolic", _("Comment"), "win.edit-metadata", NULL); gth_browser_add_header_bar_button (browser, - GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, + GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT_METADATA, + "tag-symbolic", + _("Tags"), + "win.edit-tags", + NULL); + + gth_browser_add_header_bar_button (browser, + GTH_BROWSER_HEADER_SECTION_BROWSER_METADATA_TOOLS, + "comment-symbolic", + _("Comment"), + "win.edit-metadata", + NULL); + gth_browser_add_header_bar_button (browser, + GTH_BROWSER_HEADER_SECTION_BROWSER_METADATA_TOOLS, "tag-symbolic", _("Tags"), "win.edit-tags", @@ -89,42 +111,13 @@ void -edit_metadata__gth_browser_update_sensitivity_cb (GthBrowser *browser) +edit_metadata__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; gboolean sensitive; - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); sensitive = (n_selected > 0); - g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "edit-metadata"), "enabled", sensitive, NULL); g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "edit-tags"), "enabled", sensitive, NULL); g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "delete-metadata"), "enabled", sensitive, NULL); } - - -gpointer -edit_metadata__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event) -{ - gpointer result = NULL; - guint modifiers; - - modifiers = gtk_accelerator_get_default_mod_mask (); - if ((event->state & modifiers) != 0) - return NULL; - - switch (gdk_keyval_to_lower (event->keyval)) { - case GDK_KEY_c: - gth_browser_activate_edit_metadata (NULL, NULL, browser); - result = GINT_TO_POINTER (1); - break; - - case GDK_KEY_t: - gth_browser_activate_edit_tags (NULL, NULL, browser); - result = GINT_TO_POINTER (1); - break; - } - - return result; -} diff -Nru gthumb-3.8.3/extensions/edit_metadata/callbacks.h gthumb-3.9.1/extensions/edit_metadata/callbacks.h --- gthumb-3.8.3/extensions/edit_metadata/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/callbacks.h 2020-03-07 19:03:13.413622900 +0000 @@ -25,8 +25,7 @@ #include void edit_metadata__gth_browser_construct_cb (GthBrowser *browser); -void edit_metadata__gth_browser_update_sensitivity_cb (GthBrowser *browser); -gpointer edit_metadata__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event); +void edit_metadata__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/edit_metadata/dlg-edit-metadata.c gthumb-3.9.1/extensions/edit_metadata/dlg-edit-metadata.c --- gthumb-3.8.3/extensions/edit_metadata/dlg-edit-metadata.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/dlg-edit-metadata.c 2020-03-07 19:03:13.413622900 +0000 @@ -26,7 +26,7 @@ #include "gth-edit-metadata-dialog.h" -#define UPDATE_SELECTION_DELAY 300 +#define UPDATE_SELECTION_DELAY 50 typedef struct { @@ -137,6 +137,8 @@ if (data->close_dialog) close_dialog (data); + else + gth_browser_show_next_image (data->browser, FALSE, FALSE); dialog_data_unref (data); _g_object_unref (task); @@ -154,7 +156,7 @@ GList *scan; GthTask *task; - if ((response != GTK_RESPONSE_OK) && (response != GTK_RESPONSE_APPLY)) { + if (response != GTK_RESPONSE_OK) { cancel_file_list_loading (data); close_dialog (data); return; @@ -163,7 +165,7 @@ if (data->file_list == NULL) return; - data->close_dialog = (response == GTK_RESPONSE_OK); + data->close_dialog = ! gth_edit_metadata_dialog_get_keep_open (GTH_EDIT_METADATA_DIALOG (data->dialog)); /* get the parents list */ @@ -271,6 +273,8 @@ file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (data->browser)), items); loader_data->files = gth_file_data_list_to_file_list (file_data_list); + gtk_dialog_set_response_sensitive (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, loader_data->files != NULL); + data->loader = gth_load_file_data_task_new (loader_data->files, "*"); g_signal_connect (data->loader, "completed", @@ -310,10 +314,20 @@ data = g_new0 (DialogData, 1); data->ref = 1; data->browser = browser; - data->dialog = g_object_new (dialog_type, 0); + data->dialog = g_object_new (dialog_type, + "transient-for", GTK_WINDOW (browser), + "modal", FALSE, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + NULL); data->dialog_name = g_strdup (dialog_name); data->never_shown = TRUE; + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CLOSE, GTK_RESPONSE_CANCEL, + _GTK_LABEL_SAVE, GTK_RESPONSE_OK, + NULL); + + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); gth_browser_set_dialog (browser, data->dialog_name, data->dialog); g_signal_connect (G_OBJECT (data->dialog), diff -Nru gthumb-3.8.3/extensions/edit_metadata/edit_metadata.extension.desktop.in.in gthumb-3.9.1/extensions/edit_metadata/edit_metadata.extension.desktop.in.in --- gthumb-3.8.3/extensions/edit_metadata/edit_metadata.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/edit_metadata.extension.desktop.in.in 2020-03-07 19:03:13.413622900 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Edit metadata Comment=Allow to edit files metadata. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Metadata diff -Nru gthumb-3.8.3/extensions/edit_metadata/gth-edit-comment-dialog.c gthumb-3.9.1/extensions/edit_metadata/gth-edit-comment-dialog.c --- gthumb-3.8.3/extensions/edit_metadata/gth-edit-comment-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-comment-dialog.c 2020-03-07 19:03:13.413622900 +0000 @@ -28,6 +28,8 @@ struct _GthEditCommentDialogPrivate { GtkWidget *notebook; GtkWidget *save_changed_checkbutton; + GtkWidget *keep_open_check_button; + GtkWidget *info; }; @@ -49,27 +51,14 @@ { GthEditCommentDialog *self = GTH_EDIT_COMMENT_DIALOG (base); int n_files; - char *title; GList *pages; GList *scan; - n_files = g_list_length (file_list); - - /* update the title */ - - if (n_files == 1) { - GthFileData *file_data = file_list->data; - - /* Translators: the %s symbol in the string is a file name */ - title = g_strdup_printf (_("%s Metadata"), g_file_info_get_display_name (file_data->info)); - } - else - title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files); - gtk_window_set_title (GTK_WINDOW (self), title); - g_free (title); + gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list); /* update the widgets */ + n_files = g_list_length (file_list); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->priv->save_changed_checkbutton), n_files > 1); gtk_widget_set_sensitive (self->priv->save_changed_checkbutton, n_files > 1); @@ -112,11 +101,20 @@ } +static gboolean +gth_edit_comment_dialog_get_keep_open (GthEditMetadataDialog *base) +{ + GthEditCommentDialog *self = GTH_EDIT_COMMENT_DIALOG (base); + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->priv->keep_open_check_button)); +} + + static void gth_edit_comment_dialog_gth_edit_metadata_dialog_interface_init (GthEditMetadataDialogInterface *iface) { iface->set_file_list = gth_edit_comment_dialog_set_file_list; iface->update_info = gth_edit_comment_dialog_update_info; + iface->get_keep_open = gth_edit_comment_dialog_get_keep_open; } @@ -136,19 +134,20 @@ self->priv = gth_edit_comment_dialog_get_instance_private (self); + gtk_window_set_title (GTK_WINDOW (self), _("Comment")); gtk_window_set_resizable (GTK_WINDOW (self), TRUE); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 5); gtk_container_set_border_width (GTK_CONTAINER (self), 5); - gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL); - gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_SAVE, GTK_RESPONSE_APPLY); - gtk_dialog_add_button (GTK_DIALOG (self), _("Sa_ve and Close"), GTK_RESPONSE_OK); - vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); - gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); + gtk_container_set_border_width (GTK_CONTAINER (vbox), 0); gtk_widget_show (vbox); gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), vbox, TRUE, TRUE, 0); + self->priv->info = gth_file_selection_info_new (); + gtk_widget_show (self->priv->info); + gtk_box_pack_start (GTK_BOX (vbox), self->priv->info, FALSE, FALSE, 0); + self->priv->notebook = gtk_notebook_new (); gtk_widget_show (self->priv->notebook); gtk_box_pack_start (GTK_BOX (vbox), self->priv->notebook, TRUE, TRUE, 0); @@ -157,6 +156,10 @@ gtk_widget_show (self->priv->save_changed_checkbutton); gtk_box_pack_start (GTK_BOX (vbox), self->priv->save_changed_checkbutton, FALSE, FALSE, 0); + self->priv->keep_open_check_button = gtk_check_button_new_with_mnemonic (_("_Keep the dialog open")); + gtk_widget_show (self->priv->keep_open_check_button); + gtk_box_pack_start (GTK_BOX (vbox), self->priv->keep_open_check_button, FALSE, FALSE, 0); + pages = gth_main_get_type_set ("edit-comment-dialog-page"); if (pages == NULL) return; diff -Nru gthumb-3.8.3/extensions/edit_metadata/gth-edit-general-page.c gthumb-3.9.1/extensions/edit_metadata/gth-edit-general-page.c --- gthumb-3.8.3/extensions/edit_metadata/gth-edit-general-page.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-general-page.c 2020-03-07 19:03:13.413622900 +0000 @@ -523,17 +523,17 @@ tags_entry_list_collapsed_cb (GthTagsEntry *widget, gpointer user_data) { - GtkWidget *toplevel; + GtkWindow *toplevel; int width; /* collapse the dialog height */ - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (widget)); - if (! gtk_widget_is_toplevel (toplevel)) + toplevel = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (widget)); + if (toplevel == NULL) return; - gtk_window_get_size (GTK_WINDOW (toplevel), &width, NULL); - gtk_window_resize (GTK_WINDOW (toplevel), width, 1); + gtk_window_get_size (toplevel, &width, NULL); + gtk_window_resize (toplevel, width, 1); } diff -Nru gthumb-3.8.3/extensions/edit_metadata/gth-edit-metadata-dialog.c gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.c --- gthumb-3.8.3/extensions/edit_metadata/gth-edit-metadata-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.c 2020-03-07 19:03:13.413622900 +0000 @@ -47,3 +47,10 @@ { GTH_EDIT_METADATA_DIALOG_GET_INTERFACE (self)->update_info (self, file_list); } + + +gboolean +gth_edit_metadata_dialog_get_keep_open (GthEditMetadataDialog *self) +{ + return GTH_EDIT_METADATA_DIALOG_GET_INTERFACE (self)->get_keep_open (self); +} diff -Nru gthumb-3.8.3/extensions/edit_metadata/gth-edit-metadata-dialog.h gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.h --- gthumb-3.8.3/extensions/edit_metadata/gth-edit-metadata-dialog.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-metadata-dialog.h 2020-03-07 19:03:13.413622900 +0000 @@ -37,10 +37,11 @@ struct _GthEditMetadataDialogInterface { GTypeInterface parent_iface; - void (*set_file_list) (GthEditMetadataDialog *dialog, - GList *file_list /* GthFileData list */); - void (*update_info) (GthEditMetadataDialog *dialog, - GList *file_list /* GthFileData list */); + void (*set_file_list) (GthEditMetadataDialog *dialog, + GList *file_list /* GthFileData list */); + void (*update_info) (GthEditMetadataDialog *dialog, + GList *file_list /* GthFileData list */); + gboolean (*get_keep_open) (GthEditMetadataDialog *dialog); }; /* GthEditMetadataDialog */ @@ -50,6 +51,7 @@ GList *file_list /* GthFileData list */); void gth_edit_metadata_dialog_update_info (GthEditMetadataDialog *dialog, GList *file_list /* GthFileData list */); +gboolean gth_edit_metadata_dialog_get_keep_open (GthEditMetadataDialog *dialog); G_END_DECLS diff -Nru gthumb-3.8.3/extensions/edit_metadata/gth-edit-tags-dialog.c gthumb-3.9.1/extensions/edit_metadata/gth-edit-tags-dialog.c --- gthumb-3.8.3/extensions/edit_metadata/gth-edit-tags-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/gth-edit-tags-dialog.c 2020-03-07 19:03:13.413622900 +0000 @@ -32,6 +32,8 @@ struct _GthEditTagsDialogPrivate { GtkBuilder *builder; GtkWidget *tags_entry; + GtkWidget *keep_open_check_button; + GtkWidget *info; }; @@ -63,28 +65,12 @@ GList *file_list) { GthEditTagsDialog *self = GTH_EDIT_TAGS_DIALOG (base); - int n_files; - char *title; GHashTable *common_tags; GHashTable *no_common_tags; GList *common_tags_list; GList *no_common_tags_list; - n_files = g_list_length (file_list); - - /* update the title */ - - if (n_files == 1) { - GthFileData *file_data = file_list->data; - - /* Translators: the %s symbol in the string is a file name */ - title = g_strdup_printf (_("%s Tags"), g_file_info_get_display_name (file_data->info)); - } - else - title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files); - gtk_window_set_title (GTK_WINDOW (self), title); - - g_free (title); + gth_file_selection_info_set_file_list (GTH_FILE_SELECTION_INFO (self->priv->info), file_list); /* update the tag entry */ @@ -161,11 +147,20 @@ } +static gboolean +gth_edit_tags_dialog_get_keep_open (GthEditMetadataDialog *base) +{ + GthEditTagsDialog *self = GTH_EDIT_TAGS_DIALOG (base); + return gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->priv->keep_open_check_button)); +} + + static void gth_edit_tags_dialog_gth_edit_metadata_dialog_interface_init (GthEditMetadataDialogInterface *iface) { iface->set_file_list = gth_edit_tags_dialog_set_file_list; iface->update_info = gth_edit_tags_dialog_update_info; + iface->get_keep_open = gth_edit_tags_dialog_get_keep_open; } @@ -182,24 +177,40 @@ static void gth_edit_tags_dialog_init (GthEditTagsDialog *self) { + GtkWidget *box; + GtkWidget *sep; + self->priv = gth_edit_tags_dialog_get_instance_private (self); self->priv->builder = _gtk_builder_new_from_file ("tag-chooser.ui", "edit_metadata"); - gtk_window_set_title (GTK_WINDOW (self), _("Assign Tags")); + gtk_window_set_title (GTK_WINDOW (self), _("Tags")); gtk_window_set_resizable (GTK_WINDOW (self), TRUE); gtk_window_set_default_size (GTK_WINDOW (self), -1, 500); gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 5); gtk_container_set_border_width (GTK_CONTAINER (self), 5); - gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL); - gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_SAVE, GTK_RESPONSE_APPLY); - gtk_dialog_add_button (GTK_DIALOG (self), _("Sa_ve and Close"), GTK_RESPONSE_OK); - self->priv->tags_entry = gth_tags_entry_new (GTH_TAGS_ENTRY_MODE_INLINE); gth_tags_entry_set_list_visible (GTH_TAGS_ENTRY (self->priv->tags_entry), TRUE); + gtk_widget_set_size_request (self->priv->tags_entry, 400, -1); gtk_widget_show (self->priv->tags_entry); gtk_box_pack_start (GTK_BOX (GET_WIDGET ("tag_entry_box")), self->priv->tags_entry, TRUE, TRUE, 0); - gtk_container_set_border_width (GTK_CONTAINER (GET_WIDGET ("content")), 5); - gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), GET_WIDGET ("content"), TRUE, TRUE, 0); + box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); + + self->priv->info = gth_file_selection_info_new (); + gtk_widget_show (self->priv->info); + gtk_box_pack_start (GTK_BOX (box), self->priv->info, FALSE, FALSE, 0); + + sep = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL); + gtk_widget_show (sep); + gtk_box_pack_start (GTK_BOX (box), sep, FALSE, FALSE, 0); + + gtk_box_pack_start (GTK_BOX (box), GET_WIDGET ("content"), TRUE, TRUE, 0); + + self->priv->keep_open_check_button = gtk_check_button_new_with_mnemonic (_("_Keep the dialog open")); + gtk_widget_show (self->priv->keep_open_check_button); + gtk_box_pack_start (GTK_BOX (box), self->priv->keep_open_check_button, FALSE, FALSE, 0); + + gtk_widget_show (box); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), box, TRUE, TRUE, 0); } diff -Nru gthumb-3.8.3/extensions/edit_metadata/main.c gthumb-3.9.1/extensions/edit_metadata/main.c --- gthumb-3.8.3/extensions/edit_metadata/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/edit_metadata/main.c 2020-03-07 19:03:13.413622900 +0000 @@ -41,8 +41,7 @@ gth_main_register_type ("edit-comment-dialog-page", GTH_TYPE_EDIT_GENERAL_PAGE); gth_hook_add_callback ("gth-browser-construct", 7, G_CALLBACK (edit_metadata__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (edit_metadata__gth_browser_update_sensitivity_cb), NULL); - gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (edit_metadata__gth_browser_file_list_key_press_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (edit_metadata__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in gthumb-3.9.1/extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in --- gthumb-3.8.3/extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in 2020-03-07 19:03:13.413622900 +0000 @@ -1,8 +1,8 @@ [Extension] Name=EXIF, IPTC, XMP support Comment=Read and write exif, iptc and xmp metadata. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Metadata diff -Nru gthumb-3.8.3/extensions/exiv2_tools/exiv2-utils.cpp gthumb-3.9.1/extensions/exiv2_tools/exiv2-utils.cpp --- gthumb-3.8.3/extensions/exiv2_tools/exiv2-utils.cpp 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/exiv2_tools/exiv2-utils.cpp 2020-03-07 19:03:13.413622900 +0000 @@ -216,14 +216,14 @@ inline static char * exiv2_key_from_attribute (const char *attribute) { - return _g_replace (attribute, "::", "."); + return _g_utf8_replace_str (attribute, "::", "."); } inline static char * exiv2_key_to_attribute (const char *key) { - return _g_replace (key, ".", "::"); + return _g_utf8_replace_str (key, ".", "::"); } @@ -274,11 +274,11 @@ formatted_value_utf8 = g_locale_to_utf8 (formatted_value, -1, NULL, NULL, NULL); } else if (_g_utf8_has_prefix (formatted_value_utf8, "lang=")) { - int pos; - char *formatted_clean; + const char *after_space; + char *formatted_clean; - pos = _g_utf8_first_ascii_space (formatted_value_utf8); - formatted_clean = _g_utf8_remove_prefix (formatted_value_utf8, pos + 1); + after_space = _g_utf8_after_ascii_space (formatted_value_utf8); + formatted_clean = g_strdup (after_space); g_free (formatted_value_utf8); formatted_value_utf8 = formatted_clean; } diff -Nru gthumb-3.8.3/extensions/exiv2_tools/meson.build gthumb-3.9.1/extensions/exiv2_tools/meson.build --- gthumb-3.8.3/extensions/exiv2_tools/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/exiv2_tools/meson.build 2020-03-07 19:03:13.413622900 +0000 @@ -10,6 +10,7 @@ dependencies : [ extension_common_deps, exiv2_dep ], include_directories : [ config_inc, gthumb_inc ], c_args : c_args, + cpp_args : cpp_args, link_with : [ edit_metadata_mod ], install : true, install_dir : extensions_install_dir, diff -Nru gthumb-3.8.3/extensions/export_tools/callbacks.c gthumb-3.9.1/extensions/export_tools/callbacks.c --- gthumb-3.8.3/extensions/export_tools/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/export_tools/callbacks.c 2020-03-07 19:03:13.416956200 +0000 @@ -32,20 +32,16 @@ export_tools__gth_browser_construct_cb (GthBrowser *browser) { GtkBuilder *builder; - GMenuModel *menu; - GtkWidget *button; + GMenuModel *export_menu; + GMenu *other_actions; g_return_if_fail (GTH_IS_BROWSER (browser)); builder = gtk_builder_new_from_resource ("/org/gnome/gThumb/export_tools/data/ui/export-menu.ui"); gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_WEB_EXPORTERS, G_MENU (gtk_builder_get_object (builder, "web-exporters"))); gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS, G_MENU (gtk_builder_get_object (builder, "other-exporters"))); - menu = G_MENU_MODEL (gtk_builder_get_object (builder, "export-menu")); + export_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "export-menu")); - button = _gtk_menu_button_new_for_header_bar ("export-symbolic"); - gtk_widget_set_tooltip_text (button, _("Export")); - gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu); - gtk_widget_set_halign (GTK_WIDGET (gtk_menu_button_get_popup (GTK_MENU_BUTTON (button))), GTK_ALIGN_CENTER); - gtk_widget_show (button); - gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)), button, FALSE, FALSE, 0); + other_actions = gth_menu_manager_get_menu (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_GEARS_OTHER_ACTIONS)); + g_menu_append_submenu (other_actions, _("_Export To"), export_menu); } diff -Nru gthumb-3.8.3/extensions/facebook/facebook-album.c gthumb-3.9.1/extensions/facebook/facebook-album.c --- gthumb-3.8.3/extensions/facebook/facebook-album.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/facebook/facebook-album.c 2020-03-07 19:03:13.416956200 +0000 @@ -70,19 +70,19 @@ switch (property_id) { case PROP_ID: - _g_strset (&self->id, g_value_get_string (value)); + _g_str_set (&self->id, g_value_get_string (value)); break; case PROP_NAME: - _g_strset (&self->name, g_value_get_string (value)); + _g_str_set (&self->name, g_value_get_string (value)); break; case PROP_DESCRIPTION: - _g_strset (&self->description, g_value_get_string (value)); + _g_str_set (&self->description, g_value_get_string (value)); break; case PROP_LINK: - _g_strset (&self->link, g_value_get_string (value)); + _g_str_set (&self->link, g_value_get_string (value)); break; case PROP_PRIVACY: - _g_strset (&self->privacy, g_value_get_string (value)); + _g_str_set (&self->privacy, g_value_get_string (value)); break; case PROP_COUNT: self->count = g_value_get_int (value); diff -Nru gthumb-3.8.3/extensions/facebook/facebook.extension.desktop.in.in gthumb-3.9.1/extensions/facebook/facebook.extension.desktop.in.in --- gthumb-3.8.3/extensions/facebook/facebook.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/facebook/facebook.extension.desktop.in.in 2020-03-07 19:03:13.416956200 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Facebook Comment=Upload images to Facebook -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter diff -Nru gthumb-3.8.3/extensions/facebook/facebook-photo.c gthumb-3.9.1/extensions/facebook/facebook-photo.c --- gthumb-3.8.3/extensions/facebook/facebook-photo.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/facebook/facebook-photo.c 2020-03-07 19:03:13.416956200 +0000 @@ -74,7 +74,7 @@ FacebookImage *dest; dest = facebook_image_new (); - _g_strset (&dest->source, source->source); + _g_str_set (&dest->source, source->source); dest->width = source->width; dest->height = source->height; @@ -131,13 +131,13 @@ switch (property_id) { case PROP_ID: - _g_strset (&self->id, g_value_get_string (value)); + _g_str_set (&self->id, g_value_get_string (value)); break; case PROP_PICTURE: - _g_strset (&self->picture, g_value_get_string (value)); + _g_str_set (&self->picture, g_value_get_string (value)); break; case PROP_SOURCE: - _g_strset (&self->source, g_value_get_string (value)); + _g_str_set (&self->source, g_value_get_string (value)); break; case PROP_WIDTH: self->width = g_value_get_int (value); @@ -146,7 +146,7 @@ self->height = g_value_get_int (value); break; case PROP_LINK: - _g_strset (&self->link, g_value_get_string (value)); + _g_str_set (&self->link, g_value_get_string (value)); break; case PROP_CREATED_TIME: gth_datetime_free (self->created_time); @@ -353,7 +353,7 @@ FacebookImage *image; image = facebook_image_new (); - _g_strset (&image->source, json_object_get_string_member (image_obj, "source")); + _g_str_set (&image->source, json_object_get_string_member (image_obj, "source")); image->width = json_object_get_int_member (image_obj, "width"); image->height = json_object_get_int_member (image_obj, "height"); diff -Nru gthumb-3.8.3/extensions/facebook/facebook-service.c gthumb-3.9.1/extensions/facebook/facebook-service.c --- gthumb-3.8.3/extensions/facebook/facebook-service.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/facebook/facebook-service.c 2020-03-07 19:03:13.416956200 +0000 @@ -111,7 +111,7 @@ _facebook_service_set_access_token (FacebookService *self, const char *token) { - _g_strset (&self->priv->token, token); + _g_str_set (&self->priv->token, token); } @@ -753,6 +753,7 @@ GthFileData *file_data; SoupMultipart *multipart; char *uri; + char *basename; SoupBuffer *body; SoupMessage *msg; @@ -830,8 +831,10 @@ cairo_surface_t *scaled; scaled = _cairo_image_surface_scale (surface, width, height, SCALE_FILTER_BEST, NULL); - cairo_surface_destroy (surface); - surface = scaled; + if (scaled != NULL) { + cairo_surface_destroy (surface); + surface = scaled; + } } g_free (*buffer); @@ -858,14 +861,16 @@ } uri = g_file_get_uri (file_data->file); + basename = _g_uri_get_basename (uri); body = soup_buffer_new (SOUP_MEMORY_TEMPORARY, *buffer, count); soup_multipart_append_form_file (multipart, "source", - _g_uri_get_basename (uri), + basename, gth_file_data_get_mime_type (file_data), body); soup_buffer_free (body); + g_free (basename); g_free (uri); /* send the file */ diff -Nru gthumb-3.8.3/extensions/file_manager/actions.c gthumb-3.9.1/extensions/file_manager/actions.c --- gthumb-3.8.3/extensions/file_manager/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/actions.c 2020-03-07 19:03:13.416956200 +0000 @@ -370,14 +370,15 @@ GtkSelectionData *selection_data, gpointer user_data) { - PasteData *paste_data = user_data; - GthBrowser *browser = paste_data->browser; - const char *raw_data; - char **clipboard_data; - int i; - GtkTreePath *path; - int position; - GthTask *task; + PasteData *paste_data = user_data; + GthBrowser *browser = paste_data->browser; + const char *raw_data; + char **clipboard_data; + int i; + GdkDragAction actions; + GtkTreePath *path; + int position; + GthTask *task; raw_data = (const char *) gtk_selection_data_get_data (selection_data); if (raw_data == NULL) { @@ -400,7 +401,19 @@ paste_data->files = g_list_reverse (paste_data->files); paste_data->file_source = gth_main_get_file_source (paste_data->destination->file); - if (paste_data->cut && ! gth_file_source_can_cut (paste_data->file_source, paste_data->files->data)) { + actions = gth_file_source_get_drop_actions (paste_data->file_source, + paste_data->destination->file, + G_FILE (paste_data->files->data)); + if (actions == 0) { + _gtk_error_dialog_run (GTK_WINDOW (browser), + "%s", + _("Could not perform the operation")); + g_strfreev (clipboard_data); + paste_data_free (paste_data); + return; + } + + if (paste_data->cut && ((actions & GDK_ACTION_MOVE) == 0)) { GtkWidget *dialog; int response; @@ -416,6 +429,7 @@ gtk_widget_destroy (dialog); if (response == GTK_RESPONSE_CANCEL) { + g_strfreev (clipboard_data); paste_data_free (paste_data); return; } @@ -442,6 +456,7 @@ gth_browser_exec_task (browser, task, GTH_TASK_FLAGS_DEFAULT); g_object_unref (task); + g_strfreev (clipboard_data); paste_data_free (paste_data); } @@ -528,6 +543,70 @@ } +static void +remove_from_source (GthBrowser *browser, + gboolean permanently) +{ + GthFileSource *source; + GthFileData *location; + GList *items; + GList *file_data_list; + + if (permanently) { + /* Use the VFS file source to delete the files from the + * disk. */ + + source = gth_main_get_file_source_for_uri ("file:///"); + location = NULL; + } + else { + /* Removes the files from the current location, + * for example: when viewing a catalog removes + * the files from the catalog; when viewing a + * folder removes the files from the folder. */ + + source = _g_object_ref (gth_browser_get_location_source (browser)); + location = gth_browser_get_location_data (browser); + } + + if (source == NULL) + return; + + items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); + if (items == NULL) + return; + + file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); + gth_file_source_remove (source, + location, + file_data_list, + permanently, + GTK_WINDOW (browser)); + + _g_object_list_unref (file_data_list); + _gtk_tree_path_list_free (items); + _g_object_unref (source); +} + + +void +gth_browser_activate_remove_from_source (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + remove_from_source (GTH_BROWSER (user_data), FALSE); +} + + +void +gth_browser_activate_remove_from_source_permanently (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + remove_from_source (GTH_BROWSER (user_data), TRUE); +} + + void gth_browser_activate_rename (GSimpleAction *action, GVariant *parameter, @@ -669,7 +748,7 @@ start_uri = g_settings_get_string (settings, PREF_FILE_MANAGER_COPY_LAST_FOLDER); if ((start_uri == NULL) || (strcmp (start_uri, "") == 0)) { g_free (start_uri); - start_uri = g_strdup (get_home_uri ()); + start_uri = g_strdup (_g_uri_get_home ()); } gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (dialog), start_uri); g_free(start_uri); @@ -978,3 +1057,27 @@ { copy_folder_to_folder (GTH_BROWSER (user_data), TRUE); } + + +void +gth_browser_activate_open_with_gimp (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GList *items; + GList *file_data_list; + GList *file_list; + + items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); + if (items == NULL) + return; + + file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); + file_list = gth_file_data_list_to_file_list (file_data_list); + _g_launch_command (GTK_WIDGET (browser), "gimp %U", "Gimp", G_APP_INFO_CREATE_SUPPORTS_URIS, file_list); + + _g_object_list_unref (file_list); + _g_object_list_unref (file_data_list); + _gtk_tree_path_list_free (items); +} diff -Nru gthumb-3.8.3/extensions/file_manager/actions.h gthumb-3.9.1/extensions/file_manager/actions.h --- gthumb-3.8.3/extensions/file_manager/actions.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/actions.h 2020-03-07 19:03:13.416956200 +0000 @@ -31,6 +31,8 @@ DEF_ACTION_CALLBACK (gth_browser_activate_duplicate) DEF_ACTION_CALLBACK (gth_browser_activate_trash) DEF_ACTION_CALLBACK (gth_browser_activate_delete) +DEF_ACTION_CALLBACK (gth_browser_activate_remove_from_source) +DEF_ACTION_CALLBACK (gth_browser_activate_remove_from_source_permanently) DEF_ACTION_CALLBACK (gth_browser_activate_rename) DEF_ACTION_CALLBACK (gth_browser_activate_file_list_rename) DEF_ACTION_CALLBACK (gth_browser_activate_copy_to_folder) @@ -47,6 +49,7 @@ DEF_ACTION_CALLBACK (gth_browser_activate_folder_context_copy_to) DEF_ACTION_CALLBACK (gth_browser_activate_folder_context_move_to) +DEF_ACTION_CALLBACK (gth_browser_activate_open_with_gimp) DEF_ACTION_CALLBACK (gth_browser_activate_open_with_application) #endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/file_manager/callbacks.c gthumb-3.9.1/extensions/file_manager/callbacks.c --- gthumb-3.8.3/extensions/file_manager/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/callbacks.c 2020-03-07 19:03:13.416956200 +0000 @@ -46,6 +46,8 @@ { "edit-paste", gth_browser_activate_edit_paste }, { "trash", gth_browser_activate_trash }, { "delete", gth_browser_activate_delete }, + { "remove-from-source", gth_browser_activate_remove_from_source }, + { "remove-from-source-permanently", gth_browser_activate_remove_from_source_permanently }, { "rename", gth_browser_activate_rename }, { "file-list-rename", gth_browser_activate_file_list_rename }, { "duplicate", gth_browser_activate_duplicate }, @@ -62,21 +64,22 @@ { "folder-context-move-to", gth_browser_activate_folder_context_move_to }, { "folder-context-trash", gth_browser_activate_folder_context_trash }, { "folder-context-delete", gth_browser_activate_folder_context_delete }, + { "open-with-gimp", gth_browser_activate_open_with_gimp }, { "open-with-application", gth_browser_activate_open_with_application, "i" } }; static const GthMenuEntry fixed_menu_entries_edit[] = { - { N_("Cut"), "win.edit-cut", "x" }, - { N_("Copy"), "win.edit-copy", "c" }, - { N_("Paste"), "win.edit-paste", "v" }, + { N_("Cut"), "win.edit-cut" }, + { N_("Copy"), "win.edit-copy" }, + { N_("Paste"), "win.edit-paste" }, }; static const GthMenuEntry fixed_menu_entries_file[] = { { N_("Copy to…"), "win.copy-to-folder" }, { N_("Move to…"), "win.move-to-folder" }, - { N_("Rename"), "win.file-list-rename", "F2" }, + { N_("Rename"), "win.file-list-rename" }, }; @@ -112,16 +115,19 @@ static const GthMenuEntry vfs_entries[] = { - { N_("Duplicate"), "win.duplicate", "d" } + { N_("Duplicate"), "win.duplicate" } }; -static const GthAccelerator accelerators[] = { - { "win.rename", "F2" }, - { "win.edit-cut", "x" }, - { "win.edit-copy", "c" }, - { "win.edit-paste", "v" }, - { "win.duplicate", "d" }, +static const GthShortcut shortcuts[] = { + { "edit-cut", N_("Cut"), GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "x" }, + { "edit-copy", N_("Copy"), GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "c" }, + { "edit-paste", N_("Paste"), GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "v" }, + { "rename", N_("Rename"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "F2" }, + { "duplicate", N_("Duplicate"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "d" }, + { "remove-from-source", N_("Delete"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "Delete" }, + { "remove-from-source-permanently", N_("Delete permanently"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "Delete" }, + { "open-with-gimp", N_("Open with Gimp"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "g" }, }; @@ -261,7 +267,7 @@ file_source = gth_browser_get_location_source (browser); move = gdk_drag_context_get_selected_action (context) == GDK_ACTION_MOVE; - if (move && ! gth_file_source_can_cut (file_source, (GFile *) selected_files->data)) { + if (move && ! gth_file_source_can_cut (file_source)) { GtkWidget *dialog; int response; @@ -706,9 +712,9 @@ gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_FILE_FILE_ACTIONS), fixed_menu_entries_delete, G_N_ELEMENTS (fixed_menu_entries_delete)); - gth_window_add_accelerators (GTH_WINDOW (browser), - accelerators, - G_N_ELEMENTS (accelerators)); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); gth_browser_add_header_bar_button (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_LOCATIONS, @@ -809,8 +815,7 @@ void fm__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location_data, - const GError *error) + GthFileData *location_data) { BrowserData *data; GtkWidget *file_list; @@ -820,9 +825,6 @@ int n_source_targets; GdkDragAction source_actions; - if ((location_data == NULL) || (error != NULL)) - return; - data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); file_manager_update_ui (data, browser); @@ -945,86 +947,101 @@ GList *file_list, GdkDragAction action) { - GthFileSource *file_source; + int n_files; + GthFileSource *destination_source; + GFile *first_file; + GthFileSource *file_list_source; + gboolean move_files; GtkWidget *dialog; GthTask *task; + char *message; int response; if (destination == NULL) return; - file_source = gth_main_get_file_source (destination->file); - if (file_source == NULL) + n_files = g_list_length (file_list); + if (n_files == 0) + return; + + if ((action != GDK_ACTION_MOVE) && (action != GDK_ACTION_COPY)) + return; + + destination_source = gth_main_get_file_source (destination->file); + if (destination_source == NULL) + return; + + first_file = G_FILE (file_list->data); + file_list_source = gth_main_get_file_source (first_file); + if (file_list_source == NULL) + return; + + if (action == GDK_ACTION_MOVE) + action |= GDK_ACTION_COPY; + + action = action & gth_file_source_get_drop_actions (destination_source, destination->file, first_file); + if (action == 0) { + _gtk_error_dialog_run (GTK_WINDOW (browser), + "%s", + _("Could not perform the operation")); return; + } + + move_files = (action & GDK_ACTION_MOVE) != 0; /* ask confirmation */ response = GTK_RESPONSE_OK; - if ((action == GDK_ACTION_MOVE) || (action == GDK_ACTION_COPY)) { - int n_files; - char *message; - - n_files = g_list_length (file_list); - g_return_if_fail (n_files >= 1); - - if (n_files == 1) { - char *filename = _g_file_get_display_name ((GFile *) file_list->data); - if (action == GDK_ACTION_MOVE) - message = g_strdup_printf (_("Do you want to move “%s” to “%s”?"), filename, g_file_info_get_display_name (destination->info)); - else - message = g_strdup_printf (_("Do you want to copy “%s” to “%s”?"), filename, g_file_info_get_display_name (destination->info)); - g_free (filename); - } - else { - if (action == GDK_ACTION_MOVE) - message = g_strdup_printf (_("Do you want to move the dragged files to “%s”?"), g_file_info_get_display_name (destination->info)); - else - message = g_strdup_printf (_("Do you want to copy the dragged files to “%s”?"), g_file_info_get_display_name (destination->info)); - } - dialog = _gtk_message_dialog_new (GTK_WINDOW (browser), - GTK_DIALOG_MODAL, - _GTK_ICON_NAME_DIALOG_QUESTION, - message, - NULL, - _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, - ((action == GDK_ACTION_MOVE) ? _("Move") : _("_Copy")), GTK_RESPONSE_OK, - NULL); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); + if (n_files == 1) { + GFileInfo *info; + char *filename; + + info = gth_file_source_get_file_info (file_list_source, first_file, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME); + if (info != NULL) + filename = g_strdup (g_file_info_get_display_name (info)); + else + filename = _g_file_get_display_name (first_file); + + if (move_files) + message = g_strdup_printf (_("Do you want to move “%s” to “%s”?"), filename, g_file_info_get_display_name (destination->info)); + else + message = g_strdup_printf (_("Do you want to copy “%s” to “%s”?"), filename, g_file_info_get_display_name (destination->info)); - g_free (message); + g_free (filename); + _g_object_unref (info); + } + else { + if (move_files) + message = g_strdup_printf (_("Do you want to move the dragged files to “%s”?"), g_file_info_get_display_name (destination->info)); + else + message = g_strdup_printf (_("Do you want to copy the dragged files to “%s”?"), g_file_info_get_display_name (destination->info)); } + dialog = _gtk_message_dialog_new (GTK_WINDOW (browser), + GTK_DIALOG_MODAL, + _GTK_ICON_NAME_DIALOG_QUESTION, + message, + NULL, + _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, + (move_files ? _("Move") : _("_Copy")), GTK_RESPONSE_OK, + NULL); + response = gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (dialog); + g_free (message); if (response != GTK_RESPONSE_OK) return; - if ((action == GDK_ACTION_MOVE) && ! gth_file_source_can_cut (file_source, (GFile *) file_list->data)) { - dialog = _gtk_message_dialog_new (GTK_WINDOW (browser), - GTK_DIALOG_MODAL, - _GTK_ICON_NAME_DIALOG_QUESTION, - _("Could not move the files"), - _("Files cannot be moved to the current location, as alternative you can choose to copy them."), - _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, - _GTK_LABEL_COPY, GTK_RESPONSE_OK, - NULL); - response = gtk_dialog_run (GTK_DIALOG (dialog)); - gtk_widget_destroy (dialog); - - if (response == GTK_RESPONSE_CANCEL) - return; + /* exec task */ - action = GDK_ACTION_COPY; - } - - task = gth_copy_task_new (file_source, + task = gth_copy_task_new (destination_source, destination, - (action == GDK_ACTION_MOVE), + move_files, file_list, -1); gth_browser_exec_task (browser, task, GTH_TASK_FLAGS_DEFAULT); g_object_unref (task); - g_object_unref (file_source); + g_object_unref (destination_source); } @@ -1089,7 +1106,6 @@ BrowserData *data; GthFileSource *file_source; int n_selected; - GthFileData *location_data; gboolean sensitive; GthFileData *folder; @@ -1099,8 +1115,7 @@ file_source = gth_browser_get_location_source (browser); n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - location_data = gth_browser_get_location_data (browser); - sensitive = (n_selected > 0) && (file_source != NULL) && (location_data != NULL) && gth_file_source_can_cut (file_source, location_data->file); + sensitive = (n_selected > 0) && (file_source != NULL) && gth_file_source_can_cut (file_source); gth_window_enable_action (GTH_WINDOW (browser), "edit-cut", sensitive); sensitive = (n_selected > 0) && (file_source != NULL); @@ -1157,80 +1172,3 @@ G_CALLBACK (clipboard_owner_change_cb), browser); } - - -gpointer -fm__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event) -{ - gpointer result = NULL; - guint modifiers; - GList *items; - GList *file_data_list; - GList *file_list; - - modifiers = gtk_accelerator_get_default_mod_mask (); - - switch (event->keyval) { - case GDK_KEY_g: - if ((event->state & modifiers) == 0) { - items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); - file_list = gth_file_data_list_to_file_list (file_data_list); - _g_launch_command (GTK_WIDGET (browser), "gimp %U", "Gimp", file_list); - - _g_object_list_unref (file_list); - _g_object_list_unref (file_data_list); - _gtk_tree_path_list_free (items); - result = GINT_TO_POINTER (1); - } - break; - - case GDK_KEY_Delete: - if (((event->state & modifiers) == 0) - || ((event->state & modifiers) == GDK_SHIFT_MASK) - || ((event->state & modifiers) == GDK_CONTROL_MASK)) - { - GthFileSource *source; - GthFileData *location; - - if ((event->state & modifiers) == 0) { - /* Removes the files from the current location, - * for example: when viewing a catalog removes - * the files from the catalog; when viewing a - * folder removes the files from the folder. */ - source = _g_object_ref (gth_browser_get_location_source (browser)); - location = gth_browser_get_location_data (browser); - } - else { - /* When a key modifier is active, use the VFS - * file source to delete the files from the - * disk. */ - source = gth_main_get_file_source_for_uri ("file:///"); - location = NULL; - } - - if (source == NULL) - return result; - - items = gth_file_selection_get_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - if (items == NULL) - return result; - - file_data_list = gth_file_list_get_files (GTH_FILE_LIST (gth_browser_get_file_list (browser)), items); - gth_file_source_remove (source, - location, - file_data_list, - (event->state & modifiers) == GDK_SHIFT_MASK, - GTK_WINDOW (browser)); - result = GINT_TO_POINTER (1); - - _g_object_list_unref (file_data_list); - _gtk_tree_path_list_free (items); - _g_object_unref (source); - } - break; - } - - return result; -} diff -Nru gthumb-3.8.3/extensions/file_manager/callbacks.h gthumb-3.9.1/extensions/file_manager/callbacks.h --- gthumb-3.8.3/extensions/file_manager/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/callbacks.h 2020-03-07 19:03:13.416956200 +0000 @@ -28,8 +28,7 @@ void fm__gth_browser_update_sensitivity_cb (GthBrowser *browser); void fm__gth_browser_set_current_page_cb (GthBrowser *browser); void fm__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location_data, - const GError *error); + GthFileData *location_data); void fm__gth_browser_folder_tree_popup_before_cb (GthBrowser *browser, GthFileSource *file_source, GthFileData *folder); @@ -40,7 +39,5 @@ void fm__gth_browser_folder_tree_selection_changed_cb (GthBrowser *browser); void fm__gth_browser_realize_cb (GthBrowser *browser); void fm__gth_browser_unrealize_cb (GthBrowser *browser); -gpointer fm__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/file_manager/file_manager.extension.desktop.in.in gthumb-3.9.1/extensions/file_manager/file_manager.extension.desktop.in.in --- gthumb-3.8.3/extensions/file_manager/file_manager.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/file_manager.extension.desktop.in.in 2020-03-07 19:03:13.416956200 +0000 @@ -1,8 +1,8 @@ [Extension] Name=File manager Comment=File manager operations. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=system-file-manager Category=Browser diff -Nru gthumb-3.8.3/extensions/file_manager/gth-duplicate-task.c gthumb-3.9.1/extensions/file_manager/gth-duplicate-task.c --- gthumb-3.8.3/extensions/file_manager/gth-duplicate-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/gth-duplicate-task.c 2020-03-07 19:03:13.416956200 +0000 @@ -122,19 +122,19 @@ g_object_unref (tmp); } - _g_copy_file_async (file_data, - self->priv->destination, - FALSE, - GTH_FILE_COPY_ALL_METADATA, - GTH_OVERWRITE_RESPONSE_ALWAYS_NO, - G_PRIORITY_DEFAULT, - gth_task_get_cancellable (GTH_TASK (self)), - copy_progress_cb, - self, - copy_dialog_cb, - self, - copy_ready_cb, - self); + _gth_file_data_copy_async (file_data, + self->priv->destination, + FALSE, + GTH_FILE_COPY_ALL_METADATA, + GTH_OVERWRITE_RESPONSE_ALWAYS_NO, + G_PRIORITY_DEFAULT, + gth_task_get_cancellable (GTH_TASK (self)), + copy_progress_cb, + self, + copy_dialog_cb, + self, + copy_ready_cb, + self); } diff -Nru gthumb-3.8.3/extensions/file_manager/main.c gthumb-3.9.1/extensions/file_manager/main.c --- gthumb-3.8.3/extensions/file_manager/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_manager/main.c 2020-03-07 19:03:13.416956200 +0000 @@ -44,7 +44,6 @@ gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (fm__gth_browser_update_sensitivity_cb), NULL); gth_hook_add_callback ("gth-browser-realize", 10, G_CALLBACK (fm__gth_browser_realize_cb), NULL); gth_hook_add_callback ("gth-browser-unrealize", 10, G_CALLBACK (fm__gth_browser_unrealize_cb), NULL); - gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (fm__gth_browser_file_list_key_press_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/file_tools/actions.c gthumb-3.9.1/extensions/file_tools/actions.c --- gthumb-3.8.3/extensions/file_tools/actions.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/actions.c 2020-03-07 19:03:13.416956200 +0000 @@ -0,0 +1,130 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include "actions.h" +#include "gth-file-tool-adjust-contrast.h" +#include "gth-file-tool-crop.h" +#include "gth-file-tool-flip.h" +#include "gth-file-tool-mirror.h" +#include "gth-file-tool-resize.h" +#include "gth-file-tool-rotate-left.h" +#include "gth-file-tool-rotate-right.h" + + +static void +gth_browser_activate_file_tool (GthBrowser *browser, + GType tool_type) +{ + GtkWidget *sidebar; + GtkWidget *toolbox; + GthViewerPage *page; + GthFileTool *tool; + + sidebar = gth_browser_get_viewer_sidebar (browser); + toolbox = gth_sidebar_get_toolbox (GTH_SIDEBAR (sidebar)); + if (gth_toolbox_tool_is_active (GTH_TOOLBOX (toolbox))) + return; + + page = gth_browser_get_viewer_page (browser); + if (! GTH_IS_IMAGE_VIEWER_PAGE (page)) + return; + + tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), tool_type); + if (tool != NULL) { + if (gth_window_get_current_page (GTH_WINDOW (browser)) == GTH_BROWSER_PAGE_BROWSER) + gth_window_set_current_page (GTH_WINDOW (browser), GTH_BROWSER_PAGE_VIEWER); + gth_file_tool_activate (tool); + } +} + + +void +gth_browser_activate_tool_adjust_contrast (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_ADJUST_CONTRAST); +} + + +void +gth_browser_activate_tool_flip (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_FLIP); +} + + +void +gth_browser_activate_tool_mirror (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_MIRROR); +} + + +void +gth_browser_activate_tool_rotate_right (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_ROTATE_RIGHT); +} + + +void +gth_browser_activate_tool_rotate_left (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_ROTATE_LEFT); +} + + +void +gth_browser_activate_tool_crop (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_CROP); +} + + +void +gth_browser_activate_tool_resize (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_activate_file_tool (GTH_BROWSER (user_data), + GTH_TYPE_FILE_TOOL_RESIZE); +} diff -Nru gthumb-3.8.3/extensions/file_tools/actions.h gthumb-3.9.1/extensions/file_tools/actions.h --- gthumb-3.8.3/extensions/file_tools/actions.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/actions.h 2020-03-07 19:03:13.416956200 +0000 @@ -0,0 +1,35 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef ACTIONS_H +#define ACTIONS_H + +#include + +DEF_ACTION_CALLBACK (gth_browser_activate_tool_adjust_contrast) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_flip) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_mirror) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_rotate_right) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_rotate_left) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_crop) +DEF_ACTION_CALLBACK (gth_browser_activate_tool_resize) + +#endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/file_tools/callbacks.c gthumb-3.9.1/extensions/file_tools/callbacks.c --- gthumb-3.8.3/extensions/file_tools/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/callbacks.c 2020-03-07 19:03:13.416956200 +0000 @@ -26,6 +26,8 @@ #include #include #include +#include +#include "actions.h" #include "callbacks.h" #include "gth-file-tool-adjust-contrast.h" #include "gth-file-tool-crop.h" @@ -36,60 +38,37 @@ #include "gth-file-tool-rotate-right.h" -gpointer -file_tools__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event) -{ - gpointer result = NULL; - GtkWidget *sidebar; - GtkWidget *toolbox; - GthFileTool *tool = NULL; - guint modifiers; - GthViewerPage *page; - - sidebar = gth_browser_get_viewer_sidebar (browser); - toolbox = gth_sidebar_get_toolbox (GTH_SIDEBAR (sidebar)); - if (gth_toolbox_tool_is_active (GTH_TOOLBOX (toolbox))) - return NULL; - - modifiers = gtk_accelerator_get_default_mod_mask (); - if (((event->state & modifiers) != 0) && ((event->state & modifiers) != GDK_SHIFT_MASK)) - return NULL; - - page = gth_browser_get_viewer_page (browser); - if (! GTH_IS_IMAGE_VIEWER_PAGE (page)) - return NULL; - - switch (event->keyval) { - case GDK_KEY_a: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_ADJUST_CONTRAST); - break; - case GDK_KEY_l: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_FLIP); - break; - case GDK_KEY_m: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_MIRROR); - break; - case GDK_KEY_r: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_ROTATE_RIGHT); - break; - case GDK_KEY_R: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_ROTATE_LEFT); - break; - case GDK_KEY_C: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_CROP); - break; - case GDK_KEY_S: - tool = (GthFileTool *) gth_toolbox_get_tool (GTH_TOOLBOX (toolbox), GTH_TYPE_FILE_TOOL_RESIZE); - break; - } - - if (tool != NULL) { - if (gth_window_get_current_page (GTH_WINDOW (browser)) == GTH_BROWSER_PAGE_BROWSER) - gth_window_set_current_page (GTH_WINDOW (browser), GTH_BROWSER_PAGE_VIEWER); - gth_file_tool_activate (tool); - result = GINT_TO_POINTER (1); - } +static const GActionEntry actions[] = { + { "file-tool-adjust-contrast", gth_browser_activate_tool_adjust_contrast }, + { "file-tool-flip", gth_browser_activate_tool_flip }, + { "file-tool-mirror", gth_browser_activate_tool_mirror }, + { "file-tool-rotate-right", gth_browser_activate_tool_rotate_right }, + { "file-tool-rotate-left", gth_browser_activate_tool_rotate_left }, + { "file-tool-crop", gth_browser_activate_tool_crop }, + { "file-tool-resize", gth_browser_activate_tool_resize }, +}; + + +static const GthShortcut shortcuts[] = { + { "file-tool-adjust-contrast", N_("Adjust contrast"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "a" }, + { "file-tool-flip", N_("Flip"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "l" }, + { "file-tool-mirror", N_("Mirror"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "m" }, + { "file-tool-rotate-right", N_("Rotate right"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "r" }, + { "file-tool-rotate-left", N_("Rotate left"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "r" }, + { "file-tool-crop", N_("Crop"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "c" }, + { "file-tool-resize", N_("Resize"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "s" }, +}; + - return result; +void +file_tools__gth_browser_construct_cb (GthBrowser *browser) +{ + g_action_map_add_action_entries (G_ACTION_MAP (browser), + actions, + G_N_ELEMENTS (actions), + browser); + + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); } diff -Nru gthumb-3.8.3/extensions/file_tools/callbacks.h gthumb-3.9.1/extensions/file_tools/callbacks.h --- gthumb-3.8.3/extensions/file_tools/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/callbacks.h 2020-03-07 19:03:13.416956200 +0000 @@ -24,7 +24,6 @@ #include -gpointer file_tools__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event); +void file_tools__gth_browser_construct_cb (GthBrowser *browser); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-adjust-contrast.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-adjust-contrast.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-adjust-contrast.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-adjust-contrast.c 2020-03-07 19:03:13.420289500 +0000 @@ -590,6 +590,7 @@ _cairo_clear_surface (&self->priv->destination); self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; + self->priv->view_original = TRUE; } @@ -653,7 +654,7 @@ self->priv->builder = NULL; self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; - self->priv->view_original = FALSE; + self->priv->view_original = TRUE; gth_file_tool_construct (GTH_FILE_TOOL (self), "image-adjust-contrast-symbolic", diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-crop.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-crop.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-crop.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-crop.c 2020-03-07 19:03:13.420289500 +0000 @@ -149,10 +149,10 @@ int max, int x) { - g_signal_handlers_block_by_data (G_OBJECT (spin), self); + _g_signal_handlers_block_by_data (G_OBJECT (spin), self); gtk_spin_button_set_range (GTK_SPIN_BUTTON (spin), min, max); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), x); - g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); + _g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); } @@ -190,9 +190,9 @@ GtkWidget *spin, int x) { - g_signal_handlers_block_by_data (G_OBJECT (spin), self); + _g_signal_handlers_block_by_data (G_OBJECT (spin), self); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), x); - g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); + _g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); } diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-curves.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-curves.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-curves.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-curves.c 2020-03-07 19:03:13.420289500 +0000 @@ -452,9 +452,9 @@ { self->priv->view_original = view_original; - g_signal_handlers_block_by_data (self->priv->preview_button, self); + _g_signal_handlers_block_by_data (self->priv->preview_button, self); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->priv->preview_button), ! self->priv->view_original); - g_signal_handlers_unblock_by_data (self->priv->preview_button, self); + _g_signal_handlers_unblock_by_data (self->priv->preview_button, self); gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->priv->preview_channel_button), self->priv->view_original); gtk_widget_set_sensitive (self->priv->preview_channel_button, ! self->priv->view_original); diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-effects.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-effects.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-effects.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-effects.c 2020-03-07 19:03:13.420289500 +0000 @@ -287,6 +287,7 @@ _cairo_clear_surface (&self->priv->destination); self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; + self->priv->view_original = TRUE; } @@ -351,7 +352,7 @@ self->priv->builder = NULL; self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; - self->priv->view_original = FALSE; + self->priv->view_original = TRUE; gth_file_tool_construct (GTH_FILE_TOOL (self), "special-effects-symbolic", diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-grayscale.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-grayscale.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-grayscale.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-grayscale.c 2020-03-07 19:03:13.420289500 +0000 @@ -426,6 +426,7 @@ _cairo_clear_surface (&self->priv->destination); self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; + self->priv->view_original = TRUE; } @@ -490,7 +491,7 @@ self->priv->builder = NULL; self->priv->method = GTH_FILTER_GRID_NO_FILTER; self->priv->last_applied_method = GTH_FILTER_GRID_NO_FILTER; - self->priv->view_original = FALSE; + self->priv->view_original = TRUE; gth_file_tool_construct (GTH_FILE_TOOL (self), "image-grayscale-symbolic", diff -Nru gthumb-3.8.3/extensions/file_tools/gth-file-tool-resize.c gthumb-3.9.1/extensions/file_tools/gth-file-tool-resize.c --- gthumb-3.8.3/extensions/file_tools/gth-file-tool-resize.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/gth-file-tool-resize.c 2020-03-07 19:03:13.420289500 +0000 @@ -158,10 +158,12 @@ self->priv->new_height, (self->priv->high_quality ? SCALE_FILTER_BEST : SCALE_FILTER_FAST), task); - _cairo_image_surface_clear_metadata (destination); - gth_image_task_set_destination_surface (GTH_IMAGE_TASK (task), destination); + if (destination != NULL) { + _cairo_image_surface_clear_metadata (destination); + gth_image_task_set_destination_surface (GTH_IMAGE_TASK (task), destination); + cairo_surface_destroy (destination); + } - cairo_surface_destroy (destination); cairo_surface_destroy (source); return NULL; @@ -222,13 +224,13 @@ self->priv->new_width = MAX ((int) round ((gtk_spin_button_get_value (spin) / 100.0) * self->priv->original_width), 1); if (self->priv->fixed_aspect_ratio) { - g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); self->priv->new_height = MAX ((int) round ((double) self->priv->new_width / self->priv->aspect_ratio), 1); if (self->priv->unit == GTH_UNIT_PIXELS) gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("resize_height_spinbutton")), self->priv->new_height); else if (self->priv->unit == GTH_UNIT_PERCENTAGE) gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("resize_height_spinbutton")), ((double) self->priv->new_height) / self->priv->original_height * 100.0); - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); } update_image_size (self); @@ -245,13 +247,13 @@ self->priv->new_height = MAX ((int) round ((gtk_spin_button_get_value (spin) / 100.0) * self->priv->original_height), 1); if (self->priv->fixed_aspect_ratio) { - g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); self->priv->new_width = MAX ((int) round ((double) self->priv->new_height * self->priv->aspect_ratio), 1); if (self->priv->unit == GTH_UNIT_PIXELS) gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("resize_width_spinbutton")), self->priv->new_width); else if (self->priv->unit == GTH_UNIT_PERCENTAGE) gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("resize_width_spinbutton")), ((double) self->priv->new_width) / self->priv->original_width * 100.0); - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); } update_image_size (self); @@ -270,8 +272,8 @@ static void update_size_spin_buttons_from_unit_value (GthFileToolResize *self) { - g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); - g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); if (self->priv->unit == GTH_UNIT_PERCENTAGE) { double p; @@ -291,8 +293,8 @@ gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("resize_height_spinbutton")), self->priv->new_height); } - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); } @@ -312,9 +314,9 @@ GtkWidget *spin, int x) { - g_signal_handlers_block_by_data (G_OBJECT (spin), self); + _g_signal_handlers_block_by_data (G_OBJECT (spin), self); gtk_spin_button_set_value (GTK_SPIN_BUTTON (spin), x); - g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); + _g_signal_handlers_unblock_by_data (G_OBJECT (spin), self); } @@ -450,13 +452,13 @@ update_size_spin_buttons_from_unit_value (self); - g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); - g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); - g_signal_handlers_block_by_data (GET_WIDGET ("unit_combobox"), self); - g_signal_handlers_block_by_data (self->priv->ratio_combobox, self); - g_signal_handlers_block_by_data (GET_WIDGET ("invert_ratio_checkbutton"), self); - g_signal_handlers_block_by_data (GET_WIDGET ("ratio_w_spinbutton"), self); - g_signal_handlers_block_by_data (GET_WIDGET ("ratio_h_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("unit_combobox"), self); + _g_signal_handlers_block_by_data (self->priv->ratio_combobox, self); + _g_signal_handlers_block_by_data (GET_WIDGET ("invert_ratio_checkbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("ratio_w_spinbutton"), self); + _g_signal_handlers_block_by_data (GET_WIDGET ("ratio_h_spinbutton"), self); gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("unit_combobox")), PIXELS_UNIT_POSITION); gtk_combo_box_set_active (GTK_COMBO_BOX (self->priv->ratio_combobox), ratio); @@ -466,13 +468,13 @@ gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("ratio_w_spinbutton")), w); gtk_spin_button_set_value (GTK_SPIN_BUTTON (GET_WIDGET ("ratio_h_spinbutton")), h); - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("unit_combobox"), self); - g_signal_handlers_unblock_by_data (self->priv->ratio_combobox, self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("invert_ratio_checkbutton"), self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("ratio_w_spinbutton"), self); - g_signal_handlers_unblock_by_data (GET_WIDGET ("ratio_h_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_width_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("resize_height_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("unit_combobox"), self); + _g_signal_handlers_unblock_by_data (self->priv->ratio_combobox, self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("invert_ratio_checkbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("ratio_w_spinbutton"), self); + _g_signal_handlers_unblock_by_data (GET_WIDGET ("ratio_h_spinbutton"), self); update_image_size (self); } diff -Nru gthumb-3.8.3/extensions/file_tools/main.c gthumb-3.9.1/extensions/file_tools/main.c --- gthumb-3.8.3/extensions/file_tools/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/main.c 2020-03-07 19:03:13.420289500 +0000 @@ -74,7 +74,7 @@ gth_main_register_type ("file-tools", GTH_TYPE_FILE_TOOL_RESIZE); gth_main_register_type ("file-tools", GTH_TYPE_FILE_TOOL_CROP); - gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (file_tools__gth_browser_file_list_key_press_cb), NULL); + gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (file_tools__gth_browser_construct_cb), NULL); /** * Add a filter to the filter list shown in the Effects tool diff -Nru gthumb-3.8.3/extensions/file_tools/meson.build gthumb-3.9.1/extensions/file_tools/meson.build --- gthumb-3.8.3/extensions/file_tools/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/file_tools/meson.build 2020-03-07 19:03:13.420289500 +0000 @@ -38,6 +38,7 @@ enum_files = gnome.mkenums_simple('file-tools-enum-types', sources: header_files) source_files = files( + 'actions.c', 'cairo-blur.c', 'cairo-effects.c', 'cairo-rotate.c', diff -Nru gthumb-3.8.3/extensions/find_duplicates/dlg-find-duplicates.c gthumb-3.9.1/extensions/find_duplicates/dlg-find-duplicates.c --- gthumb-3.8.3/extensions/find_duplicates/dlg-find-duplicates.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/find_duplicates/dlg-find-duplicates.c 2020-03-07 19:03:13.423622800 +0000 @@ -113,6 +113,7 @@ data->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER, "show-entry-points", TRUE, + "show-other", TRUE, "relief", GTK_RELIEF_NORMAL, NULL); gtk_widget_show (data->location_chooser); diff -Nru gthumb-3.8.3/extensions/find_duplicates/find_duplicates.extension.desktop.in.in gthumb-3.9.1/extensions/find_duplicates/find_duplicates.extension.desktop.in.in --- gthumb-3.8.3/extensions/find_duplicates/find_duplicates.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/find_duplicates/find_duplicates.extension.desktop.in.in 2020-03-07 19:03:13.423622800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Find Duplicates Comment=Find duplicated files. -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Browser diff -Nru gthumb-3.8.3/extensions/flicker/flicker.extension.desktop.in.in gthumb-3.9.1/extensions/flicker/flicker.extension.desktop.in.in --- gthumb-3.8.3/extensions/flicker/flicker.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/flicker/flicker.extension.desktop.in.in 2020-03-07 19:03:13.423622800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Flicker Comment=Upload images to Flickr -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter diff -Nru gthumb-3.8.3/extensions/flicker_utils/flickr-account.c gthumb-3.9.1/extensions/flicker_utils/flickr-account.c --- gthumb-3.8.3/extensions/flicker_utils/flickr-account.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/flicker_utils/flickr-account.c 2020-03-07 19:03:13.423622800 +0000 @@ -116,7 +116,7 @@ flickr_account_set_accountname (FlickrAccount *self, const char *value) { - _g_strset (&self->accountname, value); + _g_str_set (&self->accountname, value); } diff -Nru gthumb-3.8.3/extensions/flicker_utils/flickr-photo.c gthumb-3.9.1/extensions/flicker_utils/flickr-photo.c --- gthumb-3.8.3/extensions/flicker_utils/flickr-photo.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/flicker_utils/flickr-photo.c 2020-03-07 19:03:13.423622800 +0000 @@ -181,7 +181,7 @@ flickr_photo_set_id (FlickrPhoto *self, const char *value) { - _g_strset (&self->id, value); + _g_str_set (&self->id, value); } @@ -189,7 +189,7 @@ flickr_photo_set_secret (FlickrPhoto *self, const char *value) { - _g_strset (&self->secret, value); + _g_str_set (&self->secret, value); } @@ -197,7 +197,7 @@ flickr_photo_set_server (FlickrPhoto *self, const char *value) { - _g_strset (&self->server, value); + _g_str_set (&self->server, value); } @@ -205,7 +205,7 @@ flickr_photo_set_farm (FlickrPhoto *self, const char *value) { - _g_strset (&self->farm, value); + _g_str_set (&self->farm, value); } @@ -213,7 +213,7 @@ flickr_photo_set_title (FlickrPhoto *self, const char *value) { - _g_strset (&self->title, value); + _g_str_set (&self->title, value); } @@ -273,7 +273,7 @@ FlickrUrl size, const char *value) { - _g_strset (&(self->url[size]), value); + _g_str_set (&(self->url[size]), value); if (self->url[size] == NULL) self->url[size] = flickr_get_static_url (self, size); @@ -281,7 +281,7 @@ int other_size; for (other_size = FLICKR_URL_O - 1; other_size >= 0; other_size--) { if (self->url[other_size] != NULL) { - _g_strset (&(self->url[size]), self->url[other_size]); + _g_str_set (&(self->url[size]), self->url[other_size]); break; } } @@ -293,7 +293,7 @@ flickr_photo_set_original_format (FlickrPhoto *self, const char *value) { - _g_strset (&self->original_format, value); + _g_str_set (&self->original_format, value); g_free (self->mime_type); self->mime_type = NULL; @@ -306,5 +306,5 @@ flickr_photo_set_original_secret (FlickrPhoto *self, const char *value) { - _g_strset (&self->original_secret, value); + _g_str_set (&self->original_secret, value); } diff -Nru gthumb-3.8.3/extensions/flicker_utils/flickr-photoset.c gthumb-3.9.1/extensions/flicker_utils/flickr-photoset.c --- gthumb-3.8.3/extensions/flicker_utils/flickr-photoset.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/flicker_utils/flickr-photoset.c 2020-03-07 19:03:13.423622800 +0000 @@ -161,7 +161,7 @@ flickr_photoset_set_id (FlickrPhotoset *self, const char *value) { - _g_strset (&self->id, value); + _g_str_set (&self->id, value); } @@ -169,7 +169,7 @@ flickr_photoset_set_title (FlickrPhotoset *self, const char *value) { - _g_strset (&self->title, value); + _g_str_set (&self->title, value); } @@ -177,7 +177,7 @@ flickr_photoset_set_description (FlickrPhotoset *self, const char *value) { - _g_strset (&self->description, value); + _g_str_set (&self->description, value); } @@ -196,7 +196,7 @@ flickr_photoset_set_primary (FlickrPhotoset *self, const char *value) { - _g_strset (&self->primary, value); + _g_str_set (&self->primary, value); } @@ -204,7 +204,7 @@ flickr_photoset_set_secret (FlickrPhotoset *self, const char *value) { - _g_strset (&self->secret, value); + _g_str_set (&self->secret, value); } @@ -212,7 +212,7 @@ flickr_photoset_set_server (FlickrPhotoset *self, const char *value) { - _g_strset (&self->server, value); + _g_str_set (&self->server, value); } @@ -220,7 +220,7 @@ flickr_photoset_set_farm (FlickrPhotoset *self, const char *value) { - _g_strset (&self->farm, value); + _g_str_set (&self->farm, value); } @@ -228,5 +228,5 @@ flickr_photoset_set_url (FlickrPhotoset *self, const char *value) { - _g_strset (&self->url, value); + _g_str_set (&self->url, value); } diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/actions.c gthumb-3.9.1/extensions/gstreamer_tools/actions.c --- gthumb-3.8.3/extensions/gstreamer_tools/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/actions.c 2020-03-07 19:03:13.423622800 +0000 @@ -96,7 +96,7 @@ uri = _g_settings_get_uri_or_special_dir (save_data->settings, PREF_GSTREAMER_TOOLS_SCREESHOT_LOCATION, G_USER_DIRECTORY_PICTURES); folder = g_file_new_for_uri (uri); file_data = gth_media_viewer_page_get_file_data (save_data->page); - prefix = _g_utf8_remove_extension (g_file_info_get_display_name (file_data->info)); + prefix = _g_path_remove_extension (g_file_info_get_display_name (file_data->info)); if (prefix == NULL) prefix = g_strdup (C_("Filename", "Screenshot")); @@ -192,3 +192,29 @@ screenshot_ready_cb, save_data); } + + +void +gth_browser_activate_toggle_play (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + GthMediaViewerPage *page; + + page = GTH_MEDIA_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + gth_media_viewer_page_toggle_play (page); +} + + +void +gth_browser_activate_video_zoom_fit (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + GthMediaViewerPage *page = GTH_MEDIA_VIEWER_PAGE (gth_browser_get_viewer_page (browser));; + + g_simple_action_set_state (action, state); + gth_media_viewer_page_set_fit_if_larger (page, g_variant_get_boolean (state)); +} diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/actions.h gthumb-3.9.1/extensions/gstreamer_tools/actions.h --- gthumb-3.8.3/extensions/gstreamer_tools/actions.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/actions.h 2020-03-07 19:03:13.423622800 +0000 @@ -25,5 +25,7 @@ #include DEF_ACTION_CALLBACK (gth_browser_activate_video_screenshot) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_play) +DEF_ACTION_CALLBACK (gth_browser_activate_video_zoom_fit) #endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/callbacks.c gthumb-3.9.1/extensions/gstreamer_tools/callbacks.c --- gthumb-3.8.3/extensions/gstreamer_tools/callbacks.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/callbacks.c 2020-03-07 19:03:13.423622800 +0000 @@ -0,0 +1,45 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include +#include "callbacks.h" +#include "shortcuts.h" + + +static const GthShortcut shortcuts[] = { + { "video-screenshot", N_("Screenshot"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_MEDIA_VIEWER, "s" }, + { "toggle-play", N_("Play/Pause"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_MEDIA_VIEWER, "space" }, +}; + + +void +media_viewer__gth_browser_construct_cb (GthBrowser *browser) +{ + g_return_if_fail (GTH_IS_BROWSER (browser)); + + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); +} diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/callbacks.h gthumb-3.9.1/extensions/gstreamer_tools/callbacks.h --- gthumb-3.8.3/extensions/gstreamer_tools/callbacks.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/callbacks.h 2020-03-07 19:03:13.423622800 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef CALLBACKS_H +#define CALLBACKS_H + +#include + +void media_viewer__gth_browser_construct_cb (GthBrowser *browser); + +#endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in gthumb-3.9.1/extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in --- gthumb-3.8.3/extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in 2020-03-07 19:03:13.423622800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Audio/Video support Comment=Play audio and video files. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=video-x-generic Category=Viewer diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/gth-media-viewer-page.c gthumb-3.9.1/extensions/gstreamer_tools/gth-media-viewer-page.c --- gthumb-3.8.3/extensions/gstreamer_tools/gth-media-viewer-page.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/gth-media-viewer-page.c 2020-03-07 19:03:13.423622800 +0000 @@ -39,6 +39,7 @@ struct _GthMediaViewerPagePrivate { GthBrowser *browser; + GSettings *settings; GthFileData *file_data; GFileInfo *updated_info; GstElement *playbin; @@ -47,6 +48,7 @@ GtkWidget *audio_area; GtkWidget *area_box; GtkWidget *area_overlay; + gboolean fit_if_larger; gboolean visible; gboolean playing; gboolean paused; @@ -54,6 +56,8 @@ gint64 duration; int video_fps_n; int video_fps_d; + int video_width; + int video_height; gboolean has_video; gboolean has_audio; gulong update_progress_id; @@ -68,6 +72,7 @@ gboolean cursor_visible; GthScreensaver *screensaver; GtkWidget *screenshot_button; + GtkWidget *fit_button; gboolean background_painted; }; @@ -84,7 +89,9 @@ static const GActionEntry actions[] = { - { "video-screenshot", gth_browser_activate_video_screenshot } + { "video-screenshot", gth_browser_activate_video_screenshot }, + { "toggle-play", gth_browser_activate_toggle_play }, + { "video-zoom-fit", toggle_action_activated, NULL, "true", gth_browser_activate_video_zoom_fit }, }; @@ -165,6 +172,52 @@ } +static void +update_zoom_info (GthMediaViewerPage *self) +{ + GtkAllocation allocation; + double view_width; + double view_height; + int zoom; + char *text; + + if (! self->priv->has_video) { + gth_statusbar_set_secondary_text (GTH_STATUSBAR (gth_browser_get_statusbar (self->priv->browser)), ""); + return; + } + + gtk_widget_get_allocation (self->priv->video_area, &allocation); + + view_width = allocation.width; + view_height = (((double) self->priv->video_height / self->priv->video_width) * view_width); + if (view_height > allocation.height) { + view_height = allocation.height; + view_width = (((double) self->priv->video_width / self->priv->video_height) * view_height); + } + + if (self->priv->video_width > 0) + zoom = (int) round ((double) view_width / self->priv->video_width * 100); + else if (self->priv->video_height > 0) + zoom = (int) round ((double) view_height / self->priv->video_height * 100); + else + zoom = 100; + text = g_strdup_printf (" %d%% ", zoom); + gth_statusbar_set_secondary_text (GTH_STATUSBAR (gth_browser_get_statusbar (self->priv->browser)), text); + + g_free (text); +} + + +static void +video_area_size_allocate_cb (GtkWidget *widget, + GdkRectangle *allocation, + gpointer user_data) +{ + GthMediaViewerPage *self = user_data; + update_zoom_info (self); +} + + static gboolean video_area_draw_cb (GtkWidget *widget, cairo_t *cr, @@ -415,39 +468,7 @@ play_button_clicked_cb (GtkButton *button, gpointer user_data) { - GthMediaViewerPage *self = user_data; - - if (self->priv->playbin == NULL) - return; - if (! self->priv->playing) { - if (! self->priv->paused) { - gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); - gst_element_seek (self->priv->playbin, - self->priv->rate, - GST_FORMAT_TIME, - GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, - GST_SEEK_TYPE_SET, - 0.0, - GST_SEEK_TYPE_NONE, - 0.0); - } - else { - gint64 current_value; - - current_value = (gint64) (gtk_adjustment_get_value (GTK_ADJUSTMENT (GET_WIDGET ("position_adjustment"))) / 100.0 * self->priv->duration); - gst_element_seek (self->priv->playbin, - self->priv->rate, - GST_FORMAT_TIME, - GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, - GST_SEEK_TYPE_SET, - current_value, - GST_SEEK_TYPE_NONE, - 0.0); - } - gst_element_set_state (self->priv->playbin, GST_STATE_PLAYING); - } - else - gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); + gth_media_viewer_page_toggle_play (GTH_MEDIA_VIEWER_PAGE (user_data)); } @@ -659,6 +680,9 @@ "video-sink", &video_sink, NULL); + self->priv->has_audio = FALSE; + self->priv->has_video = FALSE; + if (audio_sink != NULL) { audio_pad = gst_element_get_static_pad (GST_ELEMENT (audio_sink), "sink"); if (audio_pad != NULL) { @@ -689,6 +713,8 @@ g_file_info_set_attribute_int32 (self->priv->updated_info, "frame::width", video_width); g_file_info_set_attribute_int32 (self->priv->updated_info, "frame::height", video_height); self->priv->has_video = TRUE; + self->priv->video_width = video_width; + self->priv->video_height = video_height; } gst_caps_unref (caps); @@ -697,6 +723,7 @@ } gtk_stack_set_visible_child_name (GTK_STACK (self->priv->area_box), self->priv->has_video ? "video-area" : "audio-area"); + update_zoom_info (self); } @@ -800,7 +827,6 @@ create_playbin (GthMediaViewerPage *self) { GstElement *video_sink; - GSettings *settings; GstBus *bus; if (self->priv->playbin != NULL) @@ -808,8 +834,7 @@ self->priv->playbin = gst_element_factory_make ("playbin", "playbin"); - settings = g_settings_new (GTHUMB_GSTREAMER_TOOLS_SCHEMA); - if (g_settings_get_boolean (settings, PREF_GSTREAMER_USE_HARDWARE_ACCEL)) { + if (g_settings_get_boolean (self->priv->settings, PREF_GSTREAMER_USE_HARDWARE_ACCEL)) { GstElement *video_bin; GstElement *glupload; GstPad *pad; @@ -856,26 +881,17 @@ G_CALLBACK (video_area_unrealize_cb), self); g_signal_connect (G_OBJECT (self->priv->video_area), - "button_press_event", - G_CALLBACK (video_area_button_press_cb), - self); - g_signal_connect (G_OBJECT (self->priv->video_area), - "popup-menu", - G_CALLBACK (video_area_popup_menu_cb), - self); - g_signal_connect (G_OBJECT (self->priv->video_area), - "scroll_event", - G_CALLBACK (video_area_scroll_event_cb), + "size-allocate", + G_CALLBACK (video_area_size_allocate_cb), self); gtk_stack_add_named (GTK_STACK (self->priv->area_box), self->priv->video_area, "video-area"); gtk_widget_show (self->priv->video_area); g_object_set (self->priv->playbin, - "volume", (double) g_settings_get_int (settings, PREF_GSTREAMER_TOOLS_VOLUME) / 100.0, + "volume", (double) g_settings_get_int (self->priv->settings, PREF_GSTREAMER_TOOLS_VOLUME) / 100.0, "force-aspect-ratio", TRUE, NULL); - g_object_unref (settings); bus = gst_pipeline_get_bus (GST_PIPELINE (self->priv->playbin)); gst_bus_add_signal_watch (bus); @@ -914,6 +930,13 @@ _("Take a screenshot"), "win.video-screenshot", NULL); + self->priv->fit_button = + gth_browser_add_header_bar_toggle_button (browser, + GTH_BROWSER_HEADER_SECTION_VIEWER_ZOOM, + "view-zoom-fit-symbolic", + _("Fit to window"), + "win.video-zoom-fit", + NULL); /* audio area */ @@ -934,18 +957,6 @@ "draw", G_CALLBACK (video_area_draw_cb), self); - g_signal_connect (G_OBJECT (self->priv->audio_area), - "button_press_event", - G_CALLBACK (video_area_button_press_cb), - self); - g_signal_connect (G_OBJECT (self->priv->audio_area), - "popup-menu", - G_CALLBACK (video_area_popup_menu_cb), - self); - g_signal_connect (G_OBJECT (self->priv->audio_area), - "scroll_event", - G_CALLBACK (video_area_scroll_event_cb), - self); /* mediabar */ @@ -996,9 +1007,23 @@ gtk_container_add (GTK_CONTAINER (self->priv->mediabar_revealer), self->priv->mediabar); self->priv->area_box = gtk_stack_new (); + gtk_style_context_add_class (gtk_widget_get_style_context (self->priv->area_box), "video-player"); gtk_stack_add_named (GTK_STACK (self->priv->area_box), self->priv->audio_area, "audio-area"); gtk_widget_show (self->priv->area_box); + g_signal_connect (G_OBJECT (self->priv->area_box), + "button_press_event", + G_CALLBACK (video_area_button_press_cb), + self); + g_signal_connect (G_OBJECT (self->priv->area_box), + "popup-menu", + G_CALLBACK (video_area_popup_menu_cb), + self); + g_signal_connect (G_OBJECT (self->priv->area_box), + "scroll_event", + G_CALLBACK (video_area_scroll_event_cb), + self); + self->priv->area_overlay = gtk_overlay_new (); gtk_container_add (GTK_CONTAINER (self->priv->area_overlay), self->priv->area_box); gtk_overlay_add_overlay (GTK_OVERLAY (self->priv->area_overlay), self->priv->mediabar_revealer); @@ -1013,20 +1038,8 @@ gth_viewer_page_focus (GTH_VIEWER_PAGE (self)); create_playbin (self); -} - - -static void -save_volume (GthMediaViewerPage *self) -{ - GSettings *settings; - double volume; - - settings = g_settings_new (GTHUMB_GSTREAMER_TOOLS_SCHEMA); - g_object_get (self->priv->playbin, "volume", &volume, NULL); - g_settings_set_int (settings, PREF_GSTREAMER_TOOLS_VOLUME, (int) (volume * 100.0)); - g_object_unref (settings); + gth_media_viewer_page_set_fit_if_larger (self, g_settings_get_boolean (self->priv->settings, PREF_GSTREAMER_ZOOM_TO_FIT)); } @@ -1066,10 +1079,15 @@ } if (self->priv->playbin != NULL) { - save_volume (self); + double volume; - g_signal_handlers_disconnect_by_data (self->priv->playbin, self); - g_signal_handlers_disconnect_by_data (self->priv->video_area, self); + g_object_get (self->priv->playbin, "volume", &volume, NULL); + g_settings_set_int (self->priv->settings, PREF_GSTREAMER_TOOLS_VOLUME, (int) (volume * 100.0)); + + g_settings_set_boolean (self->priv->settings, PREF_GSTREAMER_ZOOM_TO_FIT, self->priv->fit_if_larger); + + _g_signal_handlers_disconnect_by_data (self->priv->playbin, self); + _g_signal_handlers_disconnect_by_data (self->priv->video_area, self); gst_element_set_state (self->priv->playbin, GST_STATE_NULL); wait_playbin_state_change_to_complete (self); @@ -1080,7 +1098,9 @@ } gtk_widget_destroy (self->priv->screenshot_button); + gtk_widget_destroy (self->priv->fit_button); self->priv->screenshot_button = NULL; + self->priv->fit_button = NULL; gth_browser_set_viewer_widget (self->priv->browser, NULL); } @@ -1251,6 +1271,7 @@ gtk_widget_set_sensitive (GET_WIDGET ("volume_box"), self->priv->has_audio); gtk_widget_set_sensitive (GET_WIDGET ("play_button"), self->priv->has_video || self->priv->has_audio); gth_window_enable_action (GTH_WINDOW (self->priv->browser), "video-screenshot", self->priv->has_video); + gth_window_enable_action (GTH_WINDOW (self->priv->browser), "video-zoom-fit", self->priv->has_video); } @@ -1325,6 +1346,7 @@ gth_screensaver_uninhibit (self->priv->screensaver); g_object_unref (self->priv->screensaver); } + _g_object_unref (self->priv->settings); G_OBJECT_CLASS (gth_media_viewer_page_parent_class)->finalize (obj); } @@ -1359,9 +1381,20 @@ static void +pref_zoom_to_fit_changed (GSettings *settings, + char *key, + gpointer user_data) +{ + GthMediaViewerPage *self = user_data; + gth_media_viewer_page_set_fit_if_larger (self, g_settings_get_boolean (self->priv->settings, PREF_GSTREAMER_ZOOM_TO_FIT)); +} + + +static void gth_media_viewer_page_init (GthMediaViewerPage *self) { self->priv = gth_media_viewer_page_get_instance_private (self); + self->priv->settings = g_settings_new (GTHUMB_GSTREAMER_TOOLS_SCHEMA); self->priv->update_progress_id = 0; self->priv->update_volume_id = 0; self->priv->has_video = FALSE; @@ -1377,6 +1410,14 @@ self->priv->file_data = NULL; self->priv->updated_info = NULL; self->priv->loop = FALSE; + self->priv->fit_if_larger = TRUE; + + /* settings notifications */ + + g_signal_connect (self->priv->settings, + "changed::" PREF_GSTREAMER_ZOOM_TO_FIT, + G_CALLBACK (pref_zoom_to_fit_changed), + self); } @@ -1418,3 +1459,58 @@ { return self->priv->file_data; } + + +void +gth_media_viewer_page_toggle_play (GthMediaViewerPage *self) +{ + if (self->priv->playbin == NULL) + return; + + if (! self->priv->playing) { + if (! self->priv->paused) { + gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); + gst_element_seek (self->priv->playbin, + self->priv->rate, + GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, + GST_SEEK_TYPE_SET, + 0.0, + GST_SEEK_TYPE_NONE, + 0.0); + } + else { + gint64 current_value; + + current_value = (gint64) (gtk_adjustment_get_value (GTK_ADJUSTMENT (GET_WIDGET ("position_adjustment"))) / 100.0 * self->priv->duration); + gst_element_seek (self->priv->playbin, + self->priv->rate, + GST_FORMAT_TIME, + GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_ACCURATE, + GST_SEEK_TYPE_SET, + current_value, + GST_SEEK_TYPE_NONE, + 0.0); + } + gst_element_set_state (self->priv->playbin, GST_STATE_PLAYING); + } + else + gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); +} + + +void +gth_media_viewer_page_set_fit_if_larger (GthMediaViewerPage *self, + gboolean fit_if_larger) +{ + GtkAlign alignment; + + self->priv->fit_if_larger = fit_if_larger; + if (self->priv->video_area != NULL) { + alignment = self->priv->fit_if_larger ? GTK_ALIGN_FILL : GTK_ALIGN_CENTER; + gtk_widget_set_valign (self->priv->video_area, alignment); + gtk_widget_set_halign (self->priv->video_area, alignment); + + gth_window_change_action_state (GTH_WINDOW (self->priv->browser), "video-zoom-fit", self->priv->fit_if_larger); + } +} diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/gth-media-viewer-page.h gthumb-3.9.1/extensions/gstreamer_tools/gth-media-viewer-page.h --- gthumb-3.8.3/extensions/gstreamer_tools/gth-media-viewer-page.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/gth-media-viewer-page.h 2020-03-07 19:03:13.423622800 +0000 @@ -54,7 +54,11 @@ void gth_media_viewer_page_get_video_fps (GthMediaViewerPage *self, int *video_fps_n, int *video_fps_d); -GthFileData * gth_media_viewer_page_get_file_data (GthMediaViewerPage *self); +GthFileData * gth_media_viewer_page_get_file_data (GthMediaViewerPage *self); +void gth_media_viewer_page_toggle_play (GthMediaViewerPage *self); +void gth_media_viewer_page_set_fit_if_larger + (GthMediaViewerPage *self, + gboolean fit_if_larger); G_END_DECLS diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/main.c gthumb-3.9.1/extensions/gstreamer_tools/main.c --- gthumb-3.8.3/extensions/gstreamer_tools/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/main.c 2020-03-07 19:03:13.423622800 +0000 @@ -23,9 +23,16 @@ #include #include #include +#include "callbacks.h" #include "dlg-media-viewer-preferences.h" #include "gth-metadata-provider-gstreamer.h" #include "gth-media-viewer-page.h" +#include "shortcuts.h" + + +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_MEDIA_VIEWER, N_("Audio/Video Player"), 24 }, +}; GthMetadataCategory gstreamer_metadata_category[] = { @@ -59,9 +66,11 @@ gthumb_extension_activate (void) { gth_main_register_object (GTH_TYPE_VIEWER_PAGE, NULL, GTH_TYPE_MEDIA_VIEWER_PAGE, NULL); + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_main_register_metadata_category (gstreamer_metadata_category); gth_main_register_metadata_info_v (gstreamer_metadata_info); gth_main_register_metadata_provider (GTH_TYPE_METADATA_PROVIDER_GSTREAMER); + gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (media_viewer__gth_browser_construct_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/meson.build gthumb-3.9.1/extensions/gstreamer_tools/meson.build --- gthumb-3.8.3/extensions/gstreamer_tools/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/meson.build 2020-03-07 19:03:13.423622800 +0000 @@ -1,5 +1,6 @@ source_files = files( 'actions.c', + 'callbacks.c', 'dlg-media-viewer-preferences.c', 'gth-media-viewer-page.c', 'gth-metadata-provider-gstreamer.c', diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/preferences.h gthumb-3.9.1/extensions/gstreamer_tools/preferences.h --- gthumb-3.8.3/extensions/gstreamer_tools/preferences.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/preferences.h 2020-03-07 19:03:13.423622800 +0000 @@ -31,5 +31,6 @@ #define PREF_GSTREAMER_TOOLS_SCREESHOT_LOCATION "screenshot-location" #define PREF_GSTREAMER_TOOLS_VOLUME "volume" #define PREF_GSTREAMER_USE_HARDWARE_ACCEL "use-hardware-acceleration" +#define PREF_GSTREAMER_ZOOM_TO_FIT "zoom-to-fit" #endif /* PREFERENCES_H */ diff -Nru gthumb-3.8.3/extensions/gstreamer_tools/shortcuts.h gthumb-3.9.1/extensions/gstreamer_tools/shortcuts.h --- gthumb-3.8.3/extensions/gstreamer_tools/shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/gstreamer_tools/shortcuts.h 2020-03-07 19:03:13.423622800 +0000 @@ -0,0 +1,27 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef IMAGE_VIEWER_SHORTCUTS_H +#define IMAGE_VIEWER_SHORTCUTS_H + +#define GTH_SHORTCUT_CATEGORY_MEDIA_VIEWER "media-viewer" + +#endif /* IMAGE_VIEWER_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/extensions/image_print/callbacks.c gthumb-3.9.1/extensions/image_print/callbacks.c --- gthumb-3.8.3/extensions/image_print/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/callbacks.c 2020-03-07 19:03:13.423622800 +0000 @@ -34,8 +34,8 @@ }; -static const GthAccelerator accelerators[] = { - { "win.print", "P" } +static const GthShortcut shortcuts[] = { + { "print", N_("Print"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "p" }, }; @@ -52,25 +52,23 @@ GTH_MENU_MANAGER_NEW_MERGE_ID, _("Print"), "win.print", - "P", + NULL, NULL); gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_FILE_LIST_OPEN_ACTIONS), GTH_MENU_MANAGER_NEW_MERGE_ID, _("Print"), "win.print", - "P", + NULL, NULL); - gth_window_add_accelerators (GTH_WINDOW (browser), - accelerators, - G_N_ELEMENTS (accelerators)); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); } void -ip__gth_browser_update_sensitivity_cb (GthBrowser *browser) +ip__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); g_object_set (g_action_map_lookup_action (G_ACTION_MAP (browser), "print"), "enabled", n_selected > 0, NULL); } diff -Nru gthumb-3.8.3/extensions/image_print/callbacks.h gthumb-3.9.1/extensions/image_print/callbacks.h --- gthumb-3.8.3/extensions/image_print/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/callbacks.h 2020-03-07 19:03:13.423622800 +0000 @@ -25,6 +25,7 @@ #include void ip__gth_browser_construct_cb (GthBrowser *browser); -void ip__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void ip__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/image_print/data/ui/print-preferences.ui gthumb-3.9.1/extensions/image_print/data/ui/print-preferences.ui --- gthumb-3.8.3/extensions/image_print/data/ui/print-preferences.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/data/ui/print-preferences.ui 2020-03-07 19:03:13.426956000 +0000 @@ -1,7 +1,7 @@ - + - + True False @@ -11,9 +11,9 @@ True False - 0 Fonts True + 0 @@ -25,123 +25,114 @@ - + True False - 12 + 12 + vertical - + True False - vertical + 6 + 6 + + + True + False + Caption: + 0 + + + 0 + 0 + + - + True False - 6 - 6 - - - True - False - 0 - Caption: - - - 0 - 0 - - - - - True - False - 0 - _Header: - True - header_fontbutton - - - 0 - 1 - - - - - True - False - 0 - _Footer: - True - footer_fontbutton - - - 0 - 2 - - - - - False - True - True - True - Sans 12 - - False - Select Caption Font - True - True - - - 1 - 0 - - - - - False - True - True - True - Sans Bold 12 - - False - Select Header Font - True - True - - - 1 - 1 - - - - - False - True - True - True - Sans 8 - - False - Select Footer Font - True - True - - - 1 - 2 - - - - - False - True - 0 + _Header: + True + header_fontbutton + 0 + + + 0 + 1 + + + + + True + False + _Footer: + True + footer_fontbutton + 0 + + + 0 + 2 + + + + + True + True + True + Sans 12 + + False + Select Caption Font + True + True + + + 1 + 0 + + + + + True + True + True + Sans 12 + + False + Select Header Font + True + True + + + 1 + 1 + + + + + True + True + True + Sans 12 + + False + Select Footer Font + True + True + + + 1 + 2 + + False + True + 0 + diff -Nru gthumb-3.8.3/extensions/image_print/gth-image-print-job.c gthumb-3.9.1/extensions/image_print/gth-image-print-job.c --- gthumb-3.8.3/extensions/image_print/gth-image-print-job.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/gth-image-print-job.c 2020-03-07 19:03:13.426956000 +0000 @@ -1230,7 +1230,7 @@ { GthImagePrintJob *self = user_data; - _g_strset (&self->priv->header_template, gtk_entry_get_text (GTK_ENTRY (editable))); + _g_str_set (&self->priv->header_template, gtk_entry_get_text (GTK_ENTRY (editable))); if (g_strcmp0 (self->priv->header_template, "") == 0) { g_free (self->priv->header_template); self->priv->header_template = NULL; @@ -1246,7 +1246,7 @@ { GthImagePrintJob *self = user_data; - _g_strset (&self->priv->footer_template, gtk_entry_get_text (GTK_ENTRY (editable))); + _g_str_set (&self->priv->footer_template, gtk_entry_get_text (GTK_ENTRY (editable))); if (g_strcmp0 (self->priv->footer_template, "") == 0) { g_free (self->priv->footer_template); self->priv->footer_template = NULL; @@ -1420,7 +1420,7 @@ GthImagePrintJob *self = user_data; self->priv->builder = _gtk_builder_new_from_file ("print-layout.ui", "image_print"); - self->priv->caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT); + self->priv->caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT, TRUE); gtk_widget_show (self->priv->caption_chooser); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("caption_scrolledwindow")), self->priv->caption_chooser); @@ -1788,7 +1788,7 @@ char *uri; if (self->priv->n_images == 1) - basename = _g_uri_remove_extension (g_file_info_get_name (self->priv->images[0]->file_data->info)); + basename = _g_path_remove_extension (g_file_info_get_name (self->priv->images[0]->file_data->info)); else basename = g_strdup (g_file_info_get_edit_name (gth_browser_get_location_data (self->priv->browser)->info)); default_dir = g_get_user_special_dir (G_USER_DIRECTORY_PICTURES); diff -Nru gthumb-3.8.3/extensions/image_print/image_print.extension.desktop.in.in gthumb-3.9.1/extensions/image_print/image_print.extension.desktop.in.in --- gthumb-3.8.3/extensions/image_print/image_print.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/image_print.extension.desktop.in.in 2020-03-07 19:03:13.426956000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Image print Comment=Allow to print images choosing the page layout. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=document-print Category=List-Tool diff -Nru gthumb-3.8.3/extensions/image_print/main.c gthumb-3.9.1/extensions/image_print/main.c --- gthumb-3.8.3/extensions/image_print/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_print/main.c 2020-03-07 19:03:13.426956000 +0000 @@ -31,7 +31,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 9, G_CALLBACK (ip__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (ip__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (ip__gth_browser_selection_changed_cb), NULL); gth_hook_add_callback ("dlg-preferences-construct", 40, G_CALLBACK (ip__dlg_preferences_construct_cb), NULL); gth_hook_add_callback ("dlg-preferences-apply", 10, G_CALLBACK (ip__dlg_preferences_apply_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/image_rotation/callbacks.c gthumb-3.9.1/extensions/image_rotation/callbacks.c --- gthumb-3.8.3/extensions/image_rotation/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_rotation/callbacks.c 2020-03-07 19:03:13.426956000 +0000 @@ -27,6 +27,7 @@ #include #include #include +#include #include "actions.h" #include "callbacks.h" @@ -42,15 +43,21 @@ }; +static const GthShortcut shortcuts[] = { + { "rotate-right", N_("Rotate right"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_LIST_TOOLS, "bracketright" }, + { "rotate-left", N_("Rotate left"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_LIST_TOOLS, "bracketleft" }, +}; + + static const GthMenuEntry tools1_action_entries[] = { - { N_("Rotate Left"), "win.rotate-left", "bracketleft", "object-rotate-left-symbolic" }, - { N_("Rotate Right"), "win.rotate-right", "bracketright", "object-rotate-right-symbolic" }, + { N_("Rotate Left"), "win.rotate-left", NULL, "object-rotate-left-symbolic" }, + { N_("Rotate Right"), "win.rotate-right", NULL, "object-rotate-right-symbolic" }, }; static const GthMenuEntry tools2_action_entries[] = { - { N_("Rotate Physically"), "win.apply-orientation", NULL }, - { N_("Reset the EXIF Orientation"), "win.reset-orientation", NULL } + { N_("Rotate Physically"), "win.apply-orientation" }, + { N_("Reset the EXIF Orientation"), "win.reset-orientation" } }; @@ -84,6 +91,11 @@ actions, G_N_ELEMENTS (actions), browser); + + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); + gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_TOOLS), tools1_action_entries, G_N_ELEMENTS (tools1_action_entries)); @@ -94,12 +106,11 @@ void -ir__gth_browser_update_sensitivity_cb (GthBrowser *browser) +ir__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; gboolean sensitive; - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); sensitive = n_selected > 0; gth_window_enable_action (GTH_WINDOW (browser), "rotate-right", sensitive); gth_window_enable_action (GTH_WINDOW (browser), "rotate-left", sensitive); @@ -108,31 +119,6 @@ } -gpointer -ir__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event) -{ - gpointer result = NULL; - - switch (event->keyval) { - case GDK_KEY_bracketright: - gth_browser_activate_rotate_right (NULL, NULL, browser); - result = GINT_TO_POINTER (1); - break; - - case GDK_KEY_bracketleft: - gth_browser_activate_rotate_left (NULL, NULL, browser); - result = GINT_TO_POINTER (1); - break; - - default: - break; - } - - return result; -} - - static void viewer_image_changed_cb (GtkWidget *widget, GthBrowser *browser) diff -Nru gthumb-3.8.3/extensions/image_rotation/callbacks.h gthumb-3.9.1/extensions/image_rotation/callbacks.h --- gthumb-3.8.3/extensions/image_rotation/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_rotation/callbacks.h 2020-03-07 19:03:13.426956000 +0000 @@ -25,9 +25,8 @@ #include void ir__gth_browser_construct_cb (GthBrowser *browser); -void ir__gth_browser_update_sensitivity_cb (GthBrowser *browser); -gpointer ir__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event); +void ir__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); void ir__gth_browser_activate_viewer_page_cb (GthBrowser *browser); void ir__gth_browser_deactivate_viewer_page_cb (GthBrowser *browser); diff -Nru gthumb-3.8.3/extensions/image_rotation/image_rotation.extension.desktop.in.in gthumb-3.9.1/extensions/image_rotation/image_rotation.extension.desktop.in.in --- gthumb-3.8.3/extensions/image_rotation/image_rotation.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_rotation/image_rotation.extension.desktop.in.in 2020-03-07 19:03:13.426956000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Image rotation Comment=Rotate images without data loss. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=List-Tool diff -Nru gthumb-3.8.3/extensions/image_rotation/main.c gthumb-3.9.1/extensions/image_rotation/main.c --- gthumb-3.8.3/extensions/image_rotation/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_rotation/main.c 2020-03-07 19:03:13.426956000 +0000 @@ -38,8 +38,7 @@ gth_hook_register ("jpegtran-after", 1); gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (ir__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (ir__gth_browser_update_sensitivity_cb), NULL); - gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (ir__gth_browser_file_list_key_press_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (ir__gth_browser_selection_changed_cb), NULL); gth_hook_add_callback ("gth-browser-activate-viewer-page", 10, G_CALLBACK (ir__gth_browser_activate_viewer_page_cb), NULL); gth_hook_add_callback ("gth-browser-deactivate-viewer-page", 10, G_CALLBACK (ir__gth_browser_deactivate_viewer_page_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/image_viewer/actions.c gthumb-3.9.1/extensions/image_viewer/actions.c --- gthumb-3.8.3/extensions/image_viewer/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/actions.c 2020-03-07 19:03:13.426956000 +0000 @@ -24,6 +24,20 @@ #include #include "actions.h" #include "gth-image-viewer-page.h" +#include "preferences.h" + + + +static GthImageViewerPage * +get_image_viewer_page (GthBrowser *browser) +{ + GthViewerPage *viewer_page = gth_browser_get_viewer_page (browser); + + if ((viewer_page != NULL) && GTH_IS_IMAGE_VIEWER_PAGE (viewer_page)) + return GTH_IMAGE_VIEWER_PAGE (viewer_page); + else + return NULL; +} void @@ -32,9 +46,12 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; - gth_image_viewer_zoom_in (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self))); + gth_image_viewer_zoom_in (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page))); } @@ -44,9 +61,12 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); - gth_image_viewer_zoom_out (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self))); + if (viewer_page == NULL) + return; + + gth_image_viewer_zoom_out (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page))); } @@ -56,9 +76,42 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_set_zoom (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), 1.0); +} + + +void +gth_browser_activate_image_zoom_200 (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_set_zoom (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), 2.0); +} + + +void +gth_browser_activate_image_zoom_300 (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; - gth_image_viewer_set_zoom (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self)), 1.0); + gth_image_viewer_set_zoom (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), 3.0); } @@ -68,9 +121,12 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); - gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self)), GTH_FIT_SIZE); + if (viewer_page == NULL) + return; + + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_SIZE); } @@ -80,9 +136,12 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; - gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self)), GTH_FIT_SIZE_IF_LARGER); + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_SIZE_IF_LARGER); } @@ -92,9 +151,27 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; - gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self)), GTH_FIT_WIDTH); + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_WIDTH); +} + + +void +gth_browser_activate_image_zoom_fit_width_if_larger (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_WIDTH_IF_LARGER); } @@ -104,9 +181,27 @@ gpointer user_data) { GthBrowser *browser = user_data; - GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)); + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; - gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (self)), GTH_FIT_HEIGHT); + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_HEIGHT); +} + + +void +gth_browser_activate_image_zoom_fit_height_if_larger (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)), GTH_FIT_HEIGHT_IF_LARGER); } @@ -115,8 +210,13 @@ GVariant *parameter, gpointer user_data) { - GthBrowser *browser = user_data; - gth_image_viewer_page_undo (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser))); + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_page_undo (viewer_page); } @@ -125,8 +225,13 @@ GVariant *parameter, gpointer user_data) { - GthBrowser *browser = user_data; - gth_image_viewer_page_redo (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser))); + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_page_redo (viewer_page); } @@ -135,8 +240,13 @@ GVariant *parameter, gpointer user_data) { - GthBrowser *browser = user_data; - gth_image_viewer_page_copy_image (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser))); + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_page_copy_image (viewer_page); } @@ -145,8 +255,13 @@ GVariant *parameter, gpointer user_data) { - GthBrowser *browser = user_data; - gth_image_viewer_page_paste_image (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser))); + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; + + gth_image_viewer_page_paste_image (viewer_page); } @@ -155,10 +270,50 @@ GVariant *state, gpointer user_data) { - GthBrowser *browser = user_data; + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + + if (viewer_page == NULL) + return; g_simple_action_set_state (action, state); - gth_image_viewer_page_apply_icc_profile (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)), g_variant_get_boolean (state)); + gth_image_viewer_page_apply_icc_profile (viewer_page, g_variant_get_boolean (state)); +} + + +void +gth_browser_activate_transparency_style (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + const char *state; + GthTransparencyStyle style; + GSettings *settings; + + if (viewer_page == NULL) + return; + + state = g_variant_get_string (parameter, NULL); + if (state == NULL) + return; + + g_simple_action_set_state (action, g_variant_new_string (state)); + + if (strcmp (state, "white") == 0) + style = GTH_TRANSPARENCY_STYLE_WHITE; + else if (strcmp (state, "gray") == 0) + style = GTH_TRANSPARENCY_STYLE_GRAY; + else if (strcmp (state, "black") == 0) + style = GTH_TRANSPARENCY_STYLE_BLACK; + else + style = GTH_TRANSPARENCY_STYLE_CHECKERED; + + settings = g_settings_new (GTHUMB_IMAGE_VIEWER_SCHEMA); + g_settings_set_enum (settings, PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE, style); + + g_object_unref (settings); } @@ -167,9 +322,13 @@ GVariant *parameter, gpointer user_data) { - GthBrowser *browser = user_data; - const char *state; - GthImageViewer *image_viewer; + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + const char *state; + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; state = g_variant_get_string (parameter, NULL); g_simple_action_set_state (action, g_variant_new_string (state)); @@ -177,7 +336,7 @@ if (state == NULL) return; - image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (GTH_IMAGE_VIEWER_PAGE (gth_browser_get_viewer_page (browser)))); + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); if (strcmp (state, "automatic") == 0) gth_image_viewer_set_fit_mode (image_viewer, GTH_FIT_SIZE_IF_LARGER); else if (strcmp (state, "fit") == 0) @@ -202,20 +361,22 @@ GVariant *state, gpointer user_data) { - GthBrowser *browser = user_data; - GthViewerPage *viewer_page; - GthImageViewer *image_viewer; + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; g_simple_action_set_state (action, state); - viewer_page = gth_browser_get_viewer_page (browser); - image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (GTH_IMAGE_VIEWER_PAGE (viewer_page))); + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); if (gth_image_viewer_is_playing_animation (image_viewer)) gth_image_viewer_stop_animation (image_viewer); else gth_image_viewer_start_animation (image_viewer); - gth_viewer_page_update_sensitivity (viewer_page); + gth_viewer_page_update_sensitivity (GTH_VIEWER_PAGE (viewer_page)); } @@ -224,11 +385,162 @@ GVariant *state, gpointer user_data) { - GthBrowser *browser = user_data; - GthViewerPage *viewer_page; - GthImageViewer *image_viewer; + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; - viewer_page = gth_browser_get_viewer_page (browser); - image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (GTH_IMAGE_VIEWER_PAGE (viewer_page))); + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); gth_image_viewer_step_animation (image_viewer); } + + +void +gth_browser_activate_scroll_step_left (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_step_x (image_viewer, FALSE); +} + + +void +gth_browser_activate_scroll_step_right (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_step_x (image_viewer, TRUE); +} + + +void +gth_browser_activate_scroll_step_up (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_step_y (image_viewer, FALSE); +} + +void +gth_browser_activate_scroll_step_down (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_step_y (image_viewer, TRUE); +} + +void +gth_browser_activate_scroll_page_left (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_page_x (image_viewer, FALSE); +} + +void +gth_browser_activate_scroll_page_right (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_page_x (image_viewer, TRUE); +} + +void +gth_browser_activate_scroll_page_up (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_page_y (image_viewer, FALSE); +} + +void +gth_browser_activate_scroll_page_down (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_page_y (image_viewer, TRUE); +} + + +void +gth_browser_activate_scroll_to_center (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + GthImageViewerPage *viewer_page = get_image_viewer_page (browser); + GthImageViewer *image_viewer; + + if (viewer_page == NULL) + return; + + image_viewer = GTH_IMAGE_VIEWER (gth_image_viewer_page_get_image_viewer (viewer_page)); + gth_image_viewer_scroll_to_center (image_viewer); +} + diff -Nru gthumb-3.8.3/extensions/image_viewer/actions.h gthumb-3.9.1/extensions/image_viewer/actions.h --- gthumb-3.8.3/extensions/image_viewer/actions.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/actions.h 2020-03-07 19:03:13.426956000 +0000 @@ -27,10 +27,14 @@ DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_in) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_out) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_100) +DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_200) +DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_300) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit_if_larger) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit_width) +DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit_width_if_larger) DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit_height) +DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom_fit_height_if_larger) DEF_ACTION_CALLBACK (gth_browser_activate_image_undo) DEF_ACTION_CALLBACK (gth_browser_activate_image_redo) DEF_ACTION_CALLBACK (gth_browser_activate_copy_image) @@ -39,5 +43,15 @@ DEF_ACTION_CALLBACK (gth_browser_activate_image_zoom) DEF_ACTION_CALLBACK (gth_browser_activate_toggle_animation) DEF_ACTION_CALLBACK (gth_browser_activate_step_animation) +DEF_ACTION_CALLBACK (gth_browser_activate_transparency_style) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_step_left) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_step_right) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_step_up) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_step_down) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_page_left) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_page_right) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_page_up) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_page_down) +DEF_ACTION_CALLBACK (gth_browser_activate_scroll_to_center) #endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/image_viewer/callbacks.c gthumb-3.9.1/extensions/image_viewer/callbacks.c --- gthumb-3.8.3/extensions/image_viewer/callbacks.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/callbacks.c 2020-03-07 19:03:13.426956000 +0000 @@ -0,0 +1,70 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include +#include "callbacks.h" +#include "shortcuts.h" + + +static const GthShortcut shortcuts[] = { + { "image-zoom-in", N_("Zoom in"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "plus" }, + { "image-zoom-out", N_("Zoom out"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "minus" }, + { "image-zoom-100", N_("Zoom 100%"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "1" }, + { "image-zoom-200", N_("Zoom 200%"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "2" }, + { "image-zoom-300", N_("Zoom 300%"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "3" }, + + { "image-zoom-fit", N_("Zoom to fit"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "x" }, + { "image-zoom-fit-if-larger", N_("Zoom to fit if larger"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "x" }, + { "image-zoom-fit-width", N_("Zoom to fit width"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "w" }, + { "image-zoom-fit-width-if-larger", N_("Zoom to fit width if larger"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "w" }, + { "image-zoom-fit-height", N_("Zoom to fit height"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "h" }, + { "image-zoom-fit-height-if-larger", N_("Zoom to fit height if larger"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, "h" }, + + { "image-undo", N_("Undo edit"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "z" }, + { "image-redo", N_("Redo edit"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, "z" }, + + { "scroll-step-left", N_("Scroll left"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Left" }, + { "scroll-step-right", N_("Scroll right"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Right" }, + { "scroll-step-up", N_("Scroll up"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Up" }, + { "scroll-step-down", N_("Scroll down"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Down" }, + + { "scroll-page-left", N_("Scroll left fast"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Left" }, + { "scroll-page-right", N_("Scroll right fast"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Right" }, + { "scroll-page-up", N_("Scroll up fast"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Up" }, + { "scroll-page-down", N_("Scroll down fast"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Down" }, + + { "scroll-to-center", N_("Scroll to center"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, "Down" }, +}; + + +void +image_viewer__gth_browser_construct_cb (GthBrowser *browser) +{ + g_return_if_fail (GTH_IS_BROWSER (browser)); + + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); +} diff -Nru gthumb-3.8.3/extensions/image_viewer/callbacks.h gthumb-3.9.1/extensions/image_viewer/callbacks.h --- gthumb-3.8.3/extensions/image_viewer/callbacks.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/callbacks.h 2020-03-07 19:03:13.426956000 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef CALLBACKS_H +#define CALLBACKS_H + +#include + +void image_viewer__gth_browser_construct_cb (GthBrowser *browser); + +#endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/image_viewer/data/ui/image-viewer-preferences.ui gthumb-3.9.1/extensions/image_viewer/data/ui/image-viewer-preferences.ui --- gthumb-3.8.3/extensions/image_viewer/data/ui/image-viewer-preferences.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/data/ui/image-viewer-preferences.ui 2020-03-07 19:03:13.426956000 +0000 @@ -1,12 +1,12 @@ - + - + True False vertical - 12 + 20 True @@ -17,9 +17,9 @@ True False - 0 After loading an image: True + 0 @@ -31,39 +31,28 @@ - + True False - 12 + 12 + vertical + 6 - + True False - vertical - 6 - + True False - - - True - False - - Set to actual size - Keep previous zoom - Fit to window - Fit to window if larger - Fit to width - Fit to width if larger - - - - False - True - 0 - - + + Set to actual size + Keep previous zoom + Fit to window + Fit to window if larger + Fit to width + Fit to width if larger + False @@ -71,23 +60,27 @@ 0 - - - Reset scrollbar positions - False - True - True - False - 0 - True - - - False - True - 1 - - + + False + True + 0 + + + + + Reset scrollbar positions + True + True + False + start + True + + + False + True + 1 + @@ -104,6 +97,84 @@ + + True + False + vertical + 6 + + + True + False + Mouse wheel action: + True + 0 + + + + + + False + True + 0 + + + + + True + False + 12 + vertical + 6 + + + Change image + True + True + False + start + True + True + True + + + False + True + 0 + + + + + Zoom image + True + True + False + start + True + True + scroll_event_change_image_radiobutton + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 1 + + + True False @@ -113,9 +184,9 @@ True False - 0 Zoom quality: True + 0 @@ -127,25 +198,105 @@ - + True False - 12 + 12 + vertical + 6 + + + _High + True + True + False + start + True + True + True + + + False + True + 0 + + - + + _Low + True + True + False + start + True + True + True + zoom_quality_high_radiobutton + + + False + True + 1 + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 6 + + + True + False + Transparency: + True + 0 + + + + + + False + True + 0 + + + + + True + False + 12 + vertical + 6 + + True False - vertical - - _High + True - True - False - True - 0 - True - True + False + + Checkered + White + Gray + Black + False @@ -153,25 +304,12 @@ 0 - - - _Low - True - True - False - True - 0 - True - True - zoom_quality_high_radiobutton - - - False - True - 1 - - + + False + True + 0 + @@ -184,7 +322,7 @@ False True - 1 + 3 diff -Nru gthumb-3.8.3/extensions/image_viewer/data/ui/toolbar-zoom-menu.ui gthumb-3.9.1/extensions/image_viewer/data/ui/toolbar-zoom-menu.ui --- gthumb-3.8.3/extensions/image_viewer/data/ui/toolbar-zoom-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/data/ui/toolbar-zoom-menu.ui 2020-03-07 19:03:13.426956000 +0000 @@ -1,5 +1,52 @@ + + + + True + False + 9 + vertical + 200 + + + True + True + Checkered + win.transparency-style + 'checkered' + + + + + True + True + White + win.transparency-style + 'white' + + + + + True + True + Gray + win.transparency-style + 'gray' + + + + + True + True + Black + win.transparency-style + 'black' + + + + + @@ -9,114 +56,107 @@ vertical 200 - + + True + True + Automatic + win.image-zoom + 'automatic' + + + + + True + True + Fit to window + win.image-zoom + 'fit' + + + + + True + True + Fit to width + win.image-zoom + 'fit-width' + + + + + True + True + Fit to height + win.image-zoom + 'fit-height' + + + + + True + horizontal + 6 + 6 + + + + + True + True + 50% + win.image-zoom + '50' + + + + + True + True + 100% + win.image-zoom + '100' + + + + + True + True + 200% + win.image-zoom + '200' + + + + + True + True + 300% + win.image-zoom + '300' + + + + + True + horizontal + 6 + 6 + + + + True - False - vertical - - - True - True - Automatic - win.image-zoom - 'automatic' - - - - - True - True - Fit to window - win.image-zoom - 'fit' - - - - - True - True - Fit to width - win.image-zoom - 'fit-width' - - - - - True - True - Fit to height - win.image-zoom - 'fit-height' - - - - - True - horizontal - 6 - 6 - - - - - True - True - 50% - win.image-zoom - '50' - - - - - True - True - 100% - win.image-zoom - '100' - - - - - True - True - 200% - win.image-zoom - '200' - - - - - True - True - 300% - win.image-zoom - '300' - - - - - True - horizontal - 6 - 6 - - - - - True - True - False - False - zoom_adjustment - 0 - False - - - True - True - - + True + False + False + zoom_adjustment + 0 + False + + True + True + diff -Nru gthumb-3.8.3/extensions/image_viewer/gth-image-histogram.c gthumb-3.9.1/extensions/image_viewer/gth-image-histogram.c --- gthumb-3.8.3/extensions/image_viewer/gth-image-histogram.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/gth-image-histogram.c 2020-03-07 19:03:13.426956000 +0000 @@ -54,8 +54,8 @@ GthBrowser *browser; GthViewerPage *viewer_page; - browser = (GthBrowser *) gtk_widget_get_toplevel (GTK_WIDGET (self)); - if (! gtk_widget_is_toplevel (GTK_WIDGET (browser))) + browser = (GthBrowser *) _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)); + if (browser == NULL) return NULL; viewer_page = gth_browser_get_viewer_page (browser); diff -Nru gthumb-3.8.3/extensions/image_viewer/gth-image-viewer-page.c gthumb-3.9.1/extensions/image_viewer/gth-image-viewer-page.c --- gthumb-3.8.3/extensions/image_viewer/gth-image-viewer-page.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/gth-image-viewer-page.c 2020-03-07 19:03:13.426956000 +0000 @@ -30,13 +30,14 @@ #define UPDATE_QUALITY_DELAY 200 #define UPDATE_VISIBILITY_DELAY 100 -#define N_HEADER_BAR_BUTTONS 6 +#define N_HEADER_BAR_BUTTONS 7 #define HIDE_OVERVIEW_TIMEOUT 2 /* in seconds */ #define OVERLAY_MARGIN 10 #define ZOOM_BUTTON 2 #define APPLY_ICC_PROFILE_BUTTON 3 #define TOGGLE_ANIMATION_BUTTON 4 #define STEP_ANIMATION_BUTTON 5 +#define TRANSPARENCY_STYLE_BUTTON 6 #undef ALWAYS_LOAD_ORIGINAL_SIZE #define N_FORWARD_PRELOADERS 2 #define N_BACKWARD_PRELOADERS 2 @@ -49,10 +50,14 @@ { "image-zoom-in", gth_browser_activate_image_zoom_in }, { "image-zoom-out", gth_browser_activate_image_zoom_out }, { "image-zoom-100", gth_browser_activate_image_zoom_100 }, + { "image-zoom-200", gth_browser_activate_image_zoom_200 }, + { "image-zoom-300", gth_browser_activate_image_zoom_300 }, { "image-zoom-fit", gth_browser_activate_image_zoom_fit }, { "image-zoom-fit-if-larger", gth_browser_activate_image_zoom_fit_if_larger }, { "image-zoom-fit-width", gth_browser_activate_image_zoom_fit_width }, + { "image-zoom-fit-width-if-larger", gth_browser_activate_image_zoom_fit_width_if_larger }, { "image-zoom-fit-height", gth_browser_activate_image_zoom_fit_height }, + { "image-zoom-fit-height-if-larger", gth_browser_activate_image_zoom_fit_height_if_larger }, { "image-undo", gth_browser_activate_image_undo }, { "image-redo", gth_browser_activate_image_redo }, { "copy-image", gth_browser_activate_copy_image }, @@ -61,15 +66,16 @@ { "toggle-animation", toggle_action_activated, NULL, "true", gth_browser_activate_toggle_animation }, { "step-animation", gth_browser_activate_step_animation }, { "image-zoom", gth_browser_activate_image_zoom, "s", "''", NULL }, -}; - - -static const GthAccelerator accelerators[] = { - { "image-zoom-in", "plus" }, - { "image-zoom-out", "minus" }, - { "image-zoom-100", "0" }, - { "image-undo", "z" }, - { "image-redo", "z" }, + { "transparency-style", gth_browser_activate_transparency_style, "s", "''", NULL }, + { "scroll-step-left", gth_browser_activate_scroll_step_left }, + { "scroll-step-right", gth_browser_activate_scroll_step_right }, + { "scroll-step-up", gth_browser_activate_scroll_step_up }, + { "scroll-step-down", gth_browser_activate_scroll_step_down }, + { "scroll-page-left", gth_browser_activate_scroll_page_left }, + { "scroll-page-right", gth_browser_activate_scroll_page_right }, + { "scroll-page-up", gth_browser_activate_scroll_page_up }, + { "scroll-page-down", gth_browser_activate_scroll_page_down }, + { "scroll-to-center", gth_browser_activate_scroll_to_center }, }; @@ -461,7 +467,7 @@ self->priv->update_quality_id = 0; } - file_changed = ! _g_file_equal_uris (data->file_data->file, self->priv->file_data->file); + file_changed = ! _g_file_equal (data->file_data->file, self->priv->file_data->file); update_quality_data_free (data); if (file_changed) @@ -679,10 +685,10 @@ GtkWidget *scale = _gtk_builder_get_widget (self->priv->builder, "zoom_level_scale"); - g_signal_handlers_block_by_data (scale, self); + _g_signal_handlers_block_by_data (scale, self); x = (zoom - MIN_ZOOM_LEVEL) / (MAX_ZOOM_LEVEL - MIN_ZOOM_LEVEL) * 100.0; gtk_range_set_value (GTK_RANGE (scale), CLAMP (x, 0, 100)); - g_signal_handlers_unblock_by_data (scale, self); + _g_signal_handlers_unblock_by_data (scale, self); } @@ -927,6 +933,43 @@ static void +pref_transparency_style_changed (GSettings *settings, + char *key, + gpointer user_data) +{ + GthImageViewerPage *self = user_data; + GthTransparencyStyle style; + GAction *action; + const char *state; + + if (! self->priv->active || (self->priv->viewer == NULL)) + return; + + style = g_settings_get_enum (self->priv->settings, PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE); + state = ""; + switch (style) { + case GTH_TRANSPARENCY_STYLE_CHECKERED: + state = "checkered"; + break; + case GTH_TRANSPARENCY_STYLE_WHITE: + state = "white"; + break; + case GTH_TRANSPARENCY_STYLE_GRAY: + state = "gray"; + break; + case GTH_TRANSPARENCY_STYLE_BLACK: + state = "black"; + break; + } + action = g_action_map_lookup_action (G_ACTION_MAP (self->priv->browser), "transparency-style"); + if (action != NULL) + g_simple_action_set_state (G_SIMPLE_ACTION (action), g_variant_new_string (state)); + + gth_image_viewer_set_transparency_style (GTH_IMAGE_VIEWER (self->priv->viewer), style); +} + + +static void paint_comment_over_image_func (GthImageViewer *image_viewer, cairo_t *cr, gpointer user_data) @@ -1145,8 +1188,12 @@ _("Next frame"), "win.step-animation", NULL); - - gth_window_add_accelerators (GTH_WINDOW (browser), accelerators, G_N_ELEMENTS (accelerators)); + self->priv->buttons[TRANSPARENCY_STYLE_BUTTON] = + gth_browser_add_header_bar_menu_button (browser, + GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS, + "transparency-symbolic", + _("Transparency"), + _gtk_builder_get_widget (self->priv->builder, "transparency_popover")); self->priv->preloader = gth_browser_get_image_preloader (browser); @@ -1219,21 +1266,6 @@ gth_browser_set_viewer_widget (browser, self->priv->image_navigator); gth_viewer_page_focus (GTH_VIEWER_PAGE (self)); - - /* settings notifications */ - - g_signal_connect (self->priv->settings, - "changed::" PREF_IMAGE_VIEWER_ZOOM_QUALITY, - G_CALLBACK (pref_zoom_quality_changed), - self); - g_signal_connect (self->priv->settings, - "changed::" PREF_IMAGE_VIEWER_ZOOM_CHANGE, - G_CALLBACK (pref_zoom_change_changed), - self); - g_signal_connect (self->priv->settings, - "changed::" PREF_IMAGE_VIEWER_RESET_SCROLLBARS, - G_CALLBACK (pref_reset_scrollbars_changed), - self); } @@ -1253,6 +1285,7 @@ } _g_object_unref (self->priv->builder); + self->priv->builder = NULL; _g_object_unref (self->priv->preloader); self->priv->preloader = NULL; self->priv->active = FALSE; @@ -1530,6 +1563,7 @@ { GthImageViewerPage *self; GthImage *image; + gboolean enable_action; gboolean is_animation; self = (GthImageViewerPage*) base; @@ -1538,8 +1572,13 @@ gth_window_enable_action (GTH_WINDOW (self->priv->browser), "image-redo", gth_image_history_can_redo (self->priv->history)); image = gth_image_viewer_get_image (GTH_IMAGE_VIEWER (self->priv->viewer)); - gtk_widget_set_visible (self->priv->buttons[APPLY_ICC_PROFILE_BUTTON], (image != NULL) && (gth_image_get_icc_profile (image) != NULL)); - gth_window_enable_action (GTH_WINDOW (self->priv->browser), "apply-icc-profile", (image != NULL) && (gth_image_get_icc_profile (image) != NULL)); + enable_action = (image != NULL) && (gth_image_get_icc_profile (image) != NULL); + gtk_widget_set_visible (self->priv->buttons[APPLY_ICC_PROFILE_BUTTON], enable_action); + gth_window_enable_action (GTH_WINDOW (self->priv->browser), "apply-icc-profile", enable_action); + + enable_action = (self->priv->file_data != NULL) && _g_mime_type_has_transparency (gth_file_data_get_mime_type (self->priv->file_data)); + gtk_widget_set_visible (self->priv->buttons[TRANSPARENCY_STYLE_BUTTON], enable_action); + gth_window_enable_action (GTH_WINDOW (self->priv->browser), "transparency-style", enable_action); is_animation = gth_image_viewer_is_animation (GTH_IMAGE_VIEWER (self->priv->viewer)); gtk_widget_set_visible (self->priv->buttons[TOGGLE_ANIMATION_BUTTON], is_animation); @@ -1852,13 +1891,22 @@ gth_image_viewer_page_real_revert (GthViewerPage *base) { GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (base); - GthImageData *idata; + GthImageData *last_saved; - idata = gth_image_history_revert (self->priv->history); - if (idata != NULL) { - _gth_image_viewer_page_set_image (self, idata->image, idata->requested_size, idata->unsaved); - gth_image_data_unref (idata); - } + last_saved = gth_image_history_revert (self->priv->history); + if (last_saved == NULL) + return; + + gth_image_history_add_image (self->priv->history, + last_saved->image, + last_saved->requested_size, + last_saved->unsaved); + _gth_image_viewer_page_set_image (self, + last_saved->image, + last_saved->requested_size, + last_saved->unsaved); + + gth_image_data_unref (last_saved); } @@ -1880,6 +1928,15 @@ } +static gboolean +gth_image_viewer_page_real_zoom_from_scroll (GthViewerPage *base, + GdkEventScroll *event) +{ + GthImageViewerPage *self = GTH_IMAGE_VIEWER_PAGE (base); + return gth_image_viewer_zoom_from_scroll (GTH_IMAGE_VIEWER (self->priv->viewer), event); +} + + static void gth_image_viewer_page_real_show_properties (GthViewerPage *base, gboolean show) @@ -1956,6 +2013,7 @@ iface->save_as = gth_image_viewer_page_real_save_as; iface->revert = gth_image_viewer_page_real_revert; iface->update_info = gth_image_viewer_page_real_update_info; + iface->zoom_from_scroll = gth_image_viewer_page_real_zoom_from_scroll; iface->show_properties = gth_image_viewer_page_real_show_properties; } @@ -1993,6 +2051,25 @@ self->priv->prev_file_data[i] = NULL; self->priv->drag_data_get_event = 0; + + /* settings notifications */ + + g_signal_connect (self->priv->settings, + "changed::" PREF_IMAGE_VIEWER_ZOOM_QUALITY, + G_CALLBACK (pref_zoom_quality_changed), + self); + g_signal_connect (self->priv->settings, + "changed::" PREF_IMAGE_VIEWER_ZOOM_CHANGE, + G_CALLBACK (pref_zoom_change_changed), + self); + g_signal_connect (self->priv->settings, + "changed::" PREF_IMAGE_VIEWER_RESET_SCROLLBARS, + G_CALLBACK (pref_reset_scrollbars_changed), + self); + g_signal_connect (self->priv->settings, + "changed::" PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE, + G_CALLBACK (pref_transparency_style_changed), + self); } @@ -2178,7 +2255,8 @@ g_settings_get_enum (self->priv->settings, PREF_IMAGE_VIEWER_ZOOM_CHANGE)); gth_image_viewer_set_reset_scrollbars (GTH_IMAGE_VIEWER (self->priv->viewer), g_settings_get_boolean (self->priv->settings, PREF_IMAGE_VIEWER_RESET_SCROLLBARS)); - + gth_image_viewer_enable_key_bindings (GTH_IMAGE_VIEWER (self->priv->viewer), FALSE); + pref_transparency_style_changed (self->priv->settings, NULL, self); _gth_image_viewer_page_enable_drag_source (self, TRUE); } diff -Nru gthumb-3.8.3/extensions/image_viewer/gth-metadata-provider-image.c gthumb-3.9.1/extensions/image_viewer/gth-metadata-provider-image.c --- gthumb-3.8.3/extensions/image_viewer/gth-metadata-provider-image.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/gth-metadata-provider-image.c 2020-03-07 19:03:13.426956000 +0000 @@ -74,16 +74,21 @@ if (stream != NULL) { int buffer_size; guchar *buffer; - gssize size; + gsize size; buffer_size = BUFFER_SIZE; buffer = g_new (guchar, buffer_size); - size = g_input_stream_read (G_INPUT_STREAM (stream), - buffer, - buffer_size, - cancellable, - NULL); - if (size >= 0) { + if (! g_input_stream_read_all (G_INPUT_STREAM (stream), + buffer, + buffer_size, + &size, + cancellable, + NULL)) + { + size = 0; + } + + if (size > 0) { if ((size >= 24) /* PNG signature */ diff -Nru gthumb-3.8.3/extensions/image_viewer/image-viewer.h gthumb-3.9.1/extensions/image_viewer/image-viewer.h --- gthumb-3.8.3/extensions/image_viewer/image-viewer.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/image-viewer.h 2020-03-07 19:03:13.426956000 +0000 @@ -26,5 +26,6 @@ #include "gth-image-viewer-page-tool.h" #include "gth-image-viewer-task.h" #include "preferences.h" +#include "shortcuts.h" #endif /* IMAGE_VIEWER_H */ diff -Nru gthumb-3.8.3/extensions/image_viewer/main.c gthumb-3.9.1/extensions/image_viewer/main.c --- gthumb-3.8.3/extensions/image_viewer/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/main.c 2020-03-07 19:03:13.426956000 +0000 @@ -26,7 +26,16 @@ #include "gth-image-histogram.h" #include "gth-image-viewer-page.h" #include "gth-metadata-provider-image.h" +#include "callbacks.h" #include "preferences.h" +#include "shortcuts.h" + + +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER, N_("Image Viewer"), 21 }, + { GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE, N_("Scroll Image"), 22 }, + { GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR, N_("Image Editor"), 23 }, +}; G_MODULE_EXPORT void @@ -35,7 +44,9 @@ gth_main_register_metadata_provider (GTH_TYPE_METADATA_PROVIDER_IMAGE); gth_main_register_object (GTH_TYPE_VIEWER_PAGE, NULL, GTH_TYPE_IMAGE_VIEWER_PAGE, NULL); gth_main_register_type ("file-properties", GTH_TYPE_IMAGE_HISTOGRAM); + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_hook_add_callback ("dlg-preferences-construct", 10, G_CALLBACK (image_viewer__dlg_preferences_construct_cb), NULL); + gth_hook_add_callback ("gth-browser-construct", 7, G_CALLBACK (image_viewer__gth_browser_construct_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/image_viewer/meson.build gthumb-3.9.1/extensions/image_viewer/meson.build --- gthumb-3.8.3/extensions/image_viewer/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/meson.build 2020-03-07 19:03:13.426956000 +0000 @@ -1,5 +1,6 @@ source_files = files( 'actions.c', + 'callbacks.c', 'gth-image-histogram.c', 'gth-image-viewer-page.c', 'gth-image-viewer-page-tool.c', diff -Nru gthumb-3.8.3/extensions/image_viewer/preferences.c gthumb-3.9.1/extensions/image_viewer/preferences.c --- gthumb-3.8.3/extensions/image_viewer/preferences.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/preferences.c 2020-03-07 19:03:13.426956000 +0000 @@ -31,6 +31,7 @@ typedef struct { GtkBuilder *builder; GSettings *settings; + GSettings *browser_settings; } BrowserData; @@ -39,6 +40,7 @@ { g_object_unref (data->builder); g_object_unref (data->settings); + g_object_unref (data->browser_settings); g_free (data); } @@ -60,6 +62,15 @@ static void +scroll_event_toggled_cb (GtkToggleButton *button, + BrowserData *data) +{ + g_settings_set_enum (data->browser_settings, + PREF_VIEWER_SCROLL_ACTION, + (GTK_WIDGET (button) == GET_WIDGET ("scroll_event_change_image_radiobutton")) ? GTH_SCROLL_ACTION_CHANGE_FILE : GTH_SCROLL_ACTION_ZOOM); +} + +static void zoom_quality_radiobutton_toggled_cb (GtkToggleButton *button, BrowserData *data) { @@ -67,6 +78,16 @@ } +static void +transparency_style_changed_cb (GtkComboBox *combo_box, + BrowserData *data) +{ + g_settings_set_enum (data->settings, + PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE, + gtk_combo_box_get_active (combo_box)); +} + + void image_viewer__dlg_preferences_construct_cb (GtkWidget *dialog, GthBrowser *browser, @@ -80,11 +101,11 @@ data = g_new0 (BrowserData, 1); data->builder = _gtk_builder_new_from_file ("image-viewer-preferences.ui", "image_viewer"); data->settings = g_settings_new (GTHUMB_IMAGE_VIEWER_SCHEMA); + data->browser_settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); notebook = _gtk_builder_get_widget (dialog_builder, "notebook"); page = _gtk_builder_get_widget (data->builder, "preferences_page"); - g_object_set_data (G_OBJECT (page), "extension-name", "image_viewer"); gtk_widget_show (page); gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("change_zoom_combobox")), @@ -97,10 +118,26 @@ else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("zoom_quality_high_radiobutton")), TRUE); + if (g_settings_get_enum (data->browser_settings, PREF_VIEWER_SCROLL_ACTION) == GTH_SCROLL_ACTION_CHANGE_FILE) + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("scroll_event_change_image_radiobutton")), TRUE); + else + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("scroll_event_zoom_radiobutton")), TRUE); + + gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("transparency_style_combobox")), + g_settings_get_enum (data->settings, PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE)); + g_signal_connect (GET_WIDGET ("change_zoom_combobox"), "changed", G_CALLBACK (zoom_change_changed_cb), data); + g_signal_connect (GET_WIDGET ("scroll_event_change_image_radiobutton"), + "toggled", + G_CALLBACK (scroll_event_toggled_cb), + data); + g_signal_connect (GET_WIDGET ("scroll_event_zoom_radiobutton"), + "toggled", + G_CALLBACK (scroll_event_toggled_cb), + data); g_signal_connect (GET_WIDGET ("zoom_quality_low_radiobutton"), "toggled", G_CALLBACK (zoom_quality_radiobutton_toggled_cb), @@ -113,6 +150,10 @@ "toggled", G_CALLBACK (reset_scrollbars_toggled_cb), data); + g_signal_connect (GET_WIDGET ("transparency_style_combobox"), + "changed", + G_CALLBACK (transparency_style_changed_cb), + data); label = gtk_label_new (_("Viewer")); gtk_widget_show (label); diff -Nru gthumb-3.8.3/extensions/image_viewer/preferences.h gthumb-3.9.1/extensions/image_viewer/preferences.h --- gthumb-3.8.3/extensions/image_viewer/preferences.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/preferences.h 2020-03-07 19:03:13.426956000 +0000 @@ -30,10 +30,11 @@ /* keys */ -#define PREF_IMAGE_VIEWER_ZOOM_QUALITY "zoom-quality" -#define PREF_IMAGE_VIEWER_ZOOM_CHANGE "zoom-change" -#define PREF_IMAGE_VIEWER_RESET_SCROLLBARS "reset-scrollbars" -#define PREF_IMAGE_VIEWER_HISTOGRAM_SCALE "histogram-scale" +#define PREF_IMAGE_VIEWER_ZOOM_QUALITY "zoom-quality" +#define PREF_IMAGE_VIEWER_ZOOM_CHANGE "zoom-change" +#define PREF_IMAGE_VIEWER_RESET_SCROLLBARS "reset-scrollbars" +#define PREF_IMAGE_VIEWER_HISTOGRAM_SCALE "histogram-scale" +#define PREF_IMAGE_VIEWER_TRANSPARENCY_STYLE "transparency-style" void image_viewer__dlg_preferences_construct_cb (GtkWidget *dialog, GthBrowser *browser, diff -Nru gthumb-3.8.3/extensions/image_viewer/shortcuts.h gthumb-3.9.1/extensions/image_viewer/shortcuts.h --- gthumb-3.8.3/extensions/image_viewer/shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/image_viewer/shortcuts.h 2020-03-07 19:03:13.426956000 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2009 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef IMAGE_VIEWER_SHORTCUTS_H +#define IMAGE_VIEWER_SHORTCUTS_H + +#define GTH_SHORTCUT_CATEGORY_IMAGE_VIEWER "image-viewer" +#define GTH_SHORTCUT_CATEGORY_SCROLL_IMAGE "scroll-image" +#define GTH_SHORTCUT_CATEGORY_IMAGE_EDITOR "image-editor" + +#endif /* IMAGE_VIEWER_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/extensions/jpeg_utils/jpeg-info.c gthumb-3.9.1/extensions/jpeg_utils/jpeg-info.c --- gthumb-3.8.3/extensions/jpeg_utils/jpeg-info.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/jpeg_utils/jpeg-info.c 2020-03-07 19:03:13.430289300 +0000 @@ -445,11 +445,12 @@ app1_segment_size = (h << 8) + l - 2; app1_segment = g_new (guchar, app1_segment_size); - if (g_input_stream_read (stream, - app1_segment, - app1_segment_size, - cancellable, - error) > 0) + if (g_input_stream_read_all (stream, + app1_segment, + app1_segment_size, + NULL, + cancellable, + error)) { _jpeg_exif_tags_from_app1_segment (app1_segment, app1_segment_size, flags, data); } @@ -471,7 +472,13 @@ app2_segment_size = (h << 8) + l - 2; app2_segment = g_new (guchar, app2_segment_size); - if (g_input_stream_read (stream, app2_segment, app2_segment_size, cancellable, error) > 0) { + if (g_input_stream_read_all (stream, + app2_segment, + app2_segment_size, + NULL, + cancellable, + error)) + { ICCProfileChunk *chunk; chunk = _jpeg_get_icc_profile_chunk_from_app2_segment (app2_segment, app2_segment_size); diff -Nru gthumb-3.8.3/extensions/list_tools/callbacks.c gthumb-3.9.1/extensions/list_tools/callbacks.c --- gthumb-3.8.3/extensions/list_tools/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/callbacks.c 2020-03-07 19:03:13.493621300 +0000 @@ -29,6 +29,7 @@ #include "gth-script-file.h" #include "gth-script-task.h" #include "list-tools.h" +#include "shortcuts.h" #define BROWSER_DATA_KEY "list-tools-browser-data" @@ -43,7 +44,6 @@ typedef struct { GthBrowser *browser; gulong scripts_changed_id; - gboolean menu_initialized; guint menu_merge_id; } BrowserData; @@ -58,24 +58,7 @@ static void -list_tools__gth_browser_update_sensitivity_cb (GthBrowser *browser) -{ - BrowserData *data; - int n_selected; - gboolean sensitive; - - data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); - g_return_if_fail (data != NULL); - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - sensitive = (n_selected > 0); - - gth_window_enable_action (GTH_WINDOW (browser), "exec-script", sensitive); -} - - -static void -update_scripts_menu (BrowserData *data) +update_scripts (BrowserData *data) { GthMenuManager *menu_manager; GList *script_list; @@ -86,34 +69,40 @@ gth_menu_manager_remove_entries (menu_manager, data->menu_merge_id); data->menu_merge_id = gth_menu_manager_new_merge_id (menu_manager); + gth_window_remove_shortcuts (GTH_WINDOW (data->browser), SCRIPTS_GROUP); + script_list = gth_script_file_get_scripts (gth_script_file_get ()); for (scan = script_list; scan; scan = scan->next) { - GthScript *script = scan->data; - guint keyval; - GdkModifierType modifiers; - char *accelerator_name; - char *detailed_action; - - if (! gth_script_is_visible (script)) - continue; - - detailed_action = g_strdup_printf ("win.exec-script('%s')", gth_script_get_id (script)); - - gth_script_get_accelerator (script, &keyval, &modifiers); - accelerator_name = gtk_accelerator_name (keyval, modifiers); - - gth_menu_manager_append_entry (menu_manager, - data->menu_merge_id, - gth_script_get_display_name (script), - detailed_action, - accelerator_name, - NULL); + GthScript *script = scan->data; + GthShortcut *shortcut; - g_free (accelerator_name); - g_free (detailed_action); - } + shortcut = gth_script_create_shortcut (script); + gth_window_add_removable_shortcut (GTH_WINDOW (data->browser), + SCRIPTS_GROUP, + shortcut); + + if (gth_script_is_visible (script)) { + const char *script_action; + char *detailed_action; + + script_action = gth_script_get_detailed_action (script); + if (! g_str_has_prefix (script_action, "win.")) + detailed_action = g_strdup_printf ("win.%s", script_action); + else + detailed_action = g_strdup (script_action); + + gth_menu_manager_append_entry (menu_manager, + data->menu_merge_id, + gth_script_get_display_name (script), + detailed_action, + "", + NULL); - list_tools__gth_browser_update_sensitivity_cb (data->browser); + g_free (detailed_action); + } + + gth_shortcut_free (shortcut); + } _g_object_list_unref (script_list); } @@ -121,33 +110,9 @@ static void scripts_changed_cb (GthScriptFile *script_file, - BrowserData *data) + BrowserData *data) { - update_scripts_menu (data); -} - - -static void -tools_menu_button_button_press_event_cb (GtkToggleButton *togglebutton, - GdkEvent *event, - gpointer user_data) -{ - BrowserData *data = user_data; - - if (gtk_toggle_button_get_active (togglebutton)) - return; - - if (! data->menu_initialized) { - data->menu_initialized = TRUE; - update_scripts_menu (data); - - data->scripts_changed_id = g_signal_connect (gth_script_file_get (), - "changed", - G_CALLBACK (scripts_changed_cb), - data); - } - - list_tools__gth_browser_update_sensitivity_cb (data->browser); + update_scripts (data); } @@ -174,22 +139,21 @@ gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_TOOLS, G_MENU (gtk_builder_get_object (builder, "tools1"))); gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_MORE_TOOLS, G_MENU (gtk_builder_get_object (builder, "tools2"))); gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_TOOLS3, G_MENU (gtk_builder_get_object (builder, "tools3"))); + gth_browser_add_menu_manager_for_menu (browser, GTH_BROWSER_MENU_MANAGER_TOOLS4, G_MENU (gtk_builder_get_object (builder, "tools4"))); menu = G_MENU_MODEL (gtk_builder_get_object (builder, "tools-menu")); /* browser tools */ button = _gtk_menu_button_new_for_header_bar ("tools-symbolic"); - g_signal_connect (button, "button-press-event", G_CALLBACK (tools_menu_button_button_press_event_cb), data); gtk_widget_set_tooltip_text (button, _("Tools")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu); gtk_widget_set_halign (GTK_WIDGET (gtk_menu_button_get_popup (GTK_MENU_BUTTON (button))), GTK_ALIGN_CENTER); gtk_widget_show (button); - gtk_box_pack_start (GTK_BOX (gth_browser_get_headerbar_section (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)), button, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (gth_browser_get_headerbar_section (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)), button, FALSE, FALSE, 0); /* viewer edit */ button = _gtk_menu_button_new_for_header_bar ("tools-symbolic"); - g_signal_connect (button, "button-press-event", G_CALLBACK (tools_menu_button_button_press_event_cb), data); gtk_widget_set_tooltip_text (button, _("Tools")); gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (button), menu); gtk_widget_set_halign (GTK_WIDGET (gtk_menu_button_get_popup (GTK_MENU_BUTTON (button))), GTK_ALIGN_CENTER); @@ -197,37 +161,23 @@ gtk_box_pack_end (GTK_BOX (gth_browser_get_headerbar_section (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT)), button, FALSE, FALSE, 0); g_object_unref (builder); + + update_scripts (data); + data->scripts_changed_id = g_signal_connect (gth_script_file_get (), + "changed", + G_CALLBACK (scripts_changed_cb), + data); } -gpointer -list_tools__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event) +void +list_tools__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - gpointer result = NULL; - guint event_key; - GdkModifierType event_modifiers; - GList *script_list; - GList *scan; - - event_key = gdk_keyval_to_lower (event->keyval); - event_modifiers = event->state & gtk_accelerator_get_default_mod_mask (); - - script_list = gth_script_file_get_scripts (gth_script_file_get ()); - for (scan = script_list; scan; scan = scan->next) { - GthScript *script = scan->data; - guint keyval; - GdkModifierType modifiers; - - gth_script_get_accelerator (script, &keyval, &modifiers); - if ((keyval == event_key) && (modifiers == event_modifiers)) { - gth_browser_exec_script (browser, script); - result = GINT_TO_POINTER (1); - break; - } - } + BrowserData *data; - _g_object_list_unref (script_list); + data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); + g_return_if_fail (data != NULL); - return result; + gth_window_enable_action (GTH_WINDOW (browser), "exec-script", n_selected > 0); } diff -Nru gthumb-3.8.3/extensions/list_tools/callbacks.h gthumb-3.9.1/extensions/list_tools/callbacks.h --- gthumb-3.8.3/extensions/list_tools/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/callbacks.h 2020-03-07 19:03:13.493621300 +0000 @@ -24,8 +24,8 @@ #include -void list_tools__gth_browser_construct_cb (GthBrowser *browser); -gpointer list_tools__gth_browser_file_list_key_press_cb (GthBrowser *browser, - GdkEventKey *event); +void list_tools__gth_browser_construct_cb (GthBrowser *browser); +void list_tools__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/list_tools/data/ui/script-editor.ui gthumb-3.9.1/extensions/list_tools/data/ui/script-editor.ui --- gthumb-3.8.3/extensions/list_tools/data/ui/script-editor.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/data/ui/script-editor.ui 2020-03-07 19:03:13.493621300 +0000 @@ -1,5 +1,5 @@ - + @@ -157,7 +157,7 @@ True False - 10 + 11 2 12 6 @@ -340,8 +340,8 @@ - 7 - 8 + 8 + 9 GTK_FILL @@ -358,8 +358,8 @@ 1 2 - 7 - 8 + 8 + 9 GTK_FILL @@ -374,8 +374,8 @@ - 8 - 9 + 9 + 10 GTK_FILL @@ -392,8 +392,8 @@ 1 2 - 8 - 9 + 9 + 10 GTK_FILL @@ -476,8 +476,8 @@ - 9 - 10 + 10 + 11 GTK_FILL @@ -494,8 +494,42 @@ 1 2 - 9 - 10 + 10 + 11 + GTK_FILL + + + + + True + False + %T + 0 + + + + + + 7 + 8 + GTK_FILL + + + + + True + False + The current date and time + 0 + + + + + + 1 + 2 + 7 + 8 GTK_FILL diff -Nru gthumb-3.8.3/extensions/list_tools/data/ui/tools-menu.ui gthumb-3.9.1/extensions/list_tools/data/ui/tools-menu.ui --- gthumb-3.8.3/extensions/list_tools/data/ui/tools-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/data/ui/tools-menu.ui 2020-03-07 19:03:13.493621300 +0000 @@ -4,6 +4,8 @@
+
+
diff -Nru gthumb-3.8.3/extensions/list_tools/dlg-personalize-scripts.c gthumb-3.9.1/extensions/list_tools/dlg-personalize-scripts.c --- gthumb-3.8.3/extensions/list_tools/dlg-personalize-scripts.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/dlg-personalize-scripts.c 2020-03-07 19:03:13.493621300 +0000 @@ -27,6 +27,7 @@ #include "gth-script.h" #include "gth-script-editor-dialog.h" #include "gth-script-file.h" +#include "shortcuts.h" #define GET_WIDGET(name) _gtk_builder_get_widget (data->builder, (name)) @@ -131,13 +132,15 @@ static char * -get_script_shortcut (GthScript *script) +get_shortcut_label (DialogData *data, + GthScript *script) { - guint keyval; - GdkModifierType modifiers; + GthShortcut *shortcut; - gth_script_get_accelerator (script, &keyval, &modifiers); - return gtk_accelerator_get_label (keyval, modifiers); + shortcut = gth_window_get_shortcut (GTH_WINDOW (data->browser), + gth_script_get_detailed_action (script)); + + return (shortcut != NULL) ? shortcut->label : ""; } @@ -151,20 +154,15 @@ for (scan = script_list; scan; scan = scan->next) { GthScript *script = scan->data; - char *shortcut; GtkTreeIter iter; - shortcut = get_script_shortcut (script); - gtk_list_store_append (data->list_store, &iter); gtk_list_store_set (data->list_store, &iter, COLUMN_SCRIPT, script, COLUMN_NAME, gth_script_get_display_name (script), - COLUMN_SHORTCUT, shortcut, + COLUMN_SHORTCUT, get_shortcut_label (data, script), COLUMN_VISIBLE, gth_script_is_visible (script), -1); - - g_free (shortcut); } g_signal_handlers_unblock_by_func (data->list_store, row_inserted_cb, data); @@ -295,7 +293,31 @@ static gboolean -get_script_iter (DialogData *data, +get_iter_for_shortcut (DialogData *data, + GthShortcut *shortcut, + GtkTreeIter *iter) +{ + GtkTreeModel *model = GTK_TREE_MODEL (data->list_store); + gboolean found = FALSE; + if (! gtk_tree_model_get_iter_first (model, iter)) + return FALSE; + + do { + GthScript *script; + + gtk_tree_model_get (model, iter, COLUMN_SCRIPT, &script, -1); + found = g_strcmp0 (shortcut->detailed_action, gth_script_get_detailed_action (script)) == 0; + + g_object_unref (script); + } + while (! found && gtk_tree_model_iter_next (model, iter)); + + return found; +} + + +static gboolean +get_iter_script (DialogData *data, GthScript *script, GtkTreeIter *iter) { @@ -329,16 +351,12 @@ DialogData *data = user_data; GthScript *script; GError *error = NULL; + GPtrArray *shortcuts_v; GthScriptFile *script_file; gboolean new_script; + GthShortcut *shortcut; GtkTreeIter iter; - gboolean change_list = TRUE; - - - if (response == GTK_RESPONSE_HELP) { - /* FIXME: show help dialog */ - return; - } + gboolean change_list; if (response != GTK_RESPONSE_OK) { gtk_widget_destroy (GTK_WIDGET (dialog)); @@ -352,42 +370,71 @@ return; } - /* update the script file */ + /* update the shortcuts */ + + shortcuts_v = g_ptr_array_copy (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), + (GCopyFunc) gth_shortcut_dup, + NULL); + + /* If another shortcut has the same accelerator, reset the accelerator + * for that shortcut. */ + + shortcut = gth_shortcut_array_find_by_accel (shortcuts_v, + GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, + gth_script_get_accelerator (script)); + if (shortcut != NULL) { + if (g_strcmp0 (shortcut->detailed_action, gth_script_get_detailed_action (script)) != 0) { + if (get_iter_for_shortcut (data, shortcut, &iter)) + gtk_list_store_set (data->list_store, &iter, + COLUMN_SHORTCUT, "", + -1); + gth_shortcut_set_key (shortcut, 0, 0); + } + } + + /* update the script shortcut */ + + shortcut = gth_shortcut_array_find_by_action (shortcuts_v, gth_script_get_detailed_action (script)); + if (shortcut != NULL) + g_ptr_array_remove (shortcuts_v, shortcut); + + shortcut = gth_script_create_shortcut (script); + g_ptr_array_add (shortcuts_v, shortcut); + + /* save the script */ script_file = gth_script_file_get (); new_script = ! gth_script_file_has_script (script_file, script); g_signal_handlers_block_by_func (script_file, scripts_changed_cb, data); gth_script_file_add (script_file, script); - gth_script_file_save (script_file, NULL); /* FIXME: handle errors */ + gth_script_file_save (script_file, NULL); g_signal_handlers_unblock_by_func (script_file, scripts_changed_cb, data); + gth_main_shortcuts_changed (shortcuts_v); + /* update the script list */ if (new_script) { g_signal_handlers_block_by_func (data->list_store, row_inserted_cb, data); gtk_list_store_append (data->list_store, &iter); g_signal_handlers_unblock_by_func (data->list_store, row_inserted_cb, data); + change_list = TRUE; } else - change_list = get_script_iter (data, script, &iter); - - if (change_list) { - char *shortcut; + change_list = get_iter_script (data, script, &iter); - shortcut = get_script_shortcut (script); + if (change_list) gtk_list_store_set (data->list_store, &iter, COLUMN_SCRIPT, script, COLUMN_NAME, gth_script_get_display_name (script), - COLUMN_SHORTCUT, shortcut, + COLUMN_SHORTCUT, shortcut->label, COLUMN_VISIBLE, gth_script_is_visible (script), -1); - g_free (shortcut); - } - gtk_widget_destroy (GTK_WIDGET (dialog)); + g_ptr_array_unref (shortcuts_v); g_object_unref (script); } @@ -398,7 +445,7 @@ { GtkWidget *dialog; - dialog = gth_script_editor_dialog_new (_("New Command"), GTK_WINDOW (data->dialog)); + dialog = gth_script_editor_dialog_new (_("New Command"), GTH_WINDOW (data->browser), GTK_WINDOW (data->dialog)); g_signal_connect (dialog, "response", G_CALLBACK (script_editor_dialog__response_cb), data); @@ -425,7 +472,7 @@ if (script == NULL) return; - dialog = gth_script_editor_dialog_new (_("Edit Command"), GTK_WINDOW (data->dialog)); + dialog = gth_script_editor_dialog_new (_("Edit Command"), GTH_WINDOW (data->browser), GTK_WINDOW (data->dialog)); gth_script_editor_dialog_set_script (GTH_SCRIPT_EDITOR_DIALOG (dialog), script); g_signal_connect (dialog, "response", @@ -448,6 +495,8 @@ GtkTreeModel *model = GTK_TREE_MODEL (data->list_store); GtkTreeIter iter; GthScript *script; + GPtrArray *shortcuts_v; + GthShortcut *shortcut; GthScriptFile *script_file; d = _gtk_message_dialog_new (GTK_WINDOW (data->dialog), @@ -471,6 +520,16 @@ if (script == NULL) return; + /* update the shortcuts */ + + shortcuts_v = g_ptr_array_copy (gth_window_get_shortcuts (GTH_WINDOW (data->browser)), + (GCopyFunc) gth_shortcut_dup, + NULL); + + shortcut = gth_shortcut_array_find_by_action (shortcuts_v, gth_script_get_detailed_action (script)); + if (shortcut != NULL) + g_ptr_array_remove (shortcuts_v, shortcut); + /* update the script file */ script_file = gth_script_file_get (); @@ -479,6 +538,8 @@ gth_script_file_save (script_file, NULL); g_signal_handlers_unblock_by_func (script_file, scripts_changed_cb, data); + gth_main_shortcuts_changed (shortcuts_v); + /* update the script list */ g_signal_handlers_block_by_func (data->list_store, row_deleted_cb, data); diff -Nru gthumb-3.8.3/extensions/list_tools/gth-script.c gthumb-3.9.1/extensions/list_tools/gth-script.c --- gthumb-3.8.3/extensions/list_tools/gth-script.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/gth-script.c 2020-03-07 19:03:13.496954700 +0000 @@ -23,6 +23,7 @@ #include #include #include "gth-script.h" +#include "shortcuts.h" static void gth_script_dom_domizable_interface_init (DomDomizableInterface *iface); @@ -42,12 +43,6 @@ }; -typedef struct { - guint keyval; - GdkModifierType modifiers; - char *name; -} _Accel; - struct _GthScriptPrivate { char *id; char *display_name; @@ -56,7 +51,8 @@ gboolean shell_script; gboolean for_each_file; gboolean wait_command; - _Accel accelerator; + char *accelerator; + char *detailed_action; }; @@ -88,7 +84,6 @@ "shell-script", (self->priv->shell_script ? "true" : "false"), "for-each-file", (self->priv->for_each_file ? "true" : "false"), "wait-command", (self->priv->wait_command ? "true" : "false"), - "accelerator", self->priv->accelerator.name, NULL); if (! self->priv->visible) dom_element_set_attribute (element, "display", "none"); @@ -114,7 +109,7 @@ "shell-script", (g_strcmp0 (dom_element_get_attribute (element, "shell-script"), "true") == 0), "for-each-file", (g_strcmp0 (dom_element_get_attribute (element, "for-each-file"), "true") == 0), "wait-command", (g_strcmp0 (dom_element_get_attribute (element, "wait-command"), "true") == 0), - "accelerator", dom_element_get_attribute (element, "accelerator"), + "accelerator", "", NULL); } @@ -134,7 +129,7 @@ "shell-script", script->priv->shell_script, "for-each-file", script->priv->for_each_file, "wait-command", script->priv->wait_command, - "accelerator", script->priv->accelerator.name, + "accelerator", script->priv->accelerator, NULL); return (GObject *) new_script; @@ -150,12 +145,28 @@ g_free (self->priv->id); g_free (self->priv->display_name); g_free (self->priv->command); - g_free (self->priv->accelerator.name); + g_free (self->priv->accelerator); + g_free (self->priv->detailed_action); G_OBJECT_CLASS (gth_script_parent_class)->finalize (base); } +static char * +detailed_action_from_id (char *id) +{ + GVariant *param; + char *detailed_action; + + param = g_variant_new_string (id); + detailed_action = g_action_print_detailed_name ("exec-script", param); + + g_variant_unref (param); + + return detailed_action; +} + + static void gth_script_set_property (GObject *object, guint property_id, @@ -172,6 +183,8 @@ self->priv->id = g_value_dup_string (value); if (self->priv->id == NULL) self->priv->id = g_strdup (""); + g_free (self->priv->detailed_action); + self->priv->detailed_action = detailed_action_from_id (self->priv->id); break; case PROP_DISPLAY_NAME: g_free (self->priv->display_name); @@ -198,10 +211,8 @@ self->priv->wait_command = g_value_get_boolean (value); break; case PROP_ACCELERATOR: - self->priv->accelerator.name = g_value_dup_string (value); - gtk_accelerator_parse (self->priv->accelerator.name, - &self->priv->accelerator.keyval, - &self->priv->accelerator.modifiers); + g_free (self->priv->accelerator); + self->priv->accelerator = g_value_dup_string (value); break; default: break; @@ -242,7 +253,7 @@ g_value_set_boolean (value, self->priv->wait_command); break; case PROP_ACCELERATOR: - g_value_set_string (value, self->priv->accelerator.name); + g_value_set_string (value, self->priv->accelerator); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -344,9 +355,12 @@ self->priv->id = NULL; self->priv->display_name = NULL; self->priv->command = NULL; - self->priv->accelerator.name = NULL; - self->priv->accelerator.keyval = 0; - self->priv->accelerator.modifiers = 0; + self->priv->visible = FALSE; + self->priv->shell_script = FALSE; + self->priv->for_each_file = FALSE; + self->priv->wait_command = FALSE; + self->priv->accelerator = NULL; + self->priv->detailed_action = NULL; } @@ -356,7 +370,7 @@ GthScript *script; char *id; - id = _g_rand_string (ID_LENGTH); + id = _g_str_random (ID_LENGTH); script = (GthScript *) g_object_new (GTH_TYPE_SCRIPT, "id", id, NULL); g_free (id); @@ -385,6 +399,13 @@ } +const char * +gth_script_get_detailed_action (GthScript *self) +{ + return self->priv->detailed_action; +} + + gboolean gth_script_is_visible (GthScript *script) { @@ -557,7 +578,7 @@ char *basename_wo_ext; basename = g_file_get_basename (file_data->file); - basename_wo_ext = _g_uri_remove_extension (basename); + basename_wo_ext = _g_path_remove_extension (basename); g_free (basename); @@ -572,7 +593,7 @@ char *ext; path = g_file_get_path (file_data->file); - ext = g_strdup (_g_uri_get_file_extension (path)); + ext = g_strdup (_g_path_get_extension (path)); g_free (path); @@ -661,7 +682,7 @@ if (value != NULL) { char *tmp_value; - tmp_value = _g_utf8_replace (value, "[\r\n]", " "); + tmp_value = _g_utf8_replace_pattern (value, "[\r\n]", " "); g_free (value); value = tmp_value; } @@ -687,6 +708,21 @@ } +static char * +get_timestamp (void) +{ + GDateTime *now; + char *str; + + now = g_date_time_new_now_local (); + str = g_date_time_format (now, "%Y-%m-%d %H.%M.%S"); + + g_date_time_unref (now); + + return str; +} + + static gboolean command_line_eval_cb (const GMatchInfo *info, GString *res, @@ -709,6 +745,8 @@ r = create_file_list (replace_data->file_list, get_ext_func, replace_data->quote_values); else if (strcmp (match, "%P") == 0) r = create_file_list (replace_data->file_list, get_parent_func, replace_data->quote_values); + else if (strcmp (match, "%T") == 0) + r = get_timestamp (); else if (strncmp (match, "%attr", 5) == 0) { r = create_attribute_list (replace_data->file_list, match, replace_data->quote_values); if (r == NULL) @@ -869,7 +907,7 @@ int n; remainder = string; - s = _g_utf8_strstr (remainder, delimiter); + s = _g_utf8_find_str (remainder, delimiter); if (s != NULL) { gsize delimiter_size = strlen (delimiter); @@ -894,7 +932,7 @@ string_list = g_slist_prepend (string_list, new_string); remainder = s + 1 /* strlen("}") */; - s = _g_utf8_strstr (remainder, delimiter); + s = _g_utf8_find_str (remainder, delimiter); } } } @@ -960,10 +998,10 @@ if (n_param == 1) { g_free (asked_value->prompt); - asked_value->prompt = _g_utf8_strstrip (value); + asked_value->prompt = _g_utf8_strip (value); } else if (n_param == 2) - asked_value->default_value = _g_utf8_strstrip (value); + asked_value->default_value = _g_utf8_strip (value); else g_assert_not_reached (); @@ -989,7 +1027,7 @@ /* replace the parameters in the command line */ - re = g_regex_new ("%U|%F|%B|%N|%E|%P|%ask({[^}]+}({[^}]+})?)?|%attr{[^}]+}", 0, 0, NULL); + re = g_regex_new ("%U|%F|%B|%N|%E|%P|%T|%ask({[^}]+}({[^}]+})?)?|%attr{[^}]+}", 0, 0, NULL); replace_data->quote_values = FALSE; replace_data->last_asked_value = replace_data->asked_values; @@ -1025,12 +1063,25 @@ } -void -gth_script_get_accelerator (GthScript *self, - guint *keyval, - GdkModifierType *modifiers) -{ - g_return_if_fail (GTH_IS_SCRIPT (self)); - if (keyval) *keyval = self->priv->accelerator.keyval; - if (modifiers) *modifiers = self->priv->accelerator.modifiers; +const char * +gth_script_get_accelerator (GthScript *self) +{ + g_return_val_if_fail (GTH_IS_SCRIPT (self), NULL); + return self->priv->accelerator; +} + + +GthShortcut * +gth_script_create_shortcut (GthScript *self) +{ + GthShortcut *shortcut; + + shortcut = gth_shortcut_new ("exec-script", g_variant_new_string (gth_script_get_id (self))); + shortcut->description = g_strdup (self->priv->display_name); + shortcut->context = GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER; + shortcut->category = GTH_SHORTCUT_CATEGORY_LIST_TOOLS; + gth_shortcut_set_accelerator (shortcut, self->priv->accelerator); + shortcut->default_accelerator = g_strdup (""); + + return shortcut; } diff -Nru gthumb-3.8.3/extensions/list_tools/gth-script-editor-dialog.c gthumb-3.9.1/extensions/list_tools/gth-script-editor-dialog.c --- gthumb-3.8.3/extensions/list_tools/gth-script-editor-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/gth-script-editor-dialog.c 2020-03-07 19:03:13.496954700 +0000 @@ -37,14 +37,16 @@ }; struct _GthScriptEditorDialogPrivate { - GtkBuilder *builder; - GtkWidget *accel_button; - char *script_id; - gboolean script_visible; - gboolean wait_command; - gboolean shell_script; - gboolean for_each_file; - gboolean help_visible; + GthWindow *shortcut_window; + GtkBuilder *builder; + GtkWidget *accel_button; + char *script_id; + gboolean script_visible; + gboolean wait_command; + gboolean shell_script; + gboolean for_each_file; + gboolean help_visible; + GthShortcut *shortcut; }; @@ -90,6 +92,8 @@ dialog->priv->shell_script = FALSE; dialog->priv->for_each_file = FALSE; dialog->priv->help_visible = FALSE; + dialog->priv->shortcut = NULL; + dialog->priv->shortcut_window = NULL; } @@ -117,6 +121,26 @@ } +static gboolean +accel_button_change_value_cb (GthAccelButton *button, + guint keycode, + GdkModifierType modifiers, + gpointer user_data) +{ + GthScriptEditorDialog *self = user_data; + gboolean change; + + change = gth_window_can_change_shortcut (self->priv->shortcut_window, + self->priv->shortcut != NULL ? self->priv->shortcut->detailed_action : NULL, + GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, + keycode, + modifiers, + GTK_WINDOW (self)); + + return change ? GDK_EVENT_PROPAGATE : GDK_EVENT_STOP; +} + + static void gth_script_editor_dialog_construct (GthScriptEditorDialog *self, const char *title, @@ -126,7 +150,6 @@ gtk_window_set_title (GTK_WINDOW (self), title); if (parent != NULL) gtk_window_set_transient_for (GTK_WINDOW (self), parent); - gtk_window_set_resizable (GTK_WINDOW (self), FALSE); gtk_dialog_add_buttons (GTK_DIALOG (self), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, @@ -138,6 +161,11 @@ gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), _gtk_builder_get_widget (self->priv->builder, "script_editor"), TRUE, TRUE, 0); self->priv->accel_button = gth_accel_button_new (); + g_signal_connect (self->priv->accel_button, + "change-value", + G_CALLBACK (accel_button_change_value_cb), + self); + gtk_widget_show (self->priv->accel_button); gtk_box_pack_start (GTK_BOX (GET_WIDGET ("accel_box")), self->priv->accel_button, FALSE, FALSE, 0); @@ -154,13 +182,16 @@ GtkWidget * gth_script_editor_dialog_new (const char *title, + GthWindow *shortcut_window, GtkWindow *parent) { GthScriptEditorDialog *self; self = g_object_new (GTH_TYPE_SCRIPT_EDITOR_DIALOG, "use-header-bar", _gtk_settings_get_dialogs_use_header (), + "resizable", TRUE, NULL); + self->priv->shortcut_window = shortcut_window; gth_script_editor_dialog_construct (self, title, parent); return (GtkWidget *) self; @@ -186,14 +217,11 @@ g_free (self->priv->script_id); self->priv->script_id = NULL; self->priv->script_visible = TRUE; + self->priv->shortcut = NULL; _gth_script_editor_dialog_set_new_script (self); if (script != NULL) { - guint keyval; - GdkModifierType modifiers; - - self->priv->script_id = g_strdup (gth_script_get_id (script)); self->priv->script_visible = gth_script_is_visible (script); @@ -203,8 +231,12 @@ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("for_each_file_checkbutton")), gth_script_for_each_file (script)); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("wait_command_checkbutton")), gth_script_wait_command (script)); - gth_script_get_accelerator (script, &keyval, &modifiers); - gth_accel_button_set_accelerator (GTH_ACCEL_BUTTON (self->priv->accel_button), keyval, modifiers); + self->priv->shortcut = gth_window_get_shortcut (self->priv->shortcut_window, gth_script_get_detailed_action (script)); + if (self->priv->shortcut != NULL) { + gth_accel_button_set_accelerator (GTH_ACCEL_BUTTON (self->priv->accel_button), + self->priv->shortcut->keyval, + self->priv->shortcut->modifiers); + } } update_sensitivity (self); diff -Nru gthumb-3.8.3/extensions/list_tools/gth-script-editor-dialog.h gthumb-3.9.1/extensions/list_tools/gth-script-editor-dialog.h --- gthumb-3.8.3/extensions/list_tools/gth-script-editor-dialog.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/gth-script-editor-dialog.h 2020-03-07 19:03:13.496954700 +0000 @@ -49,6 +49,7 @@ GType gth_script_editor_dialog_get_type (void); GtkWidget * gth_script_editor_dialog_new (const char *title, + GthWindow *shortcut_window, GtkWindow *parent); void gth_script_editor_dialog_set_script (GthScriptEditorDialog *self, GthScript *script); diff -Nru gthumb-3.8.3/extensions/list_tools/gth-script.h gthumb-3.9.1/extensions/list_tools/gth-script.h --- gthumb-3.8.3/extensions/list_tools/gth-script.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/gth-script.h 2020-03-07 19:03:13.496954700 +0000 @@ -55,6 +55,7 @@ const char * gth_script_get_id (GthScript *script); const char * gth_script_get_display_name (GthScript *script); const char * gth_script_get_command (GthScript *script); +const char * gth_script_get_detailed_action (GthScript *script); gboolean gth_script_is_visible (GthScript *script); gboolean gth_script_is_shell_script (GthScript *script); gboolean gth_script_for_each_file (GthScript *script); @@ -65,9 +66,8 @@ GList *file_list /* GthFileData */, gboolean can_skip, GError **error); -void gth_script_get_accelerator (GthScript *script, - guint *keyval, - GdkModifierType *modifiers); +const char * gth_script_get_accelerator (GthScript *script); +GthShortcut * gth_script_create_shortcut (GthScript *script); G_END_DECLS diff -Nru gthumb-3.8.3/extensions/list_tools/gth-script-task.c gthumb-3.9.1/extensions/list_tools/gth-script-task.c --- gthumb-3.8.3/extensions/list_tools/gth-script-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/gth-script-task.c 2020-03-07 19:03:13.496954700 +0000 @@ -96,6 +96,20 @@ static void +child_setup (gpointer user_data) +{ + /* detach from the tty */ + + setsid (); + + /* create a process group to kill all the child processes when + * canceling the operation. */ + + setpgid (0, 0); +} + + +static void _gth_script_task_exec (GthScriptTask *self) { char *command_line; @@ -155,7 +169,7 @@ argv, NULL, G_SPAWN_DO_NOT_REAP_CHILD | G_SPAWN_SEARCH_PATH, - NULL, + child_setup, NULL, &self->priv->pid, &error)) @@ -167,8 +181,17 @@ } } else { - if (g_spawn_async (NULL, argv, NULL, G_SPAWN_SEARCH_PATH, NULL, NULL, NULL, &error)) + if (g_spawn_async (NULL, + argv, + NULL, + G_SPAWN_SEARCH_PATH, + NULL, + NULL, + NULL, + &error)) + { retval = TRUE; + } } } @@ -251,7 +274,7 @@ self = GTH_SCRIPT_TASK (task); if (self->priv->pid != 0) - kill (self->priv->pid, SIGTERM); + killpg (self->priv->pid, SIGTERM); } diff -Nru gthumb-3.8.3/extensions/list_tools/list_tools.extension.desktop.in.in gthumb-3.9.1/extensions/list_tools/list_tools.extension.desktop.in.in --- gthumb-3.8.3/extensions/list_tools/list_tools.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/list_tools.extension.desktop.in.in 2020-03-07 19:03:13.496954700 +0000 @@ -1,8 +1,8 @@ [Extension] Name=File list tools Comment=Scripting and batch manipulation of files. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=applications-engineering Category=List-Tool diff -Nru gthumb-3.8.3/extensions/list_tools/list-tools.h gthumb-3.9.1/extensions/list_tools/list-tools.h --- gthumb-3.8.3/extensions/list_tools/list-tools.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/list-tools.h 2020-03-07 19:03:13.496954700 +0000 @@ -25,5 +25,6 @@ #define GTH_BROWSER_MENU_MANAGER_TOOLS "tools.tools1" #define GTH_BROWSER_MENU_MANAGER_MORE_TOOLS "tools.tools2" #define GTH_BROWSER_MENU_MANAGER_TOOLS3 "tools.tools3" +#define GTH_BROWSER_MENU_MANAGER_TOOLS4 "tools.tools4" #endif /* LIST_TOOLS_H */ diff -Nru gthumb-3.8.3/extensions/list_tools/main.c gthumb-3.9.1/extensions/list_tools/main.c --- gthumb-3.8.3/extensions/list_tools/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/main.c 2020-03-07 19:03:13.496954700 +0000 @@ -24,13 +24,20 @@ #include #include #include "callbacks.h" +#include "shortcuts.h" + + +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_LIST_TOOLS, N_("Tools"), 15 }, +}; G_MODULE_EXPORT void gthumb_extension_activate (void) { + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_hook_add_callback ("gth-browser-construct", 5, G_CALLBACK (list_tools__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (list_tools__gth_browser_file_list_key_press_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (list_tools__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/list_tools/shortcuts.h gthumb-3.9.1/extensions/list_tools/shortcuts.h --- gthumb-3.8.3/extensions/list_tools/shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/list_tools/shortcuts.h 2020-03-07 19:03:13.496954700 +0000 @@ -0,0 +1,28 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef LIST_TOOLS_SHORTCUTS_H +#define LIST_TOOLS_SHORTCUTS_H + +#define GTH_SHORTCUT_CATEGORY_LIST_TOOLS "list-tools" +#define SCRIPTS_GROUP "scripts" + +#endif /* LIST_TOOLS_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/extensions/map_view/map_view.extension.desktop.in.in gthumb-3.9.1/extensions/map_view/map_view.extension.desktop.in.in --- gthumb-3.8.3/extensions/map_view/map_view.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/map_view/map_view.extension.desktop.in.in 2020-03-07 19:03:13.496954700 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Map Comment=View the photo position on the map -Authors=gthumb development team -Copyright=Copyright © 2011-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2011-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Viewer diff -Nru gthumb-3.8.3/extensions/meson.build gthumb-3.9.1/extensions/meson.build --- gthumb-3.8.3/extensions/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/meson.build 2020-03-07 19:03:13.496954700 +0000 @@ -75,3 +75,4 @@ subdir('slideshow') subdir('desktop_background') subdir('find_duplicates') +subdir('terminal') diff -Nru gthumb-3.8.3/extensions/oauth/oauth-account.c gthumb-3.9.1/extensions/oauth/oauth-account.c --- gthumb-3.8.3/extensions/oauth/oauth-account.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/oauth/oauth-account.c 2020-03-07 19:03:13.496954700 +0000 @@ -82,21 +82,21 @@ switch (property_id) { case PROP_ID: - _g_strset (&self->id, g_value_get_string (value)); + _g_str_set (&self->id, g_value_get_string (value)); break; case PROP_USERNAME: - _g_strset (&self->username, g_value_get_string (value)); + _g_str_set (&self->username, g_value_get_string (value)); if (self->name == NULL) - _g_strset (&self->name, g_value_get_string (value)); + _g_str_set (&self->name, g_value_get_string (value)); break; case PROP_NAME: - _g_strset (&self->name, g_value_get_string (value)); + _g_str_set (&self->name, g_value_get_string (value)); break; case PROP_TOKEN: - _g_strset (&self->token, g_value_get_string (value)); + _g_str_set (&self->token, g_value_get_string (value)); break; case PROP_TOKEN_SECRET: - _g_strset (&self->token_secret, g_value_get_string (value)); + _g_str_set (&self->token_secret, g_value_get_string (value)); break; case PROP_IS_DEFAULT: self->is_default = g_value_get_boolean (value); @@ -286,7 +286,7 @@ oauth_account_set_username (OAuthAccount *self, const char *value) { - _g_strset (&self->username, value); + _g_str_set (&self->username, value); } @@ -294,7 +294,7 @@ oauth_account_set_token (OAuthAccount *self, const char *value) { - _g_strset (&self->token, value); + _g_str_set (&self->token, value); } @@ -302,7 +302,7 @@ oauth_account_set_token_secret (OAuthAccount *self, const char *value) { - _g_strset (&self->token_secret, value); + _g_str_set (&self->token_secret, value); } diff -Nru gthumb-3.8.3/extensions/oauth/oauth-ask-authorization-dialog.c gthumb-3.9.1/extensions/oauth/oauth-ask-authorization-dialog.c --- gthumb-3.8.3/extensions/oauth/oauth-ask-authorization-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/oauth/oauth-ask-authorization-dialog.c 2020-03-07 19:03:13.496954700 +0000 @@ -146,19 +146,19 @@ webkit_view_ready_to_show_cb (WebKitWebView *web_view, gpointer user_data) { - GtkWidget *window; + GtkWindow *window; WebKitWindowProperties *prop; GdkRectangle geometry; - window = gtk_widget_get_toplevel (GTK_WIDGET (web_view)); - if (! gtk_widget_is_toplevel (window)) + window = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (web_view)); + if (window == NULL) return; prop = webkit_web_view_get_window_properties (web_view); webkit_window_properties_get_geometry (prop, &geometry); - gtk_window_set_default_size (GTK_WINDOW (window), geometry.width, geometry.height); - gtk_widget_show_all (window); + gtk_window_set_default_size (window, geometry.width, geometry.height); + gtk_widget_show_all (GTK_WIDGET (window)); } diff -Nru gthumb-3.8.3/extensions/oauth/oauth-service.c gthumb-3.9.1/extensions/oauth/oauth-service.c --- gthumb-3.8.3/extensions/oauth/oauth-service.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/oauth/oauth-service.c 2020-03-07 19:03:13.496954700 +0000 @@ -307,7 +307,7 @@ uri_data = uri + strlen (OAUTH_CALLBACK "?"); data = soup_form_decode (uri_data); - _g_strset (&self->priv->token, g_hash_table_lookup (data, "oauth_token")); + _g_str_set (&self->priv->token, g_hash_table_lookup (data, "oauth_token")); if (self->priv->token != NULL) { gtk_widget_hide (GTK_WIDGET (dialog)); @@ -518,7 +518,7 @@ oauth_service_set_token (OAuthService *self, const char *token) { - _g_strset (&self->priv->token, token); + _g_str_set (&self->priv->token, token); } @@ -533,7 +533,7 @@ oauth_service_set_token_secret (OAuthService *self, const char *token_secret) { - _g_strset (&self->priv->token_secret, token_secret); + _g_str_set (&self->priv->token_secret, token_secret); } diff -Nru gthumb-3.8.3/extensions/oauth/web-service.c gthumb-3.9.1/extensions/oauth/web-service.c --- gthumb-3.8.3/extensions/oauth/web-service.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/oauth/web-service.c 2020-03-07 19:03:13.496954700 +0000 @@ -122,13 +122,13 @@ switch (property_id) { case PROP_SERVICE_NAME: - _g_strset (&self->priv->service_name, g_value_get_string (value)); + _g_str_set (&self->priv->service_name, g_value_get_string (value)); break; case PROP_SERVICE_ADDRESS: - _g_strset (&self->priv->service_address, g_value_get_string (value)); + _g_str_set (&self->priv->service_address, g_value_get_string (value)); break; case PROP_SERVICE_PROTOCOL: - _g_strset (&self->priv->service_protocol, g_value_get_string (value)); + _g_str_set (&self->priv->service_protocol, g_value_get_string (value)); break; case PROP_ACCOUNT_TYPE: self->priv->account_type = g_value_get_gtype (value); diff -Nru gthumb-3.8.3/extensions/photo_importer/actions.c gthumb-3.9.1/extensions/photo_importer/actions.c --- gthumb-3.8.3/extensions/photo_importer/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/photo_importer/actions.c 2020-03-07 19:03:13.500288000 +0000 @@ -81,7 +81,7 @@ if (GTH_IS_FILE_SOURCE_VFS (gth_browser_get_location_source (browser))) folder = _g_object_ref (gth_browser_get_location (browser)); if (folder == NULL) - folder = g_file_new_for_uri (get_home_uri ()); + folder = g_file_new_for_uri (_g_uri_get_home ()); gtk_file_chooser_set_file (GTK_FILE_CHOOSER (chooser), folder, NULL); g_signal_connect (chooser, diff -Nru gthumb-3.8.3/extensions/photo_importer/dlg-photo-importer.c gthumb-3.9.1/extensions/photo_importer/dlg-photo-importer.c --- gthumb-3.8.3/extensions/photo_importer/dlg-photo-importer.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/photo_importer/dlg-photo-importer.c 2020-03-07 19:03:13.500288000 +0000 @@ -620,7 +620,7 @@ if (GTH_IS_FILE_SOURCE_VFS (gth_browser_get_location_source (browser))) data->source = _g_object_ref (gth_browser_get_location (browser)); if (data->source == NULL) - data->source = g_file_new_for_uri (get_home_uri ()); + data->source = g_file_new_for_uri (_g_uri_get_home ()); } gtk_window_set_title (GTK_WINDOW (data->dialog), _("Import from Folder")); diff -Nru gthumb-3.8.3/extensions/photo_importer/photo_importer.extension.desktop.in.in gthumb-3.9.1/extensions/photo_importer/photo_importer.extension.desktop.in.in --- gthumb-3.8.3/extensions/photo_importer/photo_importer.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/photo_importer/photo_importer.extension.desktop.in.in 2020-03-07 19:03:13.500288000 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Import photos Comment=Import photos from removable devices. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=camera-photo Category=Importer diff -Nru gthumb-3.8.3/extensions/picasaweb/picasa-web-album.c gthumb-3.9.1/extensions/picasaweb/picasa-web-album.c --- gthumb-3.8.3/extensions/picasaweb/picasa-web-album.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/picasaweb/picasa-web-album.c 2020-03-07 19:03:13.500288000 +0000 @@ -201,7 +201,7 @@ picasa_web_album_set_etag (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->etag, value); + _g_str_set (&self->etag, value); } @@ -209,7 +209,7 @@ picasa_web_album_set_id (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->id, value); + _g_str_set (&self->id, value); } @@ -217,7 +217,7 @@ picasa_web_album_set_title (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->title, value); + _g_str_set (&self->title, value); } @@ -225,7 +225,7 @@ picasa_web_album_set_summary (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->summary, value); + _g_str_set (&self->summary, value); } @@ -233,7 +233,7 @@ picasa_web_album_set_location (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->location, value); + _g_str_set (&self->location, value); } @@ -241,7 +241,7 @@ picasa_web_album_set_alternate_url (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->alternate_url, value); + _g_str_set (&self->alternate_url, value); } @@ -249,7 +249,7 @@ picasa_web_album_set_edit_url (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->edit_url, value); + _g_str_set (&self->edit_url, value); } @@ -306,5 +306,5 @@ picasa_web_album_set_keywords (PicasaWebAlbum *self, const char *value) { - _g_strset (&self->keywords, value); + _g_str_set (&self->keywords, value); } diff -Nru gthumb-3.8.3/extensions/picasaweb/picasaweb.extension.desktop.in.in gthumb-3.9.1/extensions/picasaweb/picasaweb.extension.desktop.in.in --- gthumb-3.8.3/extensions/picasaweb/picasaweb.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/picasaweb/picasaweb.extension.desktop.in.in 2020-03-07 19:03:13.503621300 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Picasa Web Albums Comment=Upload images to Picasa Web Albums -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter diff -Nru gthumb-3.8.3/extensions/picasaweb/picasa-web-photo.c gthumb-3.9.1/extensions/picasaweb/picasa-web-photo.c --- gthumb-3.8.3/extensions/picasaweb/picasa-web-photo.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/picasaweb/picasa-web-photo.c 2020-03-07 19:03:13.500288000 +0000 @@ -234,7 +234,7 @@ picasa_web_photo_set_etag (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->etag, value); + _g_str_set (&self->etag, value); } @@ -242,7 +242,7 @@ picasa_web_photo_set_id (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->id, value); + _g_str_set (&self->id, value); } @@ -250,7 +250,7 @@ picasa_web_photo_set_album_id (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->album_id, value); + _g_str_set (&self->album_id, value); } @@ -258,7 +258,7 @@ picasa_web_photo_set_title (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->title, value); + _g_str_set (&self->title, value); } @@ -266,7 +266,7 @@ picasa_web_photo_set_summary (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->summary, value); + _g_str_set (&self->summary, value); } @@ -274,7 +274,7 @@ picasa_web_photo_set_uri (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->uri, value); + _g_str_set (&self->uri, value); } @@ -282,7 +282,7 @@ picasa_web_photo_set_mime_type (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->mime_type, value); + _g_str_set (&self->mime_type, value); } @@ -309,7 +309,7 @@ picasa_web_photo_set_credit (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->credit, value); + _g_str_set (&self->credit, value); } @@ -317,7 +317,7 @@ picasa_web_photo_set_description (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->description, value); + _g_str_set (&self->description, value); } @@ -325,7 +325,7 @@ picasa_web_photo_set_keywords (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->keywords, value); + _g_str_set (&self->keywords, value); } @@ -333,7 +333,7 @@ picasa_web_photo_set_thumbnail_72 (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->thumbnail_72, value); + _g_str_set (&self->thumbnail_72, value); } @@ -341,7 +341,7 @@ picasa_web_photo_set_thumbnail_144 (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->thumbnail_144, value); + _g_str_set (&self->thumbnail_144, value); } @@ -349,7 +349,7 @@ picasa_web_photo_set_thumbnail_288 (PicasaWebPhoto *self, const char *value) { - _g_strset (&self->thumbnail_288, value); + _g_str_set (&self->thumbnail_288, value); } diff -Nru gthumb-3.8.3/extensions/picasaweb/picasa-web-service.c gthumb-3.9.1/extensions/picasaweb/picasa-web-service.c --- gthumb-3.8.3/extensions/picasaweb/picasa-web-service.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/picasaweb/picasa-web-service.c 2020-03-07 19:03:13.503621300 +0000 @@ -196,8 +196,8 @@ JsonObject *obj; obj = json_node_get_object (node); - _g_strset (&self->priv->access_token, json_object_get_string_member (obj, "access_token")); - _g_strset (&self->priv->refresh_token, json_object_get_string_member (obj, "refresh_token")); + _g_str_set (&self->priv->access_token, json_object_get_string_member (obj, "access_token")); + _g_str_set (&self->priv->refresh_token, json_object_get_string_member (obj, "refresh_token")); g_task_return_boolean (task, TRUE); } @@ -336,8 +336,8 @@ PicasaWebService *self = PICASA_WEB_SERVICE (base); GtkWidget *dialog; - _g_strset (&self->priv->refresh_token, NULL); - _g_strset (&self->priv->access_token, NULL); + _g_str_set (&self->priv->refresh_token, NULL); + _g_str_set (&self->priv->access_token, NULL); dialog = oauth_ask_authorization_dialog_new (picasa_web_service_get_authorization_url (self)); gtk_window_set_default_size (GTK_WINDOW (dialog), 680, 580); @@ -378,7 +378,7 @@ "token", json_object_get_string_member (obj, "access_token"), NULL); else - _g_strset (&self->priv->access_token, json_object_get_string_member (obj, "access_token")); + _g_str_set (&self->priv->access_token, json_object_get_string_member (obj, "access_token")); g_task_return_boolean (task, TRUE); } @@ -397,7 +397,7 @@ GHashTable *data_set; SoupMessage *msg; - _g_strset (&self->priv->access_token, NULL); + _g_str_set (&self->priv->access_token, NULL); data_set = g_hash_table_new (g_str_hash, g_str_equal); g_hash_table_insert (data_set, "refresh_token", (gpointer) refresh_token); @@ -491,7 +491,7 @@ account = web_service_get_current_account (WEB_SERVICE (self)); if (account != NULL) - _g_strset (&account->token, NULL); + _g_str_set (&account->token, NULL); picasa_web_service_get_user_info (WEB_SERVICE (self), data->cancellable, @@ -559,8 +559,8 @@ account = web_service_get_current_account (WEB_SERVICE (self)); if (account != NULL) { - _g_strset (&self->priv->refresh_token, account->token_secret); - _g_strset (&self->priv->access_token, account->token); + _g_str_set (&self->priv->refresh_token, account->token_secret); + _g_str_set (&self->priv->access_token, account->token); } data = g_new0 (AccessTokenData, 1); diff -Nru gthumb-3.8.3/extensions/raw_files/raw_files.extension.desktop.in.in gthumb-3.9.1/extensions/raw_files/raw_files.extension.desktop.in.in --- gthumb-3.8.3/extensions/raw_files/raw_files.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/raw_files/raw_files.extension.desktop.in.in 2020-03-07 19:03:13.503621300 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Raw format support Comment=Allow to load raw format images. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Viewer diff -Nru gthumb-3.8.3/extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in gthumb-3.9.1/extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in --- gthumb-3.8.3/extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in 2020-03-07 19:03:13.503621300 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Red-eye removal Comment=Tool to remove the red-eye effect from a photo. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=File-Tool diff -Nru gthumb-3.8.3/extensions/rename_series/dlg-rename-series.c gthumb-3.9.1/extensions/rename_series/dlg-rename-series.c --- gthumb-3.8.3/extensions/rename_series/dlg-rename-series.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/rename_series/dlg-rename-series.c 2020-03-07 19:03:13.503621300 +0000 @@ -164,7 +164,7 @@ if (value != NULL) { char *tmp_value; - tmp_value = _g_utf8_replace (value, "[\r\n]", " "); + tmp_value = _g_utf8_replace_pattern (value, "[\r\n]", " "); g_free (value); value = tmp_value; } @@ -205,7 +205,7 @@ char *uri; uri = g_file_get_uri (template_data->file_data->file); - r = g_strdup (_g_uri_get_file_extension (uri)); + r = _g_uri_get_extension (uri); g_free (uri); } @@ -213,7 +213,7 @@ char *basename; basename = g_file_get_basename (template_data->file_data->file); - r = _g_uri_remove_extension (basename); + r = _g_path_remove_extension (basename); g_free (basename); } diff -Nru gthumb-3.8.3/extensions/rename_series/gth-rename-task.c gthumb-3.9.1/extensions/rename_series/gth-rename-task.c --- gthumb-3.8.3/extensions/rename_series/gth-rename-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/rename_series/gth-rename-task.c 2020-03-07 19:03:13.503621300 +0000 @@ -178,7 +178,7 @@ if (self->priv->default_response == GTH_OVERWRITE_RESPONSE_ALWAYS_YES) copy_flags = G_FILE_COPY_OVERWRITE; - if (! _g_move_file (source, + if (! _g_file_move (source, destination, G_FILE_COPY_ALL_METADATA | copy_flags, gth_task_get_cancellable (GTH_TASK (self)), diff -Nru gthumb-3.8.3/extensions/rename_series/rename_series.extension.desktop.in.in gthumb-3.9.1/extensions/rename_series/rename_series.extension.desktop.in.in --- gthumb-3.8.3/extensions/rename_series/rename_series.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/rename_series/rename_series.extension.desktop.in.in 2020-03-07 19:03:13.503621300 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Rename files Comment=Rename series of files. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=List-Tool diff -Nru gthumb-3.8.3/extensions/resize_images/callbacks.c gthumb-3.9.1/extensions/resize_images/callbacks.c --- gthumb-3.8.3/extensions/resize_images/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/resize_images/callbacks.c 2020-03-07 19:03:13.503621300 +0000 @@ -55,12 +55,8 @@ void -ri__gth_browser_update_sensitivity_cb (GthBrowser *browser) +ri__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { - int n_selected; - gboolean sensitive; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - sensitive = n_selected > 0; - gth_window_enable_action (GTH_WINDOW (browser), "resize-images", sensitive); + gth_window_enable_action (GTH_WINDOW (browser), "resize-images", n_selected > 0); } diff -Nru gthumb-3.8.3/extensions/resize_images/callbacks.h gthumb-3.9.1/extensions/resize_images/callbacks.h --- gthumb-3.8.3/extensions/resize_images/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/resize_images/callbacks.h 2020-03-07 19:03:13.503621300 +0000 @@ -25,6 +25,7 @@ #include void ri__gth_browser_construct_cb (GthBrowser *browser); -void ri__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void ri__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/resize_images/dlg-resize-images.c gthumb-3.9.1/extensions/resize_images/dlg-resize-images.c --- gthumb-3.8.3/extensions/resize_images/dlg-resize-images.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/resize_images/dlg-resize-images.c 2020-03-07 19:03:13.506954400 +0000 @@ -126,10 +126,7 @@ new_h = max_h; } - if ((new_w > 1) && (new_h > 1)) - destination = _cairo_image_surface_scale (source, new_w, new_h, SCALE_FILTER_BEST, task); - else - destination = NULL; + destination = _cairo_image_surface_scale (source, new_w, new_h, SCALE_FILTER_BEST, task); destination_image = gth_image_new_for_surface (destination); gth_image_task_set_destination (GTH_IMAGE_TASK (task), destination_image); diff -Nru gthumb-3.8.3/extensions/resize_images/main.c gthumb-3.9.1/extensions/resize_images/main.c --- gthumb-3.8.3/extensions/resize_images/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/resize_images/main.c 2020-03-07 19:03:13.506954400 +0000 @@ -30,7 +30,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 40, G_CALLBACK (ri__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (ri__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (ri__gth_browser_selection_changed_cb), NULL); } diff -Nru gthumb-3.8.3/extensions/resize_images/resize_images.extension.desktop.in.in gthumb-3.9.1/extensions/resize_images/resize_images.extension.desktop.in.in --- gthumb-3.8.3/extensions/resize_images/resize_images.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/resize_images/resize_images.extension.desktop.in.in 2020-03-07 19:03:13.506954400 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Resize images Comment=Resize series of images. -Authors=gthumb development team -Copyright=Copyright © 2009-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2009-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=List-Tool diff -Nru gthumb-3.8.3/extensions/search/actions.c gthumb-3.9.1/extensions/search/actions.c --- gthumb-3.8.3/extensions/search/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/actions.c 2020-03-07 19:03:13.506954400 +0000 @@ -73,8 +73,7 @@ GtkWidget *dialog; search = gth_search_new (); - gth_search_set_folder (search, gth_browser_get_location (browser)); - gth_search_set_recursive (search, TRUE); + gth_search_set_source (search, gth_browser_get_location (browser), TRUE); dialog = gth_search_editor_dialog_new (_("Find"), search, GTK_WINDOW (browser)); gtk_dialog_add_button (GTK_DIALOG (dialog), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL); @@ -86,7 +85,7 @@ G_CALLBACK (search_editor_dialog__response_cb), browser); - gtk_window_set_modal (GTK_WINDOW (dialog), TRUE); + gtk_window_set_modal (GTK_WINDOW (dialog), FALSE); gtk_window_present (GTK_WINDOW (dialog)); gth_search_editor_dialog_focus_first_rule (GTH_SEARCH_EDITOR_DIALOG (dialog)); diff -Nru gthumb-3.8.3/extensions/search/callbacks.c gthumb-3.9.1/extensions/search/callbacks.c --- gthumb-3.8.3/extensions/search/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/callbacks.c 2020-03-07 19:03:13.506954400 +0000 @@ -40,6 +40,11 @@ }; +static const GthShortcut shortcuts[] = { + { "find", N_("Find files"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "f" }, +}; + + typedef struct { GtkWidget *refresh_button; } BrowserData; @@ -63,12 +68,17 @@ actions, G_N_ELEMENTS (actions), browser); + + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); + gth_browser_add_header_bar_button (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS, "edit-find-symbolic", _("Find files"), "win.find", - "F"); + NULL); data = g_new0 (BrowserData, 1); g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free); @@ -125,6 +135,16 @@ } +GthCatalog * +search__gth_catalog_new_for_uri_cb (const char *uri) +{ + if (g_str_has_suffix (uri, ".search")) + return (GthCatalog *) gth_search_new (); + else + return NULL; +} + + void search__dlg_catalog_properties (GtkBuilder *builder, GthFileData *file_data, @@ -138,6 +158,9 @@ if (! _g_content_type_is_a (g_file_info_get_content_type (file_data->info), "gthumb/search")) return; + if (! GTH_IS_SEARCH (catalog)) + return; + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6); gtk_widget_show (vbox); gtk_box_pack_start (GTK_BOX (_gtk_builder_get_widget (builder, "general_page")), vbox, FALSE, FALSE, 0); @@ -177,8 +200,7 @@ search = gth_search_editor_get_search (GTH_SEARCH_EDITOR (g_object_get_data (G_OBJECT(builder), "search_editor")), NULL); if (search != NULL) { g_file_info_set_attribute_boolean (file_data->info, "gthumb::search-modified", ! gth_search_equal (GTH_SEARCH (catalog), search)); - gth_search_set_folder (GTH_SEARCH (catalog), gth_search_get_folder (search)); - gth_search_set_recursive (GTH_SEARCH (catalog), gth_search_is_recursive (search)); + gth_search_set_sources (GTH_SEARCH (catalog), gth_search_get_sources (search)); gth_search_set_test (GTH_SEARCH (catalog), gth_search_get_test (search)); } } @@ -250,8 +272,9 @@ GthTest *test_chain; data->catalog = (GthCatalog *) gth_search_new (); - gth_search_set_folder (GTH_SEARCH (data->catalog), gth_organize_task_get_folder (data->task)); - gth_search_set_recursive (GTH_SEARCH (data->catalog), gth_organize_task_get_recursive (data->task)); + gth_search_set_source (GTH_SEARCH (data->catalog), + gth_organize_task_get_folder (data->task), + gth_organize_task_get_recursive (data->task)); date_test = gth_main_get_registered_object (GTH_TYPE_TEST, (policy == GTH_GROUP_POLICY_MODIFIED_DATE) ? "file::mtime" : "Embedded::Photo::DateTimeOriginal"); gth_test_simple_set_data_as_date (GTH_TEST_SIMPLE (date_test), data->date_time->date); @@ -302,8 +325,9 @@ GthTest *test_chain; data->catalog = (GthCatalog *) gth_search_new (); - gth_search_set_folder (GTH_SEARCH (data->catalog), gth_organize_task_get_folder (data->task)); - gth_search_set_recursive (GTH_SEARCH (data->catalog), gth_organize_task_get_recursive (data->task)); + gth_search_set_source (GTH_SEARCH (data->catalog), + gth_organize_task_get_folder (data->task), + gth_organize_task_get_recursive (data->task)); tag_test = gth_main_get_registered_object (GTH_TYPE_TEST, (policy == GTH_GROUP_POLICY_TAG) ? "comment::category" : "general::tags"); gth_test_category_set (GTH_TEST_CATEGORY (tag_test), GTH_TEST_OP_CONTAINS, FALSE, data->tag); diff -Nru gthumb-3.8.3/extensions/search/callbacks.h gthumb-3.9.1/extensions/search/callbacks.h --- gthumb-3.8.3/extensions/search/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/callbacks.h 2020-03-07 19:03:13.506954400 +0000 @@ -30,6 +30,7 @@ void search__gth_browser_update_sensitivity_cb (GthBrowser *browser); void search__gth_browser_update_extra_widget_cb (GthBrowser *browser); GthCatalog * search__gth_catalog_load_from_data_cb (const void *buffer); +GthCatalog * search__gth_catalog_new_for_uri_cb (const char *uri); void search__dlg_catalog_properties (GtkBuilder *builder, GthFileData *file_data, GthCatalog *catalog); diff -Nru gthumb-3.8.3/extensions/search/data/ui/search-editor.ui gthumb-3.9.1/extensions/search/data/ui/search-editor.ui --- gthumb-3.8.3/extensions/search/data/ui/search-editor.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/data/ui/search-editor.ui 2020-03-07 19:03:13.506954400 +0000 @@ -1,5 +1,5 @@ - + @@ -9,26 +9,26 @@ vertical 6 - + True False - 6 + 6 + 6 - + True False - Start _at: - True + _Match: + True 0 - False - True - 0 + 0 + 1 - + True False @@ -36,72 +36,55 @@ - True - True - 1 + 1 + 1 - - _Include sub-folders - True - True - False - True - 0.5 - True - - - False - True - 2 - - - - - False - True - 0 - - - - - True - False - 6 - - + True False - _Match: - True - 0 + True + vertical + 6 + + + + + + + + + + + + - False - False - 0 + 1 + 0 - + True False - - - + 6 + Start _at: + True + 0 + 0 - True - True - 1 + 0 + 0 False True - 1 + 0 @@ -115,7 +98,7 @@ False True - 2 + 1 @@ -131,14 +114,8 @@ False True - 3 + 2 - - - - - - diff -Nru gthumb-3.8.3/extensions/search/gth-search.c gthumb-3.9.1/extensions/search/gth-search.c --- gthumb-3.8.3/extensions/search/gth-search.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search.c 2020-03-07 19:03:13.506954400 +0000 @@ -23,6 +23,7 @@ #include #include #include "gth-search.h" +#include "gth-search-source.h" #define SEARCH_FORMAT "1.0" @@ -33,8 +34,7 @@ struct _GthSearchPrivate { - GFile *folder; - gboolean recursive; + GList *sources; GthTestChain *test; }; @@ -75,16 +75,25 @@ self = GTH_SEARCH (base); GTH_CATALOG_CLASS (gth_search_parent_class)->read_from_doc (GTH_CATALOG (self), root); + _g_object_list_unref (self->priv->sources); + self->priv->sources = NULL; + gth_search_set_test (self, NULL); + for (node = root->first_child; node; node = node->next_sibling) { if (g_strcmp0 (node->tag_name, "folder") == 0) { - GFile *folder; + GthSearchSource *source; + GFile *folder; + + source = gth_search_source_new (); folder = g_file_new_for_uri (dom_element_get_attribute (node, "uri")); - gth_search_set_folder (self, folder); + gth_search_source_set_folder (source, folder); g_object_unref (folder); - gth_search_set_recursive (self, (g_strcmp0 (dom_element_get_attribute (node, "recursive"), "true") == 0)); + gth_search_source_set_recursive (source, (g_strcmp0 (dom_element_get_attribute (node, "recursive"), "true") == 0)); + + self->priv->sources = g_list_prepend (self->priv->sources, source); } else if (g_strcmp0 (node->tag_name, "tests") == 0) { GthTest *test; @@ -93,7 +102,21 @@ dom_domizable_load_from_element (DOM_DOMIZABLE (test), node); gth_search_set_test (self, GTH_TEST_CHAIN (test)); } + else if (g_strcmp0 (node->tag_name, "sources") == 0) { + DomElement *source_node; + + for (source_node = node->first_child; source_node; source_node = source_node->next_sibling) { + if (g_strcmp0 (source_node->tag_name, "source") == 0) { + GthSearchSource *source; + + source = gth_search_source_new (); + dom_domizable_load_from_element (DOM_DOMIZABLE (source), source_node); + self->priv->sources = g_list_prepend (self->priv->sources, source); + } + } + } } + self->priv->sources = g_list_reverse (self->priv->sources); } @@ -102,15 +125,15 @@ DomDocument *doc, DomElement *root) { - char *uri; + DomElement *sources; + GList *scan; - uri = g_file_get_uri (self->priv->folder); - dom_element_append_child (root, - dom_document_create_element (doc, "folder", - "uri", uri, - "recursive", (self->priv->recursive ? "true" : "false"), - NULL)); - g_free (uri); + sources = dom_document_create_element (doc, "sources", NULL); + for (scan = self->priv->sources; scan; scan = scan->next) { + GthSearchSource *source = scan->data; + dom_element_append_child (sources, dom_domizable_create_element (DOM_DOMIZABLE (source), doc)); + } + dom_element_append_child (root, sources); dom_element_append_child (root, dom_domizable_create_element (DOM_DOMIZABLE (self->priv->test), doc)); } @@ -162,8 +185,7 @@ new_search = gth_search_new (); - gth_search_set_folder (new_search, gth_search_get_folder (search)); - gth_search_set_recursive (new_search, gth_search_is_recursive (search)); + gth_search_set_sources (new_search, gth_search_get_sources (search)); if (search->priv->test != NULL) new_search->priv->test = (GthTestChain*) gth_duplicable_duplicate (GTH_DUPLICABLE (search->priv->test)); @@ -188,8 +210,7 @@ search = GTH_SEARCH (object); - if (search->priv->folder != NULL) - g_object_unref (search->priv->folder); + _g_object_list_unref (search->priv->sources); if (search->priv->test != NULL) g_object_unref (search->priv->test); @@ -234,8 +255,7 @@ gth_search_init (GthSearch *search) { search->priv = gth_search_get_instance_private (search); - search->priv->folder = NULL; - search->priv->recursive = FALSE; + search->priv->sources = NULL; search->priv->test = NULL; } @@ -276,38 +296,36 @@ void -gth_search_set_folder (GthSearch *search, - GFile *folder) +gth_search_set_sources (GthSearch *search, + GList *sources /* GthSearchSource list */) { - if (search->priv->folder != NULL) { - g_object_unref (search->priv->folder); - search->priv->folder = NULL; - } - - if (folder != NULL) - search->priv->folder = g_object_ref (folder); + _g_object_list_unref (search->priv->sources); + search->priv->sources = _g_object_list_ref (sources); } -GFile * -gth_search_get_folder (GthSearch *search) +void +gth_search_set_source (GthSearch *search, + GFile *folder, + gboolean recursive) { - return search->priv->folder; -} + GthSearchSource *source; + _g_object_list_unref (search->priv->sources); + search->priv->sources = NULL; -void -gth_search_set_recursive (GthSearch *search, - gboolean recursive) -{ - search->priv->recursive = recursive; + source = gth_search_source_new (); + gth_search_source_set_folder (source, folder); + gth_search_source_set_recursive (source, recursive); + + search->priv->sources = g_list_prepend (search->priv->sources, source); } -gboolean -gth_search_is_recursive (GthSearch *search) +GList * +gth_search_get_sources (GthSearch *search) { - return search->priv->recursive; + return search->priv->sources; } diff -Nru gthumb-3.8.3/extensions/search/gth-search-editor.c gthumb-3.9.1/extensions/search/gth-search-editor.c --- gthumb-3.8.3/extensions/search/gth-search-editor.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-editor.c 2020-03-07 19:03:13.506954400 +0000 @@ -24,6 +24,7 @@ #include #include #include "gth-search-editor.h" +#include "gth-search-source-selector.h" #define GET_WIDGET(name) _gtk_builder_get_widget (self->priv->builder, (name)) @@ -31,7 +32,6 @@ struct _GthSearchEditorPrivate { GtkBuilder *builder; - GtkWidget *location_chooser; GtkWidget *match_type_combobox; }; @@ -69,7 +69,6 @@ { dialog->priv = gth_search_editor_get_instance_private (dialog); dialog->priv->builder = NULL; - dialog->priv->location_chooser = NULL; dialog->priv->match_type_combobox = NULL; gtk_orientable_set_orientation (GTK_ORIENTABLE (dialog), GTK_ORIENTATION_VERTICAL); } @@ -78,15 +77,26 @@ static void update_sensitivity (GthSearchEditor *self) { - GList *test_selectors; + GList *selectors; int more_selectors; GList *scan; - test_selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("tests_box"))); - more_selectors = (test_selectors != NULL) && (test_selectors->next != NULL); - for (scan = test_selectors; scan; scan = scan->next) + /* sources */ + + selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("sources_box"))); + more_selectors = (selectors != NULL) && (selectors->next != NULL); + for (scan = selectors; scan; scan = scan->next) + gth_search_source_selector_can_remove (GTH_SEARCH_SOURCE_SELECTOR (scan->data), more_selectors); + g_list_free (selectors); + + /* tests */ + + selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("tests_box"))); + more_selectors = (selectors != NULL) && (selectors->next != NULL); + for (scan = selectors; scan; scan = scan->next) gth_test_selector_can_remove (GTH_TEST_SELECTOR (scan->data), more_selectors); - g_list_free (test_selectors); + g_list_free (selectors); + } @@ -102,13 +112,6 @@ gtk_container_set_border_width (GTK_CONTAINER (content), 0); gtk_box_pack_start (GTK_BOX (self), content, TRUE, TRUE, 0); - self->priv->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER, - "show-entry-points", TRUE, - "relief", GTK_RELIEF_NORMAL, - NULL); - gtk_widget_show (self->priv->location_chooser); - gtk_box_pack_start (GTK_BOX (GET_WIDGET ("location_box")), self->priv->location_chooser, TRUE, TRUE, 0); - self->priv->match_type_combobox = gtk_combo_box_text_new (); _gtk_combo_box_append_texts (GTK_COMBO_BOX_TEXT (self->priv->match_type_combobox), _("all the following rules"), @@ -121,7 +124,6 @@ gtk_label_set_use_underline (GTK_LABEL (GET_WIDGET ("match_label")), TRUE); gtk_label_set_mnemonic_widget (GTK_LABEL (GET_WIDGET ("match_label")), self->priv->match_type_combobox); - gtk_label_set_mnemonic_widget (GTK_LABEL (GET_WIDGET ("start_at_label")), self->priv->location_chooser); gth_search_editor_set_search (self, search); } @@ -194,17 +196,71 @@ } +static GtkWidget * +_gth_search_editor_add_source (GthSearchEditor *self, + int pos); + + static void -_gth_search_editor_set_new_search (GthSearchEditor *self) +test_selector_add_source_cb (GthTestSelector *selector, + GthSearchEditor *self) { - GFile *home_location; + int pos; - home_location = g_file_new_for_uri (get_home_uri ()); - gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser), home_location); - g_object_unref (home_location); + pos = _gtk_container_get_pos (GTK_CONTAINER (GET_WIDGET ("sources_box")), (GtkWidget*) selector); + _gth_search_editor_add_source (self, pos == -1 ? -1 : pos + 1); + update_sensitivity (self); +} - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("include_subfolders_checkbutton")), TRUE); - _gtk_container_remove_children (GTK_CONTAINER (GET_WIDGET ("tests_box")), NULL, NULL); + +static void +test_selector_remove_source_cb (GthTestSelector *selector, + GthSearchEditor *self) +{ + gtk_container_remove (GTK_CONTAINER (GET_WIDGET ("sources_box")), (GtkWidget*) selector); + update_sensitivity (self); +} + + +static GtkWidget * +_gth_search_editor_add_source (GthSearchEditor *self, + int pos) +{ + GthSearchSource *source; + GtkWindow *window; + GtkWidget *source_selector; + + source = NULL; + window = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)); + if (window != NULL) + window = gtk_window_get_transient_for (window); + if ((window != NULL) && GTH_IS_BROWSER (window)) { + source = gth_search_source_new (); + gth_search_source_set_folder (source, gth_browser_get_location (GTH_BROWSER (window))); + gth_search_source_set_recursive (source, TRUE); + } + source_selector = gth_search_source_selector_new_with_source (source); + gtk_widget_show (source_selector); + + g_signal_connect (G_OBJECT (source_selector), + "add_source", + G_CALLBACK (test_selector_add_source_cb), + self); + g_signal_connect (G_OBJECT (source_selector), + "remove_source", + G_CALLBACK (test_selector_remove_source_cb), + self); + + gtk_box_pack_start (GTK_BOX (GET_WIDGET ("sources_box")), source_selector, FALSE, FALSE, 0); + + if (pos >= 0) + gtk_box_reorder_child (GTK_BOX (GET_WIDGET ("sources_box")), + source_selector, + pos); + + _g_object_unref (source); + + return source_selector; } @@ -212,40 +268,60 @@ gth_search_editor_set_search (GthSearchEditor *self, GthSearch *search) { - GthTestChain *test; - GthMatchType match_type; - - _gth_search_editor_set_new_search (self); - - if (search == NULL) { - _gth_search_editor_add_test (self, -1); - update_sensitivity (self); - return; + int n_sources; + int n_tests; + GthMatchType match_type = GTH_MATCH_TYPE_NONE; + GList *scan; + + /* sources */ + + _gtk_container_remove_children (GTK_CONTAINER (GET_WIDGET ("sources_box")), NULL, NULL); + n_sources = 0; + + if (search != NULL) { + for (scan = gth_search_get_sources (search); scan; scan = scan->next) { + GthSearchSource *source = scan->data; + GtkWidget *source_selector; + + source_selector = _gth_search_editor_add_source (self, -1); + gth_search_source_selector_set_source (GTH_SEARCH_SOURCE_SELECTOR (source_selector), source); + n_sources += 1; + } } - gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser), gth_search_get_folder (search)); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("include_subfolders_checkbutton")), gth_search_is_recursive (search)); + /* tests */ - test = gth_search_get_test (search); - match_type = (test != NULL) ? gth_test_chain_get_match_type (test) : GTH_MATCH_TYPE_NONE; _gtk_container_remove_children (GTK_CONTAINER (GET_WIDGET ("tests_box")), NULL, NULL); - if (match_type != GTH_MATCH_TYPE_NONE) { - GList *tests; - GList *scan; - - tests = gth_test_chain_get_tests (test); - for (scan = tests; scan; scan = scan->next) { - GthTest *test = scan->data; - GtkWidget *test_selector; + n_tests = 0; + + if (search != NULL) { + GthTestChain *test; - test_selector = _gth_search_editor_add_test (self, -1); - gth_test_selector_set_test (GTH_TEST_SELECTOR (test_selector), test); + test = gth_search_get_test (search); + if (test != NULL) + match_type = gth_test_chain_get_match_type (test); + + if (match_type != GTH_MATCH_TYPE_NONE) { + GList *tests; + GList *scan; + + tests = gth_test_chain_get_tests (test); + for (scan = tests; scan; scan = scan->next) { + GthTest *test = scan->data; + GtkWidget *test_selector; + + test_selector = _gth_search_editor_add_test (self, -1); + gth_test_selector_set_test (GTH_TEST_SELECTOR (test_selector), test); + n_tests += 1; + } + _g_object_list_unref (tests); } - _g_object_list_unref (tests); } - else - _gth_search_editor_add_test (self, -1); + if (n_sources == 0) + _gth_search_editor_add_source (self, -1); + if (n_tests == 0) + _gth_search_editor_add_test (self, -1); gtk_combo_box_set_active (GTK_COMBO_BOX (self->priv->match_type_combobox), (match_type == GTH_MATCH_TYPE_ANY) ? 1 : 0); update_sensitivity (self); @@ -257,22 +333,31 @@ GError **error) { GthSearch *search; - GFile *folder; + GList *sources; GthTest *test; - GList *test_selectors; + GList *selectors; GList *scan; search = gth_search_new (); - folder = gth_location_chooser_get_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser)); - if (folder != NULL) - gth_search_set_folder (search, folder); + /* sources */ + + sources = NULL; + selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("sources_box"))); + for (scan = selectors; scan; scan = scan->next) { + GthSearchSourceSelector *selector = GTH_SEARCH_SOURCE_SELECTOR (scan->data); + sources = g_list_prepend (sources, gth_search_source_selector_get_source (selector)); + } + g_list_free (selectors); + sources = g_list_reverse (sources); + gth_search_set_sources (search, sources); + _g_object_list_unref (sources); - gth_search_set_recursive (search, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("include_subfolders_checkbutton")))); + /* tests */ test = gth_test_chain_new (gtk_combo_box_get_active (GTK_COMBO_BOX (self->priv->match_type_combobox)) + 1, NULL); - test_selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("tests_box"))); - for (scan = test_selectors; scan; scan = scan->next) { + selectors = gtk_container_get_children (GTK_CONTAINER (GET_WIDGET ("tests_box"))); + for (scan = selectors; scan; scan = scan->next) { GthTestSelector *test_selector = GTH_TEST_SELECTOR (scan->data); GthTest *sub_test; @@ -285,8 +370,9 @@ gth_test_chain_add_test (GTH_TEST_CHAIN (test), sub_test); g_object_unref (sub_test); } - g_list_free (test_selectors); + g_list_free (selectors); gth_search_set_test (search, GTH_TEST_CHAIN (test)); + g_object_unref (test); return search; } diff -Nru gthumb-3.8.3/extensions/search/gth-search.h gthumb-3.9.1/extensions/search/gth-search.h --- gthumb-3.8.3/extensions/search/gth-search.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search.h 2020-03-07 19:03:13.506954400 +0000 @@ -51,15 +51,15 @@ GType gth_search_get_type (void) G_GNUC_CONST; GthSearch * gth_search_new (void); -GthSearch * gth_search_new_from_data (void *buffer, +GthSearch * gth_search_new_from_data (void *buffer, gsize count, GError **error); -void gth_search_set_folder (GthSearch *search, - GFile *folder); -GFile * gth_search_get_folder (GthSearch *search); -void gth_search_set_recursive (GthSearch *search, +void gth_search_set_sources (GthSearch *search, + GList *sources /* GthSearchSource list */); +void gth_search_set_source (GthSearch *search, + GFile *folder, gboolean recursive); -gboolean gth_search_is_recursive (GthSearch *search); +GList * gth_search_get_sources (GthSearch *search); void gth_search_set_test (GthSearch *search, GthTestChain *test); GthTestChain * gth_search_get_test (GthSearch *search); diff -Nru gthumb-3.8.3/extensions/search/gth-search-source.c gthumb-3.9.1/extensions/search/gth-search-source.c --- gthumb-3.8.3/extensions/search/gth-search-source.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-source.c 2020-03-07 19:03:13.506954400 +0000 @@ -0,0 +1,198 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include "gth-search-source.h" + + +static void gth_search_source_dom_domizable_interface_init (DomDomizableInterface *iface); +static void gth_search_source_gth_duplicable_interface_init (GthDuplicableInterface *iface); + + +struct _GthSearchSourcePrivate { + GFile *folder; + gboolean recursive; +}; + + +G_DEFINE_TYPE_WITH_CODE (GthSearchSource, + gth_search_source, + G_TYPE_OBJECT, + G_ADD_PRIVATE (GthSearchSource) + G_IMPLEMENT_INTERFACE (DOM_TYPE_DOMIZABLE, + gth_search_source_dom_domizable_interface_init) + G_IMPLEMENT_INTERFACE (GTH_TYPE_DUPLICABLE, + gth_search_source_gth_duplicable_interface_init)) + + +static DomDomizableInterface *dom_domizable_parent_iface = NULL; +static GthDuplicableInterface *gth_duplicable_parent_iface = NULL; + + +static DomElement* +gth_search_source_real_create_element (DomDomizable *base, + DomDocument *doc) +{ + GthSearchSource *self = GTH_SEARCH_SOURCE (base); + char *uri; + DomElement *element; + + g_return_val_if_fail (DOM_IS_DOCUMENT (doc), NULL); + + uri = g_file_get_uri (self->priv->folder); + element = dom_document_create_element (doc, "source", + "uri", uri, + "recursive", (self->priv->recursive ? "true" : "false"), + NULL); + g_free (uri); + + return element; +} + + +static void +gth_search_source_real_load_from_element (DomDomizable *base, + DomElement *element) +{ + GthSearchSource *self = GTH_SEARCH_SOURCE (base); + GFile *folder; + + g_return_if_fail (DOM_IS_ELEMENT (element)); + g_return_if_fail (g_strcmp0 (element->tag_name, "source") == 0); + + folder = g_file_new_for_uri (dom_element_get_attribute (element, "uri")); + gth_search_source_set_folder (self, folder); + g_object_unref (folder); + + gth_search_source_set_recursive (self, (g_strcmp0 (dom_element_get_attribute (element, "recursive"), "true") == 0)); +} + + +static GObject * +gth_search_source_real_duplicate (GthDuplicable *duplicable) +{ + GthSearchSource *source = GTH_SEARCH_SOURCE (duplicable); + GthSearchSource *new_source; + + new_source = gth_search_source_new (); + + gth_search_source_set_folder (new_source, gth_search_source_get_folder (source)); + gth_search_source_set_recursive (new_source, gth_search_source_is_recursive (source)); + + return (GObject *) new_source; +} + + +static void +gth_search_source_finalize (GObject *object) +{ + GthSearchSource *source; + + source = GTH_SEARCH_SOURCE (object); + + if (source->priv->folder != NULL) + g_object_unref (source->priv->folder); + + G_OBJECT_CLASS (gth_search_source_parent_class)->finalize (object); +} + + +static void +gth_search_source_class_init (GthSearchSourceClass *class) +{ + GObjectClass *object_class; + + object_class = G_OBJECT_CLASS (class); + object_class->finalize = gth_search_source_finalize; +} + + +static void +gth_search_source_dom_domizable_interface_init (DomDomizableInterface *iface) +{ + dom_domizable_parent_iface = g_type_interface_peek_parent (iface); + iface->create_element = gth_search_source_real_create_element; + iface->load_from_element = gth_search_source_real_load_from_element; +} + + +static void +gth_search_source_gth_duplicable_interface_init (GthDuplicableInterface *iface) +{ + gth_duplicable_parent_iface = g_type_interface_peek_parent (iface); + iface->duplicate = gth_search_source_real_duplicate; +} + + +static void +gth_search_source_init (GthSearchSource *source) +{ + source->priv = gth_search_source_get_instance_private (source); + source->priv->folder = NULL; + source->priv->recursive = FALSE; +} + + +GthSearchSource * +gth_search_source_new (void) +{ + return (GthSearchSource *) g_object_new (GTH_TYPE_SEARCH_SOURCE, NULL); +} + + +void +gth_search_source_set_folder (GthSearchSource *source, + GFile *folder) +{ + _g_object_ref (folder); + + if (source->priv->folder != NULL) { + g_object_unref (source->priv->folder); + source->priv->folder = NULL; + } + + if (folder != NULL) + source->priv->folder = folder; +} + + +GFile * +gth_search_source_get_folder (GthSearchSource *source) +{ + return source->priv->folder; +} + + +void +gth_search_source_set_recursive (GthSearchSource *source, + gboolean recursive) +{ + source->priv->recursive = recursive; +} + + +gboolean +gth_search_source_is_recursive (GthSearchSource *source) +{ + return source->priv->recursive; +} diff -Nru gthumb-3.8.3/extensions/search/gth-search-source.h gthumb-3.9.1/extensions/search/gth-search-source.h --- gthumb-3.8.3/extensions/search/gth-search-source.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-source.h 2020-03-07 19:03:13.506954400 +0000 @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_SEARCH_SOURCE_H +#define GTH_SEARCH_SOURCE_H + +#include +#include + +#define GTH_TYPE_SEARCH_SOURCE (gth_search_source_get_type ()) +#define GTH_SEARCH_SOURCE(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_SEARCH_SOURCE, GthSearchSource)) +#define GTH_SEARCH_SOURCE_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_SEARCH_SOURCE, GthSearchSourceClass)) +#define GTH_IS_SEARCH_SOURCE(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_SEARCH_SOURCE)) +#define GTH_IS_SEARCH_SOURCE_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_SEARCH_SOURCE)) +#define GTH_SEARCH_SOURCE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_SEARCH_SOURCE, GthSearchSourceClass)) + +typedef struct _GthSearchSource GthSearchSource; +typedef struct _GthSearchSourcePrivate GthSearchSourcePrivate; +typedef struct _GthSearchSourceClass GthSearchSourceClass; + +struct _GthSearchSource +{ + GObject __parent; + GthSearchSourcePrivate *priv; +}; + +struct _GthSearchSourceClass +{ + GObjectClass __parent_class; +}; + +GType gth_search_source_get_type (void) G_GNUC_CONST; +GthSearchSource * gth_search_source_new (void); +void gth_search_source_set_folder (GthSearchSource *source, + GFile *folder); +GFile * gth_search_source_get_folder (GthSearchSource *source); +void gth_search_source_set_recursive (GthSearchSource *source, + gboolean recursive); +gboolean gth_search_source_is_recursive (GthSearchSource *source); + +#endif /* GTH_SEARCH_SOURCE_H */ diff -Nru gthumb-3.8.3/extensions/search/gth-search-source-selector.c gthumb-3.9.1/extensions/search/gth-search-source-selector.c --- gthumb-3.8.3/extensions/search/gth-search-source-selector.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-source-selector.c 2020-03-07 19:03:13.506954400 +0000 @@ -0,0 +1,241 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include +#include "gth-search-source-selector.h" + + +enum { + ADD_SOURCE, + REMOVE_SOURCE, + LAST_SIGNAL +}; + + +struct _GthSearchSourceSelectorPrivate { + GtkWidget *location_chooser; + GtkWidget *recursive_checkbutton; + GtkWidget *add_button; + GtkWidget *remove_button; +}; + + +static guint gth_search_source_selector_signals[LAST_SIGNAL] = { 0 }; + + +G_DEFINE_TYPE_WITH_CODE (GthSearchSourceSelector, + gth_search_source_selector, + GTK_TYPE_BOX, + G_ADD_PRIVATE (GthSearchSourceSelector)) + + +static void +gth_search_source_selector_class_init (GthSearchSourceSelectorClass *klass) +{ + /* signals */ + + gth_search_source_selector_signals[ADD_SOURCE] = + g_signal_new ("add-source", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GthSearchSourceSelectorClass, add_source), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + gth_search_source_selector_signals[REMOVE_SOURCE] = + g_signal_new ("remove-source", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GthSearchSourceSelectorClass, remove_source), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); +} + + +static void +gth_search_source_selector_init (GthSearchSourceSelector *self) +{ + self->priv = gth_search_source_selector_get_instance_private (self); + self->priv->location_chooser = NULL; + self->priv->recursive_checkbutton = NULL; + self->priv->add_button = NULL; + self->priv->remove_button = NULL; + gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_HORIZONTAL); +} + + +static void +add_button_clicked_cb (GtkButton *button, + GthSearchSourceSelector *self) +{ + g_signal_emit (self, gth_search_source_selector_signals[ADD_SOURCE], 0); +} + + +static void +remove_button_clicked_cb (GtkButton *button, + GthSearchSourceSelector *self) +{ + g_signal_emit (self, gth_search_source_selector_signals[REMOVE_SOURCE], 0); +} + + +static void +gth_search_source_selector_construct (GthSearchSourceSelector *self) +{ + GtkWidget *vbox; + GtkWidget *hbox; + + gtk_box_set_spacing (GTK_BOX (self), 6); + gtk_container_set_border_width (GTK_CONTAINER (self), 0); + + self->priv->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER, + "show-entry-points", TRUE, + "show-other", TRUE, + "relief", GTK_RELIEF_NORMAL, + NULL); + gtk_widget_show (self->priv->location_chooser); + + self->priv->recursive_checkbutton = gtk_check_button_new_with_mnemonic(_("_Include sub-folders")); + gtk_widget_show (self->priv->recursive_checkbutton); + + /* add/remove buttons */ + + self->priv->add_button = gtk_button_new_from_icon_name ("list-add-symbolic", GTK_ICON_SIZE_BUTTON); + gtk_button_set_relief (GTK_BUTTON (self->priv->add_button), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (self->priv->add_button, _("Add another location")); + gtk_widget_show_all (self->priv->add_button); + + g_signal_connect (G_OBJECT (self->priv->add_button), + "clicked", + G_CALLBACK (add_button_clicked_cb), + self); + + self->priv->remove_button = gtk_button_new_from_icon_name ("list-remove-symbolic", GTK_ICON_SIZE_BUTTON); + gtk_button_set_relief (GTK_BUTTON (self->priv->remove_button), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (self->priv->remove_button, _("Remove")); + gtk_widget_show_all (self->priv->remove_button); + + g_signal_connect (G_OBJECT (self->priv->remove_button), + "clicked", + G_CALLBACK (remove_button_clicked_cb), + self); + + /**/ + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + gtk_widget_show (vbox); + + hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6); + gtk_widget_show (hbox); + + gtk_box_pack_start (GTK_BOX (hbox), self->priv->location_chooser, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (hbox), self->priv->recursive_checkbutton, FALSE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, FALSE, 0); + gtk_box_pack_start (GTK_BOX (self), vbox, FALSE, FALSE, 0); + + gtk_box_pack_end (GTK_BOX (self), self->priv->add_button, FALSE, FALSE, 0); + gtk_box_pack_end (GTK_BOX (self), self->priv->remove_button, FALSE, FALSE, 0); +} + + +GtkWidget * +gth_search_source_selector_new (void) +{ + GthSearchSourceSelector *self; + + self = g_object_new (GTH_TYPE_SEARCH_SOURCE_SELECTOR, NULL); + gth_search_source_selector_construct (self); + gth_search_source_selector_set_source (self, NULL); + + return (GtkWidget *) self; +} + + +GtkWidget * +gth_search_source_selector_new_with_source (GthSearchSource *source) +{ + GthSearchSourceSelector *self; + + self = g_object_new (GTH_TYPE_SEARCH_SOURCE_SELECTOR, NULL); + gth_search_source_selector_construct (self); + gth_search_source_selector_set_source (self, source); + + return (GtkWidget *) self; +} + + +void +gth_search_source_selector_set_source (GthSearchSourceSelector *self, + GthSearchSource *source) +{ + GFile *folder; + gboolean recursive; + + if (source != NULL) { + folder = _g_object_ref (gth_search_source_get_folder (source)); + recursive = gth_search_source_is_recursive (source); + } + else { + folder = NULL; + recursive = TRUE; + } + + if (folder == NULL) + folder = g_file_new_for_uri (_g_uri_get_home ()); + + gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser), folder); + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->priv->recursive_checkbutton), recursive); +} + + +GthSearchSource * +gth_search_source_selector_get_source (GthSearchSourceSelector *self) +{ + GthSearchSource *source; + + source = gth_search_source_new (); + gth_search_source_set_folder (source, gth_location_chooser_get_current (GTH_LOCATION_CHOOSER (self->priv->location_chooser))); + gth_search_source_set_recursive (source, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->priv->recursive_checkbutton))); + + return source; +} + + +void +gth_search_source_selector_can_remove (GthSearchSourceSelector *self, + gboolean value) +{ + gtk_widget_set_sensitive (self->priv->remove_button, value); +} + + +void +gth_search_source_selector_focus (GthSearchSourceSelector *self) +{ + gtk_widget_grab_focus (self->priv->location_chooser); +} diff -Nru gthumb-3.8.3/extensions/search/gth-search-source-selector.h gthumb-3.9.1/extensions/search/gth-search-source-selector.h --- gthumb-3.8.3/extensions/search/gth-search-source-selector.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-source-selector.h 2020-03-07 19:03:13.506954400 +0000 @@ -0,0 +1,66 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_SEARCH_SOURCE_SELECTOR_H +#define GTH_SEARCH_SOURCE_SELECTOR_H + +#include +#include "gth-search-source.h" + +G_BEGIN_DECLS + +#define GTH_TYPE_SEARCH_SOURCE_SELECTOR (gth_search_source_selector_get_type ()) +#define GTH_SEARCH_SOURCE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_SEARCH_SOURCE_SELECTOR, GthSearchSourceSelector)) +#define GTH_SEARCH_SOURCE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTH_TYPE_SEARCH_SOURCE_SELECTOR, GthSearchSourceSelectorClass)) +#define GTH_IS_SEARCH_SOURCE_SELECTOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_SEARCH_SOURCE_SELECTOR)) +#define GTH_IS_SEARCH_SOURCE_SELECTOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTH_TYPE_SEARCH_SOURCE_SELECTOR)) +#define GTH_SEARCH_SOURCE_SELECTOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTH_TYPE_SEARCH_SOURCE_SELECTOR, GthSearchSourceSelectorClass)) + +typedef struct _GthSearchSourceSelector GthSearchSourceSelector; +typedef struct _GthSearchSourceSelectorClass GthSearchSourceSelectorClass; +typedef struct _GthSearchSourceSelectorPrivate GthSearchSourceSelectorPrivate; + +struct _GthSearchSourceSelector { + GtkBox parent_instance; + GthSearchSourceSelectorPrivate * priv; +}; + +struct _GthSearchSourceSelectorClass { + GtkBoxClass parent_class; + + void (*add_source) (GthSearchSourceSelector *selector); + void (*remove_source) (GthSearchSourceSelector *selector); +}; + +GType gth_search_source_selector_get_type (void); +GtkWidget * gth_search_source_selector_new (void); +GtkWidget * gth_search_source_selector_new_with_source (GthSearchSource *source); +void gth_search_source_selector_set_source (GthSearchSourceSelector *selector, + GthSearchSource *source); +GthSearchSource * + gth_search_source_selector_get_source (GthSearchSourceSelector *selector); +void gth_search_source_selector_can_remove (GthSearchSourceSelector *selector, + gboolean value); +void gth_search_source_selector_focus (GthSearchSourceSelector *self); + +G_END_DECLS + +#endif /* GTH_SEARCH_SOURCE_SELECTOR_H */ diff -Nru gthumb-3.8.3/extensions/search/gth-search-task.c gthumb-3.9.1/extensions/search/gth-search-task.c --- gthumb-3.8.3/extensions/search/gth-search-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/gth-search-task.c 2020-03-07 19:03:13.506954400 +0000 @@ -24,6 +24,7 @@ #include #include #include +#include "gth-search-source.h" #include "gth-search-task.h" @@ -39,6 +40,7 @@ GtkWidget *dialog; GthFileSource *file_source; gsize n_files; + GList *current_location; }; @@ -63,10 +65,10 @@ task = GTH_SEARCH_TASK (object); - g_object_unref (task->priv->file_source); - g_object_unref (task->priv->search); - g_object_unref (task->priv->test); - g_object_unref (task->priv->search_catalog); + _g_object_unref (task->priv->file_source); + _g_object_unref (task->priv->search); + _g_object_unref (task->priv->test); + _g_object_unref (task->priv->search_catalog); if (task->priv->browser != NULL) g_object_weak_unref (G_OBJECT (task->priv->browser), browser_unref_cb, task); @@ -124,34 +126,13 @@ static void -done_func (GObject *object, - GError *error, - gpointer user_data) +_gth_search_task_save_search_result (GthSearchTask *task) { - GthSearchTask *task = user_data; DomDocument *doc; char *data; gsize size; GFile *search_result_real_file; - gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), NULL); - - task->priv->error = NULL; - if (error != NULL) { - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { - task->priv->error = g_error_new_literal (GTH_TASK_ERROR, GTH_TASK_ERROR_CANCELLED, ""); - g_error_free (error); - - /* reset the cancellable because it's re-used below to - * save the partial result. */ - g_cancellable_reset (gth_task_get_cancellable (GTH_TASK (task))); - } - else - task->priv->error = error; - } - - /* save the search result */ - doc = dom_document_new (); dom_element_append_child (DOM_ELEMENT (doc), dom_domizable_create_element (DOM_DOMIZABLE (task->priv->search), doc)); data = dom_document_dump (doc, &size); @@ -172,6 +153,38 @@ static void +_gth_search_task_search_current_location (GthSearchTask *task); + + +static void +done_func (GObject *object, + GError *error, + gpointer user_data) +{ + GthSearchTask *task = user_data; + + task->priv->error = NULL; + if (error != NULL) { + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + task->priv->error = g_error_new_literal (GTH_TASK_ERROR, GTH_TASK_ERROR_CANCELLED, ""); + g_error_free (error); + + /* reset the cancellable because it's re-used below to + * save the partial result. */ + g_cancellable_reset (gth_task_get_cancellable (GTH_TASK (task))); + } + else + task->priv->error = error; + _gth_search_task_save_search_result (task); + return; + } + + task->priv->current_location = g_list_next (task->priv->current_location); + _gth_search_task_search_current_location (task); +} + + +static void update_secondary_text (GthSearchTask *task) { char *format_str; @@ -257,21 +270,65 @@ static void +_gth_search_task_search_current_location (GthSearchTask *task) +{ + GthSearchSource *search_location; + GSettings *settings; + GString *attributes; + const char *test_attributes; + + if (task->priv->current_location == NULL) { + gth_info_bar_set_secondary_text (GTH_INFO_BAR (task->priv->dialog), NULL); + _gth_search_task_save_search_result (task); + return; + } + + settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + task->priv->show_hidden_files = g_settings_get_boolean (settings, PREF_BROWSER_SHOW_HIDDEN_FILES); + + search_location = GTH_SEARCH_SOURCE (task->priv->current_location->data); + task->priv->file_source = gth_main_get_file_source (gth_search_source_get_folder (search_location)); + gth_file_source_set_cancellable (task->priv->file_source, gth_task_get_cancellable (GTH_TASK (task))); + + attributes = g_string_new (g_settings_get_boolean (settings, PREF_BROWSER_FAST_FILE_TYPE) ? GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE : GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE); + test_attributes = gth_test_get_attributes (GTH_TEST (task->priv->test)); + if (test_attributes[0] != '\0') { + g_string_append (attributes, ","); + g_string_append (attributes, test_attributes); + } + + task->priv->io_operation = TRUE; + gth_file_source_for_each_child (task->priv->file_source, + gth_search_source_get_folder (search_location), + gth_search_source_is_recursive (search_location), + attributes->str, + start_dir_func, + for_each_file_func, + done_func, + task); + + g_string_free (attributes, TRUE); + g_object_unref (settings); +} + + +static void browser_location_ready_cb (GthBrowser *browser, GFile *folder, gboolean error, GthSearchTask *task) { - GtkWidget *button; + GtkWidget *button; InfoBarData *dialog_data; - GSettings *settings; - GString *attributes; - const char *test_attributes; + + if (! _g_file_equal (folder, task->priv->search_catalog)) + return; g_signal_handler_disconnect (task->priv->browser, task->priv->location_ready_id); if (error) { - gtk_widget_hide (task->priv->dialog); + if (task->priv->dialog != NULL) + gtk_widget_hide (task->priv->dialog); gth_task_completed (GTH_TASK (task), NULL); return; } @@ -324,32 +381,8 @@ g_object_unref (general_filter); } - settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); - - task->priv->show_hidden_files = g_settings_get_boolean (settings, PREF_BROWSER_SHOW_HIDDEN_FILES); - task->priv->io_operation = TRUE; - - task->priv->file_source = gth_main_get_file_source (gth_search_get_folder (task->priv->search)); - gth_file_source_set_cancellable (task->priv->file_source, gth_task_get_cancellable (GTH_TASK (task))); - - attributes = g_string_new (g_settings_get_boolean (settings, PREF_BROWSER_FAST_FILE_TYPE) ? GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE : GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE); - test_attributes = gth_test_get_attributes (GTH_TEST (task->priv->test)); - if (test_attributes[0] != '\0') { - g_string_append (attributes, ","); - g_string_append (attributes, test_attributes); - } - - gth_file_source_for_each_child (task->priv->file_source, - gth_search_get_folder (task->priv->search), - gth_search_is_recursive (task->priv->search), - attributes->str, - start_dir_func, - for_each_file_func, - done_func, - task); - - g_object_unref (settings); - g_string_free (attributes, TRUE); + task->priv->current_location = gth_search_get_sources (task->priv->search); + _gth_search_task_search_current_location (task); } @@ -462,6 +495,7 @@ task->priv->dialog = NULL; task->priv->file_source = NULL; task->priv->n_files = 0; + task->priv->current_location = NULL; } diff -Nru gthumb-3.8.3/extensions/search/main.c gthumb-3.9.1/extensions/search/main.c --- gthumb-3.8.3/extensions/search/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/main.c 2020-03-07 19:03:13.506954400 +0000 @@ -30,6 +30,7 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-catalog-load-from-data", 10, G_CALLBACK (search__gth_catalog_load_from_data_cb), NULL); + gth_hook_add_callback ("gth-catalog-new-for-uri", 10, G_CALLBACK (search__gth_catalog_new_for_uri_cb), NULL); gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (search__gth_browser_construct_cb), NULL); gth_hook_add_callback ("gth-browser-update-extra-widget", 20, G_CALLBACK (search__gth_browser_update_extra_widget_cb), NULL); gth_hook_add_callback ("dlg-catalog-properties", 10, G_CALLBACK (search__dlg_catalog_properties), NULL); diff -Nru gthumb-3.8.3/extensions/search/meson.build gthumb-3.9.1/extensions/search/meson.build --- gthumb-3.8.3/extensions/search/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/meson.build 2020-03-07 19:03:13.506954400 +0000 @@ -4,6 +4,8 @@ 'gth-search.c', 'gth-search-editor.c', 'gth-search-editor-dialog.c', + 'gth-search-source.c', + 'gth-search-source-selector.c', 'gth-search-task.c', 'main.c' ) diff -Nru gthumb-3.8.3/extensions/search/search.extension.desktop.in.in gthumb-3.9.1/extensions/search/search.extension.desktop.in.in --- gthumb-3.8.3/extensions/search/search.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/search/search.extension.desktop.in.in 2020-03-07 19:03:13.506954400 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Search Comment=File search tool. -Authors=gthumb development team -Copyright=Copyright © 2008-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2008-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=edit-find Category=Browser diff -Nru gthumb-3.8.3/extensions/selections/actions.c gthumb-3.9.1/extensions/selections/actions.c --- gthumb-3.8.3/extensions/selections/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/actions.c 2020-03-07 19:03:13.506954400 +0000 @@ -27,8 +27,8 @@ void -gth_browser_activate_show_selection (GthBrowser *browser, - int n_selection) +gth_browser_show_selection (GthBrowser *browser, + int n_selection) { char *uri; GFile *location; @@ -36,7 +36,7 @@ uri = g_strdup_printf ("selection:///%d", n_selection); location = g_file_new_for_uri (uri); - if (_g_file_equal_uris (location, gth_browser_get_location (browser))) { + if (_g_file_equal (location, gth_browser_get_location (browser))) { if (! gth_browser_restore_state (browser)) gth_browser_load_location (browser, location); } @@ -51,35 +51,18 @@ void -gth_browser_activate_go_to_selection_1 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_go_to_selection (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - gth_browser_activate_show_selection (GTH_BROWSER (user_data), 1); + gth_browser_show_selection (GTH_BROWSER (user_data), + g_variant_get_int32 (parameter)); } void -gth_browser_activate_go_to_selection_2 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - gth_browser_activate_show_selection (GTH_BROWSER (user_data), 2); -} - - -void -gth_browser_activate_go_to_selection_3 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - gth_browser_activate_show_selection (GTH_BROWSER (user_data), 3); -} - - -void -gth_browser_activate_add_to_selection (GthBrowser *browser, - int n_selection) +gth_browser_add_to_selection(GthBrowser *browser, + int n_selection) { char *uri; GFile *folder; @@ -103,28 +86,12 @@ void -gth_browser_activate_add_to_selection_1 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - gth_browser_activate_add_to_selection (GTH_BROWSER (user_data), 1); -} - -void -gth_browser_activate_add_to_selection_2 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - gth_browser_activate_add_to_selection (GTH_BROWSER (user_data), 2); -} - - -void -gth_browser_activate_add_to_selection_3 (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_add_to_selection (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - gth_browser_activate_add_to_selection (GTH_BROWSER (user_data), 3); + gth_browser_add_to_selection (GTH_BROWSER (user_data), + g_variant_get_int32 (parameter)); } @@ -156,8 +123,8 @@ void -gth_browser_activate_remove_from_selection (GthBrowser *browser, - int n_selection) +gth_browser_remove_from_selection (GthBrowser *browser, + int n_selection) { char *uri; GFile *folder; @@ -181,6 +148,16 @@ void +gth_browser_activate_remove_from_selection (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_browser_remove_from_selection (GTH_BROWSER (user_data), + g_variant_get_int32 (parameter)); +} + + +void gth_browser_activate_remove_from_current_selection (GSimpleAction *action, GVariant *parameter, gpointer user_data) @@ -190,5 +167,5 @@ n_selection = _g_file_get_n_selection (gth_browser_get_location (browser)); if (n_selection >= 0) - gth_browser_activate_remove_from_selection (browser, n_selection); + gth_browser_remove_from_selection (browser, n_selection); } diff -Nru gthumb-3.8.3/extensions/selections/actions.h gthumb-3.9.1/extensions/selections/actions.h --- gthumb-3.8.3/extensions/selections/actions.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/actions.h 2020-03-07 19:03:13.506954400 +0000 @@ -24,20 +24,17 @@ #include -void gth_browser_activate_show_selection (GthBrowser *browser, - int n_selection); -void gth_browser_activate_add_to_selection (GthBrowser *browser, - int n_selection); -void gth_browser_activate_remove_from_selection (GthBrowser *browser, - int n_selection); +void gth_browser_show_selection (GthBrowser *browser, + int n_selection); +void gth_browser_add_to_selection (GthBrowser *browser, + int n_selection); +void gth_browser_remove_from_selection (GthBrowser *browser, + int n_selection); -DEF_ACTION_CALLBACK (gth_browser_activate_go_to_selection_1) -DEF_ACTION_CALLBACK (gth_browser_activate_go_to_selection_2) -DEF_ACTION_CALLBACK (gth_browser_activate_go_to_selection_3) -DEF_ACTION_CALLBACK (gth_browser_activate_add_to_selection_1) -DEF_ACTION_CALLBACK (gth_browser_activate_add_to_selection_2) -DEF_ACTION_CALLBACK (gth_browser_activate_add_to_selection_3) -DEF_ACTION_CALLBACK (gth_browser_activate_go_to_file_container) +DEF_ACTION_CALLBACK (gth_browser_activate_go_to_selection) +DEF_ACTION_CALLBACK (gth_browser_activate_add_to_selection) +DEF_ACTION_CALLBACK (gth_browser_activate_remove_from_selection) DEF_ACTION_CALLBACK (gth_browser_activate_remove_from_current_selection) +DEF_ACTION_CALLBACK (gth_browser_activate_go_to_file_container) #endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/selections/callbacks.c gthumb-3.9.1/extensions/selections/callbacks.c --- gthumb-3.8.3/extensions/selections/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/callbacks.c 2020-03-07 19:03:13.506954400 +0000 @@ -28,6 +28,7 @@ #include "callbacks.h" #include "gth-file-source-selections.h" #include "gth-selections-manager.h" +#include "shortcuts.h" #define BROWSER_DATA_KEY "selections-browser-data" @@ -35,24 +36,51 @@ static const GActionEntry actions[] = { - { "add-to-selection-1", gth_browser_activate_add_to_selection_1 }, - { "add-to-selection-2", gth_browser_activate_add_to_selection_2 }, - { "add-to-selection-3", gth_browser_activate_add_to_selection_3 }, - { "go-to-selection-1", gth_browser_activate_go_to_selection_1 }, - { "go-to-selection-2", gth_browser_activate_go_to_selection_2 }, - { "go-to-selection-3", gth_browser_activate_go_to_selection_3 }, + { "add-to-selection-1", gth_browser_activate_add_to_selection, "i", "1" }, + { "add-to-selection-2", gth_browser_activate_add_to_selection, "i", "2" }, + { "add-to-selection-3", gth_browser_activate_add_to_selection, "i", "3" }, + + { "go-to-selection-1", gth_browser_activate_go_to_selection, "i", "1" }, + { "go-to-selection-2", gth_browser_activate_go_to_selection, "i", "2" }, + { "go-to-selection-3", gth_browser_activate_go_to_selection, "i", "3" }, + + { "remove-to-selection-1", gth_browser_activate_remove_from_selection, "i", "1" }, + { "remove-to-selection-2", gth_browser_activate_remove_from_selection, "i", "2" }, + { "remove-to-selection-3", gth_browser_activate_remove_from_selection, "i", "3" }, + { "go-to-container-from-selection", gth_browser_activate_go_to_file_container }, { "remove-from-selection", gth_browser_activate_remove_from_current_selection } }; +static const GthShortcut shortcuts[] = { + { "add-to-selection-1", N_("Add to selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "1" }, + { "add-to-selection-2", N_("Add to selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "2" }, + { "add-to-selection-3", N_("Add to selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "3" }, + + { "remove-from-selection-1", N_("Remove from selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "1" }, + { "remove-from-selection-2", N_("Remove from selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "2" }, + { "remove-from-selection-3", N_("Remove from selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "3" }, + + { "go-to-selection-1", N_("Show selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "1" }, + { "go-to-selection-2", N_("Show selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "2" }, + { "go-to-selection-3", N_("Show selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "3" }, + + /* Not real actions, used in the shorcut window for documentation. */ + + { "add-to-selection-doc", N_("Add to selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_DOC, GTH_SHORTCUT_CATEGORY_SELECTIONS, "1...3" }, + { "remove-from-selection-doc", N_("Remove from selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_DOC, GTH_SHORTCUT_CATEGORY_SELECTIONS, "1...3" }, + { "go-to-selection-doc", N_("Show selection"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_DOC, GTH_SHORTCUT_CATEGORY_SELECTIONS, "1...3" }, +}; + + static const GthMenuEntry file_list_popup_open_entries[] = { - { N_("Open Folder"), "win.go-to-container-from-selection", "end" }, + { N_("Open Folder"), "win.go-to-container-from-selection" }, }; static const GthMenuEntry file_list_popup_delete_entries[] = { - { N_("Remove from Selection"), "win.remove-from-selection", "Delete" }, + { N_("Remove from Selection"), "win.remove-from-selection" }, }; @@ -86,7 +114,7 @@ g_return_if_fail (n_selection >= 0 && n_selection <= N_SELECTIONS - 1); - gth_browser_activate_show_selection (data->browser, n_selection + 1); + gth_browser_show_selection (data->browser, n_selection + 1); } @@ -179,6 +207,9 @@ actions, G_N_ELEMENTS (actions), browser); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); filter_bar = gth_browser_get_filterbar (browser); filter_bar_extra_area = gth_filterbar_get_extra_area (GTH_FILTERBAR (filter_bar)); @@ -193,10 +224,10 @@ void -selections__gth_browser_update_sensitivity_cb (GthBrowser *browser) +selections__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected) { BrowserData *data; - int n_selected; if (! GTH_IS_FILE_SOURCE_SELECTIONS (gth_browser_get_location_source (browser))) return; @@ -204,7 +235,6 @@ data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); g_return_if_fail (data != NULL); - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); gth_window_enable_action (GTH_WINDOW (browser), "go-to-container-from-selection", n_selected == 1); } @@ -256,9 +286,9 @@ case GDK_KEY_3: /* Alt+Shift+n => remove from selection n */ if ((event->state & modifiers) == (GDK_SHIFT_MASK|GDK_MOD1_MASK)) - gth_browser_activate_remove_from_selection (browser, keyval - GDK_KEY_1 + 1); + gth_browser_remove_from_selection (browser, keyval - GDK_KEY_1 + 1); else /* Alt+n => add to selection n */ - gth_browser_activate_add_to_selection (browser, keyval - GDK_KEY_1 + 1); + gth_browser_add_to_selection (browser, keyval - GDK_KEY_1 + 1); result = GINT_TO_POINTER (1); break; } @@ -273,7 +303,7 @@ case GDK_KEY_2: case GDK_KEY_3: /* Control+n => go to selection n */ - gth_browser_activate_show_selection (browser, keyval - GDK_KEY_1 + 1); + gth_browser_show_selection (browser, keyval - GDK_KEY_1 + 1); result = GINT_TO_POINTER (1); break; } @@ -285,14 +315,10 @@ void selections__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location_data, - const GError *error) + GthFileData *location_data) { BrowserData *data; - if ((location_data == NULL) || (error != NULL)) - return; - data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); if (GTH_IS_FILE_SOURCE_SELECTIONS (gth_browser_get_location_source (browser))) { diff -Nru gthumb-3.8.3/extensions/selections/callbacks.h gthumb-3.9.1/extensions/selections/callbacks.h --- gthumb-3.8.3/extensions/selections/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/callbacks.h 2020-03-07 19:03:13.506954400 +0000 @@ -25,12 +25,12 @@ #include void selections__gth_browser_construct_cb (GthBrowser *browser); -void selections__gth_browser_update_sensitivity_cb (GthBrowser *browser); +void selections__gth_browser_selection_changed_cb (GthBrowser *browser, + int n_selected); gpointer selections__gth_browser_file_list_key_press_cb (GthBrowser *browser, GdkEventKey *event); void selections__gth_browser_load_location_after_cb (GthBrowser *browser, - GthFileData *location_data, - const GError *error); + GthFileData *location_data); void selections__gth_browser_update_extra_widget_cb (GthBrowser *browser); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/selections/gth-file-source-selections.c gthumb-3.9.1/extensions/selections/gth-file-source-selections.c --- gthumb-3.8.3/extensions/selections/gth-file-source-selections.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/gth-file-source-selections.c 2020-03-07 19:03:13.506954400 +0000 @@ -229,14 +229,6 @@ static gboolean -gth_file_source_selections_can_cut (GthFileSource *file_source, - GFile *file) -{ - return g_file_has_uri_scheme (file, "selection"); -} - - -static gboolean gth_file_source_selections_is_reorderable (GthFileSource *file_source) { return TRUE; @@ -292,6 +284,32 @@ } +static GdkDragAction +gth_file_source_selections_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file) +{ + GdkDragAction actions = 0; + char *file_uri; + char *file_scheme; + + file_uri = g_file_get_uri (file); + file_scheme = gth_main_get_source_scheme (file_uri); + + if (_g_file_has_scheme (destination, "selection") + && _g_str_equal (file_scheme, "file")) + { + /* Copy files into a selection. */ + actions = GDK_ACTION_COPY; + } + + g_free (file_scheme); + g_free (file_uri); + + return actions; +} + + static void gth_file_source_selections_class_init (GthFileSourceSelectionsClass *class) { @@ -307,12 +325,12 @@ file_source_class->rename = gth_file_source_selections_rename; file_source_class->for_each_child = gth_file_source_selections_for_each_child; file_source_class->copy = gth_file_source_selections_copy; - file_source_class->can_cut = gth_file_source_selections_can_cut; file_source_class->is_reorderable = gth_file_source_selections_is_reorderable; file_source_class->reorder = gth_file_source_selections_reorder; file_source_class->remove = gth_file_source_selections_remove; file_source_class->deleted_from_disk = gth_file_source_selections_deleted_from_disk; file_source_class->shows_extra_widget = gth_file_source_selections_shows_extra_widget; + file_source_class->get_drop_actions = gth_file_source_selections_get_drop_actions; } diff -Nru gthumb-3.8.3/extensions/selections/gth-metadata-provider-selections.h gthumb-3.9.1/extensions/selections/gth-metadata-provider-selections.h --- gthumb-3.8.3/extensions/selections/gth-metadata-provider-selections.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/gth-metadata-provider-selections.h 2020-03-07 19:03:13.506954400 +0000 @@ -43,7 +43,7 @@ struct _GthMetadataProviderSelectionsClass { - GthMetadataProviderClass __parent_class; + GthMetadataProviderClass __parent_class; }; GType gth_metadata_provider_selections_get_type (void) G_GNUC_CONST; diff -Nru gthumb-3.8.3/extensions/selections/main.c gthumb-3.9.1/extensions/selections/main.c --- gthumb-3.8.3/extensions/selections/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/main.c 2020-03-07 19:03:13.510287800 +0000 @@ -26,6 +26,12 @@ #include "callbacks.h" #include "gth-file-source-selections.h" #include "gth-metadata-provider-selections.h" +#include "shortcuts.h" + + +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_SELECTIONS, N_("Selections"), 17 }, +}; G_MODULE_EXPORT void @@ -33,8 +39,9 @@ { gth_main_register_file_source (GTH_TYPE_FILE_SOURCE_SELECTIONS); gth_main_register_metadata_provider (GTH_TYPE_METADATA_PROVIDER_SELECTIONS); + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (selections__gth_browser_construct_cb), NULL); - gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (selections__gth_browser_update_sensitivity_cb), NULL); + gth_hook_add_callback ("gth-browser-selection-changed", 10, G_CALLBACK (selections__gth_browser_selection_changed_cb), NULL); gth_hook_add_callback ("gth-browser-file-list-key-press", 10, G_CALLBACK (selections__gth_browser_file_list_key_press_cb), NULL); gth_hook_add_callback ("gth-browser-load-location-after", 10, G_CALLBACK (selections__gth_browser_load_location_after_cb), NULL); gth_hook_add_callback ("gth-browser-update-extra-widget", 20, G_CALLBACK (selections__gth_browser_update_extra_widget_cb), NULL); diff -Nru gthumb-3.8.3/extensions/selections/selections.extension.desktop.in.in gthumb-3.9.1/extensions/selections/selections.extension.desktop.in.in --- gthumb-3.8.3/extensions/selections/selections.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/selections.extension.desktop.in.in 2020-03-07 19:03:13.510287800 +0000 @@ -1,8 +1,8 @@ [Extension] Name=Selections Comment=Advanced file selection. -Authors=gthumb development team -Copyright=Copyright © 2008-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2008-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=emblem-flag-gray Category=Browser diff -Nru gthumb-3.8.3/extensions/selections/shortcuts.h gthumb-3.9.1/extensions/selections/shortcuts.h --- gthumb-3.8.3/extensions/selections/shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/selections/shortcuts.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,27 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef SELECTIONS_SHORTCUTS_H +#define SELECTIONS_SHORTCUTS_H + +#define GTH_SHORTCUT_CATEGORY_SELECTIONS "selections" + +#endif /* SELECTIONS_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/extensions/slideshow/actions.c gthumb-3.9.1/extensions/slideshow/actions.c --- gthumb-3.8.3/extensions/slideshow/actions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/actions.c 2020-03-07 19:03:13.510287800 +0000 @@ -148,3 +148,40 @@ _g_object_list_unref (file_list); _gtk_tree_path_list_free (items); } + + +void +gth_slideshow_activate_close (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_slideshow_close (GTH_SLIDESHOW (user_data)); +} + + +void +gth_slideshow_activate_toggle_pause (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_slideshow_toggle_pause (GTH_SLIDESHOW (user_data)); +} + + +void +gth_slideshow_activate_next_image (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_slideshow_next_image_or_resume (GTH_SLIDESHOW (user_data)); +} + + +void +gth_slideshow_activate_previous_image (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_slideshow_load_prev_image (GTH_SLIDESHOW (user_data)); +} + diff -Nru gthumb-3.8.3/extensions/slideshow/actions.h gthumb-3.9.1/extensions/slideshow/actions.h --- gthumb-3.8.3/extensions/slideshow/actions.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/actions.h 2020-03-07 19:03:13.510287800 +0000 @@ -25,5 +25,9 @@ #include DEF_ACTION_CALLBACK (gth_browser_activate_slideshow) +DEF_ACTION_CALLBACK (gth_slideshow_activate_close) +DEF_ACTION_CALLBACK (gth_slideshow_activate_toggle_pause) +DEF_ACTION_CALLBACK (gth_slideshow_activate_next_image) +DEF_ACTION_CALLBACK (gth_slideshow_activate_previous_image) #endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/slideshow/callbacks.c gthumb-3.9.1/extensions/slideshow/callbacks.c --- gthumb-3.8.3/extensions/slideshow/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/callbacks.c 2020-03-07 19:03:13.510287800 +0000 @@ -28,6 +28,7 @@ #include "callbacks.h" #include "gth-slideshow-preferences.h" #include "preferences.h" +#include "shortcuts.h" static const GActionEntry actions[] = { @@ -35,6 +36,15 @@ }; +static const GthShortcut shortcuts[] = { + { "slideshow", N_("Start presentation"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "F5" }, + { "slideshow-close", N_("Terminate presentation"), GTH_SHORTCUT_CONTEXT_SLIDESHOW, GTH_SHORTCUT_CATEGORY_SLIDESHOW, "Escape" }, + { "slideshow-toggle-pause", N_("Pause/Resume presentation"), GTH_SHORTCUT_CONTEXT_SLIDESHOW, GTH_SHORTCUT_CATEGORY_SLIDESHOW, "p" }, + { "slideshow-next-image", N_("Show next file"), GTH_SHORTCUT_CONTEXT_SLIDESHOW, GTH_SHORTCUT_CATEGORY_SLIDESHOW, "space" }, + { "slideshow-previous-image", N_("Show previous file"), GTH_SHORTCUT_CONTEXT_SLIDESHOW, GTH_SHORTCUT_CATEGORY_SLIDESHOW, "b" }, +}; + + void ss__gth_browser_construct_cb (GthBrowser *browser) { @@ -45,12 +55,16 @@ G_N_ELEMENTS (actions), browser); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); + gth_browser_add_header_bar_button (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW, "view-presentation-symbolic", _("Presentation"), "win.slideshow", - "F5"); + NULL); } @@ -345,7 +359,7 @@ gtk_widget_hide (gth_slideshow_preferences_get_widget (GTH_SLIDESHOW_PREFERENCES (slideshow_preferences), "transition_box")); #endif /* ! HAVE_CLUTTER */ - label = gtk_label_new (_("Slideshow")); + label = gtk_label_new (_("Presentation")); gtk_widget_show (label); gtk_notebook_append_page (GTK_NOTEBOOK (_gtk_builder_get_widget (builder, "properties_notebook")), slideshow_preferences, label); diff -Nru gthumb-3.8.3/extensions/slideshow/data/ui/slideshow-preferences.ui gthumb-3.9.1/extensions/slideshow/data/ui/slideshow-preferences.ui --- gthumb-3.8.3/extensions/slideshow/data/ui/slideshow-preferences.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/data/ui/slideshow-preferences.ui 2020-03-07 19:03:13.510287800 +0000 @@ -1,5 +1,5 @@ - + @@ -18,33 +18,34 @@ - + True False - 12 + vertical + 20 - + True False + vertical 6 - + True False + vertical - False True False - 0 True True False - 0 _Personalize True + 0 @@ -61,8 +62,8 @@ True False + Presentation 0 - Slideshow @@ -81,58 +82,72 @@ - + True False - 12 + 12 + vertical + 6 - + True False 6 - + True False - 6 - - - True - False - _Transition effect: - True - - - False - True - 0 - - - - - + _Transition effect: + True False - False + True 0 - + + + + + False + False + 0 + + + + + True + False + 6 + + + _Change automatically, every + True + True + False + True + True + + + False + True + 0 + + + + True False 6 - - _Change automatically, every - False + True True - False - True - 0.5 - True + + delay_adjustment + 1 False @@ -141,36 +156,10 @@ - + True False - 6 - - - True - True - - delay_adjustment - 1 - - - False - True - 0 - - - - - True - False - seconds - - - False - True - 1 - - + seconds False @@ -181,49 +170,50 @@ False - False - 1 - - - - - _Restart when finished - False - True - True - False - True - 0 - True - - - False - False - 2 - - - - - R_andom order - False - True - True - False - True - 0 - True - - - False True - 3 + 1 + + False + False + 1 + + + + + _Restart when finished + True + True + False + True + True + + + False + False + 2 + + + + + R_andom order + True + True + False + True + True + + + False + True + 3 + - False + True True 1 @@ -236,15 +226,16 @@ - + False + vertical 6 True False - 0 Playlist + 0 @@ -256,108 +247,97 @@ - + True False - 12 + 12 + vertical + 6 - + True False 6 - + + 100 True - False - 6 + True + in - - 100 + True True - in + files_liststore + False + True + 1 + + + - - True - True - files_liststore - False - True - 1 - - + + + + + 0 + - - - - - 0 - - - - - - 1 - - - + + + 1 + - - True - True - 0 - + + + True + True + 0 + + + + + True + False + vertical + 6 - + True - False - 6 + True + True + Add files to the playlist - - False + True - True - True - Add files to the playlist - - - True - False - list-add-symbolic - - + False + list-add-symbolic - - False - True - 0 - + + + False + True + 0 + + + + + True + True + True + Remove the selected files - - False + True - True - True - Remove the selected files - - - True - False - list-remove-symbolic - - + False + list-remove-symbolic - - False - True - 1 - @@ -368,12 +348,17 @@ - True + False True - 0 + 1 + + True + True + 0 + diff -Nru gthumb-3.8.3/extensions/slideshow/gth-slideshow.c gthumb-3.9.1/extensions/slideshow/gth-slideshow.c --- gthumb-3.8.3/extensions/slideshow/gth-slideshow.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/gth-slideshow.c 2020-03-07 19:03:13.510287800 +0000 @@ -32,6 +32,7 @@ #endif /* HAVE_GSTREAMER */ #include "gth-slideshow.h" #include "gth-transition.h" +#include "actions.h" #define HIDE_CURSOR_DELAY 1 #define HIDE_PAUSED_SIGN_DELAY 1 @@ -64,7 +65,7 @@ ClutterActor *paused_actor; guint32 last_button_event_time; #endif - GdkPixbuf *current_pixbuf; + GthImage *current_image; GtkWidget *viewer; guint next_event; guint delay; @@ -90,33 +91,16 @@ G_DEFINE_TYPE_WITH_CODE (GthSlideshow, gth_slideshow, - GTK_TYPE_WINDOW, + GTH_TYPE_WINDOW, G_ADD_PRIVATE (GthSlideshow)) -static void -_gth_slideshow_close_cb (gpointer user_data) -{ - GthSlideshow *self = user_data; - gboolean close_browser; - GthBrowser *browser; - - browser = self->priv->browser; - close_browser = ! gtk_widget_get_visible (GTK_WIDGET (browser)); - self->priv->projector->show_cursor (self); - self->priv->projector->finalize (self); - gtk_widget_destroy (GTK_WIDGET (self)); - - if (close_browser) - gth_window_close (GTH_WINDOW (browser)); -} - - -static void -_gth_slideshow_close (GthSlideshow *self) -{ - call_when_idle (_gth_slideshow_close_cb, self); -} +static const GActionEntry actions[] = { + { "slideshow-close", gth_slideshow_activate_close }, + { "slideshow-toggle-pause", gth_slideshow_activate_toggle_pause }, + { "slideshow-next-image", gth_slideshow_activate_next_image }, + { "slideshow-previous-image", gth_slideshow_activate_previous_image }, +}; static int @@ -141,9 +125,6 @@ } -static void _gth_slideshow_load_next_image (GthSlideshow *self); - - static void preloader_load_ready_cb (GObject *source_object, GAsyncResult *result, @@ -167,20 +148,20 @@ &error)) { g_clear_error (&error); - _gth_slideshow_load_next_image (self); + gth_slideshow_load_next_image (self); return; } - _g_object_unref (self->priv->current_pixbuf); - self->priv->current_pixbuf = gth_image_get_pixbuf (image); + _g_object_unref (self->priv->current_image); + self->priv->current_image = _g_object_ref (image); - if (self->priv->current_pixbuf == NULL) { - _gth_slideshow_load_next_image (self); + if (self->priv->current_image == NULL) { + gth_slideshow_load_next_image (self); return; } self->priv->one_loaded = TRUE; - self->priv->projector->image_ready (self, self->priv->current_pixbuf); + self->priv->projector->image_ready (self, self->priv->current_image); _g_object_unref (requested); _g_object_unref (image); @@ -203,7 +184,7 @@ if (self->priv->current == NULL) { if (! self->priv->one_loaded || ! self->priv->wrap_around) { - _gth_slideshow_close (self); + gth_slideshow_close (self); return; } _gth_slideshow_reset_current (self); @@ -232,34 +213,6 @@ } -static void -_gth_slideshow_load_next_image (GthSlideshow *self) -{ - self->priv->projector->load_next_image (self); - self->priv->direction = GTH_SLIDESHOW_DIRECTION_FORWARD; - - if (self->priv->paused) - return; - - self->priv->current = self->priv->current->next; - _gth_slideshow_load_current_image (self); -} - - -static void -_gth_slideshow_load_prev_image (GthSlideshow *self) -{ - self->priv->projector->load_prev_image (self); - self->priv->direction = GTH_SLIDESHOW_DIRECTION_BACKWARD; - - if (self->priv->paused) - return; - - self->priv->current = self->priv->current->prev; - _gth_slideshow_load_current_image (self); -} - - static gboolean next_image_cb (gpointer user_data) { @@ -269,7 +222,7 @@ g_source_remove (self->priv->next_event); self->priv->next_event = 0; } - _gth_slideshow_load_next_image (self); + gth_slideshow_load_next_image (self); return FALSE; } @@ -281,7 +234,7 @@ if (self->priv->automatic && ! self->priv->paused) gth_screensaver_inhibit (self->priv->screensaver, GTK_WINDOW (self), - _("Playing slideshow")); + _("Playing a presentation")); else gth_screensaver_uninhibit (self->priv->screensaver); @@ -304,7 +257,7 @@ g_source_remove (self->priv->hide_cursor_event); _g_object_unref (self->priv->pause_pixbuf); - _g_object_unref (self->priv->current_pixbuf); + _g_object_unref (self->priv->current_image); _g_object_list_unref (self->priv->file_list); _g_object_unref (self->priv->browser); _g_object_unref (self->priv->preloader); @@ -352,27 +305,6 @@ } -static void -_gth_slideshow_toggle_pause (GthSlideshow *self) -{ - self->priv->paused = ! self->priv->paused; - if (self->priv->paused) { - self->priv->projector->paused (self); -#if HAVE_GSTREAMER - if (self->priv->playbin != NULL) - gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); -#endif - } - else { /* resume */ - _gth_slideshow_load_next_image (self); -#if HAVE_GSTREAMER - if (self->priv->playbin != NULL) - gst_element_set_state (self->priv->playbin, GST_STATE_PLAYING); -#endif - } -} - - #if HAVE_GSTREAMER @@ -446,6 +378,18 @@ } +static gboolean +_gth_slideshow_key_press_cb (GthSlideshow *self, + GdkEventKey *event, + gpointer user_data) +{ + return gth_window_activate_shortcut (GTH_WINDOW (self), + GTH_SHORTCUT_CONTEXT_SLIDESHOW, + event->keyval, + event->state); +} + + static void gth_slideshow_init (GthSlideshow *self) { @@ -464,7 +408,7 @@ self->priv->animating = FALSE; self->priv->direction = GTH_SLIDESHOW_DIRECTION_FORWARD; self->priv->random_order = FALSE; - self->priv->current_pixbuf = NULL; + self->priv->current_image = NULL; self->priv->screensaver = gth_screensaver_new (NULL); self->priv->preloader = gth_image_preloader_new (); } @@ -494,7 +438,20 @@ self->priv->projector->construct (self); + g_action_map_add_action_entries (G_ACTION_MAP (self), + actions, + G_N_ELEMENTS (actions), + self); + gth_window_copy_shortcuts (GTH_WINDOW (self), + GTH_WINDOW (self->priv->browser), + GTH_SHORTCUT_CONTEXT_SLIDESHOW); + g_signal_connect (self, "show", G_CALLBACK (gth_slideshow_show_cb), self); + + g_signal_connect (self, + "key-press-event", + G_CALLBACK (_gth_slideshow_key_press_cb), + NULL); } @@ -565,6 +522,98 @@ } +void +gth_slideshow_toggle_pause (GthSlideshow *self) +{ + g_return_if_fail (GTH_IS_SLIDESHOW (self)); + + self->priv->paused = ! self->priv->paused; + if (self->priv->paused) { + self->priv->projector->paused (self); +#if HAVE_GSTREAMER + if (self->priv->playbin != NULL) + gst_element_set_state (self->priv->playbin, GST_STATE_PAUSED); +#endif + } + else { /* resume */ + gth_slideshow_load_next_image (self); +#if HAVE_GSTREAMER + if (self->priv->playbin != NULL) + gst_element_set_state (self->priv->playbin, GST_STATE_PLAYING); +#endif + } +} + + +void +gth_slideshow_load_next_image (GthSlideshow *self) +{ + g_return_if_fail (GTH_IS_SLIDESHOW (self)); + + self->priv->projector->load_next_image (self); + self->priv->direction = GTH_SLIDESHOW_DIRECTION_FORWARD; + + if (self->priv->paused) + return; + + self->priv->current = self->priv->current->next; + _gth_slideshow_load_current_image (self); +} + + +void +gth_slideshow_load_prev_image (GthSlideshow *self) +{ + g_return_if_fail (GTH_IS_SLIDESHOW (self)); + + self->priv->projector->load_prev_image (self); + self->priv->direction = GTH_SLIDESHOW_DIRECTION_BACKWARD; + + if (self->priv->paused) + return; + + self->priv->current = self->priv->current->prev; + _gth_slideshow_load_current_image (self); +} + + +void +gth_slideshow_next_image_or_resume (GthSlideshow *self) +{ + g_return_if_fail (GTH_IS_SLIDESHOW (self)); + + if (self->priv->paused) + gth_slideshow_toggle_pause (self); + else + gth_slideshow_load_next_image (self); +} + + +static void +_gth_slideshow_close_cb (gpointer user_data) +{ + GthSlideshow *self = user_data; + gboolean close_browser; + GthBrowser *browser; + + browser = self->priv->browser; + close_browser = ! gtk_widget_get_visible (GTK_WIDGET (browser)); + self->priv->projector->show_cursor (self); + self->priv->projector->finalize (self); + gtk_widget_destroy (GTK_WIDGET (self)); + + if (close_browser) + gth_window_close (GTH_WINDOW (browser)); +} + + +void +gth_slideshow_close (GthSlideshow *self) +{ + call_when_idle (_gth_slideshow_close_cb, self); +} + + /* -- default projector -- */ @@ -584,9 +633,9 @@ static void default_projector_image_ready (GthSlideshow *self, - GdkPixbuf *pixbuf) + GthImage *image) { - gth_image_viewer_set_pixbuf (GTH_IMAGE_VIEWER (self->priv->viewer), pixbuf, -1, -1); + gth_image_viewer_set_image (GTH_IMAGE_VIEWER (self->priv->viewer), image, -1, -1); view_next_image_automatically (self); } @@ -641,50 +690,15 @@ else if (event->type == GDK_BUTTON_PRESS) { switch (((GdkEventButton *) event)->button) { case 1: - _gth_slideshow_load_next_image (self); + gth_slideshow_load_next_image (self); break; case 3: - _gth_slideshow_load_prev_image (self); + gth_slideshow_load_prev_image (self); break; default: break; } } - else if (event->type == GDK_KEY_PRESS) { - switch (((GdkEventKey *) event)->keyval) { - case GDK_KEY_F5: - _gth_slideshow_close (self); - break; - } - } - else if (event->type == GDK_KEY_RELEASE) { - switch (((GdkEventKey *) event)->keyval) { - case GDK_KEY_Escape: - case GDK_KEY_q: - _gth_slideshow_close (self); - break; - case GDK_KEY_p: - _gth_slideshow_toggle_pause (self); - break; - - case GDK_KEY_space: - case GDK_KEY_Down: - case GDK_KEY_Right: - case GDK_KEY_Page_Down: - if (self->priv->paused) - _gth_slideshow_toggle_pause (self); - else - _gth_slideshow_load_next_image (self); - break; - - case GDK_KEY_BackSpace: - case GDK_KEY_Up: - case GDK_KEY_Left: - case GDK_KEY_Page_Up: - _gth_slideshow_load_prev_image (self); - break; - } - } } @@ -744,6 +758,7 @@ gth_image_viewer_set_zoom_change (GTH_IMAGE_VIEWER (self->priv->viewer), GTH_ZOOM_CHANGE_FIT_SIZE); gth_image_viewer_set_zoom_quality (GTH_IMAGE_VIEWER (self->priv->viewer), GTH_ZOOM_QUALITY_LOW); gth_image_viewer_add_painter (GTH_IMAGE_VIEWER (self->priv->viewer), default_projector_pause_painter, self); + gth_image_viewer_set_transparency_style (GTH_IMAGE_VIEWER (self->priv->viewer), GTH_TRANSPARENCY_STYLE_CHECKERED); g_signal_connect (self->priv->viewer, "button-press-event", G_CALLBACK (viewer_event_cb), self); g_signal_connect (self->priv->viewer, "motion-notify-event", G_CALLBACK (viewer_event_cb), self); @@ -916,8 +931,9 @@ static void clutter_projector_image_ready (GthSlideshow *self, - GdkPixbuf *pixbuf) + GthImage *image_data) { + GdkPixbuf *pixbuf; GdkPixbuf *image; ClutterActor *texture; int pixbuf_w, pixbuf_h; @@ -928,6 +944,7 @@ if ((stage_w == 0) || (stage_h == 0)) return; + pixbuf = gth_image_get_pixbuf (image_data); image = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (pixbuf), FALSE, gdk_pixbuf_get_bits_per_sample (pixbuf), @@ -976,6 +993,7 @@ clutter_timeline_advance (self->priv->timeline, GTH_TRANSITION_DURATION); g_object_unref (image); + g_object_unref (pixbuf); } @@ -1051,50 +1069,15 @@ switch (clutter_event_get_button (event)) { case 1: - _gth_slideshow_load_next_image (self); + gth_slideshow_load_next_image (self); break; case 3: - _gth_slideshow_load_prev_image (self); + gth_slideshow_load_prev_image (self); break; default: break; } } - else if (event->type == CLUTTER_KEY_PRESS) { - switch (clutter_event_get_key_symbol (event)) { - case CLUTTER_KEY_F5: - _gth_slideshow_close (self); - break; - } - } - else if (event->type == CLUTTER_KEY_RELEASE) { - switch (clutter_event_get_key_symbol (event)) { - case CLUTTER_KEY_Escape: - case CLUTTER_KEY_q: - _gth_slideshow_close (self); - break; - case CLUTTER_KEY_p: - _gth_slideshow_toggle_pause (self); - break; - - case CLUTTER_KEY_space: - case CLUTTER_KEY_Down: - case CLUTTER_KEY_Right: - case CLUTTER_KEY_Page_Down: - if (self->priv->paused) - _gth_slideshow_toggle_pause (self); - else - _gth_slideshow_load_next_image (self); - break; - - case CLUTTER_KEY_BackSpace: - case CLUTTER_KEY_Up: - case CLUTTER_KEY_Left: - case CLUTTER_KEY_Page_Up: - _gth_slideshow_load_prev_image (self); - break; - } - } } @@ -1102,6 +1085,7 @@ adapt_image_size_to_stage_size (GthSlideshow *self) { gfloat stage_w, stage_h; + GdkPixbuf *pixbuf; GdkPixbuf *image; int pixbuf_w, pixbuf_h; int pixbuf_x, pixbuf_y; @@ -1114,23 +1098,24 @@ if ((stage_w == 0) || (stage_h == 0)) return; - if (self->priv->current_pixbuf == NULL) + if (self->priv->current_image == NULL) return; - image = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (self->priv->current_pixbuf), + pixbuf = gth_image_get_pixbuf (self->priv->current_image); + image = gdk_pixbuf_new (gdk_pixbuf_get_colorspace (pixbuf), FALSE, - gdk_pixbuf_get_bits_per_sample (self->priv->current_pixbuf), + gdk_pixbuf_get_bits_per_sample (pixbuf), stage_w, stage_h); gdk_pixbuf_fill (image, 0x000000ff); - pixbuf_w = gdk_pixbuf_get_width (self->priv->current_pixbuf); - pixbuf_h = gdk_pixbuf_get_height (self->priv->current_pixbuf); + pixbuf_w = gdk_pixbuf_get_width (pixbuf); + pixbuf_h = gdk_pixbuf_get_height (pixbuf); scale_keeping_ratio (&pixbuf_w, &pixbuf_h, (int) stage_w, (int) stage_h, TRUE); pixbuf_x = (stage_w - pixbuf_w) / 2; pixbuf_y = (stage_h - pixbuf_h) / 2; - gdk_pixbuf_composite (self->priv->current_pixbuf, + gdk_pixbuf_composite (pixbuf, image, pixbuf_x, pixbuf_y, @@ -1138,8 +1123,8 @@ pixbuf_h, pixbuf_x, pixbuf_y, - (double) pixbuf_w / gdk_pixbuf_get_width (self->priv->current_pixbuf), - (double) pixbuf_h / gdk_pixbuf_get_height (self->priv->current_pixbuf), + (double) pixbuf_w / gdk_pixbuf_get_width (pixbuf), + (double) pixbuf_h / gdk_pixbuf_get_height (pixbuf), GDK_INTERP_BILINEAR, 255); @@ -1156,6 +1141,7 @@ _gth_slideshow_reset_textures_position (self); g_object_unref (image); + g_object_unref (pixbuf); } diff -Nru gthumb-3.8.3/extensions/slideshow/gth-slideshow.h gthumb-3.9.1/extensions/slideshow/gth-slideshow.h --- gthumb-3.8.3/extensions/slideshow/gth-slideshow.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/gth-slideshow.h 2020-03-07 19:03:13.510287800 +0000 @@ -43,7 +43,7 @@ struct _GthSlideshow { - GtkWindow __parent; + GthWindow __parent; #ifdef HAVE_CLUTTER ClutterActor *stage; ClutterActor *current_image; @@ -57,7 +57,7 @@ struct _GthSlideshowClass { - GtkWindowClass __parent_class; + GthWindowClass __parent_class; }; typedef struct { @@ -67,7 +67,7 @@ void (* hide_cursor) (GthSlideshow *self); void (* finalize) (GthSlideshow *self); void (* image_ready) (GthSlideshow *self, - GdkPixbuf *pixbuf); + GthImage *image); void (* load_prev_image) (GthSlideshow *self); void (* load_next_image) (GthSlideshow *self); } GthProjector; @@ -93,6 +93,12 @@ char **files); void gth_slideshow_set_random_order (GthSlideshow *self, gboolean random); +void gth_slideshow_toggle_pause (GthSlideshow *self); +void gth_slideshow_load_next_image (GthSlideshow *self); +void gth_slideshow_load_prev_image (GthSlideshow *self); +void gth_slideshow_next_image_or_resume + (GthSlideshow *self); +void gth_slideshow_close (GthSlideshow *self); G_END_DECLS diff -Nru gthumb-3.8.3/extensions/slideshow/gth-slideshow-preferences.c gthumb-3.9.1/extensions/slideshow/gth-slideshow-preferences.c --- gthumb-3.8.3/extensions/slideshow/gth-slideshow-preferences.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/gth-slideshow-preferences.c 2020-03-07 19:03:13.510287800 +0000 @@ -183,7 +183,7 @@ GtkFileFilter *filter; dialog = gtk_file_chooser_dialog_new (_("Choose the files to play"), - GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (self))), + _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)), GTK_FILE_CHOOSER_ACTION_OPEN, _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, _GTK_LABEL_OK, GTK_RESPONSE_OK, diff -Nru gthumb-3.8.3/extensions/slideshow/main.c gthumb-3.9.1/extensions/slideshow/main.c --- gthumb-3.8.3/extensions/slideshow/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/main.c 2020-03-07 19:03:13.510287800 +0000 @@ -26,6 +26,7 @@ #include "callbacks.h" #include "gth-transition.h" #include "preferences.h" +#include "shortcuts.h" #ifdef HAVE_CLUTTER @@ -281,6 +282,11 @@ #endif /* HAVE_CLUTTER */ +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_SLIDESHOW, N_("Presentation"), 40 }, +}; + + G_MODULE_EXPORT void gthumb_extension_activate (void) { @@ -341,6 +347,7 @@ NULL); #endif /* HAVE_CLUTTER */ + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_hook_add_callback ("slideshow", 10, G_CALLBACK (ss__slideshow_cb), NULL); gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (ss__gth_browser_construct_cb), NULL); gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (ss__gth_browser_update_sensitivity_cb), NULL); diff -Nru gthumb-3.8.3/extensions/slideshow/preferences.c gthumb-3.9.1/extensions/slideshow/preferences.c --- gthumb-3.8.3/extensions/slideshow/preferences.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/preferences.c 2020-03-07 19:03:13.510287800 +0000 @@ -98,7 +98,7 @@ BrowserData *data; GtkWidget *notebook; char *current_transition; - gboolean image_viewer_page_found; + GtkWidget *label; notebook = _gtk_builder_get_widget (dialog_builder, "notebook"); @@ -139,30 +139,10 @@ G_CALLBACK (change_delay_spinbutton_value_changed_cb), data); - image_viewer_page_found = FALSE; - if (gth_main_extension_is_active ("image_viewer")) { - GList *children; - GList *scan; - - children = gtk_container_get_children (GTK_CONTAINER (gtk_builder_get_object (dialog_builder, "notebook"))); - for (scan = children; scan; scan = scan->next) { - GtkWidget *page = scan->data; - - if (g_strcmp0 (g_object_get_data (G_OBJECT (page), "extension-name"), "image_viewer") == 0) { - image_viewer_page_found = TRUE; - gtk_widget_set_vexpand (data->preferences_page, FALSE); - gtk_box_pack_start (GTK_BOX (page), data->preferences_page, FALSE, FALSE, 0); - } - } - } - - if (! image_viewer_page_found) { /* add the preferences in an ad-hoc page */ - GtkWidget *label; - - label = gtk_label_new (_("Slideshow")); - gtk_widget_show (label); - gtk_notebook_append_page (GTK_NOTEBOOK (notebook), data->preferences_page, label); - } + label = gtk_label_new (_("Presentation")); + gtk_widget_show (label); + + gtk_notebook_append_page (GTK_NOTEBOOK (notebook), data->preferences_page, label); g_object_set_data_full (G_OBJECT (dialog), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free); } diff -Nru gthumb-3.8.3/extensions/slideshow/shortcuts.h gthumb-3.9.1/extensions/slideshow/shortcuts.h --- gthumb-3.8.3/extensions/slideshow/shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/shortcuts.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,27 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef SLIDESHOW_SHORTCUTS_H +#define SLIDESHOW_SHORTCUTS_H + +#define GTH_SHORTCUT_CATEGORY_SLIDESHOW "slideshow" + +#endif /* SLIDESHOW_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/extensions/slideshow/slideshow.extension.desktop.in.in gthumb-3.9.1/extensions/slideshow/slideshow.extension.desktop.in.in --- gthumb-3.8.3/extensions/slideshow/slideshow.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/slideshow/slideshow.extension.desktop.in.in 2020-03-07 19:03:13.510287800 +0000 @@ -1,8 +1,8 @@ [Extension] -Name=Slideshow -Comment=View images as a slideshow. -Authors=gthumb development team -Copyright=Copyright © 2008-2013 The Free Software Foundation, Inc. +Name=Presentation +Comment=Play a presentation of images. +Authors=gThumb Development Team +Copyright=Copyright © 2008-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Icon=x-office-presentation Category=Browser diff -Nru gthumb-3.8.3/extensions/terminal/actions.c gthumb-3.9.1/extensions/terminal/actions.c --- gthumb-3.8.3/extensions/terminal/actions.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/actions.c 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include "actions.h" +#include "preferences.h" + + +void +gth_browser_activate_folder_context_open_in_terminal (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + GthFileData *file_data; + GList *file_list; + GSettings *settings; + char *command; + + file_data = gth_browser_get_folder_popup_file_data (browser); + if (file_data == NULL) { + if (GTH_IS_FILE_SOURCE_VFS (gth_browser_get_location_source (browser))) + file_data = g_object_ref (gth_browser_get_location_data (browser)); + + if (file_data == NULL) + return; + } + file_list = g_list_prepend (NULL, file_data->file); + + settings = g_settings_new (GTHUMB_TERMINAL_SCHEMA); + command = g_settings_get_string (settings, PREF_TERMINAL_COMMAND); + _g_launch_command (GTK_WIDGET (browser), command, _("Terminal"), G_APP_INFO_CREATE_NONE, file_list); + + g_free (command); + g_object_unref (settings); + g_list_free (file_list); + g_object_unref (file_data); +} diff -Nru gthumb-3.8.3/extensions/terminal/actions.h gthumb-3.9.1/extensions/terminal/actions.h --- gthumb-3.8.3/extensions/terminal/actions.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/actions.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef ACTIONS_H +#define ACTIONS_H + +#include + +DEF_ACTION_CALLBACK (gth_browser_activate_folder_context_open_in_terminal) + +#endif /* ACTIONS_H */ diff -Nru gthumb-3.8.3/extensions/terminal/callbacks.c gthumb-3.9.1/extensions/terminal/callbacks.c --- gthumb-3.8.3/extensions/terminal/callbacks.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/callbacks.c 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,106 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include +#include "actions.h" +#include "callbacks.h" + + +#define BROWSER_DATA_KEY "terminal-browser-data" + + +static const GActionEntry actions[] = { + { "folder-context-open-in-terminal", gth_browser_activate_folder_context_open_in_terminal } +}; + + +static const GthMenuEntry folder_context_open_entries[] = { + { N_("Open in Terminal"), "win.folder-context-open-in-terminal" } +}; + + +static const GthShortcut shortcuts[] = { + { "folder-context-open-in-terminal", N_("Open in Terminal"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "t" }, +}; + + +typedef struct { + guint folder_context_open_id; +} BrowserData; + + +static void +browser_data_free (BrowserData *data) +{ + g_free (data); +} + + +void +terminal__gth_browser_construct_cb (GthBrowser *browser) +{ + BrowserData *data; + + g_return_if_fail (GTH_IS_BROWSER (browser)); + + data = g_new0 (BrowserData, 1); + g_object_set_data_full (G_OBJECT (browser), + BROWSER_DATA_KEY, + data, + (GDestroyNotify) browser_data_free); + + g_action_map_add_action_entries (G_ACTION_MAP (browser), + actions, + G_N_ELEMENTS (actions), + browser); + gth_window_add_shortcuts (GTH_WINDOW (browser), + shortcuts, + G_N_ELEMENTS (shortcuts)); +} + + +void +terminal__gth_browser_folder_tree_popup_before_cb (GthBrowser *browser, + GthFileSource *file_source, + GthFileData *folder) +{ + BrowserData *data; + + data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY); + g_return_if_fail (data != NULL); + + if (GTH_IS_FILE_SOURCE_VFS (file_source)) { + if (data->folder_context_open_id == 0) + data->folder_context_open_id = + gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_FOLDER_OPEN_ACTIONS), + folder_context_open_entries, + G_N_ELEMENTS (folder_context_open_entries)); + } + else { + if (data->folder_context_open_id != 0) + gth_menu_manager_remove_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_FOLDER_OPEN_ACTIONS), data->folder_context_open_id); + data->folder_context_open_id = 0; + } +} diff -Nru gthumb-3.8.3/extensions/terminal/callbacks.h gthumb-3.9.1/extensions/terminal/callbacks.h --- gthumb-3.8.3/extensions/terminal/callbacks.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/callbacks.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,32 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef CALLBACKS_H +#define CALLBACKS_H + +#include + +void terminal__gth_browser_construct_cb (GthBrowser *browser); +void terminal__gth_browser_folder_tree_popup_before_cb (GthBrowser *browser, + GthFileSource *file_source, + GthFileData *folder); + +#endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/terminal/data/meson.build gthumb-3.9.1/extensions/terminal/data/meson.build --- gthumb-3.8.3/extensions/terminal/data/meson.build 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/data/meson.build 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1 @@ +subdir('ui') diff -Nru gthumb-3.8.3/extensions/terminal/data/ui/meson.build gthumb-3.9.1/extensions/terminal/data/ui/meson.build --- gthumb-3.8.3/extensions/terminal/data/ui/meson.build 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/data/ui/meson.build 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,4 @@ +ui_files = files( + 'terminal-preferences.ui' +) +install_data(ui_files, install_dir : ui_install_dir) diff -Nru gthumb-3.8.3/extensions/terminal/data/ui/terminal-preferences.ui gthumb-3.9.1/extensions/terminal/data/ui/terminal-preferences.ui --- gthumb-3.8.3/extensions/terminal/data/ui/terminal-preferences.ui 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/data/ui/terminal-preferences.ui 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,24 @@ + + + + + + True + False + 15 + vertical + 15 + + + True + True + 50 + + + False + True + 0 + + + + diff -Nru gthumb-3.8.3/extensions/terminal/dlg-terminal-preferences.c gthumb-3.9.1/extensions/terminal/dlg-terminal-preferences.c --- gthumb-3.8.3/extensions/terminal/dlg-terminal-preferences.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/dlg-terminal-preferences.c 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,117 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include "dlg-terminal-preferences.h" +#include "preferences.h" + + +typedef struct { + GtkBuilder *builder; + GSettings *settings; + GtkWidget *dialog; +} DialogData; + + +static void +update_settings (DialogData *data) +{ + const char *command; + + command = gtk_entry_get_text (GTK_ENTRY (gtk_builder_get_object (data->builder, "command_entry"))); + if (command != NULL) + g_settings_set_string (data->settings, PREF_TERMINAL_COMMAND, command); +} + + +static void +destroy_cb (GtkWidget *widget, + DialogData *data) +{ + g_object_unref (data->builder); + g_object_unref (data->settings); + g_free (data); +} + + +static void +dialog_response_cb (GtkDialog *dialog, + int response_id, + gpointer user_data) +{ + DialogData *data = user_data; + + if (response_id == GTK_RESPONSE_ACCEPT) + update_settings (data); + gtk_widget_destroy (data->dialog); +} + + +void +dlg_terminal_preferences (GtkWindow *parent) +{ + DialogData *data; + char *command; + + data = g_new0 (DialogData, 1); + data->builder = _gtk_builder_new_from_file ("terminal-preferences.ui", "terminal"); + data->settings = g_settings_new (GTHUMB_TERMINAL_SCHEMA); + + /* Get the widgets. */ + + data->dialog = g_object_new (GTK_TYPE_DIALOG, + "title", _("Preferences"), + "transient-for", GTK_WINDOW (parent), + "modal", TRUE, + "destroy-with-parent", FALSE, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + NULL); + gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + _gtk_builder_get_widget (data->builder, "dialog_content")); + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, + _GTK_LABEL_SAVE, GTK_RESPONSE_ACCEPT, + NULL); + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_ACCEPT, GTK_STYLE_CLASS_SUGGESTED_ACTION); + + /* Set widgets data. */ + + command = g_settings_get_string (data->settings, PREF_TERMINAL_COMMAND); + gtk_entry_set_text (GTK_ENTRY (gtk_builder_get_object (data->builder, "command_entry")), command); + g_free (command); + + /* Set the signals handlers. */ + + g_signal_connect (G_OBJECT (data->dialog), + "destroy", + G_CALLBACK (destroy_cb), + data); + g_signal_connect (data->dialog, + "response", + G_CALLBACK (dialog_response_cb), + data); + + /* run dialog. */ + + gtk_widget_show (data->dialog); +} diff -Nru gthumb-3.8.3/extensions/terminal/dlg-terminal-preferences.h gthumb-3.9.1/extensions/terminal/dlg-terminal-preferences.h --- gthumb-3.8.3/extensions/terminal/dlg-terminal-preferences.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/dlg-terminal-preferences.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef DLG_TERMINAL_PREFERENCES_H +#define DLG_TERMINAL_PREFERENCES_H + +#include + +void dlg_terminal_preferences (GtkWindow *parent); + +#endif /* DLG_TERMINAL_PREFERENCES_H */ diff -Nru gthumb-3.8.3/extensions/terminal/main.c gthumb-3.9.1/extensions/terminal/main.c --- gthumb-3.8.3/extensions/terminal/main.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/main.c 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,55 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include +#include "callbacks.h" +#include "dlg-terminal-preferences.h" + + +G_MODULE_EXPORT void +gthumb_extension_activate (void) +{ + gth_hook_add_callback ("gth-browser-construct", 10, G_CALLBACK (terminal__gth_browser_construct_cb), NULL); + gth_hook_add_callback ("gth-browser-folder-tree-popup-before", 10, G_CALLBACK (terminal__gth_browser_folder_tree_popup_before_cb), NULL); +} + + +G_MODULE_EXPORT void +gthumb_extension_deactivate (void) +{ +} + + +G_MODULE_EXPORT gboolean +gthumb_extension_is_configurable (void) +{ + return TRUE; +} + + +G_MODULE_EXPORT void +gthumb_extension_configure (GtkWindow *parent) +{ + dlg_terminal_preferences (parent); +} diff -Nru gthumb-3.8.3/extensions/terminal/meson.build gthumb-3.9.1/extensions/terminal/meson.build --- gthumb-3.8.3/extensions/terminal/meson.build 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/meson.build 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,37 @@ +source_files = files( + 'actions.c', + 'callbacks.c', + 'dlg-terminal-preferences.c', + 'main.c' +) + +shared_module('terminal', + sources : source_files, + dependencies : extension_common_deps, + include_directories : [ config_inc, gthumb_inc ], + c_args : c_args, + install : true, + install_dir : extensions_install_dir, + install_rpath : extensions_install_dir +) + +# .extension file + +extension_in_file = configure_file( + input : 'terminal.extension.desktop.in.in', + output : 'terminal.extension.in', + configuration : extension_data +) + +i18n.merge_file( + input : extension_in_file, + output : 'terminal.extension', + type : 'desktop', + po_dir : po_dir, + install : true, + install_dir : extensions_install_dir +) + +# Subdirectories + +subdir('data') diff -Nru gthumb-3.8.3/extensions/terminal/preferences.h gthumb-3.9.1/extensions/terminal/preferences.h --- gthumb-3.8.3/extensions/terminal/preferences.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/preferences.h 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,37 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef PREFERENCES_H +#define PREFERENCES_H + +G_BEGIN_DECLS + +/* schema */ + +#define GTHUMB_TERMINAL_SCHEMA GTHUMB_SCHEMA ".terminal" + +/* keys */ + +#define PREF_TERMINAL_COMMAND "command" + +G_END_DECLS + +#endif /* PREFERENCES_H */ diff -Nru gthumb-3.8.3/extensions/terminal/terminal.extension.desktop.in.in gthumb-3.9.1/extensions/terminal/terminal.extension.desktop.in.in --- gthumb-3.8.3/extensions/terminal/terminal.extension.desktop.in.in 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/extensions/terminal/terminal.extension.desktop.in.in 2020-03-07 19:03:13.510287800 +0000 @@ -0,0 +1,12 @@ +[Extension] +Name=Terminal +Comment=Open a folder in a terminal +Authors=gThumb Development Team +Copyright=Copyright © 2020 The Free Software Foundation, Inc. +Version=@GTHUMB_VERSION@ +Icon=utilities-terminal +Category=Browser + +[Loader] +Type=module +API=@GTHUMB_API_VERSION@ diff -Nru gthumb-3.8.3/extensions/webalbums/callbacks.c gthumb-3.9.1/extensions/webalbums/callbacks.c --- gthumb-3.8.3/extensions/webalbums/callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/callbacks.c 2020-03-07 19:03:13.510287800 +0000 @@ -24,7 +24,7 @@ #include #include #include -#include +#include #include "actions.h" #include "callbacks.h" @@ -43,20 +43,10 @@ actions, G_N_ELEMENTS (actions), browser); - gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_OTHER_EXPORTERS), + gth_menu_manager_append_entry (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_TOOLS4), GTH_MENU_MANAGER_NEW_MERGE_ID, _("_Web Album…"), "win.create-web-album", NULL, NULL); } - - -void -wa__gth_browser_update_sensitivity_cb (GthBrowser *browser) -{ - int n_selected; - - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); - gth_window_enable_action (GTH_WINDOW (browser), "export-web-album", n_selected > 0); -} diff -Nru gthumb-3.8.3/extensions/webalbums/callbacks.h gthumb-3.9.1/extensions/webalbums/callbacks.h --- gthumb-3.8.3/extensions/webalbums/callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/callbacks.h 2020-03-07 19:03:13.510287800 +0000 @@ -25,6 +25,5 @@ #include void wa__gth_browser_construct_cb (GthBrowser *browser); -void wa__gth_browser_update_sensitivity_cb (GthBrowser *browser); #endif /* CALLBACKS_H */ diff -Nru gthumb-3.8.3/extensions/webalbums/dlg-web-exporter.c gthumb-3.9.1/extensions/webalbums/dlg-web-exporter.c --- gthumb-3.8.3/extensions/webalbums/dlg-web-exporter.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/dlg-web-exporter.c 2020-03-07 19:03:13.510287800 +0000 @@ -393,11 +393,11 @@ gth_browser_set_dialog (browser, "web_exporter", data->dialog); g_object_set_data (G_OBJECT (data->dialog), "dialog_data", data); - data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_FILE_LIST); + data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_FILE_LIST, TRUE); gtk_widget_show (data->thumbnail_caption_chooser); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("thumbnail_caption_scrolledwindow")), data->thumbnail_caption_chooser); - data->image_attributes_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW); + data->image_attributes_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW, TRUE); gtk_widget_show (data->image_attributes_chooser); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("image_caption_scrolledwindow")), data->image_attributes_chooser); @@ -479,7 +479,7 @@ destination = _g_settings_get_uri (data->settings, PREF_WEBALBUMS_DESTINATION); if (destination == NULL) - destination = g_strdup (get_home_uri ()); + destination = g_strdup (_g_uri_get_home ()); gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (GET_WIDGET ("destination_filechooserbutton")), destination); g_free (destination); diff -Nru gthumb-3.8.3/extensions/webalbums/gth-web-exporter.c gthumb-3.9.1/extensions/webalbums/gth-web-exporter.c --- gthumb-3.8.3/extensions/webalbums/gth-web-exporter.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/gth-web-exporter.c 2020-03-07 19:03:13.513621000 +0000 @@ -701,7 +701,7 @@ if (line_is_void (line)) return; - e_line = _g_escape_for_html (line, -1); + e_line = _g_utf8_text_escape_xml (line); _write_line (ostream, e_line, error); g_free (e_line); @@ -718,7 +718,7 @@ if ((line == NULL) || (*line == 0)) return; - e_line = _g_escape_for_html (line, -1); + e_line = _g_utf8_text_escape_xml (line); _write_locale_line (ostream, e_line, error); g_free (e_line); @@ -764,40 +764,24 @@ static char * -gfile_get_relative_uri (GFile *file, - GFile *relative_to) +gfile_get_relative_path (GFile *file, + GFile *base) { - char *escaped; - char *relative_uri; + char *uri; + char *base_uri; char *result; - escaped = g_file_get_uri (file); - relative_uri = g_file_get_uri (relative_to); - result = _g_uri_get_relative_path (escaped, relative_uri); + uri = g_file_get_uri (file); + base_uri = g_file_get_uri (base); + result = _g_uri_get_relative_path (uri, base_uri); - g_free (relative_uri); - g_free (escaped); + g_free (base_uri); + g_free (uri); return result; } -static char * -gfile_get_relative_path (GFile *file, - GFile *relative_to) -{ - char *escaped; - char *unescaped; - - escaped = gfile_get_relative_uri (file, relative_to); - unescaped = g_uri_unescape_string (escaped, NULL); - - g_free (escaped); - - return unescaped; -} - - /* construct a GFile for a GthWebExporter */ @@ -1178,7 +1162,7 @@ if (src == NULL) break; file = get_theme_file (self, self->priv->target_dir, src); - line = gfile_get_relative_uri (file, relative_to); + line = gfile_get_relative_path (file, relative_to); write_markup_escape_line (ostream, line, error); g_object_unref (file); break; @@ -1208,8 +1192,8 @@ break; } - image_src = gfile_get_relative_uri (file, relative_to); - src_attr = _g_escape_for_html (image_src, -1); + image_src = gfile_get_relative_path (file, relative_to); + src_attr = _g_utf8_escape_xml (image_src); class = gth_tag_get_attribute_string (self, tag, "class"); if (class) @@ -1233,7 +1217,7 @@ char *unescaped_path; unescaped_path = g_uri_unescape_string (image_src, NULL); - alt_attr = _g_escape_for_html (unescaped_path, -1); + alt_attr = _g_utf8_escape_xml (unescaped_path); g_free (unescaped_path); } @@ -1264,7 +1248,7 @@ idx = get_image_idx (tag, self); idata = g_list_nth (self->priv->file_list, idx)->data; file = get_html_image_file (self, idata, self->priv->target_dir); - line = gfile_get_relative_uri (file, relative_to); + line = gfile_get_relative_path (file, relative_to); write_markup_escape_line (ostream, line, error); g_object_unref (file); break; @@ -1326,7 +1310,7 @@ line = unescaped_path; } else { - line = g_strdup (_g_uri_get_basename (unescaped_path)); + line = _g_uri_get_basename (unescaped_path); g_free (unescaped_path); } @@ -1398,7 +1382,7 @@ idx = get_page_idx (tag, self); file = get_html_index_file (self, idx, self->priv->target_dir); - line = gfile_get_relative_uri (file, relative_to); + line = gfile_get_relative_path (file, relative_to); write_markup_escape_line (ostream, line, error); g_object_unref (file); @@ -1868,12 +1852,13 @@ GList *file_list; file_list = g_list_append (NULL, self->priv->tmp_dir); - _g_delete_files_async (file_list, - TRUE, - TRUE, - NULL, - delete_temp_dir_ready_cb, - self); + _g_file_list_delete_async (file_list, + TRUE, + TRUE, + NULL, + NULL, + delete_temp_dir_ready_cb, + self); g_list_free (file_list); } @@ -1951,19 +1936,19 @@ g_object_unref (enumerator); if (error == NULL) - _g_copy_files_async (files, - self->priv->target_dir, - FALSE, - GTH_FILE_COPY_DEFAULT, - GTH_OVERWRITE_RESPONSE_UNSPECIFIED, - G_PRIORITY_DEFAULT, - gth_task_get_cancellable (GTH_TASK (self)), - save_files_progress_cb, - self, - save_files_dialog_cb, - self, - copy_to_destination_ready_cb, - self); + _g_file_list_copy_async (files, + self->priv->target_dir, + FALSE, + GTH_FILE_COPY_DEFAULT, + GTH_OVERWRITE_RESPONSE_UNSPECIFIED, + G_PRIORITY_DEFAULT, + gth_task_get_cancellable (GTH_TASK (self)), + save_files_progress_cb, + self, + save_files_dialog_cb, + self, + copy_to_destination_ready_cb, + self); else cleanup_and_terminate (self, error); @@ -2026,19 +2011,19 @@ GFile *theme_dir; theme_dir = get_theme_file (self, self->priv->tmp_dir, NULL); - _g_copy_files_async (files, - theme_dir, - FALSE, - GTH_FILE_COPY_DEFAULT, - GTH_OVERWRITE_RESPONSE_UNSPECIFIED, - G_PRIORITY_DEFAULT, - gth_task_get_cancellable (GTH_TASK (self)), - save_files_progress_cb, - self, - save_files_dialog_cb, - self, - save_other_files_ready_cb, - self); + _g_file_list_copy_async (files, + theme_dir, + FALSE, + GTH_FILE_COPY_DEFAULT, + GTH_OVERWRITE_RESPONSE_UNSPECIFIED, + G_PRIORITY_DEFAULT, + gth_task_get_cancellable (GTH_TASK (self)), + save_files_progress_cb, + self, + save_files_dialog_cb, + self, + save_other_files_ready_cb, + self); g_object_unref (theme_dir); } @@ -2430,7 +2415,7 @@ /* change the file extension to jpeg */ - filename_no_ext = _g_uri_remove_extension (image_data->dest_filename); + filename_no_ext = _g_path_remove_extension (image_data->dest_filename); g_free (image_data->dest_filename); image_data->dest_filename = g_strconcat(filename_no_ext, ".jpeg", NULL); g_free (filename_no_ext); @@ -2599,14 +2584,16 @@ { cairo_surface_t *scaled; - g_object_ref (idata->image); - scaled = _cairo_image_surface_scale (surface, w, h, SCALE_FILTER_BEST, NULL); - idata->image = gth_image_new_for_surface (scaled); - idata->image_width = cairo_image_surface_get_width (scaled); - idata->image_height = cairo_image_surface_get_height (scaled); + if (scaled != NULL) { + g_object_unref (idata->image); - cairo_surface_destroy (scaled); + idata->image = gth_image_new_for_surface (scaled); + idata->image_width = cairo_image_surface_get_width (scaled); + idata->image_height = cairo_image_surface_get_height (scaled); + + cairo_surface_destroy (scaled); + } } } @@ -2629,14 +2616,16 @@ { cairo_surface_t *scaled; - g_object_ref (idata->preview); - scaled = _cairo_image_surface_scale (surface, w, h, SCALE_FILTER_BEST, NULL); - idata->preview = gth_image_new_for_surface (scaled); - idata->preview_width = cairo_image_surface_get_width (scaled); - idata->preview_height = cairo_image_surface_get_height (scaled); + if (scaled != NULL) { + g_object_unref (idata->preview); - cairo_surface_destroy (scaled); + idata->preview = gth_image_new_for_surface (scaled); + idata->preview_width = cairo_image_surface_get_width (scaled); + idata->preview_height = cairo_image_surface_get_height (scaled); + + cairo_surface_destroy (scaled); + } } } @@ -2677,14 +2666,16 @@ { cairo_surface_t *scaled; - g_object_unref (idata->thumb); - scaled = _cairo_image_surface_scale (surface, w, h, SCALE_FILTER_BEST, NULL); - idata->thumb = gth_image_new_for_surface (scaled); - idata->thumb_width = cairo_image_surface_get_width (scaled); - idata->thumb_height = cairo_image_surface_get_height (scaled); + if (scaled != NULL) { + g_object_unref (idata->thumb); - cairo_surface_destroy (scaled); + idata->thumb = gth_image_new_for_surface (scaled); + idata->thumb_width = cairo_image_surface_get_width (scaled); + idata->thumb_height = cairo_image_surface_get_height (scaled); + + cairo_surface_destroy (scaled); + } } } diff -Nru gthumb-3.8.3/extensions/webalbums/main.c gthumb-3.9.1/extensions/webalbums/main.c --- gthumb-3.8.3/extensions/webalbums/main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/main.c 2020-03-07 19:03:13.513621000 +0000 @@ -30,7 +30,6 @@ gthumb_extension_activate (void) { gth_hook_add_callback ("gth-browser-construct", 70, G_CALLBACK (wa__gth_browser_construct_cb), NULL); - /*gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (wa__gth_browser_update_sensitivity_cb), NULL);*/ } diff -Nru gthumb-3.8.3/extensions/webalbums/webalbums.extension.desktop.in.in gthumb-3.9.1/extensions/webalbums/webalbums.extension.desktop.in.in --- gthumb-3.8.3/extensions/webalbums/webalbums.extension.desktop.in.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/extensions/webalbums/webalbums.extension.desktop.in.in 2020-03-07 19:03:13.513621000 +0000 @@ -1,12 +1,12 @@ [Extension] Name=Web Albums Comment=Create static web albums. -Authors=gthumb development team -Copyright=Copyright © 2010-2013 The Free Software Foundation, Inc. +Authors=gThumb Development Team +Copyright=Copyright © 2010-2020 The Free Software Foundation, Inc. Version=@GTHUMB_VERSION@ Category=Exporter [Loader] Type=module API=@GTHUMB_API_VERSION@ -Requires=export_tools +Requires=list_tools diff -Nru gthumb-3.8.3/gthumb/cairo-utils.c gthumb-3.9.1/gthumb/cairo-utils.c --- gthumb-3.8.3/gthumb/cairo-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/cairo-utils.c 2020-03-07 19:03:13.513621000 +0000 @@ -105,6 +105,8 @@ _cairo_metadata_set_has_alpha (cairo_surface_metadata_t *metadata, gboolean has_alpha) { + g_return_if_fail (metadata != NULL); + metadata->valid_data |= _CAIRO_METADATA_FLAG_HAS_ALPHA; metadata->has_alpha = has_alpha ? TRUE : FALSE; } @@ -115,6 +117,8 @@ int width, int height) { + g_return_if_fail (metadata != NULL); + metadata->valid_data |= _CAIRO_METADATA_FLAG_ORIGINAL_SIZE; metadata->original_width = width; metadata->original_height = height; @@ -126,6 +130,8 @@ int width, int height) { + g_return_if_fail (metadata != NULL); + metadata->valid_data |= _CAIRO_METADATA_FLAG_THUMBNAIL_SIZE; metadata->thumbnail.image_width = width; metadata->thumbnail.image_height = height; @@ -148,6 +154,8 @@ unsigned char * _cairo_image_surface_flush_and_get_data (cairo_surface_t *surface) { + g_return_val_if_fail (surface != NULL, NULL); + cairo_surface_flush (surface); return cairo_image_surface_get_data (surface); } @@ -156,6 +164,8 @@ static void _cairo_surface_metadata_init (cairo_surface_metadata_t *metadata) { + g_return_if_fail (metadata != NULL); + metadata->valid_data = _CAIRO_METADATA_FLAG_NONE; metadata->has_alpha = FALSE; metadata->original_width = 0; @@ -170,6 +180,8 @@ { cairo_surface_metadata_t *metadata; + g_return_val_if_fail (surface != NULL, NULL); + metadata = cairo_surface_get_user_data (surface, &surface_metadata_key); if (metadata == NULL) { metadata = g_new0 (cairo_surface_metadata_t, 1); @@ -188,6 +200,9 @@ cairo_surface_metadata_t *src_metadata; cairo_surface_metadata_t *dest_metadata; + g_return_if_fail (src != NULL); + g_return_if_fail (dest != NULL); + src_metadata = _cairo_image_surface_get_metadata (src); dest_metadata = _cairo_image_surface_get_metadata (dest); @@ -206,6 +221,8 @@ { cairo_surface_metadata_t *metadata; + g_return_if_fail (surface != NULL); + metadata = _cairo_image_surface_get_metadata (surface); _cairo_surface_metadata_init (metadata); } diff -Nru gthumb-3.8.3/gthumb/dlg-favorite-properties.c gthumb-3.9.1/gthumb/dlg-favorite-properties.c --- gthumb-3.8.3/gthumb/dlg-favorite-properties.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-favorite-properties.c 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,176 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2001-2020 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include "dlg-favorite-properties.h" +#include "gth-main.h" +#include "gth-metadata-chooser.h" +#include "gth-preferences.h" +#include "str-utils.h" + + +#define GET_WIDGET(name) _gtk_builder_get_widget (data->builder, (name)) + + +typedef struct { + GthBrowser *browser; + GtkBuilder *builder; + GSettings *settings; + GtkWidget *dialog; + GtkWidget *metadata_chooser; +} DialogData; + + +static void +dialog_data_free (DialogData *data) +{ + g_object_unref (data->builder); + g_object_unref (data->settings); + g_free (data); +} + + +static void +destroy_cb (GtkWidget *widget, + DialogData *data) +{ + gth_browser_set_dialog (data->browser, "favorite_properties", NULL); + dialog_data_free (data); +} + + +static void +cancel_button_clicked_cb (GtkWidget *widget, + DialogData *data) +{ + gtk_widget_destroy (data->dialog); +} + + +static void +ok_button_clicked_cb (GtkWidget *widget, + DialogData *data) +{ + char *favourite_properties; + + favourite_properties = gth_metadata_chooser_get_selection (GTH_METADATA_CHOOSER (data->metadata_chooser)); + g_settings_set_string (data->settings, PREF_BROWSER_FAVORITE_PROPERTIES, favourite_properties); + g_free (favourite_properties); + + gtk_widget_destroy (data->dialog); +} + + +void +dlg_favorite_properties (GthBrowser *browser) +{ + DialogData *data; + char *favourite_properties; + + if (gth_browser_get_dialog (browser, "favorite_properties") != NULL) { + gtk_window_present (GTK_WINDOW (gth_browser_get_dialog (browser, "favorite_properties"))); + return; + } + + data = g_new0 (DialogData, 1); + data->browser = browser; + data->builder = _gtk_builder_new_from_file ("favorite-properties.ui", NULL); + data->settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + data->dialog = g_object_new (GTK_TYPE_DIALOG, + "title", _("Preferences"), + "transient-for", GTK_WINDOW (browser), + "modal", FALSE, + "destroy-with-parent", FALSE, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + NULL); + gtk_container_add (GTK_CONTAINER (gtk_dialog_get_content_area (GTK_DIALOG (data->dialog))), + _gtk_builder_get_widget (data->builder, "dialog_content")); + gtk_dialog_add_buttons (GTK_DIALOG (data->dialog), + _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, + _GTK_LABEL_OK, GTK_RESPONSE_OK, + NULL); + _gtk_dialog_add_class_to_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); + gtk_widget_grab_default (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK)); + gth_browser_set_dialog (browser, "favorite_properties", data->dialog); + + /* TODO: set the widget data */ + + data->metadata_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW, FALSE); + gtk_widget_show (data->metadata_chooser); + gtk_container_add (GTK_CONTAINER (_gtk_builder_get_widget (data->builder, "chooser_scrolled_window")), data->metadata_chooser); + + favourite_properties = g_settings_get_string (data->settings, PREF_BROWSER_FAVORITE_PROPERTIES); + if (_g_str_equal (favourite_properties, "default")) { + GString *attributes; + GList *metadata_info; + GList *scan; + + attributes = g_string_new (""); + metadata_info = gth_main_get_all_metadata_info (); + for (scan = metadata_info; scan; scan = scan->next) { + GthMetadataInfo *info = scan->data; + + if ((info->flags & GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW) != GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW) + continue; + + if (info->id == NULL) + continue; + + if (g_str_has_prefix (info->id, "Exif")) + continue; + else if (g_str_has_prefix (info->id, "Iptc")) + continue; + else if (g_str_has_prefix (info->id, "Xmp")) + continue; + + g_string_append (attributes, info->id); + g_string_append_c (attributes, ','); + } + + gth_metadata_chooser_set_selection (GTH_METADATA_CHOOSER (data->metadata_chooser), attributes->str); + + g_string_free (attributes, TRUE); + } + else + gth_metadata_chooser_set_selection (GTH_METADATA_CHOOSER (data->metadata_chooser), favourite_properties); + + g_free (favourite_properties); + + /* set the signals handlers. */ + + g_signal_connect (G_OBJECT (data->dialog), + "destroy", + G_CALLBACK (destroy_cb), + data); + g_signal_connect (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_CANCEL), + "clicked", + G_CALLBACK (cancel_button_clicked_cb), + data); + g_signal_connect (gtk_dialog_get_widget_for_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK), + "clicked", + G_CALLBACK (ok_button_clicked_cb), + data); + + /* run dialog. */ + + gtk_widget_show (data->dialog); +} diff -Nru gthumb-3.8.3/gthumb/dlg-favorite-properties.h gthumb-3.9.1/gthumb/dlg-favorite-properties.h --- gthumb-3.8.3/gthumb/dlg-favorite-properties.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-favorite-properties.h 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,29 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2001-2020 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef DLG_FAVORITE_PROPERTIES_H +#define DLG_FAVORITE_PROPERTIES_H + +#include "gth-browser.h" + +void dlg_favorite_properties (GthBrowser *browser); + +#endif /* DLG_FAVORITE_PROPERTIES_H */ diff -Nru gthumb-3.8.3/gthumb/dlg-preferences-browser.c gthumb-3.9.1/gthumb/dlg-preferences-browser.c --- gthumb-3.8.3/gthumb/dlg-preferences-browser.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences-browser.c 2020-03-07 19:03:13.513621000 +0000 @@ -131,7 +131,7 @@ /* caption list */ - data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_FILE_LIST); + data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_FILE_LIST, TRUE); gtk_widget_show (data->thumbnail_caption_chooser); gtk_container_add (GTK_CONTAINER (GET_WIDGET ("caption_scrolledwindow")), data->thumbnail_caption_chooser); diff -Nru gthumb-3.8.3/gthumb/dlg-preferences.c gthumb-3.9.1/gthumb/dlg-preferences.c --- gthumb-3.8.3/gthumb/dlg-preferences.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences.c 2020-03-07 19:03:13.513621000 +0000 @@ -114,9 +114,6 @@ if (name == NULL) continue; - if (scan != children) - _gtk_list_box_add_separator (GTK_LIST_BOX (list_box)); - row = gtk_list_box_row_new (); g_object_set_data (G_OBJECT (row), "gth.page_num", GINT_TO_POINTER (page_num)); gtk_widget_show (row); diff -Nru gthumb-3.8.3/gthumb/dlg-preferences-extensions.c gthumb-3.9.1/gthumb/dlg-preferences-extensions.c --- gthumb-3.8.3/gthumb/dlg-preferences-extensions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences-extensions.c 2020-03-07 19:03:13.513621000 +0000 @@ -58,9 +58,9 @@ static ExtensionCategory extension_category[] = { - { EXTENSION_CATEGORY_ALL, N_("All"), "folder" }, - { EXTENSION_CATEGORY_ENABLED, N_("Enabled"), "folder" }, - { EXTENSION_CATEGORY_DISABLED, N_("Disabled"), "folder" }, + { EXTENSION_CATEGORY_ALL, NC_("Extensions", "All"), "folder" }, + { EXTENSION_CATEGORY_ENABLED, NC_("Extensions", "Enabled"), "folder" }, + { EXTENSION_CATEGORY_DISABLED, NC_("Extensions", "Disabled"), "folder" }, { EXTENSION_CATEGORY_SEPARATOR, NULL, NULL }, { "Browser", N_("Browser"), "folder" }, { "Viewer", N_("Viewers"), "folder" }, @@ -488,7 +488,7 @@ row_data); gtk_box_pack_start (GTK_BOX (row_box), button, FALSE, FALSE, 0); } - if ((extension != NULL) && (g_strcmp0 (description->authors[0], _("gthumb development team")) != 0)) { + if ((extension != NULL) && (g_strcmp0 (description->authors[0], _("gThumb Development Team")) != 0)) { button = gtk_button_new_from_icon_name ("dialog-information-symbolic", GTK_ICON_SIZE_BUTTON); gtk_widget_set_valign (button, GTK_ALIGN_CENTER); g_signal_connect (button, @@ -606,8 +606,6 @@ for (scan = descriptions; scan; scan = scan->next) { GthExtensionDescription *description = scan->data; - if (scan != descriptions) - _gtk_list_box_add_separator (GTK_LIST_BOX (data->extensions_list)); gtk_container_add (GTK_CONTAINER (data->extensions_list), create_extensions_row (description, data)); } @@ -637,7 +635,7 @@ cardinality = g_strdup_printf (CARDINALITY_FORMAT, get_category_cardinality (data, extension_category[i].id)); gtk_list_store_set (GTK_LIST_STORE (GET_WIDGET ("category_liststore")), &iter, - CATEGORY_NAME_COLUMN, _(extension_category[i].name), + CATEGORY_NAME_COLUMN, g_dpgettext2 (NULL, "Extensions", extension_category[i].name), CATEGORY_ID_COLUMN, extension_category[i].id, /* CATEGORY_ICON_COLUMN, extension_category[i].icon, */ CATEGORY_SEPARATOR_COLUMN, FALSE, diff -Nru gthumb-3.8.3/gthumb/dlg-preferences-general.c gthumb-3.9.1/gthumb/dlg-preferences-general.c --- gthumb-3.8.3/gthumb/dlg-preferences-general.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences-general.c 2020-03-07 19:03:13.513621000 +0000 @@ -25,6 +25,7 @@ #include "glib-utils.h" #include "gth-browser.h" #include "gth-file-source-vfs.h" +#include "gth-location-chooser.h" #include "gth-main.h" #include "gth-preferences.h" #include "gtk-utils.h" @@ -42,6 +43,7 @@ GSettings *browser_settings; GSettings *messages_settings; GtkWidget *dialog; + GtkWidget *startup_location_chooser; } BrowserData; @@ -61,7 +63,7 @@ use_startup_toggled_cb (GtkWidget *widget, BrowserData *data) { - gtk_widget_set_sensitive (GET_WIDGET ("startup_dir_filechooserbutton"), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); + gtk_widget_set_sensitive (data->startup_location_chooser, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); gtk_widget_set_sensitive (GET_WIDGET ("set_to_current_button"), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget))); } @@ -70,21 +72,8 @@ set_to_current_cb (GtkWidget *widget, BrowserData *data) { - GthFileSource *file_source; - - file_source = gth_main_get_file_source (gth_browser_get_location (data->browser)); - if (GTH_IS_FILE_SOURCE_VFS (file_source)) { - GFile *gio_file; - char *uri; - - gio_file = gth_file_source_to_gio_file (file_source, gth_browser_get_location (data->browser)); - uri = g_file_get_uri (gio_file); - gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (GET_WIDGET ("startup_dir_filechooserbutton")), uri); - - g_free (uri); - g_object_unref (gio_file); - } - g_object_unref (file_source); + gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (data->startup_location_chooser), + gth_browser_get_location (data->browser)); } @@ -133,9 +122,7 @@ GthBrowser *browser, GtkBuilder *dialog_builder) { - BrowserData *data; - char *startup_location; - GthFileSource *file_source; + BrowserData *data; data = g_new0 (BrowserData, 1); data->browser = g_object_ref (browser); @@ -155,31 +142,38 @@ else gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("go_to_last_location_radiobutton")), TRUE); - if (! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("use_startup_location_radiobutton")))) { - gtk_widget_set_sensitive (GET_WIDGET ("startup_dir_filechooserbutton"), FALSE); - gtk_widget_set_sensitive (GET_WIDGET ("set_to_current_button"), FALSE); - } - - startup_location = _g_settings_get_uri (data->browser_settings, PREF_BROWSER_STARTUP_LOCATION); - if (startup_location == NULL) - startup_location = g_strdup (get_home_uri ()); - file_source = gth_main_get_file_source_for_uri (startup_location); - if (GTH_IS_FILE_SOURCE_VFS (file_source)) { + /* starup location */ + { + char *uri; GFile *location; - GFile *folder; - char *folder_uri; - location = g_file_new_for_uri (startup_location); - folder = gth_file_source_to_gio_file (file_source, location); - folder_uri = g_file_get_uri (folder); - gtk_file_chooser_set_uri (GTK_FILE_CHOOSER (GET_WIDGET ("startup_dir_filechooserbutton")), folder_uri); + data->startup_location_chooser = g_object_new ( + GTH_TYPE_LOCATION_CHOOSER, + "show-entry-points", FALSE, + "show-other", TRUE, + "relief", GTK_RELIEF_NORMAL, + NULL); + gtk_widget_show (data->startup_location_chooser); + gtk_box_pack_start (GTK_BOX (GET_WIDGET ("startup_location_chooser_box")), + data->startup_location_chooser, + TRUE, + TRUE, + 0); + + uri = _g_settings_get_uri (data->browser_settings, PREF_BROWSER_STARTUP_LOCATION); + if (uri == NULL) + uri = g_strdup (_g_uri_get_home ()); + location = g_file_new_for_uri (uri); + gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (data->startup_location_chooser), location); - g_free (folder_uri); - g_object_unref (folder); g_object_unref (location); + g_free (uri); + } + + if (! gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("use_startup_location_radiobutton")))) { + gtk_widget_set_sensitive (data->startup_location_chooser, FALSE); + gtk_widget_set_sensitive (GET_WIDGET ("set_to_current_button"), FALSE); } - g_object_unref (file_source); - g_free (startup_location); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("reuse_active_window_checkbutton")), g_settings_get_boolean (data->browser_settings, PREF_BROWSER_REUSE_ACTIVE_WINDOW)); @@ -245,12 +239,17 @@ g_settings_set_boolean (data->general_settings, PREF_GENERAL_STORE_METADATA_IN_FILES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("embed_metadata_checkbutton")))); if (g_settings_get_boolean (data->browser_settings, PREF_BROWSER_USE_STARTUP_LOCATION)) { - char *location; + GFile *location; - location = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (GET_WIDGET ("startup_dir_filechooserbutton"))); - _g_settings_set_uri (data->browser_settings, PREF_BROWSER_STARTUP_LOCATION, location); - gth_pref_set_startup_location (location); - g_free (location); + location = gth_location_chooser_get_current (GTH_LOCATION_CHOOSER (data->startup_location_chooser)); + if (location != NULL) { + char *uri; + + uri = g_file_get_uri (location); + _g_settings_set_uri (data->browser_settings, PREF_BROWSER_STARTUP_LOCATION, uri); + gth_pref_set_startup_location (uri); + g_free (uri); + } } } diff -Nru gthumb-3.8.3/gthumb/dlg-preferences-shortcuts.c gthumb-3.9.1/gthumb/dlg-preferences-shortcuts.c --- gthumb-3.8.3/gthumb/dlg-preferences-shortcuts.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences-shortcuts.c 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,582 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include "dlg-preferences-shortcuts.h" +#include "glib-utils.h" +#include "gth-accel-dialog.h" +#include "gth-browser.h" +#include "gth-main.h" +#include "gth-preferences.h" +#include "gtk-utils.h" +#include "main.h" + + +#define GET_WIDGET(name) _gtk_builder_get_widget (data->builder, (name)) +#define BROWSER_DATA_KEY "shortcuts-preference-data" +#define GTH_SHORTCUT_CATEGORY_ALL "all" +#define GTH_SHORTCUT_CATEGORY_MODIFIED "modified" + + +enum { + ACTION_NAME_COLUMN, + DESCRIPTION_COLUMN, + ACCELERATOR_LABEL_COLUMN +}; + + +typedef struct { + GthBrowser *browser; + GtkBuilder *builder; + GtkWidget *preferences_dialog; + GPtrArray *rows; + char *show_category; +} BrowserData; + + +static void +browser_data_free (BrowserData *data) +{ + g_free (data->show_category); + g_ptr_array_unref (data->rows); + g_object_unref (data->builder); + g_free (data); +} + + +typedef struct { + BrowserData *browser_data; + GthShortcut *shortcut; + GtkWidget *accel_label; + GtkWidget *revert_button; + gboolean modified; +} RowData; + + +static RowData * +row_data_new (BrowserData *data, + GthShortcut *shortcut) +{ + RowData *row_data; + + row_data = g_new0 (RowData, 1); + row_data->browser_data = data; + row_data->shortcut = shortcut; + row_data->accel_label = NULL; + + g_ptr_array_add (row_data->browser_data->rows, row_data); + + return row_data; +} + + +static void +row_data_free (RowData *row_data) +{ + if (row_data == NULL) + return; + g_free (row_data); +} + + +static void +row_data_update_accel_label (RowData *row_data) +{ + if (row_data == NULL) + return; + + row_data->modified = g_strcmp0 (row_data->shortcut->default_accelerator, row_data->shortcut->accelerator) != 0; + if (row_data->modified) { + char *esc_text; + char *markup_text; + + esc_text = g_markup_escape_text (row_data->shortcut->label, -1); + markup_text = g_strdup_printf ("%s", esc_text); + gtk_label_set_markup (GTK_LABEL (row_data->accel_label), markup_text); + + g_free (markup_text); + g_free (esc_text); + } + else + gtk_label_set_text (GTK_LABEL (row_data->accel_label), row_data->shortcut->label); + + gtk_widget_set_sensitive (row_data->revert_button, row_data->modified); + gtk_widget_set_child_visible (row_data->revert_button, row_data->modified); +} + + +static RowData * +find_row_by_shortcut (BrowserData *browser_data, + GthShortcut *shortcut) +{ + int i; + + for (i = 0; i < browser_data->rows->len; i++) { + RowData *row_data = g_ptr_array_index (browser_data->rows, i); + if (g_strcmp0 (row_data->shortcut->detailed_action, shortcut->detailed_action) == 0) + return row_data; + } + + return NULL; +} + + +static void +update_filter_if_required (BrowserData *data) +{ + if (g_strcmp0 (data->show_category, GTH_SHORTCUT_CATEGORY_MODIFIED) == 0) + gtk_list_box_invalidate_filter (GTK_LIST_BOX (_gtk_builder_get_widget (data->builder, "shortcuts_list"))); +} + + +static gboolean +row_data_update_shortcut (RowData *row_data, + guint keycode, + GdkModifierType modifiers, + GtkWindow *parent) +{ + gboolean change; + + change = gth_window_can_change_shortcut (GTH_WINDOW (row_data->browser_data->browser), + row_data->shortcut->detailed_action, + row_data->shortcut->context, + keycode, + modifiers, + parent); + + if (change) { + GPtrArray *shortcuts_v; + GthShortcut *shortcut; + + shortcuts_v = gth_window_get_shortcuts (GTH_WINDOW (row_data->browser_data->browser)); + shortcut = gth_shortcut_array_find (shortcuts_v, + row_data->shortcut->context, + keycode, + modifiers); + if (shortcut != NULL) { + gth_shortcut_set_key (shortcut, 0, 0); + row_data_update_accel_label (find_row_by_shortcut (row_data->browser_data, shortcut)); + } + + gth_shortcut_set_key (row_data->shortcut, keycode, modifiers); + row_data_update_accel_label (row_data); + update_filter_if_required (row_data->browser_data); + + gth_main_shortcuts_changed (gth_window_get_shortcuts (GTH_WINDOW (row_data->browser_data->browser))); + } + + return change; +} + + +static void +accel_dialog_response_cb (GtkDialog *dialog, + gint response_id, + gpointer user_data) +{ + RowData *row_data = user_data; + guint keycode; + GdkModifierType modifiers; + + switch (response_id) { + case GTK_RESPONSE_OK: + if (gth_accel_dialog_get_accel (GTH_ACCEL_DIALOG (dialog), &keycode, &modifiers)) + if (row_data_update_shortcut (row_data, keycode, modifiers, GTK_WINDOW (dialog))) + gtk_widget_destroy (GTK_WIDGET (dialog)); + break; + + case GTK_RESPONSE_CANCEL: + gtk_widget_destroy (GTK_WIDGET (dialog)); + break; + + case GTH_ACCEL_BUTTON_RESPONSE_DELETE: + row_data_update_shortcut (row_data, 0, 0, GTK_WINDOW (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); + break; + } +} + + +static void +shortcuts_list_row_activated_cb (GtkListBox *box, + GtkListBoxRow *row, + gpointer user_data) +{ + RowData *row_data; + GtkWidget *dialog; + + row_data = g_object_get_data (G_OBJECT (row), "shortcut-row-data"); + + dialog = gth_accel_dialog_new (_("Shortcut"), + _gtk_widget_get_toplevel_if_window (GTK_WIDGET (box)), + row_data->shortcut->keyval, + row_data->shortcut->modifiers); + g_signal_connect (dialog, + "response", + G_CALLBACK (accel_dialog_response_cb), + row_data); + gtk_widget_show (dialog); +} + + +static void +revert_button_clicked_cb (GtkButton *button, + gpointer user_data) +{ + RowData *row_data = user_data; + guint keycode; + GdkModifierType modifiers; + + gtk_accelerator_parse (row_data->shortcut->default_accelerator, &keycode, &modifiers); + row_data_update_shortcut (row_data, keycode, modifiers, GTK_WINDOW (row_data->browser_data->preferences_dialog)); +} + + +static GtkWidget * +_new_shortcut_row (GthShortcut *shortcut, + BrowserData *data) +{ + GtkWidget *row; + RowData *row_data; + GtkWidget *box; + GtkWidget *label; + GtkWidget *button_box; + GtkWidget *button; + + row = gtk_list_box_row_new (); + row_data = row_data_new (data, shortcut); + g_object_set_data_full (G_OBJECT (row), "shortcut-row-data", row_data, (GDestroyNotify) row_data_free); + + box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_container_set_border_width (GTK_CONTAINER (box), 5); + gtk_container_add (GTK_CONTAINER (row), box); + + label = gtk_label_new (_(shortcut->description)); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_widget_set_margin_end (label, 12); + gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (data->builder, "column1_size_group")), label); + gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + + row_data->accel_label = label = gtk_label_new (""); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_widget_set_margin_end (label, 12); + gtk_style_context_add_class (gtk_widget_get_style_context (label), GTK_STYLE_CLASS_DIM_LABEL); + gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (data->builder, "column2_size_group")), label); + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + + button_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0); + gtk_widget_set_margin_start (button_box, 12); + gtk_widget_set_margin_end (button_box, 12); + gtk_size_group_add_widget (GTK_SIZE_GROUP (gtk_builder_get_object (data->builder, "column3_size_group")), button_box); + gtk_box_pack_start (GTK_BOX (box), button_box, FALSE, FALSE, 0); + + row_data->revert_button = button = gtk_button_new_from_icon_name ("edit-clear-symbolic", GTK_ICON_SIZE_MENU); + gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (button, _("Revert")); + gtk_style_context_add_class (gtk_widget_get_style_context (button), "circular"); + gtk_style_context_add_class (gtk_widget_get_style_context (button), "revert-shortcut-button"); + gtk_box_pack_start (GTK_BOX (button_box), button, FALSE, FALSE, 0); + + gtk_widget_show_all (row); + row_data_update_accel_label (row_data); + + g_signal_connect (row_data->revert_button, + "clicked", + G_CALLBACK (revert_button_clicked_cb), + row_data); + + return row; +} + + +static GtkWidget * +_new_shortcut_category_row (const char *category_id, + int n_category) +{ + GtkWidget *row; + GtkWidget *box; + GthShortcutCategory *category; + const char *text; + char *esc_text; + char *markup_text; + GtkWidget *label; + + row = gtk_list_box_row_new (); + gtk_list_box_row_set_activatable (GTK_LIST_BOX_ROW (row), FALSE); + gtk_list_box_row_set_selectable (GTK_LIST_BOX_ROW (row), FALSE); + + box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0); + if (n_category > 1) + gtk_widget_set_margin_top (box, 15); + gtk_container_add (GTK_CONTAINER (row), box); + + category = gth_main_get_shortcut_category (category_id); + text = (category != NULL) ? _(category->display_name) : _("Other"); + esc_text = g_markup_escape_text (text, -1); + markup_text = g_strdup_printf ("%s", esc_text); + + label = gtk_label_new (NULL); + gtk_label_set_markup (GTK_LABEL (label), markup_text); + gtk_label_set_xalign (GTK_LABEL (label), 0.0); + gtk_widget_set_margin_start (label, 5); + gtk_widget_set_margin_end (label, 5); + gtk_widget_set_margin_top (label, 5); + gtk_widget_set_margin_bottom (label, 5); + gtk_box_pack_start (GTK_BOX (box), label, FALSE, FALSE, 0); + gtk_style_context_add_class (gtk_widget_get_style_context (label), GTK_STYLE_CLASS_DIM_LABEL); + gtk_box_pack_start (GTK_BOX (box), gtk_separator_new (GTK_ORIENTATION_HORIZONTAL), FALSE, FALSE, 0); + + gtk_widget_show_all (row); + + g_free (markup_text); + g_free (esc_text); + + return row; +} + + +static void +restore_all_button_clicked_cb (GtkButton *button, + gpointer user_data) +{ + BrowserData *data = user_data; + GtkWidget *dialog; + gboolean reassign; + + dialog = _gtk_yesno_dialog_new (GTK_WINDOW (data->preferences_dialog), + GTK_DIALOG_MODAL, + _("Do you want to revert all the changes and use the default shortcuts?"), + _GTK_LABEL_CANCEL, + _("Revert")); + _gtk_dialog_add_class_to_response (GTK_DIALOG (dialog), GTK_RESPONSE_YES, GTK_STYLE_CLASS_DESTRUCTIVE_ACTION); + + reassign = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES; + gtk_widget_destroy (GTK_WIDGET (dialog)); + + if (reassign) { + int i; + + for (i = 0; i < data->rows->len; i++) { + RowData *row_data = g_ptr_array_index (data->rows, i); + + gth_shortcut_set_accelerator (row_data->shortcut, row_data->shortcut->default_accelerator); + row_data_update_accel_label (row_data); + } + + gth_main_shortcuts_changed (gth_window_get_shortcuts (GTH_WINDOW (data->browser))); + } +} + + +static int +cmp_category (gconstpointer a, + gconstpointer b) +{ + GthShortcutCategory *cat_a = * (GthShortcutCategory **) a; + GthShortcutCategory *cat_b = * (GthShortcutCategory **) b; + + if (cat_a->sort_order == cat_b->sort_order) + return 0; + else if (cat_a->sort_order > cat_b->sort_order) + return 1; + else + return -1; +} + + +static void +category_combo_box_changed_cb (GtkComboBox *combo_box, + gpointer user_data) +{ + BrowserData *data = user_data; + GtkTreeIter iter; + + if (gtk_combo_box_get_active_iter (combo_box, &iter)) { + char *category_id; + + gtk_tree_model_get (GTK_TREE_MODEL (gtk_builder_get_object (data->builder, "category_liststore")), + &iter, + 0, &category_id, + -1); + + g_free (data->show_category); + data->show_category = g_strdup (category_id); + + gtk_list_box_invalidate_filter (GTK_LIST_BOX (_gtk_builder_get_widget (data->builder, "shortcuts_list"))); + + g_free (category_id); + } +} + + +static gboolean +shortcut_filter_func (GtkListBoxRow *row, + gpointer user_data) +{ + BrowserData *data = user_data; + RowData *row_data; + + if (g_strcmp0 (data->show_category, GTH_SHORTCUT_CATEGORY_ALL) == 0) + return TRUE; + + row_data = g_object_get_data (G_OBJECT (row), "shortcut-row-data"); + if ((row_data == NULL) || (row_data->shortcut == NULL)) + return FALSE; + + if (g_strcmp0 (data->show_category, GTH_SHORTCUT_CATEGORY_MODIFIED) == 0) + return row_data->modified; + + return g_strcmp0 (data->show_category, row_data->shortcut->category) == 0; +} + + +void +shortcuts__dlg_preferences_construct_cb (GtkWidget *dialog, + GthBrowser *browser, + GtkBuilder *dialog_builder) +{ + BrowserData *data; + GHashTable *visible_categories; + GtkWidget *shortcuts_list; + GPtrArray *shortcuts_v; + const char *last_category; + int n_category; + int i; + GtkWidget *label; + GtkWidget *page; + + data = g_new0 (BrowserData, 1); + data->browser = browser; + data->builder = _gtk_builder_new_from_file ("shortcuts-preferences.ui", NULL); + data->preferences_dialog = dialog; + data->rows = g_ptr_array_new (); + data->show_category = g_strdup (GTH_SHORTCUT_CATEGORY_ALL); + + g_object_set_data_full (G_OBJECT (dialog), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free); + + /* shortcut list */ + + visible_categories = g_hash_table_new (g_str_hash, g_str_equal); + shortcuts_list = _gtk_builder_get_widget (data->builder, "shortcuts_list"); + shortcuts_v = gth_window_get_shortcuts_by_category (GTH_WINDOW (browser)); + last_category = NULL; + n_category = 0; + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + + if (g_strcmp0 (shortcut->category, GTH_SHORTCUT_CATEGORY_HIDDEN) == 0) + continue; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_INTERNAL) != 0) + continue; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_DOC) != 0) + continue; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_FIXED) != 0) + continue; + + if (g_strcmp0 (shortcut->category,last_category) != 0) { + last_category = shortcut->category; + n_category++; + g_hash_table_add (visible_categories, shortcut->category); + gtk_list_box_insert (GTK_LIST_BOX (shortcuts_list), + _new_shortcut_category_row (shortcut->category, n_category), + -1); + } + gtk_list_box_insert (GTK_LIST_BOX (shortcuts_list), + _new_shortcut_row (shortcut, data), + -1); + } + gtk_list_box_set_filter_func (GTK_LIST_BOX (shortcuts_list), + shortcut_filter_func, + data, + NULL); + + g_signal_connect (shortcuts_list, + "row-activated", + G_CALLBACK (shortcuts_list_row_activated_cb), + data); + g_signal_connect (_gtk_builder_get_widget (data->builder, "restore_all_button"), + "clicked", + G_CALLBACK (restore_all_button_clicked_cb), + data); + + /* shortcut categories */ + + { + GPtrArray *category_v; + GtkListStore *list_store; + GtkTreeIter iter; + int i; + + category_v = g_ptr_array_copy (gth_main_get_shortcut_categories (), NULL, NULL); + g_ptr_array_set_free_func (category_v, NULL); + g_ptr_array_sort (category_v, cmp_category); + + list_store = (GtkListStore *) gtk_builder_get_object (data->builder, "category_liststore"); + + gtk_list_store_append (list_store, &iter); + gtk_list_store_set (list_store, &iter, + 0, GTH_SHORTCUT_CATEGORY_ALL, + 1, C_("Shortcuts", "All"), + -1); + + gtk_list_store_append (list_store, &iter); + gtk_list_store_set (list_store, &iter, + 0, GTH_SHORTCUT_CATEGORY_MODIFIED, + 1, C_("Shortcuts", "Modified"), + -1); + + for (i = 0; i < category_v->len; i++) { + GthShortcutCategory *category = g_ptr_array_index (category_v, i); + + if (! g_hash_table_contains (visible_categories, category->id)) + continue; + + gtk_list_store_append (list_store, &iter); + gtk_list_store_set (list_store, &iter, + 0, category->id, + 1, _(category->display_name), + -1); + } + + gtk_combo_box_set_active (GTK_COMBO_BOX (_gtk_builder_get_widget (data->builder, "category_combobox")), 0); + g_signal_connect (_gtk_builder_get_widget (data->builder, "category_combobox"), + "changed", + G_CALLBACK (category_combo_box_changed_cb), + data); + + g_ptr_array_unref (category_v); + } + + g_hash_table_unref (visible_categories); + + /* add the page to the preferences dialog */ + + label = gtk_label_new (_("Shortcuts")); + gtk_widget_show (label); + + page = _gtk_builder_get_widget (data->builder, "preferences_page"); + gtk_widget_show (page); + gtk_notebook_append_page (GTK_NOTEBOOK (_gtk_builder_get_widget (dialog_builder, "notebook")), page, label); +} diff -Nru gthumb-3.8.3/gthumb/dlg-preferences-shortcuts.h gthumb-3.9.1/gthumb/dlg-preferences-shortcuts.h --- gthumb-3.8.3/gthumb/dlg-preferences-shortcuts.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/dlg-preferences-shortcuts.h 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,31 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef DLG_PREFERENCES_SHORTCUTS_H +#define DLG_PREFERENCES_SHORTCUTS_H + +#include "gth-browser.h" + +void shortcuts__dlg_preferences_construct_cb (GtkWidget *dialog, + GthBrowser *browser, + GtkBuilder *dialog_builder); + +#endif /* DLG_PREFERENCES_SHORTCUTS_H */ diff -Nru gthumb-3.8.3/gthumb/gio-utils.c gthumb-3.9.1/gthumb/gio-utils.c --- gthumb-3.8.3/gthumb/gio-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gio-utils.c 2020-03-07 19:03:13.513621000 +0000 @@ -24,7 +24,10 @@ #include #include #include "gth-file-data.h" +#include "gth-file-source.h" +#include "gth-file-source-vfs.h" #include "gth-hook.h" +#include "gth-main.h" #include "gth-metadata-provider.h" #include "gth-overwrite-dialog.h" #include "glib-utils.h" @@ -34,99 +37,7 @@ #define N_FILES_PER_REQUEST 128 -/* -- filter -- */ - - -typedef enum { - FILTER_DEFAULT = 0, - FILTER_NODOTFILES = 1 << 1, - FILTER_IGNORECASE = 1 << 2, - FILTER_NOBACKUPFILES = 1 << 3 -} FilterOptions; - - -typedef struct { - char *pattern; - FilterOptions options; - GRegex **regexps; -} Filter; - - -static Filter * -filter_new (const char *pattern, - FilterOptions options) -{ - Filter *filter; - GRegexCompileFlags flags; - - filter = g_new0 (Filter, 1); - - if ((pattern != NULL) && (strcmp (pattern, "*") != 0)) - filter->pattern = g_strdup (pattern); - - filter->options = options; - if (filter->options & FILTER_IGNORECASE) - flags = G_REGEX_CASELESS; - else - flags = 0; - filter->regexps = get_regexps_from_pattern (pattern, flags); - - return filter; -} - - -static void -filter_destroy (Filter *filter) -{ - if (filter == NULL) - return; - - g_free (filter->pattern); - if (filter->regexps != NULL) - free_regexps (filter->regexps); - g_free (filter); -} - - -static gboolean -filter_matches (Filter *filter, - const char *name) -{ - const char *file_name; - char *utf8_name; - gboolean matched; - - g_return_val_if_fail (name != NULL, FALSE); - - file_name = _g_uri_get_basename (name); - - if ((filter->options & FILTER_NODOTFILES) - && ((file_name[0] == '.') || (strstr (file_name, "/.") != NULL))) - return FALSE; - - if ((filter->options & FILTER_NOBACKUPFILES) - && (file_name[strlen (file_name) - 1] == '~')) - return FALSE; - - if (filter->pattern == NULL) - return TRUE; - - utf8_name = g_filename_to_utf8 (file_name, -1, NULL, NULL, NULL); - matched = string_matches_regexps (filter->regexps, utf8_name, 0); - g_free (utf8_name); - - return matched; -} - - -static gboolean -filter_empty (Filter *filter) -{ - return ((filter->pattern == NULL) || (strcmp (filter->pattern, "*") == 0)); -} - - -/* -- g_directory_foreach_child -- */ +/* -- _g_directory_foreach_child -- */ typedef struct { @@ -520,7 +431,7 @@ /** - * g_directory_foreach_child: + * _g_directory_foreach_child: * @directory: The directory to visit. * @recursive: Whether to traverse the @directory recursively. * @follow_links: Whether to dereference the symbolic links. @@ -544,7 +455,7 @@ * Each callback uses the same @user_data additional parameter. */ void -g_directory_foreach_child (GFile *directory, +_g_directory_foreach_child (GFile *directory, gboolean recursive, gboolean follow_links, const char *attributes, @@ -584,324 +495,120 @@ fec); } - -/* -- get_file_list_data -- */ +/* -- _g_file_list_query_info_async -- */ typedef struct { - GList *files; - GList *dirs; - GFile *directory; - char *base_dir; + GList *file_list; + GthListFlags flags; + char *attributes; GCancellable *cancellable; - ListReadyCallback done_func; - gpointer done_data; - GList *to_visit; - GList *current_dir; - Filter *include_filter; - Filter *exclude_filter; - Filter *exclude_folders_filter; - guint visit_timeout; -} GetFileListData; + InfoReadyCallback callback; + gpointer user_data; + GList *current; + GList *files; + GList *sidecars; + GList *current_sidecar; +} QueryInfoData; static void -get_file_list_data_free (GetFileListData *gfl) +query_data_free (QueryInfoData *query_data) { - if (gfl == NULL) - return; - - filter_destroy (gfl->include_filter); - filter_destroy (gfl->exclude_filter); - filter_destroy (gfl->exclude_folders_filter); - _g_string_list_free (gfl->files); - _g_string_list_free (gfl->dirs); - _g_string_list_free (gfl->to_visit); - g_object_unref (gfl->directory); - g_free (gfl->base_dir); - g_free (gfl); + _g_object_list_unref (query_data->sidecars); + _g_object_list_unref (query_data->file_list); + _g_object_list_unref (query_data->files); + _g_object_unref (query_data->cancellable); + g_free (query_data->attributes); + g_free (query_data); } -/* -- g_directory_list_async -- */ +static void query_info__query_current (QueryInfoData *query_data); -static GList* -get_relative_file_list (GList *rel_list, - GList *file_list, - const char *base_dir) +static void +query_info__query_next (QueryInfoData *query_data) { - GList *scan; - int base_len; - - if (base_dir == NULL) - return NULL; - - base_len = 0; - if (strcmp (base_dir, "/") != 0) - base_len = strlen (base_dir); - - for (scan = file_list; scan; scan = scan->next) { - char *uri = scan->data; - if (_g_uri_parent_of_uri (base_dir, uri)) { - char *rel_uri = g_strdup (uri + base_len + 1); - rel_list = g_list_prepend (rel_list, rel_uri); - } - } - - return rel_list; + query_data->current = query_data->current->next; + query_info__query_current (query_data); } -static GList* -get_dir_list_from_file_list (GHashTable *h_dirs, - const char *base_dir, - GList *files, - gboolean is_dir_list) -{ - GList *scan; - GList *dir_list = NULL; - int base_dir_len; - - if (base_dir == NULL) - base_dir = ""; - base_dir_len = strlen (base_dir); - - for (scan = files; scan; scan = scan->next) { - char *filename = scan->data; - char *dir_name; - - if (strlen (filename) <= base_dir_len) - continue; - - if (is_dir_list) - dir_name = g_strdup (filename + base_dir_len + 1); - else - dir_name = _g_uri_get_parent (filename + base_dir_len + 1); - - while ((dir_name != NULL) && (dir_name[0] != '\0') && (strcmp (dir_name, "/") != 0)) { - char *tmp; - char *dir; - - /* avoid to insert duplicated folders */ - - dir = g_strconcat (base_dir, "/", dir_name, NULL); - if (g_hash_table_lookup (h_dirs, dir) == NULL) { - g_hash_table_insert (h_dirs, dir, GINT_TO_POINTER (1)); - dir_list = g_list_prepend (dir_list, dir); - } - else - g_free (dir); - - tmp = dir_name; - dir_name = _g_uri_get_parent (tmp); - g_free (tmp); - } +static void +query_info__query_current_sidecar (QueryInfoData *query_data); - g_free (dir_name); - } - return dir_list; +static void +query_info__query_next_sidecar (QueryInfoData *query_data) +{ + query_data->current_sidecar = query_data->current_sidecar->next; + query_info__query_current_sidecar (query_data); } static void -get_file_list_done (GError *error, - gpointer user_data) +query_data_sidecar_info_ready_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) { - GetFileListData *gfl = user_data; - GHashTable *h_dirs; - GList *scan; - - gfl->files = g_list_reverse (gfl->files); - gfl->dirs = g_list_reverse (gfl->dirs); - - if (! filter_empty (gfl->include_filter) || (gfl->exclude_filter->pattern != NULL)) { - _g_string_list_free (gfl->dirs); - gfl->dirs = NULL; - } - - h_dirs = g_hash_table_new (g_str_hash, g_str_equal); - - /* Always include the base directory, this way empty base - * directories are added to the archive as well. */ - - if (gfl->base_dir != NULL) { - char *dir; + QueryInfoData *query_data = user_data; + GFileInfo *info; + GFile *file; - dir = g_strdup (gfl->base_dir); - gfl->dirs = g_list_prepend (gfl->dirs, dir); - g_hash_table_insert (h_dirs, dir, GINT_TO_POINTER (1)); + info = g_file_query_info_finish ((GFile *) source_object, result, NULL); + if (info == NULL) { + query_info__query_next_sidecar (query_data); + return; } - /* Add all the parent directories in gfl->files/gfl->dirs to the - * gfl->dirs list, the hash table is used to avoid duplicated - * entries. */ - - for (scan = gfl->dirs; scan; scan = scan->next) - g_hash_table_insert (h_dirs, (char*)scan->data, GINT_TO_POINTER (1)); - - gfl->dirs = g_list_concat (gfl->dirs, get_dir_list_from_file_list (h_dirs, gfl->base_dir, gfl->files, FALSE)); - - if (filter_empty (gfl->include_filter)) - gfl->dirs = g_list_concat (gfl->dirs, get_dir_list_from_file_list (h_dirs, gfl->base_dir, gfl->dirs, TRUE)); - - /**/ - - if (error == NULL) { - GList *rel_files, *rel_dirs; - - if (gfl->base_dir != NULL) { - rel_files = get_relative_file_list (NULL, gfl->files, gfl->base_dir); - rel_dirs = get_relative_file_list (NULL, gfl->dirs, gfl->base_dir); - } - else { - rel_files = gfl->files; - rel_dirs = gfl->dirs; - gfl->files = NULL; - gfl->dirs = NULL; - } - - /* rel_files/rel_dirs must be deallocated in done_func */ - gfl->done_func (rel_files, rel_dirs, NULL, gfl->done_data); - } - else - gfl->done_func (NULL, NULL, error, gfl->done_data); + file = G_FILE (query_data->current_sidecar->data); + query_data->files = g_list_prepend (query_data->files, gth_file_data_new (file, info)); - g_hash_table_destroy (h_dirs); - get_file_list_data_free (gfl); + query_info__query_next_sidecar (query_data); } static void -get_file_list_for_each_file (GFile *file, - GFileInfo *info, - gpointer user_data) +query_info__query_current_sidecar (QueryInfoData *query_data) { - GetFileListData *gfl = user_data; - char *uri; - - uri = g_file_get_uri (file); - - switch (g_file_info_get_file_type (info)) { - case G_FILE_TYPE_REGULAR: - if (filter_matches (gfl->include_filter, uri)) - if ((gfl->exclude_filter->pattern == NULL) || ! filter_matches (gfl->exclude_filter, uri)) - gfl->files = g_list_prepend (gfl->files, g_strdup (uri)); - break; - default: - break; - } - - g_free (uri); -} - + GFileQueryInfoFlags flags; -static DirOp -get_file_list_start_dir (GFile *directory, - GFileInfo *info, - GError **error, - gpointer user_data) -{ - DirOp dir_op = DIR_OP_CONTINUE; - GetFileListData *gfl = user_data; - char *uri; - - uri = g_file_get_uri (directory); - if ((gfl->exclude_folders_filter->pattern == NULL) || ! filter_matches (gfl->exclude_folders_filter, uri)) { - gfl->dirs = g_list_prepend (gfl->dirs, g_strdup (uri)); - dir_op = DIR_OP_CONTINUE; + if (query_data->current_sidecar == NULL) { + query_info__query_next (query_data); + return; } - else - dir_op = DIR_OP_SKIP; - - g_free (uri); - - return dir_op; -} + flags = G_FILE_QUERY_INFO_NONE; + if (query_data->flags & GTH_LIST_NO_FOLLOW_LINKS) + flags |= G_FILE_QUERY_INFO_NOFOLLOW_SYMLINKS; -void -g_directory_list_async (GFile *directory, - const char *base_dir, - gboolean recursive, - gboolean follow_links, - gboolean no_backup_files, - gboolean no_dot_files, - const char *include_files, - const char *exclude_files, - const char *exclude_folders, - gboolean ignorecase, - GCancellable *cancellable, - ListReadyCallback done_func, - gpointer done_data) -{ - GetFileListData *gfl; - FilterOptions filter_options; - - gfl = g_new0 (GetFileListData, 1); - gfl->directory = g_file_dup (directory); - gfl->base_dir = g_strdup (base_dir); - gfl->done_func = done_func; - gfl->done_data = done_data; - - filter_options = FILTER_DEFAULT; - if (no_backup_files) - filter_options |= FILTER_NOBACKUPFILES; - if (no_dot_files) - filter_options |= FILTER_NODOTFILES; - if (ignorecase) - filter_options |= FILTER_IGNORECASE; - gfl->include_filter = filter_new (include_files, filter_options); - gfl->exclude_filter = filter_new (exclude_files, ignorecase ? FILTER_IGNORECASE : FILTER_DEFAULT); - gfl->exclude_folders_filter = filter_new (exclude_folders, ignorecase ? FILTER_IGNORECASE : FILTER_DEFAULT); - - g_directory_foreach_child (directory, - recursive, - follow_links, - "standard::name,standard::type", - cancellable, - get_file_list_start_dir, - get_file_list_for_each_file, - get_file_list_done, - gfl); + g_file_query_info_async (G_FILE (query_data->current_sidecar->data), + query_data->attributes, + flags, + G_PRIORITY_DEFAULT, + query_data->cancellable, + query_data_sidecar_info_ready_cb, + query_data); } -/* -- _g_query_info_async -- */ - - -typedef struct { - GList *file_list; - GthListFlags flags; - char *attributes; - GCancellable *cancellable; - InfoReadyCallback callback; - gpointer user_data; - GList *current; - GList *files; -} QueryInfoData; - - static void -query_data_free (QueryInfoData *query_data) +query_info__query_sidecars (QueryInfoData *query_data, + GFile *file) { - _g_object_list_unref (query_data->file_list); - _g_object_list_unref (query_data->files); - _g_object_unref (query_data->cancellable); - g_free (query_data->attributes); - g_free (query_data); -} - - -static void query_info__query_current (QueryInfoData *query_data); + GList *sidecars = NULL; + gth_hook_invoke ("add-sidecars", file, &sidecars); + if (sidecars == NULL) { + query_info__query_next (query_data); + return; + } -static void -query_info__query_next (QueryInfoData *query_data) -{ - query_data->current = query_data->current->next; - query_info__query_current (query_data); + _g_object_list_unref (query_data->sidecars); + query_data->sidecars = sidecars; + query_data->current_sidecar = query_data->sidecars; + query_info__query_current_sidecar (query_data); } @@ -974,8 +681,10 @@ return; } - if ((query_data->flags & GTH_LIST_RECURSIVE) && (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)) { - g_directory_foreach_child ((GFile *) query_data->current->data, + if ((query_data->flags & GTH_LIST_RECURSIVE) + && (g_file_info_get_file_type (info) == G_FILE_TYPE_DIRECTORY)) + { + _g_directory_foreach_child ((GFile *) query_data->current->data, TRUE, (query_data->flags & GTH_LIST_NO_FOLLOW_LINKS) == 0, query_data->attributes, @@ -986,8 +695,17 @@ query_data); } else { - query_data->files = g_list_prepend (query_data->files, gth_file_data_new ((GFile *) query_data->current->data, info)); - query_info__query_next (query_data); + GFile *file = G_FILE (query_data->current->data); + + query_data->files = g_list_prepend (query_data->files, gth_file_data_new (file, info)); + + if ((query_data->flags & GTH_LIST_INCLUDE_SIDECARS) + && (g_file_info_get_file_type (info) == G_FILE_TYPE_REGULAR)) + { + query_info__query_sidecars (query_data, file); + } + else + query_info__query_next (query_data); } g_object_unref (info); @@ -1021,12 +739,12 @@ void -_g_query_info_async (GList *file_list, - GthListFlags flags, - const char *attributes, - GCancellable *cancellable, - InfoReadyCallback ready_callback, - gpointer user_data) +_g_file_list_query_info_async (GList *file_list, + GthListFlags flags, + const char *attributes, + GCancellable *cancellable, + InfoReadyCallback ready_callback, + gpointer user_data) { QueryInfoData *query_data; @@ -1040,55 +758,13 @@ query_data->cancellable = _g_object_ref (cancellable); query_data->callback = ready_callback; query_data->user_data = user_data; + query_data->sidecars = NULL; query_data->current = query_data->file_list; query_info__query_current (query_data); } -/* -- _g_dummy_file_op_async -- */ - - -typedef struct { - ReadyFunc callback; - gpointer user_data; - gulong dummy_event; -} DummyFileCopy; - - -static gboolean -_g_dummy_file_op_completed (gpointer data) -{ - DummyFileCopy *dfd = data; - - if (dfd->dummy_event != 0) { - g_source_remove (dfd->dummy_event); - dfd->dummy_event = 0; - } - - if (dfd->callback) - dfd->callback (NULL, dfd->user_data); - - g_free (dfd); - - return FALSE; -} - - -void -_g_dummy_file_op_async (ReadyFunc callback, - gpointer user_data) -{ - DummyFileCopy *dfd; - - dfd = g_new0 (DummyFileCopy, 1); - dfd->callback = callback; - dfd->user_data = user_data; - dfd->dummy_event = g_idle_add (_g_dummy_file_op_completed, dfd); -} - - - /* -- _g_copy_file_async -- */ @@ -1576,19 +1252,19 @@ void -_g_copy_file_async (GthFileData *source, - GFile *destination, - gboolean move, - GthFileCopyFlags flags, - GthOverwriteResponse default_response, - int io_priority, - GCancellable *cancellable, - ProgressCallback progress_callback, - gpointer progress_callback_data, - DialogCallback dialog_callback, - gpointer dialog_callback_data, - CopyReadyCallback ready_callback, - gpointer user_data) +_gth_file_data_copy_async (GthFileData *source, + GFile *destination, + gboolean move, + GthFileCopyFlags flags, + GthOverwriteResponse default_response, + int io_priority, + GCancellable *cancellable, + ProgressCallback progress_callback, + gpointer progress_callback_data, + DialogCallback dialog_callback, + gpointer dialog_callback_data, + CopyReadyCallback ready_callback, + gpointer user_data) { _g_copy_file_async_private (source, destination, @@ -1609,7 +1285,7 @@ } -/* -- _g_copy_files_async -- */ +/* -- _g_file_list_copy_async -- */ typedef struct { @@ -1843,19 +1519,19 @@ void -_g_copy_files_async (GList *sources, /* GFile list */ - GFile *destination, - gboolean move, - GthFileCopyFlags flags, - GthOverwriteResponse default_response, - int io_priority, - GCancellable *cancellable, - ProgressCallback progress_callback, - gpointer progress_callback_data, - DialogCallback dialog_callback, - gpointer dialog_callback_data, - ReadyFunc done_callback, - gpointer user_data) +_g_file_list_copy_async (GList *sources, /* GFile list */ + GFile *destination, + gboolean move, + GthFileCopyFlags flags, + GthOverwriteResponse default_response, + int io_priority, + GCancellable *cancellable, + ProgressCallback progress_callback, + gpointer progress_callback_data, + DialogCallback dialog_callback, + gpointer dialog_callback_data, + ReadyFunc done_callback, + gpointer user_data) { CopyData *copy_data; GList *scan; @@ -1890,17 +1566,17 @@ /* for each directory in 'sources' this query will add all of its content * to the file list. */ - _g_query_info_async (sources, - GTH_LIST_RECURSIVE, - "standard::name,standard::display-name,standard::type,standard::size", - copy_data->cancellable, - copy_files__sources_info_ready_cb, - copy_data); + _g_file_list_query_info_async (sources, + GTH_LIST_RECURSIVE, + "standard::name,standard::display-name,standard::type,standard::size", + copy_data->cancellable, + copy_files__sources_info_ready_cb, + copy_data); } gboolean -_g_move_file (GFile *source, +_g_file_move (GFile *source, GFile *destination, GFileCopyFlags flags, GCancellable *cancellable, @@ -1953,9 +1629,9 @@ gboolean -_g_delete_files (GList *file_list, - gboolean include_metadata, - GError **error) +_g_file_list_delete (GList *file_list, + gboolean include_metadata, + GError **error) { GList *scan; @@ -1991,12 +1667,15 @@ typedef struct { - GList *file_list; - GList *current; - gboolean include_metadata; - GCancellable *cancellable; - ReadyFunc callback; - gpointer user_data; + GList *file_list; + GList *current; + gboolean include_metadata; + GCancellable *cancellable; + ProgressCallback progress_callback; + ReadyFunc callback; + gpointer user_data; + glong n_files; + glong n_deleted; } DeleteData; @@ -2027,6 +1706,7 @@ return; } + delete_data->n_deleted++; delete_data->current = delete_data->current->next; delete_files__delete_current (delete_data); } @@ -2043,6 +1723,14 @@ return; } + if (delete_data->progress_callback != NULL) + delete_data->progress_callback (NULL, + _("Deleting files"), + NULL, + FALSE, + (double) (delete_data->n_deleted + 1) / (delete_data->n_files + 1), + delete_data->user_data); + file_data = delete_data->current->data; g_file_delete_async (file_data->file, G_PRIORITY_DEFAULT, @@ -2068,17 +1756,20 @@ delete_data->file_list = _g_object_list_ref (files); delete_data->file_list = g_list_reverse (delete_data->file_list); delete_data->current = delete_data->file_list; + delete_data->n_files = g_list_length (delete_data->file_list); + delete_data->n_deleted = 0; delete_files__delete_current (delete_data); } void -_g_delete_files_async (GList *file_list, - gboolean recursive, - gboolean include_metadata, - GCancellable *cancellable, - ReadyFunc callback, - gpointer user_data) +_g_file_list_delete_async (GList *file_list, + gboolean recursive, + gboolean include_metadata, + GCancellable *cancellable, + ProgressCallback progress_callback, + ReadyFunc callback, + gpointer user_data) { DeleteData *delete_data; GthListFlags flags; @@ -2087,19 +1778,30 @@ delete_data->file_list = NULL; delete_data->include_metadata = include_metadata; delete_data->cancellable = _g_object_ref (cancellable); + delete_data->progress_callback = progress_callback; delete_data->callback = callback; delete_data->user_data = user_data; flags = GTH_LIST_NO_FOLLOW_LINKS; if (recursive) flags |= GTH_LIST_RECURSIVE; + if (include_metadata) + flags |= GTH_LIST_INCLUDE_SIDECARS; - _g_query_info_async (file_list, - flags, - GFILE_NAME_TYPE_ATTRIBUTES, - delete_data->cancellable, - delete_files__info_ready_cb, - delete_data); + if (delete_data->progress_callback != NULL) + delete_data->progress_callback (NULL, + _("Getting file information"), + NULL, + TRUE, + 0.0, + delete_data->user_data); + + _g_file_list_query_info_async (file_list, + flags, + GFILE_NAME_TYPE_ATTRIBUTES, + delete_data->cancellable, + delete_files__info_ready_cb, + delete_data); } @@ -2107,11 +1809,14 @@ typedef struct { - GList *file_list; - GList *current; - GCancellable *cancellable; - ReadyFunc callback; - gpointer user_data; + GList *file_list; + GList *current; + GCancellable *cancellable; + ProgressCallback progress_callback; + ReadyFunc callback; + gpointer user_data; + glong n_files; + glong n_deleted; } TrashData; @@ -2142,6 +1847,7 @@ return; } + tdata->n_deleted++; tdata->current = tdata->current->next; trash_files__delete_current (tdata); } @@ -2150,13 +1856,24 @@ static void trash_files__delete_current (TrashData *tdata) { + GthFileData *file_data; + if (tdata->current == NULL) { tdata->callback (NULL, tdata->user_data); trash_data_free (tdata); return; } - g_file_trash_async ((GFile *) tdata->current->data, + if (tdata->progress_callback != NULL) + tdata->progress_callback (NULL, + _("Moving files to trash"), + NULL, + FALSE, + (double) (tdata->n_deleted + 1) / (tdata->n_files + 1), + tdata->user_data); + + file_data = GTH_FILE_DATA (tdata->current->data); + g_file_trash_async (file_data->file, G_PRIORITY_DEFAULT, tdata->cancellable, trash_files__delete_current_cb, @@ -2164,22 +1881,57 @@ } +static void +trash_files__info_ready_cb (GList *files, + GError *error, + gpointer user_data) +{ + TrashData *tdata = user_data; + + if (error != NULL) { + tdata->callback (error, tdata->user_data); + trash_data_free (tdata); + return; + } + + tdata->file_list = _g_object_list_ref (files); + tdata->n_files = g_list_length (tdata->file_list); + tdata->n_deleted = 0; + tdata->current = tdata->file_list; + trash_files__delete_current (tdata); +} + + void -_g_trash_files_async (GList *file_list, /* GFile list */ - GCancellable *cancellable, - ReadyFunc callback, - gpointer user_data) +_g_file_list_trash_async (GList *file_list, /* GFile list */ + GCancellable *cancellable, + ProgressCallback progress_callback, + ReadyFunc callback, + gpointer user_data) { TrashData *tdata; tdata = g_new0 (TrashData, 1); - tdata->file_list = _g_object_list_ref (file_list); + tdata->file_list = NULL; tdata->cancellable = _g_object_ref (cancellable); + tdata->progress_callback = progress_callback; tdata->callback = callback; tdata->user_data = user_data; - tdata->current = tdata->file_list; - trash_files__delete_current (tdata); + if (tdata->progress_callback != NULL) + tdata->progress_callback (NULL, + _("Getting file information"), + NULL, + TRUE, + 0.0, + tdata->user_data); + + _g_file_list_query_info_async (file_list, + GTH_LIST_INCLUDE_SIDECARS, + GFILE_NAME_TYPE_ATTRIBUTES, + tdata->cancellable, + trash_files__info_ready_cb, + tdata); } @@ -2576,76 +2328,22 @@ GFile * -_g_directory_create_unique (GFile *parent, - const char *display_name, - const char *suffix, - GError **error) -{ - GFile *file = NULL; - gboolean created = FALSE; - GError *local_error = NULL; - int n; - - file = g_file_get_child_for_display_name (parent, display_name, &local_error); - if (file == NULL) { - g_propagate_error (error, local_error); - return NULL; - } - - n = 0; - do { - char *new_display_name; - - if (file != NULL) - g_object_unref (file); - - n++; - if (n == 1) - new_display_name = g_strdup_printf ("%s%s", display_name, suffix); - else - new_display_name = g_strdup_printf ("%s %d%s", display_name, n, suffix); - - file = g_file_get_child_for_display_name (parent, new_display_name, &local_error); - if (local_error == NULL) - created = g_file_make_directory (file, NULL, &local_error); - - if (! created && g_error_matches (local_error, G_IO_ERROR, G_IO_ERROR_EXISTS)) - g_clear_error (&local_error); - - g_free (new_display_name); - } - while (! created && (local_error == NULL)); - - if (local_error != NULL) { - g_object_unref (file); - file = NULL; - } - - if (local_error != NULL) - g_propagate_error (error, local_error); - - return file; -} - - -#define MAX_ATTEMPS 10 - - -GFile * _g_directory_create_tmp (void) { - GFile *tmp_dir; - GFile *dir = NULL; - int n; + const int max_attemps = 10; + const int name_len = 12; + GFile *tmp_dir; + GFile *dir = NULL; + int n; tmp_dir = g_file_new_for_path (g_get_tmp_dir ()); if (tmp_dir == NULL) return NULL; - for (n = 0; n < MAX_ATTEMPS; n++) { + for (n = 0; n < max_attemps; n++) { char *name; - name = _g_rand_string (12); + name = _g_str_random (name_len); dir = g_file_get_child (tmp_dir, name); g_free (name); @@ -2689,26 +2387,6 @@ gboolean -_g_directory_make (GFile *file, - guint32 unix_mode, - GError **error) -{ - if (! g_file_make_directory (file, NULL, error)) { - if ((*error)->code != G_IO_ERROR_EXISTS) - return FALSE; - g_clear_error (error); - } - - return g_file_set_attribute_uint32 (file, - G_FILE_ATTRIBUTE_UNIX_MODE, - unix_mode, - G_FILE_QUERY_INFO_NONE, - NULL, - error); -} - - -gboolean _g_file_set_modification_time (GFile *file, GTimeVal *timeval, GCancellable *cancellable, @@ -2718,10 +2396,77 @@ gboolean result; info = g_file_info_new (); - g_file_info_set_modification_time (info, timeval); - result = g_file_set_attributes_from_info (file, info, G_FILE_QUERY_INFO_NONE, cancellable, error); + g_file_info_set_modification_time (info, timeval); + result = g_file_set_attributes_from_info (file, info, G_FILE_QUERY_INFO_NONE, cancellable, error); + + g_object_unref (info); + + return result; +} + + +GFileInfo * +_g_file_get_info_for_display (GFile *file) +{ + GFileInfo *file_info; + GthFileSource *file_source; + + file_info = NULL; + file_source = gth_main_get_file_source (file); + if ((file_source != NULL) && ! GTH_IS_FILE_SOURCE_VFS (file_source)) + file_info = gth_file_source_get_file_info (file_source, file, GFILE_DISPLAY_ATTRIBUTES); + + if (file_info == NULL) { + char *name; + char *uri; + GIcon *icon; + + file_info = g_file_info_new (); + + name = _g_file_get_display_name (file); + g_file_info_set_display_name (file_info, name); + + uri = g_file_get_uri (file); + icon = g_themed_icon_new (g_str_has_prefix (uri, "file://") ? "folder-symbolic" : "folder-remote-symbolic"); + g_file_info_set_symbolic_icon (file_info, icon); + + g_object_unref (icon); + g_free (uri); + g_free (name); + } + + return file_info; +} + + +GMenuItem * +_g_menu_item_new_for_file (GFile *file, + const char *custom_label) +{ + GMenuItem *item; + GFileInfo *info; + + item = g_menu_item_new (NULL, NULL); + info = _g_file_get_info_for_display (file); + if (info != NULL) { + g_menu_item_set_label (item, (custom_label != NULL) ? custom_label : g_file_info_get_display_name (info)); + g_menu_item_set_icon (item, g_file_info_get_symbolic_icon (info)); + + g_object_unref (info); + } + + return item; +} + + +GMenuItem * +_g_menu_item_new_for_file_data (GthFileData *file_data) +{ + GMenuItem *item; - g_object_unref (info); + item = g_menu_item_new (NULL, NULL); + g_menu_item_set_label (item, g_file_info_get_display_name (file_data->info)); + g_menu_item_set_icon (item, g_file_info_get_symbolic_icon (file_data->info)); - return result; + return item; } diff -Nru gthumb-3.8.3/gthumb/gio-utils.h gthumb-3.9.1/gthumb/gio-utils.h --- gthumb-3.8.3/gthumb/gio-utils.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gio-utils.h 2020-03-07 19:03:13.513621000 +0000 @@ -3,7 +3,7 @@ /* * GThumb * - * Copyright (C) 2008 Free Software Foundation, Inc. + * Copyright (C) 2008-2019 Free Software Foundation, Inc. * * 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 @@ -30,8 +30,6 @@ G_BEGIN_DECLS -/* callback types */ - typedef enum { /*< skip >*/ DIR_OP_CONTINUE, DIR_OP_SKIP, @@ -39,188 +37,163 @@ } DirOp; typedef enum { - GTH_LIST_DEFAULT = 0, - GTH_LIST_RECURSIVE = 1 << 0, - GTH_LIST_NO_FOLLOW_LINKS = 1 << 1, - GTH_LIST_NO_BACKUP_FILES = 1 << 2, - GTH_LIST_NO_HIDDEN_FILES = 1 << 3 + GTH_LIST_DEFAULT = 0, + GTH_LIST_RECURSIVE = 1 << 0, + GTH_LIST_NO_FOLLOW_LINKS = 1 << 1, + GTH_LIST_NO_BACKUP_FILES = 1 << 2, + GTH_LIST_NO_HIDDEN_FILES = 1 << 3, + GTH_LIST_INCLUDE_SIDECARS = 1 << 4 } GthListFlags; typedef enum { /*< skip >*/ - GTH_FILE_COPY_DEFAULT = 0, - GTH_FILE_COPY_ALL_METADATA = (1 << 1), - GTH_FILE_COPY_RENAME_SAME_FILE = (1 << 2) + GTH_FILE_COPY_DEFAULT = 0, + GTH_FILE_COPY_ALL_METADATA = 1 << 1, + GTH_FILE_COPY_RENAME_SAME_FILE = 1 << 2 } GthFileCopyFlags; -typedef DirOp (*StartDirCallback) (GFile *directory, - GFileInfo *info, - GError **error, - gpointer user_data); -typedef void (*ForEachChildCallback) (GFile *file, - GFileInfo *info, - gpointer user_data); -typedef void (*ListReadyCallback) (GList *files, - GList *dirs, - GError *error, - gpointer user_data); -typedef void (*BufferReadyCallback) (void **buffer, - gsize count, - GError *error, - gpointer user_data); -typedef void (*InfoReadyCallback) (GList *files, - GError *error, - gpointer user_data); -typedef void (*CopyReadyCallback) (GthOverwriteResponse default_response, - GList *other_files, - GError *error, - gpointer user_data); - -/* asynchronous recursive list functions */ - -void g_directory_foreach_child (GFile *directory, - gboolean recursive, - gboolean follow_links, - const char *attributes, - GCancellable *cancellable, - StartDirCallback start_dir_func, - ForEachChildCallback for_each_file_func, - ReadyFunc done_func, - gpointer user_data); -void g_directory_list_async (GFile *directory, - const char *base_dir, - gboolean recursive, - gboolean follow_links, - gboolean no_backup_files, - gboolean no_dot_files, - const char *include_files, - const char *exclude_files, - const char *exclude_folders, - gboolean ignorecase, - GCancellable *cancellable, - ListReadyCallback done_func, - gpointer done_data); -void _g_query_info_async (GList *file_list, /* GFile * list */ - GthListFlags flags, - const char *attributes, - GCancellable *cancellable, - InfoReadyCallback ready_callback, - gpointer user_data); - -/* asynchronous copy functions */ - -void _g_dummy_file_op_async (ReadyFunc callback, - gpointer user_data); -void _g_copy_file_async (GthFileData *source, - GFile *destination, - gboolean move, - GthFileCopyFlags flags, - GthOverwriteResponse default_response, - int io_priority, - GCancellable *cancellable, - ProgressCallback progress_callback, - gpointer progress_callback_data, - DialogCallback dialog_callback, - gpointer dialog_callback_data, - CopyReadyCallback ready_callback, - gpointer user_data); -void _g_copy_files_async (GList *sources, - GFile *destination, - gboolean move, - GthFileCopyFlags flags, - GthOverwriteResponse default_response, - int io_priority, - GCancellable *cancellable, - ProgressCallback progress_callback, - gpointer progress_callback_data, - DialogCallback dialog_callback, - gpointer dialog_callback_data, - ReadyFunc callback, - gpointer user_data); -gboolean _g_move_file (GFile *source, - GFile *destination, - GFileCopyFlags flags, - GCancellable *cancellable, - GFileProgressCallback progress_callback, - gpointer progress_callback_data, - GError **error); -gboolean _g_delete_files (GList *file_list, - gboolean include_metadata, - GError **error); -void _g_delete_files_async (GList *file_list, - gboolean recursive, - gboolean include_metadata, - GCancellable *cancellable, - ReadyFunc callback, - gpointer user_data); -void _g_trash_files_async (GList *file_list, - GCancellable *cancellable, - ReadyFunc callback, - gpointer user_data); - -/* -- load/write/create file -- */ - -gboolean _g_input_stream_read_all (GInputStream *istream, - void **buffer, - gsize *size, - GCancellable *cancellable, - GError **error); -gboolean _g_file_load_in_buffer (GFile *file, - void **buffer, - gsize *size, - GCancellable *cancellable, - GError **error); -void _g_file_load_async (GFile *file, - int io_priority, - GCancellable *cancellable, - BufferReadyCallback callback, - gpointer user_data); -gboolean _g_file_write (GFile *file, - gboolean make_backup, - GFileCreateFlags flags, - void *buffer, - gsize count, - GCancellable *cancellable, - GError **error); -void _g_file_write_async (GFile *file, - void *buffer, - gsize count, - gboolean replace, - int io_priority, - GCancellable *cancellable, - BufferReadyCallback callback, - gpointer user_data); -GFile * _g_file_create_unique (GFile *parent, - const char *display_name, - const char *suffix, - GError **error); -GFile * _g_directory_create_unique (GFile *parent, - const char *display_name, - const char *suffix, - GError **error); -GFile * _g_directory_create_tmp (void); -gboolean _g_file_set_modification_time (GFile *file, - GTimeVal *timeval, - GCancellable *cancellable, - GError **error); - -/* convenience macros */ - -/** - * g_directory_list_all_async: - * @directory: - * @base_dir: - * @recursive: - * @cancellable: - * @done_func: - * @done_data: - * - */ -#define g_directory_list_all_async(directory, base_dir, recursive, cancellable, done_func, done_data) \ - g_directory_list_async ((directory), (base_dir), (recursive), TRUE, FALSE, FALSE, NULL, NULL, NULL, FALSE, (cancellable), (done_func), (done_data)) +/* Callback types */ -gboolean _g_directory_make (GFile *file, - guint32 unix_mode, - GError **error); +typedef DirOp (*StartDirCallback) (GFile *directory, + GFileInfo *info, + GError **error, + gpointer user_data); +typedef void (*ForEachChildCallback) (GFile *file, + GFileInfo *info, + gpointer user_data); +typedef void (*ListReadyCallback) (GList *files, + GList *dirs, + GError *error, + gpointer user_data); +typedef void (*BufferReadyCallback) (void **buffer, + gsize count, + GError *error, + gpointer user_data); +typedef void (*InfoReadyCallback) (GList *files, + GError *error, + gpointer user_data); +typedef void (*CopyReadyCallback) (GthOverwriteResponse default_response, + GList *other_files, + GError *error, + gpointer user_data); + +/* GFile utils */ + +gboolean _g_file_move (GFile *source, + GFile *destination, + GFileCopyFlags flags, + GCancellable *cancellable, + GFileProgressCallback progress_callback, + gpointer progress_callback_data, + GError **error); + +gboolean _g_file_load_in_buffer (GFile *file, + void **buffer, + gsize *size, + GCancellable *cancellable, + GError **error); +void _g_file_load_async (GFile *file, + int io_priority, + GCancellable *cancellable, + BufferReadyCallback callback, + gpointer user_data); +gboolean _g_file_write (GFile *file, + gboolean make_backup, + GFileCreateFlags flags, + void *buffer, + gsize count, + GCancellable *cancellable, + GError **error); +void _g_file_write_async (GFile *file, + void *buffer, + gsize count, + gboolean replace, + int io_priority, + GCancellable *cancellable, + BufferReadyCallback callback, + gpointer user_data); +GFile * _g_file_create_unique (GFile *parent, + const char *display_name, + const char *suffix, + GError **error); +gboolean _g_file_set_modification_time (GFile *file, + GTimeVal *timeval, + GCancellable *cancellable, + GError **error); +GFileInfo * _g_file_get_info_for_display (GFile *file); + +/* Directory utils */ + +void _g_directory_foreach_child (GFile *directory, + gboolean recursive, + gboolean follow_links, + const char *attributes, + GCancellable *cancellable, + StartDirCallback start_dir_func, + ForEachChildCallback for_each_file_func, + ReadyFunc done_func, + gpointer user_data); +GFile * _g_directory_create_tmp (void); + +/* GFile list utils */ + +void _g_file_list_query_info_async (GList *file_list, /* GFile list */ + GthListFlags flags, + const char *attributes, + GCancellable *cancellable, + InfoReadyCallback ready_callback, + gpointer user_data); +void _g_file_list_copy_async (GList *sources, /* GFile list */ + GFile *destination, + gboolean move, + GthFileCopyFlags flags, + GthOverwriteResponse default_response, + int io_priority, + GCancellable *cancellable, + ProgressCallback progress_callback, + gpointer progress_callback_data, + DialogCallback dialog_callback, + gpointer dialog_callback_data, + ReadyFunc callback, + gpointer user_data); +gboolean _g_file_list_delete (GList *file_list, /* GFile list */ + gboolean include_metadata, + GError **error); +void _g_file_list_delete_async (GList *file_list, /* GFile list */ + gboolean recursive, + gboolean include_metadata, + GCancellable *cancellable, + ProgressCallback progress_callback, + ReadyFunc callback, + gpointer user_data); +void _g_file_list_trash_async (GList *file_list, /* GFile list */ + GCancellable *cancellable, + ProgressCallback progress_callback, + ReadyFunc callback, + gpointer user_data); + +/* Misc utils */ + +void _gth_file_data_copy_async (GthFileData *source, + GFile *destination, + gboolean move, + GthFileCopyFlags flags, + GthOverwriteResponse default_response, + int io_priority, + GCancellable *cancellable, + ProgressCallback progress_callback, + gpointer progress_callback_data, + DialogCallback dialog_callback, + gpointer dialog_callback_data, + CopyReadyCallback ready_callback, + gpointer user_data); +gboolean _g_input_stream_read_all (GInputStream *istream, + void **buffer, + gsize *size, + GCancellable *cancellable, + GError **error); +GMenuItem * _g_menu_item_new_for_file (GFile *file, + const char *custom_label); +GMenuItem * _g_menu_item_new_for_file_data (GthFileData *file_data); G_END_DECLS diff -Nru gthumb-3.8.3/gthumb/glib-utils.c gthumb-3.9.1/gthumb/glib-utils.c --- gthumb-3.8.3/gthumb/glib-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/glib-utils.c 2020-03-07 19:03:13.513621000 +0000 @@ -3,7 +3,7 @@ /* * GThumb * - * Copyright (C) 2001-2008 Free Software Foundation, Inc. + * Copyright (C) 2001-2019 Free Software Foundation, Inc. * * 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 @@ -29,6 +29,7 @@ #include #include #include "glib-utils.h" +#include "uri-utils.h" #define MAX_PATTERNS 128 #define BUFFER_SIZE_FOR_SNIFFING 32 @@ -199,7 +200,8 @@ ObjectReadyData *data = user_data; g_source_remove (data->id); - data->ready_func (G_OBJECT (data->object), data->error, data->user_data); + data->ready_func (data->object, data->error, data->user_data); + _g_object_unref (data->object); g_free (data); return FALSE; @@ -216,7 +218,7 @@ data = g_new0 (ObjectReadyData, 1); - data->object = object; + data->object = _g_object_ref (object); data->ready_func = ready_func; data->user_data = user_data; data->error = error; @@ -330,8 +332,8 @@ /* taken from the glib function g_date_strftime */ char * -struct_tm_strftime (struct tm *tm, - const char *format) +_g_struct_tm_strftime (struct tm *tm, + const char *format) { gsize locale_format_len = 0; char *locale_format; @@ -587,7 +589,8 @@ secs = time_->tv_sec; tm = localtime (&secs); - return struct_tm_strftime (tm, format); + + return _g_struct_tm_strftime (tm, format); } @@ -628,495 +631,57 @@ } -/* String utils */ - - -void -_g_strset (char **s, - const char *value) -{ - if (*s == value) - return; - - if (*s != NULL) { - g_free (*s); - *s = NULL; - } - - if (value != NULL) - *s = g_strdup (value); -} - - -char * -_g_strdup_with_max_size (const char *s, - int max_size) -{ - char *result; - int l = strlen (s); - - if (l > max_size) { - char *first_half; - char *second_half; - int offset; - int half_max_size = max_size / 2 + 1; - - first_half = g_strndup (s, half_max_size); - offset = half_max_size + l - max_size; - second_half = g_strndup (s + offset, half_max_size); - - result = g_strconcat (first_half, "…", second_half, NULL); - - g_free (first_half); - g_free (second_half); - } else - result = g_strdup (s); - - return result; -} - - -/** - * example 1 : "xxx##yy#" --> [0] = xxx - * [1] = ## - * [2] = yy - * [3] = # - * [4] = NULL - * - * example 2 : "" --> [0] = NULL - **/ -char ** -_g_get_template_from_text (const char *utf8_template) -{ - const char *chunk_start = utf8_template; - char **str_vect; - GList *str_list = NULL, *scan; - int n = 0; - - if (utf8_template == NULL) - return NULL; - - while (*chunk_start != 0) { - gunichar ch; - gboolean reading_sharps; - char *chunk; - const char *chunk_end; - int chunk_len = 0; - - reading_sharps = (g_utf8_get_char (chunk_start) == '#'); - chunk_end = chunk_start; - - ch = g_utf8_get_char (chunk_end); - while (reading_sharps - && (*chunk_end != 0) - && (ch == '#')) { - chunk_end = g_utf8_next_char (chunk_end); - ch = g_utf8_get_char (chunk_end); - chunk_len++; - } - - ch = g_utf8_get_char (chunk_end); - while (! reading_sharps - && (*chunk_end != 0) - && (*chunk_end != '#')) { - chunk_end = g_utf8_next_char (chunk_end); - ch = g_utf8_get_char (chunk_end); - chunk_len++; - } - - chunk = _g_utf8_strndup (chunk_start, chunk_len); - str_list = g_list_prepend (str_list, chunk); - n++; - - chunk_start = chunk_end; - } - - str_vect = g_new (char*, n + 1); - - str_vect[n--] = NULL; - for (scan = str_list; scan; scan = scan->next) - str_vect[n--] = scan->data; - - g_list_free (str_list); - - return str_vect; -} - - -char * -_g_get_name_from_template (char **utf8_template, - int n) -{ - GString *s; - int i; - char *result; - - s = g_string_new (NULL); - - for (i = 0; utf8_template[i] != NULL; i++) { - const char *chunk = utf8_template[i]; - gunichar ch = g_utf8_get_char (chunk); - - if (ch != '#') - g_string_append (s, chunk); - else { - char *s_n; - int s_n_len; - int sharps_len = g_utf8_strlen (chunk, -1); - - s_n = g_strdup_printf ("%d", n); - s_n_len = strlen (s_n); - - while (s_n_len < sharps_len) { - g_string_append_c (s, '0'); - sharps_len--; - } - - g_string_append (s, s_n); - g_free (s_n); - } - } - - result = s->str; - g_string_free (s, FALSE); - - return result; -} - - -char * -_g_replace (const char *str, - const char *from_str, - const char *to_str) -{ - char **tokens; - int i; - GString *gstr; - - if (str == NULL) - return NULL; - - if (from_str == NULL) - return g_strdup (str); - - if (strcmp (str, from_str) == 0) - return g_strdup (to_str); - - tokens = g_strsplit (str, from_str, -1); - - gstr = g_string_new (NULL); - for (i = 0; tokens[i] != NULL; i++) { - g_string_append (gstr, tokens[i]); - if ((to_str != NULL) && (tokens[i+1] != NULL)) - g_string_append (gstr, to_str); - } - - g_strfreev (tokens); - - return g_string_free (gstr, FALSE); -} - - -char * -_g_replace_pattern (const char *utf8_text, - gunichar pattern, - const char *value) -{ - const char *s; - GString *r; - char *r_str; - - if (utf8_text == NULL) - return NULL; - - if (g_utf8_strchr (utf8_text, -1, '%') == NULL) - return g_strdup (utf8_text); - - r = g_string_new (NULL); - for (s = utf8_text; *s != 0; s = g_utf8_next_char (s)) { - gunichar ch = g_utf8_get_char (s); - - if (ch == '%') { - s = g_utf8_next_char (s); - - if (*s == 0) { - g_string_append_unichar (r, ch); - break; - } - - ch = g_utf8_get_char (s); - if (ch == pattern) { - if (value) - g_string_append (r, value); - } - else { - g_string_append (r, "%"); - g_string_append_unichar (r, ch); - } - - } else - g_string_append_unichar (r, ch); - } - - r_str = r->str; - g_string_free (r, FALSE); - - return r_str; -} - - -int -_g_utf8_first_ascii_space (const char *str) -{ - const char *pos; - - pos = str; - while (pos != NULL) { - gunichar c = g_utf8_get_char (pos); - if (c == 0) - break; - if (g_ascii_isspace (c)) - return g_utf8_pointer_to_offset (str, pos); - pos = g_utf8_next_char (pos); - } - - return -1; -} - - -gboolean -_g_utf8_has_prefix (const char *string, - const char *prefix) -{ - char *substring; - gboolean result; - - if (string == NULL) - return FALSE; - if (prefix == NULL) - return TRUE; - - substring = g_utf8_substring (string, 0, g_utf8_strlen (prefix, -1)); - if (substring == NULL) - return FALSE; - - result = g_utf8_collate (substring, prefix) == 0; - g_free (substring); - - return result; -} - - -char * -_g_utf8_remove_prefix (const char *string, - int prefix_length) -{ - int str_length; - - str_length = g_utf8_strlen (string, -1); - if (str_length <= prefix_length) - return NULL; - - return g_utf8_substring (string, prefix_length, str_length); -} - - -char * -_g_utf8_replace (const char *string, - const char *pattern, - const char *replacement) -{ - GRegex *regex; - char *result; - - if (string == NULL) - return NULL; - - regex = g_regex_new (pattern, 0, 0, NULL); - if (regex == NULL) - return NULL; - - result = g_regex_replace_literal (regex, string, -1, 0, replacement, 0, NULL); - - g_regex_unref (regex); - - return result; -} +/* GList utils */ -char * -_g_utf8_strndup (const char *str, - gsize n) +GList * +_g_list_prepend_link (GList *list, + GList *link) { - const char *s = str; - char *result; - - while (n && *s) { - s = g_utf8_next_char (s); - n--; - } - - result = g_strndup (str, s - str); - - return result; + link->next = list; + if (list != NULL) list->prev = link; + return link; } -const char * -_g_utf8_strstr (const char *haystack, - const char *needle) +GList * +_g_list_insert_list_before (GList *list1, + GList *sibling, + GList *list2) { - const char *s; - glong i; - glong haystack_len = g_utf8_strlen (haystack, -1); - glong needle_len = g_utf8_strlen (needle, -1); - int needle_size = strlen (needle); - - s = haystack; - for (i = 0; i <= haystack_len - needle_len; i++) { - if (strncmp (s, needle, needle_size) == 0) - return s; - s = g_utf8_next_char(s); - } - - return NULL; -} - - -char ** -_g_utf8_strsplit (const char *string, - const char *delimiter, - int max_tokens) -{ - GSList *string_list = NULL, *slist; - char **str_array; - const char *s; - guint n = 0; - const char *remainder; - - g_return_val_if_fail (string != NULL, NULL); - g_return_val_if_fail (delimiter != NULL, NULL); - g_return_val_if_fail (delimiter[0] != '\0', NULL); - - if (max_tokens < 1) - max_tokens = G_MAXINT; - - remainder = string; - s = _g_utf8_strstr (remainder, delimiter); - if (s != NULL) { - gsize delimiter_size = strlen (delimiter); - - while (--max_tokens && (s != NULL)) { - gsize size = s - remainder; - char *new_string; - - new_string = g_new (char, size + 1); - strncpy (new_string, remainder, size); - new_string[size] = 0; - - string_list = g_slist_prepend (string_list, new_string); - n++; - remainder = s + delimiter_size; - s = _g_utf8_strstr (remainder, delimiter); - } - } - if (*string) { - n++; - string_list = g_slist_prepend (string_list, g_strdup (remainder)); + if (!list2) + { + return list1; + } + else if (!list1) + { + return list2; + } + else if (sibling) + { + GList *list2_last = g_list_last (list2); + if (sibling->prev) + { + sibling->prev->next = list2; + list2->prev = sibling->prev; + sibling->prev = list2_last; + list2_last->next = sibling; + return list1; } - - str_array = g_new (char*, n + 1); - - str_array[n--] = NULL; - for (slist = string_list; slist; slist = slist->next) - str_array[n--] = slist->data; - - g_slist_free (string_list); - - return str_array; -} - - -char * -_g_utf8_strstrip (const char *str) -{ - if (str == NULL) - return NULL; - return g_strstrip (g_strdup (str)); -} - - -gboolean -_g_utf8_all_spaces (const char *utf8_string) -{ - gunichar c; - - if (utf8_string == NULL) - return TRUE; - - c = g_utf8_get_char (utf8_string); - while (c != 0) { - if (! g_unichar_isspace (c)) - return FALSE; - utf8_string = g_utf8_next_char (utf8_string); - c = g_utf8_get_char (utf8_string); + else + { + sibling->prev = list2_last; + list2_last->next = sibling; + return list2; } - - return TRUE; -} - - -char * -_g_utf8_remove_extension (const char *str) -{ - char *p; - char *ext; - char *dest; - - if ((str == NULL) || ! g_utf8_validate (str, -1, NULL)) - return NULL; - - p = (char *) str; - ext = g_utf8_strrchr (p, -1, g_utf8_get_char (".")); - dest = g_strdup (p); - g_utf8_strncpy (dest, p, g_utf8_strlen (p, -1) - g_utf8_strlen (ext, -1)); - - return dest; -} - - -char * -_g_utf8_try_from_any (const char *str) -{ - char *utf8_str; - - if (str == NULL) - return NULL; - - if (! g_utf8_validate (str, -1, NULL)) - utf8_str = g_locale_to_utf8 (str, -1, NULL, NULL, NULL); - else - utf8_str = g_strdup (str); - - return utf8_str; + } + else + { + return g_list_concat (list1, list2); + } } -char * -_g_utf8_from_any (const char *str) -{ - char *utf8_str; - - if (str == NULL) - return NULL; - - utf8_str = _g_utf8_try_from_any (str); - if (utf8_str == NULL) - utf8_str = g_strdup (_("(invalid value)")); - - return utf8_str; -} - static int remove_from_file_list_and_get_position (GList **file_list, @@ -1215,468 +780,22 @@ } +/* GStringList */ + + +void +_g_string_list_free (GList *string_list) +{ + if (string_list == NULL) + return; + g_list_foreach (string_list, (GFunc) g_free, NULL); + g_list_free (string_list); + +} + + GList * -_g_list_insert_list_before (GList *list1, - GList *sibling, - GList *list2) -{ - if (!list2) - { - return list1; - } - else if (!list1) - { - return list2; - } - else if (sibling) - { - GList *list2_last = g_list_last (list2); - if (sibling->prev) - { - sibling->prev->next = list2; - list2->prev = sibling->prev; - sibling->prev = list2_last; - list2_last->next = sibling; - return list1; - } - else - { - sibling->prev = list2_last; - list2_last->next = sibling; - return list2; - } - } - else - { - return g_list_concat (list1, list2); - } -} - - -GHashTable *static_strings = NULL; -static GMutex static_strings_mutex; - - -const char * -get_static_string (const char *s) -{ - const char *result; - - if (s == NULL) - return NULL; - - g_mutex_lock (&static_strings_mutex); - - if (static_strings == NULL) - static_strings = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); - - if (! g_hash_table_lookup_extended (static_strings, s, (gpointer) &result, NULL)) { - result = g_strdup (s); - g_hash_table_insert (static_strings, - (gpointer) result, - GINT_TO_POINTER (1)); - } - - g_mutex_unlock (&static_strings_mutex); - - return result; -} - - -char * -_g_rand_string (int len) -{ - static char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; - static int letters_only = 52; - static int whole_alphabet = 62; - char *s; - GRand *rand_gen; - int i; - - s = g_malloc (sizeof (char) * (len + 1)); - rand_gen = g_rand_new (); - for (i = 0; i < len; i++) - s[i] = alphabet[g_rand_int_range (rand_gen, 0, (i == 0) ? letters_only : whole_alphabet)]; - g_rand_free (rand_gen); - s[len] = 0; - - return s; -} - - -int -_g_strv_find (char **v, - const char *s) -{ - int i; - - for (i = 0; v[i] != NULL; i++) { - if (strcmp (v[i], s) == 0) - return i; - } - - return -1; -} - - -gboolean -_g_strv_contains (char **v, - const char *s) -{ - return (_g_strv_find (v, s) >= 0); -} - - -char ** -_g_strv_prepend (char **str_array, - const char *str) -{ - char **result; - int i; - int j; - - result = g_new (char *, g_strv_length (str_array) + 1); - i = 0; - result[i++] = g_strdup (str); - for (j = 0; str_array[j] != NULL; j++) - result[i++] = g_strdup (str_array[j]); - result[i] = NULL; - - return result; -} - - -char ** -_g_strv_concat (char **strv1, - char **strv2) -{ - char **result; - int i, j; - - result = g_new (char *, g_strv_length (strv1) + g_strv_length (strv2) + 1); - i = 0; - for (j = 0; strv1[j] != NULL; j++) - result[i++] = g_strdup (strv1[j]); - for (j = 0; strv2[j] != NULL; j++) - result[i++] = g_strdup (strv2[j]); - result[i] = NULL; - - return result; -} - - -gboolean -_g_strv_remove (char **str_array, - const char *str) -{ - int i; - int j; - - if (str == NULL) - return FALSE; - - for (i = 0; str_array[i] != NULL; i++) - if (strcmp (str_array[i], str) == 0) - break; - - if (str_array[i] == NULL) - return FALSE; - - for (j = i; str_array[j] != NULL; j++) - str_array[j] = str_array[j + 1]; - - return TRUE; -} - - -char * -_g_str_remove_suffix (const char *s, - const char *suffix) -{ - int s_len; - int suffix_len; - - if (s == NULL) - return NULL; - if (suffix == NULL) - return g_strdup (s); - - s_len = strlen (s); - suffix_len = strlen (suffix); - - if (suffix_len >= s_len) - return g_strdup (""); - else - return g_strndup (s, s_len - suffix_len); -} - - -/* based on glib/glib/gmarkup.c (Copyright 2000, 2003 Red Hat, Inc.) - * This version does not escape ' and ''. Needed because IE does not recognize - * ' and " */ -void -_g_string_append_for_html (GString *str, - const char *text, - gssize length) -{ - const gchar *p; - const gchar *end; - gunichar ch; - int state = 0; - - p = text; - end = text + length; - - while (p != end) { - const char *next; - - next = g_utf8_next_char (p); - ch = g_utf8_get_char (p); - - switch (state) { - case 1: /* escaped */ - if ((ch > 127) || ! g_ascii_isprint ((char) ch)) - g_string_append_printf (str, "\\&#%d;", ch); - else - g_string_append_unichar (str, ch); - state = 0; - break; - - default: /* not escaped */ - switch (*p) { - case '\\': - state = 1; /* next character is escaped */ - break; - - case '&': - g_string_append (str, "&"); - break; - - case '<': - g_string_append (str, "<"); - break; - - case '>': - g_string_append (str, ">"); - break; - - case '\n': - g_string_append (str, "
"); - break; - - default: - if ((ch > 127) || ! g_ascii_isprint ((char)ch)) - g_string_append_printf (str, "&#%d;", ch); - else - g_string_append_unichar (str, ch); - state = 0; - break; - } - break; - } - - p = next; - } -} - - -char * -_g_escape_for_html (const char *text, - gssize length) -{ - GString *str; - - g_return_val_if_fail (text != NULL, NULL); - - if (length < 0) - length = strlen (text); - - /* prealloc at least as long as original text */ - str = g_string_sized_new (length); - _g_string_append_for_html (str, text, length); - - return g_string_free (str, FALSE); -} - - -/* Array utils*/ - - -char * -_g_string_array_join (GPtrArray *array, - const char *separator) -{ - GString *s; - int i; - - s = g_string_new (""); - for (i = 0; i < array->len; i++) { - if ((i > 0) && (separator != NULL)) - g_string_append (s, separator); - g_string_append (s, g_ptr_array_index (array, i)); - } - - return g_string_free (s, FALSE); -} - - -/* Regexp utils */ - -static char ** -get_patterns_from_pattern (const char *pattern_string) -{ - char **patterns; - int i; - - if (pattern_string == NULL) - return NULL; - - patterns = _g_utf8_strsplit (pattern_string, ";", MAX_PATTERNS); - for (i = 0; patterns[i] != NULL; i++) { - char *p1, *p2; - - p1 = _g_utf8_strstrip (patterns[i]); - p2 = _g_replace (p1, ".", "\\."); - patterns[i] = _g_replace (p2, "*", ".*"); - - g_free (p2); - g_free (p1); - } - - return patterns; -} - - -GRegex ** -get_regexps_from_pattern (const char *pattern_string, - GRegexCompileFlags compile_options) -{ - char **patterns; - GRegex **regexps; - int i; - - patterns = get_patterns_from_pattern (pattern_string); - if (patterns == NULL) - return NULL; - - regexps = g_new0 (GRegex*, g_strv_length (patterns) + 1); - for (i = 0; patterns[i] != NULL; i++) - regexps[i] = g_regex_new (patterns[i], - G_REGEX_OPTIMIZE | compile_options, - G_REGEX_MATCH_NOTEMPTY, - NULL); - g_strfreev (patterns); - - return regexps; -} - - -gboolean -string_matches_regexps (GRegex **regexps, - const char *string, - GRegexMatchFlags match_options) -{ - gboolean matched; - int i; - - if ((regexps == NULL) || (regexps[0] == NULL)) - return TRUE; - - if (string == NULL) - return FALSE; - - matched = FALSE; - for (i = 0; regexps[i] != NULL; i++) - if (g_regex_match (regexps[i], string, match_options, NULL)) { - matched = TRUE; - break; - } - - return matched; -} - - -void -free_regexps (GRegex **regexps) -{ - int i; - - if (regexps == NULL) - return; - - for (i = 0; regexps[i] != NULL; i++) - g_regex_unref (regexps[i]); - g_free (regexps); -} - - -/* URI utils */ - - -const char * -get_home_uri (void) -{ - static char *home_uri = NULL; - - if (home_uri == NULL) { - const char *path; - char *uri; - - path = g_get_home_dir (); - uri = g_uri_escape_string (path, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE); - - home_uri = g_strconcat ("file://", uri, NULL); - - g_free (uri); - } - - return home_uri; -} - - -int -uricmp (const char *uri1, - const char *uri2) -{ - if (uri1 == NULL) { - if (uri2 == NULL) - return 0; - else - return -1; - } - - if (uri2 == NULL) { - if (uri1 == NULL) - return 0; - else - return 1; - } - - return g_strcmp0 (uri1, uri2); -} - - -gboolean -same_uri (const char *uri1, - const char *uri2) -{ - return uricmp (uri1, uri2) == 0; -} - - -void -_g_string_list_free (GList *string_list) -{ - if (string_list == NULL) - return; - g_list_foreach (string_list, (GFunc) g_free, NULL); - g_list_free (string_list); - -} - - -GList * -_g_string_list_dup (GList *string_list) +_g_string_list_dup (GList *string_list) { GList *new_list = NULL; GList *scan; @@ -1697,7 +816,7 @@ strv = g_new0 (char *, g_list_length (string_list) + 1); for (scan = string_list, i = 0; scan; scan = scan->next) - strv[i++] = g_strdup ((char *)scan->data); + strv[i++] = g_strdup ((char *) scan->data); strv[i++] = NULL; return strv; @@ -1713,381 +832,201 @@ (GBoxedFreeFunc) _g_string_list_free) -GList * -get_file_list_from_url_list (char *url_list) -{ - GList *list = NULL; - int i; - char *url_start, *url_end; - - url_start = url_list; - while (url_start[0] != '\0') { - char *url; - - if (strncmp (url_start, "file:", 5) == 0) { - url_start += 5; - if ((url_start[0] == '/') - && (url_start[1] == '/')) url_start += 2; - } - - i = 0; - while ((url_start[i] != '\0') - && (url_start[i] != '\r') - && (url_start[i] != '\n')) i++; - url_end = url_start + i; - - url = g_strndup (url_start, url_end - url_start); - list = g_list_prepend (list, url); - - url_start = url_end; - i = 0; - while ((url_start[i] != '\0') - && ((url_start[i] == '\r') - || (url_start[i] == '\n'))) i++; - url_start += i; - } - - return g_list_reverse (list); -} - - -const char * -_g_uri_get_basename (const char *uri) -{ - register char *base; - register gssize last_char; - - if (uri == NULL) - return NULL; - - if (uri[0] == '\0') - return ""; - - last_char = strlen (uri) - 1; - - if (uri[last_char] == G_DIR_SEPARATOR) - return ""; - - base = g_utf8_strrchr (uri, -1, G_DIR_SEPARATOR); - if (! base) - return uri; - - return base + 1; -} - - -const char * -_g_uri_get_file_extension (const char *uri) -{ - char *p; - - if (uri == NULL) - return NULL; - - p = strrchr (uri, '.'); - if (p == NULL) - return NULL; - - if (p != uri) { - char *p2; - - p2 = p - 1; - while ((*p2 != '.') && (p2 != uri)) - p2--; - if (strncmp (p2, ".tar.", 5) == 0) - p = p2; - } - - return p; -} - - -static gboolean -uri_is_filetype (const char *uri, - GFileType file_type) -{ - gboolean result = FALSE; - GFile *file; - GFileInfo *info; - GError *error = NULL; - - file = g_file_new_for_uri (uri); - - if (! g_file_query_exists (file, NULL)) { - g_object_unref (file); - return FALSE; - } - - info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE, 0, NULL, &error); - if (error == NULL) { - result = (g_file_info_get_file_type (info) == file_type); - } - else { - g_warning ("Failed to get file type for uri %s: %s", uri, error->message); - g_error_free (error); - } - - g_object_unref (info); - g_object_unref (file); - - return result; -} - - -gboolean -_g_uri_is_file (const char *uri) -{ - return uri_is_filetype (uri, G_FILE_TYPE_REGULAR); -} - - -gboolean -_g_uri_is_dir (const char *uri) -{ - return uri_is_filetype (uri, G_FILE_TYPE_DIRECTORY); -} - - -gboolean -_g_uri_parent_of_uri (const char *dirname, - const char *filename) -{ - int dirname_l, filename_l, separator_position; - - if ((dirname == NULL) || (filename == NULL)) - return FALSE; - - dirname_l = strlen (dirname); - filename_l = strlen (filename); - - if ((dirname_l == filename_l + 1) - && (dirname[dirname_l - 1] == '/')) - return FALSE; - - if ((filename_l == dirname_l + 1) - && (filename[filename_l - 1] == '/')) - return FALSE; - - if (dirname[dirname_l - 1] == '/') - separator_position = dirname_l - 1; - else - separator_position = dirname_l; - - return ((filename_l > dirname_l) - && (strncmp (dirname, filename, dirname_l) == 0) - && (filename[separator_position] == '/')); -} +/* Array utils*/ char * -_g_uri_get_parent (const char *uri) +_g_string_array_join (GPtrArray *array, + const char *separator) { - int p; - const char *ptr = uri; - char *new_uri; + GString *s; + int i; - if (uri == NULL) - return NULL; + s = g_string_new (""); + for (i = 0; i < array->len; i++) { + if ((i > 0) && (separator != NULL)) + g_string_append (s, separator); + g_string_append (s, g_ptr_array_index (array, i)); + } - p = strlen (uri) - 1; - if (p < 0) - return NULL; + return g_string_free (s, FALSE); +} - while ((p > 0) && (ptr[p] != '/')) - p--; - if ((p == 0) && (ptr[p] == '/')) - p++; - new_uri = g_strndup (uri, (guint)p); - return new_uri; -} +/* Regexp utils */ -char * -_g_uri_remove_extension (const char *uri) -{ - const char *ext; +/* A pattern is a simpler version of a regexp, where + * dots are literal and asterisks mean any sequence of characters. */ +static char * +_pattern_to_regexp (const char *pattern) +{ + char *tmp; + char *regexp; + + tmp = _g_utf8_strip (pattern); + regexp = _g_utf8_translate (tmp, + ".", "\\.", + "*", ".*", + NULL); - if (uri == NULL) - return NULL; + g_free (tmp); - ext = _g_uri_get_file_extension (uri); - if (ext == NULL) - return g_strdup (uri); - else - return g_strndup (uri, strlen (uri) - strlen (ext)); + return regexp; } -char * -_g_build_uri (const char *base, ...) +static char ** +_split_patterns (const char *pattern, + int *p_size) { - va_list args; - const char *child; - GString *uri; + char **strv; + int i; + int size; - uri = g_string_new (base); + if (pattern == NULL) + return NULL; - va_start (args, base); - while ((child = va_arg (args, const char *)) != NULL) { - if (! g_str_has_suffix (uri->str, "/") && ! g_str_has_prefix (child, "/")) - g_string_append (uri, "/"); - g_string_append (uri, child); - } - va_end (args); + strv = _g_utf8_split (pattern, ";", MAX_PATTERNS); + size = 0; + for (i = 0; strv[i] != NULL; i++) { + char *tmp; - return g_string_free (uri, FALSE); -} + tmp = strv[i]; + strv[i] = _pattern_to_regexp (strv[i]); + size++; + g_free (tmp); + } -char * -_g_uri_get_scheme (const char *uri) -{ - const char *idx; + if (p_size != NULL) *p_size = size; - idx = strstr (uri, "://"); - if (idx == NULL) - return NULL; - else - return g_strndup (uri, (idx - uri) + 3); + return strv; } -const char * -_g_uri_remove_host (const char *uri) +GRegex ** +_g_regex_v_from_pattern (const char *pattern, + GRegexCompileFlags compile_options) { - const char *idx, *sep; + char **patternv; + int size; + GRegex **regexps; + int i; - if (uri == NULL) + patternv = _split_patterns (pattern, &size); + if (patternv == NULL) return NULL; - idx = strstr (uri, "://"); - if (idx == NULL) - return uri; - - idx += 3; - if (*idx == '\0') - return "/"; - - sep = strstr (idx, "/"); - if (sep == NULL) - return idx; + regexps = g_new0 (GRegex*, size + 1); + for (i = 0; patternv[i] != NULL; i++) { + regexps[i] = g_regex_new (patternv[i], + G_REGEX_OPTIMIZE | compile_options, + G_REGEX_MATCH_NOTEMPTY, + NULL); + } + g_strfreev (patternv); - return sep; + return regexps; } -char * -_g_uri_get_host (const char *uri) +gboolean +_g_regex_v_match (GRegex **regexps, + const char *str, + GRegexMatchFlags match_options) { - const char *idx; + gboolean matched; + int i; - idx = strstr (uri, "://"); - if (idx == NULL) - return g_strdup ("file://"); + if ((regexps == NULL) || (regexps[0] == NULL)) + return TRUE; - idx = strstr (idx + 3, "/"); - if (idx == NULL) { - char *scheme; + if (str == NULL) + return FALSE; - scheme = _g_uri_get_scheme (uri); - if (scheme == NULL) - scheme = g_strdup ("file://"); - return scheme; + matched = FALSE; + for (i = 0; regexps[i] != NULL; i++) + if (g_regex_match (regexps[i], str, match_options, NULL)) { + matched = TRUE; + break; } - return g_strndup (uri, (idx - uri)); + return matched; } -/* example 1 : uri = file:///xxx/yyy/zzz/foo - * base = file:///xxx/www - * return : ../yyy/zzz/foo - * - * example 2 : uri = file:///xxx/yyy/foo - * base = file:///xxx - * return : yyy/foo - * - * example 3 : uri = smb:///xxx/yyy/foo - * base = file://hhh/xxx - * return : smb:///xxx/yyy/foo - * - * example 4 : uri = file://hhh/xxx - * base = file://hhh/xxx - * return : ./ - */ -char * -_g_uri_get_relative_path (const char *uri, - const char *base) +void +_g_regex_v_free (GRegex **regexps) { - char *uri_host; - char *base_host; - gboolean same_host; - char *source_dir; - char **source_dir_v; - char **base_v; - GString *relative_path; - int i, j; + int i; - if ((uri == NULL) || (base == NULL)) - return NULL; + if (regexps == NULL) + return; + + for (i = 0; regexps[i] != NULL; i++) + g_regex_unref (regexps[i]); + g_free (regexps); +} - if (strcmp (uri, base) == 0) - return g_strdup ("./"); - uri_host = _g_uri_get_host (uri); - base_host = _g_uri_get_host (base); - same_host = g_str_equal (uri_host, base_host); +/* URI utils */ - g_free (base_host); - g_free (uri_host); - if (! same_host) - return g_strdup (uri); +static gboolean +_g_uri_query_is_filetype (const char *uri, + GFileType file_type) +{ + gboolean result = FALSE; + GFile *file; + GFileInfo *info; + GError *error = NULL; - source_dir = _g_uri_get_parent (_g_uri_remove_host (uri)); - source_dir_v = g_strsplit (source_dir, "/", 0); - base_v = g_strsplit (_g_uri_remove_host (base), "/", 0); + file = g_file_new_for_uri (uri); - relative_path = g_string_new (NULL); + if (! g_file_query_exists (file, NULL)) { + g_object_unref (file); + return FALSE; + } - i = 0; - while ((source_dir_v[i] != NULL) - && (base_v[i] != NULL) - && (strcmp (source_dir_v[i], base_v[i]) == 0)) - { - i++; + info = g_file_query_info (file, G_FILE_ATTRIBUTE_STANDARD_TYPE, 0, NULL, &error); + if (error == NULL) { + result = (g_file_info_get_file_type (info) == file_type); + } + else { + g_warning ("Failed to get file type for uri %s: %s", uri, error->message); + g_error_free (error); } - j = i; + g_object_unref (info); + g_object_unref (file); - while (base_v[i++] != NULL) - g_string_append (relative_path, "../"); + return result; +} - while (source_dir_v[j] != NULL) { - g_string_append (relative_path, source_dir_v[j]); - g_string_append_c (relative_path, '/'); - j++; - } - g_string_append (relative_path, _g_uri_get_basename (uri)); +gboolean +_g_uri_query_is_file (const char *uri) +{ + return _g_uri_query_is_filetype (uri, G_FILE_TYPE_REGULAR); +} - g_strfreev (base_v); - g_strfreev (source_dir_v); - g_free (source_dir); - return g_string_free (relative_path, FALSE); +gboolean +_g_uri_query_is_dir (const char *uri) +{ + return _g_uri_query_is_filetype (uri, G_FILE_TYPE_DIRECTORY); } char * _g_filename_clear_for_file (const char *display_name) { - return _g_utf8_replace (display_name, "/", "_"); + return _g_utf8_replace_str (display_name, "/", "_"); } -/* GIO utils */ +/* GFile utils */ GFile * @@ -2102,7 +1041,7 @@ base = g_file_new_for_uri (base_uri); name = g_strdup_printf ("%s%s", display_name, extension); - name_escaped = _g_utf8_replace (name, "/", "."); + name_escaped = _g_utf8_replace_str (name, "/", "."); catalog_file = g_file_get_child_for_display_name (base, name_escaped, NULL); g_free (name_escaped); @@ -2129,27 +1068,33 @@ char * _g_file_get_display_name (GFile *file) { - char *name = NULL; - GFileInfo *file_info; + char *name = NULL; + char *uri; + UriParts parts; + + uri = g_file_get_uri (file); + if (_g_uri_split (uri, &parts)) { + name = g_strdup (_g_path_get_basename (parts.path)); + if (name == NULL) { + if (parts.host != NULL) + name = g_strdup (parts.host); + else + name = g_strdup ("/"); + } - file_info = g_file_query_info (file, - G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME, - G_FILE_QUERY_INFO_NONE, - NULL, - NULL); - if (file_info != NULL) { - name = g_strdup (g_file_info_get_attribute_string (file_info, G_FILE_ATTRIBUTE_STANDARD_DISPLAY_NAME)); - g_object_unref (file_info); + _g_uri_parts_clear (&parts); } else - name = g_file_get_parse_name (file); + name = g_strdup (_("(invalid value)")); + + g_free (uri); return name; } GFileType -_g_file_get_standard_type (GFile *file) +_g_file_query_standard_type (GFile *file) { GFileType result; GFileInfo *info; @@ -2173,16 +1118,18 @@ GFile * _g_file_get_destination (GFile *source, - GFile *source_base, - GFile *destination_folder) + GFile *source_base, + GFile *destination_folder) { char *source_uri; + char *basename; const char *source_suffix; char *destination_folder_uri; char *destination_uri; GFile *destination; source_uri = g_file_get_uri (source); + basename = _g_uri_get_basename (source_uri); if (source_base != NULL) { char *source_base_uri; @@ -2192,7 +1139,7 @@ g_free (source_base_uri); } else - source_suffix = _g_uri_get_basename (source_uri); + source_suffix = basename; destination_folder_uri = g_file_get_uri (destination_folder); destination_uri = g_strconcat (destination_folder_uri, "/", source_suffix, NULL); @@ -2200,6 +1147,7 @@ g_free (destination_uri); g_free (destination_folder_uri); + g_free (basename); g_free (source_uri); return destination; @@ -2215,6 +1163,7 @@ GRegex *regex; GMatchInfo *match_info; GFile *duplicated; + char *ext; new_uri = g_string_new (""); uri = g_file_get_uri (file); @@ -2241,9 +1190,11 @@ g_string_append (new_uri, "%20(2)"); } - g_string_append (new_uri, _g_uri_get_file_extension (uri)); + ext = _g_uri_get_extension (uri); + g_string_append (new_uri, ext); duplicated = g_file_new_for_uri (new_uri->str); + g_free (ext); g_match_info_free (match_info); g_regex_unref (regex); g_free (uri_noext); @@ -2278,51 +1229,6 @@ } -GIcon * -_g_file_get_icon (GFile *file) -{ - GIcon *icon = NULL; - GFileInfo *file_info; - - file_info = g_file_query_info (file, - G_FILE_ATTRIBUTE_STANDARD_ICON, - G_FILE_QUERY_INFO_NONE, - NULL, - NULL); - if (file_info != NULL) { - icon = (GIcon*) g_object_ref (g_file_info_get_attribute_object (file_info, G_FILE_ATTRIBUTE_STANDARD_ICON)); - g_object_unref (file_info); - } - - if (icon == NULL) - icon = g_themed_icon_new ("file"); - - return icon; -} - -GIcon * -_g_file_get_symbolic_icon (GFile *file) -{ - GIcon *icon = NULL; - GFileInfo *file_info; - - file_info = g_file_query_info (file, - G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON, - G_FILE_QUERY_INFO_NONE, - NULL, - NULL); - if (file_info != NULL) { - icon = (GIcon*) g_object_ref (g_file_info_get_attribute_object (file_info, G_FILE_ATTRIBUTE_STANDARD_SYMBOLIC_ICON)); - g_object_unref (file_info); - } - - if (icon == NULL) - icon = g_themed_icon_new ("text-x-generic-symbolic"); - - return icon; -} - - GList * _g_file_list_dup (GList *l) { @@ -2344,16 +1250,6 @@ GList * -_g_file_list_new_from_uri_list (GList *uris) -{ - GList *r = NULL, *scan; - for (scan = uris; scan; scan = scan->next) - r = g_list_prepend (r, g_file_new_for_uri ((char*)scan->data)); - return g_list_reverse (r); -} - - -GList * _g_file_list_new_from_uriv (char **uris) { GList *r = NULL; @@ -2382,9 +1278,9 @@ } -const char* -_g_file_get_mime_type (GFile *file, - gboolean fast_file_type) +const char * +_g_file_query_mime_type (GFile *file, + gboolean fast_file_type) { GFileInfo *info; GError *err = NULL; @@ -2404,7 +1300,7 @@ g_clear_error (&err); } else { - result = get_static_string (g_content_type_get_mime_type (g_file_info_get_content_type (info))); + result = _g_str_get_static (g_content_type_get_mime_type (g_file_info_get_content_type (info))); g_object_unref (info); } @@ -2412,46 +1308,6 @@ } -void -_g_file_get_modification_time (GFile *file, - GTimeVal *result) -{ - GFileInfo *info; - GError *err = NULL; - - result->tv_sec = 0; - result->tv_usec = 0; - - info = g_file_query_info (file, - G_FILE_ATTRIBUTE_TIME_MODIFIED "," G_FILE_ATTRIBUTE_TIME_MODIFIED_USEC, - 0, - NULL, - &err); - if (info != NULL) { - g_file_info_get_modification_time (info, result); - g_object_unref (info); - } - else { - char *uri; - - uri = g_file_get_uri (file); - g_warning ("could not get modification time for %s: %s", uri, err->message); - g_free (uri); - g_clear_error (&err); - } -} - - -time_t -_g_file_get_mtime (GFile *file) -{ - GTimeVal timeval; - - _g_file_get_modification_time (file, &timeval); - return (time_t) timeval.tv_sec; -} - - int _g_file_cmp_uris (GFile *a, GFile *b) @@ -2472,201 +1328,63 @@ gboolean -_g_file_equal_uris (GFile *a, - GFile *b) -{ - return _g_file_cmp_uris (a, b) == 0; -} - - -int -_g_file_cmp_modification_time (GFile *file_a, - GFile *file_b) -{ - GTimeVal timeval_a; - GTimeVal timeval_b; - - _g_file_get_modification_time (file_a, &timeval_a); - _g_file_get_modification_time (file_b, &timeval_b); - - return _g_time_val_cmp (&timeval_a, &timeval_b); -} - - -goffset -_g_file_get_size (GFile *file) -{ - GFileInfo *info; - GError *err = NULL; - goffset size = 0; - - info = g_file_query_info (file, G_FILE_ATTRIBUTE_FILESYSTEM_SIZE, 0, NULL, &err); - if (info != NULL) { - size = g_file_info_get_size (info); - g_object_unref (info); - } - else { - char *uri; - - uri = g_file_get_uri (file); - g_warning ("could not get size for %s: %s", uri, err->message); - g_free (uri); - g_clear_error (&err); - } - - return size; -} - - -#define MAX_SYMLINKS 32 - - -static GFile * -resolve_symlinks (GFile *file, - GError **error, - int level) +_g_file_has_scheme (GFile *file, + const char *scheme) { - GFile *resolved; - char *path; - char **names; - int i; - - if (level > MAX_SYMLINKS) { - char *uri; - - uri = g_file_get_uri (file); - *error = g_error_new (G_IO_ERROR, G_IO_ERROR_TOO_MANY_LINKS, "Too many symbolic links for file: %s.", uri); - g_free (uri); - - return NULL; - } - - path = g_file_get_path (file); - if (path == NULL) - return g_file_dup (file); - - resolved = g_file_new_for_path (G_DIR_SEPARATOR_S); - - names = g_strsplit (path, G_DIR_SEPARATOR_S, -1); - for (i = 0; names[i] != NULL; i++) { - GFile *child; - GFileInfo *info; - GFile *new_resolved; - - if (strcmp (names[i], "") == 0) - continue; - - child = g_file_get_child (resolved, names[i]); - info = g_file_query_info (child, G_FILE_ATTRIBUTE_STANDARD_IS_SYMLINK "," G_FILE_ATTRIBUTE_STANDARD_SYMLINK_TARGET, 0, NULL, error); - if (info == NULL) { - g_object_unref (child); - g_object_unref (resolved); - resolved = NULL; - break; - } - - /* if names[i] isn't a symbolic link add it to the resolved path and continue */ - - if (! g_file_info_get_is_symlink (info)) { - g_object_unref (info); - g_object_unref (resolved); - resolved = child; - continue; - } - - g_object_unref (child); - - /* names[i] is a symbolic link */ - - new_resolved = g_file_resolve_relative_path (resolved, g_file_info_get_symlink_target (info)); - - g_object_unref (resolved); - g_object_unref (info); - - resolved = resolve_symlinks (new_resolved, error, level + 1); - - g_object_unref (new_resolved); - } - - g_strfreev (names); - g_free (path); + char *file_scheme; + gboolean result; - return resolved; -} + file_scheme = g_file_get_uri_scheme (file); + result = _g_str_equal (file_scheme, scheme); + g_free (file_scheme); -GFile * -_g_file_resolve_all_symlinks (GFile *file, - GError **error) -{ - return resolve_symlinks (file, error, 0); + return result; } gboolean -_g_file_has_prefix (GFile *file, - GFile *prefix) +_g_file_is_parent (GFile *dir, + GFile *file) { + char *dir_uri; char *file_uri; - char *prefix_uri; gboolean result; + dir_uri = g_file_get_uri (dir); file_uri = g_file_get_uri (file); - prefix_uri = g_file_get_uri (prefix); - if (! g_str_has_suffix (prefix_uri, "/")) { - char *tmp; - - tmp = g_strconcat (prefix_uri, "/", NULL); - g_free (prefix_uri); - prefix_uri = tmp; - } - result = g_str_has_prefix (file_uri, prefix_uri); + result = _g_uri_is_parent (dir_uri, file_uri); - g_free (prefix_uri); g_free (file_uri); + g_free (dir_uri); return result; } GFile * -_g_file_append_prefix (GFile *file, - const char *prefix) -{ - char *uri; - char *new_uri; - GFile *new_file; - - uri = g_file_get_uri (file); - new_uri = g_strconcat (prefix, uri, NULL); - new_file = g_file_new_for_uri (new_uri); - - g_free (new_uri); - g_free (uri); - - return new_file; -} - - -GFile * _g_file_append_path (GFile *file, const char *path) { - char *uri; - char *escaped; - char *new_uri; - GFile *new_file; + char *uri; + UriParts parts; + char *new_path; + char *new_uri; + GFile *new_file; if (path == NULL) return g_file_dup (file); uri = g_file_get_uri (file); - escaped = g_uri_escape_string (path, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, FALSE); - new_uri = _g_build_uri (uri, escaped, NULL); + _g_uri_split (uri, &parts); + new_path = _g_path_join (parts.path, path, NULL); + _g_str_set (&parts.path, new_path); + new_uri = _g_uri_join (&parts); new_file = g_file_new_for_uri (new_uri); g_free (new_uri); - g_free (escaped); + _g_uri_parts_clear (&parts); + g_free (new_path); g_free (uri); return new_file; @@ -2989,12 +1707,10 @@ return NULL; #if WEBP_IS_UNKNOWN_TO_GLIB - const char *ext; - - ext = _g_uri_get_file_extension (filename); - if (g_strcmp0 (ext, ".webp") == 0) + if (_g_str_equal (_g_path_get_extension (filename), ".webp")) return "image/webp"; #endif + return g_content_type_guess (filename, NULL, 0, NULL); } @@ -3082,17 +1798,19 @@ GError **error) { guchar buffer[BUFFER_SIZE_FOR_SNIFFING]; - gssize n = 0; + gsize n = 0; gboolean result_uncertain = FALSE; const char *content_type; - n = g_input_stream_read (istream, - buffer, - BUFFER_SIZE_FOR_SNIFFING, - cancellable, - error); - if (n < 0) + if (! g_input_stream_read_all (istream, + buffer, + BUFFER_SIZE_FOR_SNIFFING, + &n, + cancellable, + error)) + { return NULL; + } content_type = get_mime_type_from_magic_numbers (buffer, n); if (content_type == NULL) @@ -3123,15 +1841,17 @@ _g_mime_type_is_image (const char *mime_type) { g_return_val_if_fail (mime_type != NULL, FALSE); - return (g_content_type_is_a (mime_type, "image/*")); + + return g_content_type_is_a (mime_type, "image/*"); } gboolean _g_mime_type_is_raw (const char *mime_type) { - g_return_val_if_fail (mime_type != NULL, FALSE); - return (g_content_type_is_a (mime_type, "image/x-dcraw")); + g_return_val_if_fail (mime_type != NULL, FALSE); + + return g_content_type_is_a (mime_type, "image/x-dcraw"); } @@ -3156,6 +1876,17 @@ } +gboolean +_g_mime_type_has_transparency (const char *mime_type) +{ + g_return_val_if_fail (mime_type != NULL, FALSE); + + return (strcmp (mime_type, "image/png") == 0) + || (strcmp (mime_type, "image/gif") == 0) + || (strcmp (mime_type, "image/svg+xml") == 0); +} + + char * _g_settings_get_uri (GSettings *settings, const char *key) @@ -3169,7 +1900,7 @@ return NULL; } - uri = _g_replace (value, "file://~", get_home_uri ()); + uri = _g_utf8_replace_str (value, "file://~", _g_uri_get_home ()); g_free (value); @@ -3195,11 +1926,11 @@ if (dir != NULL) uri = g_filename_to_uri (dir, NULL, NULL); if (uri == NULL) - uri = g_strdup (get_home_uri ()); + uri = g_strdup (_g_uri_get_home ()); } else { char *tmp = uri; - uri = _g_replace (tmp, "file://~", get_home_uri ()); + uri = _g_utf8_replace_str (tmp, "file://~", _g_uri_get_home ()); g_free (tmp); } @@ -3308,13 +2039,31 @@ } -GList * -_g_list_prepend_link (GList *list, - GList *link) +char * +_g_format_str_for_file (const char *format, + GFile *file) { - link->next = list; - if (list != NULL) list->prev = link; - return link; + char *uri; + UriParts parts; + char *name; + char *str; + + uri = g_file_get_uri (file); + if (! _g_uri_split (uri, &parts) || (parts.path == NULL) || (parts.scheme == NULL)) + name = g_strdup (_("(invalid value)")); + else if (_g_str_equal (parts.scheme, "file")) + name = g_strdup (parts.path); + else if (parts.host != NULL) + name = g_strdup_printf ("%s://%s%s%s", parts.scheme, parts.host, ((parts.path[0] != '/') ? "/" : ""), parts.path); + else + name = g_strdup_printf ("%s://%s", parts.scheme, parts.path); + str = g_strdup_printf (format, name); + + g_free (name); + _g_uri_parts_clear (&parts); + g_free (uri); + + return str; } diff -Nru gthumb-3.8.3/gthumb/glib-utils.h gthumb-3.9.1/gthumb/glib-utils.h --- gthumb-3.8.3/gthumb/glib-utils.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/glib-utils.h 2020-03-07 19:03:13.513621000 +0000 @@ -3,7 +3,7 @@ /* * GThumb * - * Copyright (C) 2001-2008 Free Software Foundation, Inc. + * Copyright (C) 2001-2019 Free Software Foundation, Inc. * * 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 @@ -26,15 +26,17 @@ #include #include #include "typedefs.h" +#include "str-utils.h" +#include "uri-utils.h" G_BEGIN_DECLS /* Math */ -#define GDOUBLE_ROUND_TO_INT(x) ((int) floor ((x) + 0.5)) -#define SQR(x) ((x) * (x)) -#define MIN3(x,y,z) ((y) <= (z) ? MIN ((x), (y)) : MIN ((x), (z))) -#define MAX3(x,y,z) ((y) >= (z) ? MAX ((x), (y)) : MAX ((x), (z))) +#define GDOUBLE_ROUND_TO_INT(x) ((int) floor ((x) + 0.5)) +#define SQR(x) ((x) * (x)) +#define MIN3(x,y,z) ((y) <= (z) ? MIN ((x), (y)) : MIN ((x), (z))) +#define MAX3(x,y,z) ((y) >= (z) ? MAX ((x), (y)) : MAX ((x), (z))) /* GFile attributes */ @@ -42,7 +44,7 @@ #define GFILE_DISPLAY_ATTRIBUTES "standard::display-name,standard::icon,standard::symbolic-icon" #define GFILE_BASIC_ATTRIBUTES GFILE_DISPLAY_ATTRIBUTES ",standard::name,standard::type" -#define DEFINE_STANDARD_ATTRIBUTES(a) ( \ +#define DEFINE_STANDARD_ATTRIBUTES(rest) \ "standard::type," \ "standard::is-hidden," \ "standard::is-backup," \ @@ -58,52 +60,73 @@ "time::modified," \ "time::modified-usec," \ "access::*" \ - a) -#define GFILE_STANDARD_ATTRIBUTES (DEFINE_STANDARD_ATTRIBUTES("")) -#define GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE (DEFINE_STANDARD_ATTRIBUTES(",standard::fast-content-type")) -#define GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE (DEFINE_STANDARD_ATTRIBUTES(",standard::fast-content-type,standard::content-type")) -#define GIO_ATTRIBUTES ("standard::*,etag::*,id::*,access::*,mountable::*,time::*,unix::*,dos::*,owner::*,thumbnail::*,filesystem::*,gvfs::*,xattr::*,xattr-sys::*,selinux::*") + rest + +#define GFILE_STANDARD_ATTRIBUTES DEFINE_STANDARD_ATTRIBUTES("") +#define GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE DEFINE_STANDARD_ATTRIBUTES(",standard::fast-content-type") +#define GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE DEFINE_STANDARD_ATTRIBUTES(",standard::fast-content-type,standard::content-type") +#define GIO_ATTRIBUTES "standard::*,etag::*,id::*,access::*,mountable::*,time::*,unix::*,dos::*,owner::*,thumbnail::*,filesystem::*,gvfs::*,xattr::*,xattr-sys::*,selinux::*" #define GTH_FILE_ATTRIBUTE_EMBLEMS "gth::file::emblems" -#define GNOME_COPIED_FILES (gdk_atom_intern_static_string ("x-special/gnome-copied-files")) +#define GNOME_COPIED_FILES gdk_atom_intern_static_string ("x-special/gnome-copied-files") #define IROUND(x) ((int)floor(((double)x) + 0.5)) #define FLOAT_EQUAL(a,b) (fabs (a - b) < 1e-6) #define ID_LENGTH 8 -#define G_TYPE_OBJECT_LIST (g_object_list_get_type ()) -#define G_TYPE_STRING_LIST (g_string_list_get_type ()) -#ifndef G_TYPE_ERROR -#define NEED_G_TYPE_ERROR 1 -#define G_TYPE_ERROR (g_error_get_type ()) -#endif +#define G_TYPE_OBJECT_LIST g_object_list_get_type () +#define G_TYPE_STRING_LIST g_string_list_get_type () #define DEFAULT_STRFTIME_FORMAT "%Y-%m-%d--%H.%M.%S" -#define DEF_ACTION_CALLBACK(x) void x (GSimpleAction *action, GVariant *parameter, gpointer user_data); +#define DEF_ACTION_CALLBACK(name) void name (GSimpleAction *action, GVariant *parameter, gpointer user_data); /* signals */ -#define g_signal_handlers_disconnect_by_data(instance, data) \ - g_signal_handlers_disconnect_matched ((instance), G_SIGNAL_MATCH_DATA, \ - 0, 0, NULL, NULL, (data)) -#define g_signal_handlers_block_by_data(instance, data) \ - g_signal_handlers_block_matched ((instance), G_SIGNAL_MATCH_DATA, \ - 0, 0, NULL, NULL, (data)) -#define g_signal_handlers_unblock_by_data(instance, data) \ - g_signal_handlers_unblock_matched ((instance), G_SIGNAL_MATCH_DATA, \ - 0, 0, NULL, NULL, (data)) - -/* gobject utils */ - -gpointer _g_object_ref (gpointer object); -void _g_object_unref (gpointer object); -void _g_clear_object (gpointer object_p); -GList * _g_object_list_ref (GList *list); -void _g_object_list_unref (GList *list); -GType g_object_list_get_type (void); -GType g_error_get_type (void); -GEnumValue * _g_enum_type_get_value (GType enum_type, - int value); -GEnumValue * _g_enum_type_get_value_by_nick (GType enum_type, - const char *nick); +#define _g_signal_handlers_disconnect_by_data(instance, data) \ + g_signal_handlers_disconnect_matched ( \ + (instance), \ + G_SIGNAL_MATCH_DATA, \ + 0, \ + 0, \ + NULL, \ + NULL, \ + (data)) + +#define _g_signal_handlers_block_by_data(instance, data) \ + g_signal_handlers_block_matched ( \ + (instance), \ + G_SIGNAL_MATCH_DATA, \ + 0, \ + 0, \ + NULL, \ + NULL, \ + (data)) + +#define _g_signal_handlers_unblock_by_data(instance, data) \ + g_signal_handlers_unblock_matched ((instance), \ + G_SIGNAL_MATCH_DATA, \ + 0, \ + 0, \ + NULL, \ + NULL, \ + (data)) + +/* GObject utils */ + +gpointer _g_object_ref (gpointer object); +void _g_object_unref (gpointer object); +void _g_clear_object (gpointer object_p); + +/* GObjectList */ + +GList * _g_object_list_ref (GList *list); +void _g_object_list_unref (GList *list); +GType g_object_list_get_type (void); + +/* Enum type utils*/ + +GEnumValue * _g_enum_type_get_value (GType enum_type, + int value); +GEnumValue * _g_enum_type_get_value_by_nick (GType enum_type, + const char *nick); /* idle callback */ @@ -113,262 +136,189 @@ } IdleCall; -IdleCall* idle_call_new (DataFunc func, - gpointer data); -void idle_call_free (IdleCall *call); -guint idle_call_exec (IdleCall *call, - gboolean use_idle_cb); -guint call_when_idle (DataFunc func, - gpointer data); -void object_ready_with_error (gpointer object, - ReadyCallback ready_func, - gpointer user_data, - GError *error); -void ready_with_error (ReadyFunc ready_func, - gpointer user_data, - GError *error); +IdleCall * idle_call_new (DataFunc func, + gpointer data); +void idle_call_free (IdleCall *call); +guint idle_call_exec (IdleCall *call, + gboolean use_idle_cb); +guint call_when_idle (DataFunc func, + gpointer data); +void object_ready_with_error (gpointer object, + ReadyCallback ready_func, + gpointer user_data, + GError *error); +void ready_with_error (ReadyFunc ready_func, + gpointer user_data, + GError *error); /* debug */ -void debug (const char *file, - int line, - const char *function, - const char *format, - ...); -void performance (const char *file, - int line, - const char *function, - const char *format, - ...); +void debug (const char *file, + int line, + const char *function, + const char *format, + ...) G_GNUC_PRINTF (4, 5); +void performance (const char *file, + int line, + const char *function, + const char *format, + ...) G_GNUC_PRINTF (4, 5); #define DEBUG_INFO __FILE__, __LINE__, G_STRFUNC /* GTimeVal utils */ -char * struct_tm_strftime (struct tm *tm, - const char *format); -int _g_time_val_cmp (GTimeVal *a, - GTimeVal *b); -void _g_time_val_reset (GTimeVal *time_); -gboolean _g_time_val_from_exif_date (const char *exif_date, - GTimeVal *time_); -char * _g_time_val_to_exif_date (GTimeVal *time_); -char * _g_time_val_to_xmp_date (GTimeVal *time_); -char * _g_time_val_strftime (GTimeVal *time_, - const char *format); +char * _g_struct_tm_strftime (struct tm *tm, + const char *format); +int _g_time_val_cmp (GTimeVal *a, + GTimeVal *b); +void _g_time_val_reset (GTimeVal *time_); +gboolean _g_time_val_from_exif_date (const char *exif_date, + GTimeVal *time_); +char * _g_time_val_to_exif_date (GTimeVal *time_); +char * _g_time_val_to_xmp_date (GTimeVal *time_); +char * _g_time_val_strftime (GTimeVal *time_, + const char *format); /* Bookmark file utils */ -void _g_bookmark_file_clear (GBookmarkFile *bookmark); -void _g_bookmark_file_add_uri (GBookmarkFile *bookmark, - const char *uri); -void _g_bookmark_file_set_uris (GBookmarkFile *bookmark, - GList *uri_list); - -/* String utils */ - -void _g_strset (char **s, - const char *value); -char * _g_strdup_with_max_size (const char *s, - int max_size); -char ** _g_get_template_from_text (const char *s_template); -char * _g_get_name_from_template (char **s_template, - int num); -char * _g_replace (const char *str, - const char *from_str, - const char *to_str); -char * _g_replace_pattern (const char *utf8_text, - gunichar pattern, - const char *value); -int _g_utf8_first_ascii_space (const char *string); -gboolean _g_utf8_has_prefix (const char *string, - const char *prefix); -char * _g_utf8_remove_prefix (const char *string, - int prefix_length); -char * _g_utf8_replace (const char *string, - const char *pattern, - const char *replacement); -char * _g_utf8_strndup (const char *str, - gsize n); -const char * _g_utf8_strstr (const char *haystack, - const char *needle); -char ** _g_utf8_strsplit (const char *string, - const char *delimiter, - int max_tokens); -char * _g_utf8_strstrip (const char *str); -gboolean _g_utf8_all_spaces (const char *utf8_string); -char * _g_utf8_remove_extension (const char *str); -char * _g_utf8_try_from_any (const char *str); -char * _g_utf8_from_any (const char *str); -GList * _g_list_insert_list_before (GList *list1, - GList *sibling, - GList *list2); -void _g_list_reorder (GList *all_files, - GList *visible_files, - GList *files_to_move, - int dest_pos, - int **new_order_p, - GList **new_file_list_p); -const char * get_static_string (const char *s); -char * _g_rand_string (int len); -int _g_strv_find (char **v, - const char *s); -gboolean _g_strv_contains (char **v, - const char *s); -char ** _g_strv_prepend (char **str_array, - const char *str); -char ** _g_strv_concat (char **strv1, - char **strv2); -gboolean _g_strv_remove (char **str_array, - const char *str); -char * _g_str_remove_suffix (const char *s, - const char *suffix); -void _g_string_append_for_html (GString *str, - const char *text, - gssize length); -char * _g_escape_for_html (const char *text, - gssize length); +void _g_bookmark_file_clear (GBookmarkFile *bookmark); +void _g_bookmark_file_add_uri (GBookmarkFile *bookmark, + const char *uri); +void _g_bookmark_file_set_uris (GBookmarkFile *bookmark, + GList *uri_list); + +/* GList utils */ + +GList * _g_list_prepend_link (GList *list, + GList *link); +GList * _g_list_insert_list_before (GList *list1, + GList *sibling, + GList *list2); +void _g_list_reorder (GList *all_files, + GList *visible_files, + GList *files_to_move, + int dest_pos, + int **new_order_p, + GList **new_file_list_p); + +/* GStringList */ + +void _g_string_list_free (GList *string_list); +GList * _g_string_list_dup (GList *string_list); +char ** _g_string_list_to_strv (GList *string_list); +GType g_string_list_get_type (void); -/* Array utils*/ +/* Array utils */ -char * _g_string_array_join (GPtrArray *array, - const char *separator); +char * _g_string_array_join (GPtrArray *array, + const char *separator); /* Regexp utils */ -GRegex ** get_regexps_from_pattern (const char *pattern_string, - GRegexCompileFlags compile_options); -gboolean string_matches_regexps (GRegex **regexps, - const char *string, - GRegexMatchFlags match_options); -void free_regexps (GRegex **regexps); +GRegex ** _g_regex_v_from_pattern (const char *pattern_string, + GRegexCompileFlags + compile_options); +gboolean _g_regex_v_match (GRegex **regexps, + const char *string, + GRegexMatchFlags + match_options); +void _g_regex_v_free (GRegex **regexps); /* URI utils */ -const char * get_home_uri (void); -int uricmp (const char *uri1, - const char *uri2); -gboolean same_uri (const char *uri1, - const char *uri2); -void _g_string_list_free (GList *string_list); -GList * _g_string_list_dup (GList *string_list); -char ** _g_string_list_to_strv (GList *string_list); -GType g_string_list_get_type (void); -GList * get_file_list_from_url_list (char *url_list); -const char * _g_uri_get_basename (const char *uri); -const char * _g_uri_get_file_extension (const char *uri); -gboolean _g_uri_is_file (const char *uri); -gboolean _g_uri_is_dir (const char *uri); -gboolean _g_uri_parent_of_uri (const char *dir, - const char *file); -char * _g_uri_get_parent (const char *uri); -char * _g_uri_remove_extension (const char *uri); -char * _g_build_uri (const char *base, - ...) G_GNUC_NULL_TERMINATED; -char * _g_uri_get_scheme (const char *uri); -const char * _g_uri_remove_host (const char *uri); -char * _g_uri_get_host (const char *uri); -char * _g_uri_get_relative_path (const char *uri, - const char *base); -char * _g_filename_clear_for_file (const char *display_name); - -/* GIO utils */ - -GFile * _g_file_new_for_display_name (const char *base_uri, - const char *display_name, - const char *extension); -gboolean _g_file_equal (GFile *file1, - GFile *file2); -char * _g_file_get_display_name (GFile *file); -GFileType _g_file_get_standard_type (GFile *file); -GFile * _g_file_get_destination (GFile *source, - GFile *source_base, - GFile *destination_folder); -GFile * _g_file_get_duplicated (GFile *file); -GFile * _g_file_get_child (GFile *file, - ...) G_GNUC_NULL_TERMINATED; -GIcon * _g_file_get_icon (GFile *file); -GIcon * _g_file_get_symbolic_icon (GFile *file); -GList * _g_file_list_dup (GList *l); -void _g_file_list_free (GList *l); -GList * _g_file_list_new_from_uri_list (GList *uris); -GList * _g_file_list_new_from_uriv (char **uris); -GList * _g_file_list_find_file (GList *l, - GFile *file); -const char* _g_file_get_mime_type (GFile *file, - gboolean fast_file_type); -void _g_file_get_modification_time (GFile *file, - GTimeVal *result); -time_t _g_file_get_mtime (GFile *file); -int _g_file_cmp_uris (GFile *a, - GFile *b); -gboolean _g_file_equal_uris (GFile *a, - GFile *b); -int _g_file_cmp_modification_time (GFile *a, - GFile *b); -goffset _g_file_get_size (GFile *info); -GFile * _g_file_resolve_all_symlinks (GFile *file, - GError **error); -gboolean _g_file_has_prefix (GFile *file, - GFile *prefix); -GFile * _g_file_append_prefix (GFile *file, - const char *prefix); -GFile * _g_file_append_path (GFile *file, - const char *path); -gboolean _g_file_attributes_matches_all (const char *attributes, - const char *mask); -gboolean _g_file_attributes_matches_any (const char *attributes, - const char *mask); -gboolean _g_file_attributes_matches_any_v (const char *attributes, - char **attribute_v); -void _g_file_info_swap_attributes (GFileInfo *info, - const char *attr1, - const char *attr2); -void _g_file_info_set_secondary_sort_order - (GFileInfo *info, - gint32 sort_order); -gint32 _g_file_info_get_secondary_sort_order - (GFileInfo *info); -void _g_file_info_update (GFileInfo *dest_info, - GFileInfo *src_info); -const char * _g_content_type_guess_from_name (const char *filename); -gboolean _g_content_type_is_a (const char *type, - const char *supertype); -const char * _g_content_type_get_from_stream (GInputStream *istream, - GFile *file, /* optional */ - GCancellable *cancellable, - GError **error); -gboolean _g_mime_type_is_image (const char *mime_type); -gboolean _g_mime_type_is_raw (const char *mime_type); -gboolean _g_mime_type_is_video (const char *mime_type); -gboolean _g_mime_type_is_audio (const char *mime_type); +gboolean _g_uri_query_is_file (const char *uri); +gboolean _g_uri_query_is_dir (const char *uri); +char * _g_filename_clear_for_file (const char *display_name); + +/* GFile utils */ + +GFile * _g_file_new_for_display_name (const char *base_uri, + const char *display_name, + const char *extension); +gboolean _g_file_equal (GFile *file1, + GFile *file2); +char * _g_file_get_display_name (GFile *file); +GFileType _g_file_query_standard_type (GFile *file); +GFile * _g_file_get_destination (GFile *source, + GFile *source_base, + GFile *destination_folder); +GFile * _g_file_get_duplicated (GFile *file); +GFile * _g_file_get_child (GFile *file, + ...) G_GNUC_NULL_TERMINATED; +GList * _g_file_list_dup (GList *l); +void _g_file_list_free (GList *l); +GList * _g_file_list_new_from_uriv (char **uris); +GList * _g_file_list_find_file (GList *l, + GFile *file); +const char * _g_file_query_mime_type (GFile *file, + gboolean fast_file_type); +int _g_file_cmp_uris (GFile *a, + GFile *b); +gboolean _g_file_has_scheme (GFile *file, + const char *scheme); +gboolean _g_file_is_parent (GFile *dir, + GFile *file); +GFile * _g_file_append_path (GFile *file, + const char *path); +gboolean _g_file_attributes_matches_all (const char *attributes, + const char *mask); +gboolean _g_file_attributes_matches_any (const char *attributes, + const char *mask); +gboolean _g_file_attributes_matches_any_v(const char *attributes, + char **attribute_v); +void _g_file_info_swap_attributes (GFileInfo *info, + const char *attr1, + const char *attr2); +void _g_file_info_set_secondary_sort_order + (GFileInfo *info, + gint32 sort_order); +gint32 _g_file_info_get_secondary_sort_order + (GFileInfo *info); +void _g_file_info_update (GFileInfo *dest_info, + GFileInfo *src_info); + +/* MIME type utils */ + +const char * _g_content_type_guess_from_name (const char *filename); +gboolean _g_content_type_is_a (const char *type, + const char *supertype); +const char * _g_content_type_get_from_stream (GInputStream *istream, + GFile *file, /* optional */ + GCancellable *cancellable, + GError **error); +gboolean _g_mime_type_is_image (const char *mime_type); +gboolean _g_mime_type_is_raw (const char *mime_type); +gboolean _g_mime_type_is_video (const char *mime_type); +gboolean _g_mime_type_is_audio (const char *mime_type); +gboolean _g_mime_type_has_transparency (const char *mime_type); /* GSettings utils */ -char * _g_settings_get_uri (GSettings *settings, - const char *key); -char * _g_settings_get_uri_or_special_dir - (GSettings *settings, - const char *key, - GUserDirectory directory); -void _g_settings_set_uri (GSettings *settings, - const char *key, - const char *uri); -void _g_settings_set_string_list (GSettings *settings, - const char *key, - GList *list); -GList * _g_settings_get_string_list (GSettings *settings, - const char *key); +char * _g_settings_get_uri (GSettings *settings, + const char *key); +char * _g_settings_get_uri_or_special_dir + (GSettings *settings, + const char *key, + GUserDirectory directory); +void _g_settings_set_uri (GSettings *settings, + const char *key, + const char *uri); +void _g_settings_set_string_list (GSettings *settings, + const char *key, + GList *list); +GList * _g_settings_get_string_list (GSettings *settings, + const char *key); GSettings * _g_settings_new_if_schema_installed - (const char *schema_name); + (const char *schema_name); /* Other */ -char * _g_format_duration_for_display (gint64 msecs); -GList * _g_list_prepend_link (GList *list, - GList *link); -void _g_error_free (GError *error); +char * _g_format_duration_for_display (gint64 msecs); +char * _g_format_str_for_file (const char *format, + GFile *file); +void _g_error_free (GError *error); DEF_ACTION_CALLBACK (toggle_action_activated) diff -Nru gthumb-3.8.3/gthumb/gth-accel-button.c gthumb-3.9.1/gthumb/gth-accel-button.c --- gthumb-3.8.3/gthumb/gth-accel-button.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-accel-button.c 2020-03-07 19:03:13.513621000 +0000 @@ -24,6 +24,8 @@ #include #include #include "gth-accel-button.h" +#include "gth-accel-dialog.h" +#include "gth-marshal.h" #include "gtk-utils.h" @@ -36,6 +38,7 @@ /* Signals */ enum { + CHANGE_VALUE, CHANGED, LAST_SIGNAL }; @@ -116,6 +119,18 @@ } +static gboolean +gth_accel_button_real_change_value (GthAccelButton *accel_button, + guint keycode, + GdkModifierType modifiers) +{ + if (gth_accel_button_set_accelerator (accel_button, keycode, modifiers)) + return GDK_EVENT_PROPAGATE; + else + return GDK_EVENT_STOP; +} + + static void gth_accel_button_class_init (GthAccelButtonClass *klass) { @@ -126,6 +141,8 @@ object_class->get_property = gth_accel_button_get_property; object_class->finalize = gth_accel_button_finalize; + klass->change_value = gth_accel_button_real_change_value; + /* properties */ g_object_class_install_property (object_class, @@ -148,6 +165,17 @@ /* signals */ + gth_accel_button_signals[CHANGE_VALUE] = + g_signal_new ("change-value", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GthAccelButtonClass, change_value), + g_signal_accumulator_true_handled, NULL, + gth_marshal_BOOLEAN__UINT_ENUM, + G_TYPE_BOOLEAN, + 2, + G_TYPE_UINT, + GDK_TYPE_MODIFIER_TYPE); gth_accel_button_signals[CHANGED] = g_signal_new ("changed", G_TYPE_FROM_CLASS (klass), @@ -174,7 +202,22 @@ } -#define _RESPONSE_RESET 10 +static gboolean +change_value (GthAccelButton *accel_button, + guint keycode, + GdkModifierType modifiers) +{ + gboolean result = GDK_EVENT_PROPAGATE; + + g_signal_emit (accel_button, + gth_accel_button_signals[CHANGE_VALUE], + 0, + keycode, + modifiers, + &result); + + return result == GDK_EVENT_PROPAGATE; +} static void @@ -182,82 +225,43 @@ gint response_id, gpointer user_data) { - GthAccelButton *accel_button = user_data; + GthAccelButton *accel_button = user_data; + guint keycode; + GdkModifierType modifiers; switch (response_id) { + case GTK_RESPONSE_OK: + if (gth_accel_dialog_get_accel (GTH_ACCEL_DIALOG (dialog), &keycode, &modifiers)) + if (change_value (accel_button, keycode, modifiers)) + gtk_widget_destroy (GTK_WIDGET (dialog)); + break; case GTK_RESPONSE_CANCEL: gtk_widget_destroy (GTK_WIDGET (dialog)); break; - case _RESPONSE_RESET: - gth_accel_button_set_accelerator (accel_button, 0, 0); + case GTH_ACCEL_BUTTON_RESPONSE_DELETE: + change_value (accel_button, 0, 0); gtk_widget_destroy (GTK_WIDGET (dialog)); break; } } -static gboolean -accel_dialog_keypress_cb (GtkWidget *widget, - GdkEventKey *event, - gpointer user_data) -{ - GthAccelButton *accel_button = user_data; - GdkModifierType modifiers; - - if (event->keyval == GDK_KEY_Escape) - return FALSE; - - modifiers = event->state & gtk_accelerator_get_default_mod_mask (); - if (gth_accel_button_set_accelerator (accel_button, event->keyval, modifiers)) - gtk_widget_destroy (widget); - - return TRUE; -} - - static void button_clicked_cb (GtkButton *button, gpointer user_data) { - GtkWidget *dialog, *box, *label, *secondary_label, *content_area; - - dialog = g_object_new (GTK_TYPE_DIALOG, - "use-header-bar", _gtk_settings_get_dialogs_use_header (), - "modal", TRUE, - "transient-for", gtk_widget_get_toplevel (GTK_WIDGET (button)), - "resizable", FALSE, - "title", _("Shortcut"), - NULL); - gtk_dialog_add_buttons (GTK_DIALOG (dialog), - _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, - ! gth_accel_button_get_valid (GTH_ACCEL_BUTTON (button)) ? NULL : _GTK_LABEL_DELETE, - _RESPONSE_RESET, - NULL); - - content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog)); - - label = gtk_label_new (_("Press a combination of keys to use as shortcut.")); - secondary_label = gtk_label_new (_("Press Esc to cancel")); - gtk_style_context_add_class (gtk_widget_get_style_context (secondary_label), "dim-label"); - box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 50); - gtk_widget_set_margin_top (box, 50); - gtk_widget_set_margin_bottom (box, 50); - gtk_widget_set_margin_start (box, 50); - gtk_widget_set_margin_end (box, 50); - gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); - gtk_box_pack_start (GTK_BOX (box), secondary_label, TRUE, TRUE, 0); + GthAccelButton *accel_button = GTH_ACCEL_BUTTON (button); + GtkWidget *dialog; + dialog = gth_accel_dialog_new (_("Shortcut"), + _gtk_widget_get_toplevel_if_window (GTK_WIDGET (button)), + accel_button->priv->keyval, + accel_button->priv->modifiers); g_signal_connect (dialog, "response", G_CALLBACK (accel_dialog_response_cb), button); - g_signal_connect (dialog, - "key-press-event", - G_CALLBACK (accel_dialog_keypress_cb), - button); - - gtk_container_add (GTK_CONTAINER (content_area), box); - gtk_widget_show_all (dialog); + gtk_widget_show (dialog); } @@ -297,6 +301,7 @@ self->priv->modifiers = modifiers; _update_label (self); + g_signal_emit (self, gth_accel_button_signals[CHANGED], 0); return self->priv->valid; } diff -Nru gthumb-3.8.3/gthumb/gth-accel-button.h gthumb-3.9.1/gthumb/gth-accel-button.h --- gthumb-3.8.3/gthumb/gth-accel-button.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-accel-button.h 2020-03-07 19:03:13.513621000 +0000 @@ -47,7 +47,10 @@ /*< signals >*/ - void (*changed) (GthAccelButton *accel_button); + gboolean (*change_value) (GthAccelButton *accel_button, + guint keycode, + GdkModifierType modifiers); + void (*changed) (GthAccelButton *accel_button); }; GType gth_accel_button_get_type (void) G_GNUC_CONST; diff -Nru gthumb-3.8.3/gthumb/gth-accel-dialog.c gthumb-3.9.1/gthumb/gth-accel-dialog.c --- gthumb-3.8.3/gthumb/gth-accel-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-accel-dialog.c 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,180 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include +#include "gth-accel-dialog.h" +#include "gtk-utils.h" +#include "gth-shortcut.h" + + +struct _GthAccelDialogPrivate { + guint keycode; + GdkModifierType modifiers; + gboolean valid; +}; + + +G_DEFINE_TYPE_WITH_CODE (GthAccelDialog, + gth_accel_dialog, + GTK_TYPE_DIALOG, + G_ADD_PRIVATE (GthAccelDialog)) + + +static void +gth_accel_dialog_finalize (GObject *object) +{ + /*GthAccelDialog *self; + + self = GTH_ACCEL_DIALOG (object);*/ + + G_OBJECT_CLASS (gth_accel_dialog_parent_class)->finalize (object); +} + + +static void +gth_accel_dialog_class_init (GthAccelDialogClass *class) +{ + GObjectClass *object_class; + + object_class = (GObjectClass*) class; + object_class->finalize = gth_accel_dialog_finalize; +} + + +static void +gth_accel_dialog_init (GthAccelDialog *self) +{ + self->priv = gth_accel_dialog_get_instance_private (self); + self->priv->keycode = 0; + self->priv->modifiers = 0; + self->priv->valid = FALSE; +} + + +static gboolean +accel_dialog_keypress_cb (GtkWidget *widget, + GdkEventKey *event, + gpointer user_data) +{ + GthAccelDialog *self = user_data; + GdkModifierType modifiers; + + if (event->keyval == GDK_KEY_Escape) + return FALSE; + + modifiers = event->state & gtk_accelerator_get_default_mod_mask (); + if (gth_shortcut_valid (event->keyval, modifiers)) { + self->priv->keycode = event->keyval; + self->priv->modifiers = modifiers; + self->priv->valid = TRUE; + gtk_dialog_response (GTK_DIALOG (self), GTK_RESPONSE_OK); + } + else + self->priv->valid = FALSE; + + return TRUE; +} + + +static void +gth_accel_dialog_construct (GthAccelDialog *self, + const char *title, + GtkWindow *parent, + guint keycode, + GdkModifierType modifiers) +{ + gboolean valid; + GtkWidget *box; + GtkWidget *label; + GtkWidget *secondary_label; + GtkWidget *content_area; + + valid = gth_shortcut_valid (keycode, modifiers); + gtk_dialog_add_buttons (GTK_DIALOG (self), + _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL, + ! valid ? NULL : _GTK_LABEL_DELETE, GTH_ACCEL_BUTTON_RESPONSE_DELETE, + NULL); + + content_area = gtk_dialog_get_content_area (GTK_DIALOG (self)); + + label = gtk_label_new (_("Press a combination of keys to use as shortcut.")); + secondary_label = gtk_label_new (_("Press Esc to cancel")); + gtk_style_context_add_class (gtk_widget_get_style_context (secondary_label), "dim-label"); + box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 50); + gtk_widget_set_margin_top (box, 50); + gtk_widget_set_margin_bottom (box, 50); + gtk_widget_set_margin_start (box, 50); + gtk_widget_set_margin_end (box, 50); + gtk_box_pack_start (GTK_BOX (box), label, TRUE, TRUE, 0); + gtk_box_pack_start (GTK_BOX (box), secondary_label, TRUE, TRUE, 0); + + g_signal_connect (self, + "key-press-event", + G_CALLBACK (accel_dialog_keypress_cb), + self); + + gtk_widget_show (box); + gtk_widget_show (label); + gtk_widget_show (secondary_label); + gtk_container_add (GTK_CONTAINER (content_area), box); +} + + +GtkWidget * +gth_accel_dialog_new (const char *title, + GtkWindow *parent, + guint keycode, + GdkModifierType modifiers) +{ + GthAccelDialog *self; + + self = g_object_new (GTH_TYPE_ACCEL_DIALOG, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + "modal", TRUE, + "transient-for", parent, + "resizable", FALSE, + "title", title, + NULL); + gth_accel_dialog_construct (self, title, parent, keycode, modifiers); + + return (GtkWidget *) self; +} + + +gboolean +gth_accel_dialog_get_accel (GthAccelDialog *self, + guint *keycode, + GdkModifierType *modifiers) +{ + if (self->priv->valid) { + *keycode = self->priv->keycode; + *modifiers = self->priv->modifiers; + } + else { + *keycode = 0; + *modifiers = 0; + } + + return self->priv->valid; +} diff -Nru gthumb-3.8.3/gthumb/gth-accel-dialog.h gthumb-3.9.1/gthumb/gth-accel-dialog.h --- gthumb-3.8.3/gthumb/gth-accel-dialog.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-accel-dialog.h 2020-03-07 19:03:13.513621000 +0000 @@ -0,0 +1,65 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_ACCEL_DIALOG_H +#define GTH_ACCEL_DIALOG_H + +#include +#include + +G_BEGIN_DECLS + +enum { + GTH_ACCEL_BUTTON_RESPONSE_DELETE +}; + +#define GTH_TYPE_ACCEL_DIALOG (gth_accel_dialog_get_type ()) +#define GTH_ACCEL_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_ACCEL_DIALOG, GthAccelDialog)) +#define GTH_ACCEL_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_ACCEL_DIALOG, GthAccelDialogClass)) +#define GTH_IS_ACCEL_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_ACCEL_DIALOG)) +#define GTH_IS_ACCEL_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_ACCEL_DIALOG)) +#define GTH_ACCEL_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_ACCEL_DIALOG, GthAccelDialogClass)) + +typedef struct _GthAccelDialog GthAccelDialog; +typedef struct _GthAccelDialogPrivate GthAccelDialogPrivate; +typedef struct _GthAccelDialogClass GthAccelDialogClass; + +struct _GthAccelDialog { + GtkDialog __parent; + GthAccelDialogPrivate *priv; +}; + +struct _GthAccelDialogClass { + GtkDialogClass __parent_class; +}; + +GType gth_accel_dialog_get_type (void) G_GNUC_CONST; +GtkWidget * gth_accel_dialog_new (const char *title, + GtkWindow *parent, + guint keycode, + GdkModifierType modifiers); +gboolean gth_accel_dialog_get_accel (GthAccelDialog *self, + guint *keycode, + GdkModifierType *modifiers); + +G_END_DECLS + +#endif /* GTH_ACCEL_DIALOG_H */ diff -Nru gthumb-3.8.3/gthumb/gth-application.c gthumb-3.9.1/gthumb/gth-application.c --- gthumb-3.8.3/gthumb/gth-application.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-application.c 2020-03-07 19:03:13.513621000 +0000 @@ -57,7 +57,7 @@ 0 }, { "slideshow", 's', 0, G_OPTION_ARG_NONE, &StartSlideshow, - N_("Automatically start a slideshow"), + N_("Automatically start a presentation"), 0 }, { "import-photos", 'i', 0, G_OPTION_ARG_NONE, &ImportPhotos, @@ -134,32 +134,6 @@ } -static const GActionEntry app_menu_entries[] = { - { "new-window", gth_application_activate_new_window }, - { "preferences", gth_application_activate_preferences }, - { "shortcuts", gth_application_activate_show_shortcuts }, - { "help", gth_application_activate_show_help }, - { "about", gth_application_activate_about }, - { "quit", gth_application_activate_quit } -}; - - -static void -_gth_application_initialize_app_actions (GApplication *application) -{ - const char * const new_window_accel[] = { "n", NULL }; - const char * const quit_accel[] = { "q", NULL }; - - g_action_map_add_action_entries (G_ACTION_MAP (application), - app_menu_entries, - G_N_ELEMENTS (app_menu_entries), - application); - - gtk_application_set_accels_for_action (GTK_APPLICATION (application), "app.new-window", new_window_accel); - gtk_application_set_accels_for_action (GTK_APPLICATION (application), "app.quit", quit_accel); -} - - static void migrate_data (void) { @@ -174,7 +148,6 @@ g_object_set (gtk_settings_get_default (), "gtk-application-prefer-dark-theme", TRUE, NULL); - _gth_application_initialize_app_actions (application); gth_pref_initialize (); migrate_data (); gth_main_initialize (); @@ -342,7 +315,7 @@ GFileType file_type; location = g_file_new_for_commandline_arg (arg); - file_type = _g_file_get_standard_type (location); + file_type = _g_file_query_standard_type (location); if (file_type == G_FILE_TYPE_REGULAR) files = g_list_prepend (files, location); else diff -Nru gthumb-3.8.3/gthumb/gth-browser-actions-callbacks.c gthumb-3.9.1/gthumb/gth-browser-actions-callbacks.c --- gthumb-3.8.3/gthumb/gth-browser-actions-callbacks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-browser-actions-callbacks.c 2020-03-07 19:03:13.516954400 +0000 @@ -33,86 +33,59 @@ #include "gth-folder-tree.h" #include "gth-main.h" #include "gth-preferences.h" +#include "gth-shortcuts-window.h" #include "gth-sidebar.h" #include "gtk-utils.h" #include "gth-viewer-page.h" #include "main.h" -static GtkWidget * -_gth_application_get_current_window (GApplication *application) -{ - GList *windows; - - windows = gtk_application_get_windows (GTK_APPLICATION (application)); - if (windows == NULL) - return NULL; - - return GTK_WIDGET (windows->data); -} - - void -gth_application_activate_new_window (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_new_window (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - GApplication *application = user_data; - GtkWidget *browser; - GtkWidget *window; + GtkWidget *browser = user_data; + GtkWidget *window; - browser = _gth_application_get_current_window (application); - window = gth_browser_new (gth_browser_get_location (GTH_BROWSER (browser)), NULL); - gtk_window_present (GTK_WINDOW (window)); + window = gth_browser_new (gth_browser_get_location (GTH_BROWSER (browser)), NULL); + gtk_window_present (GTK_WINDOW (window)); } void -gth_application_activate_preferences (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_preferences (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - GApplication *application = user_data; - GtkWidget *browser; - - browser = _gth_application_get_current_window (application); - dlg_preferences (GTH_BROWSER (browser)); + dlg_preferences (GTH_BROWSER (user_data)); } void -gth_application_activate_show_help (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_show_help (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - GApplication *application = user_data; - GtkWidget *browser; - - browser = _gth_application_get_current_window (application); - show_help_dialog (GTK_WINDOW (browser), NULL); + show_help_dialog (GTK_WINDOW (user_data), NULL); } void -gth_application_activate_show_shortcuts (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_show_shortcuts (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - GApplication *application = user_data; - GtkWidget *browser; - - browser = _gth_application_get_current_window (application); - show_help_dialog (GTK_WINDOW (browser), "gthumb-shortcuts"); + gth_shortcuts_window_new (GTH_WINDOW (user_data)); } void -gth_application_activate_about (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) +gth_browser_activate_about (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) { - GApplication *application = user_data; - GthWindow *window; + GthBrowser *browser = user_data; const char *authors[] = { #include "AUTHORS.tab" NULL @@ -137,21 +110,20 @@ }; GdkPixbuf *logo; - window = (GthWindow *) _gth_application_get_current_window (application); license_text = g_strconcat (_(license[0]), "\n\n", _(license[1]), "\n\n", _(license[2]), NULL); - logo = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (window))), + logo = gtk_icon_theme_load_icon (gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GTK_WIDGET (browser))), "org.gnome.gThumb", 128, 0, NULL); - gtk_show_about_dialog (GTK_WINDOW (window), + gtk_show_about_dialog (GTK_WINDOW (browser), "version", PACKAGE_VERSION, - "copyright", "Copyright \xc2\xa9 2001-2013 Free Software Foundation, Inc.", + "copyright", "Copyright \xc2\xa9 2001-2020 Free Software Foundation, Inc.", "comments", _("An image viewer and browser for GNOME."), "authors", authors, "documenters", documenters, @@ -168,16 +140,11 @@ void -gth_application_activate_quit (GSimpleAction *action, - GVariant *parameter, - gpointer user_data) -{ - GApplication *application = user_data; - GList *windows; - - windows = gtk_application_get_windows (GTK_APPLICATION (application)); - if (windows != NULL) - gth_quit (FALSE); +gth_browser_activate_quit (GSimpleAction *action, + GVariant *parameter, + gpointer user_data) +{ + gth_quit (FALSE); } @@ -378,6 +345,26 @@ void +gth_browser_activate_toggle_edit_file (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + gth_browser_toggle_viewer_tools (browser); +} + + +void +gth_browser_activate_toggle_file_properties (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = user_data; + gth_browser_toggle_file_properties (browser); +} + + +void gth_browser_activate_viewer_edit_file (GSimpleAction *action, GVariant *state, gpointer user_data) @@ -476,6 +463,19 @@ void +gth_browser_activate_toggle_statusbar (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GSettings *settings; + + settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + g_settings_set_boolean (settings, PREF_BROWSER_STATUSBAR_VISIBLE, ! g_settings_get_boolean (settings, PREF_BROWSER_STATUSBAR_VISIBLE)); + g_object_unref (settings); +} + + +void gth_browser_activate_show_sidebar (GSimpleAction *action, GVariant *state, gpointer user_data) @@ -491,6 +491,19 @@ void +gth_browser_activate_toggle_sidebar (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GSettings *settings; + + settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + g_settings_set_boolean (settings, PREF_BROWSER_SIDEBAR_VISIBLE, ! g_settings_get_boolean (settings, PREF_BROWSER_SIDEBAR_VISIBLE)); + g_object_unref (settings); +} + + +void gth_browser_activate_show_thumbnail_list (GSimpleAction *action, GVariant *state, gpointer user_data) @@ -506,6 +519,39 @@ void +gth_browser_activate_toggle_thumbnail_list (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GSettings *settings; + + settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + g_settings_set_boolean (settings, PREF_BROWSER_THUMBNAIL_LIST_VISIBLE, ! g_settings_get_boolean (settings, PREF_BROWSER_THUMBNAIL_LIST_VISIBLE)); + g_object_unref (settings); +} + + +void +gth_browser_activate_show_first_image (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + gth_browser_show_first_image (browser, FALSE, FALSE); +} + + +void +gth_browser_activate_show_last_image (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + gth_browser_show_last_image (browser, FALSE, FALSE); +} + + +void gth_browser_activate_show_previous_image (GSimpleAction *action, GVariant *state, gpointer user_data) @@ -533,3 +579,38 @@ GthBrowser *browser = GTH_BROWSER (user_data); gth_browser_apply_editor_changes (browser); } + + +void +gth_browser_activate_select_all (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + GtkWidget *file_view; + + file_view = gth_browser_get_file_list_view (browser); + gth_file_selection_select_all (GTH_FILE_SELECTION (file_view)); +} + + +void +gth_browser_activate_unselect_all (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + GthBrowser *browser = GTH_BROWSER (user_data); + GtkWidget *file_view; + + file_view = gth_browser_get_file_list_view (browser); + gth_file_selection_unselect_all (GTH_FILE_SELECTION (file_view)); +} + + +void +gth_browser_activate_show_menu (GSimpleAction *action, + GVariant *state, + gpointer user_data) +{ + gth_browser_show_menu (GTH_BROWSER (user_data)); +} diff -Nru gthumb-3.8.3/gthumb/gth-browser-actions-callbacks.h gthumb-3.9.1/gthumb/gth-browser-actions-callbacks.h --- gthumb-3.8.3/gthumb/gth-browser-actions-callbacks.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-browser-actions-callbacks.h 2020-03-07 19:03:13.516954400 +0000 @@ -25,12 +25,12 @@ #include #include "glib-utils.h" -DEF_ACTION_CALLBACK (gth_application_activate_new_window) -DEF_ACTION_CALLBACK (gth_application_activate_preferences) -DEF_ACTION_CALLBACK (gth_application_activate_show_shortcuts) -DEF_ACTION_CALLBACK (gth_application_activate_show_help) -DEF_ACTION_CALLBACK (gth_application_activate_about) -DEF_ACTION_CALLBACK (gth_application_activate_quit) +DEF_ACTION_CALLBACK (gth_browser_activate_new_window) +DEF_ACTION_CALLBACK (gth_browser_activate_preferences) +DEF_ACTION_CALLBACK (gth_browser_activate_show_shortcuts) +DEF_ACTION_CALLBACK (gth_browser_activate_show_help) +DEF_ACTION_CALLBACK (gth_browser_activate_about) +DEF_ACTION_CALLBACK (gth_browser_activate_quit) DEF_ACTION_CALLBACK (gth_browser_activate_browser_mode) DEF_ACTION_CALLBACK (gth_browser_activate_browser_edit_file) DEF_ACTION_CALLBACK (gth_browser_activate_browser_properties) @@ -48,6 +48,8 @@ DEF_ACTION_CALLBACK (gth_browser_activate_revert_to_saved) DEF_ACTION_CALLBACK (gth_browser_activate_save) DEF_ACTION_CALLBACK (gth_browser_activate_save_as) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_edit_file) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_file_properties) DEF_ACTION_CALLBACK (gth_browser_activate_viewer_edit_file) DEF_ACTION_CALLBACK (gth_browser_activate_viewer_properties) DEF_ACTION_CALLBACK (gth_browser_activate_unfullscreen) @@ -57,8 +59,16 @@ DEF_ACTION_CALLBACK (gth_browser_activate_show_statusbar) DEF_ACTION_CALLBACK (gth_browser_activate_show_sidebar) DEF_ACTION_CALLBACK (gth_browser_activate_show_thumbnail_list) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_statusbar) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_sidebar) +DEF_ACTION_CALLBACK (gth_browser_activate_toggle_thumbnail_list) +DEF_ACTION_CALLBACK (gth_browser_activate_show_first_image) +DEF_ACTION_CALLBACK (gth_browser_activate_show_last_image) DEF_ACTION_CALLBACK (gth_browser_activate_show_previous_image) DEF_ACTION_CALLBACK (gth_browser_activate_show_next_image) DEF_ACTION_CALLBACK (gth_browser_activate_apply_editor_changes) +DEF_ACTION_CALLBACK (gth_browser_activate_select_all) +DEF_ACTION_CALLBACK (gth_browser_activate_unselect_all) +DEF_ACTION_CALLBACK (gth_browser_activate_show_menu) #endif /* GTH_BROWSER_ACTIONS_CALLBACK_H */ diff -Nru gthumb-3.8.3/gthumb/gth-browser-actions-entries.h gthumb-3.9.1/gthumb/gth-browser-actions-entries.h --- gthumb-3.8.3/gthumb/gth-browser-actions-entries.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-browser-actions-entries.h 2020-03-07 19:03:13.516954400 +0000 @@ -3,7 +3,7 @@ /* * GThumb * - * Copyright (C) 2005-2009 Free Software Foundation, Inc. + * Copyright (C) 2005-2019 Free Software Foundation, Inc. * * 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 @@ -25,9 +25,18 @@ #include #include #include "gtk-utils.h" +#include "typedefs.h" static const GActionEntry gth_browser_actions[] = { + { "new-window", gth_browser_activate_new_window }, + { "preferences", gth_browser_activate_preferences }, + { "shortcuts", gth_browser_activate_show_shortcuts }, + { "help", gth_browser_activate_show_help }, + { "about", gth_browser_activate_about }, + { "quit", gth_browser_activate_quit }, + { "show-menu", gth_browser_activate_show_menu }, + { "browser-mode", gth_browser_activate_browser_mode }, { "browser-edit-file", gth_browser_activate_browser_edit_file }, { "browser-properties", toggle_action_activated, NULL, "false", gth_browser_activate_browser_properties }, @@ -45,6 +54,8 @@ { "revert-to-saved", gth_browser_activate_revert_to_saved }, { "save", gth_browser_activate_save }, { "save-as", gth_browser_activate_save_as }, + { "toggle-edit-file", gth_browser_activate_toggle_edit_file }, + { "toggle-file-properties", gth_browser_activate_toggle_file_properties }, { "viewer-edit-file", toggle_action_activated, NULL, "false", gth_browser_activate_viewer_edit_file }, { "viewer-properties", toggle_action_activated, NULL, "false", gth_browser_activate_viewer_properties }, { "unfullscreen", gth_browser_activate_unfullscreen }, @@ -57,35 +68,122 @@ { "show-sidebar", toggle_action_activated, NULL, "false", gth_browser_activate_show_sidebar }, { "show-thumbnail-list", toggle_action_activated, NULL, "false", gth_browser_activate_show_thumbnail_list }, + { "toggle-statusbar", gth_browser_activate_toggle_statusbar }, + { "toggle-sidebar", gth_browser_activate_toggle_sidebar }, + { "toggle-thumbnail-list", gth_browser_activate_toggle_thumbnail_list }, + + { "show-first-image", gth_browser_activate_show_first_image }, + { "show-last-image", gth_browser_activate_show_last_image }, { "show-previous-image", gth_browser_activate_show_previous_image }, { "show-next-image", gth_browser_activate_show_next_image }, { "apply-editor-changes", gth_browser_activate_apply_editor_changes }, + + { "file-list-select-all", gth_browser_activate_select_all }, + { "file-list-unselect-all", gth_browser_activate_unselect_all }, }; static const GthAccelerator gth_browser_accelerators[] = { { "browser-mode", "Escape" }, - { "browser-properties", "i" }, - { "close", "w" }, - { "open-location", "o" }, - { "fullscreen", "F11" }, - { "revert-to-saved", "F4" }, - { "show-sidebar", "F9" }, - { "show-thumbnail-list", "F8" }, - { "go-back", "Left" }, - { "go-forward", "Right" }, - { "go-up", "Up" }, - { "go-home", "Home" }, - { "reload", "r" } }; -static const GthMenuEntry gears_app_action_entries[] = { - { N_("_Preferences"), "app.preferences" }, - { N_("Keyboard Shortcuts"), "app.shortcuts" }, - { N_("_Help"), "app.help" }, - { N_("_About gThumb"), "app.about" } +static const GthShortcut gth_browser_shortcuts[] = { + { "new-window", N_("New Window"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "n" }, + { "help", N_("Help"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "F1" }, + { "shortcuts", N_("Keyboard Shortcuts"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "F1" }, + { "quit", N_("Quit"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "q" }, + { "show-menu", NULL, GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER | GTH_SHORTCUT_CONTEXT_FIXED, GTH_SHORTCUT_CATEGORY_GENERAL, "F10" }, + + { "browser-mode", N_("Show browser"), GTH_SHORTCUT_CONTEXT_VIEWER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_GENERAL, "Escape" }, + { "close", N_("Close window"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_GENERAL, "w" }, + + { "open-location", N_("Open location"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "o" }, + { "fullscreen", N_("Fullscreen"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "f" }, + { "revert-to-saved", N_("Revert image to saved"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_FILE_MANAGER, "F4" }, + { "toggle-sidebar", N_("Sidebar"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_UI, "F9" }, + { "toggle-statusbar", N_("Statusbar"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_UI, "F7" }, + { "toggle-thumbnail-list", N_("Thumbnails list"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_UI, "F8" }, + + { "go-back", N_("Load previous location"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "Left" }, + { "go-forward", N_("Load next location"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "Right" }, + { "go-up", N_("Load parent folder"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "Up" }, + { "go-home", N_("Load home"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "Home" }, + { "reload", N_("Reload location"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "r" }, + { "show-hidden-files", N_("Show/Hide hidden files"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "h" }, + { "sort-by", N_("Change sorting order"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "s" }, + + { "show-previous-image", N_("Show previous file"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "Page_Up" }, + { "show-next-image", N_("Show next file"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "Page_Down" }, + { "show-first-image", N_("Show first file"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "Home" }, + { "show-last-image", N_("Show last file"), GTH_SHORTCUT_CONTEXT_VIEWER, GTH_SHORTCUT_CATEGORY_VIEWER, "End" }, + + { "toggle-edit-file", N_("Image tools"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_UI, "e" }, + { "toggle-file-properties", N_("File properties"), GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER, GTH_SHORTCUT_CATEGORY_UI, "i" }, + + { "file-list-select-all", N_("Select all"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "a" }, + { "file-list-unselect-all", N_("Select none"), GTH_SHORTCUT_CONTEXT_BROWSER, GTH_SHORTCUT_CATEGORY_NAVIGATION, "a" }, + + /* file list keybindings (read only) */ + + { "file-list-move-cursor-right", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Right" }, + { "file-list-move-cursor-right", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Right" }, + { "file-list-move-cursor-left", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Left" }, + { "file-list-move-cursor-left", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Left" }, + { "file-list-move-cursor-down", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Down" }, + { "file-list-move-cursor-down", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Down" }, + { "file-list-move-cursor-up", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Up" }, + { "file-list-move-cursor-up", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Up" }, + { "file-list-move-cursor-page-up", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Up" }, + { "file-list-move-cursor-page-up", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Up" }, + { "file-list-move-cursor-page-down", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Down" }, + { "file-list-move-cursor-page-down", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Down" }, + { "file-list-move-cursor-begin", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Home" }, + { "file-list-move-cursor-begin", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Home" }, + { "file-list-move-cursor-end", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "End" }, + { "file-list-move-cursor-end", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_End" }, + + { "file-list-move-cursor-right-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Right" }, + { "file-list-move-cursor-right-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Right" }, + { "file-list-move-cursor-left-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Left" }, + { "file-list-move-cursor-left-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Left" }, + { "file-list-move-cursor-down-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Down" }, + { "file-list-move-cursor-down-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Down" }, + { "file-list-move-cursor-up-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Up" }, + { "file-list-move-cursor-up-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Up" }, + { "file-list-move-cursor-page-up-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Up" }, + { "file-list-move-cursor-page-up-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Up" }, + { "file-list-move-cursor-page-down-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Down" }, + { "file-list-move-cursor-page-down-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Down" }, + { "file-list-move-cursor-begin-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Home" }, + { "file-list-move-cursor-begin-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Home" }, + { "file-list-move-cursor-end-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "End" }, + { "file-list-move-cursor-end-keep-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_End" }, + + { "file-list-move-cursor-right-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Right" }, + { "file-list-move-cursor-right-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Right" }, + { "file-list-move-cursor-left-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Left" }, + { "file-list-move-cursor-left-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Left" }, + { "file-list-move-cursor-down-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Down" }, + { "file-list-move-cursor-down-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Down" }, + { "file-list-move-cursor-up-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Up" }, + { "file-list-move-cursor-up-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Up" }, + { "file-list-move-cursor-page-up-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Up" }, + { "file-list-move-cursor-page-up-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Up" }, + { "file-list-move-cursor-page-down-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Page_Down" }, + { "file-list-move-cursor-page-down-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Page_Down" }, + { "file-list-move-cursor-begin-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Home" }, + { "file-list-move-cursor-begin-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Home" }, + { "file-list-move-cursor-end-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "End" }, + { "file-list-move-cursor-end-expand-selection", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_End" }, + + { "file-list-select-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "space" }, + { "file-list-select-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_space" }, + { "file-list-toggle-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "space" }, + { "file-list-toggle-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_space" }, + { "file-list-activate-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "Return" }, + { "file-list-activate-cursor-item", NULL, GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_INTERNAL, GTH_SHORTCUT_CATEGORY_HIDDEN, "KP_Enter" }, }; diff -Nru gthumb-3.8.3/gthumb/gth-browser.c gthumb-3.9.1/gthumb/gth-browser.c --- gthumb-3.8.3/gthumb/gth-browser.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-browser.c 2020-03-07 19:03:13.516954400 +0000 @@ -3,7 +3,7 @@ /* * GThumb * - * Copyright (C) 2005-2009 Free Software Foundation, Inc. + * Copyright (C) 2005-2019 Free Software Foundation, Inc. * * 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 @@ -39,6 +39,7 @@ #include "gth-file-list.h" #include "gth-file-view.h" #include "gth-file-selection.h" +#include "gth-file-source-vfs.h" #include "gth-file-tool.h" #include "gth-filter.h" #include "gth-filterbar.h" @@ -142,6 +143,7 @@ gulong emblems_changed_id; gulong entry_points_changed_id; gulong order_changed_id; + gulong shortcuts_changed_id; GthFileData *location; GthFileData *current_file; GthFileSource *location_source; @@ -163,6 +165,7 @@ GList *background_tasks; gboolean close_with_task; GList *load_data_queue; + gpointer last_folder_to_open; GList *load_file_data_queue; guint load_file_timeout; guint load_metadata_timeout; @@ -182,6 +185,7 @@ guint folder_tree_open_folder_id; GtkWidget *apply_editor_changes_button; gboolean ask_to_save_modified_images; + GthScrollAction scroll_action; /* settings */ @@ -318,6 +322,29 @@ /* -- gth_browser -- */ +static gboolean +gth_action_changes_folder (GthAction action) +{ + gboolean result = FALSE; + + switch (action) { + case GTH_ACTION_GO_TO: + case GTH_ACTION_GO_BACK: + case GTH_ACTION_GO_FORWARD: + case GTH_ACTION_GO_UP: + case GTH_ACTION_TREE_OPEN: + result = TRUE; + break; + + case GTH_ACTION_TREE_LIST_CHILDREN: + result = FALSE; + break; + } + + return result; +} + + static void _gth_browser_update_current_file_position (GthBrowser *browser) { @@ -452,18 +479,29 @@ _gtk_container_remove_children (GTK_CONTAINER (gth_location_bar_get_action_area (GTH_LOCATION_BAR (browser->priv->location_bar))), NULL, NULL); location_chooser = gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar)); - g_signal_handlers_block_by_data (location_chooser, browser); + _g_signal_handlers_block_by_data (location_chooser, browser); gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (location_chooser), browser->priv->location->file); - g_signal_handlers_unblock_by_data (location_chooser, browser); + _g_signal_handlers_unblock_by_data (location_chooser, browser); gth_hook_invoke ("gth-browser-update-extra-widget", browser); } static void +_gth_browser_set_sort_order (GthBrowser *browser, + GthFileDataSort *sort_type, + gboolean inverse, + gboolean save, + gboolean update_view); + + +static void _gth_browser_set_location (GthBrowser *browser, GthFileData *location) { + GthFileDataSort *sort_type; + gboolean sort_inverse; + if (location == NULL) return; @@ -473,30 +511,30 @@ browser->priv->location = gth_file_data_dup (location); } - _gth_browser_update_current_file_position (browser); - gth_browser_update_title (browser); - gth_browser_update_sensitivity (browser); - - gth_browser_update_extra_widget (browser); + sort_type = gth_main_get_sort_type (g_file_info_get_attribute_string (browser->priv->location->info, "sort::type")); + sort_inverse = g_file_info_get_attribute_boolean (browser->priv->location->info, "sort::inverse"); + if (sort_type == NULL) { + sort_type = browser->priv->default_sort_type; + sort_inverse = browser->priv->default_sort_inverse; + } + _gth_browser_set_sort_order (browser, + sort_type, + sort_inverse, + FALSE, + FALSE); } static void -_gth_browser_set_location_from_file (GthBrowser *browser, - GFile *file) +_gth_browser_update_location (GthBrowser *browser, + GthFileData *location) { - GthFileSource *file_source; - GthFileData *file_data; - GFileInfo *info; + _gth_browser_set_location (browser, location); - file_source = gth_main_get_file_source (file); - info = gth_file_source_get_file_info (file_source, file, GFILE_DISPLAY_ATTRIBUTES); - file_data = gth_file_data_new (file, info); - _gth_browser_set_location (browser, file_data); - - g_object_unref (file_data); - _g_object_unref (info); - g_object_unref (file_source); + _gth_browser_update_current_file_position (browser); + gth_browser_update_title (browser); + gth_browser_update_sensitivity (browser); + gth_browser_update_extra_widget (browser); } @@ -579,7 +617,9 @@ if (file == NULL) return; - if ((browser->priv->history_current == NULL) || ! _g_file_equal_uris (file, browser->priv->history_current->data)) { + if ((browser->priv->history_current == NULL) + || ! _g_file_equal (file, browser->priv->history_current->data)) + { GList *scan; /* remove all files after the current position */ @@ -950,6 +990,10 @@ load_data->automatic = automatic; load_data->cancellable = g_cancellable_new (); + browser->priv->load_data_queue = g_list_prepend (browser->priv->load_data_queue, load_data); + if (gth_action_changes_folder (load_data->action)) + browser->priv->last_folder_to_open = load_data; + if (entry_point == NULL) return load_data; @@ -970,8 +1014,6 @@ g_object_unref (file); load_data->current = NULL; - browser->priv->load_data_queue = g_list_prepend (browser->priv->load_data_queue, load_data); - return load_data; } @@ -979,6 +1021,8 @@ static void load_data_free (LoadData *data) { + if (data->browser->priv->last_folder_to_open == data) + data->browser->priv->last_folder_to_open = NULL; data->browser->priv->load_data_queue = g_list_remove (data->browser->priv->load_data_queue, data); g_object_unref (data->requested_folder); @@ -1002,22 +1046,6 @@ gboolean automatic); -static char * -file_format (const char *format, - GFile *file) -{ - char *name; - char *s; - - name = g_file_get_parse_name (file); - s = g_strdup_printf (format, name); - - g_free (name); - - return s; -} - - static void _gth_browser_show_error (GthBrowser *browser, const char *title, @@ -1040,6 +1068,51 @@ static void +_gth_browser_update_activity (GthBrowser *browser, + gboolean increment) +{ + if (increment) { + browser->priv->activity_ref++; + if (browser->priv->activity_ref == 1) { + GdkCursor *cursor = gdk_cursor_new_from_name (gtk_widget_get_display (GTK_WIDGET (browser)), "progress"); + gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (browser)), cursor); + gdk_cursor_unref (cursor); + } + } + else { + browser->priv->activity_ref--; + if (browser->priv->activity_ref == 0) { + GdkCursor *cursor = gdk_cursor_new_from_name (gtk_widget_get_display (GTK_WIDGET (browser)), "default"); + gdk_window_set_cursor (gtk_widget_get_window (GTK_WIDGET (browser)), cursor); + gdk_cursor_unref (cursor); + } + } +} + + +static void +_gth_browser_add_activity (GthBrowser *browser) +{ + _gth_browser_update_activity (browser, TRUE); +} + + +static void +_gth_browser_remove_activity (GthBrowser *browser) +{ + _gth_browser_update_activity (browser, FALSE); +} + + +static gboolean +load_data_is_still_relevant (LoadData *load_data) +{ + return ! gth_action_changes_folder (load_data->action) + || (load_data == load_data->browser->priv->last_folder_to_open); +} + + +static void load_data_done (LoadData *load_data, GError *error) { @@ -1056,39 +1129,27 @@ g_free (uri); } - /* moving the "gth-browser-load-location-after" after the - * LOCATION_READY signal emition can brake the extensions */ + _gth_browser_remove_activity (browser); - if ((load_data->action == GTH_ACTION_GO_TO) - || (load_data->action == GTH_ACTION_GO_BACK) - || (load_data->action == GTH_ACTION_GO_FORWARD) - || (load_data->action == GTH_ACTION_GO_UP) - || (load_data->action == GTH_ACTION_VIEW)) - { - if (error == NULL) { - _g_object_unref (browser->priv->location_source); - browser->priv->location_source = g_object_ref (load_data->file_source); - } - gth_browser_update_extra_widget (browser); - gth_hook_invoke ("gth-browser-load-location-after", browser, browser->priv->location, error); - } + if (error == NULL) + return; - browser->priv->activity_ref--; g_signal_emit (G_OBJECT (browser), gth_browser_signals[LOCATION_READY], 0, load_data->requested_folder->file, - (error != NULL)); + TRUE); - if (error == NULL) - return; - - if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) { + if (! load_data_is_still_relevant (load_data) + || g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + { g_error_free (error); return; } - if (load_data->automatic) { + if (gth_action_changes_folder (load_data->action) + && load_data->automatic) + { GFile *parent; parent = g_file_get_parent (load_data->requested_folder->file); @@ -1106,7 +1167,8 @@ } gth_browser_update_sensitivity (browser); - title = file_format (_("Could not load the position “%s”"), load_data->requested_folder->file); + title = _g_format_str_for_file (_("Could not load the position “%s”"), + load_data->requested_folder->file); _gth_browser_show_error (browser, title, error); g_free (title); @@ -1118,30 +1180,26 @@ load_data_error (LoadData *load_data, GError *error) { - GthBrowser *browser = load_data->browser; - GFile *loaded_folder; - - loaded_folder = (GFile *) load_data->current->data; - gth_folder_tree_set_children (GTH_FOLDER_TREE (browser->priv->folder_tree), loaded_folder, NULL); + gth_folder_tree_set_children (GTH_FOLDER_TREE (load_data->browser->priv->folder_tree), + G_FILE (load_data->current->data), + NULL); - switch (load_data->action) { - case GTH_ACTION_GO_TO: - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - case GTH_ACTION_GO_UP: - case GTH_ACTION_VIEW: - gth_file_list_set_files (GTH_FILE_LIST (browser->priv->file_list), NULL); - gth_file_list_set_files (GTH_FILE_LIST (browser->priv->thumbnail_list), NULL); - break; + load_data_done (load_data, error); + load_data_free (load_data); +} - default: - break; - } - load_data_done (load_data, error); +static void +load_data_cancelled (LoadData *load_data) +{ + load_data_done (load_data, g_error_new_literal (G_IO_ERROR, G_IO_ERROR_CANCELLED, "")); + load_data_free (load_data); } +/* -- _gth_browser_set_sort_order -- */ + + static const char * _gth_browser_get_list_attributes (GthBrowser *browser, gboolean recalc) @@ -1211,18 +1269,12 @@ } -static void _gth_browser_load_ready_cb (GthFileSource *file_source, GList *files, GError *error, gpointer user_data); - - -/* -- _gth_browser_set_sort_order -- */ - - static gboolean _gth_browser_reload_required (GthBrowser *browser) { - char *old_attributes; - const char *new_attributes; - gboolean reload_required; + char *old_attributes; + const char *new_attributes; + gboolean reload_required; old_attributes = g_strdup (_gth_browser_get_list_attributes (browser, FALSE)); new_attributes = _gth_browser_get_list_attributes (browser, TRUE); @@ -1250,7 +1302,8 @@ _gth_browser_set_sort_order (GthBrowser *browser, GthFileDataSort *sort_type, gboolean inverse, - gboolean save) + gboolean save, + gboolean update_view) { g_return_if_fail (sort_type != NULL); @@ -1263,8 +1316,6 @@ gth_file_list_set_sort_func (GTH_FILE_LIST (browser->priv->thumbnail_list), sort_type->cmp_func, inverse); - _gth_browser_update_current_file_position (browser); - gth_browser_update_title (browser); if (! browser->priv->constructed || (browser->priv->location == NULL)) return; @@ -1272,6 +1323,11 @@ g_file_info_set_attribute_string (browser->priv->location->info, "sort::type", (sort_type != NULL) ? sort_type->name : "general::unsorted"); g_file_info_set_attribute_boolean (browser->priv->location->info, "sort::inverse", (sort_type != NULL) ? inverse : FALSE); + if (update_view) { + _gth_browser_update_current_file_position (browser); + gth_browser_update_title (browser); + } + if (! save || (browser->priv->location_source == NULL)) return; @@ -1283,6 +1339,9 @@ } +static void _gth_browser_load_ready_cb (GthFileSource *file_source, GList *files, GError *error, gpointer user_data); + + static void requested_folder_attributes_ready_cb (GObject *file_source, GError *error, @@ -1293,27 +1352,9 @@ if (error != NULL) { load_data_error (load_data, error); - load_data_free (load_data); return; } - if (browser->priv->location == NULL) { - load_data_free (load_data); - return; - } - - gth_file_data_set_info (browser->priv->location, load_data->requested_folder->info); - - browser->priv->current_sort_type = gth_main_get_sort_type (g_file_info_get_attribute_string (browser->priv->location->info, "sort::type")); - browser->priv->current_sort_inverse = g_file_info_get_attribute_boolean (browser->priv->location->info, "sort::inverse"); - if (browser->priv->current_sort_type == NULL) { - browser->priv->current_sort_type = browser->priv->default_sort_type; - browser->priv->current_sort_inverse = browser->priv->default_sort_inverse; - g_file_info_set_attribute_string (browser->priv->location->info, "sort::type", browser->priv->current_sort_type->name); - g_file_info_set_attribute_boolean (browser->priv->location->info, "sort::inverse", browser->priv->current_sort_inverse); - } - _gth_browser_set_sort_order (browser, browser->priv->current_sort_type, browser->priv->current_sort_inverse, FALSE); - gth_file_source_list (load_data->file_source, load_data->requested_folder->file, _gth_browser_get_fast_file_type (browser, load_data->requested_folder->file) ? GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE : GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE, @@ -1359,12 +1400,15 @@ g_assert (folder_to_load != NULL); - if ((load_data->action != GTH_ACTION_LIST_CHILDREN) && g_file_equal (folder_to_load, load_data->requested_folder->file)) + if (gth_action_changes_folder (load_data->action) + && g_file_equal (folder_to_load, load_data->requested_folder->file)) + { gth_file_source_read_metadata (load_data->file_source, load_data->requested_folder, "*", requested_folder_attributes_ready_cb, - load_data); + load_data); + } else gth_file_source_list (load_data->file_source, folder_to_load, @@ -1418,11 +1462,8 @@ GtkTreePath *path; gboolean changed_current_location; - if ((load_data->action != GTH_ACTION_LIST_CHILDREN) - && ! g_file_equal (load_data->requested_folder->file, load_data->browser->priv->location->file)) - { - load_data_done (load_data, g_error_new_literal (G_IO_ERROR, G_IO_ERROR_CANCELLED, "")); - load_data_free (load_data); + if (! load_data_is_still_relevant (load_data)) { + load_data_cancelled (load_data); return; } @@ -1431,31 +1472,62 @@ gth_folder_tree_set_children (GTH_FOLDER_TREE (browser->priv->folder_tree), loaded_folder, files); path = gth_folder_tree_get_path (GTH_FOLDER_TREE (browser->priv->folder_tree), loaded_folder); - loaded_requested_folder = g_file_equal (loaded_folder, load_data->requested_folder->file); + loaded_requested_folder = _g_file_equal (loaded_folder, load_data->requested_folder->file); if ((path != NULL) && ! loaded_requested_folder) gth_folder_tree_expand_row (GTH_FOLDER_TREE (browser->priv->folder_tree), path, FALSE); if (! loaded_requested_folder) { - gtk_tree_path_free (path); - _g_object_list_unref (files); load_data_load_next_folder (load_data); + + if (path != NULL) + gtk_tree_path_free (path); + _g_object_list_unref (files); return; } load_data_done (load_data, NULL); - switch (load_data->action) { - case GTH_ACTION_GO_TO: - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - case GTH_ACTION_GO_UP: - case GTH_ACTION_VIEW: + changed_current_location = gth_action_changes_folder (load_data->action); + if (changed_current_location) { + GthTest *filter; + + if ((browser->priv->location_source != NULL) + && (browser->priv->monitor_location != NULL)) + { + gth_file_source_monitor_directory (browser->priv->location_source, + browser->priv->monitor_location, + FALSE); + _g_clear_object (&browser->priv->monitor_location); + } + + _g_object_unref (browser->priv->location_source); + browser->priv->location_source = g_object_ref (load_data->file_source); + + browser->priv->recalc_location_free_space = TRUE; + + switch (load_data->action) { + case GTH_ACTION_GO_TO: + case GTH_ACTION_TREE_OPEN: + _gth_browser_set_location (browser, load_data->requested_folder); + if (browser->priv->location != NULL) + _gth_browser_history_add (browser, browser->priv->location->file); + _gth_browser_history_menu (browser); + break; + case GTH_ACTION_GO_BACK: + case GTH_ACTION_GO_FORWARD: + _gth_browser_set_location (browser, load_data->requested_folder); + _gth_browser_history_menu (browser); + break; + default: + break; + } + if (path != NULL) { GList *entry_points; GList *scan; gboolean is_entry_point = FALSE; - /* expand the path if it's an entry point */ + /* Collapse everything else after loading an entry point. */ entry_points = gth_main_get_all_entry_points (); for (scan = entry_points; scan; scan = scan->next) { @@ -1463,12 +1535,12 @@ if (g_file_equal (file_data->file, load_data->requested_folder->file)) { gth_folder_tree_collapse_all (GTH_FOLDER_TREE (browser->priv->folder_tree)); - gtk_tree_view_expand_row (GTK_TREE_VIEW (browser->priv->folder_tree), path, FALSE); is_entry_point = TRUE; break; } } + gtk_tree_view_expand_row (GTK_TREE_VIEW (browser->priv->folder_tree), path, FALSE); gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (browser->priv->folder_tree), path, NULL, @@ -1479,28 +1551,6 @@ _g_object_list_unref (entry_points); } - break; - - default: - break; - } - - changed_current_location = FALSE; - switch (load_data->action) { - case GTH_ACTION_GO_TO: - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - case GTH_ACTION_GO_UP: - case GTH_ACTION_VIEW: - changed_current_location = TRUE; - browser->priv->recalc_location_free_space = TRUE; - break; - default: - break; - } - - if (changed_current_location) { - GthTest *filter; filter = _gth_browser_get_file_filter (browser); gth_file_list_set_filter (GTH_FILE_LIST (browser->priv->file_list), filter); @@ -1541,6 +1591,20 @@ } } + gth_browser_update_title (browser); + gth_browser_update_extra_widget (browser); + + /* moving the "gth-browser-load-location-after" after the + * LOCATION_READY signal emition can brake the extensions */ + + gth_hook_invoke ("gth-browser-load-location-after", browser, browser->priv->location); + + g_signal_emit (G_OBJECT (browser), + gth_browser_signals[LOCATION_READY], + 0, + load_data->requested_folder->file, + FALSE); + if (StartSlideshow) { StartSlideshow = FALSE; gth_hook_invoke ("slideshow", browser); @@ -1556,15 +1620,15 @@ if (path != NULL) gtk_tree_path_free (path); - load_data_free (load_data); _g_object_list_unref (files); + load_data_free (load_data); } static void metadata_ready_cb (GObject *source_object, - GAsyncResult *result, - gpointer user_data) + GAsyncResult *result, + gpointer user_data) { LoadData *load_data = user_data; GList *files; @@ -1573,7 +1637,6 @@ files = _g_query_metadata_finish (result, &error); if (error != NULL) { load_data_error (load_data, error); - load_data_free (load_data); return; } @@ -1588,10 +1651,9 @@ { if (error != NULL) { load_data_error (load_data, error); - load_data_free (load_data); } - else if ((load_data->action != GTH_ACTION_LIST_CHILDREN) - && g_file_equal ((GFile *) load_data->current->data, load_data->requested_folder->file)) + else if (gth_action_changes_folder (load_data->action) + && _g_file_equal ((GFile *) load_data->current->data, load_data->requested_folder->file)) { _g_query_metadata_async (files, _gth_browser_get_list_attributes (load_data->browser, TRUE), @@ -1614,56 +1676,6 @@ } -static GFile * -get_nearest_entry_point (GFile *file) -{ - GList *list; - GList *scan; - GList *entries; - char *nearest_uri; - char *uri; - int file_uri_len; - int min_diff; - GFile *nearest; - - entries = NULL; - list = gth_main_get_all_entry_points (); - for (scan = list; scan; scan = scan->next) { - GthFileData *entry_point = scan->data; - - if (g_file_equal (file, entry_point->file) || _g_file_has_prefix (file, entry_point->file)) - entries = g_list_prepend (entries, g_file_get_uri (entry_point->file)); - } - - nearest_uri = NULL; - uri = g_file_get_uri (file); - file_uri_len = strlen (uri); - min_diff = 0; - for (scan = entries; scan; scan = scan->next) { - char *entry_uri = scan->data; - int entry_len; - int diff; - - entry_len = strlen (entry_uri); - diff = abs (entry_len - file_uri_len); - if ((scan == entries) || (diff < min_diff)) { - min_diff = diff; - nearest_uri = entry_uri; - } - } - g_free (uri); - - nearest = NULL; - if (nearest_uri != NULL) - nearest = g_file_new_for_uri (nearest_uri); - - _g_string_list_free (entries); - _g_object_list_unref (list); - - return nearest; -} - - static void mount_volume_ready_cb (GObject *source_object, GAsyncResult *result, @@ -1672,23 +1684,27 @@ LoadData *load_data = user_data; GError *error = NULL; - if (! g_file_mount_enclosing_volume_finish (G_FILE (source_object), result, &error)) { - char *title; - - title = file_format (_("Could not load the position “%s”"), load_data->requested_folder->file); - _gth_browser_show_error (load_data->browser, title, error); - g_clear_error (&error); - - g_free (title); + if (! g_file_mount_enclosing_volume_finish (G_FILE (source_object), + result, + &error)) + { + load_data_done (load_data, error); load_data_free (load_data); return; } + gth_monitor_entry_points_changed (gth_main_get_default_monitor ()); + _gth_browser_update_entry_point_list (load_data->browser); + /* try to load again */ - gth_monitor_entry_points_changed (gth_main_get_default_monitor()); + if (! load_data_is_still_relevant (load_data)) { + load_data_cancelled (load_data); + return; + } + + _gth_browser_remove_activity (load_data->browser); - _gth_browser_update_entry_point_list (load_data->browser); _gth_browser_load (load_data->browser, load_data->requested_folder->file, load_data->file_to_select, @@ -1724,24 +1740,12 @@ if (! automatic) _gth_browser_hide_infobar (browser); - switch (action) { - case GTH_ACTION_GO_TO: - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - case GTH_ACTION_GO_UP: - case GTH_ACTION_VIEW: - if ((browser->priv->location_source != NULL) && (browser->priv->monitor_location != NULL)) { - gth_file_source_monitor_directory (browser->priv->location_source, - browser->priv->monitor_location, - FALSE); - _g_clear_object (&browser->priv->monitor_location); - } - break; - default: - break; + if (gth_action_changes_folder (action) && (browser->priv->last_folder_to_open != NULL)) { + LoadData *last_load_data = (LoadData *) browser->priv->last_folder_to_open; + g_cancellable_cancel (last_load_data->cancellable); } - entry_point = get_nearest_entry_point (location); + entry_point = gth_main_get_nearest_entry_point (location); load_data = load_data_new (browser, location, file_to_select, @@ -1751,28 +1755,28 @@ automatic, entry_point); + _gth_browser_add_activity (browser); + if (entry_point == NULL) { GMountOperation *mount_op; /* try to mount the enclosing volume */ mount_op = gtk_mount_operation_new (GTK_WINDOW (browser)); - g_file_mount_enclosing_volume (location, 0, mount_op, NULL, mount_volume_ready_cb, load_data); + g_file_mount_enclosing_volume (location, + 0, + mount_op, + load_data->cancellable, + mount_volume_ready_cb, + load_data); g_object_unref (mount_op); return; } - if ((load_data->action == GTH_ACTION_GO_TO) - || (load_data->action == GTH_ACTION_GO_BACK) - || (load_data->action == GTH_ACTION_GO_FORWARD) - || (load_data->action == GTH_ACTION_GO_UP) - || (load_data->action == GTH_ACTION_VIEW)) - { + if (gth_action_changes_folder (load_data->action)) gth_hook_invoke ("gth-browser-load-location-before", browser, load_data->requested_folder->file); - } - browser->priv->activity_ref++; if (entry_point == NULL) { GError *error; @@ -1787,19 +1791,8 @@ return; } - switch (action) { - case GTH_ACTION_LIST_CHILDREN: + if (action == GTH_ACTION_TREE_LIST_CHILDREN) gth_folder_tree_loading_children (GTH_FOLDER_TREE (browser->priv->folder_tree), location); - break; - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - case GTH_ACTION_GO_TO: - case GTH_ACTION_VIEW: - gth_file_list_clear (GTH_FILE_LIST (browser->priv->file_list), _("Getting the folder content…")); - break; - default: - break; - } if (load_data->file_source == NULL) { GError *error; @@ -1814,22 +1807,6 @@ return; } - switch (load_data->action) { - case GTH_ACTION_GO_TO: - case GTH_ACTION_VIEW: - _gth_browser_set_location_from_file (browser, load_data->requested_folder->file); - _gth_browser_history_add (browser, browser->priv->location->file); - _gth_browser_history_menu (browser); - break; - case GTH_ACTION_GO_BACK: - case GTH_ACTION_GO_FORWARD: - _gth_browser_set_location_from_file (browser, load_data->requested_folder->file); - _gth_browser_history_menu (browser); - break; - default: - break; - } - if (! gth_file_source_shows_extra_widget (load_data->file_source)) gtk_widget_hide (browser->priv->list_info_bar); @@ -1844,7 +1821,6 @@ g_free (uri); } - gth_browser_update_sensitivity (browser); load_data_load_next_folder (load_data); g_object_unref (entry_point); @@ -2114,9 +2090,9 @@ /* disconnect from the settings */ - g_signal_handlers_disconnect_by_data (browser->priv->browser_settings, browser); - g_signal_handlers_disconnect_by_data (browser->priv->messages_settings, browser); - g_signal_handlers_disconnect_by_data (browser->priv->desktop_interface_settings, browser); + _g_signal_handlers_disconnect_by_data (browser->priv->browser_settings, browser); + _g_signal_handlers_disconnect_by_data (browser->priv->messages_settings, browser); + _g_signal_handlers_disconnect_by_data (browser->priv->desktop_interface_settings, browser); /* disconnect from the monitor */ @@ -2132,6 +2108,8 @@ browser->priv->entry_points_changed_id); g_signal_handler_disconnect (gth_main_get_default_monitor (), browser->priv->order_changed_id); + g_signal_handler_disconnect (gth_main_get_default_monitor (), + browser->priv->shortcuts_changed_id); /* remove timeouts */ @@ -2392,6 +2370,7 @@ _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS, section_visible); + _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_BROWSER_METADATA_TOOLS, section_visible); active_tool = _gth_browser_file_tool_is_active (browser); section_visible = (page == GTH_BROWSER_PAGE_VIEWER) && ! active_tool; @@ -2399,6 +2378,7 @@ _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_COMMANDS, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_VIEW, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, section_visible); + _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT_METADATA, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS, section_visible); _gth_browser_update_header_section_visibility (browser, GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW, section_visible); @@ -2711,7 +2691,6 @@ GthBrowser *browser = user_data; GtkTreePath *path; GtkTreeViewDropPosition pos; - GdkDragAction action; if (gdk_drag_context_get_suggested_action (context) == GDK_ACTION_ASK) { gdk_drag_status (context, GDK_ACTION_ASK, time); @@ -2744,8 +2723,6 @@ gtk_tree_view_set_drag_dest_row (GTK_TREE_VIEW (file_view), path, pos); - action = GDK_ACTION_MOVE; - if ((browser->priv->folder_tree_last_dest_row == NULL) || gtk_tree_path_compare (path, browser->priv->folder_tree_last_dest_row) != 0) { gtk_tree_path_free (browser->priv->folder_tree_last_dest_row); browser->priv->folder_tree_last_dest_row = gtk_tree_path_copy (path); @@ -2755,52 +2732,7 @@ browser->priv->folder_tree_open_folder_id = g_timeout_add (AUTO_OPEN_FOLDER_DELAY, folder_tree_open_folder_cb, browser); } - /* use COPY if dropping a file in a catalog */ - - if (action == GDK_ACTION_MOVE) { - GthFileData *destination; - - destination = gth_folder_tree_get_file (GTH_FOLDER_TREE (browser->priv->folder_tree), path); - if (destination != NULL) { - GthFileSource *file_source = gth_main_get_file_source (destination->file); - - _g_object_unref (destination); - if (file_source != NULL) { - if (gth_file_source_is_reorderable (file_source)) - action = GDK_ACTION_COPY; - } - else - action = 0; - - _g_object_unref (file_source); - } - else - action = 0; - } - - /* use COPY when dragging a file from a catalog to a directory */ - - if (action == GDK_ACTION_MOVE) { - gboolean source_is_reorderable; - GList *targets; - GList *scan; - - source_is_reorderable = FALSE; - targets = gdk_drag_context_list_targets (context); - for (scan = targets; scan; scan = scan->next) { - GdkAtom target = scan->data; - - if (target == gdk_atom_intern_static_string ("gthumb/reorderable-list")) { - source_is_reorderable = TRUE; - break; - } - } - - if (source_is_reorderable) - action = GDK_ACTION_COPY; - } - - gdk_drag_status (context, action, time); + gdk_drag_status (context, GDK_ACTION_MOVE, time); gtk_tree_path_free (path); return TRUE; @@ -2857,7 +2789,10 @@ uris = gtk_selection_data_get_uris (selection_data); file_list = _g_file_list_new_from_uriv (uris); if (file_list != NULL) - gth_hook_invoke ("gth-browser-folder-tree-drag-data-received", browser, destination, file_list, + gth_hook_invoke ("gth-browser-folder-tree-drag-data-received", + browser, + destination, + file_list, gdk_drag_context_get_selected_action (context)); gtk_drag_finish (context, TRUE, FALSE, time); @@ -2890,9 +2825,7 @@ return; if (gdk_drag_context_get_actions (drag_context) & GDK_ACTION_MOVE) { - GdkDragAction action = - gth_file_source_can_cut (file_source, file_data->file) ? - GDK_ACTION_MOVE : GDK_ACTION_COPY; + GdkDragAction action = gth_file_source_can_cut (file_source) ? GDK_ACTION_MOVE : GDK_ACTION_COPY; gdk_drag_status (drag_context, action, time); } @@ -2912,7 +2845,7 @@ GFile *file, GthBrowser *browser) { - gth_browser_go_to (browser, file, NULL); + _gth_browser_load (browser, file, NULL, NULL, 0, GTH_ACTION_TREE_OPEN, FALSE); } @@ -2929,16 +2862,7 @@ GFile *file, GthBrowser *browser) { - _gth_browser_load (browser, file, NULL, NULL, 0, GTH_ACTION_LIST_CHILDREN, FALSE); -} - - -static void -folder_tree_load_cb (GthFolderTree *folder_tree, - GFile *file, - GthBrowser *browser) -{ - _gth_browser_load (browser, file, NULL, NULL, 0, GTH_ACTION_VIEW, FALSE); + _gth_browser_load (browser, file, NULL, NULL, 0, GTH_ACTION_TREE_LIST_CHILDREN, FALSE); } @@ -3025,9 +2949,11 @@ GthFileSource *file_source; file_source = gth_main_get_file_source (file); - gth_file_source_rename (file_source, file, new_name, file_source_rename_ready_cb, browser); - - g_object_unref (file_source); + gth_file_source_rename (file_source, + file, + new_name, + file_source_rename_ready_cb, + browser); } @@ -3129,7 +3055,8 @@ _gth_browser_set_sort_order (browser, gth_main_get_sort_type ("general::unsorted"), FALSE, - FALSE); + FALSE, + TRUE); gth_file_list_add_files (GTH_FILE_LIST (browser->priv->file_list), files, monitor_data->position); gth_file_list_update_files (GTH_FILE_LIST (browser->priv->file_list), files); gth_file_list_add_files (GTH_FILE_LIST (browser->priv->thumbnail_list), files, monitor_data->position); @@ -3165,6 +3092,14 @@ } +static gboolean +_g_file_list_only_contains (GList *l, + GFile *file) +{ + return (l->next == NULL) && _g_file_equal (file, G_FILE (l->data)); +} + + static GList * _g_file_list_find_file_or_ancestor (GList *l, GFile *file) @@ -3216,12 +3151,43 @@ if (browser->priv->location == NULL) return; - if ((event == GTH_MONITOR_EVENT_DELETED) && (_g_file_list_find_file_or_ancestor (list, browser->priv->location->file) != NULL)) - _gth_browser_load (browser, parent, NULL, NULL, 0, GTH_ACTION_GO_TO, TRUE); + if ((event == GTH_MONITOR_EVENT_DELETED) + && _g_file_list_only_contains (list, browser->priv->location->file)) + { + /* current location deleted -> load the previous location in + * the folder tree. */ + + GtkTreePath *location_path; - if ((event == GTH_MONITOR_EVENT_CHANGED) && (_g_file_list_find_file_or_ancestor (list, browser->priv->location->file) != NULL)) { + location_path = gth_folder_tree_get_path (GTH_FOLDER_TREE (browser->priv->folder_tree), browser->priv->location->file); + if (location_path != NULL) { + GtkTreePath *prev_path; + + prev_path = _gtk_tree_path_get_previous_or_parent (location_path); + if (prev_path != NULL) { + GthFileData *prev_file; + + prev_file = gth_folder_tree_get_file (GTH_FOLDER_TREE (browser->priv->folder_tree), prev_path); + if (prev_file != NULL) { + _gth_browser_load (browser, prev_file->file, NULL, NULL, 0, GTH_ACTION_GO_TO, TRUE); + _g_object_unref (prev_file); + } + + gtk_tree_path_free (prev_path); + } + + gtk_tree_path_free (location_path); + } + } + else if ((event == GTH_MONITOR_EVENT_DELETED) + && (_g_file_list_find_file_or_ancestor (list, browser->priv->location->file) != NULL)) + { + _gth_browser_load (browser, parent, NULL, NULL, 0, GTH_ACTION_GO_TO, TRUE); + } + else if ((event == GTH_MONITOR_EVENT_CHANGED) + && (_g_file_list_find_file_or_ancestor (list, browser->priv->location->file) != NULL)) + { _gth_browser_load (browser, browser->priv->location->file, NULL, NULL, 0, GTH_ACTION_GO_TO, TRUE); - return; } #if 0 @@ -3310,13 +3276,13 @@ if (update_file_list) { if (current_file_deleted) - g_signal_handlers_block_by_data (gth_browser_get_file_list_view (browser), browser); + _g_signal_handlers_block_by_data (gth_browser_get_file_list_view (browser), browser); gth_file_list_delete_files (GTH_FILE_LIST (browser->priv->file_list), list); gth_file_list_delete_files (GTH_FILE_LIST (browser->priv->thumbnail_list), list); if (event == GTH_MONITOR_EVENT_DELETED) gth_file_source_deleted_from_disk (browser->priv->location_source, browser->priv->location, list); if (current_file_deleted) - g_signal_handlers_unblock_by_data (gth_browser_get_file_list_view (browser), browser); + _g_signal_handlers_unblock_by_data (gth_browser_get_file_list_view (browser), browser); } if (current_file_deleted && ! gth_browser_get_file_modified (browser)) { @@ -3395,9 +3361,9 @@ new_location = gth_file_data_new (rename_data->new_file, browser->priv->location->info); new_info = gth_file_source_get_file_info (rename_data->file_source, new_location->file, GFILE_DISPLAY_ATTRIBUTES); - g_file_info_copy_into (new_info, new_location->info); + _g_file_info_update (new_location->info, new_info); - _gth_browser_set_location (browser, new_location); + _gth_browser_update_location (browser, new_location); g_object_unref (new_info); g_object_unref (new_location); @@ -3501,7 +3467,7 @@ location_chooser = gth_location_bar_get_chooser (GTH_LOCATION_BAR (browser->priv->location_bar)); gth_location_chooser_reload (GTH_LOCATION_CHOOSER (location_chooser)); - _gth_browser_set_location (browser, browser->priv->location); + _gth_browser_update_location (browser, browser->priv->location); } if ((browser->priv->current_file != NULL) && g_file_equal (browser->priv->current_file->file, file_data->file)) { @@ -3611,6 +3577,14 @@ static void +shortcuts_changed_cb (GthMonitor *monitor, + GthBrowser *browser) +{ + gth_window_load_shortcuts (GTH_WINDOW (browser)); +} + + +static void pref_general_filter_changed (GSettings *settings, const char *key, gpointer user_data) @@ -3729,10 +3703,12 @@ gth_browser_update_sensitivity (browser); _gth_browser_update_statusbar_list_info (browser); + n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); + gth_hook_invoke ("gth-browser-selection-changed", browser, n_selected); + if (gth_window_get_current_page (GTH_WINDOW (browser)) != GTH_BROWSER_PAGE_BROWSER) return FALSE; - n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser))); if (n_selected == 1) { GList *items; GList *file_list; @@ -3822,41 +3798,17 @@ gth_browser_file_list_key_press_cb (GthBrowser *browser, GdkEventKey *event) { - gboolean result = FALSE; - guint modifiers; + gboolean activated; - modifiers = gtk_accelerator_get_default_mod_mask (); + activated = gth_window_activate_shortcut (GTH_WINDOW (browser), + GTH_SHORTCUT_CONTEXT_BROWSER, + event->keyval, + event->state); - if ((event->state & modifiers) == 0) { - switch (event->keyval) { - case GDK_KEY_f: - gth_browser_fullscreen (browser); - result = TRUE; - break; + if (! activated) + activated = gth_hook_invoke_get ("gth-browser-file-list-key-press", browser, event) != NULL; - case GDK_KEY_e: - if (browser->priv->viewer_page != NULL) - gth_browser_show_viewer_tools (GTH_BROWSER (browser)); - result = TRUE; - break; - - case GDK_KEY_i: - if (gth_window_get_action_state (GTH_WINDOW (browser), "browser-properties")) - gth_browser_hide_sidebar (browser); - else - gth_browser_show_file_properties (browser); - result = TRUE; - break; - - default: - break; - } - } - - if (! result) - result = gth_hook_invoke_get ("gth-browser-file-list-key-press", browser, event) != NULL; - - return result; + return activated; } @@ -3890,6 +3842,7 @@ _gth_browser_monitor_entry_points (browser); gth_hook_invoke ("gth-browser-construct-idle-callback", browser); + gth_hook_invoke ("gth-browser-selection-changed", browser, 0); if (data->file_to_select != NULL) gth_browser_go_to (browser, data->location, data->file_to_select); @@ -3916,6 +3869,9 @@ if (old_parent == new_parent) return; + if (gth_window_get_current_page (GTH_WINDOW (browser)) != GTH_BROWSER_PAGE_BROWSER) + return; + gtk_widget_unrealize (browser->priv->file_properties); _gtk_widget_reparent (browser->priv->file_properties, new_parent); /* restore the child properties that gtk_widget_reparent doesn't preserve. */ @@ -4201,6 +4157,16 @@ } +static void +pref_scroll_action_changed (GSettings *settings, + const char *key, + gpointer user_data) +{ + GthBrowser *browser = user_data; + browser->priv->scroll_action = g_settings_get_enum (settings, key); +} + + static gboolean _gth_browser_realize (GtkWidget *browser, gpointer *data) @@ -4240,11 +4206,13 @@ if (! _gth_browser_file_tool_is_active (browser)) return gth_browser_viewer_key_press_cb (browser, event); break; + case GTH_BROWSER_PAGE_BROWSER: focus_widget = gtk_window_get_focus (GTK_WINDOW (browser)); if (! GTK_IS_ENTRY (focus_widget) && ! GTK_IS_TREE_VIEW (focus_widget)) return gth_browser_file_list_key_press_cb (browser, event); break; + default: break; } @@ -4299,6 +4267,7 @@ browser->priv->background_tasks = NULL; browser->priv->close_with_task = FALSE; browser->priv->load_data_queue = NULL; + browser->priv->last_folder_to_open = NULL; browser->priv->load_file_data_queue = NULL; browser->priv->load_file_timeout = 0; browser->priv->load_metadata_timeout = 0; @@ -4394,6 +4363,10 @@ gth_browser_accelerators, G_N_ELEMENTS (gth_browser_accelerators)); + gth_window_add_shortcuts (GTH_WINDOW (browser), + gth_browser_shortcuts, + G_N_ELEMENTS (gth_browser_shortcuts)); + /* -- image page -- */ /* content */ @@ -4452,10 +4425,10 @@ for (i = 0; i < GTH_BROWSER_N_HEADER_SECTIONS; i++) { gboolean separated_buttons; - separated_buttons = ((i == GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS) + separated_buttons = (/*(i == GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS)*/ /*|| (i == GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS)*/ /*|| (i == GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR)*/ - || (i == GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW) + (i == GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW) /*|| (i == GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT)*/ || (i == GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS)); @@ -4479,7 +4452,8 @@ gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); gtk_widget_set_margin_start (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); - gtk_widget_set_margin_start (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); + gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); + gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); gtk_widget_set_margin_start (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); gtk_widget_set_margin_end (browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW], GTH_BROWSER_HEADER_BAR_BIG_MARGIN); @@ -4524,18 +4498,16 @@ g_object_unref (builder); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS]); + gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_METADATA_TOOLS]); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW]); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT]); + gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT_METADATA]); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR]); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_APPLY]); gtk_header_bar_pack_end (GTK_HEADER_BAR (header_bar), browser->priv->header_sections[GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS]); - gth_menu_manager_append_entries (gth_browser_get_menu_manager (browser, GTH_BROWSER_MENU_MANAGER_GEARS_APP_ACTIONS), - gears_app_action_entries, - G_N_ELEMENTS (gears_app_action_entries)); - /* browser navigation */ gth_browser_add_header_bar_button (browser, @@ -4788,10 +4760,6 @@ G_CALLBACK (folder_tree_list_children_cb), browser); g_signal_connect (browser->priv->folder_tree, - "load", - G_CALLBACK (folder_tree_load_cb), - browser); - g_signal_connect (browser->priv->folder_tree, "folder_popup", G_CALLBACK (folder_tree_folder_popup_cb), browser); @@ -4934,6 +4902,11 @@ "order-changed", G_CALLBACK (order_changed_cb), browser); + browser->priv->shortcuts_changed_id = + g_signal_connect (gth_main_get_default_monitor (), + "shortcuts-changed", + G_CALLBACK (shortcuts_changed_cb), + browser); /* init browser data */ @@ -5017,6 +4990,7 @@ browser->priv->viewer_sidebar = g_settings_get_enum (browser->priv->browser_settings, PREF_BROWSER_VIEWER_SIDEBAR); browser->priv->fast_file_type = g_settings_get_boolean (browser->priv->browser_settings, PREF_BROWSER_FAST_FILE_TYPE); browser->priv->ask_to_save_modified_images = g_settings_get_boolean (browser->priv->messages_settings, PREF_MSG_SAVE_MODIFIED_IMAGE); + browser->priv->scroll_action = g_settings_get_enum (browser->priv->browser_settings, PREF_VIEWER_SCROLL_ACTION); /* load the history only for the first window */ { @@ -5027,6 +5001,7 @@ gtk_widget_realize (browser->priv->file_list); gth_hook_invoke ("gth-browser-construct", browser); + gth_window_load_shortcuts (GTH_WINDOW (browser)); performance (DEBUG_INFO, "window initialized"); @@ -5084,6 +5059,10 @@ "changed::" PREF_MSG_SAVE_MODIFIED_IMAGE, G_CALLBACK (pref_msg_save_modified_image_changed), browser); + g_signal_connect (browser->priv->browser_settings, + "changed::" PREF_VIEWER_SCROLL_ACTION, + G_CALLBACK (pref_scroll_action_changed), + browser); browser->priv->constructed = TRUE; } @@ -5250,7 +5229,7 @@ if (g_settings_get_boolean (browser->priv->browser_settings, PREF_BROWSER_USE_STARTUP_LOCATION)) location = g_file_new_for_uri (gth_pref_get_startup_location ()); else - location = g_file_new_for_uri (get_home_uri ()); + location = g_file_new_for_uri (_g_uri_get_home ()); gth_browser_go_to (browser, location, NULL); @@ -5265,7 +5244,8 @@ browser->priv->history = NULL; browser->priv->history_current = NULL; - _gth_browser_history_add (browser, browser->priv->location->file); + if (browser->priv->location != NULL) + _gth_browser_history_add (browser, browser->priv->location->file); _gth_browser_history_menu (browser); } @@ -5275,6 +5255,8 @@ const char *dialog_name, GtkWidget *dialog) { + if (dialog != NULL) + gtk_window_set_destroy_with_parent (GTK_WINDOW (dialog), TRUE); g_hash_table_insert (browser->priv->named_dialogs, (gpointer) dialog_name, dialog); } @@ -5510,7 +5492,7 @@ browser->priv->default_sort_type = sort_type; browser->priv->default_sort_inverse = sort_inverse; - _gth_browser_set_sort_order (browser, sort_type, sort_inverse, TRUE); + _gth_browser_set_sort_order (browser, sort_type, sort_inverse, TRUE, TRUE); } @@ -5567,6 +5549,8 @@ TaskData *task_data = user_data; GthBrowser *browser = task_data->browser; + _gth_browser_remove_activity (browser); + browser->priv->background_tasks = g_list_remove (browser->priv->background_tasks, task_data); g_signal_handler_disconnect (task, task_data->completed_event); task_data_free (task_data); @@ -5607,7 +5591,7 @@ GError *error, GthBrowser *browser) { - browser->priv->activity_ref--; + _gth_browser_remove_activity (browser); g_signal_handler_disconnect (browser->priv->task, browser->priv->task_completed); g_signal_handler_disconnect (browser->priv->task, browser->priv->task_progress); @@ -5644,6 +5628,8 @@ if ((flags & GTH_TASK_FLAGS_FOREGROUND) == 0) { TaskData *task_data; + _gth_browser_add_activity (browser); + task_data = task_data_new (browser, task, flags); browser->priv->background_tasks = g_list_prepend (browser->priv->background_tasks, task_data); @@ -5670,7 +5656,7 @@ "progress", G_CALLBACK (foreground_task_progress_cb), browser); - browser->priv->activity_ref++; + _gth_browser_add_activity (browser); gth_browser_update_sensitivity (browser); gth_task_exec (browser->priv->task, NULL); } @@ -5724,6 +5710,8 @@ gth_browser_viewer_scroll_event_cb (GthBrowser *browser, GdkEventScroll *event) { + gboolean handled; + g_return_val_if_fail (event != NULL, FALSE); if (! _gth_browser_can_change_image (browser)) @@ -5738,12 +5726,25 @@ if ((event->direction != GDK_SCROLL_UP) && (event->direction != GDK_SCROLL_DOWN)) return FALSE; - if (event->direction == GDK_SCROLL_UP) - gth_browser_show_prev_image (browser, FALSE, FALSE); - else - gth_browser_show_next_image (browser, FALSE, FALSE); + handled = FALSE; + switch (browser->priv->scroll_action) { + case GTH_SCROLL_ACTION_CHANGE_FILE: + if (event->direction == GDK_SCROLL_UP) + gth_browser_show_prev_image (browser, FALSE, FALSE); + else + gth_browser_show_next_image (browser, FALSE, FALSE); + handled = TRUE; + break; - return TRUE; + case GTH_SCROLL_ACTION_ZOOM: + handled = gth_viewer_page_zoom_from_scroll (browser->priv->viewer_page, event); + break; + + default: + break; + } + + return handled; } @@ -5768,56 +5769,19 @@ gth_browser_viewer_key_press_cb (GthBrowser *browser, GdkEventKey *event) { - guint modifiers; + gboolean activated; g_return_val_if_fail (event != NULL, FALSE); - modifiers = gtk_accelerator_get_default_mod_mask (); - if ((event->state & modifiers) == 0) { - switch (event->keyval) { - case GDK_KEY_Page_Up: - case GDK_KEY_KP_Page_Up: - case GDK_KEY_BackSpace: - gth_browser_show_prev_image (browser, FALSE, FALSE); - return TRUE; + activated = gth_window_activate_shortcut (GTH_WINDOW (browser), + GTH_SHORTCUT_CONTEXT_VIEWER, + event->keyval, + event->state); - case GDK_KEY_Page_Down: - case GDK_KEY_KP_Page_Down: - case GDK_KEY_space: - gth_browser_show_next_image (browser, FALSE, FALSE); - return TRUE; + if (! activated && gtk_widget_get_realized (browser->priv->file_list)) + activated = gth_hook_invoke_get ("gth-browser-file-list-key-press", browser, event) != NULL; - case GDK_KEY_Home: - case GDK_KEY_KP_Home: - gth_browser_show_first_image (browser, FALSE, FALSE); - return TRUE; - - case GDK_KEY_End: - case GDK_KEY_KP_End: - gth_browser_show_last_image (browser, FALSE, FALSE); - return TRUE; - - case GDK_KEY_e: - if (browser->priv->viewer_sidebar != GTH_SIDEBAR_STATE_TOOLS) - gth_browser_show_viewer_tools (browser); - else - gth_browser_hide_sidebar (browser); - return TRUE; - - case GDK_KEY_i: - gth_browser_toggle_properties_on_screen (browser); - return TRUE; - - case GDK_KEY_f: - gth_browser_fullscreen (browser); - return TRUE; - } - } - - if (gtk_widget_get_realized (browser->priv->file_list)) - return gth_hook_invoke_get ("gth-browser-file-list-key-press", browser, event) != NULL; - else - return FALSE; + return activated; } @@ -6482,6 +6446,53 @@ void +gth_browser_toggle_file_properties (GthBrowser *browser) +{ + g_return_if_fail (GTH_IS_BROWSER (browser)); + + switch (gth_window_get_current_page (GTH_WINDOW (browser))) { + case GTH_BROWSER_PAGE_BROWSER: + if (gth_window_get_action_state (GTH_WINDOW (browser), "browser-properties")) + gth_browser_hide_sidebar (browser); + else + gth_browser_show_file_properties (browser); + break; + + case GTH_BROWSER_PAGE_VIEWER: + gth_browser_toggle_properties_on_screen (browser); + break; + + default: + break; + } +} + + +void +gth_browser_toggle_viewer_tools (GthBrowser *browser) +{ + g_return_if_fail (GTH_IS_BROWSER (browser)); + + switch (gth_window_get_current_page (GTH_WINDOW (browser))) { + case GTH_BROWSER_PAGE_BROWSER: + if (browser->priv->viewer_page != NULL) + gth_browser_show_viewer_tools (GTH_BROWSER (browser)); + break; + + case GTH_BROWSER_PAGE_VIEWER: + if (browser->priv->viewer_sidebar != GTH_SIDEBAR_STATE_TOOLS) + gth_browser_show_viewer_tools (browser); + else + gth_browser_hide_sidebar (browser); + break; + + default: + break; + } +} + + +void gth_browser_hide_sidebar (GthBrowser *browser) { switch (gth_window_get_current_page (GTH_WINDOW (browser))) { @@ -6555,7 +6566,7 @@ char *title; GError *error; - title = file_format (_("Could not load the position “%s”"), data->location_data->file); + title = _g_format_str_for_file (_("Could not load the position “%s”"), data->location_data->file); error = g_error_new (GTH_ERROR, 0, _("File type not supported")); _gth_browser_show_error (browser, title, error); g_clear_error (&error); @@ -6566,7 +6577,7 @@ else if (browser->priv->location == NULL) { GFile *home; - home = g_file_new_for_uri (get_home_uri ()); + home = g_file_new_for_uri (_g_uri_get_home ()); gth_browser_load_location (browser, home); g_object_unref (home); @@ -6574,7 +6585,7 @@ else { char *title; - title = file_format (_("Could not load the position “%s”"), data->location_data->file); + title = _g_format_str_for_file (_("Could not load the position “%s”"), data->location_data->file); _gth_browser_show_error (browser, title, error); g_free (title); @@ -6598,7 +6609,7 @@ char *title; GError *error; - title = file_format (_("Could not load the position “%s”"), data->location_data->file); + title = _g_format_str_for_file (_("Could not load the position “%s”"), data->location_data->file); error = g_error_new (GTH_ERROR, 0, _("No suitable module found")); _gth_browser_show_error (browser, title, error); g_clear_error (&error); @@ -7006,36 +7017,8 @@ } -GMenuItem * -_g_menu_item_new_for_file (GFile *file, - const char *custom_label) +void +gth_browser_show_menu (GthBrowser *browser) { - GMenuItem *item; - GthFileSource *file_source; - GFileInfo *info; - - item = g_menu_item_new (NULL, NULL); - file_source = gth_main_get_file_source (file); - info = gth_file_source_get_file_info (file_source, file, GFILE_DISPLAY_ATTRIBUTES); - if (info != NULL) { - g_menu_item_set_label (item, (custom_label != NULL) ? custom_label : g_file_info_get_display_name (info)); - g_menu_item_set_icon (item, g_file_info_get_symbolic_icon (info)); - } - else { - char *label; - GIcon *icon; - - label = _g_file_get_display_name (file); - icon = _g_file_get_symbolic_icon (file); - g_menu_item_set_label (item, (custom_label != NULL) ? custom_label : label); - g_menu_item_set_icon (item, icon); - - g_object_unref (icon); - g_free (label); - } - - _g_object_unref (info); - _g_object_unref (file_source); - - return item; + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (browser->priv->menu_button), TRUE); } diff -Nru gthumb-3.8.3/gthumb/gth-browser.h gthumb-3.9.1/gthumb/gth-browser.h --- gthumb-3.8.3/gthumb/gth-browser.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-browser.h 2020-03-07 19:03:13.516954400 +0000 @@ -86,6 +86,7 @@ GTH_BROWSER_HEADER_SECTION_BROWSER_LOCATIONS, GTH_BROWSER_HEADER_SECTION_BROWSER_COMMANDS, GTH_BROWSER_HEADER_SECTION_BROWSER_TOOLS, + GTH_BROWSER_HEADER_SECTION_BROWSER_METADATA_TOOLS, GTH_BROWSER_HEADER_SECTION_BROWSER_VIEW, GTH_BROWSER_HEADER_SECTION_VIEWER_NAVIGATION, GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_VIEW, @@ -95,6 +96,7 @@ GTH_BROWSER_HEADER_SECTION_VIEWER_OTHER_COMMANDS, GTH_BROWSER_HEADER_SECTION_VIEWER_SIDEBAR, GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT, + GTH_BROWSER_HEADER_SECTION_VIEWER_EDIT_METADATA, GTH_BROWSER_HEADER_SECTION_EDITOR_NAVIGATION, GTH_BROWSER_HEADER_SECTION_EDITOR_VIEW, GTH_BROWSER_HEADER_SECTION_EDITOR_COMMANDS, @@ -107,10 +109,16 @@ GTH_ACTION_GO_BACK, GTH_ACTION_GO_FORWARD, GTH_ACTION_GO_UP, - GTH_ACTION_LIST_CHILDREN, - GTH_ACTION_VIEW + GTH_ACTION_TREE_LIST_CHILDREN, + GTH_ACTION_TREE_OPEN } GthAction; +typedef enum { + GTH_SCROLL_ACTION_NONE, + GTH_SCROLL_ACTION_CHANGE_FILE, + GTH_SCROLL_ACTION_ZOOM +} GthScrollAction; + struct _GthBrowser { GthWindow __parent; @@ -248,6 +256,8 @@ (GthBrowser *browser); void gth_browser_show_file_properties (GthBrowser *browser); void gth_browser_show_viewer_tools (GthBrowser *browser); +void gth_browser_toggle_file_properties (GthBrowser *browser); +void gth_browser_toggle_viewer_tools (GthBrowser *browser); void gth_browser_hide_sidebar (GthBrowser *browser); void gth_browser_load_location (GthBrowser *browser, GFile *location); @@ -278,12 +288,10 @@ (GthBrowser *browser); void gth_browser_keep_mouse_visible (GthBrowser *browser, gboolean value); +void gth_browser_show_menu (GthBrowser *browser); /* utilities */ -GMenuItem * _g_menu_item_new_for_file (GFile *file, - const char *custom_label); - G_END_DECLS #endif /* GTH_BROWSER_H */ diff -Nru gthumb-3.8.3/gthumb/gth-color-manager.c gthumb-3.9.1/gthumb/gth-color-manager.c --- gthumb-3.8.3/gthumb/gth-color-manager.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-color-manager.c 2020-03-07 19:03:13.516954400 +0000 @@ -288,7 +288,7 @@ cd_device_connected_cb, task); - g_ptr_array_free (devices, TRUE); + g_ptr_array_unref (devices); } diff -Nru gthumb-3.8.3/gthumb/gth-color-scale.c gthumb-3.9.1/gthumb/gth-color-scale.c --- gthumb-3.8.3/gthumb/gth-color-scale.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-color-scale.c 2020-03-07 19:03:13.516954400 +0000 @@ -21,6 +21,7 @@ #include #include "cairo-utils.h" +#include "glib-utils.h" #include "gth-color-scale.h" #include "gth-enum-types.h" @@ -484,7 +485,7 @@ GtkAdjustment *adj; if (self->priv->adj != NULL) { - g_signal_handlers_disconnect_by_data (self->priv->adj, self); + _g_signal_handlers_disconnect_by_data (self->priv->adj, self); g_object_unref (self->priv->adj); self->priv->adj = NULL; } diff -Nru gthumb-3.8.3/gthumb/gth-delete-task.c gthumb-3.9.1/gthumb/gth-delete-task.c --- gthumb-3.8.3/gthumb/gth-delete-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-delete-task.c 2020-03-07 19:03:13.516954400 +0000 @@ -58,20 +58,33 @@ static void +delete_progress_cb (GObject *object, + const char *description, + const char *details, + gboolean pulse, + double fraction, + gpointer user_data) +{ + GthDeleteTask *self = user_data; + + gth_task_progress (GTH_TASK (self), description, details, pulse, fraction); +} + + +static void gth_delete_task_exec (GthTask *task) { GthDeleteTask *self; self = GTH_DELETE_TASK (task); - gth_task_progress (task, _("Deleting files"), NULL, TRUE, 0.0); - - _g_delete_files_async (self->priv->file_list, - TRUE, - TRUE, - gth_task_get_cancellable (task), - delete_ready_cb, - self); + _g_file_list_delete_async (self->priv->file_list, + TRUE, + TRUE, + gth_task_get_cancellable (task), + delete_progress_cb, + delete_ready_cb, + self); } diff -Nru gthumb-3.8.3/gthumb/gth-extensions.c gthumb-3.9.1/gthumb/gth-extensions.c --- gthumb-3.8.3/gthumb/gth-extensions.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-extensions.c 2020-03-07 19:03:13.516954400 +0000 @@ -470,7 +470,7 @@ } basename = g_file_get_basename (file); - desc->id = _g_uri_remove_extension (basename); + desc->id = _g_path_remove_extension (basename); desc->name = g_key_file_get_locale_string (key_file, "Extension", "Name", NULL, NULL); desc->description = g_key_file_get_locale_string (key_file, "Extension", "Comment", NULL, NULL); if (desc->description == NULL) diff -Nru gthumb-3.8.3/gthumb/gth-file-chooser-dialog.c gthumb-3.9.1/gthumb/gth-file-chooser-dialog.c --- gthumb-3.8.3/gthumb/gth-file-chooser-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-chooser-dialog.c 2020-03-07 19:03:13.516954400 +0000 @@ -219,25 +219,29 @@ get_format_from_extension (GthFileChooserDialog *self, const char *filename) { - const char *ext; + char *ext; + const char *only_ext; GList *scan; - ext = _g_uri_get_file_extension (filename); + ext = _g_uri_get_extension (filename); if (ext == NULL) return NULL; - if (ext[0] == '.') - ext++; + only_ext = (ext[0] == '.') ? ext + 1 : ext; for (scan = self->priv->supported_formats; scan; scan = scan->next) { Format *format = scan->data; int i; for (i = 0; format->extensions[i] != NULL; i++) - if (g_ascii_strcasecmp (ext, format->extensions[i]) == 0) + if (g_ascii_strcasecmp (only_ext, format->extensions[i]) == 0) { + g_free (ext); return format; + } } + g_free (ext); + return NULL; } diff -Nru gthumb-3.8.3/gthumb/gth-file-data.c gthumb-3.9.1/gthumb/gth-file-data.c --- gthumb-3.8.3/gthumb/gth-file-data.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-data.c 2020-03-07 19:03:13.516954400 +0000 @@ -193,9 +193,9 @@ const char *mime_type) { if (mime_type != NULL) { - g_file_info_set_content_type (self->info, get_static_string (mime_type)); - g_file_info_set_attribute_string (self->info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, get_static_string (mime_type)); - g_file_info_set_attribute_string (self->info, G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE, get_static_string (mime_type)); + g_file_info_set_content_type (self->info, _g_str_get_static (mime_type)); + g_file_info_set_attribute_string (self->info, G_FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE, _g_str_get_static (mime_type)); + g_file_info_set_attribute_string (self->info, G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE, _g_str_get_static (mime_type)); } } @@ -228,7 +228,7 @@ g_free (filename); } - return get_static_string (content_type); + return _g_str_get_static (content_type); } @@ -262,7 +262,7 @@ g_object_unref (istream); } - return get_static_string (content_type); + return _g_str_get_static (content_type); } @@ -362,7 +362,7 @@ gth_file_data_update_mime_type (GthFileData *fd, gboolean fast) { - gth_file_data_set_mime_type (fd, _g_file_get_mime_type (fd->file, fast || ! g_file_is_native (fd->file))); + gth_file_data_set_mime_type (fd, _g_file_query_mime_type (fd->file, fast || ! g_file_is_native (fd->file))); } diff -Nru gthumb-3.8.3/gthumb/gth-file-list.c gthumb-3.9.1/gthumb/gth-file-list.c --- gthumb-3.8.3/gthumb/gth-file-list.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-list.c 2020-03-07 19:03:13.516954400 +0000 @@ -878,7 +878,7 @@ file_store = (GthFileStore*) gth_file_view_get_model (GTH_FILE_VIEW (file_list->priv->view)); - cache_base_uri = g_strconcat (get_home_uri (), "/.thumbnails", NULL); + cache_base_uri = g_strconcat (_g_uri_get_home (), "/.thumbnails", NULL); for (scan = files; scan; scan = scan->next) { GthFileData *file_data = scan->data; char *uri; @@ -897,7 +897,7 @@ thumb_data = thumb_data_new (); /* files in the .thumbnails directory are already thumbnails, * set them as created. */ - thumb_data->thumb_created = _g_uri_parent_of_uri (cache_base_uri, uri); + thumb_data->thumb_created = _g_uri_is_parent (cache_base_uri, uri); g_hash_table_insert (file_list->priv->thumb_data, g_object_ref (file_data->file), diff -Nru gthumb-3.8.3/gthumb/gth-file-properties.c gthumb-3.9.1/gthumb/gth-file-properties.c --- gthumb-3.8.3/gthumb/gth-file-properties.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-properties.c 2020-03-07 19:03:13.516954400 +0000 @@ -21,9 +21,11 @@ #include #include +#include "dlg-favorite-properties.h" #include "glib-utils.h" #include "gth-file-properties.h" #include "gth-main.h" +#include "gth-preferences.h" #include "gth-property-view.h" #include "gth-string-list.h" #include "gth-time.h" @@ -57,12 +59,18 @@ struct _GthFilePropertiesPrivate { + GSettings *settings; GtkWidget *main_container; GtkWidget *tree_view; GtkListStore *tree_model; GtkWidget *popup_menu; + GtkWidget *copy_menu_item; + GtkWidget *edit_favorites_menu_item; + GtkWidget *context_menu_sep; gboolean show_details; GthFileData *last_file_data; + GHashTable *favorites; + gboolean default_favorites; }; @@ -162,29 +170,34 @@ if ((info->flags & GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW) != GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW) continue; + if (info->id == NULL) + continue; + value = gth_file_data_get_attribute_as_string (file_data, info->id); if ((value == NULL) || (*value == '\0')) { g_free (value); continue; } - if (info->id != NULL) { - if (g_str_has_prefix (info->id, "Exif")) { - if (! self->priv->show_details) - continue; - } - else if (g_str_has_prefix (info->id, "Iptc")) { - if (! self->priv->show_details) - continue; - } - else if (g_str_has_prefix (info->id, "Xmp")) { - if (! self->priv->show_details) - continue; - } - else - if (self->priv->show_details) - continue; + if (! self->priv->show_details && ! self->priv->default_favorites) { + if (! g_hash_table_contains (self->priv->favorites, info->id)) + continue; + } + else if (g_str_has_prefix (info->id, "Exif")) { + if (! self->priv->show_details) + continue; + } + else if (g_str_has_prefix (info->id, "Iptc")) { + if (! self->priv->show_details) + continue; + } + else if (g_str_has_prefix (info->id, "Xmp")) { + if (! self->priv->show_details) + continue; } + else + if (self->priv->show_details) + continue; if (value != NULL) { char *utf8_value; @@ -193,7 +206,7 @@ utf8_value = _g_utf8_from_any (value); if (g_utf8_strlen (utf8_value, -1) > MAX_ATTRIBUTE_LENGTH) g_utf8_strncpy (g_utf8_offset_to_pointer (utf8_value, MAX_ATTRIBUTE_LENGTH - 1), "…", 1); - tmp_value = _g_utf8_replace (utf8_value, "[\r\n]", " "); + tmp_value = _g_utf8_replace_pattern (utf8_value, "[\r\n]", " "); g_free (value); value = tmp_value; @@ -263,12 +276,48 @@ if (self->priv->popup_menu != NULL) gtk_widget_destroy (self->priv->popup_menu); _g_object_unref (self->priv->last_file_data); + _g_object_unref (self->priv->settings); + if (self->priv->favorites != NULL) + g_hash_table_unref (self->priv->favorites); G_OBJECT_CLASS (gth_file_properties_parent_class)->finalize (base); } static void +update_favorites (GthFileProperties *self) +{ + char *favorites; + + if (self->priv->show_details) + return; + + favorites = g_settings_get_string (self->priv->settings, PREF_BROWSER_FAVORITE_PROPERTIES); + + if (self->priv->favorites != NULL) + g_hash_table_unref (self->priv->favorites); + self->priv->favorites = _g_str_split_as_hash_table (favorites); + self->priv->default_favorites = _g_str_equal (favorites, "default"); + + g_free (favorites); +} + + +static void +update_context_menu_separator_visibility (GthFileProperties *self) +{ + int n_visible; + + n_visible = 0; + if (gtk_widget_get_visible (self->priv->copy_menu_item)) + n_visible++; + if (gtk_widget_get_visible (self->priv->edit_favorites_menu_item)) + n_visible++; + gtk_widget_set_visible (self->priv->context_menu_sep, n_visible > 1); +} + + +static void gth_file_properties_set_property (GObject *object, guint property_id, const GValue *value, @@ -281,6 +330,11 @@ switch (property_id) { case PROP_SHOW_DETAILS: self->priv->show_details = g_value_get_boolean (value); + update_favorites (self); + if (self->priv->edit_favorites_menu_item != NULL) { + gtk_widget_set_visible (self->priv->edit_favorites_menu_item, ! self->priv->show_details); + update_context_menu_separator_visibility (self); + } break; default: break; @@ -353,6 +407,15 @@ } +static void +edit_favorites_menu_item_activate_cb (GtkMenuItem *menuitem, + gpointer user_data) +{ + GthFileProperties *self = user_data; + dlg_favorite_properties (GTH_BROWSER (_gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)))); +} + + static gboolean tree_view_button_press_event_cb (GtkWidget *widget, GdkEventButton *event, @@ -362,21 +425,26 @@ if ((event->type == GDK_BUTTON_PRESS) && (event->button == 3)) { GtkTreePath *path; + gboolean path_selected; - if (! gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (self->priv->tree_view), - event->x, - event->y, - &path, - NULL, - NULL, - NULL)) - return FALSE; + path_selected = gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (self->priv->tree_view), + event->x, + event->y, + &path, + NULL, + NULL, + NULL); + + gtk_widget_set_visible (self->priv->copy_menu_item, path_selected); + update_context_menu_separator_visibility (self); + + if (path != NULL) { + gtk_tree_selection_select_path (GTK_TREE_SELECTION (gtk_tree_view_get_selection (GTK_TREE_VIEW (self->priv->tree_view))), path); + gtk_tree_path_free (path); + } - gtk_tree_selection_select_path (GTK_TREE_SELECTION (gtk_tree_view_get_selection (GTK_TREE_VIEW (self->priv->tree_view))), path); gtk_menu_popup_at_pointer (GTK_MENU (self->priv->popup_menu), (GdkEvent *) event); - gtk_tree_path_free (path); - return TRUE; } @@ -389,12 +457,29 @@ gpointer user_data) { GthFileProperties *self = user_data; + + gtk_widget_set_visible (self->priv->copy_menu_item, TRUE); + update_context_menu_separator_visibility (self); + gtk_menu_popup_at_pointer (GTK_MENU (self->priv->popup_menu), NULL); + return TRUE; } static void +pref_favorite_properties_changed (GSettings *settings, + const char *key, + gpointer user_data) +{ + GthFileProperties *self = user_data; + + update_favorites (self); + gth_property_view_set_file (GTH_PROPERTY_VIEW (self), self->priv->last_file_data); +} + + +static void gth_file_properties_init (GthFileProperties *self) { GtkWidget *scrolled_win; @@ -405,6 +490,15 @@ self->priv = gth_file_properties_get_instance_private (self); self->priv->show_details = FALSE; self->priv->last_file_data = NULL; + self->priv->settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); + self->priv->favorites = NULL; + + update_favorites (self); + + g_signal_connect (self->priv->settings, + "changed::" PREF_BROWSER_FAVORITE_PROPERTIES, + G_CALLBACK (pref_favorite_properties_changed), + self); gtk_orientable_set_orientation (GTK_ORIENTABLE (self), GTK_ORIENTATION_VERTICAL); gtk_box_set_spacing (GTK_BOX (self), 6); @@ -438,14 +532,29 @@ /* popup menu */ self->priv->popup_menu = gtk_menu_new (); - menu_item = gtk_menu_item_new_with_label (_GTK_LABEL_COPY); + + self->priv->copy_menu_item = menu_item = gtk_menu_item_new_with_label (_GTK_LABEL_COPY); gtk_widget_show (menu_item); - gtk_menu_shell_append (GTK_MENU_SHELL (self->priv->popup_menu), - menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (self->priv->popup_menu), menu_item); g_signal_connect (menu_item, "activate", G_CALLBACK (copy_menu_item_activate_cb), self); + + self->priv->context_menu_sep = menu_item = gtk_separator_menu_item_new (); + gtk_widget_show (menu_item); + gtk_menu_shell_append (GTK_MENU_SHELL (self->priv->popup_menu), menu_item); + + self->priv->edit_favorites_menu_item = menu_item = gtk_menu_item_new_with_label (_("Preferences")); + gtk_widget_set_visible (menu_item, ! self->priv->show_details); + gtk_menu_shell_append (GTK_MENU_SHELL (self->priv->popup_menu), menu_item); + g_signal_connect (menu_item, + "activate", + G_CALLBACK (edit_favorites_menu_item_activate_cb), + self); + + update_context_menu_separator_visibility (self); + g_signal_connect (self->priv->tree_view, "button-press-event", G_CALLBACK (tree_view_button_press_event_cb), diff -Nru gthumb-3.8.3/gthumb/gth-file-selection-info.c gthumb-3.9.1/gthumb/gth-file-selection-info.c --- gthumb-3.8.3/gthumb/gth-file-selection-info.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-selection-info.c 2020-03-07 19:03:13.516954400 +0000 @@ -0,0 +1,146 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include "gth-file-selection-info.h" + + +#define GET_WIDGET(name) _gtk_builder_get_widget (self->priv->builder, (name)) + + +struct _GthFileSelectionInfoPrivate { + GtkBuilder *builder; + GthBrowser *browser; +}; + + +G_DEFINE_TYPE_WITH_CODE (GthFileSelectionInfo, + gth_file_selection_info, + GTK_TYPE_BOX, + G_ADD_PRIVATE (GthFileSelectionInfo)) + + +static void +gth_file_selection_info_finalize (GObject *object) +{ + GthFileSelectionInfo *self; + + self = GTH_FILE_SELECTION_INFO (object); + _g_object_unref (self->priv->builder); + + G_OBJECT_CLASS (gth_file_selection_info_parent_class)->finalize (object); +} + + +static void +gth_file_selection_info_class_init (GthFileSelectionInfoClass *klass) +{ + GObjectClass *object_class; + + object_class = (GObjectClass*) klass; + object_class->finalize = gth_file_selection_info_finalize; +} + + +static GthBrowser * +_get_browser (GthFileSelectionInfo *self) +{ + GtkWindow *dialog; + + if (self->priv->browser != NULL) + return self->priv->browser; + + dialog = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)); + if (dialog != NULL) + self->priv->browser = (GthBrowser *) gtk_window_get_transient_for (dialog); + + return self->priv->browser; +} + + +static void +next_button_clicked_cb (GtkButton *button, + gpointer user_data) +{ + GthFileSelectionInfo *self = user_data; + + self->priv->browser = _get_browser (self); + if (self->priv->browser != NULL) + gth_browser_show_next_image (self->priv->browser, FALSE, FALSE); +} + + +static void +prev_button_clicked_cb (GtkButton *button, + gpointer user_data) +{ + GthFileSelectionInfo *self = user_data; + + self->priv->browser = _get_browser (self); + if (self->priv->browser != NULL) + gth_browser_show_prev_image (self->priv->browser, FALSE, FALSE); +} + + +static void +gth_file_selection_info_init (GthFileSelectionInfo *self) +{ + self->priv = gth_file_selection_info_get_instance_private (self); + self->priv->builder = _gtk_builder_new_from_file ("file-selection-info.ui", NULL); + self->priv->browser = NULL; + + gtk_box_pack_start (GTK_BOX (self), GET_WIDGET ("content"), TRUE, TRUE, 0); + g_signal_connect (GET_WIDGET ("next_button"), "clicked", G_CALLBACK (next_button_clicked_cb), self); + g_signal_connect (GET_WIDGET ("prev_button"), "clicked", G_CALLBACK (prev_button_clicked_cb), self); +} + + +GtkWidget * +gth_file_selection_info_new (void) +{ + GthFileSelectionInfo *self; + + self = g_object_new (GTH_TYPE_FILE_SELECTION_INFO, NULL); + + return GTK_WIDGET (self); +} + + +void +gth_file_selection_info_set_file_list (GthFileSelectionInfo *self, + GList *file_list) +{ + char *title; + + if ((file_list != NULL) && (file_list->next == NULL)) { + GthFileData *file_data = file_list->data; + title = g_strdup (g_file_info_get_display_name (file_data->info)); + } + else { + int n_files = g_list_length (file_list); + title = g_strdup_printf (g_dngettext (NULL, "%d file", "%d files", n_files), n_files); + } + + gtk_label_set_label (GTK_LABEL (GET_WIDGET ("info_label")), title); + + g_free (title); +} diff -Nru gthumb-3.8.3/gthumb/gth-file-selection-info.h gthumb-3.9.1/gthumb/gth-file-selection-info.h --- gthumb-3.8.3/gthumb/gth-file-selection-info.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-selection-info.h 2020-03-07 19:03:13.516954400 +0000 @@ -0,0 +1,57 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2020 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_FILE_SELECTION_INFO_H +#define GTH_FILE_SELECTION_INFO_H + +#include +#include + +G_BEGIN_DECLS + +#define GTH_TYPE_FILE_SELECTION_INFO (gth_file_selection_info_get_type ()) +#define GTH_FILE_SELECTION_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfo)) +#define GTH_FILE_SELECTION_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfoClass)) +#define GTH_IS_FILE_SELECTION_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_FILE_SELECTION_INFO)) +#define GTH_IS_FILE_SELECTION_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTH_TYPE_FILE_SELECTION_INFO)) +#define GTH_FILE_SELECTION_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTH_TYPE_FILE_SELECTION_INFO, GthFileSelectionInfoClass)) + +typedef struct _GthFileSelectionInfo GthFileSelectionInfo; +typedef struct _GthFileSelectionInfoClass GthFileSelectionInfoClass; +typedef struct _GthFileSelectionInfoPrivate GthFileSelectionInfoPrivate; + +struct _GthFileSelectionInfo { + GtkBox parent_instance; + GthFileSelectionInfoPrivate *priv; +}; + +struct _GthFileSelectionInfoClass { + GtkBoxClass parent_class; +}; + +GType gth_file_selection_info_get_type (void); +GtkWidget * gth_file_selection_info_new (void); +void gth_file_selection_info_set_file_list (GthFileSelectionInfo *self, + GList *file_list); + +G_END_DECLS + +#endif /* GTH_FILE_SELECTION_INFO_H */ diff -Nru gthumb-3.8.3/gthumb/gth-file-source.c gthumb-3.9.1/gthumb/gth-file-source.c --- gthumb-3.8.3/gthumb/gth-file-source.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-source.c 2020-03-07 19:03:13.516954400 +0000 @@ -831,8 +831,7 @@ static gboolean -base_can_cut (GthFileSource *file_source, - GFile *file) +base_can_cut (GthFileSource *file_source) { return FALSE; } @@ -901,6 +900,15 @@ } +static GdkDragAction +base_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file) +{ + return 0; /* no action supported by default. */ +} + + static void gth_file_source_finalize (GObject *object) { @@ -939,6 +947,7 @@ class->deleted_from_disk = base_deleted_from_disk; class->get_free_space = base_get_free_space; class->shows_extra_widget = base_shows_extra_widget; + class->get_drop_actions = base_get_drop_actions; } @@ -965,19 +974,16 @@ gth_file_source_supports_scheme (GthFileSource *file_source, const char *uri) { - gboolean result = FALSE; - GList *scan; + GList *scan; for (scan = file_source->priv->schemes; scan; scan = scan->next) { const char *scheme = scan->data; - if (strncmp (uri, scheme, strlen (scheme)) == 0) { - result = TRUE; - break; - } + if (g_str_has_prefix (uri, scheme)) + return TRUE; } - return result; + return FALSE; } @@ -1335,10 +1341,9 @@ gboolean -gth_file_source_can_cut (GthFileSource *file_source, - GFile *file) +gth_file_source_can_cut (GthFileSource *file_source) { - return GTH_FILE_SOURCE_GET_CLASS (G_OBJECT (file_source))->can_cut (file_source, file); + return GTH_FILE_SOURCE_GET_CLASS (G_OBJECT (file_source))->can_cut (file_source); } @@ -1438,3 +1443,12 @@ { return GTH_FILE_SOURCE_GET_CLASS (G_OBJECT (file_source))->shows_extra_widget (file_source); } + + +GdkDragAction +gth_file_source_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file) +{ + return GTH_FILE_SOURCE_GET_CLASS (G_OBJECT (file_source))->get_drop_actions (file_source, destination, file); +} diff -Nru gthumb-3.8.3/gthumb/gth-file-source.h gthumb-3.9.1/gthumb/gth-file-source.h --- gthumb-3.8.3/gthumb/gth-file-source.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-source.h 2020-03-07 19:03:13.520287800 +0000 @@ -113,8 +113,7 @@ DialogCallback dialog_callback, ReadyCallback callback, gpointer data); - gboolean (*can_cut) (GthFileSource *file_source, - GFile *file); + gboolean (*can_cut) (GthFileSource *file_source); void (*monitor_entry_points) (GthFileSource *file_source); void (*monitor_directory) (GthFileSource *file_source, GFile *file, @@ -140,6 +139,9 @@ SpaceReadyCallback callback, gpointer data); gboolean (*shows_extra_widget) (GthFileSource *file_source); + GdkDragAction(*get_drop_actions) (GthFileSource *file_source, + GFile *destination, + GFile *file); }; GType gth_file_source_get_type (void) G_GNUC_CONST; @@ -205,8 +207,7 @@ DialogCallback dialog_callback, ReadyCallback ready_callback, gpointer data); -gboolean gth_file_source_can_cut (GthFileSource *file_source, - GFile *file); +gboolean gth_file_source_can_cut (GthFileSource *file_source); void gth_file_source_monitor_entry_points (GthFileSource *file_source); void gth_file_source_monitor_directory (GthFileSource *file_source, GFile *file, @@ -232,6 +233,9 @@ SpaceReadyCallback callback, gpointer data); gboolean gth_file_source_shows_extra_widget (GthFileSource *file_source); +GdkDragAction gth_file_source_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file); /*< protected >*/ diff -Nru gthumb-3.8.3/gthumb/gth-file-source-vfs.c gthumb-3.9.1/gthumb/gth-file-source-vfs.c --- gthumb-3.8.3/gthumb/gth-file-source-vfs.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-source-vfs.c 2020-03-07 19:03:13.516954400 +0000 @@ -125,7 +125,7 @@ list = NULL; - list = gth_file_source_vfs_add_uri (list, file_source, get_home_uri ()); + list = gth_file_source_vfs_add_uri (list, file_source, _g_uri_get_home ()); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_PICTURES); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_VIDEOS); list = gth_file_source_vfs_add_special_dir (list, file_source, G_USER_DIRECTORY_DOWNLOAD); @@ -151,12 +151,6 @@ continue; } - info = g_file_query_info (file, GFILE_BASIC_ATTRIBUTES ",access::*", G_FILE_QUERY_INFO_NONE, NULL, NULL); - if (info == NULL) { - g_object_unref (file); - continue; - } - icon = g_mount_get_symbolic_icon (mount); name = g_mount_get_name (mount); @@ -174,8 +168,15 @@ g_free (drive_name); } + info = g_file_info_new (); + g_file_info_set_file_type (info, G_FILE_TYPE_DIRECTORY); + g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_READ, TRUE); + g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_WRITE, FALSE); + g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_DELETE, FALSE); + g_file_info_set_attribute_boolean (info, G_FILE_ATTRIBUTE_ACCESS_CAN_TRASH, FALSE); g_file_info_set_symbolic_icon (info, icon); g_file_info_set_display_name (info, name); + g_file_info_set_name (info, name); list = g_list_append (list, gth_file_data_new (file, info)); g_object_unref (info); @@ -193,14 +194,7 @@ gth_file_source_vfs_to_gio_file (GthFileSource *file_source, GFile *file) { - char *uri; - GFile *gio_file; - - uri = g_file_get_uri (file); - gio_file = g_file_new_for_uri (g_str_has_prefix (uri, "vfs+") ? uri + 4 : uri); - g_free (uri); - - return gio_file; + return g_file_dup (file); } @@ -209,18 +203,16 @@ GFile *file, const char *attributes) { - GFile *gio_file; GFileInfo *file_info; char *uri; - gio_file = gth_file_source_to_gio_file (file_source, file); - file_info = g_file_query_info (gio_file, + file_info = g_file_query_info (file, attributes, G_FILE_QUERY_INFO_NONE, NULL, NULL); - uri = g_file_get_uri (gio_file); + uri = g_file_get_uri (file); if (g_strcmp0 (uri, "file:///") == 0) { GIcon *icon; @@ -230,11 +222,10 @@ g_object_unref (icon); } - else if (g_strcmp0 (uri, get_home_uri ()) == 0) + else if (g_strcmp0 (uri, _g_uri_get_home ()) == 0) g_file_info_set_display_name (file_info, _("Home Folder")); g_free (uri); - g_object_unref (gio_file); return file_info; } @@ -321,7 +312,6 @@ gpointer user_data) { GthFileSourceVfs *file_source_vfs = (GthFileSourceVfs *) file_source; - GFile *gio_folder; gth_file_source_set_active (file_source, TRUE); g_cancellable_reset (gth_file_source_get_cancellable (file_source)); @@ -335,8 +325,7 @@ file_source_vfs->priv->user_data = user_data; file_source_vfs->priv->check_hidden_files = _g_file_attributes_matches_any (attributes, G_FILE_ATTRIBUTE_STANDARD_IS_HIDDEN); - gio_folder = gth_file_source_to_gio_file (file_source, parent); - g_directory_foreach_child (gio_folder, + _g_directory_foreach_child (parent, recursive, TRUE, attributes, @@ -345,8 +334,6 @@ fec__for_each_file_func, fec__done_func, file_source); - - g_object_unref (gio_folder); } @@ -391,25 +378,24 @@ cod->ready_callback = ready_callback; cod->user_data = data; - _g_copy_files_async (file_list, - destination->file, - move, - GTH_FILE_COPY_ALL_METADATA | GTH_FILE_COPY_RENAME_SAME_FILE, - GTH_OVERWRITE_RESPONSE_UNSPECIFIED, - G_PRIORITY_DEFAULT, - gth_file_source_get_cancellable (file_source), - progress_callback, - data, - dialog_callback, - data, - copy_done_cb, - cod); + _g_file_list_copy_async (file_list, + destination->file, + move, + GTH_FILE_COPY_ALL_METADATA | GTH_FILE_COPY_RENAME_SAME_FILE, + GTH_OVERWRITE_RESPONSE_UNSPECIFIED, + G_PRIORITY_DEFAULT, + gth_file_source_get_cancellable (file_source), + progress_callback, + data, + dialog_callback, + data, + copy_done_cb, + cod); } static gboolean -gth_file_source_vfs_can_cut (GthFileSource *file_source, - GFile *file) +gth_file_source_vfs_can_cut (GthFileSource *file_source) { return TRUE; } @@ -884,6 +870,37 @@ } +static GdkDragAction +gth_file_source_vfs_get_drop_actions (GthFileSource *file_source, + GFile *destination, + GFile *file) +{ + GdkDragAction actions = 0; + char *dest_uri; + char *file_uri; + char *dest_scheme; + char *file_scheme; + + dest_uri = g_file_get_uri (destination); + dest_scheme = gth_main_get_source_scheme (dest_uri); + file_uri = g_file_get_uri (file); + file_scheme = gth_main_get_source_scheme (file_uri); + + if (_g_str_equal (dest_scheme, "file") + && _g_str_equal (file_scheme, "file")) + { + actions = GDK_ACTION_COPY | GDK_ACTION_MOVE; + } + + g_free (file_scheme); + g_free (file_uri); + g_free (dest_scheme); + g_free (dest_uri); + + return actions; +} + + static void gth_file_source_vfs_finalize (GObject *object) { @@ -927,6 +944,7 @@ file_source_class->monitor_entry_points = gth_file_source_vfs_monitor_entry_points; file_source_class->monitor_directory = gth_file_source_vfs_monitor_directory; file_source_class->remove = gth_file_source_vfs_remove; + file_source_class->get_drop_actions = gth_file_source_vfs_get_drop_actions; } @@ -950,5 +968,5 @@ file_source->priv->mount_monitor = NULL; file_source->priv->check_hidden_files = FALSE; - gth_file_source_add_scheme (GTH_FILE_SOURCE (file_source), "vfs+"); + gth_file_source_add_scheme (GTH_FILE_SOURCE (file_source), "file"); } diff -Nru gthumb-3.8.3/gthumb/gth-file-store.c gthumb-3.9.1/gthumb/gth-file-store.c --- gthumb-3.8.3/gthumb/gth-file-store.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-store.c 2020-03-07 19:03:13.520287800 +0000 @@ -703,22 +703,6 @@ } -static void -_gth_file_store_sort (GthFileStore *file_store, - gconstpointer pbase, - gint total_elems) -{ - if (file_store->priv->cmp_func == NULL) - return; - - g_qsort_with_data (pbase, - total_elems, - (gsize) sizeof (GthFileRow *), - compare_row_func, - file_store); -} - - static int compare_by_pos (gconstpointer a, gconstpointer b, @@ -737,6 +721,19 @@ static void +_gth_file_store_sort (GthFileStore *file_store, + gconstpointer pbase, + gint total_elems) +{ + g_qsort_with_data (pbase, + total_elems, + (gsize) sizeof (GthFileRow *), + (file_store->priv->cmp_func != NULL) ? compare_row_func : compare_by_pos, + file_store); +} + + +static void _gth_file_store_compact_rows (GthFileStore *file_store) { int i, j; @@ -1124,16 +1121,21 @@ } +static void +_gth_file_store_set_sort_func (GthFileStore *file_store, + GthFileDataCompFunc cmp_func, + gboolean inverse_sort) +{ + file_store->priv->cmp_func = cmp_func; + file_store->priv->inverse_sort = inverse_sort; +} + void gth_file_store_set_sort_func (GthFileStore *file_store, GthFileDataCompFunc cmp_func, gboolean inverse_sort) { - if ((cmp_func == file_store->priv->cmp_func) && (inverse_sort == file_store->priv->inverse_sort)) - return; - - file_store->priv->cmp_func = cmp_func; - file_store->priv->inverse_sort = inverse_sort; + _gth_file_store_set_sort_func (file_store, cmp_func, inverse_sort); _gth_file_store_reorder (file_store); } @@ -1660,6 +1662,8 @@ { int i; + _gth_file_store_set_sort_func (file_store, NULL, FALSE); + for (i = 0; i < file_store->priv->num_rows; i++) file_store->priv->rows[new_order[i]]->pos = i; diff -Nru gthumb-3.8.3/gthumb/gth-file-tool.c gthumb-3.9.1/gthumb/gth-file-tool.c --- gthumb-3.8.3/gthumb/gth-file-tool.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-file-tool.c 2020-03-07 19:03:13.520287800 +0000 @@ -193,11 +193,8 @@ GtkWidget * gth_file_tool_get_window (GthFileTool *self) { - if (self->priv->window == NULL) { - self->priv->window = gtk_widget_get_toplevel (GTK_WIDGET (self)); - if (! gtk_widget_is_toplevel (self->priv->window)) - self->priv->window = NULL; - } + if (self->priv->window == NULL) + self->priv->window = GTK_WIDGET (_gtk_widget_get_toplevel_if_window (GTK_WIDGET (self))); return self->priv->window; } diff -Nru gthumb-3.8.3/gthumb/gth-filter.c gthumb-3.9.1/gthumb/gth-filter.c --- gthumb-3.8.3/gthumb/gth-filter.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-filter.c 2020-03-07 19:03:13.520287800 +0000 @@ -490,7 +490,7 @@ GthFilter *filter; char *id; - id = _g_rand_string (ID_LENGTH); + id = _g_str_random (ID_LENGTH); filter = (GthFilter *) g_object_new (GTH_TYPE_FILTER, "id", id, NULL); g_free (id); @@ -507,7 +507,7 @@ { filter->priv->limit_type = type; filter->priv->limit = value; - filter->priv->sort_name = get_static_string (sort_name); + filter->priv->sort_name = _g_str_get_static (sort_name); filter->priv->sort_direction = sort_direction; } diff -Nru gthumb-3.8.3/gthumb/gth-filter-grid.c gthumb-3.9.1/gthumb/gth-filter-grid.c --- gthumb-3.8.3/gthumb/gth-filter-grid.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-filter-grid.c 2020-03-07 19:03:13.520287800 +0000 @@ -257,9 +257,9 @@ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (toggle_button))) { if (self->priv->active_button != toggle_button) { if (self->priv->active_button != NULL) { - g_signal_handlers_block_by_data (self->priv->active_button, self); + _g_signal_handlers_block_by_data (self->priv->active_button, self); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->priv->active_button), FALSE); - g_signal_handlers_unblock_by_data (self->priv->active_button, self); + _g_signal_handlers_unblock_by_data (self->priv->active_button, self); } self->priv->active_button = toggle_button; } @@ -464,7 +464,7 @@ current_task = (PreviewTask *) data->current_task->data; g_return_if_fail (task == current_task->image_task); - g_signal_handlers_disconnect_by_data (task, data); + _g_signal_handlers_disconnect_by_data (task, data); if ((error != NULL) || (data->self == NULL)) { generate_preview_data_free (data); diff -Nru gthumb-3.8.3/gthumb/gth-folder-tree.c gthumb-3.9.1/gthumb/gth-folder-tree.c --- gthumb-3.8.3/gthumb/gth-folder-tree.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-folder-tree.c 2020-03-07 19:03:13.520287800 +0000 @@ -34,6 +34,7 @@ #include "gth-request-dialog.h" +#define DEFAULT_URI "gthumb-vfs:///" #define EMPTY_URI "..." #define LOADING_URI "." #define PARENT_URI ".." @@ -63,6 +64,13 @@ NUM_COLUMNS }; + +enum { + PROP_0, + PROP_ROOT_URI +}; + + enum { FOLDER_POPUP, LIST_CHILDREN, @@ -116,6 +124,64 @@ G_ADD_PRIVATE (GthFolderTree)) +static void +gth_folder_tree_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GthFolderTree *self; + const char *uri; + + self = GTH_FOLDER_TREE (object); + + switch (property_id) { + case PROP_ROOT_URI: + uri = g_value_get_string (value); + if (uri != NULL) { + GFile *new_root; + + new_root = g_file_new_for_uri (uri); + if (new_root != NULL) { + _g_object_unref (self->priv->root); + self->priv->root = _g_object_ref (new_root); + } + + _g_object_unref (new_root); + } + break; + + default: + break; + } +} + + +static void +gth_folder_tree_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GthFolderTree *self; + char *uri; + + self = GTH_FOLDER_TREE (object); + + switch (property_id) { + case PROP_ROOT_URI: + uri = g_file_get_uri (self->priv->root); + g_value_set_string (value, uri); + g_free (uri); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static void remove_all_locations_from_the_monitor (GthFolderTree *folder_tree); @@ -153,11 +219,25 @@ GtkWidgetClass *widget_class; object_class = (GObjectClass*) class; + object_class->set_property = gth_folder_tree_set_property; + object_class->get_property = gth_folder_tree_get_property; object_class->finalize = gth_folder_tree_finalize; widget_class = (GtkWidgetClass*) class; widget_class->drag_begin = NULL; + /* properties */ + + g_object_class_install_property (object_class, + PROP_ROOT_URI, + g_param_spec_string ("root-uri", + "Root uri", + "The root of the folder tree as an uri", + NULL, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + + /* signals */ + gth_folder_tree_signals[FOLDER_POPUP] = g_signal_new ("folder_popup", G_TYPE_FROM_CLASS (class), @@ -1089,13 +1169,12 @@ static void _gth_folder_tree_add_empty_item (GthFolderTree *folder_tree, - GtkTreeIter *parent, - gboolean forced) + GtkTreeIter *parent) { char *sort_key; GtkTreeIter iter; - if (! forced && _gth_folder_tree_child_type_present (folder_tree, parent, ENTRY_TYPE_EMPTY)) + if (_gth_folder_tree_child_type_present (folder_tree, parent, ENTRY_TYPE_EMPTY)) return; sort_key = g_utf8_collate_key_for_filename (EMPTY_URI, -1); @@ -1152,7 +1231,7 @@ static gboolean -_gth_folder_tree_iter_has_no_child (GthFolderTree *folder_tree, +_gth_folder_tree_iter_get_no_child (GthFolderTree *folder_tree, GtkTreeIter *iter) { gboolean no_child; @@ -1264,7 +1343,7 @@ GtkTreeSelection *selection; folder_tree->priv = gth_folder_tree_get_instance_private (folder_tree); - folder_tree->priv->root = NULL; + folder_tree->priv->root = g_file_new_for_uri (DEFAULT_URI); folder_tree->priv->entry_points = g_hash_table_new_full (g_file_hash, (GEqualFunc) g_file_equal, g_object_unref, NULL); folder_tree->priv->recalc_entry_points = FALSE; folder_tree->priv->tree_store = gtk_tree_store_new (NUM_COLUMNS, @@ -1299,6 +1378,7 @@ add_columns (folder_tree, GTK_TREE_VIEW (folder_tree)); + gtk_tree_view_set_activate_on_single_click (GTK_TREE_VIEW (folder_tree), TRUE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (folder_tree), FALSE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (folder_tree), TRUE); gtk_tree_view_set_search_column (GTK_TREE_VIEW (folder_tree), COLUMN_NAME); @@ -1346,15 +1426,9 @@ GtkWidget * -gth_folder_tree_new (const char *uri) +gth_folder_tree_new (const char *root) { - GthFolderTree *folder_tree; - - folder_tree = g_object_new (GTH_TYPE_FOLDER_TREE, NULL); - if (uri != NULL) - folder_tree->priv->root = g_file_new_for_uri (uri); - - return (GtkWidget *) folder_tree; + return g_object_new (GTH_TYPE_FOLDER_TREE, "root-uri", root, NULL); } @@ -1505,12 +1579,11 @@ void gth_folder_tree_set_children (GthFolderTree *folder_tree, - GFile *parent, - GList *files) + GFile *parent, + GList *files) { GtkTreeIter parent_iter; GtkTreeIter *p_parent_iter; - gboolean is_empty; GHashTable *file_hash; GList *scan; GList *old_files; @@ -1524,14 +1597,14 @@ else return; - if (_gth_folder_tree_iter_has_no_child (folder_tree, p_parent_iter)) + if (_gth_folder_tree_iter_get_no_child (folder_tree, p_parent_iter)) return; tree_model = GTK_TREE_MODEL (folder_tree->priv->tree_store); gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tree_model), GTK_TREE_SORTABLE_UNSORTED_SORT_COLUMN_ID, 0); - is_empty = TRUE; - _gth_folder_tree_add_empty_item (folder_tree, p_parent_iter, FALSE); + /* add the empty item first to not allow the folder to collapse. */ + _gth_folder_tree_add_empty_item (folder_tree, p_parent_iter); /* delete the children not present in the new file list, update the * already existing files */ @@ -1564,8 +1637,7 @@ if (g_hash_table_lookup (file_hash, file_data->file)) { /* file_data is already present in the list, just update it */ - if (_gth_folder_tree_set_file_data (folder_tree, &iter, file_data)) - is_empty = FALSE; + _gth_folder_tree_set_file_data (folder_tree, &iter, file_data); valid = gtk_tree_model_iter_next (tree_model, &iter); } else { @@ -1594,10 +1666,8 @@ for (scan = files; scan; scan = scan->next) { GthFileData *file_data = scan->data; - if (! g_hash_table_lookup (file_hash, file_data->file)) { - if (_gth_folder_tree_add_file (folder_tree, p_parent_iter, file_data)) - is_empty = FALSE; - } + if (! g_hash_table_lookup (file_hash, file_data->file)) + _gth_folder_tree_add_file (folder_tree, p_parent_iter, file_data); } _g_object_list_unref (old_files); @@ -1605,13 +1675,13 @@ /**/ - if (! is_empty) - _gth_folder_tree_remove_child_type (folder_tree, p_parent_iter, ENTRY_TYPE_EMPTY); + _gth_folder_tree_remove_child_type (folder_tree, p_parent_iter, ENTRY_TYPE_EMPTY); if (p_parent_iter != NULL) gtk_tree_store_set (folder_tree->priv->tree_store, p_parent_iter, COLUMN_LOADED, TRUE, -1); + gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (folder_tree->priv->tree_store), COLUMN_NAME, GTK_SORT_ASCENDING); folder_tree->priv->recalc_entry_points = TRUE; @@ -1635,6 +1705,9 @@ else return; + if (_gth_folder_tree_iter_get_no_child (folder_tree, p_parent_iter)) + return; + _gth_folder_tree_add_loading_item (folder_tree, p_parent_iter, FALSE); /* remove anything but the loading item */ @@ -1694,7 +1767,6 @@ { GtkTreeIter parent_iter; GtkTreeIter *p_parent_iter; - gboolean is_empty; GList *scan; if (g_file_equal (parent, folder_tree->priv->root)) @@ -1704,19 +1776,14 @@ else return; - is_empty = TRUE; for (scan = files; scan; scan = scan->next) { GthFileData *file_data = scan->data; if (_gth_folder_tree_file_is_in_children (folder_tree, p_parent_iter, file_data->file)) continue; - if (_gth_folder_tree_add_file (folder_tree, p_parent_iter, file_data)) - is_empty = FALSE; + _gth_folder_tree_add_file (folder_tree, p_parent_iter, file_data); } - if (! is_empty) - _gth_folder_tree_remove_child_type (folder_tree, p_parent_iter, ENTRY_TYPE_EMPTY); - folder_tree->priv->recalc_entry_points = TRUE; } @@ -1799,11 +1866,11 @@ else return; - if (_gth_folder_tree_iter_has_no_child (folder_tree, p_parent_iter)) + if (_gth_folder_tree_iter_get_no_child (folder_tree, p_parent_iter)) return; /* add the empty item first to not allow the folder to collapse. */ - _gth_folder_tree_add_empty_item (folder_tree, p_parent_iter, TRUE); + _gth_folder_tree_add_empty_item (folder_tree, p_parent_iter); for (scan = files; scan; scan = scan->next) { GFile *file = scan->data; @@ -1813,8 +1880,7 @@ gtk_tree_store_remove (folder_tree->priv->tree_store, &iter); } - if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (folder_tree->priv->tree_store), p_parent_iter) > 1) - _gth_folder_tree_remove_child_type (folder_tree, p_parent_iter, ENTRY_TYPE_EMPTY); + _gth_folder_tree_remove_child_type (folder_tree, p_parent_iter, ENTRY_TYPE_EMPTY); folder_tree->priv->recalc_entry_points = TRUE; } @@ -1890,7 +1956,6 @@ GtkTreeIter iter; GthFileData *file_data; RenameData *data; - GtkWidget *toplevel; GtkWidget *dialog; const char *edit_name; @@ -1901,11 +1966,7 @@ data->folder_tree = g_object_ref (folder_tree); data->file = g_object_ref (file); - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (folder_tree)); - if (! gtk_widget_is_toplevel (toplevel)) - toplevel = NULL; - - dialog = gth_request_dialog_new (GTK_WINDOW (toplevel), + dialog = gth_request_dialog_new (_gtk_widget_get_toplevel_if_window (GTK_WIDGET (folder_tree)), GTK_DIALOG_MODAL, _("Rename"), _("Enter the new name:"), @@ -1985,6 +2046,24 @@ } +gboolean +gth_folder_tree_has_no_child (GthFolderTree *folder_tree, + GtkTreePath *path) +{ + GtkTreeIter iter; + gboolean no_child; + + if (! gtk_tree_model_get_iter (GTK_TREE_MODEL (folder_tree->priv->tree_store), &iter, path)) + return FALSE; + + gtk_tree_model_get (GTK_TREE_MODEL (folder_tree->priv->tree_store), &iter, + COLUMN_NO_CHILD, &no_child, + -1); + + return no_child; +} + + static void _gth_folder_tree_reset_loaded (GthFolderTree *folder_tree, GtkTreeIter *root) @@ -2084,6 +2163,14 @@ } +gboolean +gth_folder_tree_is_root (GthFolderTree *folder_tree, + GFile *folder) +{ + return _g_file_equal (folder_tree->priv->root, folder); +} + + GthFileData * gth_folder_tree_get_selected (GthFolderTree *folder_tree) { diff -Nru gthumb-3.8.3/gthumb/gth-folder-tree.h gthumb-3.9.1/gthumb/gth-folder-tree.h --- gthumb-3.8.3/gthumb/gth-folder-tree.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-folder-tree.h 2020-03-07 19:03:13.520287800 +0000 @@ -65,7 +65,7 @@ }; GType gth_folder_tree_get_type (void); -GtkWidget * gth_folder_tree_new (const char *uri); +GtkWidget * gth_folder_tree_new (const char *root); void gth_folder_tree_set_list (GthFolderTree *folder_tree, GFile *root, GList *files, @@ -93,6 +93,8 @@ GFile *file); gboolean gth_folder_tree_is_loaded (GthFolderTree *folder_tree, GtkTreePath *path); +gboolean gth_folder_tree_has_no_child (GthFolderTree *folder_tree, + GtkTreePath *path); void gth_folder_tree_reset_loaded (GthFolderTree *folder_tree); void gth_folder_tree_expand_row (GthFolderTree *folder_tree, GtkTreePath *path, @@ -101,6 +103,8 @@ void gth_folder_tree_select_path (GthFolderTree *folder_tree, GtkTreePath *path); GFile * gth_folder_tree_get_root (GthFolderTree *folder_tree); +gboolean gth_folder_tree_is_root (GthFolderTree *folder_tree, + GFile *folder); GthFileData * gth_folder_tree_get_file (GthFolderTree *folder_tree, GtkTreePath *path); GthFileData * gth_folder_tree_get_selected (GthFolderTree *folder_tree); diff -Nru gthumb-3.8.3/gthumb/gth-grid-view.c gthumb-3.9.1/gthumb/gth-grid-view.c --- gthumb-3.8.3/gthumb/gth-grid-view.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-grid-view.c 2020-03-07 19:03:13.520287800 +0000 @@ -58,6 +58,7 @@ static void gth_grid_view_gth_file_selection_interface_init (GthFileSelectionInterface *iface); static void gth_grid_view_gth_file_view_interface_init (GthFileViewInterface *iface); +static void gth_grid_view_gtk_scrollable_interface_init (GtkScrollableInterface *iface); enum { @@ -219,7 +220,8 @@ gth_grid_view_gth_file_selection_interface_init) G_IMPLEMENT_INTERFACE (GTH_TYPE_FILE_VIEW, gth_grid_view_gth_file_view_interface_init) - G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, NULL)) + G_IMPLEMENT_INTERFACE (GTK_TYPE_SCROLLABLE, + gth_grid_view_gtk_scrollable_interface_init)) /* -- gth_grid_view_item -- */ @@ -428,13 +430,13 @@ g_list_free (self->priv->selection); if (self->priv->hadjustment != NULL) { - g_signal_handlers_disconnect_by_data (self->priv->hadjustment, self); + _g_signal_handlers_disconnect_by_data (self->priv->hadjustment, self); g_object_unref (self->priv->hadjustment); self->priv->hadjustment = NULL; } if (self->priv->vadjustment != NULL) { - g_signal_handlers_disconnect_by_data (self->priv->vadjustment, self); + _g_signal_handlers_disconnect_by_data (self->priv->vadjustment, self); g_object_unref (self->priv->vadjustment); self->priv->vadjustment = NULL; } @@ -2355,7 +2357,7 @@ if (model != NULL) g_object_ref (model); if (self->priv->model != NULL) { - g_signal_handlers_disconnect_by_data (self->priv->model, self); + _g_signal_handlers_disconnect_by_data (self->priv->model, self); g_object_unref (self->priv->model); } self->priv->model = model; @@ -2631,6 +2633,17 @@ } +/* -- GtkScrollable interface -- */ + + +static gboolean +gth_grid_view_get_border (GtkScrollable *scrollable, + GtkBorder *border) +{ + return FALSE; +} + + /* GtkWidget methods */ @@ -3481,31 +3494,25 @@ _gth_grid_view_set_hadjustment (GthGridView *self, GtkAdjustment *adjustment) { - if (adjustment != NULL) + if (adjustment != NULL) { g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); + g_object_ref_sink (adjustment); + } else adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - if ((self->priv->hadjustment != NULL) && (self->priv->hadjustment != adjustment)) { - g_signal_handlers_disconnect_by_data (self->priv->hadjustment, self); + if (self->priv->hadjustment != NULL) { + _g_signal_handlers_disconnect_by_data (self->priv->hadjustment, self); g_object_unref (self->priv->hadjustment); - self->priv->hadjustment = NULL; } - if (self->priv->hadjustment != adjustment) { - self->priv->hadjustment = adjustment; - g_object_ref (self->priv->hadjustment); - g_object_ref_sink (self->priv->hadjustment); - - _gth_grid_view_configure_hadjustment (self); - - g_signal_connect (self->priv->hadjustment, - "value-changed", - G_CALLBACK (adjustment_value_changed), - self); - } - else - _gth_grid_view_configure_hadjustment (self); + self->priv->hadjustment = adjustment; + _gth_grid_view_configure_hadjustment (self); + + g_signal_connect (self->priv->hadjustment, + "value-changed", + G_CALLBACK (adjustment_value_changed), + self); } @@ -3513,31 +3520,25 @@ _gth_grid_view_set_vadjustment (GthGridView *self, GtkAdjustment *adjustment) { - if (adjustment != NULL) + if (adjustment != NULL) { g_return_if_fail (GTK_IS_ADJUSTMENT (adjustment)); + g_object_ref_sink (adjustment); + } else adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0); - if ((self->priv->vadjustment != NULL) && (self->priv->vadjustment != adjustment)) { - g_signal_handlers_disconnect_by_data (self->priv->vadjustment, self); + if (self->priv->vadjustment != NULL) { + _g_signal_handlers_disconnect_by_data (self->priv->vadjustment, self); g_object_unref (self->priv->vadjustment); - self->priv->vadjustment = NULL; } - if (self->priv->vadjustment != adjustment) { - self->priv->vadjustment = adjustment; - g_object_ref (self->priv->vadjustment); - g_object_ref_sink (self->priv->vadjustment); - - _gth_grid_view_configure_vadjustment (self); - - g_signal_connect (self->priv->vadjustment, - "value-changed", - G_CALLBACK (adjustment_value_changed), - self); - } - else - _gth_grid_view_configure_vadjustment (self); + self->priv->vadjustment = adjustment; + _gth_grid_view_configure_vadjustment (self); + + g_signal_connect (self->priv->vadjustment, + "value-changed", + G_CALLBACK (adjustment_value_changed), + self); } @@ -3653,7 +3654,7 @@ g_value_set_object (value, self->priv->hadjustment); break; case PROP_HSCROLL_POLICY: - /* FIXME */ + g_value_set_enum (value, GTK_SCROLL_NATURAL); break; case PROP_MODEL: g_value_set_object (value, self->priv->model); @@ -3668,7 +3669,7 @@ g_value_set_object (value, self->priv->vadjustment); break; case PROP_VSCROLL_POLICY: - /* FIXME */ + g_value_set_enum (value, GTK_SCROLL_NATURAL); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -3828,16 +3829,6 @@ gtk_binding_entry_add_signal (binding_set, GDK_KEY_KP_Space, GDK_CONTROL_MASK, "toggle-cursor-item", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_a, GDK_CONTROL_MASK, - "select-all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_slash, GDK_CONTROL_MASK, - "select-all", 0); - - gtk_binding_entry_add_signal (binding_set, GDK_KEY_A, GDK_SHIFT_MASK | GDK_CONTROL_MASK, - "unselect-all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_backslash, GDK_CONTROL_MASK, - "unselect-all", 0); - gtk_binding_entry_add_signal (binding_set, GDK_KEY_Return, 0, "activate-cursor-item", 0); gtk_binding_entry_add_signal (binding_set, GDK_KEY_ISO_Enter, 0, @@ -3887,6 +3878,13 @@ } +static void +gth_grid_view_gtk_scrollable_interface_init (GtkScrollableInterface *iface) +{ + iface->get_border = gth_grid_view_get_border; +} + + static void gth_grid_view_init (GthGridView *self) { diff -Nru gthumb-3.8.3/gthumb/gth-image.c gthumb-3.9.1/gthumb/gth-image.c --- gthumb-3.8.3/gthumb/gth-image.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image.c 2020-03-07 19:03:13.523620800 +0000 @@ -209,9 +209,6 @@ cairo_surface_t *value) { _gth_image_free_data (image); - if (value == NULL) - return; - image->priv->format = GTH_IMAGE_FORMAT_CAIRO_SURFACE; image->priv->data.surface = cairo_surface_reference (value); } @@ -261,17 +258,21 @@ switch (image->priv->format) { case GTH_IMAGE_FORMAT_CAIRO_SURFACE: surface = gth_image_get_cairo_surface (image); - if (! _cairo_image_surface_get_original_size (surface, &local_width, &local_height)) { - local_width = cairo_image_surface_get_width (surface); - local_height = cairo_image_surface_get_height (surface); + if (surface != NULL) { + if (! _cairo_image_surface_get_original_size (surface, &local_width, &local_height)) { + local_width = cairo_image_surface_get_width (surface); + local_height = cairo_image_surface_get_height (surface); + } + value_set = TRUE; } - value_set = TRUE; break; case GTH_IMAGE_FORMAT_GDK_PIXBUF: - local_width = gdk_pixbuf_get_width (image->priv->data.pixbuf); - local_height = gdk_pixbuf_get_height (image->priv->data.pixbuf); - value_set = TRUE; + if (image->priv->data.pixbuf != NULL) { + local_width = gdk_pixbuf_get_width (image->priv->data.pixbuf); + local_height = gdk_pixbuf_get_height (image->priv->data.pixbuf); + value_set = TRUE; + } break; case GTH_IMAGE_FORMAT_GDK_PIXBUF_ANIMATION: @@ -346,11 +347,8 @@ GdkPixbuf *value) { _gth_image_free_data (image); - if (value == NULL) - return; - image->priv->format = GTH_IMAGE_FORMAT_GDK_PIXBUF; - image->priv->data.pixbuf = g_object_ref (value); + image->priv->data.pixbuf = _g_object_ref (value); } @@ -394,11 +392,8 @@ GdkPixbufAnimation *value) { _gth_image_free_data (image); - if (value == NULL) - return; - image->priv->format = GTH_IMAGE_FORMAT_GDK_PIXBUF_ANIMATION; - image->priv->data.pixbuf_animation = g_object_ref (value); + image->priv->data.pixbuf_animation = _g_object_ref (value); } @@ -451,6 +446,8 @@ gth_image_set_icc_profile (GthImage *image, GthICCProfile *profile) { + g_return_if_fail (image != NULL); + _g_object_ref (profile); _gth_image_free_icc_profile (image); image->priv->icc_data = profile; diff -Nru gthumb-3.8.3/gthumb/gth-image-list-task.c gthumb-3.9.1/gthumb/gth-image-list-task.c --- gthumb-3.8.3/gthumb/gth-image-list-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-list-task.c 2020-03-07 19:03:13.520287800 +0000 @@ -308,7 +308,7 @@ char *no_ext; GthImageSaver *saver; - no_ext = _g_uri_remove_extension (g_file_info_get_display_name (self->priv->destination_file_data->info)); + no_ext = _g_path_remove_extension (g_file_info_get_display_name (self->priv->destination_file_data->info)); saver = gth_main_get_image_saver (self->priv->mime_type); g_return_if_fail (saver != NULL); diff -Nru gthumb-3.8.3/gthumb/gth-image-overview.c gthumb-3.9.1/gthumb/gth-image-overview.c --- gthumb-3.8.3/gthumb/gth-image-overview.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-overview.c 2020-03-07 19:03:13.520287800 +0000 @@ -261,11 +261,8 @@ if (overview->priv->viewer != NULL) { _gth_image_overview_update_zoom_info (overview); _cairo_clear_surface (&overview->priv->preview); - if (scale_data->scaled != NULL) { - if (overview->priv->preview != NULL) - cairo_surface_destroy (overview->priv->preview); + if (scale_data->scaled != NULL) overview->priv->preview = cairo_surface_reference (scale_data->scaled); - } gtk_widget_queue_resize (GTK_WIDGET (overview)); } diff -Nru gthumb-3.8.3/gthumb/gth-image-utils.c gthumb-3.9.1/gthumb/gth-image-utils.c --- gthumb-3.8.3/gthumb/gth-image-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-utils.c 2020-03-07 19:03:13.523620800 +0000 @@ -30,20 +30,6 @@ #include "gth-main.h" -SizeValue -ImageSizeValues[IMAGE_SIZE_N] = { - { 320, 200 }, - { 320, 320 }, - { 640, 480 }, - { 640, 640 }, - { 800, 600 }, - { 800, 800 }, - { 1024, 768 }, - { 1024, 1024 }, - { 1280, 960 }, - { 1280, 1280 } }; - - gboolean scale_keeping_ratio_min (int *width, int *height, @@ -162,6 +148,13 @@ surface = gth_image_get_cairo_surface (image); scaled = _cairo_image_surface_scale (surface, width, height, SCALE_FILTER_BEST, NULL); + if (scaled == NULL) { + cairo_surface_destroy (surface); + g_object_unref (image); + g_object_unref (istream); + return FALSE; + } + gth_image_set_cairo_surface (image, scaled); result = gth_image_save_to_buffer (image, mime_type, diff -Nru gthumb-3.8.3/gthumb/gth-image-utils.h gthumb-3.9.1/gthumb/gth-image-utils.h --- gthumb-3.8.3/gthumb/gth-image-utils.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-utils.h 2020-03-07 19:03:13.523620800 +0000 @@ -27,30 +27,6 @@ G_BEGIN_DECLS -typedef enum /*< skip >*/ { - IMAGE_SIZE_320x200, - IMAGE_SIZE_320x320, - IMAGE_SIZE_640x480, - IMAGE_SIZE_640x640, - IMAGE_SIZE_800x600, - IMAGE_SIZE_800x800, - IMAGE_SIZE_1024x768, - IMAGE_SIZE_1024x1024, - IMAGE_SIZE_1280x960, - IMAGE_SIZE_1280x1280, - IMAGE_SIZE_N -} ImageSize; - - -typedef struct { - int width; - int height; -} SizeValue; - - -extern SizeValue ImageSizeValues[IMAGE_SIZE_N]; - - gboolean scale_keeping_ratio_min (int *width, int *height, int min_width, diff -Nru gthumb-3.8.3/gthumb/gth-image-viewer.c gthumb-3.9.1/gthumb/gth-image-viewer.c --- gthumb-3.8.3/gthumb/gth-image-viewer.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-viewer.c 2020-03-07 19:03:13.523620800 +0000 @@ -40,7 +40,7 @@ #define MINIMUM_DELAY 10 /* When an animation frame has a 0 milli seconds * delay use this delay instead. */ #define STEP_INCREMENT 20.0 /* Scroll increment. */ -#define BLACK_VALUE 0.2 +#define GRAY_VALUE 0.2 #define CHECKED_PATTERN_SIZE 20 @@ -97,7 +97,7 @@ GdkCursor *cursor_void; gboolean zoom_enabled; - gboolean enable_zoom_with_keys; + gboolean enable_key_bindings; double zoom_level; guint zoom_quality : 1; /* A ZoomQualityType value. */ guint zoom_change : 3; /* A ZoomChangeType value. */ @@ -113,7 +113,7 @@ gboolean skip_zoom_change; gboolean update_image_after_zoom; gboolean reset_scrollbars; - + GthTransparencyStyle transparency_style; GList *painters; }; @@ -160,12 +160,12 @@ g_object_unref (self->priv->cursor_void); if (self->hadj != NULL) { - g_signal_handlers_disconnect_by_data (G_OBJECT (self->hadj), self); + _g_signal_handlers_disconnect_by_data (G_OBJECT (self->hadj), self); g_object_unref (self->hadj); } if (self->vadj != NULL) { - g_signal_handlers_disconnect_by_data (G_OBJECT (self->vadj), self); + _g_signal_handlers_disconnect_by_data (G_OBJECT (self->vadj), self); g_object_unref (self->vadj); } @@ -972,27 +972,8 @@ /* Control + Scroll-Up / Control + Scroll-Down ==> Zoom In / Zoom Out */ if (event->state & GDK_CONTROL_MASK) { - if (self->priv->zoom_enabled) { - double new_zoom_level; - - switch (event->direction) { - case GDK_SCROLL_UP: - case GDK_SCROLL_DOWN: - if (event->direction == GDK_SCROLL_UP) - new_zoom_level = get_next_zoom (self->priv->zoom_level); - else - new_zoom_level = get_prev_zoom (self->priv->zoom_level); - set_zoom_centered_at (self, new_zoom_level, FALSE, (int) event->x, (int) event->y); - gtk_widget_queue_resize (GTK_WIDGET (self)); - retval = TRUE; - break; - - default: - break; - } - } - - return retval; + if (self->priv->zoom_enabled && gth_image_viewer_zoom_from_scroll (self, event)) + return TRUE; } /* Scroll Left / Scroll Right ==> Scroll the image horizontally */ @@ -1049,6 +1030,9 @@ GthImageViewer *self = GTH_IMAGE_VIEWER (widget); int xstep, ystep; + if (! self->priv->enable_key_bindings) + return; + switch (xscroll_type) { case GTK_SCROLL_STEP_LEFT: xstep = - gtk_adjustment_get_step_increment (self->hadj); @@ -1117,7 +1101,7 @@ hadj = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0); if ((self->hadj != NULL) && (self->hadj != hadj)) { - g_signal_handlers_disconnect_by_data (G_OBJECT (self->hadj), self); + _g_signal_handlers_disconnect_by_data (G_OBJECT (self->hadj), self); g_object_unref (self->hadj); self->hadj = NULL; } @@ -1147,7 +1131,7 @@ vadj = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0); if ((self->vadj != NULL) && (self->vadj != vadj)) { - g_signal_handlers_disconnect_by_data (G_OBJECT (self->vadj), self); + _g_signal_handlers_disconnect_by_data (G_OBJECT (self->vadj), self); g_object_unref (self->vadj); self->vadj = NULL; } @@ -1170,7 +1154,7 @@ static void gth_image_viewer_zoom_in__key_binding (GthImageViewer *self) { - if (self->priv->enable_zoom_with_keys) + if (self->priv->enable_key_bindings) gth_image_viewer_zoom_in (self); } @@ -1178,7 +1162,7 @@ static void gth_image_viewer_zoom_out__key_binding (GthImageViewer *self) { - if (self->priv->enable_zoom_with_keys) + if (self->priv->enable_key_bindings) gth_image_viewer_zoom_out (self); } @@ -1186,7 +1170,7 @@ gth_image_viewer_set_fit_mode__key_binding (GthImageViewer *self, GthFit fit_mode) { - if (self->priv->enable_zoom_with_keys) + if (self->priv->enable_key_bindings) gth_image_viewer_set_fit_mode (self, fit_mode); } @@ -1195,7 +1179,7 @@ gth_image_viewer_set_zoom__key_binding (GthImageViewer *self, gdouble zoom_level) { - if (self->priv->enable_zoom_with_keys) + if (self->priv->enable_key_bindings) gth_image_viewer_set_zoom (self, zoom_level); } @@ -1555,7 +1539,7 @@ self->priv->iter_surface = NULL; self->priv->zoom_enabled = TRUE; - self->priv->enable_zoom_with_keys = TRUE; + self->priv->enable_key_bindings = TRUE; self->priv->zoom_level = 1.0; self->priv->zoom_quality = GTH_ZOOM_QUALITY_HIGH; self->priv->zoom_change = GTH_ZOOM_CHANGE_KEEP_PREV; @@ -1576,6 +1560,7 @@ self->priv->cursor_void = NULL; self->priv->reset_scrollbars = TRUE; + self->priv->transparency_style = GTH_TRANSPARENCY_STYLE_CHECKERED; gth_image_viewer_set_tool (self, NULL); @@ -2202,6 +2187,34 @@ } +gboolean +gth_image_viewer_zoom_from_scroll (GthImageViewer *self, + GdkEventScroll *event) +{ + gboolean handled; + double new_zoom_level; + + handled = FALSE; + switch (event->direction) { + case GDK_SCROLL_UP: + case GDK_SCROLL_DOWN: + if (event->direction == GDK_SCROLL_UP) + new_zoom_level = get_next_zoom (self->priv->zoom_level); + else + new_zoom_level = get_prev_zoom (self->priv->zoom_level); + set_zoom_centered_at (self, new_zoom_level, FALSE, (int) event->x, (int) event->y); + gtk_widget_queue_resize (GTK_WIDGET (self)); + handled = TRUE; + break; + + default: + break; + } + + return handled; +} + + void gth_image_viewer_set_fit_mode (GthImageViewer *self, GthFit fit_mode) @@ -2240,16 +2253,6 @@ void -gth_image_viewer_enable_zoom_with_keys (GthImageViewer *self, - gboolean value) -{ - g_return_if_fail (GTH_IS_IMAGE_VIEWER (self)); - - self->priv->enable_zoom_with_keys = value; -} - - -void gth_image_viewer_clicked (GthImageViewer *self) { g_signal_emit (G_OBJECT (self), gth_image_viewer_signals[CLICKED], 0); @@ -2284,6 +2287,36 @@ void +gth_image_viewer_set_transparency_style (GthImageViewer *self, + GthTransparencyStyle style) +{ + g_return_if_fail (GTH_IS_IMAGE_VIEWER (self)); + + self->priv->transparency_style = style; + gtk_widget_queue_draw (GTK_WIDGET (self)); +} + + +GthTransparencyStyle +gth_image_viewer_get_transparency_style (GthImageViewer *self) +{ + g_return_val_if_fail (GTH_IS_IMAGE_VIEWER (self), 0); + + return self->priv->transparency_style; +} + + +void +gth_image_viewer_enable_key_bindings (GthImageViewer *self, + gboolean value) +{ + g_return_if_fail (GTH_IS_IMAGE_VIEWER (self)); + + self->priv->enable_key_bindings = value; +} + + +void gth_image_viewer_scroll_to (GthImageViewer *self, int x_offset, int y_offset) @@ -2297,12 +2330,12 @@ /* update the adjustments value */ - g_signal_handlers_block_by_data (G_OBJECT (self->hadj), self); - g_signal_handlers_block_by_data (G_OBJECT (self->vadj), self); + _g_signal_handlers_block_by_data (G_OBJECT (self->hadj), self); + _g_signal_handlers_block_by_data (G_OBJECT (self->vadj), self); gtk_adjustment_set_value (self->hadj, self->visible_area.x); gtk_adjustment_set_value (self->vadj, self->visible_area.y); - g_signal_handlers_unblock_by_data (G_OBJECT (self->hadj), self); - g_signal_handlers_unblock_by_data (G_OBJECT (self->vadj), self); + _g_signal_handlers_unblock_by_data (G_OBJECT (self->hadj), self); + _g_signal_handlers_unblock_by_data (G_OBJECT (self->vadj), self); } @@ -2652,7 +2685,7 @@ cairo_save (cr); gtk_widget_get_allocation (GTK_WIDGET (self), &allocation); - cairo_set_source_rgb (cr, BLACK_VALUE, BLACK_VALUE, BLACK_VALUE); + cairo_set_source_rgb (cr, GRAY_VALUE, GRAY_VALUE, GRAY_VALUE); cairo_rectangle (cr, 0, 0, @@ -2692,7 +2725,21 @@ /* background */ - cairo_set_source (cr, self->priv->background_pattern); + switch (self->priv->transparency_style) { + case GTH_TRANSPARENCY_STYLE_CHECKERED: + cairo_set_source (cr, self->priv->background_pattern); + break; + case GTH_TRANSPARENCY_STYLE_WHITE: + cairo_set_source_rgb (cr, 1.0, 1.0, 1.0); + break; + case GTH_TRANSPARENCY_STYLE_GRAY: + cairo_set_source_rgb (cr, GRAY_VALUE, GRAY_VALUE, GRAY_VALUE); + break; + case GTH_TRANSPARENCY_STYLE_BLACK: + cairo_set_source_rgb (cr, 0.0, 0.0, 0.0); + break; + } + cairo_rectangle (cr, self->image_area.x, self->image_area.y, diff -Nru gthumb-3.8.3/gthumb/gth-image-viewer.h gthumb-3.9.1/gthumb/gth-image-viewer.h --- gthumb-3.8.3/gthumb/gth-image-viewer.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-image-viewer.h 2020-03-07 19:03:13.523620800 +0000 @@ -77,6 +77,14 @@ } GthZoomChange; +typedef enum { + GTH_TRANSPARENCY_STYLE_CHECKERED, + GTH_TRANSPARENCY_STYLE_WHITE, + GTH_TRANSPARENCY_STYLE_GRAY, + GTH_TRANSPARENCY_STYLE_BLACK +} GthTransparencyStyle; + + struct _GthImageViewer { GtkWidget __parent; @@ -208,14 +216,14 @@ GthZoomChange gth_image_viewer_get_zoom_change (GthImageViewer *viewer); void gth_image_viewer_zoom_in (GthImageViewer *viewer); void gth_image_viewer_zoom_out (GthImageViewer *viewer); +gboolean gth_image_viewer_zoom_from_scroll (GthImageViewer *viewer, + GdkEventScroll *event); void gth_image_viewer_set_fit_mode (GthImageViewer *viewer, GthFit fit_mode); GthFit gth_image_viewer_get_fit_mode (GthImageViewer *viewer); void gth_image_viewer_set_zoom_enabled (GthImageViewer *viewer, gboolean value); gboolean gth_image_viewer_get_zoom_enabled (GthImageViewer *viewer); -void gth_image_viewer_enable_zoom_with_keys (GthImageViewer *viewer, - gboolean value); /* misc. */ @@ -224,6 +232,12 @@ GthImageViewerTool *tool); GthImageViewerTool * gth_image_viewer_get_tool (GthImageViewer *viewer); +void gth_image_viewer_set_transparency_style (GthImageViewer *viewer, + GthTransparencyStyle style); +GthTransparencyStyle + gth_image_viewer_get_transparency_style (GthImageViewer *viewer); +void gth_image_viewer_enable_key_bindings (GthImageViewer *viewer, + gboolean value); /* Scrolling. */ diff -Nru gthumb-3.8.3/gthumb/gth-location-bar.c gthumb-3.9.1/gthumb/gth-location-bar.c --- gthumb-3.8.3/gthumb/gth-location-bar.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-location-bar.c 2020-03-07 19:03:13.523620800 +0000 @@ -68,6 +68,7 @@ gtk_widget_show (box); self->priv->location_chooser = g_object_new (GTH_TYPE_LOCATION_CHOOSER, "show-entry-points", FALSE, + "show-other", FALSE, "relief", GTK_RELIEF_NONE, NULL); gtk_widget_show (self->priv->location_chooser); diff -Nru gthumb-3.8.3/gthumb/gth-location-chooser.c gthumb-3.9.1/gthumb/gth-location-chooser.c --- gthumb-3.8.3/gthumb/gth-location-chooser.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-location-chooser.c 2020-03-07 19:03:13.523620800 +0000 @@ -25,9 +25,11 @@ #include #include #include +#include "gio-utils.h" #include "glib-utils.h" #include "gth-file-source.h" #include "gth-location-chooser.h" +#include "gth-location-chooser-dialog.h" #include "gth-main.h" #include "gtk-utils.h" #include "pixbuf-utils.h" @@ -36,12 +38,13 @@ #define MIN_WIDTH 200 -enum { +typedef enum { ITEM_TYPE_NONE, ITEM_TYPE_SEPARATOR, ITEM_TYPE_LOCATION, - ITEM_TYPE_ENTRY_POINT -}; + ITEM_TYPE_ENTRY_POINT, + ITEM_TYPE_CHOOSE_LOCATION +} ItemType; enum { ICON_COLUMN, @@ -55,6 +58,8 @@ enum { PROP_0, PROP_SHOW_ENTRY_POINTS, + PROP_SHOW_OTHER, + PROP_SHOW_ROOT, PROP_RELIEF }; @@ -73,6 +78,8 @@ guint update_entry_list_id; guint update_location_list_id; gboolean show_entry_points; + gboolean show_root; + gboolean show_other; GtkReliefStyle relief; gboolean reload; }; @@ -101,6 +108,12 @@ case PROP_SHOW_ENTRY_POINTS: gth_location_chooser_set_show_entry_points (self, g_value_get_boolean (value)); break; + case PROP_SHOW_ROOT: + self->priv->show_root = g_value_get_boolean (value); + break; + case PROP_SHOW_OTHER: + self->priv->show_other = g_value_get_boolean (value); + break; case PROP_RELIEF: gth_location_chooser_set_relief (self, g_value_get_enum (value)); break; @@ -124,6 +137,12 @@ case PROP_SHOW_ENTRY_POINTS: g_value_set_boolean (value, self->priv->show_entry_points); break; + case PROP_SHOW_ROOT: + g_value_set_boolean (value, self->priv->show_root); + break; + case PROP_SHOW_OTHER: + g_value_set_boolean (value, self->priv->show_other); + break; case PROP_RELIEF: g_value_set_enum (value, self->priv->relief); break; @@ -193,6 +212,44 @@ } +static gboolean +get_iter_from_current_file_entries (GthLocationChooser *self, + GFile *file, + GtkTreeIter *iter) +{ + gboolean found = FALSE; + char *uri; + + if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->model), iter)) + return FALSE; + + uri = g_file_get_uri (file); + do { + int item_type = ITEM_TYPE_NONE; + char *list_uri; + + gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), + iter, + TYPE_COLUMN, &item_type, + URI_COLUMN, &list_uri, + -1); + if (item_type == ITEM_TYPE_SEPARATOR) + break; + if (_g_str_equal (uri, list_uri)) { + found = TRUE; + g_free (list_uri); + break; + } + g_free (list_uri); + } + while (gtk_tree_model_iter_next (GTK_TREE_MODEL (self->priv->model), iter)); + + g_free (uri); + + return found; +} + + static void combo_changed_cb (GtkComboBox *widget, gpointer user_data) @@ -211,7 +268,27 @@ URI_COLUMN, &uri, -1); - if (uri != NULL) { + if (item_type == ITEM_TYPE_CHOOSE_LOCATION) { + GtkWidget *dialog; + + dialog = gth_location_chooser_dialog_new (_("Location"), _gtk_widget_get_toplevel_if_window (GTK_WIDGET (widget))); + if (self->priv->location != NULL) + gth_location_chooser_dialog_set_folder (GTH_LOCATION_CHOOSER_DIALOG (dialog), self->priv->location); + + switch (gtk_dialog_run (GTK_DIALOG (dialog))) { + case GTK_RESPONSE_OK: + gth_location_chooser_set_current (self, gth_location_chooser_dialog_get_folder (GTH_LOCATION_CHOOSER_DIALOG (dialog))); + break; + + default: + /* reset the previous value. */ + gth_location_chooser_set_current (self, self->priv->location); + break; + } + + gtk_widget_destroy (dialog); + } + else if (uri != NULL) { GFile *file; file = g_file_new_for_uri (uri); @@ -256,12 +333,14 @@ static void -clear_entry_point_list (GthLocationChooser *self) +clear_items_from_separator (GthLocationChooser *self, + int nth_separator, + gboolean stop_at_next_separator) { int first_position; int i; - if (! get_nth_separator_pos (self, 1, &first_position)) + if (! get_nth_separator_pos (self, nth_separator, &first_position)) return; for (i = first_position + 1; TRUE; i++) { @@ -269,8 +348,19 @@ GtkTreeIter iter; path = gtk_tree_path_new_from_indices (first_position + 1, -1); - if (gtk_tree_model_get_iter (GTK_TREE_MODEL (self->priv->model), &iter, path)) + if (gtk_tree_model_get_iter (GTK_TREE_MODEL (self->priv->model), &iter, path)) { + if (stop_at_next_separator) { + int item_type = ITEM_TYPE_NONE; + + gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), + &iter, + TYPE_COLUMN, &item_type, + -1); + if (item_type == ITEM_TYPE_SEPARATOR) + break; + } gtk_tree_store_remove (self->priv->model, &iter); + } else break; @@ -280,35 +370,100 @@ static void -update_entry_point_list (GthLocationChooser *self) +delete_section_by_type (GthLocationChooser *self, + ItemType type_to_delete) { - int first_position; - int position; - GList *entry_points; - GList *scan; + GtkTreeIter iter; + gboolean valid; + gboolean prev_matched; - self->priv->update_entry_list_id = 0; + if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->model), &iter)) + return; - clear_entry_point_list (self); + prev_matched = FALSE; + do { + int item_type = ITEM_TYPE_NONE; - if (! get_nth_separator_pos (self, 1, &first_position)) { - GtkTreeIter iter; - GtkTreePath *path; + gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), + &iter, + TYPE_COLUMN, &item_type, + -1); - gtk_tree_store_append (self->priv->model, &iter, NULL); - gtk_tree_store_set (self->priv->model, &iter, - TYPE_COLUMN, ITEM_TYPE_SEPARATOR, + if (item_type == type_to_delete) { + valid = gtk_tree_store_remove (self->priv->model, &iter); + prev_matched = TRUE; + } + else { + if (prev_matched && (item_type == ITEM_TYPE_SEPARATOR)) + valid = gtk_tree_store_remove (self->priv->model, &iter); + else + valid = gtk_tree_model_iter_next (GTK_TREE_MODEL (self->priv->model), &iter); + prev_matched = FALSE; + } + } + while (valid); +} + + +static gboolean +get_section_end_by_type (GthLocationChooser *self, + ItemType item_to_search, + int *p_pos) +{ + GtkTreeIter iter; + int pos; + gboolean valid; + gboolean prev_matched; + + if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->model), &iter)) + return FALSE; + + pos = 0; + valid = FALSE; + prev_matched = FALSE; + do { + int item_type = ITEM_TYPE_NONE; + + gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), + &iter, + TYPE_COLUMN, &item_type, -1); - path = gtk_tree_model_get_path (GTK_TREE_MODEL (self->priv->model), &iter); - if (path == NULL) - return; - first_position = gtk_tree_path_get_indices(path)[0]; + if (item_type == item_to_search) { + *p_pos = pos; + valid = TRUE; + prev_matched = TRUE; + } + else { + if ((item_type == ITEM_TYPE_SEPARATOR) && prev_matched) + *p_pos = pos; + prev_matched = FALSE; + } - gtk_tree_path_free (path); + pos++; } + while (gtk_tree_model_iter_next (GTK_TREE_MODEL (self->priv->model), &iter)); + + return valid; +} + + +static void +update_entry_point_list (GthLocationChooser *self) +{ + int position; + GList *entry_points; + GList *scan; + + self->priv->update_entry_list_id = 0; + + delete_section_by_type (self, ITEM_TYPE_ENTRY_POINT); + + if (get_section_end_by_type (self, ITEM_TYPE_LOCATION, &position)) + position = position + 1; + else + position = 0; - position = first_position + 1; entry_points = gth_main_get_all_entry_points (); for (scan = entry_points; scan; scan = scan->next) { GthFileData *file_data = scan->data; @@ -322,6 +477,15 @@ ITEM_TYPE_ENTRY_POINT); } + if (self->priv->show_other) { + GtkTreeIter iter; + + gtk_tree_store_insert (self->priv->model, &iter, NULL, position); + gtk_tree_store_set (self->priv->model, &iter, + TYPE_COLUMN, ITEM_TYPE_SEPARATOR, + -1); + } + _g_object_list_unref (entry_points); } @@ -354,69 +518,6 @@ } -static gboolean -delete_current_file_entries (GthLocationChooser *self) -{ - gboolean found = FALSE; - GtkTreeIter iter; - - if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->model), &iter)) - return FALSE; - - do { - int item_type = ITEM_TYPE_NONE; - - gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), - &iter, - TYPE_COLUMN, &item_type, - -1); - if (item_type == ITEM_TYPE_SEPARATOR) - break; - } - while (gtk_tree_store_remove (self->priv->model, &iter)); - - return found; -} - - -static gboolean -get_iter_from_current_file_entries (GthLocationChooser *self, - GFile *file, - GtkTreeIter *iter) -{ - gboolean found = FALSE; - char *uri; - - if (! gtk_tree_model_get_iter_first (GTK_TREE_MODEL (self->priv->model), iter)) - return FALSE; - - uri = g_file_get_uri (file); - do { - int item_type = ITEM_TYPE_NONE; - char *list_uri; - - gtk_tree_model_get (GTK_TREE_MODEL (self->priv->model), - iter, - TYPE_COLUMN, &item_type, - URI_COLUMN, &list_uri, - -1); - if (item_type == ITEM_TYPE_SEPARATOR) - break; - if (same_uri (uri, list_uri)) { - found = TRUE; - g_free (list_uri); - break; - } - g_free (list_uri); - } - while (gtk_tree_model_iter_next (GTK_TREE_MODEL (self->priv->model), iter)); - - g_free (uri); - - return found; -} - - static void update_location_list (gpointer user_data) { @@ -438,16 +539,17 @@ GList *scan; int position = 0; - delete_current_file_entries (self); + delete_section_by_type (self, ITEM_TYPE_LOCATION); list = gth_file_source_get_current_list (self->priv->file_source, self->priv->location); for (scan = list; scan; scan = scan->next) { GFile *file = scan->data; GFileInfo *info; - info = gth_file_source_get_file_info (self->priv->file_source, file, GFILE_DISPLAY_ATTRIBUTES); + info = _g_file_get_info_for_display (file); if (info == NULL) continue; + add_file_source_entries (self, file, g_file_info_get_display_name (info), @@ -459,6 +561,30 @@ g_object_unref (info); } + if (self->priv->show_root) { + GIcon *icon; + + icon = g_themed_icon_new ("computer-symbolic"); + gtk_tree_store_insert (self->priv->model, &iter, NULL, position++); + gtk_tree_store_set (self->priv->model, &iter, + TYPE_COLUMN, ITEM_TYPE_LOCATION, + ICON_COLUMN, icon, + NAME_COLUMN, _("Locations"), + URI_COLUMN, "gthumb-vfs:///", + -1); + + _g_object_unref (icon); + } + + if (self->priv->show_other || self->priv->show_entry_points) { + GtkTreeIter iter; + + gtk_tree_store_insert (self->priv->model, &iter, NULL, position); + gtk_tree_store_set (self->priv->model, &iter, + TYPE_COLUMN, ITEM_TYPE_SEPARATOR, + -1); + } + _g_object_list_unref (list); } @@ -481,6 +607,17 @@ GthLocationChooser *self = GTH_LOCATION_CHOOSER (widget); GTK_WIDGET_CLASS (gth_location_chooser_parent_class)->realize (widget); + + if (self->priv->show_other) { + GtkTreeIter iter; + + gtk_tree_store_append (self->priv->model, &iter, NULL); + gtk_tree_store_set (self->priv->model, &iter, + TYPE_COLUMN, ITEM_TYPE_CHOOSE_LOCATION, + NAME_COLUMN, _("Other…"), + ELLIPSIZE_COLUMN, FALSE, + -1); + } entry_points_changed_cb (NULL, self); current_location_changed (self); } @@ -505,11 +642,24 @@ g_object_class_install_property (object_class, PROP_SHOW_ENTRY_POINTS, g_param_spec_boolean ("show-entry-points", - "Show entry points", - "Whether to show the entry points in the list", - TRUE, - G_PARAM_READWRITE)); - + "Show entry points", + "Whether to show the entry points in the list", + TRUE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_SHOW_ROOT, + g_param_spec_boolean ("show-root", + "Show the VFS root", + "Whether to show the VFS root in the list", + FALSE, + G_PARAM_READWRITE)); + g_object_class_install_property (object_class, + PROP_SHOW_OTHER, + g_param_spec_boolean ("show-other", + "Show the Other... entry", + "Whether to show a special entry to choose a location from a dialog", + FALSE, + G_PARAM_READWRITE)); g_object_class_install_property (object_class, PROP_RELIEF, g_param_spec_enum ("relief", @@ -544,6 +694,8 @@ self->priv = gth_location_chooser_get_instance_private (self); self->priv->entry_points_changed_id = 0; self->priv->show_entry_points = TRUE; + self->priv->show_root = FALSE; + self->priv->show_other = TRUE; self->priv->relief = GTK_RELIEF_NORMAL; self->priv->reload = FALSE; @@ -647,7 +799,7 @@ g_source_remove (self->priv->entry_points_changed_id); self->priv->entry_points_changed_id = 0; } - clear_entry_point_list (self); + clear_items_from_separator (self, 1, TRUE); } g_object_notify (G_OBJECT (self), "show-entry-points"); @@ -665,6 +817,9 @@ gth_location_chooser_set_current (GthLocationChooser *self, GFile *file) { + if (file == NULL) + return; + if (file != self->priv->location) { if (self->priv->file_source != NULL) g_object_unref (self->priv->file_source); diff -Nru gthumb-3.8.3/gthumb/gth-location-chooser-dialog.c gthumb-3.9.1/gthumb/gth-location-chooser-dialog.c --- gthumb-3.8.3/gthumb/gth-location-chooser-dialog.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-location-chooser-dialog.c 2020-03-07 19:03:13.523620800 +0000 @@ -0,0 +1,242 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include +#include "glib-utils.h" +#include "gtk-utils.h" +#include "gth-file-data.h" +#include "gth-vfs-tree.h" +#include "gth-location-chooser.h" +#include "gth-location-chooser-dialog.h" +#include "gth-main.h" + + +#define MIN_WIDTH 600 +#define MIN_HEIGHT 600 + + +struct _GthLocationChooserDialogPrivate { + GFile *folder; + GtkWidget *folder_tree; + GtkWidget *entry; + gulong entry_changed_id; +}; + + +G_DEFINE_TYPE_WITH_CODE (GthLocationChooserDialog, + gth_location_chooser_dialog, + GTK_TYPE_DIALOG, + G_ADD_PRIVATE (GthLocationChooserDialog)) + + +static void +gth_location_chooser_dialog_finalize (GObject *object) +{ + GthLocationChooserDialog *self; + + self = GTH_LOCATION_CHOOSER_DIALOG (object); + + _g_object_unref (self->priv->folder); + + G_OBJECT_CLASS (gth_location_chooser_dialog_parent_class)->finalize (object); +} + + +static void +gth_location_chooser_dialog_class_init (GthLocationChooserDialogClass *class) +{ + GObjectClass *object_class; + + object_class = (GObjectClass*) class; + object_class->finalize = gth_location_chooser_dialog_finalize; +} + + +static void +gth_location_chooser_dialog_init (GthLocationChooserDialog *self) +{ + self->priv = gth_location_chooser_dialog_get_instance_private (self); + self->priv->folder = NULL; + self->priv->entry_changed_id = 0; +} + + +static void +_set_folder (GthLocationChooserDialog *self, + GFile *folder) +{ + if (self->priv->folder != folder) { + _g_object_unref (self->priv->folder); + self->priv->folder = _g_object_ref (folder); + } + + if (self->priv->folder != NULL) { + g_signal_handler_block (self->priv->entry, self->priv->entry_changed_id); + gth_location_chooser_set_current (GTH_LOCATION_CHOOSER (self->priv->entry), self->priv->folder); + g_signal_handler_unblock (self->priv->entry, self->priv->entry_changed_id); + } + + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, (self->priv->folder != NULL)); +} + + +static void +folder_tree_changed_cb (GthVfsTree *tree, + gpointer user_data) +{ + GthLocationChooserDialog *self = user_data; + _set_folder (self, gth_vfs_tree_get_folder (tree)); +} + + +static void +location_entry_changed_cb (GthLocationChooser *entry, + gpointer user_data) +{ + GthLocationChooserDialog *self = user_data; + GFile *folder; + + folder = gth_location_chooser_get_current (entry); + if (_g_file_equal (folder, gth_folder_tree_get_root (GTH_FOLDER_TREE (self->priv->folder_tree)))) { + gtk_tree_view_collapse_all (GTK_TREE_VIEW (self->priv->folder_tree)); + _set_folder (self, NULL); + } + else + gth_location_chooser_dialog_set_folder (self, folder); +} + + +static void +hidden_files_toggled_cb (GtkToggleButton *togglebutton, + gpointer user_data) +{ + GthLocationChooserDialog *self = user_data; + + gth_vfs_tree_set_show_hidden (GTH_VFS_TREE (self->priv->folder_tree), gtk_toggle_button_get_active (togglebutton)); +} + + +static void +_gth_location_chooser_dialog_construct (GthLocationChooserDialog *self) +{ + GtkWidget *vbox; + GtkWidget *scrolled_window; + GtkWidget *check_button; + + vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12); + gtk_widget_show (vbox); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), vbox, TRUE, TRUE, 0); + + self->priv->entry = g_object_new (GTH_TYPE_LOCATION_CHOOSER, + "show-entry-points", FALSE, + "show-other", FALSE, + "show-root", TRUE, + NULL); + self->priv->entry_changed_id = + g_signal_connect (self->priv->entry, + "changed", + G_CALLBACK (location_entry_changed_cb), + self); + + gtk_widget_show (self->priv->entry); + gtk_box_pack_start (GTK_BOX (vbox), self->priv->entry, FALSE, FALSE, 0); + + gtk_box_set_spacing (GTK_BOX (gtk_dialog_get_content_area (GTK_DIALOG (self))), 5); + gtk_container_set_border_width (GTK_CONTAINER (self), 5); + + _gtk_dialog_add_to_window_group (GTK_DIALOG (self)); + + gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_CANCEL, GTK_RESPONSE_CANCEL); + gtk_dialog_add_button (GTK_DIALOG (self), _GTK_LABEL_OK, GTK_RESPONSE_OK); + gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_OK); + _gtk_dialog_add_class_to_response (GTK_DIALOG (self), GTK_RESPONSE_OK, GTK_STYLE_CLASS_SUGGESTED_ACTION); + gtk_dialog_set_response_sensitive (GTK_DIALOG (self), GTK_RESPONSE_OK, FALSE); + + scrolled_window = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), + GTK_POLICY_AUTOMATIC, + GTK_POLICY_AUTOMATIC); + gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolled_window), + GTK_SHADOW_IN); + gtk_widget_set_size_request (scrolled_window, MIN_WIDTH, MIN_HEIGHT); + gtk_widget_show (scrolled_window); + + self->priv->folder_tree = gth_vfs_tree_new (NULL, NULL); + g_signal_connect (self->priv->folder_tree, + "changed", + G_CALLBACK (folder_tree_changed_cb), + self); + gtk_widget_show (self->priv->folder_tree); + gtk_container_add (GTK_CONTAINER (scrolled_window), self->priv->folder_tree); + gtk_box_pack_start (GTK_BOX (vbox), scrolled_window, TRUE, TRUE, 0); + + check_button = gtk_check_button_new_with_label (_("Hidden Files")); + g_signal_connect (check_button, + "toggled", + G_CALLBACK (hidden_files_toggled_cb), + self); + gtk_widget_show (check_button); + gtk_box_pack_start (GTK_BOX (vbox), check_button, TRUE, TRUE, 0); + + _set_folder (self, NULL); +} + + +GtkWidget * +gth_location_chooser_dialog_new (const char *title, + GtkWindow *parent) +{ + GthLocationChooserDialog *self; + + self = g_object_new (GTH_TYPE_LOCATION_CHOOSER_DIALOG, + "title", title, + "transient-for", parent, + "modal", TRUE, + "resizable", TRUE, + "use-header-bar", _gtk_settings_get_dialogs_use_header (), + NULL); + _gth_location_chooser_dialog_construct (self); + + return (GtkWidget *) self; +} + + +void +gth_location_chooser_dialog_set_folder (GthLocationChooserDialog *self, + GFile *folder) +{ + g_return_if_fail (GTH_IS_LOCATION_CHOOSER_DIALOG (self)); + g_return_if_fail (folder != NULL); + + gth_vfs_tree_set_folder (GTH_VFS_TREE (self->priv->folder_tree), folder); +} + + +GFile * +gth_location_chooser_dialog_get_folder (GthLocationChooserDialog *self) +{ + g_return_val_if_fail (GTH_IS_LOCATION_CHOOSER_DIALOG (self), NULL); + + return self->priv->folder; +} diff -Nru gthumb-3.8.3/gthumb/gth-location-chooser-dialog.h gthumb-3.9.1/gthumb/gth-location-chooser-dialog.h --- gthumb-3.8.3/gthumb/gth-location-chooser-dialog.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-location-chooser-dialog.h 2020-03-07 19:03:13.523620800 +0000 @@ -0,0 +1,59 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_LOCATION_CHOOSER_DIALOG_H +#define GTH_LOCATION_CHOOSER_DIALOG_H + +#include +#include + +G_BEGIN_DECLS + +#define GTH_TYPE_LOCATION_CHOOSER_DIALOG (gth_location_chooser_dialog_get_type ()) +#define GTH_LOCATION_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GTH_TYPE_LOCATION_CHOOSER_DIALOG, GthLocationChooserDialog)) +#define GTH_LOCATION_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GTH_TYPE_LOCATION_CHOOSER_DIALOG, GthLocationChooserDialogClass)) +#define GTH_IS_LOCATION_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GTH_TYPE_LOCATION_CHOOSER_DIALOG)) +#define GTH_IS_LOCATION_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GTH_TYPE_LOCATION_CHOOSER_DIALOG)) +#define GTH_LOCATION_CHOOSER_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS((o), GTH_TYPE_LOCATION_CHOOSER_DIALOG, GthLocationChooserDialogClass)) + +typedef struct _GthLocationChooserDialog GthLocationChooserDialog; +typedef struct _GthLocationChooserDialogPrivate GthLocationChooserDialogPrivate; +typedef struct _GthLocationChooserDialogClass GthLocationChooserDialogClass; + +struct _GthLocationChooserDialog { + GtkDialog __parent; + GthLocationChooserDialogPrivate *priv; +}; + +struct _GthLocationChooserDialogClass { + GtkDialogClass __parent_class; +}; + +GType gth_location_chooser_dialog_get_type (void) G_GNUC_CONST; +GtkWidget * gth_location_chooser_dialog_new (const char *title, + GtkWindow *parent); +void gth_location_chooser_dialog_set_folder (GthLocationChooserDialog *self, + GFile *folder); +GFile * gth_location_chooser_dialog_get_folder (GthLocationChooserDialog *self); + +G_END_DECLS + +#endif /* GTH_LOCATION_CHOOSER_DIALOG_H */ diff -Nru gthumb-3.8.3/gthumb/gth-main.c gthumb-3.9.1/gthumb/gth-main.c --- gthumb-3.8.3/gthumb/gth-main.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-main.c 2020-03-07 19:03:13.523620800 +0000 @@ -27,11 +27,13 @@ #include #include "glib-utils.h" #include "gth-duplicable.h" +#include "gth-file-source-vfs.h" #include "gth-filter.h" #include "gth-main.h" #include "gth-metadata-provider.h" #include "gth-user-dir.h" #include "gth-preferences.h" +#include "gth-shortcut.h" #include "gtk-utils.h" #include "pixbuf-io.h" #include "typedefs.h" @@ -105,6 +107,8 @@ GPtrArray *metadata_info; GHashTable *metadata_info_hash; gboolean metadata_info_sorted; + GPtrArray *shortcut_category_v; + GHashTable *shortcut_category_h; GHashTable *sort_types; GHashTable *image_loaders; GHashTable *types; @@ -133,11 +137,14 @@ _g_object_list_unref (gth_main->priv->file_sources); g_hash_table_unref (gth_main->priv->metadata_info_hash); - g_ptr_array_free (gth_main->priv->metadata_category, TRUE); - g_ptr_array_free (gth_main->priv->metadata_info, TRUE); + g_ptr_array_unref (gth_main->priv->metadata_category); + g_ptr_array_unref (gth_main->priv->metadata_info); g_list_foreach (gth_main->priv->metadata_provider, (GFunc) g_object_unref, NULL); g_list_free (gth_main->priv->metadata_provider); + g_ptr_array_unref (gth_main->priv->shortcut_category_v); + g_hash_table_unref (gth_main->priv->shortcut_category_h); + if (gth_main->priv->sort_types != NULL) g_hash_table_unref (gth_main->priv->sort_types); if (gth_main->priv->image_loaders != NULL) @@ -182,6 +189,8 @@ main->priv->metadata_info = g_ptr_array_new (); main->priv->metadata_info_hash = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL); main->priv->metadata_info_sorted = FALSE; + main->priv->shortcut_category_v = g_ptr_array_new (); + main->priv->shortcut_category_h = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL); main->priv->sort_types = g_hash_table_new_full (g_str_hash, g_str_equal, NULL, NULL); main->priv->image_loaders = g_hash_table_new_full (g_str_hash, (GEqualFunc) g_content_type_equals, @@ -246,13 +255,8 @@ } } - if ((file_source == NULL) && ! g_str_has_prefix (uri, "vfs+")) { - char *vfs_uri; - - vfs_uri = g_strconcat ("vfs+", uri, NULL); - file_source = gth_main_get_file_source_for_uri (vfs_uri); - g_free (vfs_uri); - } + if (file_source == NULL) + file_source = g_object_new (GTH_TYPE_FILE_SOURCE_VFS, NULL); return file_source; } @@ -274,6 +278,23 @@ return file_source; } + +char * +gth_main_get_source_scheme (const char *uri) +{ + GList *scan; + + for (scan = Main->priv->file_sources; scan; scan = scan->next) { + GthFileSource *registered_file_source = scan->data; + + if (gth_file_source_supports_scheme (registered_file_source, uri)) + return _g_uri_get_scheme (uri); + } + + return g_strdup ("file"); +} + + GList * gth_main_get_all_file_sources (void) { @@ -310,6 +331,56 @@ } +GFile * +gth_main_get_nearest_entry_point (GFile *file) +{ + GList *list; + GList *scan; + GList *entries; + char *nearest_uri; + char *uri; + int file_uri_len; + int min_diff; + GFile *nearest; + + entries = NULL; + list = gth_main_get_all_entry_points (); + for (scan = list; scan; scan = scan->next) { + GthFileData *entry_point = scan->data; + + if (_g_file_is_parent (entry_point->file, file)) + entries = g_list_prepend (entries, g_file_get_uri (entry_point->file)); + } + + nearest_uri = NULL; + uri = g_file_get_uri (file); + file_uri_len = strlen (uri); + min_diff = 0; + for (scan = entries; scan; scan = scan->next) { + char *entry_uri = scan->data; + int entry_len; + int diff; + + entry_len = strlen (entry_uri); + diff = abs (entry_len - file_uri_len); + if ((scan == entries) || (diff < min_diff)) { + min_diff = diff; + nearest_uri = entry_uri; + } + } + g_free (uri); + + nearest = NULL; + if (nearest_uri != NULL) + nearest = g_file_new_for_uri (nearest_uri); + + _g_string_list_free (entries); + _g_object_list_unref (list); + + return nearest; +} + + char * gth_main_get_gio_uri (const char *uri) { @@ -584,6 +655,37 @@ } +GthShortcutCategory * +gth_main_get_shortcut_category (const char *id) +{ + return g_hash_table_lookup (Main->priv->shortcut_category_h, id); +} + + +GPtrArray * +gth_main_get_shortcut_categories (void) +{ + return Main->priv->shortcut_category_v; +} + + +void +gth_main_register_shortcut_category (GthShortcutCategory *shortcut_category, + int n_categories) +{ + int i; + + g_mutex_lock (®ister_mutex); + for (i = 0; i < n_categories; i++) { + if (gth_main_get_shortcut_category (shortcut_category[i].id) == NULL) { + g_ptr_array_add (Main->priv->shortcut_category_v, &shortcut_category[i]); + g_hash_table_insert (Main->priv->shortcut_category_h, shortcut_category[i].id, &shortcut_category[i]); + } + } + g_mutex_unlock (®ister_mutex); +} + + void gth_main_register_sort_type (GthFileDataSort *sort_type) { @@ -934,7 +1036,7 @@ static void g_ptr_array_destroy (gpointer array) { - g_ptr_array_free ((GPtrArray *) array, TRUE); + g_ptr_array_unref ((GPtrArray *) array); } @@ -1102,6 +1204,14 @@ } +void +gth_main_shortcuts_changed (GPtrArray *shortcuts_v) +{ + if (gth_shortcuts_write_to_file (shortcuts_v, NULL)) + gth_monitor_shortcuts_changed (gth_main_get_default_monitor ()); +} + + GthFilterFile * gth_main_get_default_filter_file (void) { @@ -1245,49 +1355,53 @@ void gth_main_activate_extensions (void) { - const char *mandatory_extensions[] = { "file_viewer", /* keep the file viewer before any other viewer (see comment in gth-browser:file_metadata_ready_cb). */ + const char *mandatory_extensions[] = { + "file_viewer", /* keep the file viewer before any other viewer (see comment in gth-browser:file_metadata_ready_cb). */ #ifdef HAVE_LIBJPEG - "jpeg_utils", /* mandatory if jpeg support is activated at compile time */ + "jpeg_utils", /* mandatory if jpeg support is activated at compile time */ #endif - "cairo_io", - "image_viewer", - "file_tools", - NULL }; - const char *default_extensions[] = { "23hq", - "bookmarks", - "burn_disc", - "catalogs", - "change_date", - "comments", - "contact_sheet", - "convert_format", - "desktop_background", - "edit_metadata", - "exiv2_tools", - "facebook", - "file_manager", - "find_duplicates", - "flicker", - "gstreamer_tools", - "gstreamer_utils", - "image_print", - "image_rotation", - "importer", - "jpeg_utils", - "list_tools", - "oauth", - "photo_importer", - "photobucket", - "picasaweb", - "raw_files", - "red_eye_removal", - "rename_series", - "resize_images", - "search", - "selections", - "slideshow", - "webalbums", - NULL }; + "cairo_io", + "image_viewer", + "file_tools", + NULL + }; + const char *default_extensions[] = { + "23hq", + "bookmarks", + "burn_disc", + "catalogs", + "change_date", + "comments", + "contact_sheet", + "convert_format", + "desktop_background", + "edit_metadata", + "exiv2_tools", + "facebook", + "file_manager", + "find_duplicates", + "flicker", + "gstreamer_tools", + "gstreamer_utils", + "image_print", + "image_rotation", + "importer", + "jpeg_utils", + "list_tools", + "oauth", + "photo_importer", + "picasaweb", + "raw_files", + "red_eye_removal", + "rename_series", + "resize_images", + "search", + "selections", + "slideshow", + "terminal", + "webalbums", + NULL + }; GSettings *settings; char **user_actived_extensions; char **actived_extensions; diff -Nru gthumb-3.8.3/gthumb/gth-main-default-hooks.c gthumb-3.9.1/gthumb/gth-main-default-hooks.c --- gthumb-3.8.3/gthumb/gth-main-default-hooks.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-main-default-hooks.c 2020-03-07 19:03:13.523620800 +0000 @@ -90,6 +90,14 @@ gth_hook_register ("gth-browser-update-sensitivity", 1); /** + * Called when the file list selection changes + * + * @browser (GthBrowser*): the relative window. + * @n_selected (int): number of selected files. + */ + gth_hook_register ("gth-browser-selection-changed", 2); + + /** * Called when the current page changes. * * @browser (GthBrowser*): the relative window. @@ -123,10 +131,8 @@ * * @browser (GthBrowser*): the window * @folder (GthFileData*): the loaded folder data - * @error (GError*): the error or NULL if the folder was loaded - * correctly. **/ - gth_hook_register ("gth-browser-load-location-after", 3); + gth_hook_register ("gth-browser-load-location-after", 2); /** * Called before displaying the file list popup menu. @@ -205,7 +211,7 @@ /** * Called when copying files in _g_copy_files_async with the * GTH_FILE_COPY_ALL_METADATA flag activated and when deleting file - * with _g_delete_files. Used to add sidecar files that contain + * with _g_file_list_delete. Used to add sidecar files that contain * file metadata. * * @file (GFile *): the original file. diff -Nru gthumb-3.8.3/gthumb/gth-main-default-metadata.c gthumb-3.9.1/gthumb/gth-main-default-metadata.c --- gthumb-3.8.3/gthumb/gth-main-default-metadata.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-main-default-metadata.c 2020-03-07 19:03:13.523620800 +0000 @@ -38,10 +38,12 @@ GthMetadataInfo file_metadata_info[] = { { "standard::display-name", N_("Name"), "file", 1, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, { "gth::file::display-size", N_("Size"), "file", 2, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, - { "gth::file::display-mtime", NC_("the file mtime", "Modified Date & Time"), "file", 3, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, - { "standard::fast-content-type", N_("Type"), "file", 4, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, - { "gth::file::is-modified", NULL, "file", 5, NULL, GTH_METADATA_ALLOW_NOWHERE }, - { "gth::file::full-name", N_("Location"), "file", 6, NULL, GTH_METADATA_ALLOW_IN_PRINT | GTH_METADATA_ALLOW_IN_FILE_LIST | GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW }, + { "standard::size", N_("Bytes"), "file", 3, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, + /* Translators: the file modified time. */ + { "gth::file::display-mtime", N_("Modified Date & Time"), "file", 4, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, + { "standard::fast-content-type", N_("Type"), "file", 5, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, + { "gth::file::is-modified", NULL, "file", 6, NULL, GTH_METADATA_ALLOW_NOWHERE }, + { "gth::file::full-name", N_("Location"), "file", 7, NULL, GTH_METADATA_ALLOW_IN_PRINT | GTH_METADATA_ALLOW_IN_FILE_LIST | GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW }, { "general::format", N_("Format"), "file", 10, NULL, GTH_METADATA_ALLOW_IN_PROPERTIES_VIEW }, { "general::dimensions", N_("Dimensions"), "file", 12, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, { "general::duration", N_("Duration"), "file", 11, NULL, GTH_METADATA_ALLOW_EVERYWHERE }, diff -Nru gthumb-3.8.3/gthumb/gth-main-default-types.c gthumb-3.9.1/gthumb/gth-main-default-types.c --- gthumb-3.8.3/gthumb/gth-main-default-types.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-main-default-types.c 2020-03-07 19:03:13.523620800 +0000 @@ -25,6 +25,7 @@ #include "dlg-preferences-browser.h" #include "dlg-preferences-extensions.h" #include "dlg-preferences-general.h" +#include "dlg-preferences-shortcuts.h" #include "gth-file-comment.h" #include "gth-file-details.h" #include "gth-file-properties.h" @@ -32,6 +33,16 @@ #include "pixbuf-io.h" +static GthShortcutCategory shortcut_categories[] = { + { GTH_SHORTCUT_CATEGORY_HIDDEN, NULL, 0 }, + { GTH_SHORTCUT_CATEGORY_GENERAL, N_("General"), 31 }, + { GTH_SHORTCUT_CATEGORY_UI, N_("Show/Hide"), 30 }, + { GTH_SHORTCUT_CATEGORY_NAVIGATION, N_("Navigation"), 12 }, + { GTH_SHORTCUT_CATEGORY_FILE_MANAGER, N_("File Manager"), 10 }, + { GTH_SHORTCUT_CATEGORY_VIEWER, N_("Viewer"), 20 }, +}; + + static void gth_main_register_default_file_loader (void) { @@ -68,10 +79,12 @@ gth_main_register_type ("file-properties", GTH_TYPE_FILE_COMMENT); gth_main_register_type ("file-properties", GTH_TYPE_FILE_DETAILS); gth_main_register_default_file_loader (); + gth_main_register_shortcut_category (shortcut_categories, G_N_ELEMENTS (shortcut_categories)); gth_hook_add_callback ("dlg-preferences-construct", 1, G_CALLBACK (general__dlg_preferences_construct_cb), NULL); gth_hook_add_callback ("dlg-preferences-apply", 1, G_CALLBACK (general__dlg_preferences_apply), NULL); gth_hook_add_callback ("dlg-preferences-construct", 2, G_CALLBACK (browser__dlg_preferences_construct_cb), NULL); gth_hook_add_callback ("dlg-preferences-apply", 2, G_CALLBACK (browser__dlg_preferences_apply), NULL); + gth_hook_add_callback ("dlg-preferences-construct", 50, G_CALLBACK (shortcuts__dlg_preferences_construct_cb), NULL); gth_hook_add_callback ("dlg-preferences-construct", 9999, G_CALLBACK (extensions__dlg_preferences_construct_cb), NULL); gth_hook_add_callback ("dlg-preferences-apply", 9999 /* Must be the last callback */, G_CALLBACK (extensions__dlg_preferences_apply), NULL); } diff -Nru gthumb-3.8.3/gthumb/gth-main.h gthumb-3.9.1/gthumb/gth-main.h --- gthumb-3.8.3/gthumb/gth-main.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-main.h 2020-03-07 19:03:13.523620800 +0000 @@ -35,6 +35,7 @@ #include "gth-image-saver.h" #include "gth-metadata-provider.h" #include "gth-monitor.h" +#include "gth-shortcut.h" #include "gth-tags-file.h" #include "gth-test.h" #include "pixbuf-io.h" @@ -67,8 +68,10 @@ void gth_main_register_file_source (GType file_source_type); GthFileSource * gth_main_get_file_source_for_uri (const char *uri); GthFileSource * gth_main_get_file_source (GFile *file); +char * gth_main_get_source_scheme (const char *uri); GList * gth_main_get_all_file_sources (void); GList * gth_main_get_all_entry_points (void); +GFile * gth_main_get_nearest_entry_point (GFile *file); char * gth_main_get_gio_uri (const char *uri); GFile * gth_main_get_gio_file (GFile *file); void gth_main_register_metadata_category (GthMetadataCategory *metadata_category); @@ -84,6 +87,10 @@ GthMetadataCategory * gth_main_get_metadata_category (const char *id); GthMetadataInfo * gth_main_get_metadata_info (const char *id); GList * gth_main_get_all_metadata_info (void); +void gth_main_register_shortcut_category (GthShortcutCategory *shortcut_category, + int n_categories); +GthShortcutCategory * gth_main_get_shortcut_category (const char *id); +GPtrArray * gth_main_get_shortcut_categories (void); void gth_main_register_sort_type (GthFileDataSort *sort_type); GthFileDataSort * gth_main_get_sort_type (const char *name); GList * gth_main_get_all_sort_types (void); @@ -111,6 +118,7 @@ GArray * gth_main_get_type_set (const char *set_name); GBookmarkFile * gth_main_get_default_bookmarks (void); void gth_main_bookmarks_changed (void); +void gth_main_shortcuts_changed (GPtrArray *shortcuts_v); GthFilterFile * gth_main_get_default_filter_file (void); GList * gth_main_get_all_filters (void); void gth_main_filters_changed (void); diff -Nru gthumb-3.8.3/gthumb/gth-marshal.list gthumb-3.9.1/gthumb/gth-marshal.list --- gthumb-3.8.3/gthumb/gth-marshal.list 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-marshal.list 2020-03-07 19:03:13.523620800 +0000 @@ -1,5 +1,6 @@ BOOLEAN:ENUM, ENUM BOOLEAN:VOID +BOOLEAN:UINT, ENUM VOID:BOOLEAN, POINTER VOID:BOXED, BOXED VOID:ENUM, ENUM diff -Nru gthumb-3.8.3/gthumb/gth-metadata.c gthumb-3.9.1/gthumb/gth-metadata.c --- gthumb-3.8.3/gthumb/gth-metadata.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-metadata.c 2020-03-07 19:03:13.523620800 +0000 @@ -98,13 +98,13 @@ self = GTH_METADATA (object); switch (property_id) { case GTH_METADATA_ID: - _g_strset (&self->priv->id, g_value_get_string (value)); + _g_str_set (&self->priv->id, g_value_get_string (value)); break; case GTH_METADATA_DESCRIPTION: - _g_strset (&self->priv->description, g_value_get_string (value)); + _g_str_set (&self->priv->description, g_value_get_string (value)); break; case GTH_METADATA_RAW: - _g_strset (&self->priv->raw, g_value_get_string (value)); + _g_str_set (&self->priv->raw, g_value_get_string (value)); break; case GTH_METADATA_STRING_LIST: _g_object_unref (self->priv->list); @@ -112,10 +112,10 @@ self->priv->data_type = (self->priv->list != NULL) ? GTH_METADATA_TYPE_STRING_LIST : GTH_METADATA_TYPE_STRING; break; case GTH_METADATA_FORMATTED: - _g_strset (&self->priv->formatted, g_value_get_string (value)); + _g_str_set (&self->priv->formatted, g_value_get_string (value)); break; case GTH_METADATA_VALUE_TYPE: - _g_strset (&self->priv->value_type, g_value_get_string (value)); + _g_str_set (&self->priv->value_type, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); diff -Nru gthumb-3.8.3/gthumb/gth-metadata-chooser.c gthumb-3.9.1/gthumb/gth-metadata-chooser.c --- gthumb-3.8.3/gthumb/gth-metadata-chooser.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-metadata-chooser.c 2020-03-07 19:03:13.523620800 +0000 @@ -42,6 +42,12 @@ }; +/* Properties */ +enum { + PROP_0, + PROP_REORDERABLE +}; + /* Signals */ enum { CHANGED, @@ -51,6 +57,7 @@ struct _GthMetadataChooserPrivate { GthMetadataFlags allowed_flags; + gboolean reorderable; gulong row_inserted_event; gulong row_deleted_event; guint changed_id; @@ -66,9 +73,68 @@ G_ADD_PRIVATE (GthMetadataChooser)) + +static void +ggth_metadata_chooser_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GthMetadataChooser *self; + + self = GTH_METADATA_CHOOSER (object); + + switch (property_id) { + case PROP_REORDERABLE: + self->priv->reorderable = g_value_get_boolean (value); + gtk_tree_view_set_reorderable (GTK_TREE_VIEW (self), self->priv->reorderable); + break; + default: + break; + } +} + + +static void +gth_metadata_chooser_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GthMetadataChooser *self; + + self = GTH_METADATA_CHOOSER (object); + + switch (property_id) { + case PROP_REORDERABLE: + g_value_set_boolean (value, self->priv->reorderable); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + static void gth_metadata_chooser_class_init (GthMetadataChooserClass *klass) { + GObjectClass *object_class; + + object_class = (GObjectClass*) klass; + object_class->set_property = ggth_metadata_chooser_set_property; + object_class->get_property = gth_metadata_chooser_get_property; + + /* properties */ + + g_object_class_install_property (object_class, + PROP_REORDERABLE, + g_param_spec_boolean ("reorderable", + "Reorderable", + "Whether the user can reorder the list", + FALSE, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY)); + /* signals */ gth_metadata_chooser_signals[CHANGED] = @@ -107,10 +173,23 @@ static int item_data_compare_func (gconstpointer a, - gconstpointer b) + gconstpointer b, + gpointer user_data) { - ItemData *item_a = (ItemData *) a; - ItemData *item_b = (ItemData *) b; + GthMetadataChooser *self = user_data; + ItemData *item_a = (ItemData *) a; + ItemData *item_b = (ItemData *) b; + + if (! self->priv->reorderable) { + if (item_a->sort_order < item_b->sort_order) + return -1; + else if (item_a->sort_order > item_b->sort_order) + return 1; + else + return g_strcmp0 (item_a->id, item_b->id); + } + + /* self->priv->reorderable == TRUE */ if (item_a->separator) { if (item_b->used) @@ -186,7 +265,7 @@ } while (gtk_tree_model_iter_next (model, &iter)); - list = g_list_sort (list, item_data_compare_func); + list = g_list_sort_with_data (list, item_data_compare_func, self); new_order = g_new (int, g_list_length (list)); for (pos = 0, scan = list; scan; pos++, scan = scan->next) { ItemData *item_data = scan->data; @@ -315,7 +394,7 @@ G_TYPE_BOOLEAN); gtk_tree_view_set_model (GTK_TREE_VIEW (self), GTK_TREE_MODEL (store)); g_object_unref (store); - gtk_tree_view_set_reorderable (GTK_TREE_VIEW (self), TRUE); + gtk_tree_view_set_reorderable (GTK_TREE_VIEW (self), self->priv->reorderable); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (self), FALSE); gtk_tree_view_set_row_separator_func (GTK_TREE_VIEW (self), row_separator_func, @@ -361,11 +440,12 @@ GtkWidget * -gth_metadata_chooser_new (GthMetadataFlags allowed_flags) +gth_metadata_chooser_new (GthMetadataFlags allowed_flags, + gboolean reorderable) { GthMetadataChooser *self; - self = g_object_new (GTH_TYPE_METADATA_CHOOSER, NULL); + self = g_object_new (GTH_TYPE_METADATA_CHOOSER, "reorderable", reorderable, NULL); self->priv->allowed_flags = allowed_flags; gth_metadata_chooser_set_selection (self, ""); @@ -393,51 +473,57 @@ attributes_v = gth_main_get_metadata_attributes ("*"); ids_v = g_strsplit (ids, ",", -1); - for (i = 0; ids_v[i] != NULL; i++) { - int idx; - GthMetadataInfo *info; - const char *name; - GthMetadataCategory *category; - idx = _g_strv_find (attributes_v, ids_v[i]); - if (idx < 0) - continue; + if (self->priv->reorderable) { + for (i = 0; ids_v[i] != NULL; i++) { + int idx; + GthMetadataInfo *info; + const char *name; + GthMetadataCategory *category; + + idx = _g_strv_find (attributes_v, ids_v[i]); + if (idx < 0) + continue; + + info = gth_main_get_metadata_info (attributes_v[idx]); + if ((info == NULL) || ((info->flags & self->priv->allowed_flags) == 0)) + continue; - info = gth_main_get_metadata_info (attributes_v[idx]); - if ((info == NULL) || ((info->flags & self->priv->allowed_flags) == 0)) - continue; + if (info->display_name != NULL) + name = _(info->display_name); + else + name = info->id; - name = info->display_name; - if (name == NULL) - name = info->id; + category = gth_main_get_metadata_category (info->category); - category = gth_main_get_metadata_category (info->category); + gtk_list_store_append (store, &iter); + gtk_list_store_set (store, &iter, + WEIGHT_COLUMN, PANGO_WEIGHT_NORMAL, + NAME_COLUMN, name, + ID_COLUMN, info->id, + SORT_ORDER_COLUMN, (category->sort_order * CATEGORY_SIZE) + info->sort_order, + USED_COLUMN, TRUE, + SEPARATOR_COLUMN, FALSE, + IS_METADATA_COLUMN, TRUE, + -1); + } gtk_list_store_append (store, &iter); gtk_list_store_set (store, &iter, - WEIGHT_COLUMN, PANGO_WEIGHT_NORMAL, - NAME_COLUMN, _(name), - ID_COLUMN, info->id, - SORT_ORDER_COLUMN, (category->sort_order * CATEGORY_SIZE) + info->sort_order, - USED_COLUMN, TRUE, - SEPARATOR_COLUMN, FALSE, - IS_METADATA_COLUMN, TRUE, - -1); + SEPARATOR_COLUMN, TRUE, + -1); } - gtk_list_store_append (store, &iter); - gtk_list_store_set (store, &iter, - SEPARATOR_COLUMN, TRUE, - -1); - category_root = g_hash_table_new_full (g_str_hash, g_str_equal, (GDestroyNotify) g_free, NULL); for (i = 0; attributes_v[i] != NULL; i++) { + gboolean used; GtkTreeIter iter; GthMetadataInfo *info; const char *name; GthMetadataCategory *category; - if (_g_strv_find (ids_v, attributes_v[i]) >= 0) + used = _g_strv_find (ids_v, attributes_v[i]) >= 0; + if (self->priv->reorderable && used) continue; info = gth_main_get_metadata_info (attributes_v[i]); @@ -471,7 +557,7 @@ NAME_COLUMN, _(name), ID_COLUMN, info->id, SORT_ORDER_COLUMN, (category->sort_order * CATEGORY_SIZE) + info->sort_order, - USED_COLUMN, FALSE, + USED_COLUMN, used, SEPARATOR_COLUMN, FALSE, IS_METADATA_COLUMN, TRUE, -1); diff -Nru gthumb-3.8.3/gthumb/gth-metadata-chooser.h gthumb-3.9.1/gthumb/gth-metadata-chooser.h --- gthumb-3.8.3/gthumb/gth-metadata-chooser.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-metadata-chooser.h 2020-03-07 19:03:13.523620800 +0000 @@ -23,6 +23,7 @@ #define GTH_METADATA_CHOOSER_H #include +#include "gth-metadata.h" G_BEGIN_DECLS @@ -51,7 +52,8 @@ }; GType gth_metadata_chooser_get_type (void); -GtkWidget * gth_metadata_chooser_new (GthMetadataFlags allowed_flags); +GtkWidget * gth_metadata_chooser_new (GthMetadataFlags allowed_flags, + gboolean reorderable); void gth_metadata_chooser_set_selection (GthMetadataChooser *self, char *ids); char * gth_metadata_chooser_get_selection (GthMetadataChooser *self); diff -Nru gthumb-3.8.3/gthumb/gth-metadata-provider.c gthumb-3.9.1/gthumb/gth-metadata-provider.c --- gthumb-3.8.3/gthumb/gth-metadata-provider.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-metadata-provider.c 2020-03-07 19:03:13.523620800 +0000 @@ -183,14 +183,15 @@ G_FILE_ATTRIBUTE_STANDARD_FAST_CONTENT_TYPE, qmd->attributes_v)) { - char *uri; - const char *ext; + char *uri; + char *ext; uri = g_file_get_uri (file_data->file); - ext = _g_uri_get_file_extension (uri); + ext = _g_uri_get_extension (uri); if (g_strcmp0 (ext, ".webp") == 0) gth_file_data_set_mime_type (file_data, "image/webp"); + g_free (ext); g_free (uri); } #endif @@ -435,10 +436,10 @@ qam->ready_func = ready_func; qam->user_data = user_data; - _g_query_info_async (files, - flags, - qam->attributes, - qam->cancellable, - qam_info_ready_cb, - qam); + _g_file_list_query_info_async (files, + flags, + qam->attributes, + qam->cancellable, + qam_info_ready_cb, + qam); } diff -Nru gthumb-3.8.3/gthumb/gth-metadata-provider-file.c gthumb-3.9.1/gthumb/gth-metadata-provider-file.c --- gthumb-3.8.3/gthumb/gth-metadata-provider-file.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-metadata-provider-file.c 2020-03-07 19:03:13.523620800 +0000 @@ -68,7 +68,7 @@ g_file_info_set_attribute_string (file_data->info, "gth::file::full-name", value); g_free (value); - value_s = get_static_string (g_file_info_get_content_type (file_data->info)); + value_s = _g_str_get_static (g_file_info_get_content_type (file_data->info)); if (value_s != NULL) g_file_info_set_attribute_string (file_data->info, "gth::file::content-type", value_s); diff -Nru gthumb-3.8.3/gthumb/gth-monitor.c gthumb-3.9.1/gthumb/gth-monitor.c --- gthumb-3.8.3/gthumb/gth-monitor.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-monitor.c 2020-03-07 19:03:13.523620800 +0000 @@ -33,6 +33,7 @@ enum { ICON_THEME_CHANGED, BOOKMARKS_CHANGED, + SHORTCUTS_CHANGED, FILTERS_CHANGED, TAGS_CHANGED, FOLDER_CONTENT_CHANGED, @@ -106,6 +107,15 @@ g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + monitor_signals[SHORTCUTS_CHANGED] = + g_signal_new ("shortcuts-changed", + G_TYPE_FROM_CLASS (class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GthMonitorClass, shortcuts_changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); monitor_signals[FILTERS_CHANGED] = g_signal_new ("filters-changed", G_TYPE_FROM_CLASS (class), @@ -252,6 +262,17 @@ 0); } + +void +gth_monitor_shortcuts_changed (GthMonitor *self) +{ + g_return_if_fail (GTH_IS_MONITOR (self)); + + g_signal_emit (G_OBJECT (self), + monitor_signals[SHORTCUTS_CHANGED], + 0); +} + void gth_monitor_filters_changed (GthMonitor *self) diff -Nru gthumb-3.8.3/gthumb/gth-monitor.h gthumb-3.9.1/gthumb/gth-monitor.h --- gthumb-3.8.3/gthumb/gth-monitor.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-monitor.h 2020-03-07 19:03:13.523620800 +0000 @@ -61,6 +61,7 @@ void (*icon_theme_changed) (GthMonitor *monitor); void (*bookmarks_changed) (GthMonitor *monitor); + void (*shortcuts_changed) (GthMonitor *monitor); void (*filters_changed) (GthMonitor *monitor); void (*tags_changed) (GthMonitor *monitor); void (*folder_changed) (GthMonitor *monitor, @@ -89,6 +90,7 @@ GFile *file); void gth_monitor_icon_theme_changed (GthMonitor *monitor); void gth_monitor_bookmarks_changed (GthMonitor *monitor); +void gth_monitor_shortcuts_changed (GthMonitor *monitor); void gth_monitor_filters_changed (GthMonitor *monitor); void gth_monitor_tags_changed (GthMonitor *monitor); void gth_monitor_folder_changed (GthMonitor *monitor, diff -Nru gthumb-3.8.3/gthumb/gth-overwrite-dialog.c gthumb-3.9.1/gthumb/gth-overwrite-dialog.c --- gthumb-3.8.3/gthumb/gth-overwrite-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-overwrite-dialog.c 2020-03-07 19:03:13.523620800 +0000 @@ -22,10 +22,10 @@ #include #include #include "glib-utils.h" -#include "gth-image-loader.h" #include "gth-image-viewer.h" #include "gth-metadata-provider.h" #include "gth-overwrite-dialog.h" +#include "gth-thumb-loader.h" #include "gtk-utils.h" @@ -42,8 +42,8 @@ GtkWidget *new_image_viewer; GthFileData *source_data; GthFileData *destination_data; - GthImageLoader *old_image_loader; - GthImageLoader *new_image_loader; + GthThumbLoader *old_image_loader; + GthThumbLoader *new_image_loader; }; @@ -89,38 +89,81 @@ } +typedef struct { + GtkWidget *widget; + GCancellable *cancellable; + guint destroy_id; +} LoadData; + + +static void +load_data_widget_destroy_cb (GtkWidget *widget, + gpointer user_data) +{ + LoadData *load_data = user_data; + g_cancellable_cancel (load_data->cancellable); +} + + +static LoadData * +load_data_new (GtkWidget *widget) +{ + LoadData *load_data; + + load_data = g_new0 (LoadData, 1); + load_data->widget = g_object_ref (widget); + load_data->cancellable = g_cancellable_new (); + load_data->destroy_id = + g_signal_connect (load_data->widget, + "destroy", + G_CALLBACK (load_data_widget_destroy_cb), + load_data); + + return load_data; +} + + +static void +load_data_free (LoadData *data) +{ + g_signal_handler_disconnect (data->widget, data->destroy_id); + g_object_unref (data->cancellable); + g_free (data); +} + + static void image_loader_ready_cb (GObject *source_object, GAsyncResult *result, gpointer user_data) { - GthOverwriteDialog *self = user_data; + LoadData *load_data = user_data; + GthOverwriteDialog *self = GTH_OVERWRITE_DIALOG (load_data->widget); GError *error = NULL; - GthImage *image = NULL; - GdkPixbuf *pixbuf; + cairo_surface_t *image = NULL; GtkWidget *viewer; - if (! gth_image_loader_load_finish (GTH_IMAGE_LOADER (source_object), + if (! gth_thumb_loader_load_finish (GTH_THUMB_LOADER (source_object), result, &image, - NULL, - NULL, - NULL, &error)) { + load_data_free (load_data); return; } - pixbuf = gth_image_get_pixbuf (image); + if (image != NULL) { + if (GTH_THUMB_LOADER (source_object) == self->priv->old_image_loader) + viewer = self->priv->old_image_viewer; + else + viewer = self->priv->new_image_viewer; + gth_image_viewer_set_transparency_style (GTH_IMAGE_VIEWER (viewer), GTH_TRANSPARENCY_STYLE_CHECKERED); + gth_image_viewer_set_surface (GTH_IMAGE_VIEWER (viewer), image, -1, -1); - if (GTH_IMAGE_LOADER (source_object) == self->priv->old_image_loader) - viewer = self->priv->old_image_viewer; - else - viewer = self->priv->new_image_viewer; - gth_image_viewer_set_pixbuf (GTH_IMAGE_VIEWER (viewer), pixbuf, -1, -1); + cairo_surface_destroy (image); + } - g_object_unref (pixbuf); - g_object_unref (image); + load_data_free (load_data); } @@ -129,23 +172,29 @@ GError *error, gpointer user_data) { - GthOverwriteDialog *self = user_data; + LoadData *load_data = user_data; + GthOverwriteDialog *self = GTH_OVERWRITE_DIALOG (load_data->widget); char *text; GTimeVal *timeval; GIcon *icon; GdkPixbuf *pixbuf; + LoadData *old_image_load_data; if (error != NULL) { _gtk_error_dialog_from_gerror_show (GTK_WINDOW (self), _("Cannot read file information"), error); + load_data_free (load_data); return; } /* new image */ if (self->priv->source != NULL) { + LoadData *new_image_load_data; + self->priv->source_data = g_object_ref (files->data); gtk_label_set_text (GTK_LABEL (_gtk_builder_get_widget (self->priv->builder, "new_image_filename_label")), g_file_info_get_display_name (self->priv->source_data->info)); + gtk_widget_set_tooltip_text (_gtk_builder_get_widget (self->priv->builder, "new_image_filename_label"), g_file_info_get_display_name (self->priv->source_data->info)); text = g_format_size (g_file_info_get_size (self->priv->source_data->info)); gtk_label_set_text (GTK_LABEL (_gtk_builder_get_widget (self->priv->builder, "new_image_size_label")), text); @@ -169,13 +218,12 @@ gtk_widget_show (_gtk_builder_get_widget (self->priv->builder, "new_size_label")); gtk_widget_show (_gtk_builder_get_widget (self->priv->builder, "new_modified_label")); - gth_image_loader_load (GTH_IMAGE_LOADER (self->priv->new_image_loader), + new_image_load_data = load_data_new (GTK_WIDGET (self)); + gth_thumb_loader_load (self->priv->new_image_loader, self->priv->source_data, - PREVIEW_SIZE, - G_PRIORITY_DEFAULT, - NULL, /* FIXME: make this cancellable */ + new_image_load_data->cancellable, image_loader_ready_cb, - self); + new_image_load_data); } else if (self->priv->source_image != NULL) { gtk_widget_hide (_gtk_builder_get_widget (self->priv->builder, "new_filename_label")); @@ -192,6 +240,7 @@ self->priv->destination_data = g_object_ref (files->data); gtk_label_set_text (GTK_LABEL (_gtk_builder_get_widget (self->priv->builder, "old_image_filename_label")), g_file_info_get_display_name (self->priv->destination_data->info)); + gtk_widget_set_tooltip_text (_gtk_builder_get_widget (self->priv->builder, "old_image_filename_label"), g_file_info_get_display_name (self->priv->destination_data->info)); text = g_format_size (g_file_info_get_size (self->priv->destination_data->info)); gtk_label_set_text (GTK_LABEL (_gtk_builder_get_widget (self->priv->builder, "old_image_size_label")), text); @@ -213,13 +262,37 @@ g_object_unref (pixbuf); } - gth_image_loader_load (GTH_IMAGE_LOADER (self->priv->old_image_loader), + old_image_load_data = load_data_new (GTK_WIDGET (self)); + gth_thumb_loader_load (self->priv->old_image_loader, self->priv->destination_data, - PREVIEW_SIZE, - G_PRIORITY_DEFAULT, - NULL, /* FIXME: make this cancellable */ + old_image_load_data->cancellable, image_loader_ready_cb, - self); + old_image_load_data); + + load_data_free (load_data); +} + + +static void +_gth_overwrite_dialog_load_file_info (GthOverwriteDialog *self) +{ + LoadData *load_data; + GList *files; + + load_data = load_data_new (GTK_WIDGET (self)); + + files = NULL; + if (self->priv->source != NULL) + files = g_list_append (files, self->priv->source); + files = g_list_append (files, self->priv->destination); + _g_query_all_metadata_async (files, + GTH_LIST_DEFAULT, + "standard::*,time::modified,time::modified-usec,preview::icon", + load_data->cancellable, + info_ready_cb, + load_data); + + g_list_free (files); } @@ -235,13 +308,20 @@ static void +show_cb (GtkWidget *widget, + gpointer user_data) +{ + _gth_overwrite_dialog_load_file_info (GTH_OVERWRITE_DIALOG (user_data)); +} + + +static void gth_overwrite_dialog_construct (GthOverwriteDialog *self, GthOverwriteResponse default_response, gboolean single_file) { GtkWidget *box; GtkWidget *overwrite_radiobutton; - GList *files; gtk_window_set_title (GTK_WINDOW (self), _("Overwrite")); gtk_window_set_resizable (GTK_WINDOW (self), TRUE); @@ -292,12 +372,14 @@ self->priv->old_image_viewer = gth_image_viewer_new (); gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (self->priv->old_image_viewer), GTH_FIT_SIZE_IF_LARGER); gth_image_viewer_hide_frame (GTH_IMAGE_VIEWER (self->priv->old_image_viewer)); + gth_image_viewer_set_transparency_style (GTH_IMAGE_VIEWER (self->priv->old_image_viewer), GTH_TRANSPARENCY_STYLE_GRAY); gtk_widget_show (self->priv->old_image_viewer); gtk_container_add (GTK_CONTAINER (_gtk_builder_get_widget (self->priv->builder, "old_image_frame")), self->priv->old_image_viewer); self->priv->new_image_viewer = gth_image_viewer_new (); gth_image_viewer_set_fit_mode (GTH_IMAGE_VIEWER (self->priv->new_image_viewer), GTH_FIT_SIZE_IF_LARGER); gth_image_viewer_hide_frame (GTH_IMAGE_VIEWER (self->priv->new_image_viewer)); + gth_image_viewer_set_transparency_style (GTH_IMAGE_VIEWER (self->priv->new_image_viewer), GTH_TRANSPARENCY_STYLE_GRAY); gtk_widget_show (self->priv->new_image_viewer); gtk_container_add (GTK_CONTAINER (_gtk_builder_get_widget (self->priv->builder, "new_image_frame")), self->priv->new_image_viewer); @@ -306,21 +388,13 @@ G_CALLBACK (overwrite_rename_radiobutton_toggled_cb), self); - self->priv->old_image_loader = gth_image_loader_new (NULL, NULL); - self->priv->new_image_loader = gth_image_loader_new (NULL, NULL); + self->priv->old_image_loader = gth_thumb_loader_new (PREVIEW_SIZE); + gth_thumb_loader_set_save_thumbnails (self->priv->old_image_loader, FALSE); - files = NULL; - if (self->priv->source != NULL) - files = g_list_append (files, self->priv->source); - files = g_list_append (files, self->priv->destination); - _g_query_all_metadata_async (files, - GTH_LIST_DEFAULT, - "standard::*,time::modified,time::modified-usec,preview::icon", - NULL, - info_ready_cb, - self); + self->priv->new_image_loader = gth_thumb_loader_new (PREVIEW_SIZE); + gth_thumb_loader_set_save_thumbnails (self->priv->new_image_loader, FALSE); - g_list_free (files); + g_signal_connect (self, "show", G_CALLBACK (show_cb), self); } diff -Nru gthumb-3.8.3/gthumb/gth-preferences.c gthumb-3.9.1/gthumb/gth-preferences.c --- gthumb-3.8.3/gthumb/gth-preferences.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-preferences.c 2020-03-07 19:03:13.523620800 +0000 @@ -71,7 +71,7 @@ g_object_unref (file); } if (startup_location == NULL) - startup_location = g_strdup (get_home_uri ()); + startup_location = g_strdup (_g_uri_get_home ()); gth_pref_set_startup_location (startup_location); g_free (startup_location); @@ -122,7 +122,7 @@ if (Preferences->startup_location != NULL) return Preferences->startup_location; else - return get_home_uri (); + return _g_uri_get_home (); } diff -Nru gthumb-3.8.3/gthumb/gth-preferences.h gthumb-3.9.1/gthumb/gth-preferences.h --- gthumb-3.8.3/gthumb/gth-preferences.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-preferences.h 2020-03-07 19:03:13.523620800 +0000 @@ -80,6 +80,8 @@ #define PREF_BROWSER_REUSE_ACTIVE_WINDOW "reuse-active-window" #define PREF_FULLSCREEN_THUMBNAILS_VISIBLE "fullscreen-thumbnails-visible" #define PREF_FULLSCREEN_SIDEBAR "fullscreen-sidebar" +#define PREF_VIEWER_SCROLL_ACTION "scroll-action" +#define PREF_BROWSER_FAVORITE_PROPERTIES "favorite-properties" /* keys: add to catalog */ diff -Nru gthumb-3.8.3/gthumb/gth-progress-dialog.c gthumb-3.9.1/gthumb/gth-progress-dialog.c --- gthumb-3.8.3/gthumb/gth-progress-dialog.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-progress-dialog.c 2020-03-07 19:03:13.523620800 +0000 @@ -215,18 +215,18 @@ gpointer user_data) { GthTaskProgress *self = user_data; - GtkWidget *toplevel; + GtkWindow *toplevel; if (self->pulse_event != 0) { g_source_remove (self->pulse_event); self->pulse_event = 0; } - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (self)); + toplevel = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)); gtk_widget_destroy (GTK_WIDGET (self)); - if (gtk_widget_is_toplevel (toplevel) && GTH_IS_PROGRESS_DIALOG (toplevel)) + if ((toplevel != NULL) && GTH_IS_PROGRESS_DIALOG (toplevel)) gth_progress_dialog_child_removed (GTH_PROGRESS_DIALOG (toplevel)); } diff -Nru gthumb-3.8.3/gthumb/gth-shortcut.c gthumb-3.9.1/gthumb/gth-shortcut.c --- gthumb-3.8.3/gthumb/gth-shortcut.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-shortcut.c 2020-03-07 19:03:13.523620800 +0000 @@ -0,0 +1,345 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 The Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include "dom.h" +#include "gio-utils.h" +#include "glib-utils.h" +#include "gth-shortcut.h" +#include "gth-user-dir.h" + + +GthShortcut * +gth_shortcut_new (const char *action_name, + GVariant *param) +{ + GthShortcut *shortcut; + + g_return_val_if_fail (action_name != NULL, NULL); + + shortcut = g_new (GthShortcut, 1); + shortcut->action_name = g_strdup (action_name); + shortcut->action_parameter = (param != NULL) ? g_variant_ref_sink (param) : NULL; + shortcut->detailed_action = g_action_print_detailed_name (shortcut->action_name, shortcut->action_parameter); + shortcut->description = NULL; + shortcut->context = 0; + shortcut->category = NULL; + shortcut->default_accelerator = NULL; + shortcut->accelerator = NULL; + shortcut->label = NULL; + shortcut->keyval = 0; + shortcut->modifiers = 0; + + return shortcut; +} + + +GthShortcut * +gth_shortcut_dup (const GthShortcut *shortcut) +{ + GthShortcut *new_shortcut; + + new_shortcut = gth_shortcut_new (shortcut->action_name, shortcut->action_parameter); + new_shortcut->description = g_strdup (shortcut->description); + new_shortcut->context = shortcut->context; + new_shortcut->category = shortcut->category; + new_shortcut->default_accelerator = g_strdup (shortcut->default_accelerator); + gth_shortcut_set_accelerator (new_shortcut, shortcut->accelerator); + + return new_shortcut; +} + + +void +gth_shortcut_free (GthShortcut *shortcut) +{ + g_free (shortcut->action_name); + if (shortcut->action_parameter != NULL) + g_variant_unref (shortcut->action_parameter); + g_free (shortcut->detailed_action); + g_free (shortcut->description); + g_free (shortcut->default_accelerator); + g_free (shortcut->accelerator); + g_free (shortcut->label); + g_free (shortcut); +} + + +void +gth_shortcut_set_accelerator (GthShortcut *shortcut, + const char *accelerator) +{ + guint keyval; + GdkModifierType modifiers; + + keyval = 0; + modifiers = 0; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_DOC) == 0) { + if (accelerator != NULL) + gtk_accelerator_parse (accelerator, &keyval, &modifiers); + gth_shortcut_set_key (shortcut, keyval, modifiers); + } + else { + shortcut->keyval = keyval; + shortcut->modifiers = modifiers; + shortcut->accelerator = g_strdup (accelerator); + shortcut->label = g_strdup (accelerator); + } + +} + + +void +gth_shortcut_set_key (GthShortcut *shortcut, + guint keyval, + GdkModifierType modifiers) +{ + g_free (shortcut->accelerator); + g_free (shortcut->label); + + shortcut->keyval = keyval; + shortcut->modifiers = modifiers; + shortcut->accelerator = gtk_accelerator_name (shortcut->keyval, shortcut->modifiers); + shortcut->label = gtk_accelerator_get_label (shortcut->keyval, shortcut->modifiers); +} + + +gboolean +gth_shortcut_customizable (GthShortcut *shortcut) +{ + return ((shortcut->context & GTH_SHORTCUT_CONTEXT_FIXED) == 0) + && ((shortcut->context & GTH_SHORTCUT_CONTEXT_INTERNAL) == 0) + && ((shortcut->context & GTH_SHORTCUT_CONTEXT_DOC) == 0); +} + + +GthShortcut * +gth_shortcut_array_find (GPtrArray *shortcuts_v, + int context, + guint keycode, + GdkModifierType modifiers) +{ + int i; + + if (keycode == 0) + return NULL; + + /* Remove flags not related to the window mode. */ + context = context & GTH_SHORTCUT_CONTEXT_ANY; + keycode = gdk_keyval_to_lower (keycode); + + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + + if (((shortcut->context & context) != 0) + && (shortcut->keyval == keycode) + && (shortcut->modifiers == modifiers)) + { + return shortcut; + } + } + + return NULL; +} + + +GthShortcut * +gth_shortcut_array_find_by_accel (GPtrArray *shortcuts_v, + int context, + const char *accelerator) +{ + int i; + + if (accelerator == NULL) + return NULL; + + /* Remove flags not related to the window mode. */ + context = context & GTH_SHORTCUT_CONTEXT_ANY; + + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + + if (((shortcut->context & context) != 0) + && (g_strcmp0 (shortcut->accelerator, accelerator) == 0)) + { + return shortcut; + } + } + + return NULL; +} + + +GthShortcut * +gth_shortcut_array_find_by_action (GPtrArray *shortcuts_v, + const char *detailed_action) +{ + int i; + + if (detailed_action == NULL) + return NULL; + + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + + if (g_strcmp0 (shortcut->detailed_action, detailed_action) == 0) + return shortcut; + } + + return NULL; +} + + +gboolean +gth_shortcut_valid (guint keycode, + GdkModifierType modifiers) +{ + switch (keycode) { + case GDK_KEY_Escape: + case GDK_KEY_Tab: + return FALSE; + + /* These shortcuts are valid for us but gtk_accelerator_valid + * considers them not valid, hence the are added here + * explicitly. */ + + case GDK_KEY_Left: + case GDK_KEY_Right: + case GDK_KEY_Up: + case GDK_KEY_Down: + case GDK_KEY_KP_Left: + case GDK_KEY_KP_Right: + case GDK_KEY_KP_Up: + case GDK_KEY_KP_Down: + return TRUE; + + default: + return gtk_accelerator_valid (keycode, modifiers); + } + + return FALSE; +} + + +gboolean +gth_shortcuts_write_to_file (GPtrArray *shortcuts_v, + GError **error) +{ + DomDocument *doc; + DomElement *shortcuts; + int i; + char *buffer; + gsize size; + GFile *file; + gboolean result; + + doc = dom_document_new (); + shortcuts = dom_document_create_element (doc, "shortcuts", NULL); + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_INTERNAL) != 0) + continue; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_FIXED) != 0) + continue; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_DOC) != 0) + continue; + + dom_element_append_child (shortcuts, + dom_document_create_element (doc, "shortcut", + "action", shortcut->detailed_action, + "accelerator", shortcut->accelerator, + NULL)); + } + dom_element_append_child (DOM_ELEMENT (doc), shortcuts); + + buffer = dom_document_dump (doc, &size); + file = gth_user_dir_get_file_for_write (GTH_DIR_CONFIG, GTHUMB_DIR, SHORTCUTS_FILE, NULL); + result = _g_file_write (file, FALSE, G_FILE_CREATE_NONE, buffer, size, NULL, error); + + g_object_unref (file); + g_free (buffer); + g_object_unref (doc); + + return result; +} + + +gboolean +gth_shortcuts_load_from_file (GPtrArray *shortcuts_v, + GHashTable *shortcuts, + GError **error) +{ + gboolean success = FALSE; + GFile *file; + void *buffer; + gsize size; + + file = gth_user_dir_get_file_for_write (GTH_DIR_CONFIG, GTHUMB_DIR, SHORTCUTS_FILE, NULL); + if (_g_file_load_in_buffer (file, &buffer, &size, NULL, error)) { + DomDocument *doc; + + doc = dom_document_new (); + if (dom_document_load (doc, buffer, size, error)) { + DomElement *node; + + for (node = DOM_ELEMENT (doc)->first_child; node; node = node->next_sibling) { + if (g_strcmp0 (node->tag_name, "shortcuts") == 0) { + DomElement *shortcut_node; + + for (shortcut_node = node->first_child; shortcut_node; shortcut_node = shortcut_node->next_sibling) { + if (g_strcmp0 (shortcut_node->tag_name, "shortcut") == 0) { + const char *detailed_action; + const char *accelerator; + GthShortcut *shortcut; + + detailed_action = dom_element_get_attribute (shortcut_node, "action"); + accelerator = dom_element_get_attribute (shortcut_node, "accelerator"); + + if (detailed_action == NULL) + continue; + + shortcut = g_hash_table_lookup (shortcuts, detailed_action); + if (shortcut != NULL) + gth_shortcut_set_accelerator (shortcut, accelerator); + } + } + + success = TRUE; + } + } + } + + if (! success && (error != NULL)) + *error = g_error_new_literal (DOM_ERROR, DOM_ERROR_INVALID_FORMAT, _("Invalid file format")); + + g_object_unref (doc); + g_free (buffer); + } + + g_object_unref (file); + + return success; +} diff -Nru gthumb-3.8.3/gthumb/gth-shortcut.h gthumb-3.9.1/gthumb/gth-shortcut.h --- gthumb-3.8.3/gthumb/gth-shortcut.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-shortcut.h 2020-03-07 19:03:13.526954200 +0000 @@ -0,0 +1,88 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_SHORTCUT_H +#define GTH_SHORTCUT_H + +#include + +G_BEGIN_DECLS + +#define GTH_SHORTCUT_CATEGORY_HIDDEN "hidden" +#define GTH_SHORTCUT_CATEGORY_GENERAL "general" +#define GTH_SHORTCUT_CATEGORY_UI "ui" +#define GTH_SHORTCUT_CATEGORY_NAVIGATION "file-navigation" +#define GTH_SHORTCUT_CATEGORY_FILE_MANAGER "file-manager" +#define GTH_SHORTCUT_CATEGORY_VIEWER "file-viewer" + + +typedef struct { + char *id; + char *display_name; + int sort_order; +} GthShortcutCategory; + + +typedef struct { + char *action_name; + char *description; + int context; + char *category; + char *default_accelerator; + char *accelerator; + char *label; + guint keyval; + GdkModifierType modifiers; + GVariant *action_parameter; + char *detailed_action; +} GthShortcut; + + +GthShortcut * gth_shortcut_new (const char *action_name, + GVariant *param); +GthShortcut * gth_shortcut_dup (const GthShortcut *shortcut); +void gth_shortcut_free (GthShortcut *shortcut); +void gth_shortcut_set_key (GthShortcut *shortcut, + guint keyval, + GdkModifierType modifiers); +void gth_shortcut_set_accelerator (GthShortcut *shortcut, + const char *name); +gboolean gth_shortcut_customizable (GthShortcut *shortcut); +GthShortcut * gth_shortcut_array_find (GPtrArray *shortcuts_v, + int context, + guint keycode, + GdkModifierType modifiers); +GthShortcut * gth_shortcut_array_find_by_accel (GPtrArray *shortcuts_v, + int context, + const char *accelerator); +GthShortcut * gth_shortcut_array_find_by_action (GPtrArray *shortcuts_v, + const char *detailed_action); +gboolean gth_shortcut_valid (guint keycode, + GdkModifierType modifiers); +gboolean gth_shortcuts_write_to_file (GPtrArray *shortcuts_v, + GError **error); +gboolean gth_shortcuts_load_from_file (GPtrArray *shortcuts_v, + GHashTable *shortcuts, + GError **error); + +G_END_DECLS + +#endif /* GTH_SHORTCUT_H */ diff -Nru gthumb-3.8.3/gthumb/gth-shortcuts-window.c gthumb-3.9.1/gthumb/gth-shortcuts-window.c --- gthumb-3.8.3/gthumb/gth-shortcuts-window.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-shortcuts-window.c 2020-03-07 19:03:13.526954200 +0000 @@ -0,0 +1,125 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + + +#include +#include +#include "gth-browser.h" +#include "gth-main.h" +#include "gth-shortcuts-window.h" +#include "typedefs.h" + + +typedef struct { + int id; + char *name; + char *title; +} ContextInfo; + + +static ContextInfo contexts[] = { + { GTH_SHORTCUT_CONTEXT_BROWSER, "browser", N_("Browser") }, + { GTH_SHORTCUT_CONTEXT_VIEWER, "viewer", N_("Viewer") }, + { GTH_SHORTCUT_CONTEXT_SLIDESHOW, "slideshow", N_("Presentation") } +}; + + +void +gth_shortcuts_window_new (GthWindow *app_window) +{ + GtkWidget *window; + GPtrArray *shortcuts_v; + int ctx; + + window = g_object_new (GTK_TYPE_SHORTCUTS_WINDOW, + "transient-for", GTK_WINDOW (app_window), + NULL); + + shortcuts_v = gth_window_get_shortcuts_by_category (app_window); + for (ctx = 0; ctx < G_N_ELEMENTS (contexts); ctx++) { + ContextInfo *context = &contexts[ctx]; + GtkWidget *section; + GtkWidget *group; + const char *last_category; + int i; + + section = g_object_new (GTK_TYPE_SHORTCUTS_SECTION, + "section-name", context->name, + "title", _(context->title), + NULL); + gtk_widget_show (section); + gtk_container_add (GTK_CONTAINER (window), section); + + group = NULL; + last_category = NULL; + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut_info = g_ptr_array_index (shortcuts_v, i); + GtkWidget *shortcut; + + if (g_strcmp0 (shortcut_info->category, GTH_SHORTCUT_CATEGORY_HIDDEN) == 0) + continue; + + if ((shortcut_info->context & context->id) == 0) + continue; + + if ((shortcut_info->keyval == 0) && ((shortcut_info->context & GTH_SHORTCUT_CONTEXT_DOC) == 0)) + continue; + + if (g_strcmp0 (shortcut_info->category, last_category) != 0) { + GthShortcutCategory *category_info; + char *title; + + last_category = shortcut_info->category; + + category_info = gth_main_get_shortcut_category (shortcut_info->category); + if ((category_info != NULL) && (category_info->display_name != NULL)) + title = _(category_info->display_name); + else + title = _("Other"); + + group = g_object_new (GTK_TYPE_SHORTCUTS_GROUP, + "title", title, + NULL); + gtk_widget_show (group); + gtk_container_add (GTK_CONTAINER (section), group); + } + + shortcut = g_object_new (GTK_TYPE_SHORTCUTS_SHORTCUT, + "title", _(shortcut_info->description), + "accelerator", shortcut_info->accelerator, + NULL); + gtk_widget_show (shortcut); + gtk_container_add (GTK_CONTAINER (group), shortcut); + } + } + + switch (gth_window_get_current_page (app_window)) { + case GTH_BROWSER_PAGE_BROWSER: + g_object_set (window, "section-name", "browser", NULL); + break; + + case GTH_BROWSER_PAGE_VIEWER: + g_object_set (window, "section-name", "viewer", NULL); + break; + } + + gtk_widget_show (window); +} diff -Nru gthumb-3.8.3/gthumb/gth-shortcuts-window.h gthumb-3.9.1/gthumb/gth-shortcuts-window.h --- gthumb-3.8.3/gthumb/gth-shortcuts-window.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-shortcuts-window.h 2020-03-07 19:03:13.526954200 +0000 @@ -0,0 +1,33 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_SHORTCUTS_WINDOW_H +#define GTH_SHORTCUTS_WINDOW_H + +#include "gth-window.h" + +G_BEGIN_DECLS + +void gth_shortcuts_window_new (GthWindow *window); + +G_END_DECLS + +#endif /* GTH_SHORTCUTS_WINDOW_H */ diff -Nru gthumb-3.8.3/gthumb/gth-source-tree.c gthumb-3.9.1/gthumb/gth-source-tree.c --- gthumb-3.8.3/gthumb/gth-source-tree.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-source-tree.c 1970-01-01 00:00:00.000000000 +0000 @@ -1,386 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -/* - * GThumb - * - * Copyright (C) 2009 Free Software Foundation, Inc. - * - * 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, see . - */ - -#include -#include -#include -#include "glib-utils.h" -#include "gtk-utils.h" -#include "gth-icon-cache.h" -#include "gth-main.h" -#include "gth-preferences.h" -#include "gth-source-tree.h" - - -struct _GthSourceTreePrivate { - GthFileSource *file_source; - gulong monitor_folder_changed_id; - gulong monitor_file_renamed_id; -}; - - -G_DEFINE_TYPE_WITH_CODE (GthSourceTree, - gth_source_tree, - GTH_TYPE_FOLDER_TREE, - G_ADD_PRIVATE (GthSourceTree)) - - -/* -- monitor_event_data -- */ - - -typedef struct { - int ref; - GFile *parent; - GthMonitorEvent event; - GthSourceTree *source_tree; -} MonitorEventData; - - -static MonitorEventData * -monitor_event_data_new (void) -{ - MonitorEventData *monitor_data; - - monitor_data = g_new0 (MonitorEventData, 1); - monitor_data->ref = 1; - - return monitor_data; -} - - -G_GNUC_UNUSED -static MonitorEventData * -monitor_event_data_ref (MonitorEventData *monitor_data) -{ - monitor_data->ref++; - return monitor_data; -} - - -static void -monitor_event_data_unref (MonitorEventData *monitor_data) -{ - monitor_data->ref--; - - if (monitor_data->ref > 0) - return; - - g_object_unref (monitor_data->parent); - g_free (monitor_data); -} - - -/* -- load_data -- */ - - -typedef struct { - GthSourceTree *source_tree; - GFile *folder; - GthFileSource *file_source; -} LoadData; - - -static LoadData * -load_data_new (GthSourceTree *source_tree, - GFile *file) -{ - LoadData *load_data; - - load_data = g_new0 (LoadData, 1); - load_data->source_tree = source_tree; - load_data->file_source = gth_main_get_file_source (file); - load_data->folder = g_file_dup (file); - - return load_data; -} - - -static void -load_data_free (LoadData *load_data) -{ - g_object_unref (load_data->folder); - g_object_unref (load_data->file_source); - g_free (load_data); -} - - -static void -load_data_run (LoadData *load_data, - ListReady func) -{ - GSettings *settings; - - settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); - gth_file_source_list (load_data->file_source, - load_data->folder, - g_settings_get_boolean (settings, PREF_BROWSER_FAST_FILE_TYPE) ? GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE : GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE, - func, - load_data); - - g_object_unref (settings); -} - - -/* -- */ - - -static void -source_tree_children_ready (GthFileSource *file_source, - GList *files, - GError *error, - gpointer data) -{ - LoadData *load_data = data; - GthSourceTree *source_tree = load_data->source_tree; - - if (error != NULL) - g_warning ("%s", error->message); - else - gth_folder_tree_set_children (GTH_FOLDER_TREE (source_tree), load_data->folder, files); - - load_data_free (load_data); -} - - -static void -source_tree_list_children_cb (GthFolderTree *folder_tree, - GFile *file, - GthSourceTree *source_tree) -{ - LoadData *load_data; - - gth_folder_tree_loading_children (folder_tree, file); - - load_data = load_data_new (source_tree, file); - load_data_run (load_data, source_tree_children_ready); -} - - -static void -file_source_rename_ready_cb (GObject *object, - GError *error, - gpointer user_data) -{ - GthSourceTree *source_tree = user_data; - - if (error != NULL) - _gtk_error_dialog_from_gerror_show (GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (source_tree))), _("Could not change name"), error); -} - - -static void -source_tree_rename_cb (GthFolderTree *folder_tree, - GFile *file, - const char *new_name, - GthSourceTree *source_tree) -{ - gth_file_source_rename (source_tree->priv->file_source, file, new_name, file_source_rename_ready_cb, source_tree); -} - - -static void -file_attributes_ready_cb (GthFileSource *file_source, - GList *files, - GError *error, - gpointer user_data) -{ - MonitorEventData *monitor_data = user_data; - GthSourceTree *source_tree = monitor_data->source_tree; - - if (error != NULL) { - g_warning ("%s", error->message); - g_clear_error (&error); - monitor_event_data_unref (monitor_data); - return; - } - - if (monitor_data->event == GTH_MONITOR_EVENT_CREATED) - gth_folder_tree_add_children (GTH_FOLDER_TREE (source_tree), monitor_data->parent, files); - else if (monitor_data->event == GTH_MONITOR_EVENT_CHANGED) - gth_folder_tree_update_children (GTH_FOLDER_TREE (source_tree), monitor_data->parent, files); - - monitor_event_data_unref (monitor_data); -} - - -static void -monitor_folder_changed_cb (GthMonitor *monitor, - GFile *parent, - GList *list, - int position, - GthMonitorEvent event, - GthSourceTree *source_tree) -{ - GtkTreePath *path; - - path = gth_folder_tree_get_path (GTH_FOLDER_TREE (source_tree), parent); - if (g_file_equal (parent, gth_folder_tree_get_root (GTH_FOLDER_TREE (source_tree))) - || ((path != NULL) && gtk_tree_view_row_expanded (GTK_TREE_VIEW (source_tree), path))) - { - MonitorEventData *monitor_data; - GSettings *settings; - - settings = g_settings_new (GTHUMB_BROWSER_SCHEMA); - - switch (event) { - case GTH_MONITOR_EVENT_CREATED: - case GTH_MONITOR_EVENT_CHANGED: - monitor_data = monitor_event_data_new (); - monitor_data->parent = g_file_dup (parent); - monitor_data->event = event; - monitor_data->source_tree = source_tree; - gth_file_source_read_attributes (source_tree->priv->file_source, - list, - g_settings_get_boolean (settings, PREF_BROWSER_FAST_FILE_TYPE) ? GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE : GFILE_STANDARD_ATTRIBUTES_WITH_CONTENT_TYPE, - file_attributes_ready_cb, - monitor_data); - break; - - case GTH_MONITOR_EVENT_DELETED: - case GTH_MONITOR_EVENT_REMOVED: - gth_folder_tree_delete_children (GTH_FOLDER_TREE (source_tree), parent, list); - break; - } - - g_object_unref (settings); - } - - gtk_tree_path_free (path); -} - - -static void -monitor_file_renamed_cb (GthMonitor *monitor, - GFile *file, - GFile *new_file, - GthSourceTree *source_tree) -{ - GFileInfo *info; - GthFileData *file_data; - - info = gth_file_source_get_file_info (source_tree->priv->file_source, new_file, GFILE_BASIC_ATTRIBUTES); - file_data = gth_file_data_new (new_file, info); - gth_folder_tree_update_child (GTH_FOLDER_TREE (source_tree), file, file_data); - - g_object_unref (file_data); - g_object_unref (info); -} - - -static void -gth_source_tree_init (GthSourceTree *source_tree) -{ - source_tree->priv = gth_source_tree_get_instance_private (source_tree); - source_tree->priv->file_source = NULL; - - g_signal_connect (source_tree, - "list_children", - G_CALLBACK (source_tree_list_children_cb), - source_tree); - g_signal_connect (source_tree, - "rename", - G_CALLBACK (source_tree_rename_cb), - source_tree); - - source_tree->priv->monitor_folder_changed_id = - g_signal_connect (gth_main_get_default_monitor (), - "folder-changed", - G_CALLBACK (monitor_folder_changed_cb), - source_tree); - source_tree->priv->monitor_file_renamed_id = - g_signal_connect (gth_main_get_default_monitor (), - "file-renamed", - G_CALLBACK (monitor_file_renamed_cb), - source_tree); -} - - -static void -gth_source_tree_finalize (GObject *object) -{ - GthSourceTree *source_tree = GTH_SOURCE_TREE (object); - - g_signal_handler_disconnect (gth_main_get_default_monitor (), source_tree->priv->monitor_folder_changed_id); - g_signal_handler_disconnect (gth_main_get_default_monitor (), source_tree->priv->monitor_file_renamed_id); - - if (source_tree->priv->file_source != NULL) - g_object_unref (source_tree->priv->file_source); - - G_OBJECT_CLASS (gth_source_tree_parent_class)->finalize (object); -} - - -static void -gth_source_tree_class_init (GthSourceTreeClass *klass) -{ - GObjectClass *gobject_class; - - gobject_class = G_OBJECT_CLASS (klass); - gobject_class->finalize = gth_source_tree_finalize; -} - - -GtkWidget * -gth_source_tree_new (GFile *root) -{ - GtkWidget *source_tree; - - source_tree = g_object_new (GTH_TYPE_SOURCE_TREE, NULL); - gth_source_tree_set_root (GTH_SOURCE_TREE (source_tree), root); - - return source_tree; -} - - -static void -source_tree_file_list_ready (GthFileSource *file_source, - GList *files, - GError *error, - gpointer data) -{ - LoadData *load_data = data; - GthSourceTree *source_tree = load_data->source_tree; - - if (error != NULL) { - g_warning ("%s\n", error->message); - load_data_free (load_data); - return; - } - - gth_folder_tree_set_list (GTH_FOLDER_TREE (source_tree), load_data->folder, files, FALSE); - - load_data_free (load_data); -} - - -void -gth_source_tree_set_root (GthSourceTree *source_tree, - GFile *root) -{ - LoadData *load_data; - - if (source_tree->priv->file_source != NULL) - g_object_unref (source_tree->priv->file_source); - source_tree->priv->file_source = gth_main_get_file_source (root); - - load_data = load_data_new (source_tree, root); - load_data_run (load_data, source_tree_file_list_ready); -} diff -Nru gthumb-3.8.3/gthumb/gth-source-tree.h gthumb-3.9.1/gthumb/gth-source-tree.h --- gthumb-3.8.3/gthumb/gth-source-tree.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-source-tree.h 1970-01-01 00:00:00.000000000 +0000 @@ -1,60 +0,0 @@ -/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ - -/* - * GThumb - * - * Copyright (C) 2009 Free Software Foundation, Inc. - * - * 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, see . - */ - -#ifndef GTH_SOURCE_TREE_H -#define GTH_SOURCE_TREE_H - -#include -#include -#include -#include "gth-file-data.h" -#include "gth-folder-tree.h" - -G_BEGIN_DECLS - -#define GTH_TYPE_SOURCE_TREE (gth_source_tree_get_type ()) -#define GTH_SOURCE_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_SOURCE_TREE, GthSourceTree)) -#define GTH_SOURCE_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTH_TYPE_SOURCE_TREE, GthSourceTreeClass)) -#define GTH_IS_SOURCE_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_SOURCE_TREE)) -#define GTH_IS_SOURCE_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTH_TYPE_SOURCE_TREE)) -#define GTH_SOURCE_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTH_TYPE_SOURCE_TREE, GthSourceTreeClass)) - -typedef struct _GthSourceTree GthSourceTree; -typedef struct _GthSourceTreeClass GthSourceTreeClass; -typedef struct _GthSourceTreePrivate GthSourceTreePrivate; - -struct _GthSourceTree { - GthFolderTree parent_instance; - GthSourceTreePrivate *priv; -}; - -struct _GthSourceTreeClass { - GthFolderTreeClass parent_class; -}; - -GType gth_source_tree_get_type (void); -GtkWidget * gth_source_tree_new (GFile *root); -void gth_source_tree_set_root (GthSourceTree *source_tree, - GFile *root); - -G_END_DECLS - -#endif /* GTH_SOURCE_TREE_H */ diff -Nru gthumb-3.8.3/gthumb/gth-thumb-loader.c gthumb-3.9.1/gthumb/gth-thumb-loader.c --- gthumb-3.8.3/gthumb/gth-thumb-loader.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-thumb-loader.c 2020-03-07 19:03:13.526954200 +0000 @@ -428,7 +428,8 @@ cairo_surface_t *scaled; scaled = _cairo_image_surface_scale (image, new_width, new_height, SCALE_FILTER_GOOD, NULL); - _cairo_image_surface_copy_metadata (image, scaled); + if (scaled != NULL) + _cairo_image_surface_copy_metadata (image, scaled); return scaled; } @@ -513,7 +514,7 @@ cache_dir_1 = g_build_filename (g_get_home_dir (), ".thumbnails", NULL); cache_dir_2 = g_build_filename (g_get_user_cache_dir (), "thumbnails", NULL); - result = _g_uri_parent_of_uri (cache_dir_1, filename) || _g_uri_parent_of_uri (cache_dir_2, filename); + result = _g_path_is_parent (cache_dir_1, filename) || _g_path_is_parent (cache_dir_2, filename); g_free (cache_dir_1); g_free (cache_dir_2); diff -Nru gthumb-3.8.3/gthumb/gth-time.c gthumb-3.9.1/gthumb/gth-time.c --- gthumb-3.8.3/gthumb/gth-time.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-time.c 2020-03-07 19:03:13.526954200 +0000 @@ -348,7 +348,7 @@ struct tm tm; if (gth_datetime_to_struct_tm (dt, &tm)) - return struct_tm_strftime (&tm, format); + return _g_struct_tm_strftime (&tm, format); else return g_strdup (""); } diff -Nru gthumb-3.8.3/gthumb/gth-time-selector.c gthumb-3.9.1/gthumb/gth-time-selector.c --- gthumb-3.8.3/gthumb/gth-time-selector.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-time-selector.c 2020-03-07 19:03:13.526954200 +0000 @@ -292,7 +292,7 @@ char *text; g_date_to_struct_tm (self->priv->date_time->date, &tm); - text = struct_tm_strftime (&tm, "%x"); + text = _g_struct_tm_strftime (&tm, "%x"); gtk_entry_set_text (GTK_ENTRY (self->priv->date_entry), text); if (gth_datetime_valid (self->priv->date_time)) { diff -Nru gthumb-3.8.3/gthumb/gth-trash-task.c gthumb-3.9.1/gthumb/gth-trash-task.c --- gthumb-3.8.3/gthumb/gth-trash-task.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-trash-task.c 2020-03-07 19:03:13.526954200 +0000 @@ -58,18 +58,31 @@ static void +trash_progress_cb (GObject *object, + const char *description, + const char *details, + gboolean pulse, + double fraction, + gpointer user_data) +{ + GthTrashTask *self = user_data; + + gth_task_progress (GTH_TASK (self), description, details, pulse, fraction); +} + + +static void gth_trash_task_exec (GthTask *task) { GthTrashTask *self; self = GTH_TRASH_TASK (task); - gth_task_progress (task, _("Moving files to trash"), NULL, TRUE, 0.0); - - _g_trash_files_async (self->priv->file_list, - gth_task_get_cancellable (task), - trash_ready_cb, - self); + _g_file_list_trash_async (self->priv->file_list, + gth_task_get_cancellable (task), + trash_progress_cb, + trash_ready_cb, + self); } diff -Nru gthumb-3.8.3/gthumb/gthumb.gresource.xml gthumb-3.9.1/gthumb/gthumb.gresource.xml --- gthumb-3.8.3/gthumb/gthumb.gresource.xml 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gthumb.gresource.xml 2020-03-07 19:03:13.526954200 +0000 @@ -1,7 +1,6 @@ - resources/app-menu.ui resources/file-list-menu.ui resources/file-menu.ui resources/folder-menu.ui diff -Nru gthumb-3.8.3/gthumb/gth-uri-list.c gthumb-3.9.1/gthumb/gth-uri-list.c --- gthumb-3.8.3/gthumb/gth-uri-list.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-uri-list.c 2020-03-07 19:03:13.526954200 +0000 @@ -196,7 +196,7 @@ GFile *file; GthFileSource *file_source; GFileInfo *info; - const char *display_name; + char *display_name; GIcon *icon; file = g_file_new_for_uri (uri); @@ -204,12 +204,12 @@ info = gth_file_source_get_file_info (file_source, file, GFILE_DISPLAY_ATTRIBUTES); if (info != NULL) { - display_name = (name != NULL) ? name : g_file_info_get_display_name (info); + display_name = g_strdup ((name != NULL) ? name : g_file_info_get_display_name (info)); icon = _g_object_ref (g_file_info_get_symbolic_icon (info)); } else { - display_name = (name != NULL) ? name : _g_file_get_display_name (file); - icon = _g_file_get_symbolic_icon (file); + display_name = (name != NULL) ? g_strdup (name) : _g_file_get_display_name (file); + icon = g_themed_icon_new ("text-x-generic-symbolic"); } gtk_list_store_set (uri_list->priv->list_store, iter, @@ -219,6 +219,7 @@ -1); _g_object_unref (icon); + g_free (display_name); g_object_unref (file_source); g_object_unref (file); @@ -288,8 +289,8 @@ } else { if (display_name == NULL) - display_name = g_strdup (_g_file_get_display_name (file)); - icon = _g_file_get_symbolic_icon (file); + display_name = _g_file_get_display_name (file); + icon = g_themed_icon_new ("text-x-generic-symbolic"); } gtk_list_store_append (uri_list->priv->list_store, &iter); @@ -299,6 +300,7 @@ URI_LIST_COLUMN_URI, uri, -1); + g_free (display_name); _g_object_unref (icon); g_object_unref (file_source); g_object_unref (file); diff -Nru gthumb-3.8.3/gthumb/gth-vfs-tree.c gthumb-3.9.1/gthumb/gth-vfs-tree.c --- gthumb-3.8.3/gthumb/gth-vfs-tree.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-vfs-tree.c 2020-03-07 19:03:13.526954200 +0000 @@ -0,0 +1,875 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include "glib-utils.h" +#include "gtk-utils.h" +#include "gth-main.h" +#include "gth-vfs-tree.h" + + +enum { + PROP_0, + PROP_SHOW_HIDDEN, + PROP_FOLDER_URI +}; + + +enum { + CHANGED, + LAST_SIGNAL +}; + + +struct _GthVfsTreePrivate { + GFile *folder; + char *folder_uri; + gulong monitor_folder_changed_id; + gulong monitor_file_renamed_id; + gboolean show_hidden; + gboolean tree_root_is_vfs_root; + gboolean root_loaded; +}; + + +static guint gth_vfs_tree_signals[LAST_SIGNAL] = { 0 }; + + +G_DEFINE_TYPE_WITH_CODE (GthVfsTree, + gth_vfs_tree, + GTH_TYPE_FOLDER_TREE, + G_ADD_PRIVATE (GthVfsTree)) + + +/* -- load_data-- */ + + +typedef enum { + LOAD_ACTION_LOAD, + LOAD_ACTION_LIST_CHILDREN +} LoadAction; + + +typedef struct { + GthVfsTree *vfs_tree; + LoadAction action; + GthFileData *requested_folder; + GFile *entry_point; + GthFileSource *file_source; + GCancellable *cancellable; + GList *list; + GList *current; + guint destroy_id; + GFile *last_loaded; + gboolean scroll_to_cell; +} LoadData; + + +static void +load_data_vfs_tree_destroy_cb (GtkWidget *widget, + gpointer user_data) +{ + LoadData *load_data = user_data; + + gth_file_source_cancel (load_data->file_source); + g_cancellable_cancel (load_data->cancellable); + + g_signal_handler_disconnect (load_data->vfs_tree, load_data->destroy_id); + load_data->destroy_id = 0; +} + + +static LoadData * +load_data_new (GthVfsTree *vfs_tree, + LoadAction action, + GFile *location) +{ + LoadData *load_data; + GFile *root; + GFile *file; + + root = gth_folder_tree_get_root (GTH_FOLDER_TREE (vfs_tree)); + + load_data = g_new0 (LoadData, 1); + load_data->vfs_tree = g_object_ref (vfs_tree); + load_data->action = action; + load_data->requested_folder = gth_file_data_new (location, NULL); + if (vfs_tree->priv->tree_root_is_vfs_root && ! g_file_equal (location, root)) + load_data->entry_point = gth_main_get_nearest_entry_point (location); + else + load_data->entry_point = _g_object_ref (root); + load_data->file_source = gth_main_get_file_source (load_data->requested_folder->file); + load_data->cancellable = g_cancellable_new (); + load_data->list = NULL; + load_data->current = NULL; + load_data->destroy_id = + g_signal_connect (load_data->vfs_tree, + "destroy", + G_CALLBACK (load_data_vfs_tree_destroy_cb), + load_data); + load_data->last_loaded = NULL; + + if (load_data->entry_point == NULL) + return load_data; + + file = g_object_ref (load_data->requested_folder->file); + load_data->list = g_list_prepend (NULL, g_object_ref (file)); + while (! g_file_equal (load_data->entry_point, file)) { + GFile *parent; + + parent = g_file_get_parent (file); + g_object_unref (file); + file = parent; + + load_data->list = g_list_prepend (load_data->list, g_object_ref (file)); + } + g_object_unref (file); + + if (vfs_tree->priv->tree_root_is_vfs_root) + load_data->list = g_list_prepend (load_data->list, g_file_new_for_uri ("gthumb-vfs:///")); + + load_data->current = NULL; + + return load_data; +} + + +static void +load_data_free (LoadData *data) +{ + if (data->destroy_id != 0) + g_signal_handler_disconnect (data->vfs_tree, data->destroy_id); + _g_object_unref (data->last_loaded); + _g_object_list_unref (data->list); + g_object_unref (data->cancellable); + _g_object_unref (data->file_source); + _g_object_unref (data->entry_point); + g_object_unref (data->requested_folder); + _g_object_unref (data->vfs_tree); + g_free (data); +} + + +static void load_data_load_next_folder (LoadData *load_data); + + +static GList * +_get_visible_files (GthVfsTree *self, + GList *list) +{ + GList *visible_list = NULL; + GList *scan; + + for (scan = list; scan; scan = scan->next) { + GthFileData *file_data = scan->data; + + if (self->priv->show_hidden || ! g_file_info_get_is_hidden (file_data->info)) + visible_list = g_list_prepend (visible_list, g_object_ref (file_data)); + } + + return g_list_reverse (visible_list); +} + + +static void +select_last_loaded (GthVfsTree *self, + LoadData *load_data) +{ + GtkTreePath *path; + + path = gth_folder_tree_get_path (GTH_FOLDER_TREE (self), load_data->last_loaded); + if (path != NULL) { + gth_folder_tree_select_path (GTH_FOLDER_TREE (self), path); + if (load_data->scroll_to_cell) + gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (self), + path, + NULL, + TRUE, + 0.5, + 0); + gtk_tree_path_free (path); + } + else { + GtkTreeSelection *selection; + + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (self)); + gtk_tree_selection_unselect_all (selection); + } +} + + +static void +load_data_ready_cb (GthFileSource *file_source, + GList *files, + GError *error, + gpointer user_data) +{ + LoadData *load_data = user_data; + GthVfsTree *self = load_data->vfs_tree; + GFile *loaded_folder; + gboolean loaded_root; + gboolean loaded_requested; + GtkTreePath *path; + GList *visible_files; + + if (error != NULL) { + select_last_loaded (self, load_data); + load_data_free (load_data); + return; + } + + loaded_folder = (GFile *) load_data->current->data; + loaded_root = gth_folder_tree_is_root (GTH_FOLDER_TREE (self), loaded_folder); + loaded_requested = g_file_equal (loaded_folder, load_data->requested_folder->file); + if (loaded_root) + self->priv->root_loaded = TRUE; + + path = gth_folder_tree_get_path (GTH_FOLDER_TREE (self), loaded_folder); + if ((path == NULL) && ! loaded_root) { + select_last_loaded (self, load_data); + load_data_free (load_data); + return; + } + + visible_files = _get_visible_files (self, files); + gth_folder_tree_set_children (GTH_FOLDER_TREE (self), + loaded_folder, + visible_files); + + if (path != NULL) + gth_folder_tree_expand_row (GTH_FOLDER_TREE (self), path, FALSE); + + _g_object_unref (load_data->last_loaded); + load_data->last_loaded = _g_object_ref (loaded_folder); + + if (! loaded_requested) { + load_data_load_next_folder (load_data); + } + else { + select_last_loaded (self, load_data); + + if (load_data->action == LOAD_ACTION_LOAD) { + _g_object_unref (self->priv->folder); + self->priv->folder = g_object_ref (loaded_folder); + + g_signal_emit (self, gth_vfs_tree_signals[CHANGED], 0); + } + + load_data_free (load_data); + } + + _g_object_list_unref (visible_files); + if (path != NULL) + gtk_tree_path_free (path); +} + + +static gboolean +folder_is_vfs_root (GFile *folder) +{ + char *uri; + gboolean result; + + uri = g_file_get_uri (folder); + result = g_strcmp0 (uri, "gthumb-vfs:///") == 0; + + g_free (uri); + + return result; +} + + +static void +load_data_load_next_folder (LoadData *load_data) +{ + GthFolderTree *folder_tree = GTH_FOLDER_TREE (load_data->vfs_tree); + GFile *folder_to_load = NULL; + + do { + GtkTreePath *path; + gboolean is_root; + gboolean is_loaded; + + if (load_data->current == NULL) + load_data->current = load_data->list; + else + load_data->current = load_data->current->next; + folder_to_load = (GFile *) load_data->current->data; + + if (g_file_equal (folder_to_load, load_data->requested_folder->file)) + break; + + is_root = gth_folder_tree_is_root (GTH_FOLDER_TREE (folder_tree), folder_to_load); + path = gth_folder_tree_get_path (folder_tree, folder_to_load); + if ((path == NULL) && ! is_root) + break; + + is_loaded = is_root ? load_data->vfs_tree->priv->root_loaded : gth_folder_tree_is_loaded (folder_tree, path); + if (! is_loaded) { + gtk_tree_path_free (path); + break; + } + + if (path != NULL) { + if (gth_folder_tree_has_no_child (folder_tree, path)) { + folder_to_load = NULL; + gtk_tree_path_free (path); + break; + } + + gth_folder_tree_expand_row (folder_tree, path, FALSE); + + gtk_tree_path_free (path); + } + } + while (TRUE); + + if (folder_to_load == NULL) { + load_data_free (load_data); + return; + } + + gth_folder_tree_loading_children (folder_tree, folder_to_load); + + if (folder_is_vfs_root (folder_to_load)) { + GList *entry_points; + + entry_points = gth_main_get_all_entry_points (); + load_data_ready_cb (NULL, entry_points, NULL, load_data); + + _g_object_list_unref (entry_points); + } + else + gth_file_source_list (load_data->file_source, + folder_to_load, + GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE, + load_data_ready_cb, + load_data); +} + + +static void +_gth_vfs_tree_load_folder (GthVfsTree *self, + LoadAction action, + GFile *folder, + gboolean scroll_to_cell); + + +static void +mount_volume_ready_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + LoadData *load_data = user_data; + GError *error = NULL; + + if (! g_file_mount_enclosing_volume_finish (G_FILE (source_object), result, &error)) { + GthVfsTree *self = load_data->vfs_tree; + char *title; + + title = _g_format_str_for_file (_("Could not load the position “%s”"), + load_data->requested_folder->file); + _gtk_error_dialog_from_gerror_show (_gtk_widget_get_toplevel_if_window (GTK_WIDGET (self)), + title, + error); + + g_free (title); + load_data_free (load_data); + return; + } + + /* update the entry points list */ + + gth_monitor_entry_points_changed (gth_main_get_default_monitor()); + + /* try to load again */ + + _gth_vfs_tree_load_folder (load_data->vfs_tree, + load_data->action, + load_data->requested_folder->file, + load_data->scroll_to_cell); + + load_data_free (load_data); +} + + +static void +_gth_vfs_tree_load_folder (GthVfsTree *self, + LoadAction action, + GFile *folder, + gboolean scroll_to_cell) +{ + LoadData *load_data; + + load_data = load_data_new (self, action, folder); + load_data->scroll_to_cell = scroll_to_cell; + + if (load_data->entry_point == NULL) { + if (self->priv->folder != NULL) { + GMountOperation *mount_op; + + /* try to mount the enclosing volume */ + + mount_op = gtk_mount_operation_new (_gtk_widget_get_toplevel_if_window (GTK_WIDGET (self))); + g_file_mount_enclosing_volume (folder, + 0, + mount_op, + load_data->cancellable, + mount_volume_ready_cb, + load_data); + + g_object_unref (mount_op); + } + else { + GFile *root = gth_folder_tree_get_root (GTH_FOLDER_TREE (self)); + if (! _g_file_equal (load_data->requested_folder->file, root)) + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LIST_CHILDREN, root, scroll_to_cell); + } + return; + } + + load_data_load_next_folder (load_data); +} + + +static void +vfs_tree_list_children_cb (GthFolderTree *folder_tree, + GFile *file, + gpointer user_data) +{ + GthVfsTree *self = user_data; + GtkTreePath *path; + + path = gth_folder_tree_get_path (GTH_FOLDER_TREE (self), file); + if (path == NULL) + return; + + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LIST_CHILDREN, file, FALSE); + + gtk_tree_path_free (path); +} + + +static void +vfs_tree_open_cb (GthFolderTree *folder_tree, + GFile *file, + gpointer user_data) +{ + GthVfsTree *self = user_data; + GtkTreePath *path; + + path = gth_folder_tree_get_path (GTH_FOLDER_TREE (self), file); + if (path == NULL) + return; + + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LOAD, file, FALSE); + + gtk_tree_path_free (path); +} + + +/* -- monitor_event_data -- */ + + +typedef struct { + int ref; + GthVfsTree *vfs_tree; + GFile *parent; + GthMonitorEvent event; + GthFileSource *file_source; + guint destroy_id; +} MonitorEventData; + + +static void +monitor_data_vfs_tree_destroy_cb (GtkWidget *widget, + gpointer user_data) +{ + MonitorEventData *monitor_data = user_data; + + gth_file_source_cancel (monitor_data->file_source); + g_signal_handler_disconnect (monitor_data->vfs_tree, monitor_data->destroy_id); + monitor_data->destroy_id = 0; +} + + +static MonitorEventData * +monitor_event_data_new (GthVfsTree *vfs_tree) +{ + MonitorEventData *monitor_data; + + monitor_data = g_new0 (MonitorEventData, 1); + monitor_data->ref = 1; + monitor_data->vfs_tree = _g_object_ref (vfs_tree); + monitor_data->parent = NULL; + monitor_data->file_source = NULL; + monitor_data->destroy_id = + g_signal_connect (monitor_data->vfs_tree, + "destroy", + G_CALLBACK (monitor_data_vfs_tree_destroy_cb), + monitor_data); + + return monitor_data; +} + + +G_GNUC_UNUSED +static MonitorEventData * +monitor_event_data_ref (MonitorEventData *monitor_data) +{ + monitor_data->ref++; + return monitor_data; +} + + +static void +monitor_event_data_unref (MonitorEventData *monitor_data) +{ + monitor_data->ref--; + + if (monitor_data->ref > 0) + return; + + if (monitor_data->destroy_id != 0) + g_signal_handler_disconnect (monitor_data->vfs_tree, monitor_data->destroy_id); + _g_object_unref (monitor_data->vfs_tree); + _g_object_unref (monitor_data->parent); + _g_object_unref (monitor_data->file_source); + g_free (monitor_data); +} + + +static void +file_attributes_ready_cb (GthFileSource *file_source, + GList *files, + GError *error, + gpointer user_data) +{ + MonitorEventData *monitor_data = user_data; + GthVfsTree *self = monitor_data->vfs_tree; + + if (error != NULL) { + g_warning ("%s", error->message); + g_clear_error (&error); + monitor_event_data_unref (monitor_data); + return; + } + + if (monitor_data->event == GTH_MONITOR_EVENT_CREATED) + gth_folder_tree_add_children (GTH_FOLDER_TREE (self), monitor_data->parent, files); + else if (monitor_data->event == GTH_MONITOR_EVENT_CHANGED) + gth_folder_tree_update_children (GTH_FOLDER_TREE (self), monitor_data->parent, files); + + monitor_event_data_unref (monitor_data); +} + + +static void +monitor_folder_changed_cb (GthMonitor *monitor, + GFile *parent, + GList *list, + int position, + GthMonitorEvent event, + GthVfsTree *self) +{ + GtkTreePath *path; + + path = gth_folder_tree_get_path (GTH_FOLDER_TREE (self), parent); + if (gth_folder_tree_is_root (GTH_FOLDER_TREE (self), parent) + || ((path != NULL) && gtk_tree_view_row_expanded (GTK_TREE_VIEW (self), path))) + { + MonitorEventData *monitor_data; + + switch (event) { + case GTH_MONITOR_EVENT_CREATED: + case GTH_MONITOR_EVENT_CHANGED: + monitor_data = monitor_event_data_new (self); + monitor_data->parent = g_file_dup (parent); + monitor_data->event = event; + monitor_data->file_source = gth_main_get_file_source (monitor_data->parent); + gth_file_source_read_attributes (monitor_data->file_source, + list, + GFILE_STANDARD_ATTRIBUTES_WITH_FAST_CONTENT_TYPE, + file_attributes_ready_cb, + monitor_data); + break; + + case GTH_MONITOR_EVENT_DELETED: + case GTH_MONITOR_EVENT_REMOVED: + gth_folder_tree_delete_children (GTH_FOLDER_TREE (self), parent, list); + break; + } + } + + gtk_tree_path_free (path); +} + + +static void +monitor_file_renamed_cb (GthMonitor *monitor, + GFile *file, + GFile *new_file, + GthVfsTree *self) +{ + GthFileSource *file_source; + + file_source = gth_main_get_file_source (new_file); + if (file_source != NULL) { + GFileInfo *info; + + info = gth_file_source_get_file_info (file_source, new_file, GFILE_BASIC_ATTRIBUTES); + if (info != NULL) { + GthFileData *file_data; + + file_data = gth_file_data_new (new_file, info); + gth_folder_tree_update_child (GTH_FOLDER_TREE (self), file, file_data); + + g_object_unref (file_data); + } + + _g_object_unref (info); + } + + _g_object_unref (file_source); +} + + +static void +vfs_tree_realize_cb (GtkWidget *widget, + gpointer user_data) +{ + GthVfsTree *self = GTH_VFS_TREE (widget); + GFile *root; + + root = gth_folder_tree_get_root (GTH_FOLDER_TREE (self)); + self->priv->tree_root_is_vfs_root = folder_is_vfs_root (root); + + if ((self->priv->folder_uri != NULL) && (self->priv->folder_uri[0] != 0)) { + GFile *folder; + + folder = g_file_new_for_uri (self->priv->folder_uri); + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LOAD, folder, TRUE); + + g_object_unref (folder); + } + else + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LIST_CHILDREN, root, TRUE); +} + + +static void +gth_vfs_tree_init (GthVfsTree *self) +{ + self->priv = gth_vfs_tree_get_instance_private (self); + self->priv->folder = NULL; + self->priv->folder_uri = NULL; + self->priv->root_loaded = FALSE; + + g_signal_connect (self, + "list_children", + G_CALLBACK (vfs_tree_list_children_cb), + self); + g_signal_connect (self, + "open", + G_CALLBACK (vfs_tree_open_cb), + self); + g_signal_connect (self, + "realize", + G_CALLBACK (vfs_tree_realize_cb), + self); + + self->priv->monitor_folder_changed_id = + g_signal_connect (gth_main_get_default_monitor (), + "folder-changed", + G_CALLBACK (monitor_folder_changed_cb), + self); + self->priv->monitor_file_renamed_id = + g_signal_connect (gth_main_get_default_monitor (), + "file-renamed", + G_CALLBACK (monitor_file_renamed_cb), + self); +} + + +static void +gth_vfs_tree_set_property (GObject *object, + guint property_id, + const GValue *value, + GParamSpec *pspec) +{ + GthVfsTree *self; + + self = GTH_VFS_TREE (object); + + switch (property_id) { + case PROP_SHOW_HIDDEN: + self->priv->show_hidden = g_value_get_boolean (value); + break; + + case PROP_FOLDER_URI: + g_free (self->priv->folder_uri); + self->priv->folder_uri = g_value_dup_string (value); + break; + + default: + break; + } +} + + +static void +gth_vfs_tree_get_property (GObject *object, + guint property_id, + GValue *value, + GParamSpec *pspec) +{ + GthVfsTree *self; + + self = GTH_VFS_TREE (object); + + switch (property_id) { + case PROP_SHOW_HIDDEN: + g_value_set_boolean (value, self->priv->show_hidden); + break; + + case PROP_FOLDER_URI: + g_value_set_string (value, self->priv->folder_uri); + break; + + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); + break; + } +} + + +static void +gth_vfs_tree_finalize (GObject *object) +{ + GthVfsTree *self = GTH_VFS_TREE (object); + + g_signal_handler_disconnect (gth_main_get_default_monitor (), self->priv->monitor_folder_changed_id); + g_signal_handler_disconnect (gth_main_get_default_monitor (), self->priv->monitor_file_renamed_id); + _g_object_unref (self->priv->folder); + g_free (self->priv->folder_uri); + + G_OBJECT_CLASS (gth_vfs_tree_parent_class)->finalize (object); +} + + +static void +gth_vfs_tree_class_init (GthVfsTreeClass *klass) +{ + GObjectClass *gobject_class; + + gobject_class = G_OBJECT_CLASS (klass); + gobject_class->set_property = gth_vfs_tree_set_property; + gobject_class->get_property = gth_vfs_tree_get_property; + gobject_class->finalize = gth_vfs_tree_finalize; + + /* signals */ + + gth_vfs_tree_signals[CHANGED] = + g_signal_new ("changed", + G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GthVfsTreeClass, changed), + NULL, NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); + + /* properties */ + + g_object_class_install_property (gobject_class, + PROP_SHOW_HIDDEN, + g_param_spec_boolean ("show-hidden", + "Show Hidden", + "Show hidden folders", + FALSE, + G_PARAM_READWRITE)); + + g_object_class_install_property (gobject_class, + PROP_FOLDER_URI, + g_param_spec_string ("folder-uri", + "Folder", + "Folder to load", + NULL, + G_PARAM_READWRITE)); + +} + + +GtkWidget * +gth_vfs_tree_new (const char *root, + const char *folder) +{ + return g_object_new (GTH_TYPE_VFS_TREE, + "root-uri", root, + "folder-uri", folder, + NULL); +} + + +void +gth_vfs_tree_set_folder (GthVfsTree *self, + GFile *folder) +{ + g_return_if_fail (GTH_IS_VFS_TREE (self)); + g_return_if_fail (folder != NULL); + + if (! gtk_widget_get_realized (GTK_WIDGET (self))) { + g_free (self->priv->folder_uri); + self->priv->folder_uri = g_file_get_uri (folder); + } + else + _gth_vfs_tree_load_folder (self, LOAD_ACTION_LOAD, folder, TRUE); +} + + +GFile * +gth_vfs_tree_get_folder (GthVfsTree *self) +{ + g_return_val_if_fail (GTH_IS_VFS_TREE (self), NULL); + return self->priv->folder; +} + + +void +gth_vfs_tree_set_show_hidden (GthVfsTree *self, + gboolean show_hidden) +{ + g_return_if_fail (GTH_IS_VFS_TREE (self)); + + g_object_set (self, "show-hidden", show_hidden, FALSE, NULL); + gth_vfs_tree_set_folder (self, self->priv->folder); +} + + +gboolean +gth_vfs_tree_get_show_hidden (GthVfsTree *self) +{ + g_return_val_if_fail (GTH_IS_VFS_TREE (self), FALSE); + + return self->priv->show_hidden; +} diff -Nru gthumb-3.8.3/gthumb/gth-vfs-tree.h gthumb-3.9.1/gthumb/gth-vfs-tree.h --- gthumb-3.8.3/gthumb/gth-vfs-tree.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-vfs-tree.h 2020-03-07 19:03:13.526954200 +0000 @@ -0,0 +1,68 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef GTH_VFS_TREE_H +#define GTH_VFS_TREE_H + +#include +#include +#include +#include "gth-folder-tree.h" + +G_BEGIN_DECLS + +#define GTH_TYPE_VFS_TREE (gth_vfs_tree_get_type ()) +#define GTH_VFS_TREE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTH_TYPE_VFS_TREE, GthVfsTree)) +#define GTH_VFS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTH_TYPE_VFS_TREE, GthVfsTreeClass)) +#define GTH_IS_VFS_TREE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTH_TYPE_VFS_TREE)) +#define GTH_IS_VFS_TREE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTH_TYPE_VFS_TREE)) +#define GTH_VFS_TREE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTH_TYPE_VFS_TREE, GthVfsTreeClass)) + +typedef struct _GthVfsTree GthVfsTree; +typedef struct _GthVfsTreeClass GthVfsTreeClass; +typedef struct _GthVfsTreePrivate GthVfsTreePrivate; + +struct _GthVfsTree { + GthFolderTree parent_instance; + GthVfsTreePrivate *priv; +}; + +struct _GthVfsTreeClass { + GthFolderTreeClass parent_class; + + /* -- signals -- */ + + void (*changed) (GthVfsTree *vfs_tree); +}; + +GType gth_vfs_tree_get_type (void); +GtkWidget * gth_vfs_tree_new (const char *root, + const char *folder); +void gth_vfs_tree_set_folder (GthVfsTree *vfs_tree, + GFile *folder); +GFile * gth_vfs_tree_get_folder (GthVfsTree *vfs_tree); +void gth_vfs_tree_set_show_hidden (GthVfsTree *self, + gboolean show_hidden); +gboolean gth_vfs_tree_get_show_hidden (GthVfsTree *self); + +G_END_DECLS + +#endif /* GTH_VFS_TREE_H */ diff -Nru gthumb-3.8.3/gthumb/gth-viewer-page.c gthumb-3.9.1/gthumb/gth-viewer-page.c --- gthumb-3.8.3/gthumb/gth-viewer-page.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-viewer-page.c 2020-03-07 19:03:13.526954200 +0000 @@ -191,6 +191,17 @@ } +gboolean +gth_viewer_page_zoom_from_scroll (GthViewerPage *self, + GdkEventScroll *event) +{ + if (GTH_VIEWER_PAGE_GET_INTERFACE (self)->zoom_from_scroll != NULL) + return GTH_VIEWER_PAGE_GET_INTERFACE (self)->zoom_from_scroll (self, event); + else + return FALSE; +} + + void gth_viewer_page_file_loaded (GthViewerPage *self, GthFileData *file_data, diff -Nru gthumb-3.8.3/gthumb/gth-viewer-page.h gthumb-3.9.1/gthumb/gth-viewer-page.h --- gthumb-3.8.3/gthumb/gth-viewer-page.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-viewer-page.h 2020-03-07 19:03:13.526954200 +0000 @@ -24,6 +24,7 @@ #include #include "gth-file-data.h" +#include "typedefs.h" G_BEGIN_DECLS @@ -75,6 +76,8 @@ GthFileData *file_data); void (*show_properties) (GthViewerPage *self, gboolean show); + gboolean (*zoom_from_scroll) (GthViewerPage *self, + GdkEventScroll *event); /*< signals >*/ @@ -112,6 +115,8 @@ GthFileData *file_data); void gth_viewer_page_show_properties (GthViewerPage *self, gboolean show); +gboolean gth_viewer_page_zoom_from_scroll (GthViewerPage *self, + GdkEventScroll *event); void gth_viewer_page_file_loaded (GthViewerPage *self, GthFileData *file_data, GFileInfo *updated_metadata, diff -Nru gthumb-3.8.3/gthumb/gth-window.c gthumb-3.9.1/gthumb/gth-window.c --- gthumb-3.8.3/gthumb/gth-window.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-window.c 2020-03-07 19:03:13.526954200 +0000 @@ -21,6 +21,8 @@ #include #include +#include "glib-utils.h" +#include "gth-main.h" #include "gth-window.h" #include "gth-window-title.h" #include "gtk-utils.h" @@ -54,6 +56,9 @@ GthWindowSize *window_size; GtkWindowGroup *window_group; GtkAccelGroup *accel_group; + GHashTable *shortcuts; + GPtrArray *shortcuts_v; + GHashTable *shortcut_groups; }; @@ -249,6 +254,9 @@ g_free (window->priv->window_size); g_object_unref (window->priv->window_group); g_object_unref (window->priv->accel_group); + g_hash_table_unref (window->priv->shortcuts); + g_ptr_array_unref (window->priv->shortcuts_v); + g_hash_table_unref (window->priv->shortcut_groups); G_OBJECT_CLASS (gth_window_parent_class)->finalize (object); } @@ -399,6 +407,11 @@ window->priv->accel_group = gtk_accel_group_new (); gtk_window_add_accel_group (GTK_WINDOW (window), window->priv->accel_group); + window->priv->shortcuts = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + window->priv->shortcuts_v = g_ptr_array_new_with_free_func ((GDestroyNotify) gth_shortcut_free); + + window->priv->shortcut_groups = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, (GDestroyNotify) g_ptr_array_unref); + gtk_window_set_application (GTK_WINDOW (window), Main_Application); } @@ -692,6 +705,26 @@ } +static void +_gth_window_add_shortcut (GthWindow *window, + GthShortcut *shortcut) +{ + g_ptr_array_add (window->priv->shortcuts_v, shortcut); + g_hash_table_insert (window->priv->shortcuts, + g_strdup (shortcut->detailed_action), + shortcut); +} + + +static void +_gth_window_remove_shortcut (GthWindow *window, + GthShortcut *shortcut) +{ + g_hash_table_remove (window->priv->shortcuts, shortcut->detailed_action); + g_ptr_array_remove (window->priv->shortcuts_v, shortcut); +} + + void gth_window_add_accelerators (GthWindow *window, const GthAccelerator *accelerators, @@ -703,12 +736,19 @@ accel_group = gth_window_get_accel_group (window); for (i = 0; i < n_accelerators; i++) { const GthAccelerator *acc = accelerators + i; + GthShortcut *shortcut; _gtk_window_add_accelerator_for_action (GTK_WINDOW (window), accel_group, acc->action_name, acc->accelerator, NULL); + + shortcut = gth_shortcut_new (acc->action_name, NULL); + shortcut->context = GTH_SHORTCUT_CONTEXT_INTERNAL | GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER; + shortcut->category = GTH_SHORTCUT_CATEGORY_HIDDEN; + gth_shortcut_set_accelerator (shortcut, acc->accelerator); + _gth_window_add_shortcut (window, shortcut); } } @@ -765,3 +805,286 @@ g_variant_unref (old_state); g_variant_unref (new_state); } + + +void +gth_window_add_shortcuts (GthWindow *window, + const GthShortcut *shortcuts, + int n_shortcuts) +{ + int i; + + for (i = 0; i < n_shortcuts; i++) { + const GthShortcut *shortcut = shortcuts + i; + GthShortcut *new_shortcut; + + new_shortcut = gth_shortcut_dup (shortcut); + gth_shortcut_set_accelerator (new_shortcut, shortcut->default_accelerator); + + _gth_window_add_shortcut (window, new_shortcut); + } +} + + +GPtrArray * +gth_window_get_shortcuts (GthWindow *window) +{ + g_return_val_if_fail (GTH_IS_WINDOW (window), NULL); + + return window->priv->shortcuts_v; +} + + +GthShortcut * +gth_window_get_shortcut (GthWindow *window, + const char *detailed_action) +{ + g_return_val_if_fail (GTH_IS_WINDOW (window), NULL); + + return g_hash_table_lookup (window->priv->shortcuts, detailed_action); +} + + +static int +sort_shortcuts_by_category (gconstpointer a, + gconstpointer b) +{ + const GthShortcut *sa = * (GthShortcut **) a; + const GthShortcut *sb = * (GthShortcut **) b; + int result; + GthShortcutCategory *cat_a; + GthShortcutCategory *cat_b; + + result = 0; + cat_a = gth_main_get_shortcut_category (sa->category); + cat_b = gth_main_get_shortcut_category (sb->category); + if ((cat_a != NULL) && (cat_b != NULL)) { + if (cat_a->sort_order < cat_b->sort_order) + result = -1; + else if (cat_a->sort_order > cat_b->sort_order) + result = 1; + } + if (result == 0) + result = g_strcmp0 (sa->description, sb->description); + + return result; +} + + +GPtrArray * +gth_window_get_shortcuts_by_category (GthWindow *window) +{ + g_return_val_if_fail (GTH_IS_WINDOW (window), NULL); + + g_ptr_array_sort (window->priv->shortcuts_v, sort_shortcuts_by_category); + return window->priv->shortcuts_v; +} + + +gboolean +gth_window_activate_shortcut (GthWindow *window, + int context, + guint keycode, + GdkModifierType modifiers) +{ + gboolean activated = FALSE; + GthShortcut *shortcut; + + modifiers = modifiers & gtk_accelerator_get_default_mod_mask (); + shortcut = gth_shortcut_array_find (window->priv->shortcuts_v, context, keycode, modifiers); + if (shortcut != NULL) { + GAction *action; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_INTERNAL) != 0) + return FALSE; + + if ((shortcut->context & GTH_SHORTCUT_CONTEXT_DOC) != 0) + return FALSE; + + action = g_action_map_lookup_action (G_ACTION_MAP (window), shortcut->action_name); + if (action != NULL) { + g_action_activate (action, shortcut->action_parameter); + activated = TRUE; + } + } + + return activated; +} + + +void +gth_window_load_shortcuts (GthWindow *window) +{ + g_return_if_fail (GTH_IS_WINDOW (window)); + + gth_shortcuts_load_from_file (window->priv->shortcuts_v, + window->priv->shortcuts, + NULL); +} + + +void +gth_window_add_removable_shortcut (GthWindow *window, + const char *group_name, + GthShortcut *shortcut) +{ + GPtrArray *shortcuts_v; + GthShortcut *old_shortcut; + GthShortcut *new_shortcut; + + g_return_if_fail (GTH_IS_WINDOW (window)); + g_return_if_fail (group_name != NULL); + g_return_if_fail (shortcut != NULL); + g_return_if_fail (shortcut->detailed_action != NULL); + + /* create the group if it doesn't exist. */ + + shortcuts_v = g_hash_table_lookup (window->priv->shortcut_groups, group_name); + if (shortcuts_v == NULL) { + shortcuts_v = g_ptr_array_new (); + g_hash_table_insert (window->priv->shortcut_groups, + g_strdup (group_name), + shortcuts_v); + } + + /* remove the old shortcut */ + + old_shortcut = g_hash_table_lookup (window->priv->shortcuts, shortcut->detailed_action); + if (old_shortcut != NULL) { + g_ptr_array_remove (shortcuts_v, old_shortcut); + _gth_window_remove_shortcut (window, old_shortcut); + } + + /* add the new shortcut */ + + new_shortcut = gth_shortcut_dup (shortcut); + _gth_window_add_shortcut (window, new_shortcut); + g_ptr_array_add (shortcuts_v, new_shortcut); +} + + +void +gth_window_remove_shortcuts (GthWindow *window, + const char *group_name) +{ + GPtrArray *shortcuts_v; + int i; + + g_return_if_fail (GTH_IS_WINDOW (window)); + g_return_if_fail (group_name != NULL); + + shortcuts_v = g_hash_table_lookup (window->priv->shortcut_groups, group_name); + if (shortcuts_v == NULL) + return; + + for (i = 0; i < shortcuts_v->len; i++) { + GthShortcut *shortcut = g_ptr_array_index (shortcuts_v, i); + _gth_window_remove_shortcut (window, shortcut); + } + + g_hash_table_remove (window->priv->shortcut_groups, group_name); +} + + +gboolean +gth_window_can_change_shortcut (GthWindow *window, + const char *detailed_action, + int context, + guint keycode, + GdkModifierType modifiers, + GtkWindow *parent) +{ + GthShortcut *shortcut; + + if (window == NULL) + return TRUE; + + shortcut = gth_shortcut_array_find (gth_window_get_shortcuts (window ), + context, + keycode, + modifiers); + + if (shortcut == NULL) + return TRUE; + + if (g_strcmp0 (shortcut->detailed_action, detailed_action) == 0) + return FALSE; + + if (gth_shortcut_customizable (shortcut)) { + char *label; + char *msg; + GtkWidget *dialog; + gboolean reassign; + + label = gtk_accelerator_get_label (keycode, modifiers); + msg = g_strdup_printf (_("The key combination «%s» is already assigned to the action «%s». Do you want to reassign it to this action instead?"), + label, + shortcut->description); + + dialog = _gtk_yesno_dialog_new (parent, + GTK_DIALOG_MODAL, + msg, + _GTK_LABEL_CANCEL, + _("Reassign")); + + reassign = gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_YES; + gtk_widget_destroy (GTK_WIDGET (dialog)); + + g_free (msg); + g_free (label); + + if (! reassign) + return FALSE; + } + else { + char *label; + char *msg; + GtkWidget *dialog; + + label = gtk_accelerator_get_label (keycode, modifiers); + if (shortcut->description != NULL) + msg = g_strdup_printf (_("The key combination «%s» is already assigned to the action «%s» and cannot be changed."), + label, + shortcut->description); + else + msg = g_strdup_printf (_("The key combination «%s» is already assigned and cannot be changed."), + label); + + dialog = _gtk_message_dialog_new (parent, + GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, + _GTK_ICON_NAME_DIALOG_ERROR, + NULL, + msg, + _GTK_LABEL_OK, GTK_RESPONSE_OK, + NULL); + gtk_dialog_run (GTK_DIALOG (dialog)); + gtk_widget_destroy (GTK_WIDGET (dialog)); + + g_free (msg); + g_free (label); + + return FALSE; + } + + return TRUE; +} + + +void +gth_window_copy_shortcuts (GthWindow *to_window, + GthWindow *from_window, + int context) +{ + int i; + + for (i = 0; i < from_window->priv->shortcuts_v->len; i++) { + const GthShortcut *shortcut = g_ptr_array_index (from_window->priv->shortcuts_v, i); + GthShortcut *new_shortcut; + + if ((shortcut->context & context) == 0) + continue; + + new_shortcut = gth_shortcut_dup (shortcut); + _gth_window_add_shortcut (to_window, new_shortcut); + } +} diff -Nru gthumb-3.8.3/gthumb/gth-window.h gthumb-3.9.1/gthumb/gth-window.h --- gthumb-3.8.3/gthumb/gth-window.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gth-window.h 2020-03-07 19:03:13.526954200 +0000 @@ -24,6 +24,7 @@ #include #include "gtk-utils.h" +#include "gth-shortcut.h" G_BEGIN_DECLS @@ -120,6 +121,34 @@ void gth_window_change_action_state (GthWindow *window, const char *action_name, gboolean value); +void gth_window_add_shortcuts (GthWindow *window, + const GthShortcut *shortcuts, + int n_shortcuts); +GPtrArray * gth_window_get_shortcuts (GthWindow *window); +GthShortcut * gth_window_get_shortcut (GthWindow *window, + const char *detailed_action); +GPtrArray * gth_window_get_shortcuts_by_category + (GthWindow *window); +gboolean gth_window_activate_shortcut (GthWindow *window, + int context, + guint keycode, + GdkModifierType modifiers); +void gth_window_load_shortcuts (GthWindow *window); +void gth_window_add_removable_shortcut + (GthWindow *window, + const char *group_name, + GthShortcut *shortcut); +void gth_window_remove_shortcuts (GthWindow *window, + const char *group_name); +gboolean gth_window_can_change_shortcut (GthWindow *window, + const char *detailed_action, + int context, + guint keycode, + GdkModifierType modifiers, + GtkWindow *parent); +void gth_window_copy_shortcuts (GthWindow *to_window, + GthWindow *from_window, + int context); G_END_DECLS diff -Nru gthumb-3.8.3/gthumb/gtk-utils.c gthumb-3.9.1/gthumb/gtk-utils.c --- gthumb-3.8.3/gthumb/gtk-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gtk-utils.c 2020-03-07 19:03:13.526954200 +0000 @@ -22,7 +22,6 @@ #include #include #include "color-utils.h" -#include "gth-image-utils.h" #include "gtk-utils.h" @@ -30,6 +29,21 @@ #define GTHUMB_RESOURCE_BASE_PATH "/org/gnome/gThumb/resources/" +SizeValue +ImageSizeValues[IMAGE_SIZE_N] = { + { 320, 200 }, + { 320, 320 }, + { 640, 480 }, + { 640, 640 }, + { 800, 600 }, + { 800, 800 }, + { 1024, 768 }, + { 1024, 1024 }, + { 1280, 960 }, + { 1280, 1280 } +}; + + GtkWidget* _gtk_message_dialog_new (GtkWindow *parent, GtkDialogFlags flags, @@ -251,13 +265,13 @@ void _gtk_dialog_add_to_window_group (GtkDialog *dialog) { - GtkWidget *toplevel; + GtkWindow *toplevel; g_return_if_fail (dialog != NULL); - toplevel = gtk_widget_get_toplevel (GTK_WIDGET (dialog)); - if (gtk_widget_is_toplevel (toplevel) && gtk_window_has_group (GTK_WINDOW (toplevel))) - gtk_window_group_add_window (gtk_window_get_group (GTK_WINDOW (toplevel)), GTK_WINDOW (dialog)); + toplevel = _gtk_widget_get_toplevel_if_window (GTK_WIDGET (dialog)); + if ((toplevel != NULL) && gtk_window_has_group (toplevel)) + gtk_window_group_add_window (gtk_window_get_group (toplevel), GTK_WINDOW (dialog)); } @@ -619,6 +633,42 @@ } +GtkTreePath * +_gtk_tree_path_get_previous_or_parent (GtkTreePath *path) +{ + int *indices; + int depth; + int last; + gboolean return_parent; + int *new_indices; + int new_depth; + int i; + GtkTreePath *new_path; + + indices = gtk_tree_path_get_indices_with_depth (path, &depth); + if (indices == NULL) + return NULL; + + last = depth - 1; + return_parent = indices[last] == 0; + new_depth = return_parent ? depth - 1 : depth; + if (new_depth == 0) + return NULL; + + new_indices = g_new (int, new_depth); + for (i = 0; i < new_depth; i++) + new_indices[i] = indices[i]; + if (! return_parent) /* return previous element */ + new_indices[last] = indices[last] - 1; + + new_path = gtk_tree_path_new_from_indicesv (new_indices, new_depth); + + g_free (new_indices); + + return new_path; +} + + int _gtk_paned_get_position2 (GtkPaned *paned) { @@ -647,16 +697,17 @@ void -_g_launch_command (GtkWidget *parent, - const char *command, - const char *name, - GList *files) +_g_launch_command (GtkWidget *parent, + const char *command, + const char *name, + GAppInfoCreateFlags flags, + GList *files) { GError *error = NULL; GAppInfo *app_info; GdkAppLaunchContext *launch_context; - app_info = g_app_info_create_from_commandline (command, name, G_APP_INFO_CREATE_SUPPORTS_URIS, &error); + app_info = g_app_info_create_from_commandline (command, name, flags, &error); if (app_info == NULL) { _gtk_error_dialog_from_gerror_show (GTK_WINDOW (parent), _("Could not launch the application"), error); g_clear_error (&error); @@ -1226,14 +1277,11 @@ GdkRectangle *geometry) { gboolean result = FALSE; - GtkWidget *window; + GtkWindow *window; - window = gtk_widget_get_toplevel (widget); - if (GTK_IS_WINDOW (window)) { - if (_gtk_window_get_monitor_info (GTK_WINDOW (window), geometry, NULL, NULL)) { - result = TRUE; - } - } + window = _gtk_widget_get_toplevel_if_window (widget); + if ((window != NULL) && (_gtk_window_get_monitor_info (window, geometry, NULL, NULL))) + result = TRUE; return result; } @@ -1307,3 +1355,15 @@ g_object_unref (widget); } + +GtkWindow * +_gtk_widget_get_toplevel_if_window (GtkWidget *widget) +{ + GtkWidget *window; + + window = gtk_widget_get_toplevel (widget); + if (! GTK_IS_WINDOW (window)) + return NULL; + + return GTK_WINDOW (window); +} diff -Nru gthumb-3.8.3/gthumb/gtk-utils.h gthumb-3.9.1/gthumb/gtk-utils.h --- gthumb-3.8.3/gthumb/gtk-utils.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/gtk-utils.h 2020-03-07 19:03:13.526954200 +0000 @@ -51,6 +51,31 @@ const char *accelerator; } GthAccelerator; + +typedef enum /*< skip >*/ { + IMAGE_SIZE_320x200, + IMAGE_SIZE_320x320, + IMAGE_SIZE_640x480, + IMAGE_SIZE_640x640, + IMAGE_SIZE_800x600, + IMAGE_SIZE_800x800, + IMAGE_SIZE_1024x768, + IMAGE_SIZE_1024x1024, + IMAGE_SIZE_1280x960, + IMAGE_SIZE_1280x1280, + IMAGE_SIZE_N +} ImageSize; + + +typedef struct { + int width; + int height; +} SizeValue; + + +extern SizeValue ImageSizeValues[IMAGE_SIZE_N]; + + GtkWidget * _gtk_message_dialog_new (GtkWindow *parent, GtkDialogFlags flags, const char *icon_name, @@ -121,10 +146,13 @@ int bottom, int left); void _gtk_tree_path_list_free (GList *list); +GtkTreePath * _gtk_tree_path_get_previous_or_parent (GtkTreePath *path); int _gtk_paned_get_position2 (GtkPaned *paned); void _g_launch_command (GtkWidget *parent, const char *command, const char *name, + GAppInfoCreateFlags + flags, GList *files); void _gtk_window_resize_to_fit_screen_height (GtkWidget *window, int default_width); @@ -166,6 +194,7 @@ GdkCursorType cursor_type); void _gtk_widget_reparent (GtkWidget *widget, GtkWidget *new_parent); +GtkWindow * _gtk_widget_get_toplevel_if_window (GtkWidget *widget); G_END_DECLS diff -Nru gthumb-3.8.3/gthumb/main-migrate-catalogs.c gthumb-3.9.1/gthumb/main-migrate-catalogs.c --- gthumb-3.8.3/gthumb/main-migrate-catalogs.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/main-migrate-catalogs.c 2020-03-07 19:03:13.526954200 +0000 @@ -434,7 +434,7 @@ catalogs_path = g_file_get_path (catalogs_dir); relative_path = g_file_get_relative_path (data->collections_dir, file); tmp_path = g_strconcat (catalogs_path, G_DIR_SEPARATOR_S, relative_path, NULL); - full_path_no_ext = _g_uri_remove_extension (tmp_path); + full_path_no_ext = _g_path_remove_extension (tmp_path); full_path = g_strconcat (full_path_no_ext, extension, NULL); catalog_file = g_file_new_for_path (full_path); catalog_dir = g_file_get_parent (catalog_file); @@ -500,7 +500,7 @@ home_dir = g_file_new_for_path (g_get_home_dir ()); data->collections_dir = _g_file_get_child (home_dir, ".gnome2", "gthumb", "collections", NULL); - g_directory_foreach_child (data->collections_dir, + _g_directory_foreach_child (data->collections_dir, TRUE, TRUE, "standard::name,standard::type", diff -Nru gthumb-3.8.3/gthumb/meson.build gthumb-3.9.1/gthumb/meson.build --- gthumb-3.8.3/gthumb/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/meson.build 2020-03-07 19:03:13.526954200 +0000 @@ -12,6 +12,7 @@ 'gnome-desktop-thumbnail.h', 'gsignature.h', 'gth-accel-button.h', + 'gth-accel-dialog.h', 'gth-auto-paned.h', 'gth-async-task.h', 'gth-buffer-data.h', @@ -28,6 +29,7 @@ 'gth-file-list.h', 'gth-file-properties.h', 'gth-file-selection.h', + 'gth-file-selection-info.h', 'gth-file-source.h', 'gth-file-source-vfs.h', 'gth-file-store.h', @@ -64,6 +66,7 @@ 'gth-load-file-data-task.h', 'gth-location-bar.h', 'gth-location-chooser.h', + 'gth-location-chooser-dialog.h', 'gth-main.h', 'gth-menu-manager.h', 'gth-metadata.h', @@ -79,10 +82,10 @@ 'gth-save-file-data-task.h', 'gth-save-image-task.h', 'gth-screensaver.h', + 'gth-shortcut.h', 'gth-sidebar.h', 'gth-sidebar-section.h', 'gth-statusbar.h', - 'gth-source-tree.h', 'gth-string-list.h', 'gth-tags-entry.h', 'gth-tags-file.h', @@ -99,6 +102,7 @@ 'gth-toolbox.h', 'gth-uri-list.h', 'gth-user-dir.h', + 'gth-vfs-tree.h', 'gth-viewer-page.h', 'gth-window.h', 'gtk-utils.h', @@ -107,7 +111,9 @@ 'pixbuf-cache.h', 'pixbuf-io.h', 'pixbuf-utils.h', + 'str-utils.h', 'typedefs.h', + 'uri-utils.h', 'zlib-utils.h' ] @@ -152,12 +158,14 @@ 'cairo-scale.c', 'cairo-utils.c', 'color-utils.c', + 'dlg-favorite-properties.c', 'dlg-location.c', 'dlg-personalize-filters.c', 'dlg-preferences.c', 'dlg-preferences-browser.c', 'dlg-preferences-extensions.c', 'dlg-preferences-general.c', + 'dlg-preferences-shortcuts.c', 'dlg-sort-order.c', 'dom.c', 'gimp-op.c', @@ -165,6 +173,7 @@ 'glib-utils.c', 'gsignature.c', 'gth-accel-button.c', + 'gth-accel-dialog.c', 'gth-application.c', 'gth-auto-paned.c', 'gth-async-task.c', @@ -185,6 +194,7 @@ 'gth-file-list.c', 'gth-file-properties.c', 'gth-file-selection.c', + 'gth-file-selection-info.c', 'gth-file-source.c', 'gth-file-source-vfs.c', 'gth-file-store.c', @@ -221,6 +231,7 @@ 'gth-load-file-data-task.c', 'gth-location-bar.c', 'gth-location-chooser.c', + 'gth-location-chooser-dialog.c', 'gth-main.c', 'gth-main-default-hooks.c', 'gth-main-default-metadata.c', @@ -242,9 +253,10 @@ 'gth-save-file-data-task.c', 'gth-save-image-task.c', 'gth-screensaver.c', + 'gth-shortcut.c', + 'gth-shortcuts-window.c', 'gth-sidebar.c', 'gth-sidebar-section.c', - 'gth-source-tree.c', 'gth-statusbar.c', 'gth-string-list.c', 'gth-tags-entry.c', @@ -263,6 +275,7 @@ 'gth-trash-task.c', 'gth-uri-list.c', 'gth-user-dir.c', + 'gth-vfs-tree.c', 'gth-viewer-page.c', 'gth-window.c', 'gth-window-title.c', @@ -273,6 +286,8 @@ 'pixbuf-cache.c', 'pixbuf-io.c', 'pixbuf-utils.c', + 'str-utils.c', + 'uri-utils.c', 'zlib-utils.c' ) @@ -326,15 +341,26 @@ executable('test-dom', sources : [ 'test-dom.c', 'dom.c'], dependencies : common_deps, - include_directories : config_inc + include_directories : config_inc, + c_args : c_args, ) ) test('glib-utils', executable('test-glib-utils', - sources : [ 'test-glib-utils.c', 'glib-utils.c' ], + sources : [ 'test-glib-utils.c', 'glib-utils.c', 'str-utils.c', 'uri-utils.c' ], dependencies : common_deps, - include_directories : config_inc + include_directories : config_inc, + c_args : c_args, + ) +) + +test('gtk-utils', + executable('test-gtk-utils', + sources : [ 'test-gtk-utils.c', 'gtk-utils.c', 'color-utils.c' ], + dependencies : common_deps, + include_directories : config_inc, + c_args : c_args, ) ) @@ -342,14 +368,16 @@ executable('test-gsignature', sources : [ 'test-gsignature.c', 'gsignature.c'], dependencies : common_deps, - include_directories : config_inc + include_directories : config_inc, + c_args : c_args, ) ) test('oauth', executable('test-oauth', sources : [ 'test-oauth.c', 'gsignature.c'], - dependencies : common_deps , - include_directories : config_inc + dependencies : common_deps, + include_directories : config_inc, + c_args : c_args, ) ) diff -Nru gthumb-3.8.3/gthumb/resources/app-menu.ui gthumb-3.9.1/gthumb/resources/app-menu.ui --- gthumb-3.8.3/gthumb/resources/app-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/resources/app-menu.ui 1970-01-01 00:00:00.000000000 +0000 @@ -1,39 +0,0 @@ - - - - -
- - New _Window - app.new-window - n]]> - -
-
- - _Preferences - app.preferences - -
-
- - Keyboard Shortcuts - app.shortcuts - - - _Help - app.help - F1 - - - _About - app.about - - - _Quit - app.quit - q]]> - -
-
-
diff -Nru gthumb-3.8.3/gthumb/resources/file-list-menu.ui gthumb-3.9.1/gthumb/resources/file-list-menu.ui --- gthumb-3.8.3/gthumb/resources/file-list-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/resources/file-list-menu.ui 2020-03-07 19:03:13.530287500 +0000 @@ -6,7 +6,6 @@ Fullscreen win.fullscreen - F11
diff -Nru gthumb-3.8.3/gthumb/resources/file-menu.ui gthumb-3.9.1/gthumb/resources/file-menu.ui --- gthumb-3.8.3/gthumb/resources/file-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/resources/file-menu.ui 2020-03-07 19:03:13.530287500 +0000 @@ -6,7 +6,6 @@ Fullscreen win.fullscreen - F11
diff -Nru gthumb-3.8.3/gthumb/resources/gears-menu.ui gthumb-3.9.1/gthumb/resources/gears-menu.ui --- gthumb-3.8.3/gthumb/resources/gears-menu.ui 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/resources/gears-menu.ui 2020-03-07 19:03:13.530287500 +0000 @@ -5,20 +5,17 @@
New Window - app.new-window - n]]> + win.new-window Open Location… win.open-location - l]]>
Save win.save - s]]> Save As… @@ -27,7 +24,6 @@ Revert win.revert-to-saved - F4
@@ -45,6 +41,22 @@
+ + _Preferences + win.preferences + + + Keyboard Shortcuts + win.shortcuts + + + _Help + win.help + + + _About gThumb + win.about +
diff -Nru gthumb-3.8.3/gthumb/resources/gthumb.css gthumb-3.9.1/gthumb/resources/gthumb.css --- gthumb-3.8.3/gthumb/resources/gthumb.css 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/resources/gthumb.css 2020-03-07 19:03:13.530287500 +0000 @@ -168,3 +168,9 @@ .void-view { opacity: 0.12; } + +/* -- revert shortcut button -- */ + +.revert-shortcut-button { + padding: 0; +} diff -Nru gthumb-3.8.3/gthumb/str-utils.c gthumb-3.9.1/gthumb/str-utils.c --- gthumb-3.8.3/gthumb/str-utils.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/str-utils.c 2020-03-07 19:03:13.530287500 +0000 @@ -0,0 +1,997 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include "str-utils.h" + + +gboolean +_g_str_equal (const char *str1, + const char *str2) +{ + return g_strcmp0 (str1, str2) == 0; +} + + +gboolean +_g_str_n_equal (const char *str1, + const char *str2, + gsize size) +{ + if ((str1 == NULL) && (str2 == NULL)) + return TRUE; + if ((str1 == NULL) || (str2 == NULL)) + return FALSE; + return strncmp (str1, str2, size); +} + + +void +_g_str_set (char **str, + const char *value) +{ + if (*str == value) + return; + + if (*str != NULL) { + g_free (*str); + *str = NULL; + } + + if (value != NULL) + *str = g_strdup (value); +} + + +char ** +_g_strv_take_from_str_list (GList *str_list, + int size) +{ + char **str_v; + GList *scan; + int i; + + if (size < 0) + size = g_list_length (str_list); + + str_v = g_new0 (char *, size + 1); + for (scan = g_list_last (str_list), i = 0; scan && (i < size); scan = scan->prev, i++) + str_v[i] = (char *) scan->data; + str_v[i] = NULL; + + return str_v; +} + + +char * +_g_str_random (int len) +{ + static char *alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; + static int letters_only = 52; + static int whole_alphabet = 62; + + GRand *generator; + char *s; + int i; + + generator = g_rand_new (); + + s = g_new (char, len + 1); + for (i = 0; i < len; i++) + s[i] = alphabet[g_rand_int_range (generator, 0, (i == 0) ? letters_only : whole_alphabet)]; + s[len] = 0; + + g_rand_free (generator); + + return s; +} + + +char * +_g_str_remove_suffix (const char *str, + const char *suffix) +{ + int s_len; + int suffix_len; + + if (str == NULL) + return NULL; + + if (suffix == NULL) + return g_strdup (str); + + s_len = strlen (str); + suffix_len = strlen (suffix); + + if (suffix_len >= s_len) + return g_strdup (""); + else + return g_strndup (str, s_len - suffix_len); +} + + +GHashTable *static_strings = NULL; +static GMutex static_strings_mutex; + + +const char * +_g_str_get_static (const char *str) +{ + const char *result; + + if (str == NULL) + return NULL; + + g_mutex_lock (&static_strings_mutex); + + if (static_strings == NULL) + static_strings = g_hash_table_new_full (g_str_hash, + g_str_equal, + g_free, + NULL); + + if (! g_hash_table_lookup_extended (static_strings, + str, + (gpointer) &result, + NULL)) + { + result = g_strdup (str); + g_hash_table_insert (static_strings, + (gpointer) result, + GINT_TO_POINTER (1)); + } + + g_mutex_unlock (&static_strings_mutex); + + return result; +} + + +GHashTable * +_g_str_split_as_hash_table (const char *str) +{ + GHashTable *htable; + + htable = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL); + + if (str != NULL) { + char **strv; + int i; + + strv = g_strsplit (str, ",", -1); + for (i = 0; strv[i] != NULL; i++) + if (strv[i] != 0) + g_hash_table_add (htable, g_strdup (strv[i])); + + g_strfreev (strv); + } + + return htable; +} + + +/* StrV utils */ + + +int +_g_strv_find (char **strv, + const char *str) +{ + int i; + + for (i = 0; strv[i] != NULL; i++) { + if (strcmp (strv[i], str) == 0) + return i; + } + + return -1; +} + + +gboolean +_g_strv_contains (char **strv, + const char *str) +{ + return (_g_strv_find (strv, str) >= 0); +} + + +char ** +_g_strv_prepend (char **strv, + const char *str) +{ + char **result; + int i; + int j; + + result = g_new (char *, g_strv_length (strv) + 1); + i = 0; + result[i++] = g_strdup (str); + for (j = 0; strv[j] != NULL; j++) + result[i++] = g_strdup (strv[j]); + result[i] = NULL; + + return result; +} + + +char ** +_g_strv_concat (char **strv1, + char **strv2) +{ + char **result; + int i, j; + + result = g_new (char *, g_strv_length (strv1) + g_strv_length (strv2) + 1); + i = 0; + for (j = 0; strv1[j] != NULL; j++) + result[i++] = g_strdup (strv1[j]); + for (j = 0; strv2[j] != NULL; j++) + result[i++] = g_strdup (strv2[j]); + result[i] = NULL; + + return result; +} + + +gboolean +_g_strv_remove (char **strv, + const char *str) +{ + int i; + int j; + + if (str == NULL) + return FALSE; + + for (i = 0; strv[i] != NULL; i++) + if (strcmp (strv[i], str) == 0) + break; + + if (strv[i] == NULL) + return FALSE; + + for (j = i; strv[j] != NULL; j++) + strv[j] = strv[j + 1]; + + return TRUE; +} + + +/* UTF-8 utils */ + + +char * +_g_utf8_strndup (const char *str, + gssize size) +{ + char *new_str; + + if ((str == NULL) || (size == 0)) + return NULL; + + if (size < 0) + size = g_utf8_strlen (str, -1); + + new_str = g_new (char, size * 4 + 1); + g_utf8_strncpy (new_str, str, size); + + return new_str; +} + + +const char * +_g_utf8_find_str (const char *haystack, + const char *needle) +{ + glong haystack_len; + glong needle_len; + glong needle_size; + glong i; + + if ((haystack == NULL) || (needle == NULL)) + return NULL; + + haystack_len = g_utf8_strlen (haystack, -1); + needle_len = g_utf8_strlen (needle, -1); + needle_size = strlen (needle); + + if (needle_len == 0) + return NULL; + + for (i = 0; i <= haystack_len - needle_len; i++) { + if (strncmp (haystack, needle, needle_size) == 0) + return haystack; + haystack = g_utf8_next_char (haystack); + } + + return NULL; +} + + +/* -- _g_utf8_split -- */ + + +char ** +_g_utf8_split (const char *str, + const char *sep, + int max_tokens) +{ + glong sep_size; + GList *chunk_list; + int chunk_n; + const char *p; + char **chunk_v; + + sep_size = (sep != NULL) ? strlen (sep) : 0; + chunk_list = NULL; + chunk_n = 0; + p = str; + while ((p != NULL) && (max_tokens != 0) && (max_tokens != 1)) { + const char *sep_p = _g_utf8_find_str (p, sep); + char *chunk; + + if (sep_p == NULL) { + if ((p == str) && (*p == 0)) { + /* Special case: when splitting an emtpy string + * return an emtpy string. */ + + chunk = g_strdup (""); + chunk_list = g_list_prepend (chunk_list, chunk); + chunk_n++; + if (max_tokens > 0) max_tokens--; + p = NULL; + } + else if ((sep != NULL) && (sep_size == 0)) { + + /* Special case: when the separator is an + * empty string, split each character. */ + + chunk = _g_utf8_strndup (p, 1); + chunk_list = g_list_prepend (chunk_list, chunk); + chunk_n++; + if (max_tokens > 0) max_tokens--; + p = g_utf8_next_char (p); + } + else { + chunk = g_strdup (p); + chunk_list = g_list_prepend (chunk_list, chunk); + chunk_n++; + if (max_tokens > 0) max_tokens--; + p = NULL; + } + } + else if (sep_p > p) { + chunk = g_strndup (p, sep_p - p); + chunk_list = g_list_prepend (chunk_list, chunk); + chunk_n++; + if (max_tokens > 0) max_tokens--; + p = sep_p + sep_size; + } + else + p = sep_p + sep_size; + + if ((p != NULL) && (g_utf8_get_char (p) == 0)) + break; + } + + if ((p != NULL) && (max_tokens == 1)) { + chunk_list = g_list_prepend (chunk_list, g_strdup (p)); + chunk_n++; + } + + chunk_v = _g_strv_take_from_str_list (chunk_list, chunk_n); + g_list_free (chunk_list); + + return chunk_v; +} + + +/* -- _g_utf8_split_template -- */ + + +typedef enum { + SPLIT_TMPL_STATE_START, + SPLIT_TMPL_STATE_READING_SHARPS, + SPLIT_TMPL_STATE_READING_LITERAL +} SplitTmplState; + + +/** + * example 1 : "xxx##yy#" --> [0] = xxx + * [1] = ## + * [2] = yy + * [3] = # + * [4] = NULL + * + * example 2 : "" --> [0] = NULL + **/ +char ** +_g_utf8_split_template (const char *tmpl) +{ + SplitTmplState state; + GList *chunk_list; + int chunk_n; + const char *p; + const char *chunk_start; + const char *chunk_end; + char **chunk_v; + + state = SPLIT_TMPL_STATE_START; + chunk_list = NULL; + chunk_n = 0; + p = tmpl; + while (p != NULL) { + gunichar ch = g_utf8_get_char (p); + gboolean save_chunk = FALSE; + + switch (state) { + case SPLIT_TMPL_STATE_START: + chunk_start = chunk_end = p; + if (ch == '#') + state = SPLIT_TMPL_STATE_READING_SHARPS; + else + state = SPLIT_TMPL_STATE_READING_LITERAL; + break; + + case SPLIT_TMPL_STATE_READING_SHARPS: + if (ch != '#') { + state = SPLIT_TMPL_STATE_READING_LITERAL; + save_chunk = TRUE; + } + else + chunk_end = p; + break; + + case SPLIT_TMPL_STATE_READING_LITERAL: + if ((ch == '#') || (ch == 0)) { + state = SPLIT_TMPL_STATE_READING_SHARPS; + save_chunk = TRUE; + } + else + chunk_end = p; + break; + } + + if (save_chunk) { + glong chunk_size; + char *chunk; + + chunk_size = chunk_end - chunk_start + 1; + chunk = _g_utf8_strndup (chunk_start, chunk_size); + chunk_list = g_list_prepend (chunk_list, chunk); + chunk_n++; + chunk_start = chunk_end = p; + } + + if (ch == 0) + break; + + p = g_utf8_next_char (p); + } + + chunk_v = _g_strv_take_from_str_list (chunk_list, chunk_n); + g_list_free (chunk_list); + + return chunk_v; +} + + +char * +_g_utf8_replace_str (const char *str, + const char *old_str, + const char *new_str) +{ + GString *result; + size_t old_str_size; + const char *p; + + if (str == NULL) + return NULL; + + result = g_string_new (""); + old_str_size = (old_str != NULL) ? strlen (old_str) : 0; + p = str; + while ((p != NULL) && (g_utf8_get_char (p) != 0)) { + const char *sep = _g_utf8_find_str (p, old_str); + + if (sep == NULL) { + g_string_append (result, p); + p = NULL; + } + else { + g_string_append_len (result, p, sep - p); + if (new_str != NULL) + g_string_append (result, new_str); + p = sep + old_str_size; + } + } + + return g_string_free (result, FALSE); +} + + +char * +_g_utf8_replace_pattern (const char *str, + const char *pattern, + const char *replacement) +{ + GRegex *regex; + char *result; + + if (str == NULL) + return NULL; + + regex = g_regex_new (pattern, 0, 0, NULL); + if (regex == NULL) + return NULL; + + result = g_regex_replace_literal (regex, str, -1, 0, replacement, 0, NULL); + + g_regex_unref (regex); + + return result; +} + + +char * +_g_utf8_last_char (const char *str, + glong *p_size) +{ + glong len; + + if (str == NULL) { + if (p_size) *p_size = 0; + return NULL; + } + + len = strlen (str); + if (p_size) *p_size = len; + + if (len == 0) + return NULL; + + return g_utf8_find_prev_char (str, str + len); +} + + +gboolean +_g_utf8_n_equal (const char *str1, + const char *str2, + glong size) +{ + const char *p1; + const char *p2; + + p1 = str1; + p2 = str2; + while ((size > 0) && (p1 != NULL) && (p2 != NULL)) { + gunichar c1 = g_utf8_get_char (p1); + gunichar c2 = g_utf8_get_char (p2); + + if ((c1 == 0) || (c2 == 0) || (c1 != c2)) + break; + + size--; + p1 = g_utf8_next_char (p1); + p2 = g_utf8_next_char (p2); + } + + return size == 0; +} + + +const char * +_g_utf8_after_ascii_space (const char *str) +{ + while (str != NULL) { + gunichar c = g_utf8_get_char (str); + + if (c == 0) + break; + + if (c == ' ') + return g_utf8_next_char (str); + + str = g_utf8_next_char (str); + } + + return NULL; +} + + +gboolean +_g_utf8_has_prefix (const char *str, + const char *prefix) +{ + if (str == NULL) + return FALSE; + + if (prefix == NULL) + return FALSE; + + while ((str != NULL) && (prefix != NULL)) { + gunichar str_ch = g_utf8_get_char (str); + gunichar prefix_ch = g_utf8_get_char (prefix); + + if (prefix_ch == 0) + return TRUE; + + if (str_ch == 0) + return FALSE; + + if (str_ch != prefix_ch) + return FALSE; + + str = g_utf8_next_char (str); + prefix = g_utf8_next_char (prefix); + } + + return FALSE; +} + + +gboolean +_g_utf8_all_spaces (const char *str) +{ + while (str != NULL) { + gunichar ch = g_utf8_get_char (str); + + if (ch == 0) + break; + + if (! g_unichar_isspace (ch)) + return FALSE; + + str = g_utf8_next_char (str); + } + + return TRUE; +} + + +char * +_g_utf8_try_from_any (const char *str) +{ + char *utf8_str; + + if (str == NULL) + return NULL; + + if (! g_utf8_validate (str, -1, NULL)) + utf8_str = g_locale_to_utf8 (str, -1, NULL, NULL, NULL); + else + utf8_str = g_strdup (str); + + return utf8_str; +} + + +char * +_g_utf8_from_any (const char *str) +{ + char *utf8_str; + + if (str == NULL) + return NULL; + + utf8_str = _g_utf8_try_from_any (str); + if (utf8_str == NULL) + utf8_str = g_strdup (_("(invalid value)")); + + return utf8_str; +} + + +/* -- _g_utf8_strip_func -- */ + + +typedef enum { + STRIP_STATE_HEADING_SPACE, + STRIP_STATE_REST +} StripState; + + +char * +_g_utf8_strip_func (const char *str, + StripFunc is_space_func) +{ + const char *first_non_space = NULL; + const char *last_non_space = NULL; + StripState state = STRIP_STATE_HEADING_SPACE; + + if (str == NULL) + return NULL; + + if (is_space_func == NULL) + return g_strdup (""); + + while (str != NULL) { + gunichar ch = g_utf8_get_char (str); + gboolean is_space = is_space_func (ch) || (ch == 0); + + switch (state) { + case STRIP_STATE_HEADING_SPACE: + if (! is_space) { + state = STRIP_STATE_REST; + first_non_space = last_non_space = str; + } + break; + + case STRIP_STATE_REST: + if (! is_space) + last_non_space = str; + break; + } + + if (ch == 0) + break; + + str = g_utf8_next_char (str); + } + + if (first_non_space == NULL) + return g_strdup (""); + + g_assert (last_non_space != NULL); + + return g_strndup (first_non_space, g_utf8_next_char (last_non_space) - first_non_space); +} + + +char * +_g_utf8_strip (const char *str) +{ + return _g_utf8_strip_func (str, g_unichar_isspace); +} + + +/* -- _g_utf8_rstrip_func -- */ + + +typedef enum { + RSTRIP_STATE_ONLY_SPACES, /* String contains only spaces. */ + RSTRIP_STATE_NON_SPACE, /* Reading non space characters. */ + RSTRIP_STATE_TRAILING_SPACE /* Reading possible trailing spaces. */ +} RStripState; + + +char * +_g_utf8_rstrip_func (const char *str, + StripFunc is_space_func) +{ + const char *first_trail_space; + RStripState state; + const char *p; + + if (str == NULL) + return NULL; + + if (is_space_func == NULL) + return g_strdup (str); + + first_trail_space = NULL; + state = RSTRIP_STATE_ONLY_SPACES; + p = str; + while (p != NULL) { + gunichar ch = g_utf8_get_char (p); + gboolean is_space = is_space_func (ch); + + switch (state) { + case RSTRIP_STATE_ONLY_SPACES: + if (! is_space && (ch != 0)) + state = RSTRIP_STATE_NON_SPACE; + break; + + case RSTRIP_STATE_NON_SPACE: + if (is_space) { + state = RSTRIP_STATE_TRAILING_SPACE; + first_trail_space = p; + } + break; + + case RSTRIP_STATE_TRAILING_SPACE: + if (! is_space && (ch != 0)) { + state = RSTRIP_STATE_NON_SPACE; + first_trail_space = NULL; + } + break; + } + + if (ch == 0) + break; + + p = g_utf8_next_char (p); + } + + if (state == RSTRIP_STATE_ONLY_SPACES) + return g_strdup (""); + + if (state == RSTRIP_STATE_NON_SPACE) + return g_strdup (str); + + g_assert (first_trail_space != NULL); + + return g_strndup (str, first_trail_space - str); +} + + +char * +_g_utf8_rstrip (const char *str) +{ + return _g_utf8_rstrip_func (str, g_unichar_isspace); +} + + +/* -- _g_utf8_translate -- */ + + +static gboolean +_g_unichar_equal (gconstpointer v1, + gconstpointer v2) +{ + return *((const gunichar*) v1) == *((const gunichar*) v2); +} + + +static guint +_g_unichar_hash (gconstpointer v) +{ + return (guint) *(const gunichar*) v; +} + + +/* Substitute each occurrence of a character with a string. */ +char * +_g_utf8_translate (const char *str, + ...) +{ + va_list args; + GHashTable *translation; + const char *arg; + GString *regexp; + + if (str == NULL) + return NULL; + + translation = g_hash_table_new_full (_g_unichar_hash, _g_unichar_equal, NULL, g_free); + va_start (args, str); + while ((arg = va_arg (args, const char *)) != NULL) { + gunichar from_ch; + const char *to_str; + + from_ch = g_utf8_get_char (arg); + to_str = va_arg (args, const char *); + if (to_str == NULL) + break; + + g_hash_table_insert (translation, &from_ch, g_strdup (to_str)); + } + va_end (args); + + if (g_hash_table_size (translation) == 0) { + g_hash_table_unref (translation); + return g_strdup (str); + } + + regexp = g_string_new (""); + while (str != NULL) { + gunichar ch = g_utf8_get_char (str); + char *replacement; + + if (ch == 0) + break; + + replacement = g_hash_table_lookup (translation, &ch); + if (replacement != NULL) + g_string_append (regexp, replacement); + else + g_string_append_unichar (regexp, ch); + + str = g_utf8_next_char (str); + } + + g_hash_table_unref (translation); + + return g_string_free (regexp, FALSE); +} + + +/* -- _g_utf8_text_escape_xml -- */ + + +typedef enum { + XML_ESCAPE_DEFAULT = 1 << 0, + XML_ESCAPE_TEXT = 1 << 1 +} XmlEscFlags; + + +static char * +_g_utf8_escape_xml_flags (const char *text, + XmlEscFlags flags) +{ + GString *str; + gboolean for_text; + + if (text == NULL) + return NULL; + + str = g_string_sized_new (strlen (text)); + for_text = (flags & XML_ESCAPE_TEXT) != 0; + + while (text != NULL) { + gunichar ch = g_utf8_get_char (text); + + if (ch == 0) + break; + + switch (ch) { + case '&': + g_string_append (str, "&"); + break; + + case '<': + g_string_append (str, "<"); + break; + + case '>': + g_string_append (str, ">"); + break; + + case '\'': + g_string_append (str, "'"); + break; + + case '"': + g_string_append (str, """); + break; + + default: + if (for_text && (ch == '\n')) + g_string_append (str, "
"); + else if ((ch > 127) || ! g_ascii_isprint ((char) ch)) + g_string_append_printf (str, "&#%d;", ch); + else + g_string_append_unichar (str, ch); + break; + } + + text = g_utf8_next_char (text); + } + + return g_string_free (str, FALSE); +} + + +char * +_g_utf8_escape_xml (const char *str) +{ + return _g_utf8_escape_xml_flags (str, XML_ESCAPE_DEFAULT); +} + + +char * +_g_utf8_text_escape_xml (const char *str) +{ + return _g_utf8_escape_xml_flags (str, XML_ESCAPE_TEXT); +} diff -Nru gthumb-3.8.3/gthumb/str-utils.h gthumb-3.9.1/gthumb/str-utils.h --- gthumb-3.8.3/gthumb/str-utils.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/str-utils.h 2020-03-07 19:03:13.530287500 +0000 @@ -0,0 +1,102 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef _STR_UTILS_H +#define _STR_UTILS_H + +#include + +G_BEGIN_DECLS + +typedef gboolean (*StripFunc) (gunichar ch); + +gboolean _g_str_equal (const char *str1, + const char *str2); +gboolean _g_str_n_equal (const char *str1, + const char *str2, + gsize size); +void _g_str_set (char **str, + const char *value); +char ** _g_strv_take_from_str_list + (GList *str_list, + int size); +char * _g_str_random (int len); +char * _g_str_remove_suffix (const char *str, + const char *suffix); +const char * _g_str_get_static (const char *str); +GHashTable * _g_str_split_as_hash_table + (const char *str); + +/* StrV utils */ + +int _g_strv_find (char **strv, + const char *str); +gboolean _g_strv_contains (char **strv, + const char *str); +char ** _g_strv_prepend (char **strv, + const char *str); +char ** _g_strv_concat (char **strv1, + char **strv2); +gboolean _g_strv_remove (char **strv, + const char *str); + +/* UTF-8 utils */ + +char * _g_utf8_strndup (const char *str, + gssize size); +const char * _g_utf8_find_str (const char *haystack, + const char *needle); +char ** _g_utf8_split (const char *str, + const char *separator, + int max_tokens); +char ** _g_utf8_split_template (const char *tmpl); +char * _g_utf8_replace_str (const char *str, + const char *old_str, + const char *new_str); +char * _g_utf8_replace_pattern (const char *str, + const char *pattern, + const char *replacement); +char * _g_utf8_last_char (const char *str, + glong *p_size); +gboolean _g_utf8_n_equal (const char *str1, + const char *str2, + glong size); +const char * _g_utf8_after_ascii_space + (const char *str); +gboolean _g_utf8_has_prefix (const char *str, + const char *prefix); +gboolean _g_utf8_all_spaces (const char *str); +char * _g_utf8_try_from_any (const char *str); +char * _g_utf8_from_any (const char *str); +char * _g_utf8_strip_func (const char *str, + StripFunc is_space_func); +char * _g_utf8_strip (const char *str); +char * _g_utf8_rstrip_func (const char *str, + StripFunc func); +char * _g_utf8_rstrip (const char *str); +char * _g_utf8_translate (const char *str, + ...) G_GNUC_NULL_TERMINATED; +char * _g_utf8_escape_xml (const char *str); +char * _g_utf8_text_escape_xml (const char *str); + +G_END_DECLS + +#endif /* _STR_UTILS_H */ diff -Nru gthumb-3.8.3/gthumb/test-glib-utils.c gthumb-3.9.1/gthumb/test-glib-utils.c --- gthumb-3.8.3/gthumb/test-glib-utils.c 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/test-glib-utils.c 2020-03-07 19:03:13.530287500 +0000 @@ -21,6 +21,7 @@ #include #include +#include #include "glib-utils.h" @@ -29,11 +30,11 @@ { char *id; - id = _g_rand_string (8); + id = _g_str_random (8); g_assert_cmpint (strlen (id), == , 8); g_free (id); - id = _g_rand_string (16); + id = _g_str_random (16); g_assert_cmpint (strlen (id), == , 16); g_free (id); } @@ -72,18 +73,75 @@ static void test_g_utf8_has_prefix (void) { + g_assert_false (_g_utf8_has_prefix (NULL, NULL)); + g_assert_false (_g_utf8_has_prefix (NULL, "")); + g_assert_false (_g_utf8_has_prefix ("", NULL)); + g_assert_true (_g_utf8_has_prefix ("", "")); + g_assert_true (_g_utf8_has_prefix ("日", "")); + g_assert_false (_g_utf8_has_prefix ("", "日")); + g_assert_true (_g_utf8_has_prefix ("日本語", "日")); + g_assert_false (_g_utf8_has_prefix ("日", "日本")); + g_assert_false (_g_utf8_has_prefix ("日", "日本語")); g_assert_true (_g_utf8_has_prefix ("lang=正體字/繁體字 中华人民共和国", "lang=")); } static void -test_g_utf8_first_space (void) +test_g_utf8_after_ascii_space (void) { - g_assert_cmpint (_g_utf8_first_ascii_space (NULL), ==, -1); - g_assert_cmpint (_g_utf8_first_ascii_space (""), ==, -1); - g_assert_cmpint (_g_utf8_first_ascii_space ("lang=FR langue d’oïl"), ==, 7); - g_assert_cmpint (_g_utf8_first_ascii_space ("正體字"), ==, -1); - g_assert_cmpint (_g_utf8_first_ascii_space ("lang=正體字/繁體字 中华人民共和国"), ==, 12); + g_assert_cmpstr (_g_utf8_after_ascii_space (NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_after_ascii_space (""), ==, NULL); + g_assert_cmpstr (_g_utf8_after_ascii_space ("正體字 "), ==, ""); + g_assert_cmpstr (_g_utf8_after_ascii_space ("lang=FR langue d’oïl"), ==, "langue d’oïl"); + g_assert_cmpstr (_g_utf8_after_ascii_space ("正體字"), ==, NULL); + g_assert_cmpstr (_g_utf8_after_ascii_space ("lang=正體字/繁體字 中华人民共和国"), ==, "中华人民共和国"); +} + + +static void +test_g_utf8_all_spaces_space (void) +{ + g_assert_true (_g_utf8_all_spaces (NULL)); + g_assert_true (_g_utf8_all_spaces ("")); + g_assert_true (_g_utf8_all_spaces (" ")); + g_assert_false (_g_utf8_all_spaces (".")); + g_assert_false (_g_utf8_all_spaces ("正")); +} + + +static void +test_g_utf8_escape_xml_space (void) +{ + g_assert_cmpstr (_g_utf8_escape_xml (NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_escape_xml (""), ==, ""); + g_assert_cmpstr (_g_utf8_escape_xml ("ascii"), ==, "ascii"); + g_assert_cmpstr (_g_utf8_escape_xml ("正"), ==, "正"); + g_assert_cmpstr (_g_utf8_escape_xml ("體"), ==, "體"); + g_assert_cmpstr (_g_utf8_escape_xml ("字"), ==, "字"); + g_assert_cmpstr (_g_utf8_escape_xml ("正體字"), ==, "正體字"); + g_assert_cmpstr (_g_utf8_escape_xml ("正\\<體"), ==, "正\\<體"); + g_assert_cmpstr (_g_utf8_escape_xml ("正>體"), ==, "正>體"); + g_assert_cmpstr (_g_utf8_escape_xml ("正'體"), ==, "正'體"); + g_assert_cmpstr (_g_utf8_escape_xml ("正\"體"), ==, "正"體"); + g_assert_cmpstr (_g_utf8_escape_xml ("正&體"), ==, "正&體"); + g_assert_cmpstr (_g_utf8_text_escape_xml ("\n"), ==, "
"); + g_assert_cmpstr (_g_utf8_text_escape_xml ("正\n體"), ==, "正
體"); +} + + +static void +test_g_utf8_find_str (void) +{ + g_assert_cmpstr (_g_utf8_find_str ("正體字", "正"), ==, "正體字"); + g_assert_cmpstr (_g_utf8_find_str ("正體字", "體"), ==, "體字"); + g_assert_cmpstr (_g_utf8_find_str ("正體字", "字"), ==, "字"); + g_assert_cmpstr (_g_utf8_find_str ("正體", "字"), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str ("正體", NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str (NULL, NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str (NULL, "字"), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str ("正體", ""), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str ("", ""), ==, NULL); + g_assert_cmpstr (_g_utf8_find_str ("", "字"), ==, NULL); } @@ -93,14 +151,9 @@ { char *result = NULL; - if (_g_utf8_has_prefix (value, "lang=")) { - int pos = _g_utf8_first_ascii_space (value); - if (pos > 0) - result = _g_utf8_remove_prefix (value, pos + 1); - } - - g_assert_true (result != NULL); - g_assert_true (g_utf8_collate (result, expected) == 0); + if (_g_utf8_has_prefix (value, "lang=")) + result = g_strdup (_g_utf8_after_ascii_space (value)); + g_assert_cmpstr (result, ==, expected); g_free (result); } @@ -115,17 +168,788 @@ } +static void +test_g_path_get_parent_all (void) +{ + g_assert_cmpstr (_g_path_get_parent (NULL), ==, NULL); + g_assert_cmpstr (_g_path_get_parent (""), ==, NULL); + g_assert_cmpstr (_g_path_get_parent ("/"), ==, "/"); + g_assert_cmpstr (_g_path_get_parent ("/日"), ==, "/"); + g_assert_cmpstr (_g_path_get_parent ("/日/"), ==, "/日"); + g_assert_cmpstr (_g_path_get_parent ("/日/本"), ==, "/日"); + g_assert_cmpstr (_g_path_get_parent ("/日/本/"), ==, "/日/本"); + g_assert_cmpstr (_g_path_get_parent ("/日/本/語.txt"), ==, "/日/本"); + g_assert_cmpstr (_g_path_get_parent ("日"), ==, NULL); + g_assert_cmpstr (_g_path_get_parent ("日/"), ==, "日"); + g_assert_cmpstr (_g_path_get_parent ("日/本"), ==, "日"); + g_assert_cmpstr (_g_path_get_parent ("日/本/"), ==, "日/本"); + g_assert_cmpstr (_g_path_get_parent ("日/本/語.txt"), ==, "日/本"); +} + + +static void +test_g_path_get_basename_all (void) +{ + g_assert_cmpstr (_g_path_get_basename (NULL), ==, NULL); + g_assert_cmpstr (_g_path_get_basename (""), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("/"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("//"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("///"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("////"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("//a//"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("/日"), ==, "日"); + g_assert_cmpstr (_g_path_get_basename ("/日/"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("/日/本"), ==, "本"); + g_assert_cmpstr (_g_path_get_basename ("/日/本/語.txt"), ==, "語.txt"); + g_assert_cmpstr (_g_path_get_basename ("日"), ==, "日"); + g_assert_cmpstr (_g_path_get_basename ("日/"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("日/本"), ==, "本"); + g_assert_cmpstr (_g_path_get_basename ("日/本/"), ==, NULL); + g_assert_cmpstr (_g_path_get_basename ("日/本/語.txt"), ==, "語.txt"); +} + + +static void +test_g_uri_append_path_all (void) +{ + g_assert_cmpstr (_g_uri_append_path (NULL, NULL), ==, NULL); + g_assert_cmpstr (_g_uri_append_path (NULL, ""), ==, NULL); + g_assert_cmpstr (_g_uri_append_path (NULL, "/"), ==, NULL); + g_assert_cmpstr (_g_uri_append_path (NULL, "/日"), ==, NULL); + + g_assert_cmpstr (_g_uri_append_path ("", NULL), ==, NULL); + g_assert_cmpstr (_g_uri_append_path ("", ""), ==, NULL); + g_assert_cmpstr (_g_uri_append_path ("", "/"), ==, NULL); + g_assert_cmpstr (_g_uri_append_path ("", "/日"), ==, NULL); + + g_assert_cmpstr (_g_uri_append_path ("file:", NULL), ==, "file:///"); + g_assert_cmpstr (_g_uri_append_path ("file:", ""), ==, "file:///"); + g_assert_cmpstr (_g_uri_append_path ("file:", "/"), ==, "file:///"); + g_assert_cmpstr (_g_uri_append_path ("file://", "/"), ==, "file:///"); + g_assert_cmpstr (_g_uri_append_path ("file:///", "/"), ==, "file:///"); + + g_assert_cmpstr (_g_uri_append_path ("file:", "日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file://", "日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file:///", "日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file:///", "日/本/語"), ==, "file:///日/本/語"); + g_assert_cmpstr (_g_uri_append_path ("catalog:///", "Tags"), ==, "catalog:///Tags"); + + g_assert_cmpstr (_g_uri_append_path ("file:", "/日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file://", "/日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file:///", "/日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_append_path ("file:///", "/日/本/語"), ==, "file:///日/本/語"); +} + + +static void +test_g_uri_from_path_all (void) +{ + g_assert_cmpstr (_g_uri_from_path ("/"), ==, "file:///"); + g_assert_cmpstr (_g_uri_from_path ("/日"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_from_path ("/日/"), ==, "file:///日/"); + g_assert_cmpstr (_g_uri_from_path ("/日/本/語"), ==, "file:///日/本/語"); + g_assert_cmpstr (_g_uri_from_path ("/日 本"), ==, "file:///日%20本"); +} + + +static void +test_g_uri_get_basename_all (void) +{ + g_assert_cmpstr (_g_uri_get_basename ("file:///home/paolo/"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:///home/paolo/file.txt"), ==, "file.txt"); + g_assert_cmpstr (_g_uri_get_basename ("file:///file.txt"), ==, "file.txt"); + g_assert_cmpstr (_g_uri_get_basename ("file://file.txt"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:file.txt"), ==, "file.txt"); + g_assert_cmpstr (_g_uri_get_basename ("file.txt"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("/file.txt"), ==, "file.txt"); + + g_assert_cmpstr (_g_uri_get_basename (NULL), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename (""), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:/"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file://"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:///"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:///%E6%97%A5"), ==, "日"); + g_assert_cmpstr (_g_uri_get_basename ("file:///%E6%97%A5/"), ==, NULL); + g_assert_cmpstr (_g_uri_get_basename ("file:///%E6%97%A5/%E6%9C%AC/%E8%AA%9E"), ==, "語"); +} + + +static void +test_g_uri_get_parent_all (void) +{ + g_assert_cmpstr (_g_uri_get_parent ("file"), ==, NULL); + g_assert_cmpstr (_g_uri_get_parent ("file:"), ==, "file:///"); + g_assert_cmpstr (_g_uri_get_parent ("file://"), ==, "file:///"); + g_assert_cmpstr (_g_uri_get_parent ("file:///"), ==, "file:///"); + g_assert_cmpstr (_g_uri_get_parent ("file:///日"), ==, "file:///"); + g_assert_cmpstr (_g_uri_get_parent ("file:///日/本"), ==, "file:///日"); + g_assert_cmpstr (_g_uri_get_parent ("file:///日/本/語.txt"), ==, "file:///日/本"); + g_assert_cmpstr (_g_uri_get_parent ("file:///%E6%97%A5/%E6%9C%AC/%E8%AA%9E"), ==, "file:///日/本"); + g_assert_cmpstr (_g_uri_get_parent ("file://日/本/語.txt"), ==, "file://日/本"); + g_assert_cmpstr (_g_uri_get_parent ("file://諸星@日:123/本/語.txt"), ==, "file://諸星@日:123/本"); + g_assert_cmpstr (_g_uri_get_parent ("file://諸星@日:123/本"), ==, "file://諸星@日:123/"); + g_assert_cmpstr (_g_uri_get_parent ("file://諸星@日:123/"), ==, "file://諸星@日:123/"); +} + + +static void +test_g_file_get_display_name (const char *uri, + const char *expected) +{ + GFile *file; + char *name; + + file = g_file_new_for_uri (uri); + name = _g_file_get_display_name (file); + g_assert_cmpstr (name, ==, expected); + + g_free (name); + g_object_unref (file); +} + + +static void +test_g_file_get_display_name_all (void) +{ + test_g_file_get_display_name ("sftp:///", "/"); + test_g_file_get_display_name ("sftp://日本語", "日本語"); + test_g_file_get_display_name ("sftp://日本語/", "日本語"); + test_g_file_get_display_name ("sftp://日本語/諸星.txt", "諸星.txt"); + test_g_file_get_display_name ("file:///日/本/諸星.txt", "諸星.txt"); + test_g_file_get_display_name ("file:///日本語/諸星", "諸星"); + test_g_file_get_display_name ("file:///", "/"); +} + + +static void +test_g_utf8_n_equal_all (void) +{ + g_assert_true (_g_utf8_n_equal (NULL, NULL, 0)); + g_assert_true (_g_utf8_n_equal ("", "", 0)); + g_assert_true (_g_utf8_n_equal ("日本語", "日", 1)); + g_assert_true (_g_utf8_n_equal ("日", "日本語", 1)); + g_assert_true (_g_utf8_n_equal (".tar.日", ".tar.", 5)); + g_assert_false (_g_utf8_n_equal ("日本", "日本語", 3)); + g_assert_false (_g_utf8_n_equal ("日", "日本語", 3)); + g_assert_false (_g_utf8_n_equal ("", "日本語", 3)); + g_assert_false (_g_utf8_n_equal ("日", "日本語", 2)); + g_assert_false (_g_utf8_n_equal ("日", "日本", 2)); + g_assert_false (_g_utf8_n_equal ("日", "日", 2)); + g_assert_true (_g_utf8_n_equal ("日", "日", 1)); + g_assert_true (_g_utf8_n_equal ("本", "日", 0)); + g_assert_false (_g_utf8_n_equal ("本", "日", 1)); + g_assert_true (_g_utf8_n_equal ("日本", "日", 1)); +} + + +static void +test_g_utf8_last_char_all (void) +{ + g_assert_cmpstr (_g_utf8_last_char (NULL, NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_last_char ("", NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_last_char ("日", NULL), ==, "日"); + g_assert_cmpstr (_g_utf8_last_char ("日本", NULL), ==, "本"); + g_assert_cmpstr (_g_utf8_last_char ("日本語", NULL), ==, "語"); +} + + +static void +test_g_utf8_replace_str_all (void) +{ + g_assert_cmpstr (_g_utf8_replace_str (NULL, NULL, NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_replace_str (NULL, "の", "-"), ==, NULL); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", NULL, NULL), ==, "正の體の字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "の", NULL), ==, "正體字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "の", ""), ==, "正體字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "", NULL), ==, "正の體の字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "", ""), ==, "正の體の字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "", "-"), ==, "正の體の字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "の", "-"), ==, "正-體-字"); + g_assert_cmpstr (_g_utf8_replace_str ("正の體の字", "-", "の"), ==, "正の體の字"); +} + + +static void +_g_assert_strv_equal (char **strv, ...) +{ + va_list args; + int i; + const char *str; + + va_start (args, strv); + i = 0; + while ((str = va_arg (args, const char *)) != NULL) { + g_assert_cmpstr (strv[i], ==, str); + i++; + } + va_end (args); + + g_assert_cmpstr (strv[i], ==, NULL); +} + + +static void +test_g_utf8_split_all (void) +{ + char **strv; + + strv = _g_utf8_split (NULL, NULL, -1); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", NULL, -1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split (NULL, "の", -1); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", "の", -1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split (NULL, "", -1); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("", "", -1); + _g_assert_strv_equal (strv, "", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("", "の", -1); + _g_assert_strv_equal (strv, "", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の", "の", -1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體", "の", -1); + _g_assert_strv_equal (strv, "正", "體", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の", "の", -1); + _g_assert_strv_equal (strv, "正", "體", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の字", "の", -1); + _g_assert_strv_equal (strv, "正", "體", "字", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正體字", "", -1); + _g_assert_strv_equal (strv, "正", "體", "字", NULL); + g_strfreev (strv); + + strv = _g_utf8_split (NULL, NULL, 0); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("", "", 0); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", NULL, 0); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split (NULL, NULL, 1); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("", "", 1); + _g_assert_strv_equal (strv, "", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", NULL, 1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", "", 1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", "正", 1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", "の", 1); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の", "の", 1); + _g_assert_strv_equal (strv, "正の", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體", "の", 1); + _g_assert_strv_equal (strv, "正の體", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の", "の", 1); + _g_assert_strv_equal (strv, "正の體の", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正", "の", 2); + _g_assert_strv_equal (strv, "正", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體", "の", 2); + _g_assert_strv_equal (strv, "正", "體", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の", "の", 2); + _g_assert_strv_equal (strv, "正", "體の", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の字", "の", 2); + _g_assert_strv_equal (strv, "正", "體の字", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の字", "の", 3); + _g_assert_strv_equal (strv, "正", "體", "字", NULL); + g_strfreev (strv); + + strv = _g_utf8_split ("正の體の字", "の", 4); + _g_assert_strv_equal (strv, "正", "體", "字", NULL); + g_strfreev (strv); +} + + +static void +test_g_utf8_split_template_all (void) +{ + char **strv; + + strv = _g_utf8_split_template (""); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("xxx##yy#"); + _g_assert_strv_equal (strv, "xxx", "##", "yy", "#", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日"); + _g_assert_strv_equal (strv, "日", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日本"); + _g_assert_strv_equal (strv, "日本", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("#"); + _g_assert_strv_equal (strv, "#", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("##"); + _g_assert_strv_equal (strv, "##", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("#日"); + _g_assert_strv_equal (strv, "#", "日", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日#"); + _g_assert_strv_equal (strv, "日", "#", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日#本"); + _g_assert_strv_equal (strv, "日", "#", "本", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日#本#"); + _g_assert_strv_equal (strv, "日", "#", "本", "#", NULL); + g_strfreev (strv); + + strv = _g_utf8_split_template ("日#本#語"); + _g_assert_strv_equal (strv, "日", "#", "本", "#", "語", NULL); + g_strfreev (strv); +} + + +static void +test_g_utf8_rstrip_all (void) +{ + g_assert_cmpstr (_g_utf8_rstrip (NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_rstrip (""), ==, ""); + g_assert_cmpstr (_g_utf8_rstrip (" "), ==, ""); + g_assert_cmpstr (_g_utf8_rstrip (" "), ==, ""); + g_assert_cmpstr (_g_utf8_rstrip ("日"), ==, "日"); + g_assert_cmpstr (_g_utf8_rstrip (" 日"), ==, " 日"); + g_assert_cmpstr (_g_utf8_rstrip ("日 "), ==, "日"); + g_assert_cmpstr (_g_utf8_rstrip ("日 "), ==, "日"); + g_assert_cmpstr (_g_utf8_rstrip (" 日 "), ==, " 日"); + g_assert_cmpstr (_g_utf8_rstrip (" 日 "), ==, " 日"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本"), ==, "日 本"); + g_assert_cmpstr (_g_utf8_rstrip (" 日 本"), ==, " 日 本"); + g_assert_cmpstr (_g_utf8_rstrip (" 日 本"), ==, " 日 本"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本 "), ==, "日 本"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本 "), ==, "日 本"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本"), ==, "日 本"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本 "), ==, "日 本"); + g_assert_cmpstr (_g_utf8_rstrip ("日 本 "), ==, "日 本"); +} + + +static void +test_g_utf8_strip_all (void) +{ + g_assert_cmpstr (_g_utf8_strip (NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_strip (""), ==, ""); + g_assert_cmpstr (_g_utf8_strip (" "), ==, ""); + g_assert_cmpstr (_g_utf8_strip (" "), ==, ""); + g_assert_cmpstr (_g_utf8_strip ("日"), ==, "日"); + g_assert_cmpstr (_g_utf8_strip (" 日"), ==, "日"); + g_assert_cmpstr (_g_utf8_strip ("日 "), ==, "日"); + g_assert_cmpstr (_g_utf8_strip (" 日 "), ==, "日"); + g_assert_cmpstr (_g_utf8_strip ("日 本"), ==, "日 本"); + g_assert_cmpstr (_g_utf8_strip (" 日 本"), ==, "日 本"); + g_assert_cmpstr (_g_utf8_strip ("日 本 "), ==, "日 本"); +} + + +static void +test_g_utf8_translate_all (void) +{ + g_assert_cmpstr (_g_utf8_translate (NULL, NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_translate (NULL, "*", ".*", NULL), ==, NULL); + g_assert_cmpstr (_g_utf8_translate ("*", "*", "", NULL), ==, ""); + g_assert_cmpstr (_g_utf8_translate ("**", "*", "", NULL), ==, ""); + g_assert_cmpstr (_g_utf8_translate ("日", "*", "", NULL), ==, "日"); + g_assert_cmpstr (_g_utf8_translate ("*日*", NULL), ==, "*日*"); + g_assert_cmpstr (_g_utf8_translate ("*日*", "*", ".*", NULL), ==, ".*日.*"); + g_assert_cmpstr (_g_utf8_translate ("*日*", "*", "", NULL), ==, "日"); + g_assert_cmpstr (_g_utf8_translate ("*日*本.語", ".", "\\.", "*", ".*", NULL), ==, ".*日.*本\\.語"); +} + + +static void +test_g_path_get_extension_all (void) +{ + g_assert_cmpstr (_g_path_get_extension ("日本.tar"), ==, ".tar"); + g_assert_cmpstr (_g_path_get_extension ("日本.tar.xz"), ==, ".tar.xz"); + g_assert_cmpstr (_g_path_get_extension ("日本.xz"), ==, ".xz"); + g_assert_null (_g_path_get_extension ("日本")); +} + + +static void +test_g_path_remove_extension_all (void) +{ + g_assert_cmpstr (_g_path_remove_extension ("日本.tar"), ==, "日本"); + g_assert_cmpstr (_g_path_remove_extension ("日本.tar.xz"), ==, "日本"); + g_assert_cmpstr (_g_path_remove_extension ("日本"), ==, "日本"); +} + + +static void +test_g_path_is_parent_all (void) +{ + g_assert_true (_g_path_is_parent ("/日", "/日")); + g_assert_true (_g_path_is_parent ("/日", "/日/")); + g_assert_true (_g_path_is_parent ("/日/", "/日")); + + g_assert_true (_g_path_is_parent ("/", "/日/本")); + g_assert_true (_g_path_is_parent ("/日", "/日/本")); + g_assert_true (_g_path_is_parent ("/日/", "/日/本")); + + g_assert_false (_g_path_is_parent ("/日/本", "/日")); + g_assert_false (_g_path_is_parent ("/日/本", "/日/")); + g_assert_false (_g_path_is_parent ("/日/本/語", "/日/本")); + g_assert_false (_g_path_is_parent ("/日/本/語", "/日/本/")); + + g_assert_false (_g_path_is_parent ("/日/", "/日本")); + g_assert_false (_g_path_is_parent ("/日", "/日本")); + + g_assert_false (_g_path_is_parent ("/本", "/日本")); + g_assert_false (_g_path_is_parent ("/本", "/日")); + g_assert_false (_g_path_is_parent ("/本/", "/日")); + g_assert_false (_g_path_is_parent ("/本", "/日/")); + g_assert_false (_g_path_is_parent ("/本/", "/日/")); +} + + +static void +test_g_path_join_components (const char *expected, ...) +{ + va_list args; + const char *str; + GList *str_list; + char **strv; + char *result; + + str_list = NULL; + va_start (args, expected); + while ((str = va_arg (args, const char *)) != NULL) + str_list = g_list_prepend (str_list, g_strdup (str)); + va_end (args); + str_list = g_list_reverse (str_list); + + strv = _g_string_list_to_strv (str_list); + result = _g_path_join_components (strv); + g_assert_cmpstr (result, ==, expected); + + g_free (result); + g_strfreev (strv); + _g_string_list_free (str_list); +} + + +static void +test_g_path_join_components_all (void) +{ + test_g_path_join_components ("", NULL); + test_g_path_join_components ("", "", NULL); + test_g_path_join_components ("/", "", "", NULL); + test_g_path_join_components ("/", "", "/", NULL); + + test_g_path_join_components ("/", "/", NULL); + test_g_path_join_components ("/", "/", "", NULL); + test_g_path_join_components ("/", "/", "/", NULL); + + test_g_path_join_components ("本", "本", NULL); + test_g_path_join_components ("/本", "/本", NULL); + test_g_path_join_components ("本/", "本/", NULL); + test_g_path_join_components ("/本/", "/本/", NULL); + + test_g_path_join_components ("本/", "本", "", NULL); + test_g_path_join_components ("/本/", "/本", "", NULL); + test_g_path_join_components ("本/", "本/", "", NULL); + test_g_path_join_components ("/本/", "/本/", "", NULL); + + test_g_path_join_components ("本/", "本", "/", NULL); + test_g_path_join_components ("/本/", "/本", "/", NULL); + test_g_path_join_components ("本/", "本/", "/", NULL); + test_g_path_join_components ("/本/", "/本/", "/", NULL); + + test_g_path_join_components ("/本/", "/本", "", NULL); + test_g_path_join_components ("/本/", "/本", "", "", NULL); + test_g_path_join_components ("/本/", "/本", "/", NULL); + test_g_path_join_components ("/本/", "/本", "/", "/", NULL); + + test_g_path_join_components ("/本", "/", "本", NULL); + test_g_path_join_components ("/本", "/", "/本", NULL); + test_g_path_join_components ("/本/", "/", "/本/", NULL); + test_g_path_join_components ("/本", "/", "/", "本", NULL); + test_g_path_join_components ("/本", "/", "/", "/本", NULL); + test_g_path_join_components ("/本/", "/", "/", "/本/", NULL); +} + + +static void +test_g_path_split_components_all (void) +{ + char **strv; + + strv = _g_path_split_components (NULL, NULL); + _g_assert_strv_equal (strv, NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("", NULL); + _g_assert_strv_equal (strv, "", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/", NULL); + _g_assert_strv_equal (strv, "/", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("//", NULL); + _g_assert_strv_equal (strv, "/", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("///", NULL); + _g_assert_strv_equal (strv, "/", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("//本", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本/", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本//", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("//本//", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本/日", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本/日/", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("//本/日/", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本//日/", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("/本/日//", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本", NULL); + _g_assert_strv_equal (strv, "本", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本日", NULL); + _g_assert_strv_equal (strv, "本日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本/日", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本//日", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本//日/", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); + + strv = _g_path_split_components ("本//日//", NULL); + _g_assert_strv_equal (strv, "本", "日", NULL); + g_strfreev (strv); +} + + +static void +test_g_path_get_relative_all (void) +{ + g_assert_cmpstr (_g_path_get_relative ("/日/本/語", "/日/諸星"), ==, "../本/語"); + g_assert_cmpstr (_g_path_get_relative ("/日/本/語", "/日"), ==, "本/語"); + g_assert_cmpstr (_g_path_get_relative ("/日/本/語", "/日/"), ==, "本/語"); + g_assert_cmpstr (_g_path_get_relative ("/日/本", "/日/本"), ==, "./"); + g_assert_cmpstr (_g_path_get_relative ("/日", "/日"), ==, "./"); + g_assert_cmpstr (_g_path_get_relative ("/", "/"), ==, "./"); + g_assert_cmpstr (_g_path_get_relative ("/日/本語", "/日/本"), ==, "../本語"); + g_assert_cmpstr (_g_path_get_relative ("/日/本", "/日/本語"), ==, "../本"); +} + + +static void +test_g_uri_get_relative_all (void) +{ + g_assert_cmpstr (_g_uri_get_relative_path ("file:///日/本/語", "file:///日/諸星"), ==, "../本/語"); + g_assert_cmpstr (_g_uri_get_relative_path ("file:///日/本/語", "file:///日"), ==, "本/語"); + g_assert_cmpstr (_g_uri_get_relative_path ("smb:///日/本/語", "file:///日/諸星"), ==, "smb:///日/本/語"); + g_assert_cmpstr (_g_uri_get_relative_path ("file:///日/本", "file:///日/本"), ==, "./"); +} + + +static void +test_g_uri_get_scheme_all (void) +{ + g_assert_cmpstr (_g_uri_get_scheme (NULL), ==, NULL); + g_assert_cmpstr (_g_uri_get_scheme (""), ==, NULL); + g_assert_cmpstr (_g_uri_get_scheme ("/"), ==, NULL); + g_assert_cmpstr (_g_uri_get_scheme ("file:"), ==, "file"); + g_assert_cmpstr (_g_uri_get_scheme ("file://"), ==, "file"); + g_assert_cmpstr (_g_uri_get_scheme ("file:///"), ==, "file"); + g_assert_cmpstr (_g_uri_get_scheme ("file:///日/本/語"), ==, "file"); + g_assert_cmpstr (_g_uri_get_scheme ("sftp+file:///日/本/語"), ==, "sftp+file"); +} + + +static void +test_g_uri_get_path_all (void) +{ + g_assert_cmpstr (_g_uri_get_path (NULL), ==, NULL); + g_assert_cmpstr (_g_uri_get_path (""), ==, NULL); + g_assert_cmpstr (_g_uri_get_path ("file:"), ==, NULL); + g_assert_cmpstr (_g_uri_get_path ("file:/"), ==, "/"); + g_assert_cmpstr (_g_uri_get_path ("file://"), ==, NULL); + g_assert_cmpstr (_g_uri_get_path ("file:///"), ==, "/"); + g_assert_cmpstr (_g_uri_get_path ("file:///%E6%97%A5"), ==, "/日"); + g_assert_cmpstr (_g_uri_get_path ("file:///%E6%97%A5/"), ==, "/日/"); + g_assert_cmpstr (_g_uri_get_path ("file:///%E6%97%A5/%E6%9C%AC/%E8%AA%9E"), ==, "/日/本/語"); +} + + +static void +test_g_uri_is_parent_all (void) +{ + g_assert_false (_g_uri_is_parent (NULL, NULL)); + g_assert_false (_g_uri_is_parent ("", "")); + g_assert_false (_g_uri_is_parent ("file:", "file:")); + g_assert_true (_g_uri_is_parent ("file:/日", "file:/日/本")); + g_assert_true (_g_uri_is_parent ("file:///日", "file:///日/本")); + g_assert_true (_g_uri_is_parent ("file:///日/本", "file:///日/本")); + g_assert_true (_g_uri_is_parent ("file:///日/本/", "file:///日/本")); + g_assert_true (_g_uri_is_parent ("file:///日/本", "file:///日/本/")); + g_assert_true (_g_uri_is_parent ("file:///日/本/", "file:///日/本/")); + g_assert_false (_g_uri_is_parent ("file:/日", "smb:/日/本")); +} + + +static void +test_g_uri_remove_extension_all (void) +{ + g_assert_cmpstr (_g_uri_remove_extension ("file:///日本"), ==, "file:///日本"); + g_assert_cmpstr (_g_uri_remove_extension ("file:///日本.tar"), ==, "file:///日本"); + g_assert_cmpstr (_g_uri_remove_extension ("file:///日本.tar.xz"), ==, "file:///日本"); + g_assert_cmpstr (_g_uri_remove_extension ("file://諸:星@日:123/日本.tar.xz"), ==, "file://諸:星@日:123/日本"); +} + + int main (int argc, char *argv[]) { + setlocale (LC_ALL, ""); g_test_init (&argc, &argv, NULL); - g_test_add_func ("/glib-utils/_g_rand_string/1", test_g_rand_string); + g_test_add_func ("/glib-utils/_g_utf8_after_ascii_space", test_g_utf8_after_ascii_space); + g_test_add_func ("/glib-utils/_g_utf8_all_spaces", test_g_utf8_all_spaces_space); + g_test_add_func ("/glib-utils/_g_utf8_escape_xml", test_g_utf8_escape_xml_space); + g_test_add_func ("/glib-utils/_g_utf8_find_str", test_g_utf8_find_str); + g_test_add_func ("/glib-utils/_g_utf8_has_prefix", test_g_utf8_has_prefix); + g_test_add_func ("/glib-utils/_g_utf8_last_char", test_g_utf8_last_char_all); + g_test_add_func ("/glib-utils/_g_utf8_n_equal", test_g_utf8_n_equal_all); + g_test_add_func ("/glib-utils/_g_utf8_replace_str", test_g_utf8_replace_str_all); + g_test_add_func ("/glib-utils/_g_utf8_rstrip", test_g_utf8_rstrip_all); + g_test_add_func ("/glib-utils/_g_utf8_split", test_g_utf8_split_all); + g_test_add_func ("/glib-utils/_g_utf8_split_template", test_g_utf8_split_template_all); + g_test_add_func ("/glib-utils/_g_utf8_strip", test_g_utf8_strip_all); + g_test_add_func ("/glib-utils/_g_utf8_translate", test_g_utf8_translate_all); + + g_test_add_func ("/glib-utils/_g_path_get_basename", test_g_path_get_basename_all); + g_test_add_func ("/glib-utils/_g_path_get_extension", test_g_path_get_extension_all); + g_test_add_func ("/glib-utils/_g_path_get_parent", test_g_path_get_parent_all); + g_test_add_func ("/glib-utils/_g_path_get_relative", test_g_path_get_relative_all); + g_test_add_func ("/glib-utils/_g_path_is_parent", test_g_path_is_parent_all); + g_test_add_func ("/glib-utils/_g_path_join_components", test_g_path_join_components_all); + g_test_add_func ("/glib-utils/_g_path_remove_extension", test_g_path_remove_extension_all); + g_test_add_func ("/glib-utils/_g_path_split_components", test_g_path_split_components_all); + + g_test_add_func ("/glib-utils/_g_uri_append_path", test_g_uri_append_path_all); + g_test_add_func ("/glib-utils/_g_uri_from_path", test_g_uri_from_path_all); + g_test_add_func ("/glib-utils/_g_uri_get_basename", test_g_uri_get_basename_all); + g_test_add_func ("/glib-utils/_g_uri_get_parent", test_g_uri_get_parent_all); + g_test_add_func ("/glib-utils/_g_uri_get_relative_path", test_g_uri_get_relative_all); + g_test_add_func ("/glib-utils/_g_uri_get_scheme", test_g_uri_get_scheme_all); + g_test_add_func ("/glib-utils/_g_uri_get_path", test_g_uri_get_path_all); + g_test_add_func ("/glib-utils/_g_uri_is_parent", test_g_uri_is_parent_all); + g_test_add_func ("/glib-utils/_g_uri_remove_extension", test_g_uri_remove_extension_all); + + g_test_add_func ("/glib-utils/_g_file_get_display_name", test_g_file_get_display_name_all); + g_test_add_func ("/glib-utils/_g_rand_string", test_g_rand_string); g_test_add_func ("/glib-utils/regex", test_regexp); - g_test_add_func ("/glib-utils/_g_utf8_has_prefix/1", test_g_utf8_has_prefix); - g_test_add_func ("/glib-utils/_g_utf8_first_space/1", test_g_utf8_first_space); - g_test_add_func ("/glib-utils/remove_lang_from_utf8_string/1", test_remove_lang_from_utf8_string_all); + g_test_add_func ("/glib-utils/remove_lang_from_utf8_string", test_remove_lang_from_utf8_string_all); return g_test_run (); } diff -Nru gthumb-3.8.3/gthumb/test-gtk-utils.c gthumb-3.9.1/gthumb/test-gtk-utils.c --- gthumb-3.8.3/gthumb/test-gtk-utils.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/test-gtk-utils.c 2020-03-07 19:03:13.530287500 +0000 @@ -0,0 +1,81 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include +#include +#include +#include "gtk-utils.h" + + +static char * +test_gtk_tree_path_get_previous_or_parent (const char *path) +{ + GtkTreePath *tree_path; + GtkTreePath *result; + char *result_s; + + tree_path = gtk_tree_path_new_from_string (path); + if (tree_path == NULL) + return NULL; + + result = _gtk_tree_path_get_previous_or_parent (tree_path); + if (result != NULL) { + result_s = gtk_tree_path_to_string (result); + gtk_tree_path_free (result); + } + else + result_s = NULL; + + gtk_tree_path_free (tree_path); + + return result_s; +} + + +static void +test_gtk_tree_path_get_previous_or_parent_all (void) +{ + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0"), ==, NULL); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("1"), ==, "0"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("2"), ==, "1"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:0"), ==, "0"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:1"), ==, "0:0"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:2"), ==, "0:1"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:0:0"), ==, "0:0"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:0:1"), ==, "0:0:0"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("0:0:2"), ==, "0:0:1"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("4:10:0:3"), ==, "4:10:0:2"); + g_assert_cmpstr (test_gtk_tree_path_get_previous_or_parent ("4:10:0"), ==, "4:10"); +} + + +int +main (int argc, + char *argv[]) +{ + setlocale (LC_ALL, ""); + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/gtk-utils/_gtk_tree_path_get_previous_or_parent", test_gtk_tree_path_get_previous_or_parent_all); + + return g_test_run (); +} diff -Nru gthumb-3.8.3/gthumb/typedefs.h gthumb-3.9.1/gthumb/typedefs.h --- gthumb-3.8.3/gthumb/typedefs.h 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/gthumb/typedefs.h 2020-03-07 19:03:13.530287500 +0000 @@ -31,6 +31,7 @@ #define FILTERS_FILE "filters.xml" #define TAGS_FILE "tags.xml" #define FILE_CACHE "cache" +#define SHORTCUTS_FILE "shortcuts.xml" typedef enum { @@ -130,6 +131,40 @@ } GthColorSpace; +typedef enum /*< skip >*/ { + GTH_ZOOM_IN, + GTH_ZOOM_OUT +} GthZoomType; + + +typedef enum /*< skip >*/ { + /* Shortcut handled by Gtk, not customizable, specified for + * documentation. */ + GTH_SHORTCUT_CONTEXT_INTERNAL = 1 << 1, + + /* Shortcut handled in gth_window_activate_shortcut, not customizable, + * specified for documentation. */ + GTH_SHORTCUT_CONTEXT_FIXED = 1 << 2, + + /* Shortcut available when the window is in browser mode. */ + GTH_SHORTCUT_CONTEXT_BROWSER = 1 << 3, + + /* Shortcut available when the window is in viewer mode. */ + GTH_SHORTCUT_CONTEXT_VIEWER = 1 << 4, + + /* Shortcut available in slideshows. */ + GTH_SHORTCUT_CONTEXT_SLIDESHOW = 1 << 5, + + /* Entry used for documentation only. */ + GTH_SHORTCUT_CONTEXT_DOC = 1 << 6, + + /* Aggregated values: */ + + GTH_SHORTCUT_CONTEXT_BROWSER_VIEWER = (GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_VIEWER), + GTH_SHORTCUT_CONTEXT_ANY = (GTH_SHORTCUT_CONTEXT_BROWSER | GTH_SHORTCUT_CONTEXT_VIEWER | GTH_SHORTCUT_CONTEXT_SLIDESHOW), +} GthShortcutContext; + + typedef void (*DataFunc) (gpointer user_data); typedef void (*ReadyFunc) (GError *error, gpointer user_data); diff -Nru gthumb-3.8.3/gthumb/uri-utils.c gthumb-3.9.1/gthumb/uri-utils.c --- gthumb-3.8.3/gthumb/uri-utils.c 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/uri-utils.c 2020-03-07 19:03:13.530287500 +0000 @@ -0,0 +1,1122 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#include +#include "glib-utils.h" +#include "uri-utils.h" + + +#define _G_URI_RESERVED_CHARS_IN_HOST "[]" + + +/* -- _g_uri_parse -- + * + * References: + * + * https://tools.ietf.org/html/rfc3986 + * https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#Generic_syntax + */ + + +typedef struct { + const char *scheme; + gsize scheme_size; + const char *userinfo; + gsize userinfo_size; + const char *host; + gsize host_size; + const char *port; + gsize port_size; + const char *path; + gsize path_size; + const char *query; + gsize query_size; + const char *fragment; + gsize fragment_size; +} UriInfo; + + +typedef enum { + URI_STATE_ERROR, + URI_STATE_START, + URI_STATE_SCHEME, + URI_STATE_HIER, + URI_STATE_AUTHORITY, + URI_STATE_USERINFO_OR_HOST, + URI_STATE_IP_LITERAL, + URI_STATE_HOST, + URI_STATE_PORT, + URI_STATE_PATH, + URI_STATE_QUERY, + URI_STATE_FRAGMENT +} UriState; + + +static gboolean +_g_uri_parse (const char *uri, + UriInfo *info) +{ + UriState state; + const char *p; + gunichar c; + const char *part_begin; + + if (uri == NULL) + return FALSE; + + if (! g_utf8_validate (uri, -1, NULL)) + return FALSE; + +#define CODE(x) do { x; } while (FALSE) +#define PART_SET(dest, begin, size) CODE (info->dest = begin; info->dest##_size = size) +#define PART_INIT(dest) PART_SET(dest, NULL, 0) +#define PART_BEGIN(v) CODE (state = v; part_begin = p) +#define PART_CONTINUE(v) CODE (/* void */) +#define PART_END(dest) PART_SET(dest, part_begin, p - part_begin) +#define NEXT_CHAR CODE (p = next_p; next_p = g_utf8_next_char (p)) + + PART_INIT (scheme); + PART_INIT (userinfo); + PART_INIT (host); + PART_INIT (port); + PART_INIT (path); + PART_INIT (query); + PART_INIT (fragment); + + state = URI_STATE_START; + p = uri; + while ((state != URI_STATE_ERROR) && (c = g_utf8_get_char (p)) != 0) { + const char *next_p = g_utf8_next_char (p); + gunichar next_c = g_utf8_get_char (next_p); + + switch (state) { + case URI_STATE_START: + if (c == '/') + PART_BEGIN (URI_STATE_PATH); + else if (g_unichar_isalpha (c)) + PART_BEGIN (URI_STATE_SCHEME); + else + state = URI_STATE_ERROR; + break; + + case URI_STATE_SCHEME: + if (c == ':') { + PART_END (scheme); + state = URI_STATE_HIER; + } + else if (g_unichar_isalpha (c) + || g_unichar_isdigit (c) + || (c == '+') + || (c == '-') + || (c == '.')) + { + PART_CONTINUE (URI_STATE_SCHEME); + } + else + state = URI_STATE_ERROR; + break; + + case URI_STATE_HIER: + if ((c == '/') && (next_c == '/')) { + state = URI_STATE_AUTHORITY; + NEXT_CHAR; + } + else + PART_BEGIN (URI_STATE_PATH); + break; + + case URI_STATE_AUTHORITY: + if (c == '/') + PART_BEGIN (URI_STATE_PATH); + else if (c == '[') + PART_BEGIN (URI_STATE_IP_LITERAL); + else + PART_BEGIN (URI_STATE_USERINFO_OR_HOST); + break; + + case URI_STATE_IP_LITERAL: + PART_CONTINUE (URI_STATE_IP_LITERAL); + if (c == ']') { + PART_END (host); + + if (next_c == '?') { + NEXT_CHAR; + NEXT_CHAR; + PART_BEGIN (URI_STATE_QUERY); + } + else if (next_c == '#') { + NEXT_CHAR; + NEXT_CHAR; + PART_BEGIN (URI_STATE_FRAGMENT); + } + else if (next_c == ':') { + NEXT_CHAR; + NEXT_CHAR; + PART_BEGIN (URI_STATE_PORT); + } + else { + NEXT_CHAR; + PART_BEGIN (URI_STATE_PATH); + } + } + break; + + case URI_STATE_USERINFO_OR_HOST: + case URI_STATE_HOST: + if (c == '@') { + if (state == URI_STATE_HOST) { + state = URI_STATE_ERROR; + } + else { + PART_END (userinfo); + + /* After the userinfo the host is mandatory. */ + + if ((next_c == '/') + || (next_c == '?') + || (next_c == '#') + || (next_c == ':')) + { + state = URI_STATE_ERROR; + } + else if (next_c == '[') { + NEXT_CHAR; + PART_BEGIN (URI_STATE_IP_LITERAL); + } + else { + NEXT_CHAR; + PART_BEGIN (URI_STATE_HOST); + } + } + } + else if (c == '/') { + PART_END (host); + PART_BEGIN (URI_STATE_PATH); + } + else if (c == '?') { + PART_END (host); + NEXT_CHAR; + PART_BEGIN (URI_STATE_QUERY); + } + else if (c == '#') { + PART_END (host); + NEXT_CHAR; + PART_BEGIN (URI_STATE_FRAGMENT); + } + else if (c == ':') { + + /* Possible ambiguity: the colon can be part of + * the userinfo as well as separate host and port. */ + + if (state == URI_STATE_HOST) { + PART_END (host); + NEXT_CHAR; + PART_BEGIN (URI_STATE_PORT); + } + else { + gboolean is_userinfo = TRUE; + const char *forward_p = next_p; + + /* Search for @ until the end of the authority part. */ + + while (is_userinfo) { + gunichar forward_c = g_utf8_get_char (forward_p); + + if ((forward_c == 0) + || (forward_c == '/') + || (forward_c == '?') + || (forward_c == '#')) + { + is_userinfo = FALSE; + break; + } + else if (forward_c == '@') { + is_userinfo = TRUE; + break; + } + + forward_p = g_utf8_next_char (forward_p); + } + + if (is_userinfo) { + PART_CONTINUE (URI_STATE_USERINFO_OR_HOST); + } + else { + PART_END (host); + NEXT_CHAR; + PART_BEGIN (URI_STATE_PORT); + } + } + } + else + PART_CONTINUE (URI_STATE_USERINFO_OR_HOST); + break; + + case URI_STATE_PORT: + if (g_unichar_isdigit (c)) { + PART_CONTINUE (URI_STATE_PORT); + } + else if (c == '/') { + PART_END (port); + PART_BEGIN (URI_STATE_PATH); + } + else + state = URI_STATE_ERROR; + break; + + case URI_STATE_PATH: + if (c == '?') { + PART_END (path); + NEXT_CHAR; + PART_BEGIN (URI_STATE_QUERY); + } + else if (c == '#') { + PART_END (path); + NEXT_CHAR; + PART_BEGIN (URI_STATE_FRAGMENT); + } + else + PART_CONTINUE (URI_STATE_PATH); + break; + + case URI_STATE_QUERY: + if (c == '#') { + PART_END (query); + NEXT_CHAR; + PART_BEGIN (URI_STATE_FRAGMENT); + } + else + PART_CONTINUE (URI_STATE_QUERY); + break; + + case URI_STATE_FRAGMENT: + PART_CONTINUE (URI_STATE_FRAGMENT); + break; + + case URI_STATE_ERROR: + break; + } + + p = next_p; + } + + switch (state) { + case URI_STATE_HIER: + case URI_STATE_AUTHORITY: + break; + + case URI_STATE_USERINFO_OR_HOST: + case URI_STATE_HOST: + PART_END (host); + break; + + case URI_STATE_PORT: + PART_END (port); + break; + + case URI_STATE_PATH: + PART_END (path); + break; + + case URI_STATE_QUERY: + PART_END (query); + break; + + case URI_STATE_FRAGMENT: + PART_END (fragment); + break; + + default: + state = URI_STATE_ERROR; + break; + } + +#undef NEXT_CHAR +#undef PART_END +#undef PART_CONTINUE +#undef PART_BEGIN +#undef PART_INIT +#undef PART_SET +#undef CODE + + return state != URI_STATE_ERROR; +} + + +static char * +_g_uri_info_unescape_part (const char *part, + gsize part_size) +{ + if (part_size == 0) + return NULL; + + return g_uri_unescape_segment (part, + part + part_size, + NULL); +} + + +gboolean +_g_uri_split (const char *uri, + UriParts *parts) +{ + UriInfo info; + + if (! _g_uri_parse (uri, &info)) + return FALSE; + + parts->scheme = g_strndup (info.scheme, info.scheme_size); + parts->userinfo = _g_uri_info_unescape_part (info.userinfo, info.userinfo_size); + parts->host = _g_uri_info_unescape_part (info.host, info.host_size); + parts->port = g_strndup (info.port, info.port_size); + parts->path = _g_uri_info_unescape_part (info.path, info.path_size); + parts->query = g_strndup (info.query, info.query_size); + parts->fragment = g_strndup (info.fragment, info.fragment_size); + + return TRUE; +} + + +/* Format: + * + * URI = scheme:[//authority]path[?query][#fragment] + * authority = [userinfo@]host[:port] + */ + + +static void +_g_string_append_uri_escaped (GString *str, + const char *val, + const char *reserved_chars_allowed) +{ + char *esc_val; + + esc_val = g_uri_escape_string (val, reserved_chars_allowed, TRUE); + g_string_append (str, esc_val); + + g_free (esc_val); +} + + +char * +_g_uri_join (UriParts *parts) +{ + GString *uri; + + if (parts == NULL) + return NULL; + + uri = g_string_new (""); + + if (parts->scheme != NULL) { + g_string_append (uri, parts->scheme); + g_string_append (uri, "://"); + + if (parts->host != NULL) { + if (parts->userinfo != NULL) { + _g_string_append_uri_escaped (uri, + parts->userinfo, + G_URI_RESERVED_CHARS_ALLOWED_IN_USERINFO); + g_string_append_c (uri, '@'); + } + + _g_string_append_uri_escaped (uri, parts->host, _G_URI_RESERVED_CHARS_IN_HOST); + + if (parts->port != NULL) { + g_string_append_c (uri, ':'); + g_string_append (uri, parts->port); + } + } + } + + if ((parts->path != NULL) && (*parts->path != 0)) + _g_string_append_uri_escaped (uri, + parts->path, + G_URI_RESERVED_CHARS_ALLOWED_IN_PATH); + else + g_string_append (uri, "/"); + + if (parts->query != NULL) { + g_string_append_c (uri, '?'); + g_string_append (uri, parts->query); + } + + if (parts->fragment != NULL) { + g_string_append_c (uri, '#'); + g_string_append (uri, parts->fragment); + } + + return g_string_free (uri, FALSE); +} + + +void +_g_uri_parts_init (UriParts *parts) +{ + parts->scheme = NULL; + parts->userinfo = NULL; + parts->host = NULL; + parts->port = NULL; + parts->path = NULL; + parts->query = NULL; + parts->fragment = NULL; +} + + +void +_g_uri_parts_clear (UriParts *parts) +{ + g_free (parts->scheme); + g_free (parts->userinfo); + g_free (parts->host); + g_free (parts->port); + g_free (parts->path); + g_free (parts->query); + g_free (parts->fragment); +} + + +char * +_g_uri_get_part (const char *uri, + UriPart part) +{ + UriInfo info; + const char *begin; + gsize size; + + if (! _g_uri_parse (uri, &info)) + return NULL; + + switch (part) { + case URI_PART_SCHEME: + begin = info.scheme; + size = info.scheme_size; + break; + + case URI_PART_USERINFO: + return _g_uri_info_unescape_part (info.userinfo, info.userinfo_size); + + case URI_PART_HOST: + begin = info.host; + size = info.host_size; + break; + + case URI_PART_PORT: + begin = info.port; + size = info.port_size; + break; + + case URI_PART_PATH: + return _g_uri_info_unescape_part (info.path, info.path_size); + + case URI_PART_QUERY: + begin = info.query; + size = info.query_size; + break; + + case URI_PART_FRAGMENT: + begin = info.fragment; + size = info.fragment_size; + break; + } + + return g_strndup (begin, size); +} + + +char * +_g_uri_get_path (const char *uri) +{ + UriInfo info; + + if (! _g_uri_parse (uri, &info)) + return NULL; + + return _g_uri_info_unescape_part (info.path, info.path_size); +} + + +char * +_g_uri_get_basename (const char *uri) +{ + char *path; + char *result; + + path = _g_uri_get_path (uri); + result = g_strdup (_g_path_get_basename (path)); + + g_free (path); + + return result; +} + + +char * +_g_uri_get_extension (const char *uri) +{ + char *path; + char *result; + + path = _g_uri_get_path (uri); + result = g_strdup (_g_path_get_extension (path)); + + g_free (path); + + return result; +} + + +char * +_g_uri_get_scheme (const char *uri) +{ + UriInfo info; + + if (_g_uri_parse (uri, &info)) + return _g_utf8_strndup (info.scheme, info.scheme_size); + else + return NULL; +} + + +char * +_g_uri_get_relative_path (const char *uri, + const char *base) +{ + UriInfo uri_info; + UriInfo base_info; + char *uri_path; + char *base_path; + char *rel_uri; + + if (! _g_uri_parse (uri, &uri_info)) + return NULL; + + if (! _g_uri_parse (base, &base_info)) + return g_strdup (uri); + + if ((uri_info.scheme_size != base_info.scheme_size) + || ! _g_utf8_n_equal (uri_info.scheme, + base_info.scheme, + uri_info.scheme_size)) + { + return g_strdup (uri); + } + + uri_path = _g_utf8_strndup (uri_info.path, uri_info.path_size); + base_path = _g_utf8_strndup (base_info.path, base_info.path_size); + rel_uri = _g_path_get_relative (uri_path, base_path); + + g_free (uri_path); + g_free (base_path); + + return rel_uri; +} + + +gboolean +_g_uri_is_parent (const char *uri, + const char *file) +{ + UriInfo uri_info; + UriInfo file_info; + char *path; + char *file_path; + gboolean result; + + if (! _g_uri_parse (uri, &uri_info)) + return FALSE; + + if (! _g_uri_parse (file, &file_info)) + return FALSE; + + if ((uri_info.scheme_size != file_info.scheme_size) + || ! _g_utf8_n_equal (uri_info.scheme, + file_info.scheme, + uri_info.scheme_size)) + { + return FALSE; + } + + path = _g_utf8_strndup (uri_info.path, uri_info.path_size); + file_path = _g_utf8_strndup (file_info.path, file_info.path_size); + result = _g_path_is_parent (path, file_path); + + g_free (file_path); + g_free (path); + + return result; +} + + +char * +_g_uri_get_parent (const char *uri) +{ + UriParts parts; + char *new_path; + char *new_uri; + + if (! _g_uri_split (uri, &parts)) + return NULL; + + new_path = _g_path_get_parent (parts.path); + _g_str_set (&parts.path, new_path); + _g_str_set (&parts.query, NULL); + _g_str_set (&parts.fragment, NULL); + new_uri = _g_uri_join (&parts); + + _g_uri_parts_clear (&parts); + g_free (new_path); + + return new_uri; +} + + +char * +_g_uri_remove_extension (const char *uri) +{ + UriParts parts; + char *new_path; + char *new_uri; + + if (! _g_uri_split (uri, &parts)) + return NULL; + + new_path = _g_path_remove_extension (parts.path); + _g_str_set (&parts.path, new_path); + _g_str_set (&parts.query, NULL); + _g_str_set (&parts.fragment, NULL); + new_uri = _g_uri_join (&parts); + + _g_uri_parts_clear (&parts); + g_free (new_path); + + return new_uri; +} + + +char * +_g_uri_from_path (const char *path) +{ + char *escaped; + char *uri; + + escaped = g_uri_escape_string (path, G_URI_RESERVED_CHARS_ALLOWED_IN_PATH, TRUE); + uri = g_strconcat ("file://", escaped, NULL); + + g_free (escaped); + + return uri; +} + + +const char * +_g_uri_get_home (void) +{ + static char *home = NULL; + + if (home == NULL) + home = _g_uri_from_path (g_get_home_dir ()); + + return home; +} + + +char * +_g_uri_append_path (const char *uri, + const char *path) +{ + UriParts parts; + char *new_path; + char *new_uri; + + if (! _g_uri_split (uri, &parts)) + return NULL; + + new_path = _g_path_join ((parts.path != NULL) ? parts.path : "/", path, NULL); + + g_free (parts.path); + parts.path = new_path; + new_uri = _g_uri_join (&parts); + + _g_uri_parts_clear (&parts); + + return new_uri; +} + + +/* -- _g_path_split_components -- */ + + +typedef enum { + COMP_STATE_START, + COMP_STATE_NEXT_NON_SEP_STARTS_COMP, + COMP_STATE_NEXT_SEP_ENDS_COMP, +} CompState; + + +char ** +_g_path_split_components (const char *path, + int *size) +{ + GList *comp_list; + int comp_n; + const char *comp_begin; + CompState state; + char **comp_v; + + comp_list = NULL; + comp_n = 0; + comp_begin = NULL; + state = COMP_STATE_START; + while (path != NULL) { + gunichar ch = g_utf8_get_char (path); + gboolean is_sep = (ch == '/') || (ch == 0); + + switch (state) { + case COMP_STATE_START: + if (ch == 0) { + break; + } + else if (is_sep) { + state = COMP_STATE_NEXT_NON_SEP_STARTS_COMP; + } + else { + comp_begin = path; + state = COMP_STATE_NEXT_SEP_ENDS_COMP; + } + break; + + case COMP_STATE_NEXT_NON_SEP_STARTS_COMP: + if (! is_sep) { + comp_begin = path; + state = COMP_STATE_NEXT_SEP_ENDS_COMP; + } + break; + + case COMP_STATE_NEXT_SEP_ENDS_COMP: + if (is_sep) { + comp_list = g_list_prepend (comp_list, g_strndup (comp_begin, path - comp_begin)); + comp_n++; + state = COMP_STATE_START; + } + break; + } + + if (ch == 0) + break; + path = g_utf8_next_char (path); + } + + if ((comp_n == 0) && (path != NULL)) { + const char *str = (state == COMP_STATE_START) ? "" : "/"; + comp_list = g_list_prepend (comp_list, g_strdup (str)); + comp_n++; + } + + comp_v = _g_strv_take_from_str_list (comp_list, comp_n); + if (size != NULL) + *size = comp_n; + + g_list_free (comp_list); + + return comp_v; +} + + +/* -- _g_path_join_components -- */ + + +static gboolean +_g_unichar_is_separator (gunichar ch) +{ + return ch == '/'; +} + + +char * +_g_path_join_components (char **comp_v) +{ + GString *path; + int i; + + if (comp_v == NULL) + return NULL; + + path = g_string_new (""); + for (i = 0; comp_v[i] != NULL; i++) { + const char *next = comp_v[i + 1]; + char *comp; + + /* If the next component starts with a separator + * trim the trailing separators from this component. */ + + if ((next != NULL) && (*next == '/')) + comp = _g_utf8_rstrip_func (comp_v[i], _g_unichar_is_separator); + else + comp = g_strdup (comp_v[i]); + g_string_append (path, comp); + + if ((comp != NULL) && (next != NULL) && (*next != '/')) { + const char *last_ch = _g_utf8_last_char (comp, NULL); + if ((last_ch != NULL) && (g_utf8_get_char (last_ch) != '/')) + g_string_append_c (path, '/'); + } + + g_free (comp); + } + + if ((path->len == 0) && (i > 1)) + g_string_append_c (path, '/'); + + return g_string_free (path, FALSE); +} + + +char * +_g_path_join (char *first, ...) +{ + va_list args; + const char *arg; + GList *arg_list; + int n_comp; + char **argv; + char *result; + + arg_list = g_list_prepend (NULL, g_strdup (first)); + n_comp = 1; + + va_start (args, first); + while ((arg = va_arg (args, const char *)) != NULL) { + arg_list = g_list_prepend (arg_list, g_strdup (arg)); + n_comp++; + } + va_end (args); + + argv = _g_strv_take_from_str_list (arg_list, n_comp); + result = _g_path_join_components (argv); + + g_strfreev (argv); + g_list_free (arg_list); + + return result; +} + + +const char * +_g_path_get_basename (const char *path) +{ + const char *last_non_sep; + const char *p; + + if (path == NULL) + return NULL; + + last_non_sep = NULL; + p = _g_utf8_last_char (path, NULL); + while (p != NULL) { + if (g_utf8_get_char (p) == '/') + break; + last_non_sep = p; + p = g_utf8_find_prev_char (path, p); + } + + return last_non_sep; +} + + +char * +_g_path_get_parent (const char *path) +{ + const char *p; + + p = _g_utf8_last_char (path, NULL); + while (p != NULL) { + if (g_utf8_get_char (p) == '/') + break; + p = g_utf8_find_prev_char (path, p); + } + + if (p == NULL) + return NULL; + + if (p == path) + return g_strdup ("/"); + + return g_strndup (path, p - path); +} + + +const char * +_g_path_get_extension (const char *path) +{ + char *p; + char *p2; + + if (path == NULL) + return NULL; + + p = g_utf8_strrchr (path, -1, '.'); + if (p == NULL) + return NULL; + + p2 = g_utf8_find_prev_char (path, p); + while (p2 != NULL) { + if (g_utf8_get_char (p2) == '.') + break; + p2 = g_utf8_find_prev_char (path, p2); + } + + if (_g_utf8_n_equal (p2, ".tar.", 5)) + p = p2; + + return p; +} + + +char * +_g_path_remove_extension (const char *path) +{ + char *new_path; + char *ext; + + if (path == NULL) + return NULL; + + new_path = g_strdup (path); + ext = (char *) _g_path_get_extension (new_path); + if (ext != NULL) + *ext = 0; + + return new_path; +} + + +gboolean +_g_path_is_parent (const char *dir, + const char *file) +{ + const char *dir_p = NULL; + const char *file_p = NULL; + const char *p; + gunichar dir_ch[3]; + gunichar file_ch[2]; + + if ((dir == NULL) || (file == NULL)) + return FALSE; + + while ((dir != NULL) && (file != NULL)) { + gunichar c1 = g_utf8_get_char (dir); + gunichar c2 = g_utf8_get_char (file); + + if ((c1 == 0) || (c2 == 0)) + break; + + if (c1 != c2) + break; + + dir_p = dir; + file_p = file; + + dir = g_utf8_next_char (dir); + file = g_utf8_next_char (file); + } + + /* dir and file have the same content until dir_p and file_p. */ + + /* dir_ch contains the last same char and the next two in dir. */ + + p = dir_p; + dir_ch[0] = (p != NULL) ? g_utf8_get_char (p) : 0; + + p = g_utf8_next_char (p); + dir_ch[1] = ((dir_ch[0] != 0) && (p != NULL)) ? g_utf8_get_char (p) : 0; + + p = g_utf8_next_char (p); + dir_ch[2] = ((dir_ch[1] != 0) && (p != NULL)) ? g_utf8_get_char (p) : 0; + + /* file_ch contains the last same char and the next one in file. */ + + p = file_p; + file_ch[0] = (p != NULL) ? g_utf8_get_char (p) : 0; + + p = g_utf8_next_char (p); + file_ch[1] = ((file_ch[0] != 0) && (p != NULL)) ? g_utf8_get_char (p) : 0; + + g_assert (dir_ch[0] == file_ch[0]); + + if ((dir_ch[1] == 0) && (file_ch[1] == 0)) + return TRUE; + + if ((dir_ch[1] == 0) && (file_ch[1] == '/')) + return TRUE; + + if ((dir_ch[1] == '/') && (dir_ch[2] == 0) && (file_ch[1] == 0)) + return TRUE; + + if ((dir_ch[0] == '/') && (dir_ch[1] == 0)) + return TRUE; + + return FALSE; +} + + +char * +_g_path_get_relative (const char *path, + const char *base) +{ + GString *rel_path; + char **dir_v; + char **base_v; + int i; + int j; + + rel_path = g_string_new (NULL); + dir_v = _g_path_split_components (path, NULL); + base_v = _g_path_split_components (base, NULL); + + i = 0; + while ((dir_v[i] != NULL) + && (base_v[i] != NULL) + && (strcmp (dir_v[i], base_v[i]) == 0)) + { + i++; + } + + j = i; + + while (base_v[i++] != NULL) + g_string_append (rel_path, "../"); + + while (dir_v[j] != NULL) { + g_string_append (rel_path, dir_v[j]); + if (dir_v[j + 1] != NULL) + g_string_append_c (rel_path, '/'); + j++; + } + + if (rel_path->len == 0) + g_string_append (rel_path, "./"); + + g_strfreev (base_v); + g_strfreev (dir_v); + + return g_string_free (rel_path, FALSE); +} diff -Nru gthumb-3.8.3/gthumb/uri-utils.h gthumb-3.9.1/gthumb/uri-utils.h --- gthumb-3.8.3/gthumb/uri-utils.h 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/gthumb/uri-utils.h 2020-03-07 19:03:13.530287500 +0000 @@ -0,0 +1,89 @@ +/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */ + +/* + * GThumb + * + * Copyright (C) 2019 Free Software Foundation, Inc. + * + * 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, see . + */ + +#ifndef _URI_UTILS_H +#define _URI_UTILS_H + +#include + +G_BEGIN_DECLS + +typedef struct { + char *scheme; + char *userinfo; + char *host; + char *port; + char *path; + char *query; + char *fragment; +} UriParts; + +typedef enum { + URI_PART_SCHEME, + URI_PART_USERINFO, + URI_PART_HOST, + URI_PART_PORT, + URI_PART_PATH, + URI_PART_QUERY, + URI_PART_FRAGMENT +} UriPart; + +gboolean _g_uri_split (const char *uri, + UriParts *parts); +char * _g_uri_join (UriParts *parts); +void _g_uri_parts_init (UriParts *parts); +void _g_uri_parts_clear (UriParts *parts); +char * _g_uri_get_part (const char *uri, + UriPart part); +char * _g_uri_get_path (const char *uri); +char * _g_uri_get_basename (const char *uri); +char * _g_uri_get_extension (const char *uri); +char * _g_uri_get_scheme (const char *uri); +char * _g_uri_get_relative_path (const char *uri, + const char *base); +gboolean _g_uri_is_parent (const char *uri, + const char *file); +char * _g_uri_get_parent (const char *uri); +char * _g_uri_remove_extension (const char *uri); +char * _g_uri_from_path (const char *path); +const char * _g_uri_get_home (void); +char * _g_uri_append_path (const char *uri, + const char *path); + +/* Path utils */ + +char ** _g_path_split_components (const char *path, + int *size); +char * _g_path_join_components (char **comp_v); +char * _g_path_join (char *first, + ...) G_GNUC_NULL_TERMINATED; +const char * _g_path_get_basename (const char *path); +char * _g_path_get_parent (const char *path); +const char * _g_path_get_extension (const char *path); +char * _g_path_remove_extension (const char *path); +gboolean _g_path_is_parent (const char *dir, + const char *file); +char * _g_path_get_relative (const char *path, + const char *base); + +G_END_DECLS + +#endif /* _URI_UTILS_H */ diff -Nru gthumb-3.8.3/help/C/shortcuts.page gthumb-3.9.1/help/C/shortcuts.page --- gthumb-3.8.3/help/C/shortcuts.page 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/help/C/shortcuts.page 1970-01-01 00:00:00.000000000 +0000 @@ -1,594 +0,0 @@ - - - - - - Keyboard Shortcuts - -
- Viewing and hiding parts of the user interface - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Keyboard Shortcut

-
-

Description

-
-

- F9 -

-
-

Show/Hide the sidebar in the browser mode. The sidebar contains the folder tree - and the file properties summary (if enabled).

-
-

- i -

-
-

Show the file properties summary.

-
-

- F8 -

-
-

Shows/hides the thumbnail pane in the viewer mode.

-
-

- F11 or f -

-
-

Toggles the fullscreen mode.

-
-

- Esc -

-
-

Closes the viewer or fullscreen mode.

-
-
- - -
- Editing shortcuts for the browser and viewer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Keyboard Shortcut

-
-

Description

-
-

- e -

-
-

Edit the image. Opens the viewer and shows the editing tools.

-
-

- g -

-
-

Open the image with the GNU Image Manipulation Program (GIMP).

-
-

- F2 -

-
-

Rename the image.

-
-

- c -

-
-

Add comments or metadata to the selected images.

-
-

- t -

-
-

Add tags to the selected images.

-
-

- ] -

-
-

Rotate right, losslessly if possible. The file is saved automatically.

-
-

- [ -

-
-

Rotate left, losslessly if possible. The file is saved automatically.

-
-

- Delete -

-
-

Move the selected files to the Trash.

-
-

- ShiftDelete -

-
-

Delete the selected files permanently.

-
-
- -
- Editing shortcuts for the viewer mode only - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Keyboard Shortcut (Case Sensitive)

-
-

Description

-
-

- a -

-
-

Adjust contrast.

-
-

- l -

-
-

Flip image.

-
-

- m -

-
-

Mirror image.

-
-

- r -

-
-

Rotate right.

-
-

- R -

-
-

Rotate left.

-
-

- C -

-
-

Crop image.

-
-

- S -

-
-

Resize image.

-
-
- -
- Viewer shortcuts - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Keyboard Shortcut

-
-

Description

-
-

- Space or - Page Down

-
-

View the next image.

-
-

- Backspace or - Page Up

-
-

View the previous image.

-
-

- Home -

-
-

View the first image.

-
-

- End -

-
-

View the last image.

-
-

- + or - =

-
-

Zoom in.

-
-

- - -

-
-

Zoom out.

-
-

- 1 or - z or - / (numeric keypad)

-
-

Actual size.

-
-

- x or - * (numeric keypad)

-
-

Zoom to fit (scales down only, does not magnify)

-
-

- - Shift - x - -

-
-

Zoom to fit (scale down or magnify, as required)

-
-

- w

-
-

Zoom to fit width (scales down only, does not magnify)

-
-

- - Shift - w - -

-
-

Zoom to fit width (scale down or magnify, as required)

-
-

- h

-
-

Zoom to fit height (scales down only, does not magnify)

-
-

- - Shift - h - -

-
-

Zoom to fit height (scale down or magnify, as required)

-
-

- Arrows -

-
-

Scroll the image.

-
-

- - Shift - Arrows - -

-
-

Scroll the image faster.

-
-
- -
- Browser Navigation - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

- Home -

-
-

Go to the first file in the browser view.

-
-

- End -

-
-

Go to the last file in the browser view.

-
-

- Down Arrow or Page Down -

-
-

Scroll downwards through the thumbnails.

-
-

- Up Arrow or Page Up -

-
-

Scroll upwards through the thumbnails.

-
-

- AltLeft Arrow -

-
-

Go back to the previously viewed folder.

-
-

- AltRight Arrow -

-
-

Go forward (after going back to a folder).

-
-

- - Alt - Up Arrow - -

-
-

Go up one level.

-
-

- Ctrlo -

-
-

Open a location typing the path.

-
-
- -
- Slideshow controls - - - - - - - - - - - - - - - - - - - - - - - - - - -
-

Keyboard Shortcut

-
-

Description

-
-

- F5 -

-
-

Start a slideshow.

-
-

- p -

-
-

Pause/Unpause the slideshow.

-
-

- Esc or q -

-
-

Close the slideshow.

-
-

- Space or Down Arrow or Right Arrow or Page Down -

-
-

Load the next image.

-
-

- Backspace or Up Arrow or Left Arrow or Page Up -

-
-

Load the previous image.

-
-
-
diff -Nru gthumb-3.8.3/help/es/es.po gthumb-3.9.1/help/es/es.po --- gthumb-3.8.3/help/es/es.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/help/es/es.po 2020-03-07 19:03:13.570286800 +0000 @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: gthumb.userguide.master\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-19 14:23+0000\n" +"POT-Creation-Date: 2019-12-25 00:47+0000\n" "PO-Revision-Date: 2019-10-28 16:40+0100\n" "Last-Translator: Daniel Mustieles \n" "Language-Team: Spanish - Spain \n" @@ -1234,8 +1234,7 @@ msgstr "Símbolo" #. (itstool) path: td/p -#: C/rename-series.page:27 C/shortcuts.page:17 C/shortcuts.page:84 -#: C/shortcuts.page:189 C/shortcuts.page:273 C/shortcuts.page:538 +#: C/rename-series.page:27 msgid "Description" msgstr "Descripción" @@ -1600,7 +1599,7 @@ "memoria. No son operaciones directas sobre el archivo. Para imágenes jpeg, " "esto significa que no son operaciones sin pérdidas; la imagen se degradará " "levemente cuando se recodifica y se guarda. Sin embargo, gThumb " -"proporciona herramientas de rotación sin pérdidas. Consulte la ." #. (itstool) path: page/title @@ -1740,11 +1739,6 @@ #. (itstool) path: page/p #: C/extensions.page:20 -#| msgid "" -#| "If you would like to write your own extension, please visit https://wiki.gnome.org/Apps/" -#| "gthumb for development information. An example extension is " -#| "provided in the source code, which you can base your own extension on." msgid "" "If you would like to write your own extension, please visit https://wiki.gnome.org/Apps/GthumbImprimir cuando esté listo para imprimir." #. (itstool) path: page/title -#: C/shortcuts.page:7 -msgid "Keyboard Shortcuts" -msgstr "Combinaciones de teclas" - -#. (itstool) path: section/title -#: C/shortcuts.page:10 -msgid "Viewing and hiding parts of the user interface" -msgstr "Ver y ocultar partes del interfaz de usuario" - -#. (itstool) path: td/p -#: C/shortcuts.page:14 C/shortcuts.page:81 C/shortcuts.page:270 -#: C/shortcuts.page:535 -msgid "Keyboard Shortcut" -msgstr "Tecla rápida" - -#. (itstool) path: td/p -#: C/shortcuts.page:22 -msgid "F9" -msgstr "F9" - -#. (itstool) path: td/p -#: C/shortcuts.page:27 -msgid "" -"Show/Hide the sidebar in the browser mode. The sidebar contains the folder " -"tree and the file properties summary (if enabled)." -msgstr "" -"Mostrar/ocultar la barra lateral en el modo navegador. La barra lateral " -"contiene el árbol de carpetas y el resumen de las propiedades del archivo " -"(si está activado)." - -#. (itstool) path: td/p -#: C/shortcuts.page:33 -msgid "i" -msgstr "i" - -#. (itstool) path: td/p -#: C/shortcuts.page:38 -msgid "Show the file properties summary." -msgstr "Mostrar el resumen de propiedades del archivo" - -#. (itstool) path: td/p -#: C/shortcuts.page:43 -msgid "F8" -msgstr "F8" - -#. (itstool) path: td/p -#: C/shortcuts.page:48 -msgid "Shows/hides the thumbnail pane in the viewer mode." -msgstr "Muestra/oculta el panel de miniaturas en el modo visor." - -#. (itstool) path: td/p -#: C/shortcuts.page:53 -msgid "F11 or f" -msgstr "F11 o f" - -#. (itstool) path: td/p -#: C/shortcuts.page:58 -msgid "Toggles the fullscreen mode." -msgstr "Conmuta el modo a pantalla completa." - -#. (itstool) path: td/p -#: C/shortcuts.page:63 -msgid "Esc" -msgstr "Esc" - -#. (itstool) path: td/p -#: C/shortcuts.page:68 -msgid "Closes the viewer or fullscreen mode." -msgstr "Cierra el visor o el modo a pantalla completa." - -#. (itstool) path: section/title -#: C/shortcuts.page:77 -msgid "Editing shortcuts for the browser and viewer" -msgstr "Editar atajos para el explorador y el visor" - -#. (itstool) path: td/p -#: C/shortcuts.page:89 -msgid "e" -msgstr "e" - -#. (itstool) path: td/p -#: C/shortcuts.page:94 -msgid "Edit the image. Opens the viewer and shows the editing tools." -msgstr "Editar la imagen. Abre el visor y muestra las herramientas de edición." - -#. (itstool) path: td/p -#: C/shortcuts.page:99 -msgid "g" -msgstr "g" - -#. (itstool) path: td/p -#: C/shortcuts.page:104 -msgid "Open the image with the GNU Image Manipulation Program (GIMP)." -msgstr "" -"Abrir la imagen con el programa de manipulación de imágenes de GNU (GIMP)." - -#. (itstool) path: td/p -#: C/shortcuts.page:109 -msgid "F2" -msgstr "F2" - -#. (itstool) path: td/p -#: C/shortcuts.page:114 -msgid "Rename the image." -msgstr "Renombrar la imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:119 -msgid "c" -msgstr "c" - -#. (itstool) path: td/p -#: C/shortcuts.page:124 -msgid "Add comments or metadata to the selected images." -msgstr "Añadir comentarios o metadatos a las imágenes seleccionadas." - -#. (itstool) path: td/p -#: C/shortcuts.page:129 -msgid "t" -msgstr "t" - -#. (itstool) path: td/p -#: C/shortcuts.page:134 -msgid "Add tags to the selected images." -msgstr "Añadir etiquetas a las imágenes seleccionadas." - -#. (itstool) path: td/p -#: C/shortcuts.page:139 -msgid "]" -msgstr "]" - -#. (itstool) path: td/p -#: C/shortcuts.page:144 -msgid "Rotate right, losslessly if possible. The file is saved automatically." -msgstr "" -"Rotar a la derecha, sin pérdidas si es posible. El archivo se guarda " -"automáticamente." - -#. (itstool) path: td/p -#: C/shortcuts.page:149 -msgid "[" -msgstr "[" - -#. (itstool) path: td/p -#: C/shortcuts.page:154 -msgid "Rotate left, losslessly if possible. The file is saved automatically." -msgstr "" -"Rotar a la izquierda, sin pérdidas si es posible. El archivo se guarda " -"automáticamente." - -#. (itstool) path: td/p -#: C/shortcuts.page:159 -msgid "Delete" -msgstr "Supr" - -#. (itstool) path: td/p -#: C/shortcuts.page:164 -msgid "Move the selected files to the Trash." -msgstr "Mover los archivos seleccionados a la papelera." - -#. (itstool) path: td/p -#: C/shortcuts.page:169 -msgid "ShiftDelete" -msgstr "MayúsSupr" - -#. (itstool) path: td/p -#: C/shortcuts.page:174 -msgid "Delete the selected files permanently." -msgstr "Eliminar permanentemente los archivos seleccionados." - -#. (itstool) path: section/title -#: C/shortcuts.page:182 -msgid "Editing shortcuts for the viewer mode only" -msgstr "Editar atajos para el modo visor solamente" - -#. (itstool) path: td/p -#: C/shortcuts.page:186 -msgid "Keyboard Shortcut (Case Sensitive)" -msgstr "Atajos de teclado (sensible a capitalización)" - -#. (itstool) path: td/p -#: C/shortcuts.page:194 -msgid "a" -msgstr "a" - -#. (itstool) path: td/p -#: C/shortcuts.page:199 -msgid "Adjust contrast." -msgstr "Ajustar contraste." - -#. (itstool) path: td/p -#: C/shortcuts.page:204 -msgid "l" -msgstr "l" - -#. (itstool) path: td/p -#: C/shortcuts.page:209 -msgid "Flip image." -msgstr "Voltear imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:214 -msgid "m" -msgstr "m" - -#. (itstool) path: td/p -#: C/shortcuts.page:219 -msgid "Mirror image." -msgstr "Reflejar imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:224 -msgid "r" -msgstr "r" - -#. (itstool) path: td/p -#: C/shortcuts.page:229 -msgid "Rotate right." -msgstr "Rotar a la derecha." - -#. (itstool) path: td/p -#: C/shortcuts.page:234 -msgid "R" -msgstr "R" - -#. (itstool) path: td/p -#: C/shortcuts.page:239 -msgid "Rotate left." -msgstr "Rotar a la izquierda." - -#. (itstool) path: td/p -#: C/shortcuts.page:244 -msgid "C" -msgstr "C" - -#. (itstool) path: td/p -#: C/shortcuts.page:249 -msgid "Crop image." -msgstr "Recortar imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:254 -msgid "S" -msgstr "S" - -#. (itstool) path: td/p -#: C/shortcuts.page:259 -msgid "Resize image." -msgstr "Redimensionar imagen." - -#. (itstool) path: section/title -#: C/shortcuts.page:266 -msgid "Viewer shortcuts" -msgstr "Ver atajos de teclado" - -#. (itstool) path: td/p -#: C/shortcuts.page:278 -msgid "Space or Page Down" -msgstr "Espacio o AvPág" - -#. (itstool) path: td/p -#: C/shortcuts.page:283 -msgid "View the next image." -msgstr "Ver la siguiente imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:288 -msgid "Backspace or Page Up" -msgstr "Retroceso o RePág" - -#. (itstool) path: td/p -#: C/shortcuts.page:293 -msgid "View the previous image." -msgstr "Ver la imagen anterior." - -#. (itstool) path: td/p -#: C/shortcuts.page:298 C/shortcuts.page:446 -msgid "Home" -msgstr "Inicio" - -#. (itstool) path: td/p -#: C/shortcuts.page:303 -msgid "View the first image." -msgstr "Ver la primera imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:308 C/shortcuts.page:456 -msgid "End" -msgstr "Fin" - -#. (itstool) path: td/p -#: C/shortcuts.page:313 -msgid "View the last image." -msgstr "Ver la última imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:318 -msgid "+ or =" -msgstr "+ o =" - -#. (itstool) path: td/p -#: C/shortcuts.page:323 -msgid "Zoom in." -msgstr "Ampliar." - -#. (itstool) path: td/p -#: C/shortcuts.page:328 -msgid "-" -msgstr "-" - -#. (itstool) path: td/p -#: C/shortcuts.page:333 -msgid "Zoom out." -msgstr "Alejar." - -#. (itstool) path: td/p -#: C/shortcuts.page:338 -msgid "1 or z or / (numeric keypad)" -msgstr "1 o z o / (teclado numérico)" - -#. (itstool) path: td/p -#: C/shortcuts.page:344 -msgid "Actual size." -msgstr "Tamaño real." - -#. (itstool) path: td/p -#: C/shortcuts.page:349 -msgid "x or * (numeric keypad)" -msgstr "x o * (teclado numérico)" - -#. (itstool) path: td/p -#: C/shortcuts.page:354 -msgid "Zoom to fit (scales down only, does not magnify)" -msgstr "Ampliar hasta ajustar (solo reducir, no ampliar)" - -#. (itstool) path: td/p -#: C/shortcuts.page:359 -msgid " Shift x " -msgstr " Mayús x " - -#. (itstool) path: td/p -#: C/shortcuts.page:367 -msgid "Zoom to fit (scale down or magnify, as required)" -msgstr "Ampliar hasta ajustar (reducir o aumentar, según se requiera)" - -#. (itstool) path: td/p -#: C/shortcuts.page:372 -msgid "w" -msgstr "w" - -#. (itstool) path: td/p -#: C/shortcuts.page:376 -msgid "Zoom to fit width (scales down only, does not magnify)" -msgstr "Ampliar hasta ajustar (solo reducir, no ampliar)" - -#. (itstool) path: td/p -#: C/shortcuts.page:381 -msgid " Shift w " -msgstr " Mayús w " - -#. (itstool) path: td/p -#: C/shortcuts.page:389 -msgid "Zoom to fit width (scale down or magnify, as required)" -msgstr "" -"Ampliar hasta ajustar a la anchura (reducir o aumentar, según se requiera)" - -#. (itstool) path: td/p -#: C/shortcuts.page:394 -msgid "h" -msgstr "h" - -#. (itstool) path: td/p -#: C/shortcuts.page:398 -msgid "Zoom to fit height (scales down only, does not magnify)" -msgstr "Ampliar hasta ajustar a la altura (solo reducir, no ampliar)" - -#. (itstool) path: td/p -#: C/shortcuts.page:403 -msgid " Shift h " -msgstr " Mayús h " - -#. (itstool) path: td/p -#: C/shortcuts.page:411 -msgid "Zoom to fit height (scale down or magnify, as required)" -msgstr "" -"Ampliar hasta ajustar a la anchura (reducir o aumentar, según se requiera)" - -#. (itstool) path: td/p -#: C/shortcuts.page:416 -msgid "Arrows" -msgstr "Flechas" - -#. (itstool) path: td/p -#: C/shortcuts.page:421 -msgid "Scroll the image." -msgstr "Desplazar la imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:426 -msgid " Shift Arrows " -msgstr " Mayús Flechas " - -#. (itstool) path: td/p -#: C/shortcuts.page:434 -msgid "Scroll the image faster." -msgstr "Desplazar la imagen más rápidamente." - -#. (itstool) path: section/title -#: C/shortcuts.page:441 -msgid "Browser Navigation" -msgstr "Navegación con explorador" - -#. (itstool) path: td/p -#: C/shortcuts.page:451 -msgid "Go to the first file in the browser view." -msgstr "Ir al primer archivo en la vista de navegador." - -#. (itstool) path: td/p -#: C/shortcuts.page:461 -msgid "Go to the last file in the browser view." -msgstr "Ir al último archivo en la vista de navegador." - -#. (itstool) path: td/p -#: C/shortcuts.page:466 -msgid "Down Arrow or Page Down" -msgstr "Flecha abajo o AvPág" - -#. (itstool) path: td/p -#: C/shortcuts.page:471 -msgid "Scroll downwards through the thumbnails." -msgstr "Desplazarse hacia abajo a través de las miniaturas." - -#. (itstool) path: td/p -#: C/shortcuts.page:476 -msgid "Up Arrow or Page Up" -msgstr "Flecha arriba o RePág" - -#. (itstool) path: td/p -#: C/shortcuts.page:481 -msgid "Scroll upwards through the thumbnails." -msgstr "Desplazarse hacia arriba a través de las miniaturas." - -#. (itstool) path: td/p -#: C/shortcuts.page:486 -msgid "AltLeft Arrow" -msgstr "AltFlecha izquierda" - -#. (itstool) path: td/p -#: C/shortcuts.page:491 -msgid "Go back to the previously viewed folder." -msgstr "Ir a la carpeta anteriormente visitada." - -#. (itstool) path: td/p -#: C/shortcuts.page:496 -msgid "AltRight Arrow" -msgstr "AltFlecha derecha" - -#. (itstool) path: td/p -#: C/shortcuts.page:501 -msgid "Go forward (after going back to a folder)." -msgstr "Ir hacia adelante (después de retroceder hasta una carpeta)." - -#. (itstool) path: td/p -#: C/shortcuts.page:506 -msgid " Alt Up Arrow " -msgstr " Alt Flecha arriba " - -#. (itstool) path: td/p -#: C/shortcuts.page:514 -msgid "Go up one level." -msgstr "Subir un nivel." - -#. (itstool) path: td/p -#: C/shortcuts.page:519 -msgid "Ctrlo" -msgstr "Ctrlo" - -#. (itstool) path: td/p -#: C/shortcuts.page:524 -msgid "Open a location typing the path." -msgstr "Abrir una ubicación escribiendo la ruta." - -#. (itstool) path: section/title -#: C/shortcuts.page:531 -msgid "Slideshow controls" -msgstr "Controles de las diapositivas" - -#. (itstool) path: td/p -#: C/shortcuts.page:543 -msgid "F5" -msgstr "F5" - -#. (itstool) path: td/p -#: C/shortcuts.page:548 -msgid "Start a slideshow." -msgstr "Iniciar la muestra de diapositivas." - -#. (itstool) path: td/p -#: C/shortcuts.page:553 -msgid "p" -msgstr "p" - -#. (itstool) path: td/p -#: C/shortcuts.page:558 -msgid "Pause/Unpause the slideshow." -msgstr "Pausar/Reanudar la muestra de diapositivas." - -#. (itstool) path: td/p -#: C/shortcuts.page:563 -msgid "Esc or q" -msgstr "Esc o q" - -#. (itstool) path: td/p -#: C/shortcuts.page:568 -msgid "Close the slideshow." -msgstr "Cerrar la muestra de diapositivas." - -#. (itstool) path: td/p -#: C/shortcuts.page:573 -msgid "" -"Space or Down Arrow or Right Arrow or " -"Page Down" -msgstr "" -"Espacio o Flecha abajo o Flecha derecha o " -"Av pág" - -#. (itstool) path: td/p -#: C/shortcuts.page:578 -msgid "Load the next image." -msgstr "Cargar la siguiente imagen." - -#. (itstool) path: td/p -#: C/shortcuts.page:583 -msgid "" -"Backspace or Up Arrow or Left Arrow or " -"Page Up" -msgstr "" -"Retroceso o Flecha arriba o Flecha izquierda o Re Pág" - -#. (itstool) path: td/p -#: C/shortcuts.page:588 -msgid "Load the previous image." -msgstr "Cargar la imagen anterior." - -#. (itstool) path: page/title #: C/sharing-disc.page:6 msgid "Creating a CD/DVD/ISO" msgstr "Crear un(a) CD/DVD/ISO" @@ -3169,6 +2617,344 @@ "permiso para copiar, modificar y distribuir el código de ejemplo contenido " "en este documento bajo los términos que usted elija, sin restricción." +#~ msgid "Keyboard Shortcuts" +#~ msgstr "Combinaciones de teclas" + +#~ msgid "Viewing and hiding parts of the user interface" +#~ msgstr "Ver y ocultar partes del interfaz de usuario" + +#~ msgid "Keyboard Shortcut" +#~ msgstr "Tecla rápida" + +#~ msgid "F9" +#~ msgstr "F9" + +#~ msgid "" +#~ "Show/Hide the sidebar in the browser mode. The sidebar contains the " +#~ "folder tree and the file properties summary (if enabled)." +#~ msgstr "" +#~ "Mostrar/ocultar la barra lateral en el modo navegador. La barra lateral " +#~ "contiene el árbol de carpetas y el resumen de las propiedades del archivo " +#~ "(si está activado)." + +#~ msgid "i" +#~ msgstr "i" + +#~ msgid "Show the file properties summary." +#~ msgstr "Mostrar el resumen de propiedades del archivo" + +#~ msgid "F8" +#~ msgstr "F8" + +#~ msgid "Shows/hides the thumbnail pane in the viewer mode." +#~ msgstr "Muestra/oculta el panel de miniaturas en el modo visor." + +#~ msgid "F11 or f" +#~ msgstr "F11 o f" + +#~ msgid "Toggles the fullscreen mode." +#~ msgstr "Conmuta el modo a pantalla completa." + +#~ msgid "Esc" +#~ msgstr "Esc" + +#~ msgid "Closes the viewer or fullscreen mode." +#~ msgstr "Cierra el visor o el modo a pantalla completa." + +#~ msgid "Editing shortcuts for the browser and viewer" +#~ msgstr "Editar atajos para el explorador y el visor" + +#~ msgid "e" +#~ msgstr "e" + +#~ msgid "Edit the image. Opens the viewer and shows the editing tools." +#~ msgstr "" +#~ "Editar la imagen. Abre el visor y muestra las herramientas de edición." + +#~ msgid "g" +#~ msgstr "g" + +#~ msgid "Open the image with the GNU Image Manipulation Program (GIMP)." +#~ msgstr "" +#~ "Abrir la imagen con el programa de manipulación de imágenes de GNU (GIMP)." + +#~ msgid "F2" +#~ msgstr "F2" + +#~ msgid "Rename the image." +#~ msgstr "Renombrar la imagen." + +#~ msgid "c" +#~ msgstr "c" + +#~ msgid "Add comments or metadata to the selected images." +#~ msgstr "Añadir comentarios o metadatos a las imágenes seleccionadas." + +#~ msgid "t" +#~ msgstr "t" + +#~ msgid "Add tags to the selected images." +#~ msgstr "Añadir etiquetas a las imágenes seleccionadas." + +#~ msgid "]" +#~ msgstr "]" + +#~ msgid "" +#~ "Rotate right, losslessly if possible. The file is saved automatically." +#~ msgstr "" +#~ "Rotar a la derecha, sin pérdidas si es posible. El archivo se guarda " +#~ "automáticamente." + +#~ msgid "[" +#~ msgstr "[" + +#~ msgid "" +#~ "Rotate left, losslessly if possible. The file is saved automatically." +#~ msgstr "" +#~ "Rotar a la izquierda, sin pérdidas si es posible. El archivo se guarda " +#~ "automáticamente." + +#~ msgid "Delete" +#~ msgstr "Supr" + +#~ msgid "Move the selected files to the Trash." +#~ msgstr "Mover los archivos seleccionados a la papelera." + +#~ msgid "ShiftDelete" +#~ msgstr "MayúsSupr" + +#~ msgid "Delete the selected files permanently." +#~ msgstr "Eliminar permanentemente los archivos seleccionados." + +#~ msgid "Editing shortcuts for the viewer mode only" +#~ msgstr "Editar atajos para el modo visor solamente" + +#~ msgid "Keyboard Shortcut (Case Sensitive)" +#~ msgstr "Atajos de teclado (sensible a capitalización)" + +#~ msgid "a" +#~ msgstr "a" + +#~ msgid "Adjust contrast." +#~ msgstr "Ajustar contraste." + +#~ msgid "l" +#~ msgstr "l" + +#~ msgid "Flip image." +#~ msgstr "Voltear imagen." + +#~ msgid "m" +#~ msgstr "m" + +#~ msgid "Mirror image." +#~ msgstr "Reflejar imagen." + +#~ msgid "r" +#~ msgstr "r" + +#~ msgid "Rotate right." +#~ msgstr "Rotar a la derecha." + +#~ msgid "R" +#~ msgstr "R" + +#~ msgid "Rotate left." +#~ msgstr "Rotar a la izquierda." + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "Crop image." +#~ msgstr "Recortar imagen." + +#~ msgid "S" +#~ msgstr "S" + +#~ msgid "Resize image." +#~ msgstr "Redimensionar imagen." + +#~ msgid "Viewer shortcuts" +#~ msgstr "Ver atajos de teclado" + +#~ msgid "Space or Page Down" +#~ msgstr "Espacio o AvPág" + +#~ msgid "View the next image." +#~ msgstr "Ver la siguiente imagen." + +#~ msgid "Backspace or Page Up" +#~ msgstr "Retroceso o RePág" + +#~ msgid "View the previous image." +#~ msgstr "Ver la imagen anterior." + +#~ msgid "Home" +#~ msgstr "Inicio" + +#~ msgid "View the first image." +#~ msgstr "Ver la primera imagen." + +#~ msgid "End" +#~ msgstr "Fin" + +#~ msgid "View the last image." +#~ msgstr "Ver la última imagen." + +#~ msgid "+ or =" +#~ msgstr "+ o =" + +#~ msgid "Zoom in." +#~ msgstr "Ampliar." + +#~ msgid "-" +#~ msgstr "-" + +#~ msgid "Zoom out." +#~ msgstr "Alejar." + +#~ msgid "1 or z or / (numeric keypad)" +#~ msgstr "1 o z o / (teclado numérico)" + +#~ msgid "Actual size." +#~ msgstr "Tamaño real." + +#~ msgid "x or * (numeric keypad)" +#~ msgstr "x o * (teclado numérico)" + +#~ msgid "Zoom to fit (scales down only, does not magnify)" +#~ msgstr "Ampliar hasta ajustar (solo reducir, no ampliar)" + +#~ msgid " Shift x " +#~ msgstr " Mayús x " + +#~ msgid "Zoom to fit (scale down or magnify, as required)" +#~ msgstr "Ampliar hasta ajustar (reducir o aumentar, según se requiera)" + +#~ msgid "w" +#~ msgstr "w" + +#~ msgid "Zoom to fit width (scales down only, does not magnify)" +#~ msgstr "Ampliar hasta ajustar (solo reducir, no ampliar)" + +#~ msgid " Shift w " +#~ msgstr " Mayús w " + +#~ msgid "Zoom to fit width (scale down or magnify, as required)" +#~ msgstr "" +#~ "Ampliar hasta ajustar a la anchura (reducir o aumentar, según se requiera)" + +#~ msgid "h" +#~ msgstr "h" + +#~ msgid "Zoom to fit height (scales down only, does not magnify)" +#~ msgstr "Ampliar hasta ajustar a la altura (solo reducir, no ampliar)" + +#~ msgid " Shift h " +#~ msgstr " Mayús h " + +#~ msgid "Zoom to fit height (scale down or magnify, as required)" +#~ msgstr "" +#~ "Ampliar hasta ajustar a la anchura (reducir o aumentar, según se requiera)" + +#~ msgid "Arrows" +#~ msgstr "Flechas" + +#~ msgid "Scroll the image." +#~ msgstr "Desplazar la imagen." + +#~ msgid " Shift Arrows " +#~ msgstr " Mayús Flechas " + +#~ msgid "Scroll the image faster." +#~ msgstr "Desplazar la imagen más rápidamente." + +#~ msgid "Browser Navigation" +#~ msgstr "Navegación con explorador" + +#~ msgid "Go to the first file in the browser view." +#~ msgstr "Ir al primer archivo en la vista de navegador." + +#~ msgid "Go to the last file in the browser view." +#~ msgstr "Ir al último archivo en la vista de navegador." + +#~ msgid "Down Arrow or Page Down" +#~ msgstr "Flecha abajo o AvPág" + +#~ msgid "Scroll downwards through the thumbnails." +#~ msgstr "Desplazarse hacia abajo a través de las miniaturas." + +#~ msgid "Up Arrow or Page Up" +#~ msgstr "Flecha arriba o RePág" + +#~ msgid "Scroll upwards through the thumbnails." +#~ msgstr "Desplazarse hacia arriba a través de las miniaturas." + +#~ msgid "AltLeft Arrow" +#~ msgstr "AltFlecha izquierda" + +#~ msgid "Go back to the previously viewed folder." +#~ msgstr "Ir a la carpeta anteriormente visitada." + +#~ msgid "AltRight Arrow" +#~ msgstr "AltFlecha derecha" + +#~ msgid "Go forward (after going back to a folder)." +#~ msgstr "Ir hacia adelante (después de retroceder hasta una carpeta)." + +#~ msgid " Alt Up Arrow " +#~ msgstr " Alt Flecha arriba " + +#~ msgid "Go up one level." +#~ msgstr "Subir un nivel." + +#~ msgid "Ctrlo" +#~ msgstr "Ctrlo" + +#~ msgid "Open a location typing the path." +#~ msgstr "Abrir una ubicación escribiendo la ruta." + +#~ msgid "Slideshow controls" +#~ msgstr "Controles de las diapositivas" + +#~ msgid "F5" +#~ msgstr "F5" + +#~ msgid "Start a slideshow." +#~ msgstr "Iniciar la muestra de diapositivas." + +#~ msgid "p" +#~ msgstr "p" + +#~ msgid "Pause/Unpause the slideshow." +#~ msgstr "Pausar/Reanudar la muestra de diapositivas." + +#~ msgid "Esc or q" +#~ msgstr "Esc o q" + +#~ msgid "Close the slideshow." +#~ msgstr "Cerrar la muestra de diapositivas." + +#~ msgid "" +#~ "Space or Down Arrow or Right Arrow or " +#~ "Page Down" +#~ msgstr "" +#~ "Espacio o Flecha abajo o Flecha derecha " +#~ "o Av pág" + +#~ msgid "Load the next image." +#~ msgstr "Cargar la siguiente imagen." + +#~ msgid "" +#~ "Backspace or Up Arrow or Left Arrow or " +#~ "Page Up" +#~ msgstr "" +#~ "Retroceso o Flecha arriba o Flecha izquierda o Re Pág" + +#~ msgid "Load the previous image." +#~ msgstr "Cargar la imagen anterior." + #~ msgid "%a" #~ msgstr "%a" diff -Nru gthumb-3.8.3/help/meson.build gthumb-3.9.1/help/meson.build --- gthumb-3.8.3/help/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/help/meson.build 2020-03-07 19:03:13.576953200 +0000 @@ -25,7 +25,6 @@ 'sorting.page', 'filtering.page', 'printing.page', - 'shortcuts.page', 'sharing-disc.page', 'sharing-social.page', 'wallpaper.page', diff -Nru gthumb-3.8.3/help/sv/sv.po gthumb-3.9.1/help/sv/sv.po --- gthumb-3.8.3/help/sv/sv.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/help/sv/sv.po 2020-03-07 19:03:13.580286500 +0000 @@ -1,21 +1,21 @@ # Swedish messages for gThumb help -# Copyright © 2006-2017 Free Software Foundation, Inc. +# Copyright © 2006-2020 Free Software Foundation, Inc. # Daniel Nylander , 2006, 2007, 2008, 2009 # Josef Andersson , 2015. -# Anders Jonsson , 2016, 2017. +# Anders Jonsson , 2016, 2017, 2020. # msgid "" msgstr "" "Project-Id-Version: gthumb doc\n" -"POT-Creation-Date: 2017-08-01 09:27+0000\n" -"PO-Revision-Date: 2017-08-02 01:34+0200\n" +"POT-Creation-Date: 2019-11-24 12:26+0000\n" +"PO-Revision-Date: 2020-02-13 15:50+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.2.4\n" #. Put one translator per line, in the form NAME , YEAR1, YEAR2 msgctxt "_" @@ -304,12 +304,12 @@ msgstr "Exif::Photo::Sharpness" #. (itstool) path: page/title -#: C/strftime.page:6 +#: C/strftime.page:8 msgid "Date/Time Format Codes" msgstr "Datum/tid-formatkoder" #. (itstool) path: page/p -#: C/strftime.page:8 +#: C/strftime.page:10 msgid "" "This is a summary of standard date/time codes that may be used in format " "strings:" @@ -318,87 +318,47 @@ "formatsträngar:" #. (itstool) path: table/title -#: C/strftime.page:12 +#: C/strftime.page:14 msgid "Valid format codes for custom subfolders" msgstr "Giltiga format för anpassade undermappar" #. (itstool) path: td/p -#: C/strftime.page:15 -msgid "%a" -msgstr "%a" - -#. (itstool) path: td/p -#: C/strftime.page:18 +#: C/strftime.page:20 msgid "The abbreviated weekday name according to the current locale." msgstr "Förkortade veckodagsnamnet enligt den aktuella lokalen." #. (itstool) path: td/p -#: C/strftime.page:24 -msgid "%A" -msgstr "%A" - -#. (itstool) path: td/p -#: C/strftime.page:27 +#: C/strftime.page:29 msgid "The full weekday name according to the current locale." msgstr "Fullständiga veckodagsnamnet enligt den aktuella lokalen." #. (itstool) path: td/p -#: C/strftime.page:33 -msgid "%b" -msgstr "%b" - -#. (itstool) path: td/p -#: C/strftime.page:36 +#: C/strftime.page:38 msgid "The abbreviated month name according to the current locale." msgstr "Förkortade månadsnamnet enligt den aktuella lokalen." #. (itstool) path: td/p -#: C/strftime.page:42 -msgid "%B" -msgstr "%B" - -#. (itstool) path: td/p -#: C/strftime.page:45 +#: C/strftime.page:47 msgid "The full month name according to the current locale." msgstr "Fullständiga månadsnamnet enligt den aktuella lokalen." #. (itstool) path: td/p -#: C/strftime.page:50 -msgid "%c" -msgstr "%c" - -#. (itstool) path: td/p -#: C/strftime.page:53 +#: C/strftime.page:55 msgid "The preferred date and time representation for the current locale." msgstr "Föredragna datum och tidsrepresentationen enligt den aktuella lokalen." #. (itstool) path: td/p -#: C/strftime.page:59 -msgid "%C" -msgstr "%C" - -#. (itstool) path: td/p -#: C/strftime.page:62 +#: C/strftime.page:64 msgid "The century number (year/100) as a 2-digit integer." msgstr "Århundradesiffran (år/100) som ett tvåsiffrigt heltal." #. (itstool) path: td/p -#: C/strftime.page:67 -msgid "%d" -msgstr "%d" - -#. (itstool) path: td/p -#: C/strftime.page:70 +#: C/strftime.page:72 msgid "The day of the month as a decimal number (range 01 to 31)." msgstr "Dag i månaden som ett decimalnummer (01 till 31)." #. (itstool) path: td/p -#: C/strftime.page:76 -msgid "%D" -msgstr "%D" - -#. (itstool) path: td/p -#: C/strftime.page:79 +#: C/strftime.page:81 msgid "" "Equivalent to %m/%d/%y. (Yecch -- for Americans only. Americans should note " "that in other countries %d/%m/%y is rather common. This means that in " @@ -409,12 +369,7 @@ "sammanhang är detta format tvetydigt och bör inte användas.)" #. (itstool) path: td/p -#: C/strftime.page:87 -msgid "%e" -msgstr "%e" - -#. (itstool) path: td/p -#: C/strftime.page:90 +#: C/strftime.page:92 msgid "" "Like %d, the day of the month as a decimal number, but a leading zero is " "replaced by a space." @@ -423,32 +378,17 @@ "med blanksteg." #. (itstool) path: td/p -#: C/strftime.page:96 -msgid "%E" -msgstr "%E" - -#. (itstool) path: td/p -#: C/strftime.page:99 C/strftime.page:208 +#: C/strftime.page:101 C/strftime.page:210 msgid "Modifier: use alternative format, see below." msgstr "Modifierare: använd alternativt format, se nedan." #. (itstool) path: td/p -#: C/strftime.page:104 -msgid "%F" -msgstr "%F" - -#. (itstool) path: td/p -#: C/strftime.page:107 +#: C/strftime.page:109 msgid "Equivalent to %Y-%m-%d (the ISO 8601 date format). (C99)" msgstr "Likvärdigt med %Y-%m-%d (datumformatet ISO 8601). (C99)" #. (itstool) path: td/p -#: C/strftime.page:113 -msgid "%G" -msgstr "%G" - -#. (itstool) path: td/p -#: C/strftime.page:116 +#: C/strftime.page:118 msgid "" "The ISO 8601 year with century as a decimal number. The 4-digit year " "corresponding to the ISO week number (see %V). This has the same format and " @@ -461,62 +401,32 @@ "istället." #. (itstool) path: td/p -#: C/strftime.page:125 -msgid "%g" -msgstr "%g" - -#. (itstool) path: td/p -#: C/strftime.page:128 +#: C/strftime.page:130 msgid "Like %G, but without century, i.e., with a 2-digit year (00-99)." msgstr "Som %G men utan sekel, d.v.s. med ett tvåsiffrigt år (00-99)." #. (itstool) path: td/p -#: C/strftime.page:134 -msgid "%h" -msgstr "%h" - -#. (itstool) path: td/p -#: C/strftime.page:137 +#: C/strftime.page:139 msgid "Equivalent to %b." msgstr "Likvärdigt med %b." #. (itstool) path: td/p -#: C/strftime.page:142 -msgid "%H" -msgstr "%H" - -#. (itstool) path: td/p -#: C/strftime.page:145 +#: C/strftime.page:147 msgid "The hour as a decimal number using a 24-hour clock (range 00 to 23)." msgstr "Timmen som ett decimaltal i 24-timmarsklocka (00 till 23)." #. (itstool) path: td/p -#: C/strftime.page:151 -msgid "%I" -msgstr "%I" - -#. (itstool) path: td/p -#: C/strftime.page:154 +#: C/strftime.page:156 msgid "The hour as a decimal number using a 12-hour clock (range 01 to 12)." msgstr "Timmen som ett decimaltal med 12-timmarsklocka (01-12)." #. (itstool) path: td/p -#: C/strftime.page:160 -msgid "%j" -msgstr "%j" - -#. (itstool) path: td/p -#: C/strftime.page:163 +#: C/strftime.page:165 msgid "The day of the year as a decimal number (range 001 to 366)." msgstr "Dagen på året som ett decimaltal (001 till 366)." #. (itstool) path: td/p -#: C/strftime.page:169 -msgid "%k" -msgstr "%k" - -#. (itstool) path: td/p -#: C/strftime.page:172 +#: C/strftime.page:174 msgid "" "The hour (24-hour clock) as a decimal number (range 0 to 23); single digits " "are preceded by a blank. (See also %H.)" @@ -525,12 +435,7 @@ "startar med blanksteg. (Se också %H.)" #. (itstool) path: td/p -#: C/strftime.page:179 -msgid "%l" -msgstr "%l" - -#. (itstool) path: td/p -#: C/strftime.page:182 +#: C/strftime.page:184 msgid "" "The hour (12-hour clock) as a decimal number (range 1 to 12); single digits " "are preceded by a blank. (See also %I.)" @@ -539,37 +444,17 @@ "startar med blanksteg. (Se också %I.)" #. (itstool) path: td/p -#: C/strftime.page:189 -msgid "%m" -msgstr "%m" - -#. (itstool) path: td/p -#: C/strftime.page:192 +#: C/strftime.page:194 msgid "The month as a decimal number (range 01 to 12)." msgstr "Månaden som ett decimaltal (01 till 12)." #. (itstool) path: td/p -#: C/strftime.page:197 -msgid "%M" -msgstr "%M" - -#. (itstool) path: td/p -#: C/strftime.page:200 +#: C/strftime.page:202 msgid "The minute as a decimal number (range 00 to 59)." msgstr "Minuten som ett decimaltal (00 till 59)." #. (itstool) path: td/p -#: C/strftime.page:205 -msgid "%O" -msgstr "%O" - -#. (itstool) path: td/p -#: C/strftime.page:213 -msgid "%p" -msgstr "%p" - -#. (itstool) path: td/p -#: C/strftime.page:216 +#: C/strftime.page:218 msgid "" "Either 'AM' or 'PM' according to the given time value, or the corresponding " "strings for the current locale. Noon is treated as 'pm' and midnight as 'am'." @@ -579,12 +464,7 @@ "som ”am”." #. (itstool) path: td/p -#: C/strftime.page:223 -msgid "%P" -msgstr "%P" - -#. (itstool) path: td/p -#: C/strftime.page:226 +#: C/strftime.page:228 msgid "" "Like %p but in lowercase: 'am' or 'pm' or a corresponding string for the " "current locale." @@ -593,12 +473,7 @@ "lokalen." #. (itstool) path: td/p -#: C/strftime.page:232 -msgid "%r" -msgstr "%r" - -#. (itstool) path: td/p -#: C/strftime.page:235 +#: C/strftime.page:237 msgid "" "The time in a.m. or p.m. notation. In the POSIX locale this is equivalent to " "'%I:%M:%S %p'." @@ -607,12 +482,7 @@ "%S %p”." #. (itstool) path: td/p -#: C/strftime.page:241 -msgid "%R" -msgstr "%R" - -#. (itstool) path: td/p -#: C/strftime.page:244 +#: C/strftime.page:246 msgid "" "The time in 24-hour notation (%H:%M). For a version including the seconds, " "see %T below." @@ -620,23 +490,13 @@ "Tid i 24-timmars notation (%H:%M). För en version med sekunder, se %T nedan." #. (itstool) path: td/p -#: C/strftime.page:250 -msgid "%s" -msgstr "%s" - -#. (itstool) path: td/p -#: C/strftime.page:253 +#: C/strftime.page:255 msgid "" "The number of seconds since the Epoch, i.e., since 1970-01-01 00:00:00 UTC." msgstr "Antal sekunder sedan Epoch, d.v.s. sedan 1970-01-01 00:00:00 UTC." #. (itstool) path: td/p -#: C/strftime.page:259 -msgid "%S" -msgstr "%S" - -#. (itstool) path: td/p -#: C/strftime.page:262 +#: C/strftime.page:264 msgid "" "The second as a decimal number (range 00 to 60). (The range is up to 60 to " "allow for occasional leap seconds.)" @@ -645,22 +505,12 @@ "tillåta skottsekunder.)" #. (itstool) path: td/p -#: C/strftime.page:269 -msgid "%T" -msgstr "%T" - -#. (itstool) path: td/p -#: C/strftime.page:272 +#: C/strftime.page:274 msgid "The time in 24-hour notation (%H:%M:%S)." msgstr "Tiden i 24-timmarsnotation (%H:%M:%S)." #. (itstool) path: td/p -#: C/strftime.page:277 -msgid "%u" -msgstr "%u" - -#. (itstool) path: td/p -#: C/strftime.page:280 +#: C/strftime.page:282 msgid "" "The day of the week as a decimal number, range 1 to 7, Monday being 1. See " "also %w." @@ -669,12 +519,7 @@ "%w." #. (itstool) path: td/p -#: C/strftime.page:286 -msgid "%U" -msgstr "%U" - -#. (itstool) path: td/p -#: C/strftime.page:289 +#: C/strftime.page:291 msgid "" "The week number of the current year as a decimal number, range 00 to 53, " "starting with the first Sunday as the first day of week 01. See also %V and " @@ -684,12 +529,7 @@ "startar med första söndagen som första dagen vecka 01. Se också %V och %W." #. (itstool) path: td/p -#: C/strftime.page:296 -msgid "%V" -msgstr "%V" - -#. (itstool) path: td/p -#: C/strftime.page:299 +#: C/strftime.page:301 msgid "" "The ISO 8601:1988 week number of the current year as a decimal number, range " "01 to 53, where week 1 is the first week that has at least 4 days in the " @@ -701,24 +541,14 @@ "år, och med måndag som den första veckodagen. Se också %U och %W." #. (itstool) path: td/p -#: C/strftime.page:308 -msgid "%w" -msgstr "%w" - -#. (itstool) path: td/p -#: C/strftime.page:311 +#: C/strftime.page:313 msgid "" "The day of the week as a decimal, range 0 to 6, Sunday being 0. See also %u." msgstr "" "Veckodagen som ett decimaltal, intervall 0 till 6, söndag är 0. Se också %u." #. (itstool) path: td/p -#: C/strftime.page:317 -msgid "%W" -msgstr "%W" - -#. (itstool) path: td/p -#: C/strftime.page:320 +#: C/strftime.page:322 msgid "" "The week number of the current year as a decimal number, range 00 to 53, " "starting with the first Monday as the first day of week 01." @@ -727,54 +557,29 @@ "början den första måndagen som den första dagen vecka 01." #. (itstool) path: td/p -#: C/strftime.page:327 -msgid "%x" -msgstr "%x" - -#. (itstool) path: td/p -#: C/strftime.page:330 +#: C/strftime.page:332 msgid "" "The preferred date representation for the current locale without the time." msgstr "Föredragen datumrepresentation för den aktuella lokalen utan tiden." #. (itstool) path: td/p -#: C/strftime.page:336 -msgid "%X" -msgstr "%X" - -#. (itstool) path: td/p -#: C/strftime.page:339 +#: C/strftime.page:341 msgid "" "The preferred time representation for the current locale without the date." msgstr "Föredragen tidsrepresentation för den aktuella lokalen utan datumet." #. (itstool) path: td/p -#: C/strftime.page:345 -msgid "%y" -msgstr "%y" - -#. (itstool) path: td/p -#: C/strftime.page:348 +#: C/strftime.page:350 msgid "The year as a decimal number without a century (range 00 to 99)." msgstr "Året som ett decimalnummer utan sekel (intervall 00 till 99)." #. (itstool) path: td/p -#: C/strftime.page:354 -msgid "%Y" -msgstr "%Y" - -#. (itstool) path: td/p -#: C/strftime.page:357 +#: C/strftime.page:359 msgid "The year as a decimal number including the century." msgstr "Året som ett decimalnummer inklusive seklet." #. (itstool) path: td/p -#: C/strftime.page:362 -msgid "%z" -msgstr "%z" - -#. (itstool) path: td/p -#: C/strftime.page:365 +#: C/strftime.page:367 msgid "" "The time-zone as hour offset from GMT. Required to emit RFC 822-conformant " "dates (using \"%a, %d %b %Y %H:%M:%S %z\")." @@ -783,17 +588,12 @@ "anpassade datum (använder \"%a, %d %b %Y %H:%M:%S %z\")." #. (itstool) path: td/p -#: C/strftime.page:372 -msgid "%Z" -msgstr "%Z" - -#. (itstool) path: td/p -#: C/strftime.page:375 +#: C/strftime.page:377 msgid "The time zone or name or abbreviation." msgstr "Tidszon, namn eller förkortning." #. (itstool) path: page/p -#: C/strftime.page:380 +#: C/strftime.page:382 msgid "" "Some conversion specifications can be modified by preceding the conversion " "specifier character by the E or O modifier to indicate that an alternative " @@ -1402,8 +1202,7 @@ msgstr "Symbol" #. (itstool) path: td/p -#: C/rename-series.page:27 C/shortcuts.page:17 C/shortcuts.page:84 -#: C/shortcuts.page:189 C/shortcuts.page:273 C/shortcuts.page:538 +#: C/rename-series.page:27 msgid "Description" msgstr "Beskrivning" @@ -1891,12 +1690,12 @@ #: C/extensions.page:20 msgid "" "If you would like to write your own extension, please visit https://wiki.gnome.org/Apps/gthumbhttps://wiki.gnome.org/Apps/Gthumb for development information. An example extension is provided in the " "source code, which you can base your own extension on." msgstr "" "Om du vill skriva dina egna tillägg, besök https://wiki.gnome.org/Apps/gthumb för " +"org/Apps/Gthumb\">https://wiki.gnome.org/Apps/Gthumb för " "utvecklingsinformation. Ett exempeltillägg ges i källkoden vilket du kan " "basera egna tillägg på." @@ -2208,549 +2007,6 @@ "När du är klar för att skriva ut, tryck på knappen Skriv ut." #. (itstool) path: page/title -#: C/shortcuts.page:7 -msgid "Keyboard Shortcuts" -msgstr "Tangentbordsgenvägar" - -#. (itstool) path: section/title -#: C/shortcuts.page:10 -msgid "Viewing and hiding parts of the user interface" -msgstr "Visa och dölja delar av användargränssnittet" - -#. (itstool) path: td/p -#: C/shortcuts.page:14 C/shortcuts.page:81 C/shortcuts.page:270 -#: C/shortcuts.page:535 -msgid "Keyboard Shortcut" -msgstr "Genväg" - -#. (itstool) path: td/p -#: C/shortcuts.page:22 -msgid "F9" -msgstr "F9" - -#. (itstool) path: td/p -#: C/shortcuts.page:27 -msgid "" -"Show/Hide the sidebar in the browser mode. The sidebar contains the folder " -"tree and the file properties summary (if enabled)." -msgstr "" -"Visa/dölj sidopanelen i bläddrarläget. Sidopanelen innehåller mappträdet och " -"en sammanfattning av filegenskaperna (om aktiverat)." - -#. (itstool) path: td/p -#: C/shortcuts.page:33 -msgid "i" -msgstr "i" - -#. (itstool) path: td/p -#: C/shortcuts.page:38 -msgid "Show the file properties summary." -msgstr "Visa sammanfattningen av filegenskaperna." - -#. (itstool) path: td/p -#: C/shortcuts.page:43 -msgid "F8" -msgstr "F8" - -#. (itstool) path: td/p -#: C/shortcuts.page:48 -msgid "Shows/hides the thumbnail pane in the viewer mode." -msgstr "Visar/döljer miniatyrbildspanelen i visarläget." - -#. (itstool) path: td/p -#: C/shortcuts.page:53 -msgid "F11 or f" -msgstr "F11 eller f" - -#. (itstool) path: td/p -#: C/shortcuts.page:58 -msgid "Toggles the fullscreen mode." -msgstr "Aktivera helskärmsläget." - -#. (itstool) path: td/p -#: C/shortcuts.page:63 -msgid "Esc" -msgstr "Esc" - -#. (itstool) path: td/p -#: C/shortcuts.page:68 -msgid "Closes the viewer or fullscreen mode." -msgstr "Stänger visaren eller helskärmsläget." - -#. (itstool) path: section/title -#: C/shortcuts.page:77 -msgid "Editing shortcuts for the browser and viewer" -msgstr "Redigerar genvägar för bläddraren och visaren" - -#. (itstool) path: td/p -#: C/shortcuts.page:89 -msgid "e" -msgstr "e" - -#. (itstool) path: td/p -#: C/shortcuts.page:94 -msgid "Edit the image. Opens the viewer and shows the editing tools." -msgstr "Redigerar bilden. Öppnar visaren och visar redigeringsverktygen." - -#. (itstool) path: td/p -#: C/shortcuts.page:99 -msgid "g" -msgstr "g" - -#. (itstool) path: td/p -#: C/shortcuts.page:104 -msgid "Open the image with the GNU Image Manipulation Program (GIMP)." -msgstr "Öppnar bilden med GNU:s bildmanipuleringsprogram (GIMP)." - -#. (itstool) path: td/p -#: C/shortcuts.page:109 -msgid "F2" -msgstr "F2" - -#. (itstool) path: td/p -#: C/shortcuts.page:114 -msgid "Rename the image." -msgstr "Byt namn på bilden." - -#. (itstool) path: td/p -#: C/shortcuts.page:119 -#| msgid "Esc" -msgid "c" -msgstr "c" - -#. (itstool) path: td/p -#: C/shortcuts.page:124 -msgid "Add comments or metadata to the selected images." -msgstr "Lägg till kommentarer eller metadata till de markerade bilderna." - -#. (itstool) path: td/p -#: C/shortcuts.page:129 -#| msgid "#" -msgid "t" -msgstr "t" - -#. (itstool) path: td/p -#: C/shortcuts.page:134 -msgid "Add tags to the selected images." -msgstr "Lägg till taggar till de markerade bilderna." - -#. (itstool) path: td/p -#: C/shortcuts.page:139 -msgid "]" -msgstr "]" - -#. (itstool) path: td/p -#: C/shortcuts.page:144 -msgid "Rotate right, losslessly if possible. The file is saved automatically." -msgstr "Rotera vänster, om möjligt förlustfritt. Filen sparas automatiskt." - -#. (itstool) path: td/p -#: C/shortcuts.page:149 -msgid "[" -msgstr "[" - -#. (itstool) path: td/p -#: C/shortcuts.page:154 -msgid "Rotate left, losslessly if possible. The file is saved automatically." -msgstr "Rotera vänster, om möjligt förlustfritt. Filen sparas automatiskt." - -#. (itstool) path: td/p -#: C/shortcuts.page:159 -msgid "Delete" -msgstr "Delete" - -#. (itstool) path: td/p -#: C/shortcuts.page:164 -msgid "Move the selected files to the Trash." -msgstr "Flytta de markerade filerna till papperskorgen." - -#. (itstool) path: td/p -#: C/shortcuts.page:169 -msgid "ShiftDelete" -msgstr "SkiftDelete" - -#. (itstool) path: td/p -#: C/shortcuts.page:174 -msgid "Delete the selected files permanently." -msgstr "Ta bort de markerade bilderna permanent." - -#. (itstool) path: section/title -#: C/shortcuts.page:182 -msgid "Editing shortcuts for the viewer mode only" -msgstr "Redigerar genvägar endast för visarläget" - -#. (itstool) path: td/p -#: C/shortcuts.page:186 -msgid "Keyboard Shortcut (Case Sensitive)" -msgstr "Tangentbordsgenvägar (skiftlägeskänslig)" - -#. (itstool) path: td/p -#: C/shortcuts.page:194 -msgid "a" -msgstr "a" - -#. (itstool) path: td/p -#: C/shortcuts.page:199 -msgid "Adjust contrast." -msgstr "Justera kontrast." - -#. (itstool) path: td/p -#: C/shortcuts.page:204 -msgid "l" -msgstr "l" - -#. (itstool) path: td/p -#: C/shortcuts.page:209 -msgid "Flip image." -msgstr "Vänd bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:214 -msgid "m" -msgstr "m" - -#. (itstool) path: td/p -#: C/shortcuts.page:219 -msgid "Mirror image." -msgstr "Spegelvänd bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:224 -msgid "r" -msgstr "r" - -#. (itstool) path: td/p -#: C/shortcuts.page:229 -msgid "Rotate right." -msgstr "Rotera åt höger." - -#. (itstool) path: td/p -#: C/shortcuts.page:234 -msgid "R" -msgstr "R" - -#. (itstool) path: td/p -#: C/shortcuts.page:239 -msgid "Rotate left." -msgstr "Rotera åt vänster." - -#. (itstool) path: td/p -#: C/shortcuts.page:244 -msgid "C" -msgstr "C" - -#. (itstool) path: td/p -#: C/shortcuts.page:249 -msgid "Crop image." -msgstr "Beskär bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:254 -msgid "S" -msgstr "S" - -#. (itstool) path: td/p -#: C/shortcuts.page:259 -msgid "Resize image." -msgstr "Ändra storlek på bild." - -#. (itstool) path: section/title -#: C/shortcuts.page:266 -msgid "Viewer shortcuts" -msgstr "Visargenvägar" - -#. (itstool) path: td/p -#: C/shortcuts.page:278 -msgid "Space or Page Down" -msgstr "Mellanslag eller Page Down" - -#. (itstool) path: td/p -#: C/shortcuts.page:283 -msgid "View the next image." -msgstr "Visa nästa bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:288 -msgid "Backspace or Page Up" -msgstr "Backsteg eller Page Up" - -#. (itstool) path: td/p -#: C/shortcuts.page:293 -msgid "View the previous image." -msgstr "Visa föregående bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:298 C/shortcuts.page:446 -msgid "Home" -msgstr "Home" - -#. (itstool) path: td/p -#: C/shortcuts.page:303 -msgid "View the first image." -msgstr "Visa första bilden." - -#. (itstool) path: td/p -#: C/shortcuts.page:308 C/shortcuts.page:456 -msgid "End" -msgstr "End" - -#. (itstool) path: td/p -#: C/shortcuts.page:313 -msgid "View the last image." -msgstr "Visa sista bilden." - -#. (itstool) path: td/p -#: C/shortcuts.page:318 -msgid "+ or =" -msgstr "+ eller =" - -#. (itstool) path: td/p -#: C/shortcuts.page:323 -msgid "Zoom in." -msgstr "Zooma in." - -#. (itstool) path: td/p -#: C/shortcuts.page:328 -msgid "-" -msgstr "-" - -#. (itstool) path: td/p -#: C/shortcuts.page:333 -msgid "Zoom out." -msgstr "Zooma ut." - -#. (itstool) path: td/p -#: C/shortcuts.page:338 -msgid "1 or z or / (numeric keypad)" -msgstr "" -"1 eller z eller / (numeriskt tangentbord)" - -#. (itstool) path: td/p -#: C/shortcuts.page:344 -msgid "Actual size." -msgstr "Naturlig storlek." - -#. (itstool) path: td/p -#: C/shortcuts.page:349 -msgid "x or * (numeric keypad)" -msgstr "x eller * (numeriskt tangentbord)" - -#. (itstool) path: td/p -#: C/shortcuts.page:354 -msgid "Zoom to fit (scales down only, does not magnify)" -msgstr "Zooma för att passa (skalar endast ned, förstorar ej)" - -#. (itstool) path: td/p -#: C/shortcuts.page:359 -msgid " Shift x " -msgstr " Skift x " - -#. (itstool) path: td/p -#: C/shortcuts.page:367 -msgid "Zoom to fit (scale down or magnify, as required)" -msgstr "Zooma för att passa (skalar ned eller förstorar efter vad som krävs)" - -#. (itstool) path: td/p -#: C/shortcuts.page:372 -msgid "w" -msgstr "w" - -#. (itstool) path: td/p -#: C/shortcuts.page:376 -msgid "Zoom to fit width (scales down only, does not magnify)" -msgstr "Zooma för att passa bredd (skalar endast ned, förstorar ej)" - -#. (itstool) path: td/p -#: C/shortcuts.page:381 -msgid " Shift w " -msgstr " Skift w " - -#. (itstool) path: td/p -#: C/shortcuts.page:389 -msgid "Zoom to fit width (scale down or magnify, as required)" -msgstr "" -"Zooma för att passa bredd (skalar ned eller förstorar efter vad som krävs)" - -#. (itstool) path: td/p -#: C/shortcuts.page:394 -msgid "h" -msgstr "h" - -#. (itstool) path: td/p -#: C/shortcuts.page:398 -msgid "Zoom to fit height (scales down only, does not magnify)" -msgstr "Zooma för att passa höjd (skalar endast ned, förstorar ej)" - -#. (itstool) path: td/p -#: C/shortcuts.page:403 -msgid " Shift h " -msgstr " Skift h " - -#. (itstool) path: td/p -#: C/shortcuts.page:411 -msgid "Zoom to fit height (scale down or magnify, as required)" -msgstr "" -"Zooma för att passa höjd (skalar ned eller förstorar efter vad som krävs)" - -#. (itstool) path: td/p -#: C/shortcuts.page:416 -msgid "Arrows" -msgstr "Pilar" - -#. (itstool) path: td/p -#: C/shortcuts.page:421 -msgid "Scroll the image." -msgstr "Rulla bilden." - -#. (itstool) path: td/p -#: C/shortcuts.page:426 -msgid " Shift Arrows " -msgstr " Skift Pilar " - -#. (itstool) path: td/p -#: C/shortcuts.page:434 -msgid "Scroll the image faster." -msgstr "Rulla bilden snabbare." - -#. (itstool) path: section/title -#: C/shortcuts.page:441 -msgid "Browser Navigation" -msgstr "Bläddrarnavigation" - -#. (itstool) path: td/p -#: C/shortcuts.page:451 -msgid "Go to the first file in the browser view." -msgstr "Gå till den första filen i bläddrarfönstret." - -#. (itstool) path: td/p -#: C/shortcuts.page:461 -msgid "Go to the last file in the browser view." -msgstr "Gå till den sista filen i bläddrarfönstret." - -#. (itstool) path: td/p -#: C/shortcuts.page:466 -msgid "Down Arrow or Page Down" -msgstr "Down Arrow eller Page Down" - -#. (itstool) path: td/p -#: C/shortcuts.page:471 -msgid "Scroll downwards through the thumbnails." -msgstr "Rulla nedåt genom miniatyrbilderna." - -#. (itstool) path: td/p -#: C/shortcuts.page:476 -msgid "Up Arrow or Page Up" -msgstr "Uppåtpil eller Page Up" - -#. (itstool) path: td/p -#: C/shortcuts.page:481 -msgid "Scroll upwards through the thumbnails." -msgstr "Rulla uppåt genom miniatyrbilderna." - -#. (itstool) path: td/p -#: C/shortcuts.page:486 -msgid "AltLeft Arrow" -msgstr "AltVänsterpil" - -#. (itstool) path: td/p -#: C/shortcuts.page:491 -msgid "Go back to the previously viewed folder." -msgstr "Gå till den tidigare visade mappen." - -#. (itstool) path: td/p -#: C/shortcuts.page:496 -msgid "AltRight Arrow" -msgstr "AltHögerpil" - -#. (itstool) path: td/p -#: C/shortcuts.page:501 -msgid "Go forward (after going back to a folder)." -msgstr "Stega framåt (efter att ha gått tillbaka till en mapp)." - -#. (itstool) path: td/p -#: C/shortcuts.page:506 -msgid " Alt Up Arrow " -msgstr " Alt Uppåtpil " - -#. (itstool) path: td/p -#: C/shortcuts.page:514 -msgid "Go up one level." -msgstr "Gå upp en nivå." - -#. (itstool) path: td/p -#: C/shortcuts.page:519 -msgid "Ctrlo" -msgstr "Ctrlo" - -#. (itstool) path: td/p -#: C/shortcuts.page:524 -msgid "Open a location typing the path." -msgstr "Öppna en plats genom att skriva sökvägen." - -#. (itstool) path: section/title -#: C/shortcuts.page:531 -msgid "Slideshow controls" -msgstr "Bildspelskontroller" - -#. (itstool) path: td/p -#: C/shortcuts.page:543 -msgid "F5" -msgstr "F5" - -#. (itstool) path: td/p -#: C/shortcuts.page:548 -msgid "Start a slideshow." -msgstr "Starta ett bildspel." - -#. (itstool) path: td/p -#: C/shortcuts.page:553 -msgid "p" -msgstr "p" - -#. (itstool) path: td/p -#: C/shortcuts.page:558 -msgid "Pause/Unpause the slideshow." -msgstr "Pausa/spela upp bildspelet." - -#. (itstool) path: td/p -#: C/shortcuts.page:563 -msgid "Esc or q" -msgstr "Esc eller q" - -#. (itstool) path: td/p -#: C/shortcuts.page:568 -msgid "Close the slideshow." -msgstr "Stäng bildspelet." - -#. (itstool) path: td/p -#: C/shortcuts.page:573 -msgid "" -"Space or Down Arrow or Right Arrow or " -"Page Down" -msgstr "" -"Mellanslag Eller Nedåtpil eller Högerpil " -"eller Page Down" - -#. (itstool) path: td/p -#: C/shortcuts.page:578 -msgid "Load the next image." -msgstr "Läs in nästa bild." - -#. (itstool) path: td/p -#: C/shortcuts.page:583 -msgid "" -"Backspace or Up Arrow or Left Arrow or " -"Page Up" -msgstr "" -"Backsteg eller Uppåtpil eller Vänsterpil " -"eller Page Up" - -#. (itstool) path: td/p -#: C/shortcuts.page:588 -msgid "Load the previous image." -msgstr "Läs in föregående bild." - -#. (itstool) path: page/title #: C/sharing-disc.page:6 msgid "Creating a CD/DVD/ISO" msgstr "Skapa en cd/dvd/iso" @@ -3290,6 +2546,461 @@ "kopiera, ändra och distribuera exempelkoden i detta dokument på det sätt du " "väljer, utan restriktioner." +#~ msgid "%a" +#~ msgstr "%a" + +#~ msgid "%A" +#~ msgstr "%A" + +#~ msgid "%b" +#~ msgstr "%b" + +#~ msgid "%B" +#~ msgstr "%B" + +#~ msgid "%c" +#~ msgstr "%c" + +#~ msgid "%C" +#~ msgstr "%C" + +#~ msgid "%d" +#~ msgstr "%d" + +#~ msgid "%D" +#~ msgstr "%D" + +#~ msgid "%e" +#~ msgstr "%e" + +#~ msgid "%E" +#~ msgstr "%E" + +#~ msgid "%F" +#~ msgstr "%F" + +#~ msgid "%G" +#~ msgstr "%G" + +#~ msgid "%g" +#~ msgstr "%g" + +#~ msgid "%h" +#~ msgstr "%h" + +#~ msgid "%H" +#~ msgstr "%H" + +#~ msgid "%I" +#~ msgstr "%I" + +#~ msgid "%j" +#~ msgstr "%j" + +#~ msgid "%k" +#~ msgstr "%k" + +#~ msgid "%l" +#~ msgstr "%l" + +#~ msgid "%m" +#~ msgstr "%m" + +#~ msgid "%M" +#~ msgstr "%M" + +#~ msgid "%O" +#~ msgstr "%O" + +#~ msgid "%p" +#~ msgstr "%p" + +#~ msgid "%P" +#~ msgstr "%P" + +#~ msgid "%r" +#~ msgstr "%r" + +#~ msgid "%R" +#~ msgstr "%R" + +#~ msgid "%s" +#~ msgstr "%s" + +#~ msgid "%S" +#~ msgstr "%S" + +#~ msgid "%T" +#~ msgstr "%T" + +#~ msgid "%u" +#~ msgstr "%u" + +#~ msgid "%U" +#~ msgstr "%U" + +#~ msgid "%V" +#~ msgstr "%V" + +#~ msgid "%w" +#~ msgstr "%w" + +#~ msgid "%W" +#~ msgstr "%W" + +#~ msgid "%x" +#~ msgstr "%x" + +#~ msgid "%X" +#~ msgstr "%X" + +#~ msgid "%y" +#~ msgstr "%y" + +#~ msgid "%Y" +#~ msgstr "%Y" + +#~ msgid "%z" +#~ msgstr "%z" + +#~ msgid "%Z" +#~ msgstr "%Z" + +#~ msgid "Keyboard Shortcuts" +#~ msgstr "Tangentbordsgenvägar" + +#~ msgid "Viewing and hiding parts of the user interface" +#~ msgstr "Visa och dölja delar av användargränssnittet" + +#~ msgid "Keyboard Shortcut" +#~ msgstr "Genväg" + +#~ msgid "F9" +#~ msgstr "F9" + +#~ msgid "" +#~ "Show/Hide the sidebar in the browser mode. The sidebar contains the " +#~ "folder tree and the file properties summary (if enabled)." +#~ msgstr "" +#~ "Visa/dölj sidopanelen i bläddrarläget. Sidopanelen innehåller mappträdet " +#~ "och en sammanfattning av filegenskaperna (om aktiverat)." + +#~ msgid "i" +#~ msgstr "i" + +#~ msgid "Show the file properties summary." +#~ msgstr "Visa sammanfattningen av filegenskaperna." + +#~ msgid "F8" +#~ msgstr "F8" + +#~ msgid "Shows/hides the thumbnail pane in the viewer mode." +#~ msgstr "Visar/döljer miniatyrbildspanelen i visarläget." + +#~ msgid "F11 or f" +#~ msgstr "F11 eller f" + +#~ msgid "Toggles the fullscreen mode." +#~ msgstr "Aktivera helskärmsläget." + +#~ msgid "Esc" +#~ msgstr "Esc" + +#~ msgid "Closes the viewer or fullscreen mode." +#~ msgstr "Stänger visaren eller helskärmsläget." + +#~ msgid "Editing shortcuts for the browser and viewer" +#~ msgstr "Redigerar genvägar för bläddraren och visaren" + +#~ msgid "e" +#~ msgstr "e" + +#~ msgid "Edit the image. Opens the viewer and shows the editing tools." +#~ msgstr "Redigerar bilden. Öppnar visaren och visar redigeringsverktygen." + +#~ msgid "g" +#~ msgstr "g" + +#~ msgid "Open the image with the GNU Image Manipulation Program (GIMP)." +#~ msgstr "Öppnar bilden med GNU:s bildmanipuleringsprogram (GIMP)." + +#~ msgid "F2" +#~ msgstr "F2" + +#~ msgid "Rename the image." +#~ msgstr "Byt namn på bilden." + +#~| msgid "Esc" +#~ msgid "c" +#~ msgstr "c" + +#~ msgid "Add comments or metadata to the selected images." +#~ msgstr "Lägg till kommentarer eller metadata till de markerade bilderna." + +#~| msgid "#" +#~ msgid "t" +#~ msgstr "t" + +#~ msgid "Add tags to the selected images." +#~ msgstr "Lägg till taggar till de markerade bilderna." + +#~ msgid "]" +#~ msgstr "]" + +#~ msgid "" +#~ "Rotate right, losslessly if possible. The file is saved automatically." +#~ msgstr "Rotera vänster, om möjligt förlustfritt. Filen sparas automatiskt." + +#~ msgid "[" +#~ msgstr "[" + +#~ msgid "" +#~ "Rotate left, losslessly if possible. The file is saved automatically." +#~ msgstr "Rotera vänster, om möjligt förlustfritt. Filen sparas automatiskt." + +#~ msgid "Delete" +#~ msgstr "Delete" + +#~ msgid "Move the selected files to the Trash." +#~ msgstr "Flytta de markerade filerna till papperskorgen." + +#~ msgid "ShiftDelete" +#~ msgstr "SkiftDelete" + +#~ msgid "Delete the selected files permanently." +#~ msgstr "Ta bort de markerade bilderna permanent." + +#~ msgid "Editing shortcuts for the viewer mode only" +#~ msgstr "Redigerar genvägar endast för visarläget" + +#~ msgid "Keyboard Shortcut (Case Sensitive)" +#~ msgstr "Tangentbordsgenvägar (skiftlägeskänslig)" + +#~ msgid "a" +#~ msgstr "a" + +#~ msgid "Adjust contrast." +#~ msgstr "Justera kontrast." + +#~ msgid "l" +#~ msgstr "l" + +#~ msgid "Flip image." +#~ msgstr "Vänd bild." + +#~ msgid "m" +#~ msgstr "m" + +#~ msgid "Mirror image." +#~ msgstr "Spegelvänd bild." + +#~ msgid "r" +#~ msgstr "r" + +#~ msgid "Rotate right." +#~ msgstr "Rotera åt höger." + +#~ msgid "R" +#~ msgstr "R" + +#~ msgid "Rotate left." +#~ msgstr "Rotera åt vänster." + +#~ msgid "C" +#~ msgstr "C" + +#~ msgid "Crop image." +#~ msgstr "Beskär bild." + +#~ msgid "S" +#~ msgstr "S" + +#~ msgid "Resize image." +#~ msgstr "Ändra storlek på bild." + +#~ msgid "Viewer shortcuts" +#~ msgstr "Visargenvägar" + +#~ msgid "Space or Page Down" +#~ msgstr "Mellanslag eller Page Down" + +#~ msgid "View the next image." +#~ msgstr "Visa nästa bild." + +#~ msgid "Backspace or Page Up" +#~ msgstr "Backsteg eller Page Up" + +#~ msgid "View the previous image." +#~ msgstr "Visa föregående bild." + +#~ msgid "Home" +#~ msgstr "Home" + +#~ msgid "View the first image." +#~ msgstr "Visa första bilden." + +#~ msgid "End" +#~ msgstr "End" + +#~ msgid "View the last image." +#~ msgstr "Visa sista bilden." + +#~ msgid "+ or =" +#~ msgstr "+ eller =" + +#~ msgid "Zoom in." +#~ msgstr "Zooma in." + +#~ msgid "-" +#~ msgstr "-" + +#~ msgid "Zoom out." +#~ msgstr "Zooma ut." + +#~ msgid "1 or z or / (numeric keypad)" +#~ msgstr "" +#~ "1 eller z eller / (numeriskt tangentbord)" + +#~ msgid "Actual size." +#~ msgstr "Naturlig storlek." + +#~ msgid "x or * (numeric keypad)" +#~ msgstr "x eller * (numeriskt tangentbord)" + +#~ msgid "Zoom to fit (scales down only, does not magnify)" +#~ msgstr "Zooma för att passa (skalar endast ned, förstorar ej)" + +#~ msgid " Shift x " +#~ msgstr " Skift x " + +#~ msgid "Zoom to fit (scale down or magnify, as required)" +#~ msgstr "" +#~ "Zooma för att passa (skalar ned eller förstorar efter vad som krävs)" + +#~ msgid "w" +#~ msgstr "w" + +#~ msgid "Zoom to fit width (scales down only, does not magnify)" +#~ msgstr "Zooma för att passa bredd (skalar endast ned, förstorar ej)" + +#~ msgid " Shift w " +#~ msgstr " Skift w " + +#~ msgid "Zoom to fit width (scale down or magnify, as required)" +#~ msgstr "" +#~ "Zooma för att passa bredd (skalar ned eller förstorar efter vad som krävs)" + +#~ msgid "h" +#~ msgstr "h" + +#~ msgid "Zoom to fit height (scales down only, does not magnify)" +#~ msgstr "Zooma för att passa höjd (skalar endast ned, förstorar ej)" + +#~ msgid " Shift h " +#~ msgstr " Skift h " + +#~ msgid "Zoom to fit height (scale down or magnify, as required)" +#~ msgstr "" +#~ "Zooma för att passa höjd (skalar ned eller förstorar efter vad som krävs)" + +#~ msgid "Arrows" +#~ msgstr "Pilar" + +#~ msgid "Scroll the image." +#~ msgstr "Rulla bilden." + +#~ msgid " Shift Arrows " +#~ msgstr " Skift Pilar " + +#~ msgid "Scroll the image faster." +#~ msgstr "Rulla bilden snabbare." + +#~ msgid "Browser Navigation" +#~ msgstr "Bläddrarnavigation" + +#~ msgid "Go to the first file in the browser view." +#~ msgstr "Gå till den första filen i bläddrarfönstret." + +#~ msgid "Go to the last file in the browser view." +#~ msgstr "Gå till den sista filen i bläddrarfönstret." + +#~ msgid "Down Arrow or Page Down" +#~ msgstr "Down Arrow eller Page Down" + +#~ msgid "Scroll downwards through the thumbnails." +#~ msgstr "Rulla nedåt genom miniatyrbilderna." + +#~ msgid "Up Arrow or Page Up" +#~ msgstr "Uppåtpil eller Page Up" + +#~ msgid "Scroll upwards through the thumbnails." +#~ msgstr "Rulla uppåt genom miniatyrbilderna." + +#~ msgid "AltLeft Arrow" +#~ msgstr "AltVänsterpil" + +#~ msgid "Go back to the previously viewed folder." +#~ msgstr "Gå till den tidigare visade mappen." + +#~ msgid "AltRight Arrow" +#~ msgstr "AltHögerpil" + +#~ msgid "Go forward (after going back to a folder)." +#~ msgstr "Stega framåt (efter att ha gått tillbaka till en mapp)." + +#~ msgid " Alt Up Arrow " +#~ msgstr " Alt Uppåtpil " + +#~ msgid "Go up one level." +#~ msgstr "Gå upp en nivå." + +#~ msgid "Ctrlo" +#~ msgstr "Ctrlo" + +#~ msgid "Open a location typing the path." +#~ msgstr "Öppna en plats genom att skriva sökvägen." + +#~ msgid "Slideshow controls" +#~ msgstr "Bildspelskontroller" + +#~ msgid "F5" +#~ msgstr "F5" + +#~ msgid "Start a slideshow." +#~ msgstr "Starta ett bildspel." + +#~ msgid "p" +#~ msgstr "p" + +#~ msgid "Pause/Unpause the slideshow." +#~ msgstr "Pausa/spela upp bildspelet." + +#~ msgid "Esc or q" +#~ msgstr "Esc eller q" + +#~ msgid "Close the slideshow." +#~ msgstr "Stäng bildspelet." + +#~ msgid "" +#~ "Space or Down Arrow or Right Arrow or " +#~ "Page Down" +#~ msgstr "" +#~ "Mellanslag Eller Nedåtpil eller Högerpil " +#~ "eller Page Down" + +#~ msgid "Load the next image." +#~ msgstr "Läs in nästa bild." + +#~ msgid "" +#~ "Backspace or Up Arrow or Left Arrow or " +#~ "Page Up" +#~ msgstr "" +#~ "Backsteg eller Uppåtpil eller Vänsterpil " +#~ "eller Page Up" + +#~ msgid "Load the previous image." +#~ msgstr "Läs in föregående bild." + #~ msgid "Ctrlt" #~ msgstr "Ctrlt" diff -Nru gthumb-3.8.3/meson.build gthumb-3.9.1/meson.build --- gthumb-3.8.3/meson.build 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/meson.build 2020-03-07 19:03:13.580286500 +0000 @@ -1,7 +1,7 @@ project('gthumb', ['c', 'cpp'], license : 'GPL2+', - version : '3.8.3', - meson_version : '>=0.42.1' + version : '3.9.1', + meson_version : '>=0.43' ) glib_version = '>=2.38.0' @@ -29,6 +29,7 @@ i18n = import('i18n') gettext_package = meson.project_name() c_comp = meson.get_compiler('c') +cpp_comp = meson.get_compiler('cpp') prefix = get_option('prefix') datadir = join_paths(prefix, get_option('datadir')) pkgdatadir = join_paths(datadir, meson.project_name()) @@ -299,11 +300,13 @@ config_file = configure_file(output : 'config.h', configuration : config_data) config_inc = include_directories('.') -# C args +# C/C++ args c_args = [] +cpp_args = [] if get_option('buildtype').contains('debug') - test_args = [ + warn_deprecated = get_option('warn-deprecated') + test_c_args = [ '-Wall', '-Wcast-align', '-Wtype-limits', @@ -316,16 +319,28 @@ '-Wno-sign-compare', '-Wformat-security' ] + test_cpp_args = [ + '-Wall', + '-Wcast-align', + '-Wtype-limits', + '-Wclobbered', + '-Wempty-body', + '-Wignored-qualifiers', + '-Wpointer-arith', + '-Wno-sign-compare', + '-Wformat-security' + ] else - c_args += [ '-Wno-deprecated-declarations' ] - test_args = [ '-Wall' ] + warn_deprecated = false + test_c_args = [ '-Wall' ] + test_cpp_args = [ '-Wall' ] +endif +if not(warn_deprecated) + test_c_args += [ '-Wno-deprecated-declarations' ] + test_cpp_args += [ '-Wno-deprecated-declarations' ] endif -#c_args += c_comp.get_supported_arguments(test_args) -foreach arg : test_args - if c_comp.has_argument(arg) - c_args += arg - endif -endforeach +c_args += c_comp.get_supported_arguments(test_c_args) +cpp_args += cpp_comp.get_supported_arguments(test_cpp_args) # Subdirectories @@ -345,6 +360,7 @@ ' api: @0@'.format(api_version), ' prefix: @0@'.format(prefix), ' run in place: @0@'.format(get_option('run-in-place')), + ' warn deprecated: @0@'.format(warn_deprecated), ' exiv2: @0@'.format(use_exiv2), ' clutter: @0@'.format(use_clutter), ' gstreamer: @0@'.format(use_gstreamer), diff -Nru gthumb-3.8.3/meson_options.txt gthumb-3.9.1/meson_options.txt --- gthumb-3.8.3/meson_options.txt 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/meson_options.txt 2020-03-07 19:03:13.580286500 +0000 @@ -1,83 +1,89 @@ -option('run-in-place', - type : 'boolean', - value : false, +option('warn-deprecated', + type : 'boolean', + value : true, + description : 'Enable deprecated declaration warnings in debug mode' +) + +option('run-in-place', + type : 'boolean', + value : false, description : 'Load extensions and other resources from the source tree' ) -option('exiv2', - type : 'boolean', - value : true, +option('exiv2', + type : 'boolean', + value : true, description : 'Use exiv2 to read and write metadata' ) -option('clutter', - type : 'boolean', - value : true, +option('clutter', + type : 'boolean', + value : true, description : 'Use clutter to make animated slideshows' ) -option('gstreamer', - type : 'boolean', - value : true, +option('gstreamer', + type : 'boolean', + value : true, description : 'Use gstreamer to play multimedia files and to view the metadata' ) -option('libchamplain', - type : 'boolean', - value : false, +option('libchamplain', + type : 'boolean', + value : false, description : 'Use libchamplain to show the position the image refers to' ) -option('lcms2', - type : 'boolean', - value : true, +option('lcms2', + type : 'boolean', + value : true, description : 'Use lcms2 to get color management support' ) -option('colord', - type : 'boolean', - value : true, +option('colord', + type : 'boolean', + value : true, description : 'Use colord to read the monitor color profile' ) -option('libtiff', - type : 'boolean', - value : true, +option('libtiff', + type : 'boolean', + value : true, description : 'Use libtiff to load Tiff images' ) -option('libwebp', - type : 'boolean', - value : true, +option('libwebp', + type : 'boolean', + value : true, description : 'Use libwebp to load WebP images' ) -option('libraw', - type : 'boolean', - value : true, +option('libraw', + type : 'boolean', + value : true, description : 'Use libraw to load RAW images' ) -option('librsvg', - type : 'boolean', - value : true, +option('librsvg', + type : 'boolean', + value : true, description : 'Use librsvg to load SVG images' ) -option('libsecret', - type : 'boolean', - value : true, +option('libsecret', + type : 'boolean', + value : true, description : 'Use libsecret to save web service account data' ) -option('webservices', - type : 'boolean', - value : true, +option('webservices', + type : 'boolean', + value : true, description : 'Compile extensions that import/export images from web services' ) -option('libbrasero', - type : 'boolean', - value : true, +option('libbrasero', + type : 'boolean', + value : true, description : 'Use libbrasero to save images and metadata to discs' ) diff -Nru gthumb-3.8.3/NEWS gthumb-3.9.1/NEWS --- gthumb-3.8.3/NEWS 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/NEWS 2020-03-07 19:03:13.393623400 +0000 @@ -1,13 +1,53 @@ -version 3.8.3 +version 3.9.1 ------------- + New features and user visible changes: + + * Added ability to customize the keyboard shortcuts. + * Added a shortcuts window to show the available shortcuts. + * Added option to change the mouse wheel action. + * Image viewer: added ability to define the transparency style. + * Video viewer: allow to view the video at the original size; show the zoom + factor in the statusbar. + * Edit comment/tags dialogs: use the header bar; allow to change the current + image from the dialog. + * Add to catalog: use the header bar; allow to change the current image from + the dialog. + * Search: added ability to search in multiple folders. + * Scripts: added %T to insert a timestamp in the command. + * Folder tree: + * better drag&drop support: allow to move a catalog into a library, and a + library into another library, show an error if the drop operation is not + possible; + * added an 'Open in Terminal' command in the context menu. + * Overwrite dialog: show video previews as well, fixed dialog size. + * Preferences: allow to specify a catalog or any other location as startup + location. + * Trash/Delete files: show progress for long operations. + * File properties: added the file size in bytes. + * File properties: added a context menu command to customize the visibile + properties. + * Toolbar: show edit comment/tags in browser mode as well. + * Export tools: removed from the toolbar. Some tools moved to the tools + menu, others as a submenu in the gears menu. + * Fixed window size when started the first time. + * Updated app icon to follow the new GNOME style. + * Rewritten README in markdown, updated screenshots. + * Appdata: added release and OARS tags for flathub compatibility. (Tobias Mueller) + Bugs fixed: - * App icons: name the app icons with the application id (!77) - * Jpeg loader: crash when the original size is too big for a cairo - surface. + * gThumb hangs when some mount point is unavailable. (!75) + * Jpeg loader: crash when the original size is too big for a cairo surface. + * PNG loader: correctly load images with transparency. * Fixed run-time errors if exiv2 is not used. - * Fixed window size the first time gThumb is executed. + * Catalog: preserve the list order after saving the properties. + * Scripts: fixed task cancellation when using a shell script. + + Source code: + + * Utility functions refactoring. + * Added tests for the utility functions. version 3.8.2 ------------- diff -Nru gthumb-3.8.3/po/bg.po gthumb-3.9.1/po/bg.po --- gthumb-3.8.3/po/bg.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/bg.po 2020-03-07 19:03:13.583619800 +0000 @@ -913,7 +913,7 @@ #: ../data/glade/gthumb_png_exporter.glade.h:21 msgid "Note: # (enumerator)." -msgstr "Бележка: # (брояч)." +msgstr "Бележка: # (брояч)." #: ../data/glade/gthumb_png_exporter.glade.h:23 #, no-c-format diff -Nru gthumb-3.8.3/po/ca.po gthumb-3.9.1/po/ca.po --- gthumb-3.8.3/po/ca.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/ca.po 2020-03-07 19:03:13.583619800 +0000 @@ -159,7 +159,7 @@ #: extensions/contact_sheet/gth-contact-sheet-theme.c:34 #: extensions/image_print/data/ui/print-layout.ui:519 msgid "Caption" -msgstr "L'anotació" +msgstr "Anotació" #: data/ui/browser-preferences.ui:72 msgid "Behavior" @@ -175,7 +175,7 @@ #: data/ui/browser-preferences.ui:129 msgid "_Open files in fullscreen mode" -msgstr "_Obre a pantalla completa" +msgstr "_Obre els fitxers a pantalla completa" #: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 @@ -1023,7 +1023,7 @@ #: extensions/change_date/data/ui/change-date.ui:235 msgid "File c_reation date" -msgstr "Data en què el fitxer va ser c_reat" +msgstr "Data de _creació del fitxer" #: extensions/change_date/data/ui/change-date.ui:253 msgid "Date p_hoto was taken" @@ -1598,7 +1598,7 @@ #: extensions/edit_metadata/gth-edit-general-page.c:559 msgid "File creation date" -msgstr "La data en què el fitxer va ser creat" +msgstr "Data de creació del fitxer" #: extensions/edit_metadata/gth-edit-general-page.c:560 msgid "Do not modify" @@ -2915,7 +2915,7 @@ #: extensions/flicker_utils/data/ui/export-to-flickr.ui:329 msgid "_Safety:" -msgstr "_Protecció:" +msgstr "_Seguretat:" #: extensions/flicker_utils/data/ui/export-to-flickr.ui:405 msgid "Hi_de from public searches" @@ -3967,7 +3967,7 @@ #. Translators: this is the text case (upper or lower case). #: extensions/rename_series/data/ui/rename-series.ui:54 msgid "Cas_e:" -msgstr "Ca_s:" +msgstr "_Capitalització:" #: extensions/rename_series/data/ui/rename-series.ui:83 msgid "Help" @@ -4081,7 +4081,7 @@ #: extensions/rename_series/dlg-rename-series.c:960 msgid "Keep original case" -msgstr "Mantén el cas original" +msgstr "Mantén la capitalització original" #: extensions/rename_series/dlg-rename-series.c:961 msgid "Convert to lower-case" diff -Nru gthumb-3.8.3/po/da.po gthumb-3.9.1/po/da.po --- gthumb-3.8.3/po/da.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/da.po 2020-03-07 19:03:13.586953200 +0000 @@ -6,6 +6,7 @@ # Peter Bach , 2007. # Joe Hansen , 2010, 2012. # Ask Hjorth Larsen , 2016, 2017. +# scootergrisen, 2020. # # Husk at tilføje dig i credit-listen (besked id "translator-credits") # @@ -24,16 +25,15 @@ msgstr "" "Project-Id-Version: gthumb\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-01-12 11:52+0000\n" -"PO-Revision-Date: 2019-01-25 19:25+0100\n" -"Last-Translator: Alan Mortensen \n" +"POT-Creation-Date: 2019-12-23 19:04+0000\n" +"PO-Revision-Date: 2020-02-04 14:19+0200\n" +"Last-Translator: scootergrisen\n" "Language-Team: Danish \n" "Language: da\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.0.6\n" # Jeg bryder mig ikke om "Tuborg Appelsinvand"-konstruktionen men det er måske alligevel den bedste løsning #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 @@ -145,19 +145,13 @@ msgid "Import the photos on your camera card" msgstr "Importer billederne på dit kamerakort" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Billedfremviser" @@ -172,69 +166,70 @@ msgid "Caption" msgstr "Billedtekst" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Opførsel" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "_Enkeltklik for at åbne filer" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "_Dobbeltklik for at åbne filer" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Åbn filer i fuldskærmstilstand" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Andet" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "Miniaturebilledernes _størrelse:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "Bestem billedtype fra _indhold (langsommere)" @@ -250,16 +245,20 @@ msgid "Filter _Name:" msgstr "Filter_navn:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "_Match:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Regler:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Begræns til" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "valgt af" @@ -305,40 +304,40 @@ msgid "Old File:" msgstr "Gammel fil:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Filnavn:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Størrelse:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Ændret:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Ny fil:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "Over_skriv den gamle fil" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "Overskriv ikke den gamle _fil" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Overskriv _alle filer" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_Overskriv ikke nogen filer" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "_Gem den nye fil som:" @@ -362,70 +361,76 @@ msgid "gThumb Preferences" msgstr "Indstillinger for gThumb" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Fremtoning" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "_Miniaturebilleder i fremviser:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "i bunden" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "på siden" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "Fil_egenskaber i browser:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Ved opstart:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Gå til seneste _besøgte sted" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Gå til denne _mappe:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Vælg startmappe" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Gør til _aktuel" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "_Genbrug det aktive vindue til at åbne filer" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Spørg om _bekræftelse inden filer eller album slettes" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Spørg om _ændrede filer skal gemmes" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "_Gem metadata i filer hvis det er muligt" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Generelt" +#: data/ui/shortcuts-preferences.ui:27 +#| msgid "Sh_ortcut:" +msgid "Shortcuts:" +msgstr "Genveje:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Gendan alle …" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "_Omvendt rækkefølge" @@ -439,7 +444,7 @@ msgstr "Overfør billeder til 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Bogmærker" @@ -456,7 +461,7 @@ msgid "_Edit Bookmarks…" msgstr "_Redigér bogmærker …" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "_Systembogmærker" @@ -470,6 +475,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Fjern" @@ -521,15 +527,15 @@ msgid "Source" msgstr "Kilde" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Skriv til disk" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Fortsæt" @@ -538,7 +544,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Fejl ved fortolkning af JPEG-billedfil: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Ukendt JPEG-farverum (%d)" @@ -651,64 +657,64 @@ #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1721 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Gemmer" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:374 +#: extensions/catalogs/dlg-add-to-catalog.c:539 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Intet navn angivet" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:381 +#: extensions/catalogs/dlg-add-to-catalog.c:546 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Ugyldigt navn. De følgende tegn er ikke tilladte: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:438 +#: extensions/catalogs/dlg-add-to-catalog.c:595 +#: extensions/catalogs/gth-file-source-catalogs.c:515 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Navn allerede brugt" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "New catalog" msgstr "Nyt album" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:460 msgid "Enter the catalog name:" msgstr "Indtast albumnavnet:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:462 +#: extensions/catalogs/dlg-add-to-catalog.c:621 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "Op_ret" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "New library" msgstr "Nyt bibliotek" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:619 msgid "Enter the library name:" msgstr "Indtast biblioteksnavnet:" @@ -725,7 +731,7 @@ msgid "Add to Catalog…" msgstr "Tilføj til album …" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Åbn mappe" @@ -741,40 +747,40 @@ msgid "Create Library" msgstr "Opret bibliotek" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Omdøb" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:204 gthumb/gth-browser.c:4545 +#: gthumb/gth-browser.c:4647 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Egenskaber" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:911 extensions/catalogs/gth-catalog.c:912 msgid "Catalogs" msgstr "Albummer" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Kommandolinje" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Albumegenskaber" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Organiser" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Organiser automatisk filer efter dato" @@ -790,25 +796,35 @@ msgid "Add to Catalog" msgstr "Tilføj til album" +# næppe samme menu som _Link ovenfor +#: extensions/catalogs/data/ui/add-to-catalog.ui:28 gthumb/gth-browser.c:2399 +#: gthumb/gtk-utils.h:37 +msgid "_Close" +msgstr "_Luk" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:42 +msgid "_Add" +msgstr "_Tilføj" + #: extensions/catalogs/data/ui/add-to-catalog.ui:56 msgid "A_dd and Close" msgstr "_Tilføj og luk" -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:98 msgid "C_atalogs:" msgstr "_Albummer:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 +#: extensions/catalogs/data/ui/add-to-catalog.ui:138 msgid "_New Catalog" msgstr "_Nyt album" -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 +#: extensions/catalogs/data/ui/add-to-catalog.ui:152 msgid "New _Library" msgstr "Nyt _bibliotek" -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:195 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Vis målmappen" @@ -865,7 +881,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "_Medtag undermapper" @@ -881,13 +897,12 @@ msgid "Singles" msgstr "Singler" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:154 msgid "Could not add the files to the catalog" msgstr "Kunne ikke tilføje filerne til albummet" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:317 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Kunne ikke oprette albummet" @@ -895,12 +910,12 @@ msgid "Could not save the catalog" msgstr "Kunne ikke gemme albummet" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Kunne ikke indlæse albummet" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Organiser filer" @@ -911,75 +926,75 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Dato billedet blev taget" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Dato fil blev ændret" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Mærke" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Mærke (indlejret)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Ugyldigt filformat" + +#: extensions/catalogs/gth-catalog.c:1007 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: gthumb/gth-main-default-metadata.c:64 msgid "Tags" msgstr "Mærker" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:956 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "Albummet “%s” findes allerede. Ønsker du at overskrive det?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "Biblioteket “%s” findes allerede. Ønsker du at overskrive det?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:966 msgid "Over_write" msgstr "Over_skriv" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1085 msgid "Cannot move the files" msgstr "Kan ikke flytte filerne" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot copy the files" msgstr "Kan ikke kopiere filerne" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1092 msgid "Invalid destination." msgstr "Ugyldig destination." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1139 #, c-format msgid "Copying files to “%s”" msgstr "Kopierer filer til “%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1318 msgid "Could not remove the files from the catalog" msgstr "Kunne ikke fjerne filerne fra albummet" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:871 -#: extensions/exiv2_tools/exiv2-utils.cpp:880 -#: extensions/exiv2_tools/exiv2-utils.cpp:910 -#: extensions/exiv2_tools/exiv2-utils.cpp:1441 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Ugyldigt filformat" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1083,16 +1098,16 @@ msgid "Preferences" msgstr "Indstillinger" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Kommentar" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:61 msgid "Title" msgstr "Titel" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1102,21 +1117,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:63 msgid "Description" msgstr "Beskrivelse" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:62 msgid "Place" msgstr "Sted" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Kommentér dato & klokkeslæt" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:65 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Bedømmelse" @@ -1130,7 +1145,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Kontaktark" @@ -1142,9 +1157,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Ingen" @@ -1216,7 +1231,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1231,7 +1246,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1239,7 +1254,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Billedtekst:" @@ -1394,13 +1409,13 @@ msgid "Thumbnails" msgstr "Miniaturebilleder" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Kunne ikke gemme temaet" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Kunne ikke slette temaet" @@ -1408,11 +1423,11 @@ msgid "Image Wall" msgstr "Billedvæg" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Opretter billeder" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Opretter miniaturebilleder" @@ -1475,7 +1490,7 @@ msgstr "Kunne ikke vise egenskaber for skrivebordsbaggrunden" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Indstillinger" @@ -1521,6 +1536,16 @@ msgstr "Hvis du sletter metadataene, så vil de være væk for bestandig." #: extensions/edit_metadata/callbacks.c:45 +#| msgid "Edit Command" +msgid "Edit comment" +msgstr "Rediger kommentar" + +#: extensions/edit_metadata/callbacks.c:46 +#| msgid "Edit template" +msgid "Edit tags" +msgstr "Rediger mærker" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Slet metadata" @@ -1551,8 +1576,8 @@ msgid "Could not save the file metadata" msgstr "Kunne ikke gemme filmetadataene" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Kan ikke læse filinformation" @@ -1685,11 +1710,12 @@ msgid "State/Province:" msgstr "Stat/provins:" -#: extensions/exiv2_tools/exiv2-utils.cpp:42 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2051 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(ugyldig værdi)" -#: extensions/exiv2_tools/exiv2-utils.cpp:708 +#: extensions/exiv2_tools/exiv2-utils.cpp:713 msgid "Exposure" msgstr "Eksponering" @@ -1893,7 +1919,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1934,13 +1960,13 @@ msgid "Uploading “%s”" msgstr "Overfører “%s”" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Overfører filerne til serveren" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1963,14 +1989,21 @@ msgstr "Indtast mappenavnet:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5555 gthumb/gth-browser.c:5591 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Kunne ikke udføre handlingen" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Kunne ikke flytte filerne" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1978,118 +2011,126 @@ "Filer kan ikke flyttes til den aktuelle placering. Som alternativ kan du " "vælge at kopiere dem." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Kopier" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Flyt til" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Kopier til" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Flyt" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Kunne ikke åbne placeringen" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Klip" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Indsæt" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Kopiér til …" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Flyt til …" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Flyt til papirkurven" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Slet" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Åbn med filhåndteringen" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Opret mappe" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Indsæt i mappe" # Det drejer sig om en handling iflg. kildekoden (har genvejstast Ctrl+D og den slags) -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Duplikér" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:129 +#| msgid "Delete Metadata" +msgid "Delete permanently" +msgstr "Slet permanent" + +#: extensions/file_manager/callbacks.c:130 +#| msgid "Open _With" +msgid "Open with Gimp" +msgstr "Åbn med Gimp" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:235 msgid "Home Folder" msgstr "Hjemmemappe" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "_Åbn med" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Vil du flytte “%s” til “%s”?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Vil du kopiere “%s” til “%s”?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Vil du flytte de trukne filer til “%s”?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Vil du kopiere de trukne filer til “%s”?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Kopiér" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Kunne ikke udføre handlingen" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Filhåndtering" @@ -2102,6 +2143,43 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +#| msgid "Adjust Contrast" +msgid "Adjust contrast" +msgstr "Justér kontrast" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Vend" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Spejlvend" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +#| msgid "Rotate Right" +msgid "Rotate right" +msgstr "Roter højre om" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +#| msgid "Rotate Left" +msgid "Rotate left" +msgstr "Roter venstre om" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Beskær" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Ændr størrelse" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2164,9 +2242,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Indstillinger" @@ -2203,7 +2281,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Størrelsesforhold" @@ -2241,7 +2319,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:47 msgid "Dimensions" msgstr "Dimensioner" @@ -2476,74 +2554,74 @@ msgstr "Vælg en farve fra billedet" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Kvadrat" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d × %d (Billede)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d × %d (Skærm)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (dvd, bog)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (postkort)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (dvd)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1,85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2,39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2565,10 +2643,6 @@ msgid "Center Lines" msgstr "Centerlinjer" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Beskær" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Føj til forudindstillinger" @@ -2579,8 +2653,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1650 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Kunne ikke gemme filen" @@ -2655,10 +2729,6 @@ msgid "Vignette" msgstr "Vignettering" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Vend" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Vend billedet lodret" @@ -2684,10 +2754,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Spejlvend" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Spejlvend billedet vandret" @@ -2701,19 +2767,15 @@ msgstr "Omgør" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Ændrer størrelse på billeder" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Ændr størrelse" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Roter venstre om" @@ -2722,8 +2784,8 @@ msgstr "Roter billedet med 90 grader mod uret" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Roter højre om" @@ -2736,12 +2798,12 @@ msgstr "Roter" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Gem som …" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Gem" @@ -2797,7 +2859,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Start _fra:" @@ -2812,7 +2874,7 @@ msgstr "Find duplikater" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Find" @@ -2932,7 +2994,7 @@ msgstr "_Skjul for offentlige søgninger" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "_Åbn i browseren" @@ -2949,7 +3011,7 @@ msgstr "Intet album valgt" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Importer" @@ -3019,6 +3081,15 @@ msgid "Could not take a screenshot" msgstr "Kunne ikke tage et skærmbillede" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Skærmbillede" + +#: extensions/gstreamer_tools/callbacks.c:33 +#| msgid "Pause" +msgid "Play/Pause" +msgstr "Afspil/pause" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Benyt hardwareacceleration" @@ -3028,8 +3099,8 @@ msgstr "Sted for _skærmbilleder:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:569 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Afspil" @@ -3065,66 +3136,71 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:542 msgid "Playing video" msgstr "Afspiller video" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:555 msgid "Pause" msgstr "Pause" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:883 msgid "Take a screenshot" msgstr "Tag et skærmbillede" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/main.c:34 +#| msgid "Audio/Video support" +msgid "Audio/Video Player" +msgstr "Lyd-/videoafspiller" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Video" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Lyd" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Kunstner" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Album" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Bithastighed" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Koder" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Codec" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Billedhastighed" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Bredde" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Højde" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Kanaler" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Samplefrekvens" @@ -3138,10 +3214,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 +#: extensions/image_viewer/gth-image-viewer-page.c:1883 #: extensions/image_viewer/gth-metadata-provider-image.c:253 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:944 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3150,7 +3226,8 @@ msgid "Could not print the selected files" msgstr "Kunne ikke udskrive de valgte filer" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Udskriv" @@ -3208,19 +3285,19 @@ msgid "inches" msgstr "tommer" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Skrifttyper" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Vælg en skrifttype til billedtekst" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Vælg skrifttype til overskrift" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Vælg skrift for sidefod" @@ -3242,7 +3319,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Der er ingen passende indlæser til denne filtype" @@ -3253,7 +3330,7 @@ msgstr "Indlæser “%s”" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Indlæser billeder" @@ -3269,18 +3346,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Roter fysisk" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Nulstil EXIF-orientering" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Gemmer billeder" @@ -3329,78 +3406,220 @@ msgid "_Accept distortion" msgstr "_Acceptér forvrængning" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Forstør" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Formindsk" + +#: extensions/image_viewer/callbacks.c:34 +#| msgid "Zoom in" +msgid "Zoom 100%" +msgstr "Zoom 100%" + +#: extensions/image_viewer/callbacks.c:35 +#| msgid "Zoom in" +msgid "Zoom 200%" +msgstr "Zoom 200%" + +#: extensions/image_viewer/callbacks.c:36 +#| msgid "Zoom in" +msgid "Zoom 300%" +msgstr "Zoom 300%" + +#: extensions/image_viewer/callbacks.c:38 +#| msgid "Zoom to fit width" +msgid "Zoom to fit" +msgstr "Tilpas" + +#: extensions/image_viewer/callbacks.c:39 +#| msgid "Fit to width if larger" +msgid "Zoom to fit if larger" +msgstr "Tilpas hvis større" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Tilpas til bredde" + +#: extensions/image_viewer/callbacks.c:41 +#| msgid "Fit to width if larger" +msgid "Zoom to fit width if larger" +msgstr "Tilpas bredde hvis større" + +#: extensions/image_viewer/callbacks.c:42 +#| msgid "Zoom to fit width" +msgid "Zoom to fit height" +msgstr "Tilpas højde" + +#: extensions/image_viewer/callbacks.c:43 +#| msgid "Fit to width if larger" +msgid "Zoom to fit height if larger" +msgstr "Tilpas højde hvis større" + +#: extensions/image_viewer/callbacks.c:45 +#| msgid "Undo" +msgid "Undo edit" +msgstr "Fortryd redigering" + +#: extensions/image_viewer/callbacks.c:46 +#| msgid "Redo" +msgid "Redo edit" +msgstr "Omgør redigering" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Rul til venstre" + +#: extensions/image_viewer/callbacks.c:49 +#| msgid "Slide from right" +msgid "Scroll right" +msgstr "Rul til højre" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Rul op" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Rul ned" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Rul hurtigt til venstre" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Rul hurtigt til højre" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Rul hurtigt op" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Rul hurtigt ned" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Rul til midten" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Når et billede er indlæst:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Sæt til naturlig størrelse" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Behold foregående forstørrelse" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 msgid "Fit to window" msgstr "Tilpas til vindue" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Tilpas til vinduet hvis billedet er større" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Tilpas til bredde" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Tilpas til bredden større" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Nulstil rullebjælkepositioner" +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Handling for musehjul:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +#| msgid "Change date" +msgctxt "zoom quality" +msgid "Change image" +msgstr "Skift billede" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +#| msgid "Zoom in" +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Zoom billede" + # Skal bestemme mig for zoom eller størrelse. -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Zoomkvalitet:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Høj" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Lav" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +#| msgid "Transparency _type:" +msgid "Transparency:" +msgstr "Gennemsigtighed:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +#| msgid "Checked" +msgid "Checkered" +msgstr "Ternet" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Hvid" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +#| msgid "Grayscale" +msgid "Gray" +msgstr "Grå" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Sort" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automatisk" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Tilpas højde" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50 %" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100 %" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200 %" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300 %" @@ -3408,31 +3627,47 @@ msgid "Histogram" msgstr "Histogram" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Kopier billede" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Indsæt billede" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Anvend den indlejrede farveprofil" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Næste billede" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +#| msgid "_Transparent" +msgid "Transparency" +msgstr "Gennemsigtighed" + +#: extensions/image_viewer/gth-image-viewer-page.c:1822 msgid "Save Image" msgstr "Gem billede" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Indlæser det originale billede" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +#| msgid "All Images" +msgid "Scroll Image" +msgstr "Rul billede" + +#: extensions/image_viewer/main.c:37 +#| msgid "Image print" +msgid "Image Editor" +msgstr "Billedredigering" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Fremviser" @@ -3504,38 +3739,38 @@ msgid "custom format" msgstr "tilpasset format" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Importerer filer" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Ingen fil importeret" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "De valgte filer er allerede til stede på destinationen." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:683 msgid "Could not delete the files" msgstr "Kunne ikke slette filerne" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Slettehandling er ikke understøttet." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Senest importeret" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Ingen fil angivet." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3544,7 +3779,8 @@ "Der er ikke nok fri plads i “%s”.\n" "Der kræves %s plads, men kun %s er tilgængelige." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:147 extensions/list_tools/callbacks.c:156 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Værktøjer" @@ -3641,41 +3877,41 @@ msgid "Personalize…" msgstr "Tilpas …" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Skript" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Genvej" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Vis" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Kunne ikke gemme skriptet" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Ny kommando" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Rediger kommando" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Er du sikker på, at du ønsker at slette den valgte kommando?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Kommandoer" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Ingen kommando anført" @@ -3685,18 +3921,18 @@ msgid "Command exited abnormally with status %d" msgstr "Kommando afsluttedes unormalt med status %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Indtast en værdi:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:736 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Fejludformet kommando" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:791 msgid "_Skip" msgstr "_Spring over" @@ -3746,7 +3982,7 @@ msgstr "_Konti:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Indlæser …" @@ -3783,7 +4019,7 @@ msgstr "Henter kontoinformation" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Vælg en mappe" @@ -3847,11 +4083,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Tom)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Henter mappeindholdet …" @@ -3859,11 +4095,11 @@ msgid "Empty" msgstr "Tom" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Importer fra ekstern enhed" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Importer fra mappe" @@ -3979,6 +4215,7 @@ msgstr "_Store/små bogstaver:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:93 msgid "Help" msgstr "Hjælp" @@ -4075,28 +4312,28 @@ msgid "Edit Template" msgstr "Rediger skabelon" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Omdøb" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Gammelt navn" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Nyt navn" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Behold store/små bogstaver som før" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Konverter til små bogstaver" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Konverter til store bogstaver" @@ -4133,15 +4370,15 @@ msgstr "_Bevar oprindeligt størrelsesforhold" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:46 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Format" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Ændr størrelse på billeder" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Behold det oprindelige format" @@ -4153,8 +4390,8 @@ msgid "Resize series of images." msgstr "Ændr størrelse på samlinger af billeder." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Kunne ikke udføre søgningen" @@ -4162,48 +4399,49 @@ msgid "Search Result" msgstr "Søgeresultat" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Find" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Find filer" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Søg igen" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Søg" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Regler:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "alle de følgende regler" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "enhver af de følgende regler" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +#| msgid "Could not open the location" +msgid "Add another location" +msgstr "Tilføj en anden placering" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Filer fundet indtil videre: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Søger …" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Afbryd handlingen" @@ -4215,16 +4453,35 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +#| msgid "Advanced file selection." +msgid "Add to selection" +msgstr "Tilføj til markering" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +#| msgid "Remove from Selection" +msgid "Remove from selection" +msgstr "Fjern fra markering" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +#| msgid "Show selection %d" +msgid "Show selection" +msgstr "Vis markering" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Fjern fra markering" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "Vis markering %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4238,6 +4495,7 @@ msgstr "Markering %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Markeringer" @@ -4250,53 +4508,75 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Præsentation" +#: extensions/slideshow/callbacks.c:40 +#| msgid "Presentation" +msgid "Start presentation" +msgstr "Start præsentation" + +#: extensions/slideshow/callbacks.c:41 +#| msgid "x-office-presentation" +msgid "Terminate presentation" +msgstr "Afslut præsentation" + +#: extensions/slideshow/callbacks.c:42 +#| msgid "Presentation" +msgid "Pause/Resume presentation" +msgstr "Paus/genoptag præsentation" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:115 +#| msgid "View next image" +msgid "Show next file" +msgstr "Vis næste fil" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:114 +#| msgid "View previous image" +msgid "Show previous file" +msgstr "Vis foregående fil" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Slideshow" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Præsentation" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Tilpas" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "_Overgangseffekt:" # "...hver 7 sekund(er)" dur ikke helt #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Ændr automatisk efter" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "sekunder" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "_Genstart efter sidste billede" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "_Vilkårlig rækkefølge" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Afspilningsliste" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Tilføj filer til afspilningsliste" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Fjern de valgte filer" @@ -4312,46 +4592,47 @@ msgid "Random" msgstr "Tilfældig" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Viser slideshow" +#: extensions/slideshow/gth-slideshow.c:237 +#| msgid "Presentation" +msgid "Playing a presentation" +msgstr "Afspiller en præsentation" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Skub fra højre" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Skub nedefra" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Glid fra højre" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Glid nedefra" # ¿ -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Ton frem" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Vend side" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Terning fra højre" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Terning nedefra" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Vis billeder som et slideshow." +msgid "Play a presentation of images." +msgstr "Afspil en præsentation af billeder." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" @@ -4434,7 +4715,7 @@ #: extensions/webalbums/data/ui/web-album-exporter.ui:844 msgid "Thumbnail Caption" -msgstr "Optagelse af mniaturebillede" +msgstr "Billedtekst til miniaturebillede" #: extensions/webalbums/data/ui/web-album-exporter.ui:988 msgid "The current image number" @@ -4469,36 +4750,36 @@ msgid "Web Album" msgstr "Webalbum" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Kunne ikke vise destinationen" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "Albummet er blevet oprettet." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Gemmer miniaturebilleder" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Gemmer HTML sider: Billeder" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Gemmer HTML sider: Indexfiler" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Kopierer originale billeder" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Kunne ikke finde stilmappen" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Kunne ikke oprette en midlertidig mappe" @@ -4510,9 +4791,9 @@ msgid "Create static web albums." msgstr "Opret statisk internetalbum." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6559 gthumb/gth-browser.c:6578 +#: gthumb/gth-browser.c:6602 gthumb/gth-vfs-tree.c:387 #, c-format msgid "Could not load the position “%s”" msgstr "Kunne ikke indlæse positionen “%s”" @@ -4543,20 +4824,27 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Netlæser" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +#| msgid "All" +msgctxt "Extensions" msgid "All" msgstr "Alle" #: gthumb/dlg-preferences-extensions.c:62 +#| msgid "Enabled" +msgctxt "Extensions" msgid "Enabled" -msgstr "Aktiveret" +msgstr "Aktiverede" #: gthumb/dlg-preferences-extensions.c:63 +#| msgid "Disabled" +msgctxt "Extensions" msgid "Disabled" -msgstr "Deaktiveret" +msgstr "Deaktiverede" #: gthumb/dlg-preferences-extensions.c:66 msgid "Viewers" @@ -4597,61 +4885,96 @@ msgstr "gthumbs udviklingshold" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Udvidelser" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Genstart kræves" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "Du skal genstarte gthumb for at disse ændringer træder i kraft" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Genstart" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Forkast" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "Vil du forkaste alle ændringerne og bruge standardgenvejene?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +#| msgid "All" +msgctxt "Shortcuts" +msgid "All" +msgstr "Alle" + +#: gthumb/dlg-preferences-shortcuts.c:547 +#| msgid "Modified" +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Ændrede" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +#| msgid "Shortcut" +msgid "Shortcuts" +msgstr "Genveje" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Sorter efter" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s af %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Flytter “%s” til “%s”" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Kopierer “%s” til “%s”" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Flytter filer" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Kopierer filer" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Henter filinformation" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Sletter filer" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Flytter filer til papirkurv" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2027 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4663,17 +4986,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2036 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Tryk en tastekombination, du vil bruge som genvej." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Tryk Esc for at afbryde" @@ -4686,22 +5009,23 @@ msgstr "Start i fuldskærmstilstand" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Start et slideshow automatisk" +#| msgid "Automatically start a slideshow" +msgid "Automatically start a presentation" +msgstr "Start en præsentation automatisk" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" -msgstr "Importer billeder fra ditalkamera automatisk" +msgstr "Importer billeder fra digitalkamera automatisk" #: gthumb/gth-application.c:68 msgid "Show version" msgstr "Vis version" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Billedhåndtering og -visning" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4713,7 +5037,7 @@ "af Free Software Foundation. Enten version 2 af licensen eller (efter eget " "valg) enhver senere version." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4725,7 +5049,7 @@ "eller EGNETHED TIL ET BESTEMT FORMÅL. Yderligere detaljer kan læses i GNU " "General Public License." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4733,125 +5057,210 @@ "Du bør have modtaget en kopi af GNU General Public License sammen med " "gThumb. Hvis ikke, så se http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "En billedfremviser og -bladrer for GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" -"Joe Hansen, 2010.\n" +"Joe Hansen, 2010\n" "Keld Simonsen\n" "Søren Wedel Nielsen\n" "Peter Bach\n" "Ask Hjorth Larsen\n" "\n" -"Dansk-gruppen \n" -"Mere info: http://www.dansk-gruppen.dk" +"Dansk-gruppen\n" +"Websted http://dansk-gruppen.dk\n" +"E-mail " -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 -msgid "Keyboard Shortcuts" -msgstr "Tastaturgenveje" +#: gthumb/gth-browser-actions-entries.h:92 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Nyt vindue" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "_Hjælp" +#: gthumb/gth-browser-actions-entries.h:94 +#| msgid "_Quit" +msgid "Quit" +msgstr "Afslut" + +#: gthumb/gth-browser-actions-entries.h:96 +#| msgid "Browser" +msgid "Show browser" +msgstr "Vis browser" + +#: gthumb/gth-browser-actions-entries.h:97 +#| msgid "Close this window" +msgid "Close window" +msgstr "Luk vindue" + +#: gthumb/gth-browser-actions-entries.h:99 +#| msgid "Open Location…" +msgid "Open location" +msgstr "Åbn sted" + +#: gthumb/gth-browser-actions-entries.h:100 gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4578 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Fuldskærm" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_Om gThumb" +#: gthumb/gth-browser-actions-entries.h:101 +#| msgid "Convert image format" +msgid "Revert image to saved" +msgstr "Tilbagefør billede til det gemte" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Sidebar" +msgstr "Sidebjælke" + +#: gthumb/gth-browser-actions-entries.h:103 +#| msgid "_Statusbar" +msgid "Statusbar" +msgstr "Statuslinje" + +#: gthumb/gth-browser-actions-entries.h:104 +#| msgid "Thumbnails" +msgid "Thumbnails list" +msgstr "Miniatureliste" + +#: gthumb/gth-browser-actions-entries.h:106 +#| msgid "Go to this location" +msgid "Load previuos location" +msgstr "Indlæs forrige sted" + +#: gthumb/gth-browser-actions-entries.h:107 +#| msgid "Reload the current location" +msgid "Load next location" +msgstr "Indlæs næste sted" + +#: gthumb/gth-browser-actions-entries.h:108 +#| msgid "The parent folder path" +msgid "Load parent folder" +msgstr "Indlæs overmappen" + +#: gthumb/gth-browser-actions-entries.h:109 +#| msgid "Loading images" +msgid "Load home" +msgstr "Indlæs hjem" + +#: gthumb/gth-browser-actions-entries.h:110 +#| msgid "Reload the current location" +msgid "Reload location" +msgstr "Genindlæs sted" + +#: gthumb/gth-browser-actions-entries.h:111 +#| msgid "Show hidden files and folders" +msgid "Show/Hide hidden files" +msgstr "Vis/skjul skjulte filer" + +#: gthumb/gth-browser-actions-entries.h:112 +#| msgid "no sorting" +msgid "Change sorting order" +msgstr "Ændr sorteringsrækkefølgen" + +#: gthumb/gth-browser-actions-entries.h:116 +msgid "Show first file" +msgstr "Vis første fil" + +#: gthumb/gth-browser-actions-entries.h:117 +msgid "Show last file" +msgstr "Vis sidste fil" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Image tools" +msgstr "Billedværktøjer" + +#: gthumb/gth-browser-actions-entries.h:120 +#| msgid "Properties" +msgid "File properties" +msgstr "Filegenskaber" + +#: gthumb/gth-browser-actions-entries.h:122 +#| msgid "Select All" +msgid "Select all" +msgstr "Vælg alle" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser-actions-entries.h:123 +#| msgid "Select None" +msgid "Select none" +msgstr "Vælg ingen" + +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[ændret]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d fil valgt (%s)" msgstr[1] "%d filer valgt (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s ledig plads" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Intet egnet modul fundet for %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Gem ændringer til filen “%s”?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "Hvis du ikke gemmer, vil ændringer til filen gå tabt." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "Gem _ikke" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2399 gthumb/gth-browser.c:4586 msgid "Accept" msgstr "Acceptér" -# næppe samme menu som _Link ovenfor -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 -msgid "_Close" -msgstr "_Luk" - -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2937 msgid "Could not change name" msgstr "Kunne ikke ændre navn" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3434 msgid "Modified" msgstr "Ændret" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4508 msgid "Go to the previous visited location" msgstr "Gå til foregående besøgte sted" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4514 msgid "Go to the next visited location" msgstr "Gå til næste besøgte sted" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4522 msgid "History" msgstr "Historik" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4536 msgid "View the folders" msgstr "Vis mapperne" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4551 msgid "Edit file" msgstr "Rediger fil" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Fuldskærm" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6560 #, c-format msgid "File type not supported" msgstr "Filtypen understøttes ikke" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6603 #, c-format msgid "No suitable module found" msgstr "Intet passende modul fundet" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Sletter filer" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4871,27 +5280,27 @@ msgid "_Show Format Options" msgstr "_Vis formatindstillinger" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:228 msgid "Computer" msgstr "Computer" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:787 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "" "Billederne kan ikke flyttes til papirkurven. Vil du slette dem permanent?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:798 msgid "Could not move the files to the Trash" msgstr "Kunne ikke flytte filerne til papirkurven" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:843 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Er du sikker på, at du ønsker at slette “%s” permanent?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:846 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4899,7 +5308,7 @@ msgstr[0] "Er du sikker på, at du vil slette %'d valgt fil permanent?" msgstr[1] "Er du sikker på, at du vil slette %'d valgte filer permanent?" -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:856 msgid "If you delete a file, it will be permanently lost." msgstr "Hvis du sletter en fil, vil den være væk for bestandig." @@ -4936,11 +5345,15 @@ msgid "No limit specified" msgstr "Ingen grænse givet" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Alle" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Åbn ophavsmappe)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Indtast det nye navn:" @@ -4970,72 +5383,90 @@ msgid "Reading file information" msgstr "Læser filinformation" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Skjulte filer" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:45 +msgid "Location" +msgstr "Sted" + +#: gthumb/gth-location-chooser.c:572 +#| msgid "Location" +msgid "Locations" +msgstr "Steder" + +#: gthumb/gth-location-chooser.c:617 +#| msgid "Other" +msgid "Other…" +msgstr "Andet …" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Størrelse" #: gthumb/gth-main-default-metadata.c:41 +msgid "Bytes" +msgstr "Byte" + +#: gthumb/gth-main-default-metadata.c:42 msgctxt "the file mtime" msgid "Modified Date & Time" msgstr "Ændringsdato og -tidspunkt" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:43 msgid "Type" msgstr "Type" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Sted" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:48 msgid "Duration" msgstr "Varighed" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:50 msgid "Exposure Settings" msgstr "Indstillinger for eksponering" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:51 msgid "Aperture" msgstr "Blændeåbning" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:52 msgid "ISO Speed" msgstr "ISO-hastighed" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:53 msgid "Exposure Time" msgstr "Eksponeringstid" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:54 msgid "Shutter Speed" msgstr "Lukkerhastighed" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:55 msgid "Focal Length" msgstr "Brændvidde" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:56 msgid "Flash" msgstr "Blitz" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:57 msgid "Camera Model" msgstr "Kameramodel" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:58 msgid "Color Profile" msgstr "Farveprofil" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:60 msgid "General Date & Time" msgstr "Generel dato & tidspunkt" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:67 msgid "Author" msgstr "Forfatter" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:68 msgid "Copyright" msgstr "Ophavsret" @@ -5067,43 +5498,58 @@ msgid "aspect ratio" msgstr "størrelsesforhold" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Alle filer" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Alle billeder" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "JPEG-billeder" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Raw-billeder" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Medie" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Tekstfiler" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Filnavn" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Titel (indlejret)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Beskrivelse (indlejret)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +#| msgid "Show" +msgid "Show/Hide" +msgstr "Vis/skjul" + +#: gthumb/gth-main-default-types.c:40 +#| msgid "Organization:" +msgid "Navigation" +msgstr "Navigering" + +#: gthumb/gth-main-default-types.c:41 +#| msgid "File manager" +msgid "File Manager" +msgstr "Filhåndtering" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Overskriv" @@ -5199,8 +5645,8 @@ msgstr "er mindre end eller lig med" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "Testdefinitionen er ufuldstændig" @@ -5271,32 +5717,55 @@ msgid "Rotation" msgstr "Rotation" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Flytter filer til papirkurv" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"Tastekombinationen «%s» er allerede tildelt handlingen «%s». Vil du " +"gentildele den til denne handling i stedet?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Gentildel" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"Tastekombinationen «%s» er allerede tildelt handlingen «%s» og kan ikke " +"ændres." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "Tastekombinationen «%s» er allerede tildelt og kan ikke ændres." -#: gthumb/gtk-utils.c:338 +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Kunne ikke vise hjælp" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:711 gthumb/gtk-utils.c:718 msgid "Could not launch the application" msgstr "Kunne ikke køre programmet" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:821 msgid "_Copy Here" msgstr "_Kopiér hertil" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:826 msgid "_Move Here" msgstr "_Flyt hertil" # lidt sjovt at det pludselig bliver -fra; forhåbentlig gør det ikke noget -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:831 msgid "_Link Here" msgstr "_Link herfra" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:840 msgid "Cancel" msgstr "Annullér" @@ -5304,6 +5773,10 @@ msgid "_Cancel" msgstr "_Annullér" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "_Hjælp" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Ny" @@ -5328,46 +5801,51 @@ msgid "_Upload" msgstr "_Upload" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Nyt _vindue" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_Om" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Afslut" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Åbn i nyt vindue" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Nyt vindue" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Åbn sted …" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Forkast" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Sortér efter …" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Skjulte filer" +#: gthumb/resources/gears-menu.ui:49 +msgid "Keyboard Shortcuts" +msgstr "Tastaturgenveje" + +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_Om gThumb" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Slet historik" +#~ msgid "gthumb" +#~ msgstr "gthumb" + +#~ msgid "Choose startup folder" +#~ msgstr "Vælg startmappe" + +#~ msgid "Slideshow" +#~ msgstr "Slideshow" + +#~ msgid "Playing slideshow" +#~ msgstr "Viser slideshow" + +#~ msgid "View images as a slideshow." +#~ msgstr "Vis billeder som et slideshow." + +#~ msgid "New _Window" +#~ msgstr "Nyt _vindue" + +#~ msgid "_About" +#~ msgstr "_Om" + #~ msgid "" #~ "The geographical position information is not available for this image." #~ msgstr "" @@ -5602,9 +6080,6 @@ #~ msgid "Convert Format..." #~ msgstr "Konverter format …" -#~ msgid "Convert image format" -#~ msgstr "Konverter billedformat" - #~ msgid "T_ags" #~ msgstr "_Mærker" @@ -5693,9 +6168,6 @@ #~ msgid "C_rop" #~ msgstr "_Beskær" -#~ msgid "Image tools" -#~ msgstr "Billedværktøjer" - #~ msgid "Basic tools to modify images." #~ msgstr "Grundlæggende værktøjer til at modificere billeder." @@ -5738,9 +6210,6 @@ #~ msgid "Change volume level" #~ msgstr "Ændr lydstyrke" -#~ msgid "Screenshot" -#~ msgstr "Skærmbillede" - #~ msgid "Print the selected images" #~ msgstr "Udskriv de valgte billeder" @@ -5750,21 +6219,9 @@ #~ msgid "Rotate the selected images 90° to the left" #~ msgstr "Roter de valgte billeder 90° til venstre" -#~ msgid "Transparency _type:" -#~ msgstr "_Gennemsigtighedstype:" - #~ msgid "Low" #~ msgstr "Lav" -#~ msgid "White" -#~ msgstr "Hvid" - -#~ msgid "Black" -#~ msgstr "Sort" - -#~ msgid "Checked" -#~ msgstr "Ternet" - #~ msgid "Copy the image to the clipboard" #~ msgstr "Kopier billedet til udklipsholderen" @@ -5774,12 +6231,6 @@ #~ msgid "In" #~ msgstr "Ind" -#~ msgid "Zoom in" -#~ msgstr "Forstør" - -#~ msgid "Zoom out" -#~ msgstr "Formindsk" - #~ msgid "1:1" #~ msgstr "1:1" @@ -5792,9 +6243,6 @@ #~ msgid "Zoom to fit window" #~ msgstr "Tilpas billedet til vinduet" -#~ msgid "Zoom to fit width" -#~ msgstr "Tilpas til bredde" - #~ msgid "Image viewer" #~ msgstr "Billedfremviser" @@ -5899,15 +6347,6 @@ #~ msgid "_Filter..." #~ msgstr "_Filter …" -#~ msgid "Reload the current location" -#~ msgstr "Indlæs nuværende sted igen" - -#~ msgid "View previous image" -#~ msgstr "Vis foregående billede" - -#~ msgid "View next image" -#~ msgstr "Vis næste billede" - #~ msgid "Switch to fullscreen" #~ msgstr "Skift til fuldskærm" @@ -5929,9 +6368,6 @@ #~ msgid "View or hide the toolbar of this window" #~ msgstr "Vis eller skjul værktøjslinjen for dette vindue" -#~ msgid "_Statusbar" -#~ msgstr "_Statuslinje" - #~ msgid "View or hide the statusbar of this window" #~ msgstr "Vis eller skjul statuslinjen for dette vindue" @@ -5944,9 +6380,6 @@ #~ msgid "View thumbnails" #~ msgstr "Vis miniaturebilleder" -#~ msgid "Show hidden files and folders" -#~ msgstr "Vis _skjulte filer og mapper" - #~ msgid "Edit" #~ msgstr "Rediger" @@ -5959,9 +6392,6 @@ #~ msgid "File System" #~ msgstr "Filsystem" -#~ msgid "Close this window" -#~ msgstr "Luk dette vindue" - #~ msgid "" #~ "Possible values are: actual_size, fit, keep_prev, fit_if_larger, " #~ "fit_width_if_larger." diff -Nru gthumb-3.8.3/po/es.po gthumb-3.9.1/po/es.po --- gthumb-3.8.3/po/es.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/es.po 2020-03-07 19:03:13.593619600 +0000 @@ -7,21 +7,21 @@ # Pablo Gonzalo del Campo , 2002-2003. # Francisco Javier F. Serrador , 2003, 2004, 2005, 2006. # Jorge González , 2007, 2008, 2009, 2010, 2011. -# Daniel Mustieles , 2008-2019. +# Daniel Mustieles , 2008-2020. # msgid "" msgstr "" "Project-Id-Version: gthumb.master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-01-12 11:52+0000\n" -"PO-Revision-Date: 2019-01-28 13:44+0100\n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-03 16:25+0100\n" "Last-Translator: Daniel Mustieles \n" -"Language-Team: es \n" -"Language: es\n" +"Language-Team: Spanish - Spain \n" +"Language: es_ES\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Gtranslator 3.31.0\n" +"X-Generator: Gtranslator 3.34.0\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 @@ -135,19 +135,13 @@ msgid "Import the photos on your camera card" msgstr "Importar las fotos de la tarjeta de su cámara" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Visor de imágenes" @@ -162,69 +156,70 @@ msgid "Caption" msgstr "Descripción" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Comportamiento" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "Una _sola pulsación para abrir archivos" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "_Doble pulsación para abrir archivos" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Abrir archivos en modo de pantalla completa" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Otro" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "Tamaño de las miniat_uras:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "De_terminar el tipo de imagen por su contenido (lento)" @@ -236,20 +231,34 @@ msgid "More extensions…" msgstr "Más extensiones…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Anterior" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Siguiente" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "Nombre del filt_ro:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "C_oincide:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Reglas:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Limitar a" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "seleccionados por" @@ -295,40 +304,40 @@ msgid "Old File:" msgstr "Archivo antiguo:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Nombre del archivo:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Tamaño:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Modificado:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Archivo nuevo:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "Sob_reescribir el archivo antiguo" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "No sobrescribir el archivo an_tiguo" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Sobrescribir _todos los archivos" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_No sobrescribir ningún archivo" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "G_uardar el archivo nuevo como:" @@ -352,70 +361,75 @@ msgid "gThumb Preferences" msgstr "Preferencias de gThumb" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Apariencia" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "Miniaturas en el visor:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "abajo" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "en el lateral" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "_Propiedades del archivo en el examinador:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Al iniciar:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Ir a la última _ubicación visitada" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Ir a esta _carpeta:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Elija la carpeta de inicio" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Establecer al act_ual" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "_Reutilizar la ventana activa para abrir archivos" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Solicitar co_nfirmación antes de borrar archivos o catálogos" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Preguntar si se deben guardar los archivos _modificados" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "Guardas los _metadatos dentro de los archivos si es posible" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "General" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Atajos:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Restaurar todos…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "Orden in_verso" @@ -429,7 +443,7 @@ msgstr "Subir imágenes a 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Marcadores" @@ -446,7 +460,7 @@ msgid "_Edit Bookmarks…" msgstr "_Editar marcadores…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "Marcadores del _sistema" @@ -460,6 +474,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Quitar" @@ -511,15 +526,15 @@ msgid "Source" msgstr "Origen" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Grabar al disco" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Continuar" @@ -528,7 +543,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Error al interpretar el archivo de imagen JPEG: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Espacio de color JPEG desconocido (%d)" @@ -611,12 +626,12 @@ msgstr "_Sin pérdidas" #: extensions/cairo_io/gth-image-saver-jpeg.c:517 -#: extensions/image_viewer/gth-metadata-provider-image.c:145 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 msgid "JPEG" msgstr "JPEG" #: extensions/cairo_io/gth-image-saver-png.c:354 -#: extensions/image_viewer/gth-metadata-provider-image.c:111 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 msgid "PNG" msgstr "PNG" @@ -634,71 +649,69 @@ msgstr "TIFF" #: extensions/cairo_io/gth-image-saver-webp.c:383 -#: extensions/image_viewer/gth-metadata-provider-image.c:174 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 msgid "WebP" msgstr "WebP" #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Guardando" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "No se especificó ningún nombre" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Nombre no válido. Los siguientes caracteres no están permitidos: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "El nombre ya está en uso" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 msgid "New catalog" msgstr "Catálogo nuevo" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Introduzca el nombre del catálogo:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "C_rear" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 msgid "New library" msgstr "Biblioteca nueva" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Introduzca el nombre de la biblioteca: " @@ -715,7 +728,7 @@ msgid "Add to Catalog…" msgstr "Añadir al catálogo…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Abrir carpeta" @@ -731,40 +744,40 @@ msgid "Create Library" msgstr "Crear biblioteca" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Renombrar" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Propiedades" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 msgid "Catalogs" msgstr "Catálogos" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Línea de comandos" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Propiedades del catálogo" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Organizar" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Organizar los archivos automáticamente por fecha" @@ -776,32 +789,32 @@ msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Añadir al catálogo" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "_Añadir y cerrar" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "C_atálogos:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "Catálogo _nuevo" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "_Biblioteca nueva" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Biblioteca nueva" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Catálogo nuevo" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Ver el destino" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "_Mantener el diálogo abierto" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -855,7 +868,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "_Incluir sub-carpetas" @@ -871,26 +884,33 @@ msgid "Singles" msgstr "Simples" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "No se pudieron añadir los archivos al catálogo" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "No se pudo crear el catálogo" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Añadir al catálogo" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Añadir" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "No se pudo guardar el catálogo" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "No se pudo cargar el catálogo" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Organizar archivos" @@ -902,75 +922,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Fecha en que se tomó la foto" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Fecha de modificación del archivo" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Etiqueta" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Etiqueta (empotrada)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Formato de archivo no válido" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "Etiquetas" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "El catálogo «%s» ya existe. ¿Quiere sobrescribirlo?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "La biblioteca «%s» ya existe. ¿Quiere sobrescribirla?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "Sobr_eescribir" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "No se pueden mover los archivos" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "No se pueden mover los archivos" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Destino no válido." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Copiando archivos a «%s»" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "No se pudieron quitar los archivos del catálogo" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:871 -#: extensions/exiv2_tools/exiv2-utils.cpp:880 -#: extensions/exiv2_tools/exiv2-utils.cpp:910 -#: extensions/exiv2_tools/exiv2-utils.cpp:1441 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Formato de archivo no válido" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1070,20 +1092,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Preferencias" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Comentario" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "Título" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1093,21 +1119,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "Descripción" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "Lugar" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Fecha y hora del comentario" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Puntuación" @@ -1121,7 +1147,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Hoja de contacto" @@ -1134,9 +1160,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Ninguna" @@ -1208,7 +1234,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1223,7 +1249,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1231,7 +1257,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Descripción:" @@ -1386,13 +1412,13 @@ msgid "Thumbnails" msgstr "Miniaturas" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "No se pudo guardar el tema" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "No se pudo eliminar el tema" @@ -1400,11 +1426,11 @@ msgid "Image Wall" msgstr "Mural de fotos" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Crear imágenes" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Generando miniaturas" @@ -1467,7 +1493,7 @@ msgstr "No se pudieron mostrar las propiedades del fondo del escritorio" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Preferencias" @@ -1512,6 +1538,14 @@ msgstr "Si elimina los metadatos, se perderán definitivamente." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Editar comentario" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Editar etiquetas" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Eliminar metadatos" @@ -1542,8 +1576,8 @@ msgid "Could not save the file metadata" msgstr "No se pudieron guardar los metadatos del archivo" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "No se puede leer la información del archivo" @@ -1555,27 +1589,7 @@ msgid "Allow to edit files metadata." msgstr "Permitir la edición de los metadatos de los archivos." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "Metadatos de %s" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d archivo" -msgstr[1] "%d archivos" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "_Guardar y cerrar" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Guardar sólo ca_mpos alterados" @@ -1604,16 +1618,6 @@ msgid "Do not modify" msgstr "No modificar" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "%s etiquetas" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Asignar etiquetas" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1676,11 +1680,12 @@ msgid "State/Province:" msgstr "Estado/Provincia:" -#: extensions/exiv2_tools/exiv2-utils.cpp:42 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(valor no válido)" -#: extensions/exiv2_tools/exiv2-utils.cpp:708 +#: extensions/exiv2_tools/exiv2-utils.cpp:713 msgid "Exposure" msgstr "Exposición" @@ -1741,8 +1746,8 @@ msgstr "fecha en la que se tomó la foto" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Exportar" +msgid "_Export To" +msgstr "E_xportar a" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1883,7 +1888,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1924,13 +1929,13 @@ msgid "Uploading “%s”" msgstr "Subiendo «%s»" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Subiendo los archivos al servidor" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1953,14 +1958,21 @@ msgstr "Introduzca el nombre de la carpeta:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "No se pudo efectuar la operación" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "No se pudieron mover los archivos" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1968,117 +1980,123 @@ "No se pueden mover los archivos a la ubicación actual, como alternativa " "puede elegir copiarlos." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Copiar" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Mover a" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Copiar a" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Mover" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "No se pudo abrir la ubicación" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Cortar" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Pegar" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Copiar a…" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Mover a…" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Mover a la papelera" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Eliminar" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Abrir con el gestor de archivos" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Crear carpeta" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Pegar en la carpeta" -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Duplicar" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Eliminar permanentemente" + +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "Abrir con Gimp" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 msgid "Home Folder" msgstr "Carpeta personal" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "Abrir _con" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "¿Quiere mover «%s» a «%s»?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "¿Quiere copiar «%s» a «%s»?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "¿Quiere mover los archivos arrastrados a «%s»?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "¿Quiere copiar los archivos arrastrados a «%s»?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Copiar" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "No se pudo efectuar la operación" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Gestor de archivos" @@ -2091,6 +2109,40 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Ajustar contraste" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Voltear" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Reflejar" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Rotar a la derecha" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Rotar a la izquierda" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Recortar" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Redimensionar" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2153,9 +2205,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Opciones" @@ -2192,7 +2244,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Proporción de aspecto" @@ -2230,7 +2282,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" msgstr "Dimensiones" @@ -2390,17 +2442,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2447,11 +2499,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Ecualizar el histograma usando la función lineal" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Ajustar contraste" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Ajuste automático del contraste" @@ -2464,74 +2516,74 @@ msgstr "Seleccionar un color de la imagen." #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Cuadrado" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d x %d (Imagen)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d x %d (Pantalla)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4:3 (DVD, libro)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3:2 (Postal)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16:9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1.85:1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2.39:1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2553,10 +2605,6 @@ msgid "Center Lines" msgstr "Centrar líneas" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Recortar" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Añadir a los ajustes predefinidos" @@ -2567,8 +2615,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "No se pudo guardar el archivo" @@ -2584,69 +2632,65 @@ msgid "Adjust color curves" msgstr "Ajustar curvas de color" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Efectos especiales" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Cálido" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Frío" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Suelo" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Desierto" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Arctic" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mangos" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Frescor azul" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Cereza" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Antiguo" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Bordes difusos" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Viñeta" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Voltear" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Voltea la imagen verticalmente" @@ -2663,7 +2707,7 @@ msgid "_Average" msgstr "_Media" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Escala de grises" @@ -2671,10 +2715,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Reflejar" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Espejar la imagen horizontalmente" @@ -2688,19 +2728,15 @@ msgstr "Rehacer" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Redimensionando imágenes" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Redimensionar" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Rotar a la izquierda" @@ -2709,8 +2745,8 @@ msgstr "Rotar la imagen 90 grados en sentido antihorario" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Rotar a la derecha" @@ -2723,12 +2759,12 @@ msgstr "Rotar" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Guardar como…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Guardar" @@ -2784,7 +2820,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Iniciar _en:" @@ -2799,7 +2835,7 @@ msgstr "Buscar duplicados" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Buscar" @@ -2918,10 +2954,18 @@ msgstr "Ocul_tar de las búsquedas públicas" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "Abrir en el na_vegador" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d archivo" +msgstr[1] "%d archivos" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2935,7 +2979,7 @@ msgstr "No se seleccionó ningún álbum" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Importar" @@ -3005,6 +3049,14 @@ msgid "Could not take a screenshot" msgstr "No se pudo hacer la captura de pantalla" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Capturar pantalla" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Reproducir/pausar" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Usar aceleración hardware" @@ -3014,8 +3066,8 @@ msgstr "Ubicación de las _capturas de pantallas:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Reproducir" @@ -3051,66 +3103,76 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Reproduciendo vídeo" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Pausar" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Capturar la pantalla" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Ajustar a la ventana" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Reproductor de sonido/vídeo" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Vídeo" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Sonido" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Artista" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Álbum" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Tasa de bits" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Codificador" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Códec" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Tasa de fotogramas:" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Anchura" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Altura" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Canales" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Frecuencia de muestreo" @@ -3124,10 +3186,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 -#: extensions/image_viewer/gth-metadata-provider-image.c:253 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3136,7 +3198,8 @@ msgid "Could not print the selected files" msgstr "No se pudieron imprimir los archivos seleccionados" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Imprimir" @@ -3194,19 +3257,19 @@ msgid "inches" msgstr "pulgadas" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Tipografías" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Seleccionar la tipografía del título" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Seleccionar la tipografía de la cabecera" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Seleccionar la tipografía del pie" @@ -3228,7 +3291,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "No hay disponible ningún cargador para este tipo de archivo" @@ -3239,7 +3302,7 @@ msgstr "Cargando «%s»" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Cargando las imágenes" @@ -3255,18 +3318,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Rotar físicamente" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Reiniciar la orientación EXIF" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Guardando las imágenes" @@ -3316,77 +3379,198 @@ msgid "_Accept distortion" msgstr "_Aceptar distorsión" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Ampliar" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Reducir" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "Ampliación 100%" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "Ampliación 200%" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "Ampliación 300%" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Ampliar o reducir hasta ajustar" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Reducir para ajustar si es mayor" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Ampliar hasta ajustarse a la anchura" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Reducir para ajustar la anchura si es mayor" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Ajustar a la altura" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Ampliar para ajustar a la altura si es mayor" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Deshacer editar" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Rehacer editar" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Desplazar a la izquierda" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Desplazar a la derecha" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Desplazar arriba" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Desplazar abajo" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Desplazar a la izquierda rápidamente" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Desplazar a la derecha rápidamente" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Desplazar hacia arriba rápidamente" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Desplazar hacia abajo deprisa" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Desplazar abajo arriba rápidamente" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Después de cargar una imagen:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Establecer al tamaño real" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Mantener la ampliación anterior" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Ajustar a la ventana" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Ajustar a la ventana si es mayor" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Ajustar a la anchura" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Ajustar a la anchura si es mayor" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Restaurar las posiciones de las barras de desplazamiento" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Acción de la rueda del ratón:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Cambia imagen" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Ampliar imagen" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Calidad de la ampliación:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Alto" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Bajo" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Transparencia:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "A cuadros" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Blanco" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Gris" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Negro" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automática" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Ajustar a la altura" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3394,31 +3578,44 @@ msgid "Histogram" msgstr "Histograma" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Copiar imagen" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Pegar imagen" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Aplicar el perfil de color empotrado" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Siguiente marco" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Transparencia" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Guardar imagen" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Cargando la imágen original" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Desplazar imagen" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Editor de imagen" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Visor" @@ -3490,38 +3687,38 @@ msgid "custom format" msgstr "formato personalizado" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Importando archivos" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "No se importó ningún archivo" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "Los archivos seleccionados ya existen en el destino." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" msgstr "No se pudieron eliminar los archivos" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "La operación de borrado no está soportada." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Último importado" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "No se especificó ningún archivo." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3530,7 +3727,8 @@ "No hay espacio libre suficiente en «%s».\n" "se requieren %s , pero sólo hay %s disponibles." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Herramientas" @@ -3618,50 +3816,55 @@ msgid "Quote the text " msgstr "Entrecomillar el texto " -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +#| msgid "The current date" +msgid "The current date and time" +msgstr "La fecha y hora actuales" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "Coman_do:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Personalizar…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Script" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Atajo" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Mostrar" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "No se pudo guardar el script" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Comando nuevo" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Editar comando" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "" "¿Está seguro de que quiere eliminar permanentemente el comando seleccionado?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Comandos" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "No se especificó ningún comando" @@ -3671,18 +3874,18 @@ msgid "Command exited abnormally with status %d" msgstr "El comando finalizó anormalmente con estado %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Introducir un valor:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Comando mal formado" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Omitir" @@ -3732,7 +3935,7 @@ msgstr "Cue_ntas:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Cargando…" @@ -3769,7 +3972,7 @@ msgstr "Obteniendo información de la cuenta" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Elegir una carpeta" @@ -3833,11 +4036,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Vacío)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Obteniendo la lista de archivos…" @@ -3845,11 +4048,11 @@ msgid "Empty" msgstr "Vaciar" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Importar desde un dispositivo extraíble" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Importar desde carpeta" @@ -3965,6 +4168,7 @@ msgstr "Capi_talización:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Ayuda" @@ -4061,28 +4265,28 @@ msgid "Edit Template" msgstr "Editar plantilla" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Renombrar" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Nombre antiguo" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Nombre nuevo" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Mantener la capitalización original" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Convertir a minúsculas" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Convertir a mayúsculas" @@ -4119,15 +4323,15 @@ msgstr "Man_tener la proporción de aspecto original" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Formato" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Redimensionar imágenes" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Mantener el formato original" @@ -4139,8 +4343,8 @@ msgid "Resize series of images." msgstr "Redimensionar series de imágenes." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "No se pudo realizar la búsqueda" @@ -4148,48 +4352,48 @@ msgid "Search Result" msgstr "Resultado de la búsqueda" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Buscar" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Buscar archivos" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Buscar de nuevo" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Buscar" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Reglas:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "todas las siguientes reglas" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "cualquiera de las siguientes reglas" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Añadir otra ubicación" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Archivos encontrados hasta ahora: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Buscando…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Cancelar la operación" @@ -4201,16 +4405,32 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Añadir a la selección" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Quitar de la selección" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Mostrar la selección" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Quitar de la selección" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "Mostrar la selección %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4224,6 +4444,7 @@ msgstr "Selección %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Selecciones" @@ -4236,52 +4457,69 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Presentación" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Iniciar presentación" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Terminar la presentación" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Pausar/reanudar presentación" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Mostrar el siguiente archivo" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Mostrar el archivo anterior" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Mostrar diapositivas" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Presentación" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Personalizar" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "Efecto de _transición:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Cambiar automáticamente, cada" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "segundos" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "Reinicia_r al finalizar" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "Orden alea_torio" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Lista de reproducción" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Añadir archivos a la lista de reproducción" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Quitar los archivos seleccionados" @@ -4297,50 +4535,69 @@ msgid "Random" msgstr "Aleatorio" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Reproduciendo las diapositivas" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "Reproducir una presentación" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Empujar desde la derecha" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Empujar desde abajo" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Deslizar desde la derecha" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Deslizar desde abajo" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Sombra entrante" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Voltear página" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Cubo desde la derecha" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Cubo desde abajo" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Ver imágenes como diapositivas." +msgid "Play a presentation of images." +msgstr "Reproducir una presentación de imágenes." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminal" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +#| msgid "Open in New Window" +msgid "Open in Terminal" +msgstr "Abrir en una terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +#| msgid "Open the selected folder in a new window" +msgid "Open a folder in a terminal" +msgstr "Abrir una carpeta en una terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" msgstr "Álbum _web…" @@ -4362,14 +4619,6 @@ msgid "Index" msgstr "Índice" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Siguiente" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Anterior" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4453,36 +4702,36 @@ msgid "Web Album" msgstr "Álbum web" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "No se pudo mostrar el destino" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "El álbum se creó correctamente." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Guardando las miniaturas" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Guardando las páginas HTML: Imágenes" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Guardando las páginas HTML: Índices" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Copiando imágenes originales" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "No se pudo encontrar la carpeta de estilos" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "No se pudo crear una carpeta temporal" @@ -4494,9 +4743,9 @@ msgid "Create static web albums." msgstr "Creando álbumes web estáticos." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "No se pudo cargar la posición «%s»" @@ -4527,20 +4776,24 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Navegador" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" msgstr "Todas" #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" -msgstr "Activado" +msgstr "Activada" #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" -msgstr "Desactivado" +msgstr "Desactivada" #: gthumb/dlg-preferences-extensions.c:66 msgid "Viewers" @@ -4576,65 +4829,98 @@ msgstr "No se pudo desactivar la extensión" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" -msgstr "equipo de desarrollo de gthumb" +#| msgid "gthumb development team" +msgid "gThumb Development Team" +msgstr "equipo de desarrollo de gThumb" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Extensiones" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Se requiere reiniciar" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "Debe reiniciar gthumb para que estos cambios tengan efecto" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Reiniciar" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Revertir" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "¿Quiere deshacer todos los cambios y usar los atajos predeterminados?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Todos" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Modificado" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Atajos" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Ordenar por" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s de %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Moviendo «%s» a «%s»" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Copiando «%s» a «%s»" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Moviendo archivos" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Copiando archivos" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Obteniendo información del archivo" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Eliminando archivos" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Moviendo archivos a la papelera" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4646,17 +4932,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Pulse la combinación de teclas que quiere usar como atajo." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Pulse Esc para cancelar" @@ -4669,8 +4955,8 @@ msgstr "Iniciar en modo de pantalla completa" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Iniciar una secuencia automáticamente" +msgid "Automatically start a presentation" +msgstr "Iniciar una presentación automáticamente" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4680,11 +4966,11 @@ msgid "Show version" msgstr "Mostrar versión" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "- Explorador de imágenes y visor" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4696,7 +4982,7 @@ "Software Foundation; ya sea en la versión 2 de la Licencia, como (a su " "elección) cualquier otra versión posterior." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4708,7 +4994,7 @@ "PARA UN PROPÓSITO DETERMINADO. Vea la Licencia Pública General de GNU para " "obtener más detalles." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4716,11 +5002,11 @@ "Debería haber recibido una copia de la Licencia Pública General GNU junto " "con gThumb. Si no es así, consulte http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "Un visor y navegador de imágenes para GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Daniel Mustieles , 2008 - 2013\n" @@ -4730,108 +5016,184 @@ "Daniel Baeyens , 2002\n" "QA: Jorge González , 2008, 2009, 2010" -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Ventana nueva" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Atajo del teclado" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "Ay_uda" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Salir" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Mostrar el examinador" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Cerrar la ventana" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Abrir ubicación" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Pantalla completa" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_Acerca de gThumb" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Recuperar la imagen guardada" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Barra lateral" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Barra de estado" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Lista de miniaturas" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Cargar la ubicación anterior" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Cargar la siguiente ubicación" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Cargar la carpeta padre" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Cargar carpeta personal" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Recargar ubicación" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Mostrar/ocultar archivos ocultos" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Cambiar la ordenación" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Mostrar el primer archivo" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Mostrar el último archivo" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Herramientas de imagen" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Propiedades del archivo" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Seleccionar todo" + +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "No seleccionar nada" + +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[modificada]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d archivo seleccionado (%s)" msgstr[1] "%d archivos seleccionados (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s de espacio libre" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "No se pudo encontrar un módulo apropiado para %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "¿Guardar los cambios al archivo «%s»?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "Si no guarda, se perderán para siempre los cambios en el archivo." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "_No guardar" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Aceptar" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Cerrar" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "No se pudo cambiar el nombre" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Modificado" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Ir a la ubicación visitada previamente" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Ir a la siguiente ubicación visitada" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Histórico" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Ver las carpetas" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Editar archivo" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Pantalla completa" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Tipo de archivo no soportado" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "No se encontró un modulo adecuado" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Eliminando archivos" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4850,11 +5212,11 @@ msgid "_Show Format Options" msgstr "Mo_strar las opciones de formato" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:219 msgid "Computer" msgstr "Equipo" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" @@ -4862,16 +5224,16 @@ "No se pueden mover los archivos a la papelera. ¿Quiere eliminarlos " "permanentemente?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "No se pudieron mover los archivos a la papelera" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:829 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "¿Seguro que quiere eliminar permanentemente «%s»?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4883,7 +5245,7 @@ "¿Está seguro de que quiere eliminar permanentemente los %'d archivos " "seleccionados?" -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:842 msgid "If you delete a file, it will be permanently lost." msgstr "Si elimina un archivo, se perderá definitivamente." @@ -4920,11 +5282,15 @@ msgid "No limit specified" msgstr "No se especificó ningún límite" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Todas" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Abrir padre)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Introduzca el nombre nuevo: " @@ -4955,72 +5321,90 @@ msgid "Reading file information" msgstr "Leyendo la información del archivo" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Archivos ocultos" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "Ubicación" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Ubicaciones" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Otra…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Tamaño" #: gthumb/gth-main-default-metadata.c:41 -msgctxt "the file mtime" +msgid "Bytes" +msgstr "Bytes" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 +#| msgctxt "the file mtime" +#| msgid "Modified Date & Time" msgid "Modified Date & Time" msgstr "Fecha y hora de modificación" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "Tipo" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Ubicación" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "Duración" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:51 msgid "Exposure Settings" msgstr "Tiempo de exposición" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:52 msgid "Aperture" msgstr "Apertura" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:53 msgid "ISO Speed" msgstr "Velocidad ISO" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:54 msgid "Exposure Time" msgstr "Tiempo de exposición" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:55 msgid "Shutter Speed" msgstr "Velocidad del diafragma" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:56 msgid "Focal Length" msgstr "Distancia focal" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:57 msgid "Flash" msgstr "Flash" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:58 msgid "Camera Model" msgstr "Modelo de cámara" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:59 msgid "Color Profile" msgstr "Perfil de color" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:61 msgid "General Date & Time" msgstr "Fecha y hora generales" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:68 msgid "Author" msgstr "Autor" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:69 msgid "Copyright" msgstr "Copyright" @@ -5052,43 +5436,55 @@ msgid "aspect ratio" msgstr "proporción de aspecto" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Todos los archivos" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Todas las imágenes" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "Imágenes JPEG" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Fotos en bruto" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Soporte" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Archivos de texto" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Nombre del archivo" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Título (empotrado)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Descripción (empotrada)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Mostrar/ocultar" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Navegación" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Gestor de archivos" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Sobrescribir" @@ -5184,8 +5580,8 @@ msgstr "es menor o igual que" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "La prueba de definición está incompleto" @@ -5256,31 +5652,54 @@ msgid "Rotation" msgstr "Rotación" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Moviendo archivos a la papelera" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"La combinación de teclas «%s» ya está asignada a la acción «%s». Quiere " +"reasignarla a esta acción en su lugar?" -#: gthumb/gtk-utils.c:338 +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Reasignar" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"La combinación de teclas «%s» ya está asignada a la acción «%s» y no se " +"puede cambiar." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "La combinación de teclas «%s» ya está asignada y no se puede cambiar." + +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "No se pudo mostrar la ayuda" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "No se pudo lanzar la aplicación" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "_Copiar aquí" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "_Mover aquí" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "En_lazar aquí" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Cancelar" @@ -5288,6 +5707,10 @@ msgid "_Cancel" msgstr "_Cancelar" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "Ay_uda" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Nueva" @@ -5312,46 +5735,65 @@ msgid "_Upload" msgstr "Su_bir" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "_Ventana nueva" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_Acerca de" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Salir" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Abrir en ventana nueva" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Ventana nueva" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Abrir ubicación…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Revertir" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Ordenar por…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Archivos ocultos" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_Acerca de gThumb" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Borrar histórico" +#~ msgid "%s Metadata" +#~ msgstr "Metadatos de %s" + +#~ msgid "%s Tags" +#~ msgstr "%s etiquetas" + +#~ msgid "Assign Tags" +#~ msgstr "Asignar etiquetas" + +#~ msgid "Export" +#~ msgstr "Exportar" + +#~ msgid "A_dd and Close" +#~ msgstr "_Añadir y cerrar" + +#~ msgid "Sa_ve and Close" +#~ msgstr "_Guardar y cerrar" + +#~ msgid "Choose startup folder" +#~ msgstr "Elija la carpeta de inicio" + +#~ msgid "gthumb" +#~ msgstr "gthumb" + +#~ msgid "Slideshow" +#~ msgstr "Mostrar diapositivas" + +#~ msgid "Playing slideshow" +#~ msgstr "Reproduciendo las diapositivas" + +#~ msgid "View images as a slideshow." +#~ msgstr "Ver imágenes como diapositivas." + +#~ msgid "New _Window" +#~ msgstr "_Ventana nueva" + +#~ msgid "_About" +#~ msgstr "_Acerca de" + #~ msgid "" #~ "The geographical position information is not available for this image." #~ msgstr "" @@ -5486,9 +5928,6 @@ #~ msgid "Could not move the folder to the Trash" #~ msgstr "No se pudo mover la carpeta a la papelera" -#~ msgid "Image tools" -#~ msgstr "Herramientas de imagen" - #~ msgid "Basic tools to modify images." #~ msgstr "Herramientas básicas para modificar imágenes." @@ -5777,9 +6216,6 @@ #~ msgid "Change volume level" #~ msgstr "Cambiar el nivel del volumen" -#~ msgid "Screenshot" -#~ msgstr "Capturar pantalla" - #~ msgid "Print the selected images" #~ msgstr "Imprimir las imágenes seleccionadas" @@ -5796,18 +6232,6 @@ #~ msgid "Reset the embedded orientation without rotating the images" #~ msgstr "Reiniciar la orientación empotrada sin rotar las imágenes" -#~ msgid "Transparency _type:" -#~ msgstr "Tipo de _transparencia:" - -#~ msgid "White" -#~ msgstr "Blanco" - -#~ msgid "Black" -#~ msgstr "Negro" - -#~ msgid "Checked" -#~ msgstr "Cuadriculado" - #~ msgid "Copy the image to the clipboard" #~ msgstr "Copiar la imagen al portapapeles" @@ -5817,12 +6241,6 @@ #~ msgid "In" #~ msgstr "Ampliar" -#~ msgid "Zoom in" -#~ msgstr "Ampliar" - -#~ msgid "Zoom out" -#~ msgstr "Reducir" - #~ msgid "1:1" #~ msgstr "1:1" @@ -5835,9 +6253,6 @@ #~ msgid "Zoom to fit window" #~ msgstr "Ampliar hasta ajustarse a la ventana" -#~ msgid "Zoom to fit width" -#~ msgstr "Ampliar hasta ajustarse a la anchura" - #~ msgid "Batch tools for multiple files" #~ msgstr "Conjunto de herramientas para múltiples archivos" @@ -5907,9 +6322,6 @@ #~ msgid "_Go" #~ msgstr "_Ir a" -#~ msgid "E_xport To" -#~ msgstr "E_xportar a" - #~ msgid "Open another window" #~ msgstr "Abrir otra ventana" @@ -5925,15 +6337,6 @@ #~ msgid "Stop loading the current location" #~ msgstr "Deja de cargar el lugar actual" -#~ msgid "Reload the current location" -#~ msgstr "Recargar la ubicación actual" - -#~ msgid "View previous image" -#~ msgstr "Ver la imagen anterior" - -#~ msgid "View next image" -#~ msgstr "Ver la próxima imagen" - #~ msgid "Switch to fullscreen" #~ msgstr "Cambiar a pantalla completa" @@ -5967,9 +6370,6 @@ #~ msgid "View or hide the toolbar of this window" #~ msgstr "Mostrar u ocultar la barra de herramientas de esta ventana" -#~ msgid "_Statusbar" -#~ msgstr "Barra de e_stado" - #~ msgid "View or hide the statusbar of this window" #~ msgstr "Mostrar u ocultar la barra de estado de esta ventana" @@ -5979,9 +6379,6 @@ #~ msgid "View or hide the filterbar of this window" #~ msgstr "Mostrar u ocultar la barra de filtros de esta ventana" -#~ msgid "_Sidebar" -#~ msgstr "Barra _lateral" - #~ msgid "View or hide the sidebar of this window" #~ msgstr "Mostrar u ocultar la barra lateral de esta ventana" @@ -5997,12 +6394,6 @@ #~ msgid "View thumbnails" #~ msgstr "Ver las miniaturas" -#~ msgid "Show hidden files and folders" -#~ msgstr "Mostrar archivos y carpetas ocultos" - -#~ msgid "View file properties" -#~ msgstr "Ver las propiedades del archivo" - #~ msgid "_Fit Window to Image" #~ msgstr "_Ajustar ventana a la imagen" @@ -6021,9 +6412,6 @@ #~ msgid "File System" #~ msgstr "Sistema de archivos" -#~ msgid "Close this window" -#~ msgstr "Cerrar esta ventana" - #~ msgid "Close _All Windows" #~ msgstr "Cerrar _todas las ventanas" @@ -6383,9 +6771,6 @@ #~ msgid "gtk-preferences" #~ msgstr "Preferencias de gThumb" -#~ msgid "Bytes" -#~ msgstr "Bytes" - #~ msgid "Camera model" #~ msgstr "Modelo de cámara" @@ -6504,9 +6889,6 @@ #~ msgid "Show / hide the cropping selection area" #~ msgstr "Mostrar / ocultar el área de selección de recorte" -#~ msgid "Zoom at 100% scale" -#~ msgstr "Ampliación al 100% de la escala" - #~ msgid "Zoom in. The mousewheel can also be used to zoom in." #~ msgstr "Ampliar. La rueda del ratón también se puede usar para ampliar." @@ -6515,9 +6897,6 @@ #~ "Reducir. La rueda del ratón también se puede usar para reducir la " #~ "ampliación." -#~ msgid "Zoom to fit" -#~ msgstr "Ampliar hasta ajustar" - #~ msgid "_Done" #~ msgstr "_Hecho" @@ -7243,9 +7622,6 @@ #~ msgid "Home" #~ msgstr "Carpeta personal" -#~ msgid "No image" -#~ msgstr "Ninguna imagen" - #~ msgid "Ro_tate Images" #~ msgstr "Ro_tar imágenes" @@ -7475,9 +7851,6 @@ #~ msgid "Folder copy - choose the destination folder" #~ msgstr "Copiar carpeta - seleccionar la carpeta de destino" -#~ msgid "Show/_Hide" -#~ msgstr "Mostrar/_ocultar" - #~ msgid "S_ort Images" #~ msgstr "Ord_enar imágenes" @@ -7562,9 +7935,6 @@ #~ msgid "Move current catalog to another location" #~ msgstr "Mover el catálogo actual a otro lugar" -#~ msgid "Open the selected folder in a new window" -#~ msgstr "Abrir la carpeta seleccionada en una ventana nueva" - #~ msgid "Open the selected folder with the Nautilus file manager" #~ msgstr "" #~ "Abrir la carpeta seleccionada con el administrador de archivos Nautilus" @@ -7614,9 +7984,6 @@ #~ msgid "Scale Images..." #~ msgstr "Escalar imágenes..." -#~ msgid "Scale Images" -#~ msgstr "Escalar imágenes" - #~ msgid "Edit external scripts" #~ msgstr "Editar scripts externos" @@ -7752,9 +8119,6 @@ #~ msgid "_Open With..." #~ msgstr "Abrir _con..." -#~ msgid "Revert to saved image" -#~ msgstr "Recuperar la imagen guardada" - #~ msgid "Print the current image" #~ msgstr "Imprimir la imagen actual" diff -Nru gthumb-3.8.3/po/hr.po gthumb-3.9.1/po/hr.po --- gthumb-3.8.3/po/hr.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/hr.po 2020-03-07 19:03:13.600286200 +0000 @@ -5,16 +5,16 @@ msgstr "" "Project-Id-Version: gthumb 0\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-04-21 09:07+0000\n" -"PO-Revision-Date: 2019-06-22 22:20+0200\n" -"Last-Translator: gogo \n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-03 22:48+0100\n" +"Last-Translator: gogo \n" "Language-Team: Croatian \n" "Language: hr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Launchpad-Export-Date: 2016-10-10 19:20+0000\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" @@ -129,11 +129,11 @@ #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Preglednik slika" @@ -148,69 +148,70 @@ msgid "Caption" msgstr "Opis" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Ponašanje" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "_Jedan klik za otvaranje datoteka" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "_Dvostruki klik za otvaranje datoteka" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Otvori datoteke u cjelozaslonskom prikazu" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Ostalo" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "Veličina _minijature:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "Utvrdi vrstu slike prema sadržaju (sporije)" @@ -222,20 +223,34 @@ msgid "More extensions…" msgstr "Više proširenja…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Prijašnje" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Sljedeće" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "Naziv _filtera:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "_Podudaranje:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Pravilo:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Ograniči na" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "odabrao" @@ -281,40 +296,40 @@ msgid "Old File:" msgstr "Stara datoteka:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Naziv datoteke:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Veličina:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Promijenjeno:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Nova datoteka:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "_Zamijeni staru datoteku" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "Nemoj zamjeniti _staru datoteku" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Zamijeni _sve datoteke" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_Nemoj zamijeniti nijednu datoteku" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "_Spremi novu datoteku kao:" @@ -338,70 +353,75 @@ msgid "gThumb Preferences" msgstr "gThumb osobitosti" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Izgled" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "_Minijature u pregledniku:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "na dnu" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "sa strane" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "Svojstva _datoteke u pregledniku:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Pri pokretanju:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Idi u posljednju _posjećenu lokaciju" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Idi u ovu _mapu:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Odaberi mapu pokretanja" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Postavi _zadano" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "_Ponovno koristi aktivan prozor za otvaranje datoteka" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Up_itaj za potvrdu prije brisanja datoteka ili kataloga" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Upitaj treba li _spremiti promijenjene datoteke" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "_Spremi metapodatke unutar datoteka ako je moguće" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Općenito" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Prečaci:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Obnovi sve…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "_Obrni poredak" @@ -415,7 +435,7 @@ msgstr "Pošalji slike na 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Zabilješke" @@ -432,7 +452,7 @@ msgid "_Edit Bookmarks…" msgstr "_Uredi zabilješke…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "_Zabilješke sustava" @@ -446,6 +466,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Ukloni" @@ -497,15 +518,15 @@ msgid "Source" msgstr "Izvor" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Zapiši na CD" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Nastavi" @@ -514,7 +535,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Greška interpretacije JEPG datoteke slike: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:537 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Nepoznat JEPG prostor boje (%d)" @@ -597,12 +618,12 @@ msgstr "_Sa gubicima" #: extensions/cairo_io/gth-image-saver-jpeg.c:517 -#: extensions/image_viewer/gth-metadata-provider-image.c:145 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 msgid "JPEG" msgstr "JPEG" #: extensions/cairo_io/gth-image-saver-png.c:354 -#: extensions/image_viewer/gth-metadata-provider-image.c:111 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 msgid "PNG" msgstr "PNG" @@ -620,71 +641,69 @@ msgstr "TIFF" #: extensions/cairo_io/gth-image-saver-webp.c:383 -#: extensions/image_viewer/gth-metadata-provider-image.c:174 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 msgid "WebP" msgstr "WebP" #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Spremanje" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:370 -#: extensions/catalogs/dlg-add-to-catalog.c:535 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Nema određenog naziva" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:377 -#: extensions/catalogs/dlg-add-to-catalog.c:542 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Neispravan naziv. Sljedeći znakovi nisu dopušteni: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:434 -#: extensions/catalogs/dlg-add-to-catalog.c:591 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Naziv se već koristi" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:455 msgid "New catalog" msgstr "Novi katalog" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:456 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Upiši naziv kataloga:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:458 -#: extensions/catalogs/dlg-add-to-catalog.c:617 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "S_tvori" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:614 msgid "New library" msgstr "Nova fototeka" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:615 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Upiši naziv fototeke:" @@ -701,7 +720,7 @@ msgid "Add to Catalog…" msgstr "Dodaj u katalog…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Otvori mapu" @@ -717,40 +736,40 @@ msgid "Create Library" msgstr "Stvori fototeku" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:79 -#: extensions/file_manager/callbacks.c:106 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Preimenuj" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4580 -#: gthumb/gth-browser.c:4682 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Svojstva" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 msgid "Catalogs" msgstr "Katalozi" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Naredbeni redak" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Svojstva kataloga" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Organiziraj" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Automatski organiziraj datoteke prema datumu" @@ -760,34 +779,34 @@ #: extensions/catalogs/catalogs.extension.desktop.in.in:8 msgid "file-catalog-symbolic" -msgstr "" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Dodaj u katalog" +msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "D_odaj i zatvori" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "K_atalozi:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "_Novi katalog" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Nova _fototeka" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Nova fototeka" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Novi katalog" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Pogledaj odredište" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "Zadrži dijalog otvoren" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -841,7 +860,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "_Uključi podmape" @@ -857,26 +876,33 @@ msgid "Singles" msgstr "Jedna datoteka" -#: extensions/catalogs/dlg-add-to-catalog.c:151 -#: extensions/catalogs/dlg-add-to-catalog.c:185 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Nemoguće dodavanje datoteke u katalog" -#: extensions/catalogs/dlg-add-to-catalog.c:313 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Nemoguće stvaranje kataloga" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Dodaj u katalog" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Dodaj" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Nemoguće spremanje kataloga" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Nemoguće učitavanje kataloga" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Organiziraj datoteke" @@ -888,75 +914,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:365 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Datumu slikanja" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:357 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Datumu promjene" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Oznaci" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:398 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Oznaci (ugrađenoj)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Neispravan format datoteke" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "Oznake" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "Katalog \"%s\" već postoji. Želite li ga zamijeniti?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "Fototeka \"%s\" već postoji. Želite li ju zamijeniti?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "_Zamijeni" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Nemoguće premještanje datoteka" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Nemoguće kopiranje datoteka" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Neispravno odredište." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Kopiranje datoteka u “%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Nemoguće uklanjanje datoteke iz kataloga" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:876 -#: extensions/exiv2_tools/exiv2-utils.cpp:885 -#: extensions/exiv2_tools/exiv2-utils.cpp:915 -#: extensions/exiv2_tools/exiv2-utils.cpp:1450 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Neispravan format datoteke" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1056,20 +1084,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Osobitosti" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Komentar" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "Naslov" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1079,21 +1111,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "Opis" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "Lokacija" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Datum i vrijeme komentara" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:389 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Ocjena" @@ -1107,7 +1139,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Kontaktni listovi" @@ -1118,9 +1150,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Nijedan" @@ -1192,7 +1224,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1207,7 +1239,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1215,7 +1247,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Opis:" @@ -1370,13 +1402,13 @@ msgid "Thumbnails" msgstr "Minijature" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Nemoguće spremanje teme" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Nemoguće brisanje teme" @@ -1384,11 +1416,11 @@ msgid "Image Wall" msgstr "Zid slike" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Stvaranje slika" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Stvaranje minijatura" @@ -1451,7 +1483,7 @@ msgstr "Nemoguć prikaz svojstava pozadine radne površine" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Osobitosti" @@ -1481,7 +1513,7 @@ #: extensions/desktop_background/desktop_background.extension.desktop.in.in:8 msgid "desktop" -msgstr "" +msgstr "desktop" #: extensions/edit_metadata/actions.c:75 msgid "" @@ -1494,6 +1526,14 @@ msgstr "Ako obrišete metapodatke, biti će trajno izgubljeni." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Uredi komentar" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Uredi oznake" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Obriši metapodatke" @@ -1525,7 +1565,7 @@ msgstr "Nemoguće spremanje datoteke metapodataka" #: extensions/edit_metadata/dlg-edit-metadata.c:230 -#: gthumb/gth-overwrite-dialog.c:139 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Nemoguće čitanje Informacija datoteke" @@ -1537,28 +1577,7 @@ msgid "Allow to edit files metadata." msgstr "Dopušta uređivanje metapodataka." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "%s metapodatak" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d datoteka" -msgstr[1] "%d datoteke" -msgstr[2] "%d datoteka" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "Sp_remi i zatvori" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Spremi samo pro_mijenjena polja" @@ -1587,16 +1606,6 @@ msgid "Do not modify" msgstr "Ne mijenjaj" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "%s oznaka" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Dodijeli oznake" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1659,7 +1668,8 @@ msgid "State/Province:" msgstr "Država/Županija:" -#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(neispravna vrijednost)" @@ -1724,8 +1734,8 @@ msgstr "datumu slikanja" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Izvoz" +msgid "_Export To" +msgstr "_Izvezi u" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1866,7 +1876,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1908,13 +1918,13 @@ msgid "Uploading “%s”" msgstr "Šaljem “%s”" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Slanje datoteka na poslužitelj" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1937,14 +1947,21 @@ msgstr "Upišite naziv mape:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:271 -#: extensions/file_manager/callbacks.c:1005 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Nemoguće obavljanje radnje" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Nemoguće premještanje datoteka" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:272 -#: extensions/file_manager/callbacks.c:1006 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1952,114 +1969,120 @@ "Datoteke se ne mogu premjestiti na trenutnu lokaciju, kao alternativu koju " "ste odabrali za kopiranje." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:71 -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Kopiraj" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Premjesti u" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Kopiraj u" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:990 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Premjesti" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Nemoguće otvaranje lokacije" -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Izreži" -#: extensions/file_manager/callbacks.c:72 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Zalijepi" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Kopiraj u…" -#: extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Premjesti u…" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Premjesti u smeće" -#: extensions/file_manager/callbacks.c:85 -#: extensions/file_manager/callbacks.c:110 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Obriši" -#: extensions/file_manager/callbacks.c:89 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Otvori u upravitelju datotekama" -#: extensions/file_manager/callbacks.c:94 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Stvori mapu" -#: extensions/file_manager/callbacks.c:101 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Zalijepi u mapu" -#: extensions/file_manager/callbacks.c:115 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Udvostruči" -#: extensions/file_manager/callbacks.c:545 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5580 gthumb/gth-browser.c:5616 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Nemoguće obavljanje radnje" +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Obriši trajno" + +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "Otvori s Gimpom" -#: extensions/file_manager/callbacks.c:716 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 msgid "Home Folder" msgstr "Osobna mapa" -#: extensions/file_manager/callbacks.c:723 -#: extensions/file_manager/callbacks.c:726 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "_Otvori s" -#: extensions/file_manager/callbacks.c:973 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Želite li premjestiti “%s” u “%s”?" -#: extensions/file_manager/callbacks.c:975 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Želite li kopirati “%s” u “%s”?" -#: extensions/file_manager/callbacks.c:980 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Želite li premjestiti povućene datoteke u “%s”?" -#: extensions/file_manager/callbacks.c:982 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Želite li kopirati povućene datoteke u “%s”?" -#: extensions/file_manager/callbacks.c:990 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Kopiraj" @@ -2073,7 +2096,41 @@ #: extensions/file_manager/file_manager.extension.desktop.in.in:8 msgid "system-file-manager" -msgstr "" +msgstr "system-file-manager" + +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Prilagodi kontrast" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Preokreni" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Zrcali" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Zakreni udesno" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Zakreni ulijevo" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Obreži" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Promjena veličine" #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 @@ -2137,9 +2194,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Mogućnosti" @@ -2176,7 +2233,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:404 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Omjer slike" @@ -2214,7 +2271,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" msgstr "Razlučivost" @@ -2374,17 +2431,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2431,11 +2488,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Izjednači histogram koristeći linearnu funkciju" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Prilagodi kontrast" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Automatska prilagodba kontrasta" @@ -2448,74 +2505,74 @@ msgstr "Odaberi boju iz slike" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Kvadrat" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d x %d (slika)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d x %d (zaslon)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (DVD, Knjiga)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "4 x 6 (razglednica)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1.85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2.39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2537,10 +2594,6 @@ msgid "Center Lines" msgstr "Središnje linije" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Obreži" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Dodaj u predložak" @@ -2551,8 +2604,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Nemoguće spremanje datoteke" @@ -2568,69 +2621,65 @@ msgid "Adjust color curves" msgstr "Prilagodi krivulje boja" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Specijalni efekti" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Toplije" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Hladnije" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Tlo" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Pustinja" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Arktik" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mango" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Svježe plavo" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Trešnja" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Staro" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Zamućeni rubovi" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Vinjeta" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Preokreni" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Zakreni sliku okomito" @@ -2647,7 +2696,7 @@ msgid "_Average" msgstr "_Prosjek" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "_Sivi ton" @@ -2655,10 +2704,6 @@ msgid "Lomo" msgstr "Žućkasto" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Zrcali" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Zrcali sliku vodoravno" @@ -2672,19 +2717,15 @@ msgstr "Ponovi" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Promijeni veličinu slike" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Promjena veličine" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Zakreni ulijevo" @@ -2693,8 +2734,8 @@ msgstr "Zakreni sliku za 90 stupnjeva suprotno od smjera kazaljke na satu" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Zakreni u desno" @@ -2707,12 +2748,12 @@ msgstr "Zakretanje" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Spremi kao…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Spremi" @@ -2768,7 +2809,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Pokreni _u:" @@ -2783,7 +2824,7 @@ msgstr "Potraži duplikate" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Pretraži" @@ -2904,10 +2945,19 @@ msgstr "Sakrij od _javnih pretraga" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "_Otvori u pregledniku" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d datoteka" +msgstr[1] "%d datoteke" +msgstr[2] "%d datoteka" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2921,7 +2971,7 @@ msgstr "Nema odabrnih albuma" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Uvezi" @@ -2990,6 +3040,14 @@ msgid "Could not take a screenshot" msgstr "Nemogće slikanje zaslona" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Slika zaslona" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Reproduciraj/Pauziraj" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Koristi hardversko ubrzanje" @@ -2999,8 +3057,8 @@ msgstr "_Lokacija slika zaslona:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Reproduciraj" @@ -3034,68 +3092,78 @@ #: extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in:8 msgid "video-x-generic" -msgstr "" +msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "REproduciranje video snimke" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Pauziraj" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Uslikaj zaslon" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:312 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Prilagodi po prozoru" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Glazbeni/Video reproduktor" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Video snimka" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:319 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Zvućni zapis" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Izvođač" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Album" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Brzina prijenosa" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Enkôder" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Kôdek" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Broj sličica" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Širina" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Visina" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Kanali" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Frekvencija" @@ -3109,10 +3177,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 -#: extensions/image_viewer/gth-metadata-provider-image.c:253 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3121,7 +3189,8 @@ msgid "Could not print the selected files" msgstr "Nemoguć ispis odabranih datoteka" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Ispis" @@ -3179,19 +3248,19 @@ msgid "inches" msgstr "inča" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Slova" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Odaberi slova opisa" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Odaberi slova zagljavlja" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Odaberi slova podnožja" @@ -3213,7 +3282,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Nema prikladnog učitača dostupnog za ovu vrstu datoteke" @@ -3224,7 +3293,7 @@ msgstr "Učitavam \"%s\"" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Učitavanje slika" @@ -3238,20 +3307,20 @@ #: extensions/image_print/image_print.extension.desktop.in.in:8 msgid "document-print" -msgstr "" +msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Zakreni fizički" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Vrati Exif orijentaciju" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Spremanje slika" @@ -3299,77 +3368,198 @@ msgid "_Accept distortion" msgstr "_Prihvati izobličenja" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Uvećaj" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Umanji" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "Uvećaj 100%" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "Uvećaj 200%" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "Uvećaj 300%" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Prilagodi da pristaje" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Prilagodi da pristaje ako je preveliko" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Prilagodi prema širini" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Prilagodi po širini ako je preveliko" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Prilagodi prema širini" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Prilagodi po širini ako je preveliko" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Poništi uređivanje" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Ponovi uređivanje" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Pomiči ulijevo" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Pomiči udesno" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Pomiči gore u" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Pomiči dolje" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Pomiči brzo ulijevo" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Pomiči brzo udesno" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Pomiči brzo gore" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Pomiči brzo dolje" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Pomiči u sredinu" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Nakon učitavanja slike:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Postavi stvarnu veličinu" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Zadrži prijašnje uvećanje" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Prilagodi po prozoru" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Prilagodi po prozoru ako je preveliko" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Prilagodi po širini" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Prilagodi po širini ako je preveliko" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Vrati izvorni položaj trake pomicanja" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Radanja kotačića miša:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Promjeni sliku" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Uvećaj sliku" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Kvaliteta uvećanja:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Visoka" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Slabija" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Prozirnost:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "Kockasta" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Bijela" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Siva" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Crna" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automatski" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Prilagodi po visini" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3377,31 +3567,44 @@ msgid "Histogram" msgstr "Histogram" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Kopiraj sliku" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Zalijepi sliku" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Primijeni ugrađeni profil boja" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Sljedeća sličica" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Prozirnost" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Spremi sliku" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Učitavanje izvorne slike" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Pomicanje slike" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Uređivač slike" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Preglednik" @@ -3473,38 +3676,38 @@ msgid "custom format" msgstr "prilagođeni format" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Uvoz datoteka" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Nema uvezenih datoteka" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "Odabrane datoteke su već prisutne u odredištu." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" msgstr "Nemoguće brisanje datoteka" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Radnja brisanja nije podržana." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Posljednji uvoz" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Nema određene datoteke." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3513,7 +3716,8 @@ "Nema dovoljno slobodnog prostora u “%s”.\n" "potrebno je %s prostora ali je samo %s dostupno." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Alati" @@ -3601,49 +3805,53 @@ msgid "Quote the text " msgstr "Citiraj tekst " -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +msgid "The current date and time" +msgstr "Trenutni datum i vrijeme" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "_Naredba:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Prilagodi…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Skripta" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Prečac" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Prikaži" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Nemoguće spremanje skripte" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Nova naredba" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Uredi naredbu" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Sigurno želite obrisati odabranu naredbu?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Naredbe" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Nema određene naredbe" @@ -3653,18 +3861,18 @@ msgid "Command exited abnormally with status %d" msgstr "Naredba je neočekivano prekinuta sa stanjem %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Upiši vrijednost:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Oštećena naredba" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Preskoči" @@ -3678,7 +3886,7 @@ #: extensions/list_tools/list_tools.extension.desktop.in.in:8 msgid "applications-engineering" -msgstr "" +msgstr "applications-engineering" #: extensions/map_view/gth-map-view.c:128 msgctxt "Cardinal point" @@ -3714,7 +3922,7 @@ msgstr "R_ačuni:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Učitavanje…" @@ -3751,7 +3959,7 @@ msgstr "Dobivanje informacija računa" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Odaberi mapu" @@ -3815,11 +4023,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Prazno)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Dobivanje sadržaja mape…" @@ -3827,11 +4035,11 @@ msgid "Empty" msgstr "Prazna" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Uvezi iz prijenosnih uređaja" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Uvezi iz mape" @@ -3845,7 +4053,7 @@ #: extensions/photo_importer/photo_importer.extension.desktop.in.in:8 msgid "camera-photo" -msgstr "" +msgstr "camera-photo" #: extensions/picasaweb/callbacks.c:50 extensions/picasaweb/callbacks.c:56 msgid "_Picasa Web Album…" @@ -3947,6 +4155,7 @@ msgstr "Velika _mala slova:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Pomoć" @@ -4043,28 +4252,28 @@ msgid "Edit Template" msgstr "Uredi predložak" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Preimenuj" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Stari naziv" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Novi naziv" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Zadrži izvorna slova" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Promijeni u mala slova" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Promijeni u velika slova" @@ -4101,15 +4310,15 @@ msgstr "_Očuvaj izvorne omjere slika" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Format" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Promijeni veličinu slike" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Zadrži izvorni format" @@ -4121,8 +4330,8 @@ msgid "Resize series of images." msgstr "Promijeni veličinu slike." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Nemoguće obavljanje radnje pretrage" @@ -4130,48 +4339,48 @@ msgid "Search Result" msgstr "Rezult pretrage" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Pretraži" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Pretraži datoteke" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Ponovno pretraži" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Pretraga" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Pravilo:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "sa svim sljedećim pravilima" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "sa bilo kojim sljedećim pravilom" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Dodaj drugu lokaciju" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Trenutno pronađenih datoteka: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Pretraživanje…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Prekini radnju" @@ -4181,18 +4390,34 @@ #: extensions/search/search.extension.desktop.in.in:8 msgid "edit-find" -msgstr "" +msgstr "edit-find" + +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Dodaj u odabir" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Ukloni iz odabira" -#: extensions/selections/callbacks.c:55 +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Prikaži odabir" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Ukloni iz odabira" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "Prikaži odabir %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4206,6 +4431,7 @@ msgstr "Odabir %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Odabiri" @@ -4216,54 +4442,71 @@ #: extensions/selections/selections.extension.desktop.in.in:8 msgid "emblem-flag-gray" -msgstr "" +msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Prezentacija" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Pokreni prezentaciju" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Zaustavi prezentaciju" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Pauziraj/Nastavi prezentaciju" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Prikaži sljedeću datoteku" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Prikaži prijašnju datoteku" + +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" msgstr "Prezentacija" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Prilagodi" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "_Efekt prijelaza:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Promijeni automatski, svakih" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "sekunda" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "_Ponovo pokreni kada je završeno" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "N_aizmjenični poredak" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Popis izvođenja" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Dodaj datoteke na popis izvođenja" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Ukloni odabrane datoteke" @@ -4279,49 +4522,66 @@ msgid "Random" msgstr "Naizmjenično" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" msgstr "Reprodukcija prezentacije" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Gurni s desna" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Gurni s dna" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Klizi s desna" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Klizi s dna" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Iščezavanje" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Preokreni stranicu" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Kocka s desna" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Kocka s dna" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Prikaži slike kao prezentaciju." +msgid "Play a presentation of images." +msgstr "Reproduciraj prezentaciju slika." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" -msgstr "" +msgstr "x-office-presentation" + +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminal" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +msgid "Open in Terminal" +msgstr "Otvori u Terminalu" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +msgid "Open a folder in a terminal" +msgstr "Otvori mapu u terminalu" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" @@ -4344,14 +4604,6 @@ msgid "Index" msgstr "Sadržaj" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Sljedeće" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Prijašnje" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4435,36 +4687,36 @@ msgid "Web Album" msgstr "Web album" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Nemoguć prikaz odredišta" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "Album je stvoren uspješno." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Spremanje minijatura" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Spremanje HTML stranica: slike" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Spremanje HTML stranica: sadržaji" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Kopiranje izvornih slika" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Nemoguće je pronaći mapu izgleda" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Nemoguće stvaranje privremene mape" @@ -4476,9 +4728,9 @@ msgid "Create static web albums." msgstr "Stvori nepromjenjive web albume." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6557 -#: gthumb/gth-browser.c:6576 gthumb/gth-browser.c:6600 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "Nemoguće učitavanje položaja “%s”" @@ -4509,18 +4761,22 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Preglednik" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" -msgstr "Sve" +msgstr "Sva" #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "Omogućeno" #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "Onemogućeno" @@ -4558,65 +4814,97 @@ msgstr "Nemoguće deaktiviranje proširenja" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" -msgstr "gthumb razvojni tim" +msgid "gThumb Development Team" +msgstr "gThumb razvojni tim" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Proširenja" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Potrebno je ponovo pokretanje" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "Morate ponovno pokrenuti gthumb kako bi se promjene primijenile" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Ponovno pokreni" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Obrni" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "Želite li obrnuti sve promjene i koristiti zadane prečace?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Svi" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Promijenjeno" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Prečaci" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Razvrstaj po" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s od %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Premještanje \"%s\" u \"%s\"" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Kopiranje \"%s\" u \"%s\"" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Premještanje datoteka" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Kopiranje datoteka" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Dobivanje informacija" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Brisanje datoteka" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Premještanje datoteka u smeće" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4628,17 +4916,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Pritisni kombinaciju tipka za korištenje prečaca." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Pritisni Esc ili za prekid" @@ -4651,7 +4939,7 @@ msgstr "Pokreni u cijelozaslonskom načinu" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" +msgid "Automatically start a presentation" msgstr "Automatski pokreni prezentaciju" #: gthumb/gth-application.c:64 @@ -4662,11 +4950,11 @@ msgid "Show version" msgstr "Prikaži inačicu" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Preglednik i pretraživač slika" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4678,7 +4966,7 @@ "slobodnog softvera, ili inačice 2 licence ili (po vašem izboru) svake novije " "inačice." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4689,7 +4977,7 @@ "čak i bez podrazumijevanih jamstava UPORABLJIVOSTI ZA ODREĐENU SVRHU. " "Pogledajte GNU Opću Javnu Licencu za više pojedinosti." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4697,34 +4985,119 @@ "Trebali ste primiti kopiju GNU Opće Javne Licence uz gThumb; ako niste, " "pogledajte ." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "Preglednik i pretraživač slika za GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Launchpad Contributions:\n" " gogo https://launchpad.net/~trebelnik-stefina" -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Novi prozor" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Prečaci tipkovnice" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "_Priručnik" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Zatvori" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Prikaži preglednik" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Zatvori prozor" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Otvori lokaciju" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Cijeli zaslon" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_O gThumb" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Vrati sliku na spremljeno" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Bočna traka" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Statusna traka" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Popis minijatura" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Učitaj prijašnju lokaciju" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Učitaj sljedeću lokaciju" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Učitaj sadržajnu mapu" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Učitaj osobnu mapu" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Učitaj ponovno lokaciju" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Prikaži/Sakrij skrivene datoteke" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Promijeni redoslijed razvrstavanja" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Prikaži prvu datoteku" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Prikaži posljednju datoteku" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Alati slike" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Datoteka svojstava" + +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Odaberi sve" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "Bez odabira" + +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[promijenjeno]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" @@ -4732,84 +5105,75 @@ msgstr[1] "%d datoteke odabrane (%s)" msgstr[2] "%d datoteka odabrano (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s slobodnog prostora" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Prikladan modul nije pronađen za %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Spremi promjene u datoteku “%s”?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "Ako ne spremite, promjene će biti trajno izgubljene." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "Ne _spremaj" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4621 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Prihvati" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Zatvori" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Nemoguća promjena naziva" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Promijenjeno" -#: gthumb/gth-browser.c:4543 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Idi u prije posjećenu lokaciju" -#: gthumb/gth-browser.c:4549 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Idi u sljedeću posjećenu lokaciju" -#: gthumb/gth-browser.c:4557 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Povijest" -#: gthumb/gth-browser.c:4571 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Prikaži mape" -#: gthumb/gth-browser.c:4586 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Uredi datoteku" -#: gthumb/gth-browser.c:4595 gthumb/gth-browser.c:4613 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Cijeli zaslon" - -#: gthumb/gth-browser.c:6558 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Vrsta datoteke nije podržana" -#: gthumb/gth-browser.c:6601 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Nema pronađenih prikladnih modula" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Brisanje datoteka" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4828,26 +5192,26 @@ msgid "_Show Format Options" msgstr "_Prikaži mogućnosti formata" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:219 msgid "Computer" msgstr "Računalo" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "Slike se ne mogu premjestiti u smeće. Želite li ih trajno obrisati?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "Nemoguće premještanje datoteka u smeće" -#: gthumb/gth-file-source-vfs.c:844 +#: gthumb/gth-file-source-vfs.c:829 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Sigurno želite trajno obrisati \"%s\"?" -#: gthumb/gth-file-source-vfs.c:847 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4856,7 +5220,7 @@ msgstr[1] "Sigurno želite trajno ukloniti %'d odabrane datoteke?" msgstr[2] "Sigurno želite trajno ukloniti %'d odabranih datoteka?" -#: gthumb/gth-file-source-vfs.c:857 +#: gthumb/gth-file-source-vfs.c:842 msgid "If you delete a file, it will be permanently lost." msgstr "Ako obrišete datoteku, biti će trajno izgubljena." @@ -4893,11 +5257,15 @@ msgid "No limit specified" msgstr "Ograničenje nije određeno" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Sve" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Otvori sadržajni)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Upišite novi naziv:" @@ -4927,72 +5295,88 @@ msgid "Reading file information" msgstr "Čitanje Informacija datoteke" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:349 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Skrivene datoteke" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "Lokacija" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Lokacije" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Ostalo…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Veličina" #: gthumb/gth-main-default-metadata.c:41 -msgctxt "the file mtime" +msgid "Bytes" +msgstr "Bajtova" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 msgid "Modified Date & Time" msgstr "Datum i vrijeme promjene" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "Vrsta" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Lokacija" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "Trajanje" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:51 msgid "Exposure Settings" msgstr "Postavke ekspozicije" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:52 msgid "Aperture" msgstr "Promjer optičke leće" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:53 msgid "ISO Speed" msgstr "ISO brzina" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:54 msgid "Exposure Time" msgstr "Dužina ekspozicije" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:55 msgid "Shutter Speed" msgstr "Brzina okidanja" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:56 msgid "Focal Length" msgstr "Žarišna duljina" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:57 msgid "Flash" msgstr "Bljeskalica" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:58 msgid "Camera Model" msgstr "Model fotoaparata" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:59 msgid "Color Profile" msgstr "Profil boja" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:61 msgid "General Date & Time" msgstr "Općeniti datum i vrijeme" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:68 msgid "Author" msgstr "Autor" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:69 msgid "Copyright" msgstr "Autorsko pravo" @@ -5024,43 +5408,55 @@ msgid "aspect ratio" msgstr "omjeru slike" -#: gthumb/gth-main-default-tests.c:284 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Sve datoteke" -#: gthumb/gth-main-default-tests.c:291 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Sve slike" -#: gthumb/gth-main-default-tests.c:298 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "JPEG slike" -#: gthumb/gth-main-default-tests.c:305 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Raw fotografije" -#: gthumb/gth-main-default-tests.c:326 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Medij" -#: gthumb/gth-main-default-tests.c:333 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Datoteke teksta" -#: gthumb/gth-main-default-tests.c:341 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Naziv datoteke" -#: gthumb/gth-main-default-tests.c:373 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Naslov (ugrađen)" -#: gthumb/gth-main-default-tests.c:381 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Opis (ugrađen)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Prikaži/Sakrij" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Navigacija" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Upravitelj datoteka" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Zamijeni" @@ -5156,8 +5552,8 @@ msgstr "je manje od ili jednako" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "Test definicije je nepotpun" @@ -5228,31 +5624,54 @@ msgid "Rotation" msgstr "Zakretanje" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Premještanje datoteka u smeće" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"Kombinacija tipki «%s» je već dodijeljena radnji «%s». Želite li umjesto " +"toga ponovo dodijeliti tu radnju?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Ponovno dodijeli" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"Kombinacija tipki «%s» je već dodijeljena radnji «%s» i ne može se " +"promijeniti." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "Kombinacija tipki «%s» je već dodijeljena i ne može se promijeniti." -#: gthumb/gtk-utils.c:338 +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Nemoguć prikaz pomoći" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "Nemoguće pokretanje aplikacije" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "_Kopiraj ovdje" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "_Premjesti ovdje" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "_Poveži ovdje" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Odustani" @@ -5260,6 +5679,10 @@ msgid "_Cancel" msgstr "_Odustani" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "_Priručnik" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Novo" @@ -5284,46 +5707,59 @@ msgid "_Upload" msgstr "_Pošalji" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Novi _prozor" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_O programu" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Zatvori" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Otvori u novom prozoru" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Novi prozor" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Otvori lokaciju…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Obrni" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Razvrstaj po…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Skrivene datoteke" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_O gThumb" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Obriši povijest" +#~ msgid "Choose startup folder" +#~ msgstr "Odaberi mapu pokretanja" + +#~ msgid "A_dd and Close" +#~ msgstr "D_odaj i zatvori" + +#~ msgid "%s Metadata" +#~ msgstr "%s metapodatak" + +#~ msgid "Sa_ve and Close" +#~ msgstr "Sp_remi i zatvori" + +#~ msgid "%s Tags" +#~ msgstr "%s oznaka" + +#~ msgid "Assign Tags" +#~ msgstr "Dodijeli oznake" + +#~ msgid "Slideshow" +#~ msgstr "Prezentacija" + +#~ msgid "Playing slideshow" +#~ msgstr "Reprodukcija prezentacije" + +#~ msgid "View images as a slideshow." +#~ msgstr "Prikaži slike kao prezentaciju." + +#~ msgid "New _Window" +#~ msgstr "Novi _prozor" + +#~ msgid "_About" +#~ msgstr "_O programu" + #~ msgid "gthumb" #~ msgstr "gthumb" @@ -5343,9 +5779,6 @@ #~ msgid "Extension example." #~ msgstr "Primjer proširenja." -#~ msgid "Bytes" -#~ msgstr "Bajtova" - #~ msgid "Date" #~ msgstr "Datum" @@ -5511,9 +5944,6 @@ #~ msgid "Preserve l_uminosity" #~ msgstr "Očuvaj _sjaj" -#~ msgid "Scale Image" -#~ msgstr "Promjena veličina slike" - #~ msgid "Width:" #~ msgstr "Širina:" @@ -5719,15 +6149,9 @@ #~ msgid "Activate items with a single click" #~ msgstr "Aktiviraj stavke jednostrukim klikom" -#~ msgid "Black" -#~ msgstr "Crna" - #~ msgid "C_lick policy:" #~ msgstr "P_ravila klikanja:" -#~ msgid "Checked" -#~ msgstr "Odabrano" - #~ msgid "Co_mments" #~ msgstr "Ko_mentari" @@ -5783,9 +6207,6 @@ #~ msgid "Use a _fading effect when changing image" #~ msgstr "Koristi _efekt isčezavanja prilikom promjene slike" -#~ msgid "White" -#~ msgstr "Bijela" - #~ msgid "_Filenames" #~ msgstr "_Nazivi datoteka" @@ -5874,15 +6295,9 @@ #~ msgid "Actual Size" #~ msgstr "Trenutna veličina" -#~ msgid "Zoom In" -#~ msgstr "Uvećaj" - #~ msgid "Zoom Out" #~ msgstr "Smanji" -#~ msgid "Zoom to Fit" -#~ msgstr "Uvećaj da pristaje" - #~ msgid "Search criteria" #~ msgstr "Mjerilo pretrage" @@ -6247,9 +6662,6 @@ #~ msgid "Cannot remove catalog \"%s\": %s" #~ msgstr "Nemoguće uklanjanje kataloga \"%s\": %s" -#~ msgid "No image" -#~ msgstr "Nema slike" - #~ msgid "Ro_tate Images" #~ msgstr "Za_kreni slike" @@ -6409,9 +6821,6 @@ #~ msgid "_Edit" #~ msgstr "_Uredi" -#~ msgid "Show/_Hide" -#~ msgstr "Prikaži/_Sakrij" - #~ msgid "S_ort Images" #~ msgstr "_Poredaj slike" @@ -6520,9 +6929,6 @@ #~ msgid "Move current catalog to another location" #~ msgstr "Premjesti trenutni katalog na drugu lokaciju" -#~ msgid "Open the selected folder in a new window" -#~ msgstr "Otvori odabranu mapu u novom prozoru" - #~ msgid "Open the selected folder with the Nautilus file manager" #~ msgstr "Otvori odabranu mapu s Nautilus datotečnim upraviteljem" @@ -6550,9 +6956,6 @@ #~ msgid "Move the current folder to the Trash" #~ msgstr "Premjesti trenutnu mapu u smeće" -#~ msgid "Copy current folder" -#~ msgstr "Kopiraj trenutnu mapu" - #~ msgid "Assign categories to the current folder" #~ msgstr "Dodijeli kategorije trenutnoj mapi" @@ -6565,9 +6968,6 @@ #~ msgid "Go up one level" #~ msgstr "Idi jednu razinu iznad" -#~ msgid "Reload the current location" -#~ msgstr "Učitaj ponovno trenutnu lokaciju" - #~ msgid "Stop loading current location" #~ msgstr "Zaustavi učitavanje trenutne lokacije" @@ -6619,9 +7019,6 @@ #~ msgid "View or hide the toolbar of this window" #~ msgstr "Prikaži ili sakrij alatnu traku ovog prozora" -#~ msgid "_Statusbar" -#~ msgstr "_Statusna traka" - #~ msgid "View or hide the statusbar of this window" #~ msgstr "Prikaži ili sakrij statusnu traku ovog prozora" @@ -6634,9 +7031,6 @@ #~ msgid "_Image Preview" #~ msgstr "_Pregled slike" -#~ msgid "Show hidden files and folders" -#~ msgstr "Prikaži skrivene datoteke i mape" - #~ msgid "_Reversed Order" #~ msgstr "_Obrnuti poredak" @@ -6766,15 +7160,9 @@ #~ msgid "Open selected images with an application" #~ msgstr "Otvori odabrane slike s aplikacijom" -#~ msgid "Close this window" -#~ msgstr "Zatvori ovaj prozor" - #~ msgid "_Open With..." #~ msgstr "_Otvorite s..." -#~ msgid "Revert to saved image" -#~ msgstr "Vrati na spremljenu sliku" - #~ msgid "Print..." #~ msgstr "Ispis…" @@ -6865,12 +7253,6 @@ #~ msgid "In" #~ msgstr "Ulaz" -#~ msgid "Zoom in" -#~ msgstr "Uvećaj" - -#~ msgid "Zoom out" -#~ msgstr "Umanji" - #~ msgid "1:1" #~ msgstr "1:1" @@ -6883,9 +7265,6 @@ #~ msgid "Zoom to fit window" #~ msgstr "Prilagodi prema prozoru" -#~ msgid "Zoom to fit width" -#~ msgstr "Prilagodi prema širini" - #~ msgid "Step A_nimation" #~ msgstr "Zakorači u a_nimaciju" diff -Nru gthumb-3.8.3/po/hu.po gthumb-3.9.1/po/hu.po --- gthumb-3.8.3/po/hu.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/hu.po 2020-03-07 19:03:13.600286200 +0000 @@ -1,24 +1,24 @@ # Hungarian translation for gthumb. -# Copyright (C) 2003, 2004, 2005, 2007, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004, 2005, 2007, 2009, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020 Free Software Foundation, Inc. # This file is distributed under the same license as the gthumb package. # # Andras Timar , 2003, 2004. # Laszlo Dvornik , 2004. # Gabor Kelemen , 2005, 2007, 2009, 2011, 2012. -# Balázs Úr , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019. +# Balázs Úr , 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020. msgid "" msgstr "" "Project-Id-Version: gthumb master\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-01-10 18:17+0000\n" -"PO-Revision-Date: 2019-01-28 23:03+0100\n" -"Last-Translator: Balázs Úr \n" +"POT-Creation-Date: 2020-03-01 11:35+0000\n" +"PO-Revision-Date: 2020-03-01 15:30+0100\n" +"Last-Translator: Balázs Úr \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Lokalize 1.2\n" +"X-Generator: Lokalize 19.04.3\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 @@ -131,19 +131,13 @@ msgid "Import the photos on your camera card" msgstr "Fényképek importálása a fényképezőgép kártyájáról" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Képmegjelenítő" @@ -158,69 +152,70 @@ msgid "Caption" msgstr "Felirat" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Viselkedés" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "Fájlok megnyitása _egy kattintással" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "Fájlok megnyitása _dupla kattintással" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "Fájlok megnyitása _teljes képernyős módban" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Egyéb" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "Bélyegképek _mérete:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "Kép_típus meghatározása a tartalom alapján (lassabb)" @@ -232,20 +227,34 @@ msgid "More extensions…" msgstr "Több kiterjesztés…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Előző" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Következő" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "Szűrő _neve:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "I_lleszkedés:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Szabályok:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "K_orlát" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "kijelölve" @@ -291,40 +300,40 @@ msgid "Old File:" msgstr "Régi fájl:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Fájlnév:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Méret:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Módosítva:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Új fájl:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "A régi fájl fe_lülírása" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "Ne írja felül a _régi fájlokat" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "_Minden fájl felülírása" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_Ne írjon felül semmilyen fájlt" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "Új fájl _mentése másként:" @@ -348,70 +357,76 @@ msgid "gThumb Preferences" msgstr "A gThumb beállításai" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Megjelenés" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "_Bélyegképek a megjelenítőben:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "alul" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "oldalt" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "Fájlt_ulajdonságok a böngészőben:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Induláskor:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "_Ugrás az utoljára meglátogatott helyre" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "U_grás a következő mappába:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Kezdőmappa kiválasztása" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "_Beállítás a jelenlegire" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "Az aktív ablak újra_hasznosítása fájlok megnyitásához" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "_Megerősítés kérése fájlok vagy katalógusok törlésekor" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "_Rákérdezés, hogy mentse-e a módosított fájlokat" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "Metaadatok _tárolása a fájlokon belül, ha lehetséges" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Általános" +#: data/ui/shortcuts-preferences.ui:27 +#| msgid "Sh_ortcut:" +msgid "Shortcuts:" +msgstr "Gyorsbillentyűk:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "Összes _helyreállítása…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "_Fordított sorrend" @@ -425,7 +440,7 @@ msgstr "Képek feltöltése a 23hq.com oldalra" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Könyvjelzők" @@ -442,7 +457,7 @@ msgid "_Edit Bookmarks…" msgstr "Könyvjelzők s_zerkesztése…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "_Rendszerkönyvjelzők" @@ -456,6 +471,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Eltávolítás" @@ -507,15 +523,15 @@ msgid "Source" msgstr "Forrás" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Lemezre írás" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Folytatás" @@ -524,7 +540,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Hiba a JPEG képfájl értelmezésekor: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Ismeretlen JPEG színtér (%d)" @@ -637,64 +653,62 @@ #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Mentés" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Nincs név megadva" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Érvénytelen név. A következő karakterek nem engedélyezettek: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "A név már használatban van" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 msgid "New catalog" msgstr "Új katalógus" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Adja meg a katalógus nevét:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "_Létrehozás" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 msgid "New library" msgstr "Új gyűjtemény" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Adja meg a gyűjtemény nevét:" @@ -711,7 +725,7 @@ msgid "Add to Catalog…" msgstr "Hozzáadás katalógushoz…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Mappa megnyitása" @@ -727,40 +741,40 @@ msgid "Create Library" msgstr "Gyűjtemény létrehozása" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Átnevezés" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Tulajdonságok" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:911 extensions/catalogs/gth-catalog.c:912 msgid "Catalogs" msgstr "Katalógusok" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Parancssor" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Katalógus tulajdonságai" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Rendszerezés" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Fájlok automatikus rendezése dátum szerint" @@ -772,32 +786,35 @@ msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Hozzáadás katalógushoz" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "_Hozzáadás és bezárás" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "_Katalógusok:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "Ú_j katalógus" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Új _gyűjtemény" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +#| msgid "New _Library" +msgid "New Library" +msgstr "Új gyűjtemény" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +#| msgid "_New Catalog" +msgid "New Catalog" +msgstr "Új katalógus" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "A cél _megjelenítése" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +#| msgid "Keep the original format" +msgid "_Keep the dialog open" +msgstr "A párbeszédablak _nyitva tartása" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -851,7 +868,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "_Almappákban is" @@ -867,26 +884,33 @@ msgid "Singles" msgstr "Egyetlen" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Nem sikerült a fájlokat hozzáadni a katalógushoz" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Nem sikerült létrehozni a katalógust" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Hozzáadás katalógushoz" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Hozzáadás" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Nem sikerült elmenteni a katalógust" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Nem sikerült betölteni a katalógust" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Fájlok rendszerezése" @@ -898,75 +922,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Fényképkészítés dátuma" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Fájlmódosítás dátuma" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Címke" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Címke (beágyazott)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Érvénytelen fájlformátum" + +#: extensions/catalogs/gth-catalog.c:1013 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:64 msgid "Tags" msgstr "Címkék" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "A(z) „%s” katalógus már létezik, szeretné felülírni?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "A(z) „%s” gyűjtemény már létezik, szeretné felülírni?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "F_elülírás" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Nem sikerült áthelyezni a fájlokat" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Nem sikerült átmásolni a fájlokat" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Érvénytelen cél." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Fájlok másolása ide: „%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Nem sikerült eltávolítani a fájlokat a katalógusból" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:871 -#: extensions/exiv2_tools/exiv2-utils.cpp:880 -#: extensions/exiv2_tools/exiv2-utils.cpp:910 -#: extensions/exiv2_tools/exiv2-utils.cpp:1441 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Érvénytelen fájlformátum" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1066,20 +1092,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Beállítások" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Megjegyzés" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:61 msgid "Title" msgstr "Cím" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1089,21 +1119,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:63 msgid "Description" msgstr "Leírás" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:62 msgid "Place" msgstr "Hely" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Megjegyzés dátuma és ideje" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:65 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Értékelés" @@ -1117,7 +1147,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:707 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Partner munkalap" @@ -1129,9 +1159,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Nincs" @@ -1203,7 +1233,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1218,7 +1248,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1226,7 +1256,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Felirat:" @@ -1381,13 +1411,13 @@ msgid "Thumbnails" msgstr "Bélyegképek" -#: extensions/contact_sheet/dlg-contact-sheet.c:488 -#: extensions/contact_sheet/dlg-contact-sheet.c:499 -#: extensions/contact_sheet/dlg-contact-sheet.c:513 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Nem sikerült elmenteni a témát" -#: extensions/contact_sheet/dlg-contact-sheet.c:658 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Nem sikerült törölni a témát" @@ -1395,11 +1425,11 @@ msgid "Image Wall" msgstr "Képfal" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Képek létrehozása" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Bélyegképek előállítása" @@ -1462,7 +1492,7 @@ msgstr "Nem sikerült megjeleníteni az asztal hátterének tulajdonságait" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Beállítások" @@ -1505,6 +1535,16 @@ msgstr "Ha törli a metaadatokat, azok véglegesen elvesznek." #: extensions/edit_metadata/callbacks.c:45 +#| msgid "Edit Command" +msgid "Edit comment" +msgstr "Megjegyzés szerkesztése" + +#: extensions/edit_metadata/callbacks.c:46 +#| msgid "Edit template" +msgid "Edit tags" +msgstr "Címkék szerkesztése" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Metaadatok törlése" @@ -1535,8 +1575,8 @@ msgid "Could not save the file metadata" msgstr "Nem sikerült elmenteni a fájl metaadatait" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Nem olvashatók a fájl információia" @@ -1548,27 +1588,7 @@ msgid "Allow to edit files metadata." msgstr "Fájlok metaadatainak szerkesztésének engedélyezése." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "%s metaadatai" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d fájl" -msgstr[1] "%d fájl" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "Me_ntés és bezárás" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Csak a _változtatott mezők mentése" @@ -1597,16 +1617,6 @@ msgid "Do not modify" msgstr "Ne módosítsa" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "%s címkéi" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Címkék hozzárendelése" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1669,11 +1679,12 @@ msgid "State/Province:" msgstr "Állam/megye:" -#: extensions/exiv2_tools/exiv2-utils.cpp:42 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2051 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(érvénytelen érték)" -#: extensions/exiv2_tools/exiv2-utils.cpp:708 +#: extensions/exiv2_tools/exiv2-utils.cpp:713 msgid "Exposure" msgstr "Expozíció" @@ -1734,8 +1745,9 @@ msgstr "fényképkészítés dátuma" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Exportálás" +#| msgid "Export" +msgid "_Export To" +msgstr "_Exportálás ide" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1876,7 +1888,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1917,13 +1929,13 @@ msgid "Uploading “%s”" msgstr "„%s” feltöltése" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Fájlok feltöltése a kiszolgálóra" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1946,14 +1958,21 @@ msgstr "Adja meg a mappa nevét:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Nem sikerült végrehajtani a műveletet" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Nem sikerült áthelyezni a fájlokat" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1961,117 +1980,125 @@ "A fájlokat nem sikerült áthelyezni az aktuális helyre, alternatívaként " "átmásolhatja azokat." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Másolás" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Áthelyezés ide" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Másolás ide" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Áthelyezés" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Nem sikerült megnyitni a helyet" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Kivágás" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Beillesztés" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Másolás ide…" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Áthelyezés ide…" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Áthelyezés a Kukába" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Törlés" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Megnyitás a fájlkezelővel" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Mappa létrehozása" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Beillesztés mappába" -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Megkettőzés" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:129 +#| msgid "Delete Metadata" +msgid "Delete permanently" +msgstr "Végleges törlés" + +#: extensions/file_manager/callbacks.c:130 +#| msgid "Open _With" +msgid "Open with Gimp" +msgstr "Megnyitás a Gimp képszerkesztővel" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:235 msgid "Home Folder" msgstr "Saját mappa" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "Megnyitás _ezzel" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Szeretné áthelyezni ezt: „%s” ide: „%s”?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Szeretné átmásolni ezt: „%s” ide: „%s”?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Szeretné áthelyezni a behúzott fájlokat ide: „%s”?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Szeretné átmásolni a behúzott fájlokat ide: „%s”?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Másolás" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Nem sikerült végrehajtani a műveletet" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Fájlkezelő" @@ -2084,6 +2111,43 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +#| msgid "Adjust Contrast" +msgid "Adjust contrast" +msgstr "Kontraszt beállítása" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Megfordítás" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Tükrözés" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +#| msgid "Rotate Right" +msgid "Rotate right" +msgstr "Forgatás jobbra" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +#| msgid "Rotate Left" +msgid "Rotate left" +msgstr "Forgatás balra" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Levágás" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Átméretezés" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2146,9 +2210,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Beállítások" @@ -2185,7 +2249,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Méretarány" @@ -2223,7 +2287,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:47 msgid "Dimensions" msgstr "Méretek" @@ -2383,17 +2447,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2440,11 +2504,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Hisztogram kiegyenlítése lineáris függvény használatával" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Kontraszt beállítása" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Automatikus kontraszt beállítás" @@ -2457,74 +2521,74 @@ msgstr "Szín kiválasztása a képről" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Négyzet" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d × %d (kép)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d × %d (képernyő)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (DVD, könyv)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (képeslap)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1,85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2,39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2546,10 +2610,6 @@ msgid "Center Lines" msgstr "Középső vonalak" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Levágás" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Hozzáadás az alapbeállításokhoz" @@ -2560,8 +2620,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Nem sikerült elmenteni a fájlt" @@ -2577,69 +2637,65 @@ msgid "Adjust color curves" msgstr "Színgörbék beállítása" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Speciális hatások" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Melegebb" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Hidegebb" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Talaj" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Sivatag" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Sarkvidék" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mangó" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Friss kék" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Cseresznye" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Klasszikus" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Homályos élek" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Vignetta" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Megfordítás" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Kép tükrözése függőlegesen" @@ -2656,7 +2712,7 @@ msgid "_Average" msgstr "Átla_gos" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Szürkeárnyalatos" @@ -2664,10 +2720,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Tükrözés" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Kép tükrözése vízszintesen" @@ -2681,19 +2733,15 @@ msgstr "Újra" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Képek átméretezése" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Átméretezés" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Forgatás balra" @@ -2702,8 +2750,8 @@ msgstr "A kép forgatása 90 fokkal balra" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Forgatás jobbra" @@ -2716,12 +2764,12 @@ msgstr "Forgatás" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Mentés másként…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Mentés" @@ -2777,7 +2825,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Kezdés _itt:" @@ -2792,7 +2840,7 @@ msgstr "Azonosak keresése" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Keresés" @@ -2911,10 +2959,18 @@ msgstr "_Elrejtés a nyilvános keresés elől" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "_Megnyitás a böngészőben" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fájl" +msgstr[1] "%d fájl" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2928,7 +2984,7 @@ msgstr "Nincs album kiválasztva" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Importálás" @@ -2999,6 +3055,17 @@ msgid "Could not take a screenshot" msgstr "Nem sikerült képernyőképet készíteni" +#: extensions/gstreamer_tools/callbacks.c:32 +#| msgctxt "Filename" +#| msgid "Screenshot" +msgid "Screenshot" +msgstr "Képernyőkép" + +#: extensions/gstreamer_tools/callbacks.c:33 +#| msgid "Pause" +msgid "Play/Pause" +msgstr "Lejátszás vagy szüneteltetés" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Hardveres gyorsítás használata" @@ -3008,8 +3075,8 @@ msgstr "_Képernyőképek helye:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Lejátszás" @@ -3045,66 +3112,77 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Videó lejátszása" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Szünet" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Képernyőkép készítése" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Kép igazítása az ablakmérethez" + +#: extensions/gstreamer_tools/main.c:34 +#| msgid "Audio/Video support" +msgid "Audio/Video Player" +msgstr "Hang- vagy videolejátszó" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Videó" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Hang" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Előadó" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Album" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Bitsebesség" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Kódoló" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Kodek" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Képfrissítés" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Szélesség" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Magasság" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Csatornák" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Mintavételezési gyakoriság" @@ -3118,10 +3196,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 #: extensions/image_viewer/gth-metadata-provider-image.c:253 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3130,7 +3208,8 @@ msgid "Could not print the selected files" msgstr "Nem sikerült kinyomtatni a kijelölt fájlokat" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Nyomtatás" @@ -3188,19 +3267,19 @@ msgid "inches" msgstr "hüvelyk" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Betűkészletek" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Válassza ki a felirat betűkészletét" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Válassza ki a fejléc betűkészletét" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Válassza ki a lábléc betűkészletét" @@ -3222,7 +3301,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Nem érhető el megfelelő betöltő ehhez a fájltípushoz" @@ -3233,7 +3312,7 @@ msgstr "„%s” betöltése" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Képek betöltése" @@ -3249,18 +3328,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Forgatás fizikailag" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Az EXIF tájolás visszaállítása" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Képek mentése" @@ -3309,77 +3388,216 @@ msgid "_Accept distortion" msgstr "_Torzítás elfogadása" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +#| msgid "Zoom quality:" +msgid "Zoom in" +msgstr "Nagyítás" + +#: extensions/image_viewer/callbacks.c:33 +#| msgid "Zoom quality:" +msgid "Zoom out" +msgstr "Kicsinyítés" + +#: extensions/image_viewer/callbacks.c:34 +#| msgid "100%" +msgid "Zoom 100%" +msgstr "Nagyítás 100%-ra" + +#: extensions/image_viewer/callbacks.c:35 +#| msgid "200%" +msgid "Zoom 200%" +msgstr "Nagyítás 200%-ra" + +#: extensions/image_viewer/callbacks.c:36 +#| msgid "300%" +msgid "Zoom 300%" +msgstr "Nagyítás 300%-ra" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Ablakméretű nagyítás" + +#: extensions/image_viewer/callbacks.c:39 +#| msgid "Fit to width if larger" +msgid "Zoom to fit if larger" +msgstr "Ablakméretű nagyítás, ha nagyobb" + +#: extensions/image_viewer/callbacks.c:40 +#| msgid "Fit to width" +msgid "Zoom to fit width" +msgstr "Nagyítás az ablak szélességéhez" + +#: extensions/image_viewer/callbacks.c:41 +#| msgid "Fit to width if larger" +msgid "Zoom to fit width if larger" +msgstr "Nagyítás az ablak szélességéhez, ha nagyobb" + +#: extensions/image_viewer/callbacks.c:42 +#| msgid "Fit to height" +msgid "Zoom to fit height" +msgstr "Nagyítás az ablak magasságához" + +#: extensions/image_viewer/callbacks.c:43 +#| msgid "Fit to width if larger" +msgid "Zoom to fit height if larger" +msgstr "Nagyítás az ablak magasságához, ha nagyobb" + +#: extensions/image_viewer/callbacks.c:45 +#| msgid "Undo" +msgid "Undo edit" +msgstr "Szerkesztés visszavonása" + +#: extensions/image_viewer/callbacks.c:46 +#| msgid "Redo" +msgid "Redo edit" +msgstr "Szerkesztés ismétlése" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Görgetés balra" + +#: extensions/image_viewer/callbacks.c:49 +#| msgid "Slide from right" +msgid "Scroll right" +msgstr "Görgetés jobbra" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Görgetés fel" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Görgetés le" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Görgetés balra gyorsan" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Görgetés jobbra gyorsan" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Görgetés fel gyorsan" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Görgetés le gyorsan" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Görgetés középre" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "A kép betöltése után:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Beállítás a tényleges mérethez" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Előző nagyítás megtartása" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Kép igazítása az ablakmérethez" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Kép igazítása az ablakmérethez, ha nagyobb" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Szélességhez igazítás" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Kép igazítása a szélességhez, ha nagyobb" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Görgetősáv-pozíciók visszaállítása" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Egérgörgő művelete:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +#| msgid "Change date" +msgctxt "zoom quality" +msgid "Change image" +msgstr "Kép megváltoztatása" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +#| msgid "Copy Image" +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Kép nagyítása" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Nagyítás minősége:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Magas" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Alacsony" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +#| msgid "_Transparent" +msgid "Transparency:" +msgstr "Átlátszóság:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +#| msgid "Centered" +msgid "Checkered" +msgstr "Kockás" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Fehér" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +#| msgid "Grayscale" +msgid "Gray" +msgstr "Szürke" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Fekete" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automatikus" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Magassághoz igazítás" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3387,31 +3605,47 @@ msgid "Histogram" msgstr "Hisztogram" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Kép másolása" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Kép beillesztése" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "A beágyazott színprofil alkalmazása" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Következő képkocka" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +#| msgid "_Transparent" +msgid "Transparency" +msgstr "Átlátszóság" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Kép mentése" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Az eredeti kép betöltése" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +#| msgid "All Images" +msgid "Scroll Image" +msgstr "Kép görgetése" + +#: extensions/image_viewer/main.c:37 +#| msgid "Image print" +msgid "Image Editor" +msgstr "Képszerkesztő" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Megjelenítő" @@ -3483,38 +3717,38 @@ msgid "custom format" msgstr "egyéni formátum" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Fájlok importálása" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Nem került fájl importálásra" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "A kiválasztott fájlok már szerepelnek a célban." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:683 msgid "Could not delete the files" msgstr "Nem sikerült törölni a fájlokat" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "A törlés művelet nem támogatott." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Utoljára importálva" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Nincs megadva fájl." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3523,7 +3757,8 @@ "Nincs elég szabad hely itt: „%s”.\n" "%s hely szükséges, de csak %s érhető el." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Eszközök" @@ -3611,49 +3846,54 @@ msgid "Quote the text " msgstr "Idézőjelezze a szöveget" -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +#| msgid "The current date" +msgid "The current date and time" +msgstr "A jelenlegi dátum és idő" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "_Parancs:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Személyre szabás…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Parancsfájl" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Gyorsbillentyű" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Megjelenítés" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Nem sikerült elmenteni a parancsfájlt" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Új parancs" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Parancs szerkesztése" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Biztosan törölni szeretné a kijelölt parancsot?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Parancsok" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Nincs parancs megadva" @@ -3663,18 +3903,18 @@ msgid "Command exited abnormally with status %d" msgstr "A parancs abnormálisan lépett ki %d állapottal" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Írjon be egy értéket:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Hibás formátumú parancs" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Kihagyás" @@ -3724,7 +3964,7 @@ msgstr "F_iókok:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Betöltés…" @@ -3761,7 +4001,7 @@ msgstr "Fiókinformációk lekérése" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Válasszon mappát" @@ -3825,11 +4065,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Üres)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Mappatartalom lekérdezése…" @@ -3837,11 +4077,11 @@ msgid "Empty" msgstr "Üres" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Importálás eltávolítható eszközről" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Importálás mappából" @@ -3958,6 +4198,7 @@ msgstr "B_etűfajta:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Súgó" @@ -4054,28 +4295,28 @@ msgid "Edit Template" msgstr "Sablon szerkesztése" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "Át_nevezés" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Régi név" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Új név" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Eredeti betűfajta megtartása" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Átalakítás kisbetűsre" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Átalakítás nagybetűsre" @@ -4112,15 +4353,15 @@ msgstr "_Eredeti méretarány megtartása" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:46 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Formátum" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Képek átméretezése" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Az eredeti formátum megtartása" @@ -4132,8 +4373,8 @@ msgid "Resize series of images." msgstr "Képek sorozatának átméretezése." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Nem sikerült végrehajtani a keresést" @@ -4141,48 +4382,49 @@ msgid "Search Result" msgstr "Keresés eredménye" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Keresés" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Fájlok keresése" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Keresés újra" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Keresés" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Szabályok:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "az alábbi összes szabály" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "bármelyik az alábbi szabályok közül" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +#| msgid "Could not open the location" +msgid "Add another location" +msgstr "Másik hely hozzáadása" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Mostanáig megtalált fájlok: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Keresés…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "A művelet megszakítása" @@ -4194,16 +4436,35 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +#| msgid "Advanced file selection." +msgid "Add to selection" +msgstr "Hozzáadás a kijelöléshez" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +#| msgid "Remove from Selection" +msgid "Remove from selection" +msgstr "Eltávolítás a kijelölésből" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +#| msgid "Show selection %d" +msgid "Show selection" +msgstr "Kijelölés megjelenítése" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Eltávolítás a kijelölésből" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "%d. kijelölés megjelenítése" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4217,6 +4478,7 @@ msgstr "%d. kijelölés" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Kijelölések" @@ -4229,52 +4491,73 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Bemutató" +#: extensions/slideshow/callbacks.c:40 +#| msgid "Presentation" +msgid "Start presentation" +msgstr "Bemutató indítása" + +#: extensions/slideshow/callbacks.c:41 +#| msgid "x-office-presentation" +msgid "Terminate presentation" +msgstr "Bemutató befejezése" + +#: extensions/slideshow/callbacks.c:42 +#| msgid "Presentation" +msgid "Pause/Resume presentation" +msgstr "Bemutató szüneteltetése vagy folytatása" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Következő fájl megjelenítése" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +#| msgid "View the previous image" +msgid "Show previous file" +msgstr "Előző fájl megjelenítése" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Diavetítés" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Bemutató" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Személyre szabás" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "Á_tmeneti hatás:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Váltás automatikusan minden" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "másodperc" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "Új_rakezdés, ha befejezte" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "_Véletlen sorrend" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Lejátszólista" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Fájlok hozzáadása a lejátszólistához" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "A kijelölt fájlok eltávolítása" @@ -4290,50 +4573,69 @@ msgid "Random" msgstr "Véletlenszerű" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Diavetítés indítása" +#: extensions/slideshow/gth-slideshow.c:237 +#| msgid "Presentation" +msgid "Playing a presentation" +msgstr "Bemutató lejátszása" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Eltolás jobbról" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Eltolás lentről" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Csúsztatás jobbról" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Csúsztatás lentről" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Előtűnés" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Oldal fordítása" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Kocka jobbról" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Kocka lentről" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Képek megtekintése diavetítésként." +msgid "Play a presentation of images." +msgstr "Képek bemutatójának lejátszása." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminál" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +#| msgid "Open in New Window" +msgid "Open in Terminal" +msgstr "Megnyitás terminálban" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +msgid "Open a folder in a terminal" +msgstr "Egy mappa megnyitása egy terminálban" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" msgstr "_Webalbum…" @@ -4355,14 +4657,6 @@ msgid "Index" msgstr "Index" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Következő" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Előző" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4446,36 +4740,36 @@ msgid "Web Album" msgstr "Webalbum" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Nem sikerült megjeleníteni a célt" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "Az album sikeresen létrejött." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Bélyegképek mentése" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "HTML-oldalak mentése: képek" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "HTML-oldalak mentése: mutatók" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Eredeti képek másolása" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Nem sikerült megtalálni a stílusmappát" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Nem sikerült létrehozni egy átmeneti könyvtárat" @@ -4487,9 +4781,9 @@ msgid "Create static web albums." msgstr "Statikus webalbumok létrehozása." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "Nem sikerült betölteni a(z) „%s” pozíciót" @@ -4520,20 +4814,27 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Böngésző" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +#| msgid "All" +msgctxt "Extensions" msgid "All" -msgstr "Minden" +msgstr "Összes" #: gthumb/dlg-preferences-extensions.c:62 +#| msgid "Enabled" +msgctxt "Extensions" msgid "Enabled" msgstr "Engedélyezve" #: gthumb/dlg-preferences-extensions.c:63 +#| msgid "Disabled" +msgctxt "Extensions" msgid "Disabled" -msgstr "Tiltva" +msgstr "Letiltva" #: gthumb/dlg-preferences-extensions.c:66 msgid "Viewers" @@ -4569,65 +4870,103 @@ msgstr "Nem sikerült kikapcsolni a kiterjesztést" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" +#| msgid "gthumb development team" +msgid "gThumb Development Team" msgstr "A gthumb fejlesztőcsapata" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Kiterjesztések" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Újraindítás szükséges" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "A változások életbe lépéséhez a gthumb újraindítása szükséges" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "Új_raindítás" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Visszaállítás" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "" +"Vissza szeretné állítani az összes változtatást és az alapértelmezett" +" gyorsbillentyűket használni?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +#| msgid "All" +msgctxt "Shortcuts" +msgid "All" +msgstr "Összes" + +#: gthumb/dlg-preferences-shortcuts.c:547 +#| msgid "Modified" +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Módosítva" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +#| msgid "Shortcut" +msgid "Shortcuts" +msgstr "Gyorsbillentyűk" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Rendezés" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s / %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "„%s” áthelyezése ide: „%s”" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "„%s” másolása ide: „%s”" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Fájlok áthelyezése" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Fájlok másolása" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Fájlinformációk lekérése" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Fájlok törlése" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Fájlok áthelyezése a Kukába" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2027 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4639,17 +4978,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2036 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Nyomja meg a gyorsbillentyűként használandó billentyűkombinációt." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Nyomja meg az Esc billentyűt a megszakításhoz" @@ -4662,8 +5001,9 @@ msgstr "Indítás teljes képernyős módban" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Diavetítés automatikus indítása" +#| msgid "Automatically start a slideshow" +msgid "Automatically start a presentation" +msgstr "Bemutató automatikus indítása" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4673,11 +5013,11 @@ msgid "Show version" msgstr "Verzió megjelenítése" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Képböngésző és -megjelenítő" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4688,7 +5028,7 @@ "Foundation által kiadott GNU General Public License dokumentumában leírtak " "szerint; akár a licenc 2-es, akár (tetszőleges) későbbi változata szerint." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4700,7 +5040,7 @@ "alkalmas-e a KÖZREADÁSRA vagy EGY BIZONYOS FELADAT ELVÉGZÉSÉRE. További " "részletekért tanulmányozza a GNU GPL licencet." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4708,11 +5048,11 @@ "A gThumb programmal együtt meg kell kapnia a GNU General Public License egy " "példányát; ha mégsem, akkor itt megtekintheti: http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "Képmegjelenítő és képböngésző a GNOME-hoz." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Dvornik László \n" @@ -4720,108 +5060,200 @@ "Tímár András \n" "Úr Balázs " -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Új ablak" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Gyorsbillentyűk" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "_Súgó" +#: gthumb/gth-browser-actions-entries.h:96 +#| msgid "_Quit" +msgid "Quit" +msgstr "Kilépés" + +#: gthumb/gth-browser-actions-entries.h:99 +#| msgid "Browser" +msgid "Show browser" +msgstr "Böngésző megjelenítése" + +#: gthumb/gth-browser-actions-entries.h:100 +#| msgid "Fit to window" +msgid "Close window" +msgstr "Ablak bezárása" + +#: gthumb/gth-browser-actions-entries.h:102 +#| msgid "Open Location…" +msgid "Open location" +msgstr "Hely megnyitása" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Teljes képernyő" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "A gThumb _névjegye" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Kép visszaállítása a mentettre" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Oldalsáv" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Állapotsáv" + +#: gthumb/gth-browser-actions-entries.h:107 +#| msgid "Thumbnails" +msgid "Thumbnails list" +msgstr "Bélyegképek lista" + +#: gthumb/gth-browser-actions-entries.h:109 +#| msgid "Go to the previous visited location" +msgid "Load previous location" +msgstr "Előző hely betöltése" + +#: gthumb/gth-browser-actions-entries.h:110 +#| msgid "Could not open the location" +msgid "Load next location" +msgstr "Következő hely betöltése" + +#: gthumb/gth-browser-actions-entries.h:111 +#| msgid "The parent folder path" +msgid "Load parent folder" +msgstr "Szülőmappa betöltése" + +#: gthumb/gth-browser-actions-entries.h:112 +#| msgid "Loading images" +msgid "Load home" +msgstr "Saját mappa betöltése" + +#: gthumb/gth-browser-actions-entries.h:113 +#| msgid "Resolution" +msgid "Reload location" +msgstr "Hely újratöltése" + +#: gthumb/gth-browser-actions-entries.h:114 +#| msgid "Hidden Files" +msgid "Show/Hide hidden files" +msgstr "Rejtett fájlok megjelenítése vagy elrejtése" + +#: gthumb/gth-browser-actions-entries.h:115 +#| msgid "no sorting" +msgid "Change sorting order" +msgstr "Rendezési sorrend megváltoztatása" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Első fájl megjelenítése" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Utolsó fájl megjelenítése" + +#: gthumb/gth-browser-actions-entries.h:122 +#| msgid "Images" +msgid "Image tools" +msgstr "Képeszközök" + +#: gthumb/gth-browser-actions-entries.h:123 +#| msgid "Properties" +msgid "File properties" +msgstr "Fájltulajdonságok" + +#: gthumb/gth-browser-actions-entries.h:125 +#| msgid "Select All" +msgid "Select all" +msgstr "Összes kijelölése" + +#: gthumb/gth-browser-actions-entries.h:126 +#| msgid "Select None" +msgid "Select none" +msgstr "Kijelölés megszüntetése" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[módosítva]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d fájl kijelölve (%s)" msgstr[1] "%d fájl kijelölve (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s szabad hely" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Nem található megfelelő modul ehhez: %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Menti a módosításokat a(z) „%s” fájlba?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "Ha nem menti, a fájl módosításai azonnal elvesznek." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "_Ne mentse" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Elfogadás" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Bezárás" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Nem sikerült megváltoztatni a nevet" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Módosítva" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Ugrás az előző meglátogatott helyre" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Ugrás a következő meglátogatott helyre" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Előzmények" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "A mappák megtekintése" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Fájl szerkesztése" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Teljes képernyő" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "A fájltípus nem támogatott" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Nem található megfelelő modul" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Fájlok törlése" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4840,27 +5272,27 @@ msgid "_Show Format Options" msgstr "Formátumbeállítások _megjelenítése" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:228 msgid "Computer" msgstr "Számítógép" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:787 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "" "A fájlokat nem sikerült áthelyezni a Kukába. Szeretné véglegesen törölni azt?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:798 msgid "Could not move the files to the Trash" msgstr "Nem sikerült áthelyezni a fájlokat a Kukába" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:843 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Biztosan véglegesen törölni akarja a következőt: „%s”?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:846 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4868,7 +5300,7 @@ msgstr[0] "Biztos benne, hogy véglegesen törli a kiválasztott %d fájlt?" msgstr[1] "Biztos benne, hogy véglegesen törli a kiválasztott %d fájlt?" -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:856 msgid "If you delete a file, it will be permanently lost." msgstr "Ha törli a fájlt, az véglegesen elvész." @@ -4905,11 +5337,15 @@ msgid "No limit specified" msgstr "Nincs korlát meghatározva" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Minden" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Szülő megnyitása)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Adja meg az új nevet:" @@ -4939,72 +5375,90 @@ msgid "Reading file information" msgstr "Fájlinformációk olvasása" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Rejtett fájlok" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:45 +msgid "Location" +msgstr "Hely" + +#: gthumb/gth-location-chooser.c:572 +#| msgid "Location" +msgid "Locations" +msgstr "Helyek" + +#: gthumb/gth-location-chooser.c:617 +#| msgid "Other" +msgid "Other…" +msgstr "Egyéb…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Méret" #: gthumb/gth-main-default-metadata.c:41 +msgid "Bytes" +msgstr "Bájt" + +#: gthumb/gth-main-default-metadata.c:42 msgctxt "the file mtime" msgid "Modified Date & Time" msgstr "Módosított dátum és idő" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:43 msgid "Type" msgstr "Típus" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Hely" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:48 msgid "Duration" msgstr "Időtartam" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:50 msgid "Exposure Settings" msgstr "Expozíció beállítások" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:51 msgid "Aperture" msgstr "Apertúra" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:52 msgid "ISO Speed" msgstr "ISO sebesség" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:53 msgid "Exposure Time" msgstr "Expozíciós idő" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:54 msgid "Shutter Speed" msgstr "Zársebesség" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:55 msgid "Focal Length" msgstr "Fókusztávolság" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:56 msgid "Flash" msgstr "Vaku" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:57 msgid "Camera Model" msgstr "Fényképezőgép-típus" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:58 msgid "Color Profile" msgstr "Színprofil" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:60 msgid "General Date & Time" msgstr "Általános dátum és idő" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:67 msgid "Author" msgstr "Szerző" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:68 msgid "Copyright" msgstr "Szerzői jog" @@ -5036,43 +5490,58 @@ msgid "aspect ratio" msgstr "méretarány" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Minden fájl" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Minden kép" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "JPEG képek" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Nyers fényképek" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Média" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Szövegfájlok" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Fájlnév" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Cím (beágyazott)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Leírás (beágyazott)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +#| msgid "Show" +msgid "Show/Hide" +msgstr "Megjelenítés vagy elrejtés" + +#: gthumb/gth-main-default-types.c:40 +#| msgid "Organization:" +msgid "Navigation" +msgstr "Navigáció" + +#: gthumb/gth-main-default-types.c:41 +#| msgid "File manager" +msgid "File Manager" +msgstr "Fájlkezelő" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Felülírás" @@ -5168,8 +5637,8 @@ msgstr "kisebb mint vagy egyenlő" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "A teszt meghatározása nem teljes" @@ -5240,31 +5709,56 @@ msgid "Rotation" msgstr "Forgatás" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Fájlok áthelyezése a Kukába" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"A(z) „%s” billentyűkombináció már hozzá van rendelve ehhez a művelethez: „" +"%s”. Szeretné inkább ehhez a művelethez újra hozzárendelni?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Újra hozzárendelés" -#: gthumb/gtk-utils.c:338 +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"A(z) „%s” billentyűkombináció már hozzá van rendelve a(z) „%s” művelethez, és" +" nem változtatható meg." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "" +"A(z) „%s” billentyűkombináció már hozzá van rendelve, és nem változtatható" +" meg." + +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Nem sikerült megjeleníteni a súgót" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "Nem sikerült elindítani az alkalmazást" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "_Másolás ide" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "Á_thelyezés ide" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "_Linkelés ide" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Mégse" @@ -5272,6 +5766,10 @@ msgid "_Cancel" msgstr "_Mégse" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "_Súgó" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "Ú_j" @@ -5296,43 +5794,22 @@ msgid "_Upload" msgstr "_Feltöltés" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Új _ablak" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_Névjegy" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Kilépés" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Megnyitás új ablakban" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Új ablak" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Hely megnyitása…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Visszaállítás" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Rendezés…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Rejtett fájlok" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "A gThumb _névjegye" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "Előzmények _törlése" - diff -Nru gthumb-3.8.3/po/ja.po gthumb-3.9.1/po/ja.po --- gthumb-3.8.3/po/ja.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/ja.po 2020-03-07 19:03:13.603619300 +0000 @@ -1,163 +1,97 @@ # gthumb ja.po. -# Copyright (C) 2001-2007,2009-2012 Free Software Foundation, Inc. -# Takeshi AIHANA , 2001-2007,2009-2011. -# Jiro Matsuzawa , 2012 -# Ritsuko Sato , 2012 +# Copyright (C) 2001-2013, 2020 Free Software Foundation, Inc. +# Takeshi AIHANA , 2001-2007, 2009-2011. +# Jiro Matsuzawa , 2012-2013. +# Ritsuko Sato , 2012. +# OKANO Takayoshi , 2012. +# sicklylife , 2020. # msgid "" msgstr "" "Project-Id-Version: gthumb master\n" -"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?" -"product=gthumb&keywords=I18N+L10N&component=general\n" -"POT-Creation-Date: 2012-04-17 12:12+0000\n" -"PO-Revision-Date: 2012-04-17 22:03+0900\n" -"Last-Translator: OKANO Takayoshi \n" +"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-02 23:00+0900\n" +"Last-Translator: sicklylife \n" "Language-Team: Japanese \n" +"Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: ja\n" "Plural-Forms: nplurals=1; plural=0;\n" -#: ../copy-n-paste/eggdesktopfile.c:165 -#, c-format -msgid "File is not a valid .desktop file" -msgstr "妥当な .desktop ファイルではありません" - -#. translators: 'Version' is from a desktop file, and -#. * should not be translated. '%s' would probably be a -#. * version number. -#: ../copy-n-paste/eggdesktopfile.c:191 -#, c-format -msgid "Unrecognized desktop file Version '%s'" -msgstr "バージョン '%s' の .desktop ファイルはサポートしていません" - -#: ../copy-n-paste/eggdesktopfile.c:974 -#, c-format -msgid "Starting %s" -msgstr "%sの起動中です" - -#: ../copy-n-paste/eggdesktopfile.c:1116 -#, c-format -msgid "Application does not accept documents on command line" -msgstr "コマンドラインからドキュメントにはアクセスできません" - -#: ../copy-n-paste/eggdesktopfile.c:1184 -#, c-format -msgid "Unrecognized launch option: %d" -msgstr "不明な起動オプションです: %d" - -#. translators: The 'Type=Link' string is found in a -#. * desktop file, and should not be translated. -#: ../copy-n-paste/eggdesktopfile.c:1391 -#, c-format -msgid "Can't pass document URIs to a 'Type=Link' desktop entry" -msgstr "ドキュメントの URI を 'Type=Link' のデスクトップの要素には渡せません" - -#: ../copy-n-paste/eggdesktopfile.c:1412 -#, c-format -msgid "Not a launchable item" -msgstr "起動可能なアイテムではありません" - -#: ../copy-n-paste/eggsmclient.c:226 -msgid "Disable connection to session manager" -msgstr "セッションマネージャーに接続しない" - -#: ../copy-n-paste/eggsmclient.c:229 -msgid "Specify file containing saved configuration" -msgstr "設定を保存したファイルを指定する" - -#: ../copy-n-paste/eggsmclient.c:229 -msgid "FILE" -msgstr "FILE" - -#: ../copy-n-paste/eggsmclient.c:232 -msgid "Specify session management ID" -msgstr "セッション管理の ID を指定する" - -#: ../copy-n-paste/eggsmclient.c:232 -msgid "ID" -msgstr "ID" - -#: ../copy-n-paste/eggsmclient.c:253 -msgid "Session management options:" -msgstr "セッション管理のオプション:" - -#: ../copy-n-paste/eggsmclient.c:254 -msgid "Show session management options" -msgstr "セッション管理のオプションを表示する" - -#. manually set name and icon -#: ../data/gthumb.desktop.in.in.h:1 ../gthumb/gth-browser.c:530 -#: ../gthumb/gth-progress-dialog.c:388 ../gthumb/main.c:313 -msgid "gThumb" -msgstr "gThumb" - -#: ../data/gthumb.desktop.in.in.h:2 -msgid "Image Viewer" -msgstr "画像ビューアー" - -#: ../data/gthumb.desktop.in.in.h:3 +#: data/appdata/org.gnome.gThumb.appdata.xml.in:8 msgid "gThumb Image Viewer" msgstr "gThumb 画像ビューアー" -#: ../data/gthumb.desktop.in.in.h:4 +#: data/appdata/org.gnome.gThumb.appdata.xml.in:9 +#: data/org.gnome.gThumb.desktop.in.in:6 msgid "View and organize your images" msgstr "画像を表示し管理するツールです" -#: ../data/gthumb-import.desktop.in.in.h:1 -msgid "Import with gThumb" -msgstr "gThumb でインポート" +#: data/appdata/org.gnome.gThumb.appdata.xml.in:11 +msgid "" +"gThumb is an image viewer, editor, browser and organizer. It is designed to " +"be well integrated with the GNOME 3 desktop." +msgstr "" -#: ../data/gthumb-import.desktop.in.in.h:2 -msgid "Photo Import Tool" -msgstr "写真を取り込むツール" +#: data/appdata/org.gnome.gThumb.appdata.xml.in:15 +msgid "" +"As an image viewer gThumb allows to view common image file formats such as " +"BMP, JPEG, GIF (including the animations), PNG, TIFF, TGA and RAW images. It " +"is also possible to view various metadata types embedded inside an image " +"such as EXIF, IPTC and XMP." +msgstr "" -#: ../data/gthumb-import.desktop.in.in.h:3 -msgid "gThumb Photo Import Tool" -msgstr "gThumb フォトインポートツール" +#: data/appdata/org.gnome.gThumb.appdata.xml.in:22 +msgid "" +"As an image editor gThumb allows to scale, rotate and crop the images; " +"change the saturation, lightness, contrast as well as other color " +"transformations." +msgstr "" -#: ../data/gthumb-import.desktop.in.in.h:4 -msgid "Import the photos on your camera card" -msgstr "お使いのカメラや IC メモリにある写真を取り込みます" +#: data/appdata/org.gnome.gThumb.appdata.xml.in:27 +msgid "" +"As an image browser gThumb shows the thumbnails of the images saved on your " +"disk, allows to perform the common operations of a file manager such as " +"copy, move and delete files and folders. Furthermore there is a series of " +"image specific tools such as JPEG lossless transformations; image resize; " +"format conversion; slideshow; setting an image as desktop background and " +"several others." +msgstr "" + +#: data/appdata/org.gnome.gThumb.appdata.xml.in:35 +msgid "" +"As an image organizer gThumb allows to add comments and other metadata to " +"images; organize images in catalogs and catalogs in libraries; search for " +"images and save the result as a catalog." +msgstr "" -#: ../data/org.gnome.gthumb.gschema.xml.in.h:1 +#: data/gschemas/org.gnome.gthumb.gschema.xml:78 msgid "" "Images over this size (in bytes) will not be thumbnailed. Use 0 if you want " "to generate thumbnails for all images." msgstr "" -"このサイズ (バイト単位) より大きい画像はサムネイル表示されません。全ての画像" -"をサムネイル表示する場合は 0 を指定して下さい。" - -#: ../data/org.gnome.gthumb.gschema.xml.in.h:2 -msgid "Whether to resize the window to fit the size of the image" -msgstr "画像のサイズに合わせてウィンドウの大きさを変更するかどうかです。" +"このサイズ (バイト単位) より大きい画像はサムネイル表示されません。すべての画" +"像をサムネイル表示する場合は 0 を指定してください。" -#: ../data/org.gnome.gthumb.gschema.xml.in.h:3 +#: data/gschemas/org.gnome.gthumb.gschema.xml:133 msgid "Open files in the active window" msgstr "使用中のウィンドウでファイルを開きます" -#: ../data/org.gnome.gthumb.image-viewer.gschema.xml.in.h:1 -msgid "Possible values are: white, black, checked, none." -msgstr "設定可能な値: white、black、checked、none" - -#: ../data/org.gnome.gthumb.image-viewer.gschema.xml.in.h:2 +#: data/gschemas/org.gnome.gthumb.image-viewer.gschema.xml:30 msgid "Whether to reset the scrollbars position after changing image" msgstr "画像を変更した後にスクロールバーの位置をリセット" -#: ../data/org.gnome.gthumb.image-viewer.gschema.xml.in.h:3 -msgid "Whether to always use a black background." -msgstr "常に背景を黒色にするかどうかを設定します。" - -#: ../data/org.gnome.gthumb.pixbuf-savers.gschema.xml.in.h:1 +#: data/gschemas/org.gnome.gthumb.pixbuf-savers.gschema.xml:32 msgid "Possible values are: jpeg, jpg." msgstr "指定可能な値: jpeg、jpg" -#: ../data/org.gnome.gthumb.pixbuf-savers.gschema.xml.in.h:2 +#: data/gschemas/org.gnome.gthumb.pixbuf-savers.gschema.xml:63 msgid "Possible values are: tiff, tif." msgstr "指定可能な値: tiff、tif" -#: ../data/org.gnome.gthumb.rename-series.gschema.xml.in.h:1 +#: data/gschemas/org.gnome.gthumb.rename-series.gschema.xml:30 msgid "" "Possible values include: general::unsorted, file::name, file::size, file::" "mtime, exif::photo::datetimeoriginal" @@ -165,2312 +99,2235 @@ "指定可能な値: general::unsorted、file::name、file::size、file::mtime、exif::" "photo::datetimeoriginal" -#: ../data/ui/extensions-preferences.ui.h:1 +#: data/org.gnome.gThumb.Import.desktop.in.in:3 +msgid "Import with gThumb" +msgstr "gThumb でインポート" + +#: data/org.gnome.gThumb.Import.desktop.in.in:4 +msgid "Photo Import Tool" +msgstr "写真を取り込むツール" + +#: data/org.gnome.gThumb.Import.desktop.in.in:6 +msgid "Import the photos on your camera card" +msgstr "お使いのカメラや IC メモリにある写真を取り込みます" + +#. manually set name and icon +#: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 +msgid "gThumb" +msgstr "gThumb" + +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 +msgid "Image Viewer" +msgstr "画像ビューアー" + +#. Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon! +#: data/org.gnome.gThumb.desktop.in.in:8 +msgid "Image;Viewer;" +msgstr "画像;イメージ;ビューアー;" + +#: data/ui/browser-preferences.ui:20 +#: extensions/contact_sheet/gth-contact-sheet-theme.c:34 +#: extensions/image_print/data/ui/print-layout.ui:519 +msgid "Caption" +msgstr "表示するプロパティ" + +#: data/ui/browser-preferences.ui:66 +msgid "Behavior" +msgstr "挙動" + +#: data/ui/browser-preferences.ui:88 +msgid "_Single click to open files" +msgstr "シングルクリックでファイルを開く(_S)" + +#: data/ui/browser-preferences.ui:104 +msgid "_Double click to open files" +msgstr "ダブルクリックでファイルを開く(_D)" + +#: data/ui/browser-preferences.ui:121 +msgid "_Open files in fullscreen mode" +msgstr "全画面モードでファイルを開く(_O)" + +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 +#: extensions/exiv2_tools/gth-edit-iptc-page.c:199 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 +msgid "Other" +msgstr "その他" + +#: data/ui/browser-preferences.ui:187 +msgid "Thumbnail _size:" +msgstr "サムネイルのサイズ(_S):" + +#: data/ui/browser-preferences.ui:206 +msgid "48" +msgstr "48" + +#: data/ui/browser-preferences.ui:207 +msgid "64" +msgstr "64" + +#: data/ui/browser-preferences.ui:208 +msgid "85" +msgstr "85" + +#: data/ui/browser-preferences.ui:209 +msgid "95" +msgstr "95" + +#: data/ui/browser-preferences.ui:210 +msgid "112" +msgstr "112" + +#: data/ui/browser-preferences.ui:211 +msgid "128" +msgstr "128" + +#: data/ui/browser-preferences.ui:212 +msgid "164" +msgstr "164" + +#: data/ui/browser-preferences.ui:213 +msgid "200" +msgstr "200" + +#: data/ui/browser-preferences.ui:214 +msgid "256" +msgstr "256" + +#: data/ui/browser-preferences.ui:239 +msgid "D_etermine image type from content (slower)" +msgstr "画像の内容から種類を判断する (低速)(_E)" + +#: data/ui/extensions-preferences.ui:40 msgid "_Extensions:" msgstr "拡張機能(_E):" -#: ../data/ui/extensions-preferences.ui.h:2 -msgid "More extensions..." -msgstr "その他の拡張機能..." - -#: ../data/ui/extensions-preferences.ui.h:3 -msgid "Some extensions are configurable." -msgstr "いくつかの拡張機能は設定変更が可能です。" +#: data/ui/extensions-preferences.ui:116 +msgid "More extensions…" +msgstr "その他の拡張機能…" + +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "前へ" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "次へ" -#: ../data/ui/filter-editor.ui.h:1 +#: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "フィルターの名前(_N):" -#: ../data/ui/filter-editor.ui.h:2 -#: ../extensions/search/data/ui/search-editor.ui.h:3 -msgid "_Match" -msgstr "次を満足するもの(_M): " +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 +msgid "_Match:" +msgstr "一致(_M):" + +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "条件:" #. limit label -#: ../data/ui/filter-editor.ui.h:3 ../gthumb/gth-filter.c:270 -#: ../gthumb/gth-filter.c:342 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" -msgstr "次に制限する(_L):" +msgstr "次に制限(_L):" -#: ../data/ui/filter-editor.ui.h:4 +#: data/ui/filter-editor.ui:241 msgid "selected by" -msgstr " 次の条件で選択する:" +msgstr "次の条件で選択:" -#: ../data/ui/histogram-info.ui.h:1 +#: data/ui/histogram-info.ui:26 msgid "Mean:" msgstr "平均:" -#. Short for "Standard deviation". Try to keep it under the 12 characters in the translation or it will be ellipsizied at the end. -#: ../data/ui/histogram-info.ui.h:3 +#. Short for "Standard deviation". Try to keep it under the 12 characters in the translation or it will be ellipsized at the end. +#: data/ui/histogram-info.ui:44 msgid "Std dev:" msgstr "標準偏差:" -#: ../data/ui/histogram-info.ui.h:4 +#: data/ui/histogram-info.ui:64 msgid "Median:" msgstr "中央値:" #. After the colon there is the total number of pixels -#: ../data/ui/histogram-info.ui.h:6 +#: data/ui/histogram-info.ui:151 msgid "Pixels:" msgstr "ピクセル数:" #. After the colon there is a percentile. -#: ../data/ui/histogram-info.ui.h:8 +#: data/ui/histogram-info.ui:167 msgctxt "Pixels" msgid "Max:" msgstr "最大値:" #. After the colon there is the percentile of selected pixels. -#: ../data/ui/histogram-info.ui.h:10 +#: data/ui/histogram-info.ui:185 msgctxt "Pixels" msgid "Selected:" msgstr "選択値:" -#: ../data/ui/location.ui.h:1 -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:7 +#: data/ui/location.ui:23 msgid "_Location:" msgstr "場所(_L):" -#: ../data/ui/overwrite-dialog.ui.h:1 +#: data/ui/overwrite-dialog.ui:15 msgid "Overwrite the old file with the new one?" msgstr "新しいファイルで古いファイルを上書きしますか?" -#: ../data/ui/overwrite-dialog.ui.h:2 +#: data/ui/overwrite-dialog.ui:73 msgid "Old File:" msgstr "古いファイル" -#: ../data/ui/overwrite-dialog.ui.h:3 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "ファイル名:" -#: ../data/ui/overwrite-dialog.ui.h:4 -#: ../extensions/file_tools/data/ui/crop-options.ui.h:2 -#: ../extensions/image_print/data/ui/print-layout.ui.h:23 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 +#: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "サイズ:" -#: ../data/ui/overwrite-dialog.ui.h:5 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "修正日時:" -#: ../data/ui/overwrite-dialog.ui.h:6 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "新しいファイル" -#: ../data/ui/overwrite-dialog.ui.h:7 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "古いファイルを上書きする(_W)" -#: ../data/ui/overwrite-dialog.ui.h:8 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "古い画像を上書きしない(_T)" -#: ../data/ui/overwrite-dialog.ui.h:9 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" -msgstr "全てのファイルを上書きする(_A)" +msgstr "すべてのファイルを上書きする(_A)" -#: ../data/ui/overwrite-dialog.ui.h:10 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" -msgstr "全てのファイルを上書きしない(_D)" +msgstr "すべてのファイルを上書きしない(_D)" -#: ../data/ui/overwrite-dialog.ui.h:11 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "新しい名前を付けて保存する(_S):" -#: ../data/ui/personalize-filters.ui.h:1 -msgid "Filters" -msgstr "フィルターの一覧" - -#: ../data/ui/personalize-filters.ui.h:2 +#: data/ui/personalize-filters.ui:20 msgid "_General filter:" msgstr "通常のフィルター(_G):" -#: ../data/ui/personalize-filters.ui.h:3 +#: data/ui/personalize-filters.ui:60 msgid "_Other filters:" msgstr "その他のフィルター(_O):" -#: ../data/ui/preferences.ui.h:1 +#: data/ui/preferences.ui:12 msgid "below the folder list" msgstr "フォルダーの一覧の下" -#: ../data/ui/preferences.ui.h:2 +#: data/ui/preferences.ui:15 msgid "on the right" msgstr "右側" -#: ../data/ui/preferences.ui.h:3 +#: data/ui/preferences.ui:22 msgid "gThumb Preferences" msgstr "gThumb の設定" -#: ../data/ui/preferences.ui.h:4 -msgid "_Toolbar style:" -msgstr "ツールバーのスタイル(_T):" +#: data/ui/preferences.ui:101 +msgid "Appearance" +msgstr "外観" -#: ../data/ui/preferences.ui.h:5 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "サムネイルの表示位置(_H):" -#: ../data/ui/preferences.ui.h:6 -msgid "System settings" -msgstr "デスクトップ設定に従う" - -#: ../data/ui/preferences.ui.h:7 -msgid "Text below icons" -msgstr "アイコンの下にラベル" - -#: ../data/ui/preferences.ui.h:8 -msgid "Text beside icons" -msgstr "アイコンの横にラベル" - -#: ../data/ui/preferences.ui.h:9 -msgid "Icons only" -msgstr "アイコンのみ" - -#: ../data/ui/preferences.ui.h:10 -msgid "Text only" -msgstr "ラベルのみ" - -#: ../data/ui/preferences.ui.h:11 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "下側" -#: ../data/ui/preferences.ui.h:12 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "横側" -#: ../data/ui/preferences.ui.h:13 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "ブラウザーでのプロパティ表示位置(_P):" -#: ../data/ui/preferences.ui.h:14 -msgid "Appearance" -msgstr "外観" +#: data/ui/preferences.ui:203 +msgid "On startup:" +msgstr "起動時:" -#: ../data/ui/preferences.ui.h:15 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" -msgstr "直前に訪れた場所へ移動する(_V)" +msgstr "最後に表示した場所へ移動する(_V)" -#: ../data/ui/preferences.ui.h:16 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "次のフォルダーへ移動する(_F):" -#: ../data/ui/preferences.ui.h:17 -msgid "Choose startup folder" -msgstr "起動時に開くフォルダーの選択" - -#: ../data/ui/preferences.ui.h:18 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "現在の場所をセットする(_U)" -#: ../data/ui/preferences.ui.h:19 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "使用中のウィンドウでファイルを開く(_R)" -#: ../data/ui/preferences.ui.h:20 -msgid "On startup:" -msgstr "起動時:" - -#: ../data/ui/preferences.ui.h:21 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "ファイルまたはカタログを削除する前に確認する(_K)" -#: ../data/ui/preferences.ui.h:22 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "変更したファイルを保存するか確認する(_M)" -#: ../data/ui/preferences.ui.h:23 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "可能ならば、ファイル内にメタデータを埋め込む(_S)" -#: ../data/ui/preferences.ui.h:24 -#: ../extensions/exiv2_tools/gth-edit-iptc-page.c:198 -#: ../extensions/gstreamer_tools/main.c:33 -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:17 -msgid "Other" -msgstr "その他" - -#: ../data/ui/preferences.ui.h:25 -#: ../extensions/catalogs/data/ui/catalog-properties.ui.h:2 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:22 -#: ../extensions/edit_metadata/gth-edit-general-page.c:473 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:23 -#: ../gthumb/gth-main-default-metadata.c:33 +#: data/ui/preferences.ui:421 +#: extensions/catalogs/data/ui/catalog-properties.ui:39 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:576 +#: extensions/edit_metadata/gth-edit-general-page.c:482 +#: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "全般" -#: ../data/ui/preferences.ui.h:26 -#: ../extensions/contact_sheet/gth-contact-sheet-theme.c:34 -#: ../extensions/image_print/data/ui/print-layout.ui.h:18 -msgid "Caption" -msgstr "表示するプロパティ" - -#: ../data/ui/preferences.ui.h:27 -msgid "Thumbnail _size:" -msgstr "サムネイルのサイズ(_S):" - -#: ../data/ui/preferences.ui.h:28 -msgid "48" -msgstr "48" - -#: ../data/ui/preferences.ui.h:29 -msgid "64" -msgstr "64" - -#: ../data/ui/preferences.ui.h:30 -msgid "85" -msgstr "85" - -#: ../data/ui/preferences.ui.h:31 -msgid "95" -msgstr "95" - -#: ../data/ui/preferences.ui.h:32 -msgid "112" -msgstr "112" - -#: ../data/ui/preferences.ui.h:33 -msgid "128" -msgstr "128" - -#: ../data/ui/preferences.ui.h:34 -msgid "164" -msgstr "164" - -#: ../data/ui/preferences.ui.h:35 -msgid "200" -msgstr "200" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "ショートカット:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "すべて復元(_R)…" -#: ../data/ui/preferences.ui.h:36 -msgid "256" -msgstr "256" - -#: ../data/ui/preferences.ui.h:37 -msgid "D_etermine image type from content (slower)" -msgstr "画像の内容から種類を判断する (低速)(_E)" - -#: ../data/ui/preferences.ui.h:38 ../gthumb/dlg-preferences-extensions.c:71 -#: ../gthumb/gth-browser-actions-entries.h:179 -msgid "Browser" -msgstr "ブラウザー" - -#: ../data/ui/sort-order.ui.h:1 -msgid "Sort By" -msgstr "並べ替え" - -#: ../data/ui/sort-order.ui.h:2 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:4 -msgid "_Sort by:" -msgstr "並べ替え順序(_S): " - -#: ../data/ui/sort-order.ui.h:3 +#: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "逆順にする(_I)" -#: ../extensions/23hq/23hq.extension.in.in.h:1 +#: extensions/23hq/23hq.extension.desktop.in.in:3 msgid "23" msgstr "23" -#: ../extensions/23hq/23hq.extension.in.in.h:2 +#: extensions/23hq/23hq.extension.desktop.in.in:4 msgid "Upload images to 23hq.com" msgstr "画像を 23hq.com へアップロードします" -#: ../extensions/23hq/callbacks.c:68 -msgid "_23..." -msgstr "23(_2)..." - -#: ../extensions/23hq/callbacks.c:69 -msgid "Upload photos to 23" -msgstr "写真を 23 へアップロードします" - -#: ../extensions/bookmarks/bookmarks.extension.in.in.h:1 -#: ../extensions/bookmarks/data/ui/bookmarks.ui.h:1 +#: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 +#: extensions/bookmarks/callbacks.c:323 +#: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "ブックマーク" -#: ../extensions/bookmarks/bookmarks.extension.in.in.h:2 +#: extensions/bookmarks/bookmarks.extension.desktop.in.in:4 msgid "Add bookmarks support." -msgstr "ブックマークの機能を追加します" +msgstr "ブックマーク機能を追加します" -#: ../extensions/bookmarks/bookmarks.extension.in.in.h:3 -#: ../extensions/burn_disc/burn_disc.extension.in.in.h:3 -#: ../extensions/catalogs/catalogs.extension.in.in.h:3 -#: ../extensions/change_date/change_date.extension.in.in.h:3 -#: ../extensions/comments/comments.extension.in.in.h:3 -#: ../extensions/contact_sheet/contact_sheet.extension.in.in.h:3 -#: ../extensions/convert_format/convert_format.extension.in.in.h:3 -#: ../extensions/desktop_background/desktop_background.extension.in.in.h:3 -#: ../extensions/edit_metadata/edit_metadata.extension.in.in.h:3 -#: ../extensions/exiv2_tools/exiv2_tools.extension.in.in.h:3 -#: ../extensions/file_manager/file_manager.extension.in.in.h:3 -#: ../extensions/file_tools/file_tools.extension.in.in.h:3 -#: ../extensions/find_duplicates/find_duplicates.extension.in.in.h:3 -#: ../extensions/gstreamer_tools/gstreamer_tools.extension.in.in.h:3 -#: ../extensions/image_print/image_print.extension.in.in.h:3 -#: ../extensions/image_rotation/image_rotation.extension.in.in.h:3 -#: ../extensions/image_viewer/image_viewer.extension.in.in.h:3 -#: ../extensions/list_tools/list_tools.extension.in.in.h:3 -#: ../extensions/photo_importer/photo_importer.extension.in.in.h:3 -#: ../extensions/pixbuf_savers/pixbuf_savers.extension.in.in.h:3 -#: ../extensions/raw_files/raw_files.extension.in.in.h:3 -#: ../extensions/red_eye_removal/red_eye_removal.extension.in.in.h:3 -#: ../extensions/rename_series/rename_series.extension.in.in.h:3 -#: ../extensions/resize_images/resize_images.extension.in.in.h:3 -#: ../extensions/search/search.extension.in.in.h:3 -#: ../extensions/selections/selections.extension.in.in.h:3 -#: ../extensions/slideshow/slideshow.extension.in.in.h:3 -#: ../extensions/webalbums/webalbums.extension.in.in.h:3 -msgid "gthumb development team" -msgstr "gThumb 開発チーム" +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:7 +msgid "_Add Bookmark" +msgstr "ブックマークに追加(_A)" -#: ../extensions/bookmarks/callbacks.c:54 -msgid "_Bookmarks" -msgstr "ブックマーク(_B)" +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:11 +msgid "_Edit Bookmarks…" +msgstr "ブックマークを編集(_E)…" -#: ../extensions/bookmarks/callbacks.c:55 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "システムのブックマーク(_S)" -#: ../extensions/bookmarks/callbacks.c:58 -msgid "_Add Bookmark" -msgstr "ブックマークの追加(_A)" - -#: ../extensions/bookmarks/callbacks.c:59 -msgid "Add current location to bookmarks" -msgstr "この場所をブックマークとして追加します" - -#: ../extensions/bookmarks/callbacks.c:63 -msgid "_Edit Bookmarks..." -msgstr "ブックマークの編集(_E)..." - -#: ../extensions/bookmarks/callbacks.c:64 -msgid "Edit bookmarks" -msgstr "ブックマークを編集します" - -#: ../extensions/bookmarks/data/ui/bookmarks.ui.h:2 +#: extensions/bookmarks/data/ui/bookmarks.ui:20 msgid "_Bookmarks:" msgstr "ブックマーク(_B):" -#: ../extensions/bookmarks/data/ui/bookmarks.ui.h:3 +#: extensions/bookmarks/data/ui/bookmarks.ui:63 +msgid "Go to this location" +msgstr "この場所へ移動します" + +#: extensions/bookmarks/data/ui/bookmarks.ui:76 +#: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 +msgid "Remove" +msgstr "削除" + +#: extensions/bookmarks/data/ui/bookmarks.ui:125 msgid "_Name" msgstr "名前(_N)" -#: ../extensions/bookmarks/data/ui/bookmarks.ui.h:4 +#: extensions/bookmarks/data/ui/bookmarks.ui:168 msgid "_Location" msgstr "場所(_L)" -#: ../extensions/bookmarks/dlg-bookmarks.c:70 +#: extensions/bookmarks/dlg-bookmarks.c:192 msgid "Could not remove the bookmark" msgstr "ブックマークを削除できませんでした" -#: ../extensions/burn_disc/burn_disc.extension.in.in.h:1 +#: extensions/burn_disc/burn_disc.extension.desktop.in.in:3 msgid "Burn CD/DVD" -msgstr "CD/DVD の書き込み" +msgstr "CD/DVD に書き込む" -#: ../extensions/burn_disc/burn_disc.extension.in.in.h:2 +#: extensions/burn_disc/burn_disc.extension.desktop.in.in:4 msgid "Save files to an optical disc." msgstr "ファイルを光学ディスクに保存します" -#: ../extensions/burn_disc/callbacks.c:55 -msgid "_Optical Disc..." -msgstr "光学ディスク(_O)..." - -#: ../extensions/burn_disc/callbacks.c:56 -msgid "Write files to an optical disc" -msgstr "ファイルを光学ディスクに書き込みます" +#: extensions/burn_disc/burn_disc.extension.desktop.in.in:8 +msgid "brasero" +msgstr "brasero" + +#: extensions/burn_disc/callbacks.c:48 +msgid "_Optical Disc…" +msgstr "光学ディスク(_O)…" -#: ../extensions/burn_disc/data/ui/burn-disc-options.ui.h:1 +#: extensions/burn_disc/data/ui/burn-disc-options.ui:21 msgid "Disc Name" -msgstr "ディスクの名前" +msgstr "ディスク名" -#: ../extensions/burn_disc/data/ui/burn-source-selector.ui.h:1 +#: extensions/burn_disc/data/ui/burn-source-selector.ui:31 msgid "Current _folder" msgstr "このフォルダー(_F)" -#: ../extensions/burn_disc/data/ui/burn-source-selector.ui.h:2 +#: extensions/burn_disc/data/ui/burn-source-selector.ui:47 msgid "Current folder and its s_ub-folders" msgstr "このフォルダーとそのサブフォルダー(_U)" -#: ../extensions/burn_disc/data/ui/burn-source-selector.ui.h:3 +#: extensions/burn_disc/data/ui/burn-source-selector.ui:64 msgid "_Selected files" msgstr "選択したファイル(_S)" -#: ../extensions/burn_disc/data/ui/burn-source-selector.ui.h:4 +#: extensions/burn_disc/data/ui/burn-source-selector.ui:86 msgid "Source" msgstr "書き込むファイル" -#: ../extensions/burn_disc/gth-burn-task.c:238 -#: ../extensions/burn_disc/gth-burn-task.c:259 -#: ../extensions/burn_disc/gth-burn-task.c:397 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" -msgstr "ディスクへの書き込み" +msgstr "ディスクへ書き込む" + +#: extensions/burn_disc/gth-burn-task.c:405 +#: extensions/oauth/oauth-account-chooser-dialog.c:150 +#: gthumb/dlg-preferences-extensions.c:715 +msgid "_Continue" +msgstr "続行(_C)" -#: ../extensions/cairo_io/cairo-io-jpeg.c:62 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:62 #, c-format msgid "Error interpreting JPEG image file: %s" msgstr "JPEG 形式の画像ファイルの処理エラー: %s" -#: ../extensions/cairo_io/cairo-io-jpeg.c:482 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "JPEG の色空間 (%d) が不明です" -#: ../extensions/catalogs/actions.c:92 ../extensions/catalogs/actions.c:213 -#: ../extensions/catalogs/dlg-add-to-catalog.c:274 -#: ../extensions/catalogs/dlg-add-to-catalog.c:394 -#: ../extensions/file_manager/actions.c:68 -#: ../extensions/list_tools/gth-script-editor-dialog.c:290 -#: ../gthumb/gth-filter-editor-dialog.c:461 +#: extensions/cairo_io/data/ui/jpeg-options.ui:25 +#: extensions/cairo_io/data/ui/tiff-options.ui:32 +msgid "_Default extension:" +msgstr "デフォルトの拡張子(_D):" + +#: extensions/cairo_io/data/ui/jpeg-options.ui:71 +#: extensions/cairo_io/data/ui/webp-options.ui:33 +msgid "_Quality:" +msgstr "品質の度合い(_Q):" + +#: extensions/cairo_io/data/ui/jpeg-options.ui:87 +msgid "_Smoothing:" +msgstr "平滑化の度合い(_S):" + +#: extensions/cairo_io/data/ui/jpeg-options.ui:100 +msgid "Opti_mize" +msgstr "最適化する(_M)" + +#: extensions/cairo_io/data/ui/jpeg-options.ui:119 +msgid "_Progressive" +msgstr "プログレッシブを有効にする(_P)" + +#: extensions/cairo_io/data/ui/png-options.ui:24 +msgid "Compression _level:" +msgstr "圧縮レベル(_L):" + +#: extensions/cairo_io/data/ui/save-options-preferences.ui:25 +msgid "Default options:" +msgstr "デフォルトのオプション:" + +#: extensions/cairo_io/data/ui/tga-options.ui:11 +msgid "_RLE compression" +msgstr "RLE で圧縮する(_R)" + +#: extensions/cairo_io/data/ui/tiff-options.ui:78 +msgid "Compression" +msgstr "圧縮" + +#: extensions/cairo_io/data/ui/tiff-options.ui:99 +msgid "_No compression" +msgstr "圧縮しない(_N)" + +#: extensions/cairo_io/data/ui/tiff-options.ui:118 +msgid "No_rmal (Deflate)" +msgstr "標準 (収縮)(_R)" + +#: extensions/cairo_io/data/ui/tiff-options.ui:137 +msgid "_Loss compression (JPEG)" +msgstr "低圧縮 (JPEG)(_L)" + +#: extensions/cairo_io/data/ui/tiff-options.ui:179 +msgid "Resolution" +msgstr "解像度" + +#: extensions/cairo_io/data/ui/tiff-options.ui:203 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:173 +msgid "_Horizontal:" +msgstr "水平方向(_H):" + +#: extensions/cairo_io/data/ui/tiff-options.ui:219 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:206 +msgid "_Vertical:" +msgstr "垂直方向(_V):" + +#: extensions/cairo_io/data/ui/tiff-options.ui:253 +#: extensions/cairo_io/data/ui/tiff-options.ui:292 +msgid "dpi" +msgstr "dpi" + +#: extensions/cairo_io/data/ui/webp-options.ui:49 +msgid "_Method:" +msgstr "メソッド(_M):" + +#: extensions/cairo_io/data/ui/webp-options.ui:62 +msgid "_Lossless" +msgstr "ロスレス(_L)" + +#: extensions/cairo_io/gth-image-saver-jpeg.c:517 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 +msgid "JPEG" +msgstr "JPEG" + +#: extensions/cairo_io/gth-image-saver-png.c:354 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 +msgid "PNG" +msgstr "PNG" + +#: extensions/cairo_io/gth-image-saver-tga.c:260 +#: extensions/cairo_io/gth-image-saver-tiff.c:442 gthumb/gth-buffer-data.c:84 +msgid "Insufficient memory" +msgstr "メモリが足りません" + +#: extensions/cairo_io/gth-image-saver-tga.c:345 +msgid "TGA" +msgstr "TGA" + +#: extensions/cairo_io/gth-image-saver-tiff.c:564 +msgid "TIFF" +msgstr "TIFF" + +#: extensions/cairo_io/gth-image-saver-webp.c:383 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 +msgid "WebP" +msgstr "WebP" + +#: extensions/cairo_io/preferences.c:134 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:556 +#: extensions/contact_sheet/data/ui/image-wall.ui:269 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 +#: extensions/webalbums/data/ui/web-album-exporter.ui:484 +msgid "Saving" +msgstr "保存先" + +#: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 +#: extensions/file_manager/actions.c:71 +#: extensions/file_tools/gth-file-tool-curves.c:373 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" -msgstr "名前が指定されていません" +msgstr "名前を指定していません" -#: ../extensions/catalogs/actions.c:99 ../extensions/catalogs/actions.c:220 -#: ../extensions/catalogs/dlg-add-to-catalog.c:281 -#: ../extensions/catalogs/dlg-add-to-catalog.c:401 -#: ../extensions/file_manager/actions.c:75 +#: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 +#: extensions/file_manager/actions.c:78 +#: extensions/file_tools/gth-file-tool-curves.c:380 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" -msgstr "名前が間違っています (次の文字は指定できません: %s)" +msgstr "不正な名前です (次の文字は指定できません: %s)" -#: ../extensions/catalogs/actions.c:155 ../extensions/catalogs/actions.c:267 -#: ../extensions/catalogs/dlg-add-to-catalog.c:338 -#: ../extensions/catalogs/dlg-add-to-catalog.c:448 -#: ../extensions/catalogs/gth-file-source-catalogs.c:508 -#: ../extensions/file_manager/actions.c:106 +#: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 +#: extensions/file_manager/actions.c:109 msgid "Name already used" -msgstr "その名前は既に使われています" +msgstr "その名前はすでに使用されています" -#: ../extensions/catalogs/actions.c:178 -#: ../extensions/catalogs/dlg-add-to-catalog.c:359 +#: extensions/catalogs/actions.c:177 msgid "New catalog" msgstr "新しいカタログ" -#: ../extensions/catalogs/actions.c:179 -#: ../extensions/catalogs/dlg-add-to-catalog.c:360 +#: extensions/catalogs/actions.c:178 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" -msgstr "カタログ名を入力して下さい:" +msgstr "カタログ名を入力してください:" -#: ../extensions/catalogs/actions.c:181 ../extensions/catalogs/actions.c:293 -#: ../extensions/catalogs/dlg-add-to-catalog.c:362 -#: ../extensions/catalogs/dlg-add-to-catalog.c:474 -#: ../extensions/file_manager/actions.c:136 +#: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 +#: extensions/file_manager/actions.c:140 msgid "C_reate" -msgstr "作成する(_R)" +msgstr "作成(_R)" -#: ../extensions/catalogs/actions.c:290 -#: ../extensions/catalogs/dlg-add-to-catalog.c:471 +#: extensions/catalogs/actions.c:291 msgid "New library" msgstr "新しいライブラリ" -#: ../extensions/catalogs/actions.c:291 -#: ../extensions/catalogs/dlg-add-to-catalog.c:472 +#: extensions/catalogs/actions.c:292 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" -msgstr "ライブラリ名を入力して下さい:" +msgstr "ライブラリ名を入力してください:" -#: ../extensions/catalogs/actions.c:326 +#: extensions/catalogs/actions.c:327 msgid "Could not remove the catalog" msgstr "カタログを削除できませんでした" -#: ../extensions/catalogs/actions.c:363 +#: extensions/catalogs/actions.c:366 #, c-format -msgid "Are you sure you want to remove \"%s\"?" -msgstr "本当に \"%s\" を削除しますか?" +msgid "Are you sure you want to remove “%s”?" +msgstr "本当に“%s”を削除しますか?" + +#: extensions/catalogs/callbacks.c:52 +msgid "Add to Catalog…" +msgstr "カタログに追加…" + +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 +msgid "Open Folder" +msgstr "フォルダーを開く" + +#: extensions/catalogs/callbacks.c:62 +msgid "Remove from Catalog" +msgstr "カタログから削除" + +#: extensions/catalogs/callbacks.c:67 +msgid "Create Catalog" +msgstr "カタログを作成" + +#: extensions/catalogs/callbacks.c:68 +msgid "Create Library" +msgstr "ライブラリを作成" + +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 +msgid "Rename" +msgstr "名前を変更" + +#: extensions/catalogs/callbacks.c:78 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 +msgid "Properties" +msgstr "プロパティ" -#: ../extensions/catalogs/callbacks.c:102 -msgid "_Add to Catalog" -msgstr "カタログに追加する(_A)" - -#: ../extensions/catalogs/callbacks.c:105 -#: ../extensions/selections/callbacks.c:80 -msgid "Open _Folder" -msgstr "フォルダーを開く(_F)" - -#: ../extensions/catalogs/callbacks.c:106 -#: ../extensions/selections/callbacks.c:81 -msgid "Go to the folder that contains the selected file" -msgstr "選択したファイルを格納するフォルダーへジャンプします" - -#: ../extensions/catalogs/callbacks.c:110 -#: ../extensions/picasaweb/picasa-account-properties-dialog.c:85 -msgid "Other..." -msgstr "その他..." - -#: ../extensions/catalogs/callbacks.c:111 -msgid "Choose another catalog" -msgstr "別のカタログを選択します" - -#: ../extensions/catalogs/callbacks.c:115 -msgid "_Add to Catalog..." -msgstr "カタログへ追加(_A)..." - -#: ../extensions/catalogs/callbacks.c:116 -msgid "Add selected images to a catalog" -msgstr "選択した画像をカタログに追加します" - -#: ../extensions/catalogs/callbacks.c:120 -msgid "Remo_ve from Catalog" -msgstr "カタログから削除(_V)" - -#: ../extensions/catalogs/callbacks.c:121 -msgid "Remove selected images from the catalog" -msgstr "選択したファイルをカタログから削除します" - -#: ../extensions/catalogs/callbacks.c:125 -msgid "Create _Catalog" -msgstr "カタログの生成(_C)" - -#: ../extensions/catalogs/callbacks.c:130 -msgid "Create _Library" -msgstr "ライブラリの生成(_L)" - -#: ../extensions/catalogs/callbacks.c:140 -msgid "Rena_me" -msgstr "名前の変更(_M)" +#: extensions/catalogs/callbacks.c:185 +#: extensions/catalogs/catalogs.extension.desktop.in.in:3 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 +msgid "Catalogs" +msgstr "カタログ" -#: ../extensions/catalogs/callbacks.c:279 -#: ../extensions/catalogs/callbacks.c:282 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "コマンドライン" -#: ../extensions/catalogs/callbacks.c:497 -#: ../extensions/catalogs/callbacks.c:502 -#: ../extensions/photo_importer/dlg-photo-importer.c:364 -#: ../extensions/photo_importer/dlg-photo-importer.c:404 -#: ../gthumb/gth-file-list.c:43 ../gthumb/gth-folder-tree.c:883 -msgid "(Empty)" -msgstr "(ファイルなし)" - -#: ../extensions/catalogs/callbacks.c:697 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "カタログのプロパティを表示します" -#: ../extensions/catalogs/callbacks.c:711 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" -msgstr "整理する" +msgstr "整理" -#: ../extensions/catalogs/callbacks.c:712 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "自動的にファイルを年月日のついたカタログに整理します" -#: ../extensions/catalogs/catalogs.extension.in.in.h:1 -#: ../extensions/catalogs/gth-catalog.c:611 -#: ../extensions/catalogs/gth-catalog.c:662 -#: ../extensions/catalogs/gth-catalog.c:1024 -#: ../extensions/catalogs/gth-catalog.c:1025 -msgid "Catalogs" -msgstr "カタログ" - -#: ../extensions/catalogs/catalogs.extension.in.in.h:2 +#: extensions/catalogs/catalogs.extension.desktop.in.in:4 msgid "Create file collections." msgstr "ファイルのコレクションを生成します" -#: ../extensions/catalogs/data/ui/add-to-catalog.ui.h:1 -msgid "Add to Catalog" -msgstr "カタログに追加する" +#: extensions/catalogs/catalogs.extension.desktop.in.in:8 +msgid "file-catalog-symbolic" +msgstr "file-catalog-symbolic" -#: ../extensions/catalogs/data/ui/add-to-catalog.ui.h:2 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "カタログ(_A):" -#: ../extensions/catalogs/data/ui/add-to-catalog.ui.h:3 -msgid "_New Catalog" -msgstr "新しいカタログ(_N)" - -#: ../extensions/catalogs/data/ui/add-to-catalog.ui.h:4 -msgid "New _Library" -msgstr "新しいライブラリ(_L)" - -#: ../extensions/catalogs/data/ui/add-to-catalog.ui.h:5 -#: ../extensions/file_manager/actions.c:945 -#: ../extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "新しいライブラリ" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "新しいカタログ" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "送り先のフォルダーを表示する(_V)" -#: ../extensions/catalogs/data/ui/catalog-properties.ui.h:1 -#: ../gthumb/gth-file-properties.c:209 -msgid "Properties" -msgstr "プロパティ" - -#: ../extensions/catalogs/data/ui/catalog-properties.ui.h:3 -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:8 -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:4 -#: ../extensions/gstreamer_tools/data/ui/save-screenshot.ui.h:1 -#: ../extensions/list_tools/data/ui/script-editor.ui.h:1 -#: ../extensions/photobucket/data/ui/photobucket-album-properties.ui.h:1 -#: ../extensions/picasaweb/data/ui/picasa-web-album-properties.ui.h:1 +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "ダイアログを開いたままにする(_K)" + +#: extensions/catalogs/data/ui/catalog-properties.ui:68 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 +#: extensions/facebook/data/ui/facebook-album-properties.ui:45 +#: extensions/list_tools/data/ui/script-editor.ui:23 +#: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:37 msgid "_Name:" msgstr "名前(_N):" -#: ../extensions/catalogs/data/ui/catalog-properties.ui.h:4 -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:2 +#: extensions/catalogs/data/ui/catalog-properties.ui:82 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:31 msgid "_Date:" msgstr "日付(_D):" -#: ../extensions/catalogs/data/ui/catalog-properties.ui.h:5 +#: extensions/catalogs/data/ui/catalog-properties.ui:143 +#: extensions/catalogs/data/ui/organize-files-task.ui:199 msgid "Catalog" msgstr "カタログ" -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:1 -#: ../extensions/catalogs/data/ui/organize-files.ui.h:6 -msgid "Organize Files" -msgstr "ファイルの整理" - -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:2 -msgid "Organizing files" -msgstr "ファイルの整理中" +#: extensions/catalogs/data/ui/organize-files-task.ui:93 +#: gthumb/gth-progress-dialog.c:158 +msgid "Cancel operation" +msgstr "この操作をキャンセルします" -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:3 +#: extensions/catalogs/data/ui/organize-files-task.ui:145 msgid "Organization:" msgstr "整理した結果:" -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:4 +#: extensions/catalogs/data/ui/organize-files-task.ui:224 +msgid "Files" +msgstr "ファイル" + +#: extensions/catalogs/data/ui/organize-files-task.ui:240 +msgid "Create" +msgstr "作成" + +#: extensions/catalogs/data/ui/organize-files-task.ui:281 msgid "Select All" -msgstr "全て選択" +msgstr "すべて選択" -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:5 +#: extensions/catalogs/data/ui/organize-files-task.ui:295 msgid "Select None" -msgstr "選択の解除" +msgstr "選択を解除" -#: ../extensions/catalogs/data/ui/organize-files-task.ui.h:6 +#: extensions/catalogs/data/ui/organize-files-task.ui:330 msgid "Catalog _Preview:" msgstr "カタログのプレビュー(_P):" -#: ../extensions/catalogs/data/ui/organize-files.ui.h:1 -#: ../extensions/edit_metadata/gth-edit-general-page.c:550 -#: ../gthumb/gth-main-default-tests.c:300 -msgid "Date photo was taken" -msgstr "写真の撮影日" - -#: ../extensions/catalogs/data/ui/organize-files.ui.h:2 -#: ../gthumb/gth-main-default-tests.c:292 -msgid "File modified date" -msgstr "ファイルの変更日時" - -#: ../extensions/catalogs/data/ui/organize-files.ui.h:3 -#: ../extensions/comments/main.c:159 -msgid "Tag" -msgstr "タグ" - -#: ../extensions/catalogs/data/ui/organize-files.ui.h:4 -msgid "tag" -msgstr "tag" - -#: ../extensions/catalogs/data/ui/organize-files.ui.h:5 -#: ../gthumb/gth-main-default-tests.c:324 -msgid "Tag (embedded)" -msgstr "(埋め込まれた) タグ" - -#: ../extensions/catalogs/data/ui/organize-files.ui.h:7 +#: extensions/catalogs/data/ui/organize-files.ui:93 msgid "_Group files by:" msgstr "次でグループ化する(_G):" -#: ../extensions/catalogs/data/ui/organize-files.ui.h:8 -#: ../extensions/find_duplicates/data/ui/find-duplicates.ui.h:3 -#: ../extensions/search/data/ui/search-editor.ui.h:2 +#: extensions/catalogs/data/ui/organize-files.ui:139 +#: extensions/find_duplicates/data/ui/find-duplicates.ui:64 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "サブフォルダーも含める(_I)" -#: ../extensions/catalogs/data/ui/organize-files.ui.h:9 +#: extensions/catalogs/data/ui/organize-files.ui:156 msgid "Ignore catalogs with a single file" -msgstr "1個しかファイルのないカタログは無視する" +msgstr "ファイルが一つしかないカタログは無視する" -#: ../extensions/catalogs/data/ui/organize-files.ui.h:10 +#: extensions/catalogs/data/ui/organize-files.ui:182 msgid "Put single files in the catalog:" -msgstr "1個のカタログに1個のファイルを格納する:" +msgstr "一つのカタログに一つのファイルを格納する:" -#: ../extensions/catalogs/data/ui/organize-files.ui.h:11 +#: extensions/catalogs/data/ui/organize-files.ui:202 msgid "Singles" msgstr "単体" -#: ../extensions/catalogs/dlg-add-to-catalog.c:105 -#: ../extensions/catalogs/dlg-add-to-catalog.c:136 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "ファイルをカタログに追加できませんでした" -#: ../extensions/catalogs/dlg-add-to-catalog.c:217 -#: ../extensions/search/gth-search-task.c:356 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "カタログを作成できませんでした" -#: ../extensions/catalogs/dlg-catalog-properties.c:80 +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "カタログに追加" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "追加(_A)" + +#: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "カタログを保存できませんでした" -#: ../extensions/catalogs/dlg-catalog-properties.c:159 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" -msgstr "カタログをロードできませんでした" +msgstr "カタログを読み込めませんでした" + +#: extensions/catalogs/dlg-organize-files.c:106 +#: extensions/catalogs/gth-organize-task.c:812 +msgid "Organize Files" +msgstr "ファイルを整理" -#: ../extensions/catalogs/dlg-organize-files.c:120 +#: extensions/catalogs/dlg-organize-files.c:126 msgid "Files will be organized in catalogs. No file will be moved on disk." msgstr "" "ファイルをカタログに登録しますが、ファイル本体はディスク上では移動されませ" "ん。" -#: ../extensions/catalogs/gth-catalog.c:1122 ../extensions/comments/main.c:44 -#: ../extensions/edit_metadata/callbacks.c:106 -#: ../gthumb/gth-main-default-metadata.c:53 +#: extensions/catalogs/dlg-organize-files.c:138 +#: extensions/edit_metadata/gth-edit-general-page.c:557 +#: gthumb/gth-main-default-tests.c:367 +msgid "Date photo was taken" +msgstr "写真の撮影日" + +#: extensions/catalogs/dlg-organize-files.c:145 +#: gthumb/gth-main-default-tests.c:359 +msgid "File modified date" +msgstr "ファイルの更新日時" + +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 +msgid "Tag" +msgstr "タグ" + +#: extensions/catalogs/dlg-organize-files.c:159 +#: gthumb/gth-main-default-tests.c:400 +msgid "Tag (embedded)" +msgstr "(埋め込まれた) タグ" + +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "不正なファイル形式です" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "タグ" -#: ../extensions/catalogs/gth-file-source-catalogs.c:953 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format -msgid "The catalog '%s' already exists, do you want to overwrite it?" -msgstr "次のカタログは既に存在していますが上書きしますか?: '%s'" +msgid "The catalog “%s” already exists, do you want to overwrite it?" +msgstr "カタログ“%s”はすでに存在します。上書きしますか?" -#: ../extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format -msgid "The library '%s' already exists, do you want to overwrite it?" -msgstr "次のライブラリは既に存在していますが上書きしますか?: '%s'" +msgid "The library “%s” already exists, do you want to overwrite it?" +msgstr "ライブラリ“%s”はすでに存在します。上書きしますか?" -#: ../extensions/catalogs/gth-file-source-catalogs.c:963 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" -msgstr "上書きする(_W)" +msgstr "上書き(_W)" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1081 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "ファイルを移動できません" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "ファイルをコピーできません" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1088 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "移動先が間違っています" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1135 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format -msgid "Copying files to '%s'" -msgstr "ファイルを '%s' へコピー中" +msgid "Copying files to “%s”" +msgstr "ファイルを“%s”にコピー中" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1322 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "カタログからファイルを削除できませんでした" -#: ../extensions/catalogs/gth-file-source-catalogs.c:1380 -#: ../extensions/exiv2_tools/exiv2-utils.cpp:685 -#: ../extensions/exiv2_tools/exiv2-utils.cpp:694 -#: ../extensions/exiv2_tools/exiv2-utils.cpp:723 -#: ../extensions/exiv2_tools/exiv2-utils.cpp:1228 -#: ../extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "ファイル形式が間違っています" - -#: ../extensions/catalogs/gth-organize-task.c:202 +#: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." msgstr "処理が完了しました (カタログ数: %d 画像数: %d)" -#: ../extensions/change_date/callbacks.c:44 -msgid "Change _Date..." -msgstr "日付の変更(_D)..." - -#: ../extensions/change_date/callbacks.c:45 -msgid "Change images last modified date" -msgstr "最後に修正した日付を変更します" +#: extensions/change_date/callbacks.c:38 +msgid "Change _Date…" +msgstr "日付を変更(_D)…" -#: ../extensions/change_date/change_date.extension.in.in.h:1 +#: extensions/change_date/change_date.extension.desktop.in.in:3 msgid "Change date" -msgstr "日付の変更" +msgstr "日付を変更" -#: ../extensions/change_date/change_date.extension.in.in.h:2 +#: extensions/change_date/change_date.extension.desktop.in.in:4 msgid "Change the files date" msgstr "ファイルの日付を変更します" -#: ../extensions/change_date/data/ui/change-date.ui.h:1 -msgid "Change Date" -msgstr "日付の変更" +#: extensions/change_date/data/ui/change-date.ui:12 +#: extensions/gstreamer_tools/data/ui/mediabar.ui:236 +msgid "+" +msgstr "+" + +#: extensions/change_date/data/ui/change-date.ui:15 +#: extensions/gstreamer_tools/data/ui/mediabar.ui:244 +msgid "-" +msgstr "-" -#: ../extensions/change_date/data/ui/change-date.ui.h:2 +#: extensions/change_date/data/ui/change-date.ui:57 msgid "Change the following values:" msgstr "変更するデータ:" -#: ../extensions/change_date/data/ui/change-date.ui.h:3 +#: extensions/change_date/data/ui/change-date.ui:82 msgid "_Last modified date" msgstr "更新日時(_L)" -#: ../extensions/change_date/data/ui/change-date.ui.h:4 +#: extensions/change_date/data/ui/change-date.ui:99 msgid "Co_mment date" -msgstr "コメントの日時(_M)" - -#: ../extensions/change_date/data/ui/change-date.ui.h:5 -msgid "Exif DateTimeOriginal tag" -msgstr "EXIF の DateTimeOriginal タグの日時" +msgstr "コメント日時(_M)" -#: ../extensions/change_date/data/ui/change-date.ui.h:6 +#: extensions/change_date/data/ui/change-date.ui:140 msgid "Change to:" msgstr "変更の詳細:" -#: ../extensions/change_date/data/ui/change-date.ui.h:7 +#: extensions/change_date/data/ui/change-date.ui:171 msgid "The _following date:" msgstr "日付を指定する(_F):" -#: ../extensions/change_date/data/ui/change-date.ui.h:8 +#: extensions/change_date/data/ui/change-date.ui:217 msgid "File _modified date" msgstr "ファイルの更新日時(_M)" -#: ../extensions/change_date/data/ui/change-date.ui.h:9 +#: extensions/change_date/data/ui/change-date.ui:235 msgid "File c_reation date" msgstr "ファイルの生成日時(_R)" -#: ../extensions/change_date/data/ui/change-date.ui.h:10 +#: extensions/change_date/data/ui/change-date.ui:253 msgid "Date p_hoto was taken" -msgstr "写真を撮った日時(_H)" +msgstr "写真の撮影日時(_H)" -#: ../extensions/change_date/data/ui/change-date.ui.h:11 +#: extensions/change_date/data/ui/change-date.ui:291 msgid "A_djust by" msgstr "調整する(_D):" # 上にある "Adjust by" の訳語と連携するため空文字にしている -#: ../extensions/change_date/data/ui/change-date.ui.h:12 +#: extensions/change_date/data/ui/change-date.ui:386 msgid "hours" msgstr "時間" -#: ../extensions/change_date/data/ui/change-date.ui.h:13 +#: extensions/change_date/data/ui/change-date.ui:399 msgid "minutes" msgstr "分" -#: ../extensions/change_date/data/ui/change-date.ui.h:14 -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:6 +#: extensions/change_date/data/ui/change-date.ui:414 msgid "seconds" msgstr "秒" -#: ../extensions/change_date/data/ui/change-date.ui.h:15 -msgid "+" -msgstr "次を足す" - -#: ../extensions/change_date/data/ui/change-date.ui.h:16 -msgid "-" -msgstr "次を引く" +#: extensions/change_date/dlg-change-date.c:177 +msgid "Change Date" +msgstr "日付の変更" -#: ../extensions/comments/callbacks.c:46 +#: extensions/comments/callbacks.c:39 msgid "Import Embedded Metadata" -msgstr "埋め込みのメタデータをインポート" - -#: ../extensions/comments/callbacks.c:47 -msgid "Import the metadata stored inside files into the gThumb comment system" -msgstr "" -"ファイル埋め込みのメタデータを gThumb のコメントシステムにインポートします" +msgstr "埋め込みのメタデータをインポート" -#: ../extensions/comments/comments.extension.in.in.h:1 +#: extensions/comments/comments.extension.desktop.in.in:3 msgid "Comments and tags" msgstr "コメントとタグ" -#: ../extensions/comments/comments.extension.in.in.h:2 +#: extensions/comments/comments.extension.desktop.in.in:4 msgid "Add comments and tags to any file type." msgstr "いろいろな種類のファイルにコメントやタグを追加します" -#: ../extensions/comments/data/ui/comments-preferences.ui.h:1 -#: ../extensions/importer/gth-import-preferences-dialog.c:318 -msgid "Preferences" -msgstr "設定" - -#: ../extensions/comments/data/ui/comments-preferences.ui.h:2 +#: extensions/comments/data/ui/comments-preferences.ui:12 msgid "_Synchronize with the embedded metadata" msgstr "埋め込まれているメタデータと同期する(_S)" -#: ../extensions/comments/main.c:34 -#: ../extensions/edit_metadata/callbacks.c:100 +#: extensions/comments/dlg-comments-preferences.c:68 +#: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 +#: extensions/importer/gth-import-preferences-dialog.c:417 +#: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 +#: gthumb/dlg-preferences-extensions.c:483 +msgid "Preferences" +msgstr "設定" + +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "コメント" -#: ../extensions/comments/main.c:40 ../gthumb/gth-main-default-metadata.c:46 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "タイトル" -#: ../extensions/comments/main.c:41 ../extensions/comments/main.c:143 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:5 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:7 -#: ../extensions/image_print/data/ui/print-layout.ui.h:8 -#: ../extensions/importer/data/ui/import-preferences.ui.h:6 -#: ../extensions/list_tools/data/ui/script-editor.ui.h:11 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:12 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:9 -#: ../gthumb/gth-main-default-metadata.c:52 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:184 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:502 +#: extensions/contact_sheet/data/ui/image-wall.ui:232 +#: extensions/image_print/data/ui/print-layout.ui:239 +#: extensions/importer/data/ui/import-preferences.ui:287 +#: extensions/list_tools/data/ui/script-editor.ui:319 +#: extensions/rename_series/data/ui/rename-series.ui:249 +#: extensions/webalbums/data/ui/web-album-exporter.ui:194 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1039 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "説明" -#: ../extensions/comments/main.c:42 ../extensions/comments/main.c:151 -#: ../gthumb/gth-main-default-metadata.c:50 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "場所" -#: ../extensions/comments/main.c:43 ../gthumb/gth-main-default-metadata.c:51 -msgid "Date" -msgstr "日付" +#: extensions/comments/main.c:46 +msgid "Comment Date & Time" +msgstr "コメント日時" -#: ../extensions/comments/main.c:45 ../gthumb/gth-main-default-metadata.c:54 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "評価" -#: ../extensions/contact_sheet/callbacks.c:59 -msgid "Contact _Sheet" -msgstr "コンタクトシート(_S)" - -#: ../extensions/contact_sheet/callbacks.c:61 -msgid "Contact _Sheet..." -msgstr "コンタクトシート(_S)..." - -#: ../extensions/contact_sheet/callbacks.c:62 -msgid "Create a contact sheet" -msgstr "コンタクトシートを生成します" - -#: ../extensions/contact_sheet/callbacks.c:65 -msgid "Image _Wall..." -msgstr "イメージウォール(_W)..." - -#: ../extensions/contact_sheet/callbacks.c:66 -msgid "Create an image-wall" -msgstr "イメージウォールを生成します" - -#: ../extensions/contact_sheet/contact_sheet.extension.in.in.h:1 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:1 +#: extensions/contact_sheet/callbacks.c:38 +msgid "Contact _Sheet…" +msgstr "コンタクトシート(_S)…" + +#: extensions/contact_sheet/callbacks.c:39 +msgid "Image _Wall…" +msgstr "イメージウォール(_W)…" + +#: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:308 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "コンタクトシート" -#: ../extensions/contact_sheet/contact_sheet.extension.in.in.h:2 +#: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:4 msgid "Create an index image displaying the thumbnails of the selected files." -msgstr "選択したファイルのサムネイルを表示するインデックス用の画像を生成します" +msgstr "選択したファイルのサムネイルを表示するインデックス用の画像を作成します" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:1 -#: ../extensions/file_tools/gth-file-tool-crop.c:424 -#: ../extensions/file_tools/gth-file-tool-crop.c:454 -#: ../extensions/file_tools/gth-file-tool-resize.c:498 -#: ../extensions/file_tools/gth-file-tool-rotate.c:415 -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:14 -#: ../extensions/slideshow/main.c:277 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 +#: extensions/file_tools/gth-file-tool-crop.c:439 +#: extensions/file_tools/gth-file-tool-crop.c:469 +#: extensions/file_tools/gth-file-tool-resize.c:589 +#: extensions/file_tools/gth-file-tool-rotate.c:396 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "なし" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:2 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:15 msgid "Simple" msgstr "シンプル" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:3 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:18 msgid "Simple with shadow" msgstr "シンプル (影付き)" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:4 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:21 msgid "Shadow only" -msgstr "影だけ" +msgstr "影のみ" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:5 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:24 msgid "Slide" msgstr "スライド" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:6 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:27 msgid "Inward Shadow" msgstr "内向きの影付き" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:7 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:30 msgid "Outward Shadow" msgstr "外向きの影付き" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:9 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:96 msgid "Background" msgstr "背景" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:10 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:122 msgid "_Solid color" msgstr "単色(_S)" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:11 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:140 msgid "_Gradient" msgstr "グラデーション(_G)" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:12 -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:6 -msgid "_Horizontal:" -msgstr "水平方向(_H):" - -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:13 -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:7 -msgid "_Vertical:" -msgstr "垂直方向(_V):" - -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:14 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:281 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:297 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:315 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:333 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:351 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:475 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:583 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:640 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:698 msgid "Select a color" -msgstr "色の選択" +msgstr "色を選択" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:15 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:392 msgid "Frame" msgstr "フレーム" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:16 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:421 msgid "_Style:" msgstr "スタイル(_S):" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:17 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:435 msgid "C_olor:" msgstr "色(_O):" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:18 -#: ../extensions/rename_series/dlg-rename-series.c:57 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:519 +#: extensions/rename_series/dlg-rename-series.c:57 msgid "Text" msgstr "文字列" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:19 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:11 -#: ../extensions/image_print/data/ui/print-layout.ui.h:3 -#: ../extensions/image_print/data/ui/print-preferences.ui.h:2 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:15 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:290 +#: extensions/image_print/data/ui/print-layout.ui:88 +#: extensions/image_print/data/ui/print-preferences.ui:55 +#: extensions/webalbums/data/ui/web-album-exporter.ui:302 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" msgstr "ヘッダー(_H):" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:20 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:569 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:626 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:684 msgid "Select a font" -msgstr "フォントの選択" +msgstr "フォントを選択" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:21 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:10 -#: ../extensions/image_print/data/ui/print-layout.ui.h:4 -#: ../extensions/image_print/data/ui/print-preferences.ui.h:3 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:14 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:261 +#: extensions/image_print/data/ui/print-layout.ui:102 +#: extensions/image_print/data/ui/print-preferences.ui:69 +#: extensions/webalbums/data/ui/web-album-exporter.ui:271 +#: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" msgstr "フッター(_F):" -#: ../extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui.h:22 -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:32 -#: ../extensions/image_print/data/ui/print-preferences.ui.h:1 +#: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "見出し:" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:2 -#: ../extensions/image_print/data/ui/print-layout.ui.h:5 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:6 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:133 +#: extensions/image_print/data/ui/print-layout.ui:188 +#: extensions/webalbums/data/ui/web-album-exporter.ui:143 msgid "The current page number" msgstr "現在のページ番号" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:3 -#: ../extensions/image_print/data/ui/print-layout.ui.h:6 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:7 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:151 +#: extensions/image_print/data/ui/print-layout.ui:206 +#: extensions/webalbums/data/ui/web-album-exporter.ui:161 msgid "The total number of pages" msgstr "ページの総数" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:4 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:6 -#: ../extensions/image_print/data/ui/print-layout.ui.h:7 -#: ../extensions/importer/data/ui/import-preferences.ui.h:5 -#: ../extensions/list_tools/data/ui/script-editor.ui.h:10 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:11 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:8 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:169 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:487 +#: extensions/contact_sheet/data/ui/image-wall.ui:217 +#: extensions/image_print/data/ui/print-layout.ui:224 +#: extensions/importer/data/ui/import-preferences.ui:275 +#: extensions/list_tools/data/ui/script-editor.ui:304 +#: extensions/rename_series/data/ui/rename-series.ui:128 +#: extensions/webalbums/data/ui/web-album-exporter.ui:179 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1024 msgid "Special code" msgstr "特別な記号" #. translate only the text in the curly brackets -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:8 -#: ../extensions/image_print/data/ui/print-layout.ui.h:11 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:20 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:12 -#, no-c-format +#: extensions/contact_sheet/data/ui/contact-sheet.ui:201 +#: extensions/image_print/data/ui/print-layout.ui:256 +#: extensions/rename_series/data/ui/rename-series.ui:219 +#: extensions/webalbums/data/ui/web-album-exporter.ui:211 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1056 msgid "%D{ format }" msgstr "%D{ フォーマット }" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:9 -#: ../extensions/image_print/data/ui/print-layout.ui.h:12 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:13 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:217 +#: extensions/image_print/data/ui/print-layout.ui:272 +#: extensions/webalbums/data/ui/web-album-exporter.ui:227 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1072 msgid "The current date" msgstr "今日の日付" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:12 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:2 -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:5 -#: ../extensions/flicker_utils/data/ui/import-from-flickr.ui.h:5 -#: ../extensions/gstreamer_tools/data/ui/save-screenshot.ui.h:2 -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:6 -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:6 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:17 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:354 +#: extensions/contact_sheet/data/ui/image-wall.ui:85 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:158 +#: extensions/facebook/data/ui/import-from-facebook.ui:211 +#: extensions/flicker_utils/data/ui/import-from-flickr.ui:210 +#: extensions/photo_importer/data/ui/photo-importer.ui:216 +#: extensions/picasaweb/data/ui/import-from-picasaweb.ui:209 +#: extensions/webalbums/data/ui/web-album-exporter.ui:361 msgid "_Destination:" msgstr "格納場所(_D):" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:13 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:3 -#: ../extensions/convert_format/data/ui/convert-format.ui.h:4 -#: ../extensions/resize_images/data/ui/resize-images.ui.h:7 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:18 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:370 +#: extensions/contact_sheet/data/ui/image-wall.ui:100 +#: extensions/convert_format/data/ui/convert-format.ui:128 +#: extensions/resize_images/data/ui/resize-images.ui:273 +#: extensions/webalbums/data/ui/web-album-exporter.ui:378 msgid "Choose destination folder" -msgstr "保存先のフォルダーの選択" +msgstr "保存先のフォルダーを選択" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:14 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:4 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:382 +#: extensions/contact_sheet/data/ui/image-wall.ui:112 msgid "File_name:" msgstr "ファイル名(_N):" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:15 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:5 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:8 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:469 +#: extensions/contact_sheet/data/ui/image-wall.ui:199 +#: extensions/rename_series/data/ui/rename-series.ui:265 msgid "New enumerator digit" msgstr "通番の数字" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:16 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:533 msgid "Create _HTML image map" -msgstr "HTML の画像マップを生成する(_H)" - -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:17 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:8 -#: ../extensions/pixbuf_savers/preferences.c:134 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:21 -msgid "Saving" -msgstr "保存先" +msgstr "HTML の画像マップを作成する(_H)" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:18 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:639 msgid "Create a new theme" -msgstr "新しいテーマを生成します" +msgstr "新しいテーマを作成します" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:19 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:660 msgid "Edit the selected theme" msgstr "選択したテーマを編集します" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:20 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:681 msgid "Delete the selected theme" msgstr "選択したテーマを削除します" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:21 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:22 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:712 +#: extensions/webalbums/data/ui/web-album-exporter.ui:551 msgid "Theme" msgstr "テーマ" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:23 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:9 -#: ../extensions/image_print/data/ui/print-layout.ui.h:16 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:26 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:740 +#: extensions/contact_sheet/data/ui/image-wall.ui:310 +#: extensions/image_print/data/ui/print-layout.ui:463 +#: extensions/webalbums/data/ui/web-album-exporter.ui:673 msgid "Columns:" msgstr "横に並べる数:" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:24 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:10 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:29 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:762 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:792 +msgid "0" +msgstr "0" + +#: extensions/contact_sheet/data/ui/contact-sheet.ui:814 +#: extensions/contact_sheet/data/ui/image-wall.ui:380 +#: extensions/webalbums/data/ui/web-album-exporter.ui:776 msgid "Images per page:" -msgstr "1ページ当たりの画像数:" +msgstr "1 ページ当たりの画像数:" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:25 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:11 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:28 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:826 +#: extensions/contact_sheet/data/ui/image-wall.ui:392 +#: extensions/webalbums/data/ui/web-album-exporter.ui:751 msgid "All images on a single page" -msgstr "全ての画像を1ページにまとめる" +msgstr "すべての画像を 1 ページにまとめる" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:26 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:842 msgid "_All pages with the same size" -msgstr "全てのページで同じサイズにする(_A)" +msgstr "すべてのページで同じサイズにする(_A)" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:27 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:12 -#: ../extensions/image_print/data/ui/print-layout.ui.h:15 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:875 +#: extensions/contact_sheet/data/ui/image-wall.ui:414 +#: extensions/image_print/data/ui/print-layout.ui:387 msgid "Layout" msgstr "レイアウト" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:28 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:13 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:24 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:900 +#: extensions/contact_sheet/data/ui/image-wall.ui:458 +#: extensions/webalbums/data/ui/web-album-exporter.ui:608 msgid "S_ort:" msgstr "並べ替え(_O):" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:29 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:14 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:25 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:935 +#: extensions/contact_sheet/data/ui/image-wall.ui:492 +#: extensions/webalbums/data/ui/web-album-exporter.ui:645 msgid "Re_verse order" msgstr "逆順にする(_V)" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:30 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:15 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:961 +#: extensions/contact_sheet/data/ui/image-wall.ui:518 msgid "_Size:" msgstr "サイズ(_S):" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:31 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:999 msgid "Sq_uared" msgstr "矩形にする(_U)" -#: ../extensions/contact_sheet/data/ui/contact-sheet.ui.h:33 -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:16 +#: extensions/contact_sheet/data/ui/contact-sheet.ui:1078 +#: extensions/contact_sheet/data/ui/image-wall.ui:577 msgid "Thumbnails" msgstr "サムネイル" -#: ../extensions/contact_sheet/data/ui/image-wall.ui.h:1 -msgid "Image Wall" -msgstr "イメージウォール" - -#: ../extensions/contact_sheet/dlg-contact-sheet.c:486 -#: ../extensions/contact_sheet/dlg-contact-sheet.c:498 -#: ../extensions/contact_sheet/dlg-contact-sheet.c:512 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "テーマを保存できませんでした" -#: ../extensions/contact_sheet/dlg-contact-sheet.c:657 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "テーマを削除できませんでした" -#: ../extensions/contact_sheet/gth-contact-sheet-creator.c:248 +#: extensions/contact_sheet/dlg-image-wall.c:243 +msgid "Image Wall" +msgstr "イメージウォール" + +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" -msgstr "画像の生成中" +msgstr "画像を作成中" -#: ../extensions/contact_sheet/gth-contact-sheet-creator.c:897 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" -msgstr "サムネイルの生成中" +msgstr "サムネイルを生成中" -#: ../extensions/contact_sheet/gth-contact-sheet-theme.c:32 -msgid "Header" -msgstr "ヘッダー" - -#: ../extensions/contact_sheet/gth-contact-sheet-theme.c:33 -msgid "Footer" -msgstr "フッター" - -#: ../extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:193 +#: extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:194 msgid "Theme Properties" msgstr "テーマのプロパティ" -#: ../extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:208 +#: extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:206 msgid "Copy _From" msgstr "他からコピー(_F)" -#: ../extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:316 +#: extensions/contact_sheet/gth-contact-sheet-theme-dialog.c:313 msgid "New theme" msgstr "新しいテーマ" -#: ../extensions/convert_format/callbacks.c:45 -msgid "Convert Format..." -msgstr "フォーマットの変換..." - -#: ../extensions/convert_format/callbacks.c:46 -msgid "Convert image format" -msgstr "画像のフォーマットを変換します" +#: extensions/contact_sheet/gth-contact-sheet-theme.c:32 +msgid "Header" +msgstr "ヘッダー" + +#: extensions/contact_sheet/gth-contact-sheet-theme.c:33 +msgid "Footer" +msgstr "フッター" + +#: extensions/convert_format/callbacks.c:38 +msgid "Convert Format…" +msgstr "フォーマットを変換…" -#: ../extensions/convert_format/convert_format.extension.in.in.h:1 +#: extensions/convert_format/convert_format.extension.desktop.in.in:3 msgid "Convert format" -msgstr "フォーマットの変換" +msgstr "フォーマットを変換" -#: ../extensions/convert_format/convert_format.extension.in.in.h:2 +#: extensions/convert_format/convert_format.extension.desktop.in.in:4 msgid "Save images in a different format" msgstr "画像をいろいろなフォーマットで保存します" -#: ../extensions/convert_format/data/ui/convert-format.ui.h:1 -msgid "Convert Format" -msgstr "フォーマットの変換" - -#: ../extensions/convert_format/data/ui/convert-format.ui.h:2 +#: extensions/convert_format/data/ui/convert-format.ui:40 msgid "New format" msgstr "新しいフォーマット" -#: ../extensions/convert_format/data/ui/convert-format.ui.h:3 -#: ../extensions/resize_images/data/ui/resize-images.ui.h:6 +#: extensions/convert_format/data/ui/convert-format.ui:100 +#: extensions/resize_images/data/ui/resize-images.ui:245 msgid "Destination" -msgstr "変換後の格納先" +msgstr "変換後の保存先" -#: ../extensions/convert_format/data/ui/convert-format.ui.h:5 -#: ../extensions/resize_images/data/ui/resize-images.ui.h:8 +#: extensions/convert_format/data/ui/convert-format.ui:138 +#: extensions/resize_images/data/ui/resize-images.ui:283 msgid "_Use the original image folder" -msgstr "元の画像フォルダーを使う(_U)" +msgstr "元の画像フォルダーを使用する(_U)" -#: ../extensions/convert_format/dlg-convert-format.c:93 +#: extensions/convert_format/dlg-convert-format.c:87 msgid "Converting images" -msgstr "画像の変換中" +msgstr "画像を変換中" + +#: extensions/convert_format/dlg-convert-format.c:149 +msgid "Convert Format" +msgstr "フォーマットを変換" -#: ../extensions/desktop_background/actions.c:162 +#: extensions/desktop_background/actions.c:288 msgid "Could not show the desktop background properties" msgstr "デスクトップの背景のプロパティを表示できませんでした" -#: ../extensions/desktop_background/actions.c:228 -#: ../extensions/desktop_background/actions.c:246 +#: extensions/desktop_background/actions.c:329 +#: gthumb/resources/gears-menu.ui:45 +msgid "_Preferences" +msgstr "設定(_P)" + +#: extensions/desktop_background/actions.c:330 +msgid "_Undo" +msgstr "元に戻す(_U)" + +#: extensions/desktop_background/actions.c:360 +#: extensions/desktop_background/actions.c:416 +#: extensions/desktop_background/actions.c:435 +#: extensions/desktop_background/actions.c:462 msgid "Could not set the desktop background" -msgstr "デスクトップの背景にセットできませんでした" +msgstr "デスクトップの背景に設定できませんでした" -#: ../extensions/desktop_background/callbacks.c:49 -msgid "Set as Desktop Background" -msgstr "デスクトップの背景にする" +#: extensions/desktop_background/callbacks.c:47 +#: extensions/desktop_background/callbacks.c:53 +msgid "Set as Background" +msgstr "背景に設定" -#: ../extensions/desktop_background/callbacks.c:50 -#: ../extensions/desktop_background/desktop_background.extension.in.in.h:2 -msgid "Set the image as desktop background" -msgstr "画像をデスクトップの背景にセットします" - -#: ../extensions/desktop_background/desktop_background.extension.in.in.h:1 +#: extensions/desktop_background/desktop_background.extension.desktop.in.in:3 msgid "Desktop background" msgstr "デスクトップの背景" -#: ../extensions/edit_metadata/actions.c:66 +#: extensions/desktop_background/desktop_background.extension.desktop.in.in:4 +msgid "Set the image as desktop background" +msgstr "画像をデスクトップの背景に設定します" + +#: extensions/desktop_background/desktop_background.extension.desktop.in.in:8 +msgid "desktop" +msgstr "desktop" + +#: extensions/edit_metadata/actions.c:75 msgid "" "Are you sure you want to permanently delete the metadata of the selected " "files?" -msgstr "本当に選択したファイルのメタデータを完全に消去しますか?" +msgstr "本当に選択したファイルのメタデータを完全に削除しますか?" -#: ../extensions/edit_metadata/actions.c:73 +#: extensions/edit_metadata/actions.c:82 msgid "If you delete the metadata, it will be permanently lost." msgstr "メタデータを削除すると元に戻すことはできません。" -#: ../extensions/edit_metadata/callbacks.c:97 -msgid "T_ags" -msgstr "タグ(_A)" - -#: ../extensions/edit_metadata/callbacks.c:101 -msgid "Edit the comment and other information of the selected files" -msgstr "選択したファイルのコメントやその他の情報を編集します" - -#: ../extensions/edit_metadata/callbacks.c:107 -msgid "Set the tags of the selected files" -msgstr "選択したファイルにタグを追加します" +#: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "コメントを編集" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "タグを編集" -#: ../extensions/edit_metadata/callbacks.c:112 +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" -msgstr "メタデータの削除" +msgstr "メタデータを削除" -#: ../extensions/edit_metadata/callbacks.c:113 -msgid "Delete the comment and the embedded metadata of the selected files" -msgstr "選択したファイルのコメントや埋め込まれているメタデータを削除します" - -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:1 -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:6 -#: ../extensions/picasaweb/data/ui/picasa-web-album-properties.ui.h:3 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:17 +#: extensions/facebook/data/ui/facebook-album-properties.ui:135 +#: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:127 msgid "D_escription:" msgstr "説明(_E):" -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:3 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:81 msgid "_Place:" msgstr "場所(_P):" -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:4 -#: ../extensions/edit_metadata/data/ui/tag-chooser.ui.h:1 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:120 +#: extensions/edit_metadata/data/ui/tag-chooser.ui:16 msgid "T_ags:" msgstr "タグ(_A):" -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:5 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:207 msgid "_Rating:" msgstr "評価(_R):" -#: ../extensions/edit_metadata/data/ui/edit-comment-page.ui.h:6 +#: extensions/edit_metadata/data/ui/edit-comment-page.ui:239 msgid "_Title:" msgstr "タイトル(_T):" -#: ../extensions/edit_metadata/dlg-edit-metadata.c:121 +#: extensions/edit_metadata/dlg-edit-metadata.c:121 msgid "Could not save the file metadata" msgstr "ファイルのメタデータを保存できませんでした" -#: ../extensions/edit_metadata/dlg-edit-metadata.c:234 -#: ../gthumb/gth-overwrite-dialog.c:136 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" -msgstr "ファイル情報を読み込めません" +msgstr "ファイル情報を読み取れません" -#: ../extensions/edit_metadata/edit_metadata.extension.in.in.h:1 +#: extensions/edit_metadata/edit_metadata.extension.desktop.in.in:3 msgid "Edit metadata" -msgstr "メタデータの編集" +msgstr "メタデータを編集" -#: ../extensions/edit_metadata/edit_metadata.extension.in.in.h:2 +#: extensions/edit_metadata/edit_metadata.extension.desktop.in.in:4 msgid "Allow to edit files metadata." msgstr "ファイルのメタデータを編集できるようにします" -#. Translators: the %s symbol in the string is a file name -#: ../extensions/edit_metadata/gth-edit-comment-dialog.c:63 -#, c-format -msgid "%s Metadata" -msgstr "%s のメタデータ" - -#: ../extensions/edit_metadata/gth-edit-comment-dialog.c:66 -#: ../extensions/edit_metadata/gth-edit-tags-dialog.c:83 -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:335 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d個のファイル" - -#: ../extensions/edit_metadata/gth-edit-comment-dialog.c:144 -#: ../extensions/edit_metadata/gth-edit-tags-dialog.c:192 -msgid "Sa_ve and Close" -msgstr "保存して閉じる(_V)" - -#: ../extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" -msgstr "変更のある項目だけ保存する(_N)" +msgstr "変更のある項目のみ保存する(_N)" -#: ../extensions/edit_metadata/gth-edit-general-page.c:547 +#: extensions/edit_metadata/gth-edit-general-page.c:554 msgid "No date" msgstr "日付なし" -#: ../extensions/edit_metadata/gth-edit-general-page.c:548 +#: extensions/edit_metadata/gth-edit-general-page.c:555 msgid "The following date" msgstr "指定する" -#: ../extensions/edit_metadata/gth-edit-general-page.c:549 -#: ../extensions/importer/gth-import-preferences-dialog.c:331 +#: extensions/edit_metadata/gth-edit-general-page.c:556 +#: extensions/importer/gth-import-preferences-dialog.c:325 msgid "Current date" msgstr "今日" -#: ../extensions/edit_metadata/gth-edit-general-page.c:551 +#: extensions/edit_metadata/gth-edit-general-page.c:558 msgid "Last modified date" msgstr "更新日時" -#: ../extensions/edit_metadata/gth-edit-general-page.c:552 +#: extensions/edit_metadata/gth-edit-general-page.c:559 msgid "File creation date" -msgstr "ファイルの生成日" +msgstr "ファイルの作成日" -#: ../extensions/edit_metadata/gth-edit-general-page.c:553 +#: extensions/edit_metadata/gth-edit-general-page.c:560 msgid "Do not modify" msgstr "変更しない" -#. Translators: the %s symbol in the string is a file name -#: ../extensions/edit_metadata/gth-edit-tags-dialog.c:80 -#, c-format -msgid "%s Tags" -msgstr "%s タグ" - -#: ../extensions/edit_metadata/gth-edit-tags-dialog.c:184 -msgid "Assign Tags" -msgstr "タグの割当て" - -#: ../extensions/edit_metadata/gth-tag-task.c:115 -#: ../extensions/edit_metadata/gth-tag-task.c:132 +#: extensions/edit_metadata/gth-tag-task.c:122 +#: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" -msgstr "選択したファイルにタグの割当て中" +msgstr "選択したファイルにタグを割当て中" -#: ../extensions/edit_metadata/gth-tag-task.c:115 +#: extensions/edit_metadata/gth-tag-task.c:122 msgid "Writing files" -msgstr "ファイルの書き込み中" +msgstr "ファイルに書き込み中" -#: ../extensions/edit_metadata/gth-tag-task.c:132 +#: extensions/edit_metadata/gth-tag-task.c:139 msgid "Reading files" -msgstr "ファイルの読み込み中" - -#: ../extensions/example/src/example.extension.in.in.h:1 -msgid "Example" -msgstr "サンプル" +msgstr "ファイルを読み取り中" -#: ../extensions/example/src/example.extension.in.in.h:2 -msgid "Extension example." -msgstr "拡張機能のサンプルです。" - -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:1 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:30 msgid "C_opyright:" msgstr "著作権(_O):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:2 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:44 msgid "Co_untry:" msgstr "国(_U):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:3 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:77 msgid "_Code:" msgstr "国コード(_C):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:4 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:128 msgid "Cr_edit:" msgstr "クレジット(_E):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:6 -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:2 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:188 +#: extensions/photo_importer/data/ui/photo-importer.ui:21 msgid "_Source:" msgstr "ソース(_S):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:7 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:229 msgid "_Urgency:" msgstr "緊急度(_U):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:8 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:244 msgid "_Object Name:" msgstr "オブジェクト名(_O):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:9 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:293 msgid "Byline _Title:" msgstr "署名のタイトル(_T):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:10 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:332 msgid "_Byline:" msgstr "署名(_B):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:11 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:363 msgid "_City:" msgstr "都市(_C):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:12 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:379 msgid "_Language:" msgstr "言語(_L):" -#: ../extensions/exiv2_tools/data/ui/edit-exiv2-page.ui.h:13 +#: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:435 msgid "State/Province:" msgstr "州/県:" -#: ../extensions/exiv2_tools/exiv2_tools.extension.in.in.h:1 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 +msgid "(invalid value)" +msgstr "(不正な値)" + +#: extensions/exiv2_tools/exiv2-utils.cpp:713 +msgid "Exposure" +msgstr "露出時間" + +#: extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in:3 msgid "EXIF, IPTC, XMP support" msgstr "EXIF と IPTC、XMP のサポート" -#: ../extensions/exiv2_tools/exiv2_tools.extension.in.in.h:2 +#: extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in:4 msgid "Read and write exif, iptc and xmp metadata." -msgstr "EXIF や IPTC やXMP といったメタデータを扱います" +msgstr "EXIF や IPTC、XMP といったメタデータを扱います" -#: ../extensions/exiv2_tools/main.c:33 +#: extensions/exiv2_tools/main.c:33 msgid "Exif General" msgstr "EXIF 全般" -#: ../extensions/exiv2_tools/main.c:34 +#: extensions/exiv2_tools/main.c:34 msgid "Exif Conditions" msgstr "EXIF 撮影時の条件" -#: ../extensions/exiv2_tools/main.c:35 +#: extensions/exiv2_tools/main.c:35 msgid "Exif Structure" msgstr "EXIF 画像の構造" -#: ../extensions/exiv2_tools/main.c:36 +#: extensions/exiv2_tools/main.c:36 msgid "Exif Thumbnail" msgstr "EXIF サムネイル" -#: ../extensions/exiv2_tools/main.c:37 +#: extensions/exiv2_tools/main.c:37 msgid "Exif GPS" msgstr "EXIF GPS" -#: ../extensions/exiv2_tools/main.c:38 +#: extensions/exiv2_tools/main.c:38 msgid "Exif Maker Notes" msgstr "EXIF メーカー" -#: ../extensions/exiv2_tools/main.c:39 +#: extensions/exiv2_tools/main.c:39 msgid "Exif Versions" -msgstr "EXIF 画像の寸法" +msgstr "EXIF 画像のサイズ" -#: ../extensions/exiv2_tools/main.c:40 +#: extensions/exiv2_tools/main.c:40 msgid "Exif Other" msgstr "EXIF その他" -#: ../extensions/exiv2_tools/main.c:41 +#: extensions/exiv2_tools/main.c:41 msgid "IPTC" msgstr "IPTC" -#: ../extensions/exiv2_tools/main.c:42 +#: extensions/exiv2_tools/main.c:42 msgid "XMP Embedded" msgstr "埋め込みの XMP" -#: ../extensions/exiv2_tools/main.c:43 +#: extensions/exiv2_tools/main.c:43 msgid "XMP Attached" msgstr "添付された XMP" -#: ../extensions/exiv2_tools/main.c:256 +#: extensions/exiv2_tools/main.c:272 msgid "date photo was taken" msgstr "撮影日" -#: ../extensions/export_tools/callbacks.c:99 -msgid "Share" -msgstr "共有する" - -#: ../extensions/facebook/callbacks.c:54 -msgid "Face_book..." -msgstr "Facebook(_B)..." - -#: ../extensions/facebook/callbacks.c:55 -msgid "Upload photos to Facebook" -msgstr "写真を Facebook へアップロードします" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:1 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:8 -msgid "Export to Flickr" -msgstr "Flickr へのエクスポート" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:2 -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:1 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:9 -#: ../extensions/picasaweb/data/ui/export-to-picasaweb.ui.h:2 -msgid "_Upload" -msgstr "アップロード(_U)" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:3 -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:2 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:10 -msgid "_Account:" -msgstr "アカウント(_A):" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:4 -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:3 -#: ../extensions/flicker_utils/data/ui/import-from-flickr.ui.h:2 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:11 -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:3 +#: extensions/export_tools/callbacks.c:46 +msgid "_Export To" +msgstr "エクスポート(_E)" + +#: extensions/facebook/data/ui/export-to-facebook.ui:34 +msgid "720 × 720" +msgstr "720 × 720" + +#: extensions/facebook/data/ui/export-to-facebook.ui:38 +msgid "1024 × 1024" +msgstr "1024 × 1024" + +#: extensions/facebook/data/ui/export-to-facebook.ui:42 +msgid "1280 × 1280" +msgstr "1280 × 1280" + +#: extensions/facebook/data/ui/export-to-facebook.ui:46 +msgid "1600 × 1600" +msgstr "1600 × 1600" + +#: extensions/facebook/data/ui/export-to-facebook.ui:50 +msgid "2048 × 2048" +msgstr "2048 × 2048" + +#: extensions/facebook/data/ui/export-to-facebook.ui:145 +#: extensions/facebook/data/ui/import-from-facebook.ui:88 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:198 +#: extensions/flicker_utils/data/ui/import-from-flickr.ui:86 +#: extensions/picasaweb/data/ui/import-from-picasaweb.ui:88 msgid "Edit accounts" msgstr "アカウントを編集します" -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:5 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:13 +#: extensions/facebook/data/ui/export-to-facebook.ui:180 msgid "A_lbum:" msgstr "アルバム(_L):" -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:6 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:14 +#: extensions/facebook/data/ui/export-to-facebook.ui:212 msgid "Add a new album" msgstr "新しいアルバムを追加します" -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:7 -msgid "Resize the images if larger than this size" -msgstr "これよりも大きい場合はサイズを変更する" +#: extensions/facebook/data/ui/export-to-facebook.ui:242 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:150 +msgid "_Account:" +msgstr "アカウント(_A):" -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:8 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:15 -msgid "_Resize to:" -msgstr "サイズを変更する(_R):" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:9 -msgid "720 x 720" -msgstr "720 x 720" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:10 -msgid "1024 x 1024" -msgstr "1024 x 1024" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:11 -msgid "1280 x 1280" -msgstr "1280 x 1280" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:12 -msgid "1600 x 1600" -msgstr "1600 x 1600" - -#: ../extensions/facebook/data/ui/export-to-facebook.ui.h:13 -msgid "2048 x 2048" -msgstr "2048 x 2048" - -#: ../extensions/facebook/data/ui/facebook-account-chooser.ui.h:1 -#: ../extensions/flicker_utils/data/ui/flicker-account-chooser.ui.h:1 -#: ../extensions/flicker_utils/data/ui/import-from-flickr.ui.h:3 -#: ../extensions/oauth/data/ui/oauth-account-chooser.ui.h:1 -#: ../extensions/picasaweb/data/ui/export-to-picasaweb.ui.h:3 -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:4 -#: ../extensions/picasaweb/data/ui/picasa-web-account-chooser.ui.h:1 -msgid "A_ccount:" -msgstr "アカウント(_C):" +#: extensions/facebook/data/ui/export-to-facebook.ui:274 +#: extensions/facebook/data/ui/export-to-facebook.ui:275 +msgid "Resize the images if larger than this size" +msgstr "これよりも大きい場合はサイズを変更します" -#: ../extensions/facebook/data/ui/facebook-account-manager.ui.h:1 -#: ../extensions/flicker_utils/data/ui/flicker-account-manager.ui.h:1 -#: ../extensions/oauth/data/ui/oauth-account-manager.ui.h:1 -#: ../extensions/picasaweb/data/ui/picasa-web-account-manager.ui.h:1 -msgid "A_ccounts:" -msgstr "アカウントの一覧(_C):" +#: extensions/facebook/data/ui/export-to-facebook.ui:276 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:426 +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:325 +#: extensions/webalbums/data/ui/web-album-exporter.ui:422 +msgid "_Resize if larger than:" +msgstr "次よりも大きい場合はサイズを変更する(_R):" -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:1 -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:9 +#: extensions/facebook/data/ui/facebook-album-properties.ui:14 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:35 msgid "Public photos" msgstr "一般公開" -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:2 -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:11 +#: extensions/facebook/data/ui/facebook-album-properties.ui:18 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:43 msgid "Private photos, visible to friends" msgstr "プライベートな写真 (友人限定)" -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:3 -#: ../extensions/picasaweb/data/ui/picasa-web-album-properties.ui.h:5 +#: extensions/facebook/data/ui/facebook-album-properties.ui:22 +#: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:15 msgid "Private" msgstr "プライベート" -#: ../extensions/facebook/data/ui/facebook-album-properties.ui.h:5 -#: ../extensions/picasaweb/data/ui/picasa-web-album-properties.ui.h:2 +#: extensions/facebook/data/ui/facebook-album-properties.ui:73 +#: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:65 msgid "_Visibility:" msgstr "公開レベル(_V):" -#: ../extensions/facebook/data/ui/facebook-ask-authorization.ui.h:1 -#: ../extensions/flicker_utils/data/ui/flicker-ask-authorization.ui.h:1 -#: ../extensions/oauth/data/ui/oauth-ask-authorization.ui.h:1 -msgid "_Authorize..." -msgstr "認証する(_A)..." - -#: ../extensions/facebook/data/ui/facebook-complete-authorization.ui.h:1 -#: ../extensions/facebook/facebook-authentication.c:472 -#: ../extensions/flicker_utils/flickr-authentication.c:408 -#: ../extensions/oauth/oauth-authentication.c:423 -msgid "Once you're done, click the 'Continue' button below." -msgstr "完了したら、この下にある [続行する] ボタンをクリックして下さい。" - -#: ../extensions/facebook/data/ui/facebook-complete-authorization.ui.h:2 -#: ../extensions/flicker_utils/data/ui/flicker-complete-authorization.ui.h:1 -#: ../extensions/oauth/data/ui/oauth-complete-authorization.ui.h:1 -msgid "C_ontinue" -msgstr "続行する(_O)" +#: extensions/facebook/data/ui/import-from-facebook.ui:122 +#: extensions/flicker_utils/data/ui/import-from-flickr.ui:120 +#: extensions/oauth/data/ui/oauth-account-chooser.ui:33 +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:98 +#: extensions/picasaweb/data/ui/import-from-picasaweb.ui:122 +msgid "A_ccount:" +msgstr "アカウント(_C):" + +#: extensions/facebook/data/ui/import-from-facebook.ui:136 +#: extensions/picasaweb/data/ui/import-from-picasaweb.ui:135 +msgid "_Album:" +msgstr "アルバム(_A):" -#: ../extensions/facebook/data/ui/facebook-export-completed.ui.h:1 -#: ../extensions/flicker_utils/data/ui/flicker-export-completed.ui.h:1 -#: ../extensions/photobucket/data/ui/photobucket-export-completed.ui.h:1 -#: ../extensions/picasaweb/data/ui/picasa-web-export-completed.ui.h:1 +#: extensions/facebook/dlg-export-to-facebook.c:124 +#: extensions/flicker_utils/dlg-export-to-flickr.c:161 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:120 msgid "Files successfully uploaded to the server." -msgstr "ファイルのサーバーへのアップロードが完了しました。" +msgstr "サーバーへのファイルアップロードが完了しました。" -#: ../extensions/facebook/data/ui/facebook-export-completed.ui.h:2 -#: ../extensions/flicker_utils/data/ui/flicker-export-completed.ui.h:2 -#: ../extensions/photobucket/data/ui/photobucket-export-completed.ui.h:2 -#: ../extensions/picasaweb/data/ui/picasa-web-export-completed.ui.h:2 -#: ../extensions/webalbums/gth-web-exporter.c:1841 -msgid "_Open in the Browser" -msgstr "ブラウザーで開く(_O)" +#: extensions/facebook/dlg-export-to-facebook.c:151 +#: extensions/flicker_utils/dlg-export-to-flickr.c:246 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:148 +msgid "Could not upload the files" +msgstr "このファイルをアップロードできませんでした" -#: ../extensions/facebook/dlg-export-to-facebook.c:130 -#: ../extensions/facebook/dlg-export-to-facebook.c:335 -#: ../extensions/facebook/facebook-authentication.c:192 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:138 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:399 -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:237 -#: ../extensions/flicker_utils/flickr-authentication.c:191 -#: ../extensions/oauth/oauth-authentication.c:187 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:131 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:376 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:139 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:424 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:380 +#: extensions/facebook/dlg-export-to-facebook.c:297 +#: extensions/flicker_utils/dlg-export-to-flickr.c:136 +#: extensions/flicker_utils/dlg-export-to-flickr.c:410 +#: extensions/flicker_utils/dlg-import-from-flickr.c:227 +#: extensions/oauth/web-service.c:377 msgid "Could not connect to the server" msgstr "サーバーに接続できませんでした" -#: ../extensions/facebook/dlg-export-to-facebook.c:182 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:246 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:182 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:192 -msgid "Could not upload the files" -msgstr "このファイルをアップロードできませんでした" - -#: ../extensions/facebook/dlg-export-to-facebook.c:412 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:188 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:223 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:462 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:717 +#: extensions/facebook/dlg-export-to-facebook.c:368 +#: extensions/flicker_utils/dlg-export-to-flickr.c:188 +#: extensions/flicker_utils/dlg-export-to-flickr.c:223 msgid "Could not create the album" msgstr "アルバムを作成できませんでした" -#: ../extensions/facebook/dlg-export-to-facebook.c:481 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:534 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:783 +#: extensions/facebook/dlg-export-to-facebook.c:436 msgid "New Album" msgstr "新しいアルバム" -#: ../extensions/facebook/dlg-export-to-facebook.c:561 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:557 -#: ../extensions/image_print/gth-image-print-job.c:1789 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:614 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:1002 +#: extensions/facebook/dlg-export-to-facebook.c:475 +msgid "Export to Facebook" +msgstr "Facebook へエクスポート" + +#: extensions/facebook/dlg-export-to-facebook.c:541 +#: extensions/flicker_utils/dlg-export-to-flickr.c:592 +#: extensions/image_print/gth-image-print-job.c:1740 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:494 msgid "No valid file selected." -msgstr "妥当なファイルを選択して下さい。" +msgstr "正しいファイルを選択してください。" -#: ../extensions/facebook/dlg-export-to-facebook.c:562 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:558 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:615 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:1003 +#: extensions/facebook/dlg-export-to-facebook.c:542 +#: extensions/flicker_utils/dlg-export-to-flickr.c:593 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:495 msgid "Could not export the files" msgstr "ファイルをエクスポートできませんでした" -#: ../extensions/facebook/dlg-export-to-facebook.c:570 -#: ../extensions/find_duplicates/gth-find-duplicates.c:255 -#: ../extensions/find_duplicates/gth-find-duplicates.c:347 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:566 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:623 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:1010 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:803 -#: ../gthumb/gth-browser.c:1006 +#: extensions/facebook/dlg-export-to-facebook.c:550 +#: extensions/find_duplicates/gth-find-duplicates.c:278 +#: extensions/find_duplicates/gth-find-duplicates.c:477 +#: extensions/flicker_utils/dlg-export-to-flickr.c:601 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:502 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:254 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" -msgstr[0] "%d個のファイル (%s)" +msgstr[0] "%d 個のファイル (%s)" -#: ../extensions/facebook/dlg-export-to-facebook.c:591 -#: ../extensions/flicker_utils/dlg-export-to-flickr.c:589 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:642 +#: extensions/facebook/dlg-export-to-facebook.c:571 +#: extensions/flicker_utils/dlg-export-to-flickr.c:624 #, c-format msgid "Export to %s" -msgstr "%s へのエクスポート" +msgstr "%s へエクスポート" -#: ../extensions/facebook/facebook-account-chooser-dialog.c:200 -#: ../extensions/flicker_utils/flickr-account-chooser-dialog.c:200 -#: ../extensions/oauth/oauth-account-chooser-dialog.c:200 -msgid "New authentication..." -msgstr "新しい認証..." - -#: ../extensions/facebook/facebook-authentication.c:194 -#: ../extensions/flicker_utils/flickr-authentication.c:193 -#: ../extensions/oauth/oauth-authentication.c:189 -msgid "Choose _Account..." -msgstr "アカウントの選択(_A)..." - -#: ../extensions/facebook/facebook-authentication.c:471 -#: ../extensions/flicker_utils/flickr-authentication.c:407 -#: ../extensions/oauth/oauth-authentication.c:422 -#, c-format -msgid "" -"Return to this window when you have finished the authorization process on %s" -msgstr "%s の認証プロセスが完了したらこのウィンドウに戻って下さい" +#: extensions/facebook/facebook-service.c:496 +#: extensions/flicker_utils/flickr-service.c:849 +#: extensions/picasaweb/picasa-web-service.c:738 +msgid "Getting the album list" +msgstr "アルバムの一覧を取得中" -#: ../extensions/facebook/facebook-authentication.c:556 -#: ../extensions/flicker_utils/flickr-authentication.c:487 -#: ../extensions/oauth/oauth-authentication.c:502 -#, c-format -msgid "gthumb requires your authorization to upload the photos to %s" -msgstr "写真を %s へアップロードするには認証が必要です" +#: extensions/facebook/facebook-service.c:613 +#: extensions/flicker_utils/flickr-service.c:943 +#: extensions/flicker_utils/flickr-service.c:1058 +#: extensions/flicker_utils/flickr-service.c:1097 +msgid "Creating the new album" +msgstr "新しいアルバムを作成中" -#: ../extensions/facebook/facebook-authentication.c:557 -#: ../extensions/flicker_utils/flickr-authentication.c:488 -#: ../extensions/oauth/oauth-authentication.c:503 +#: extensions/facebook/facebook-service.c:671 +#: extensions/flicker_utils/flickr-service.c:1144 +#: extensions/picasaweb/picasa-web-service.c:783 #, c-format -msgid "" -"Click 'Authorize' to open your web browser and authorize gthumb to upload " -"photos to %s. When you're finished, return to this window to complete the " -"authorization." -msgstr "" -"[認証する] をクリックしてウェブブラウザーを開き、写真を %s へアップロードする" -"ために認証を実施して下さい (完了したら、このウィンドウに戻って認証を完了させ" -"て下さい)" - -#: ../extensions/facebook/facebook-authentication.c:652 -#: ../extensions/flicker_utils/flickr-authentication.c:588 -#: ../extensions/oauth/oauth-authentication.c:605 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:820 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:684 -msgid "Choose Account" -msgstr "アカウントの選択" - -#: ../extensions/facebook/facebook-authentication.c:761 -#: ../extensions/flicker_utils/flickr-authentication.c:697 -#: ../extensions/oauth/oauth-authentication.c:714 -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:881 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:745 -msgid "Edit Accounts" -msgstr "アカウントの編集" +msgid "Could not upload “%s”: %s" +msgstr "“%s”をアップロードできませんでした: %s" -#: ../extensions/facebook/facebook-connection.c:275 -#: ../extensions/facebook/facebook-connection.c:435 -#: ../extensions/facebook/facebook-service.c:162 -#: ../extensions/facebook/facebook-service.c:265 -#: ../extensions/facebook/facebook-service.c:468 -#: ../extensions/flicker_utils/flickr-connection.c:266 -#: ../extensions/flicker_utils/flickr-connection.c:413 -#: ../extensions/flicker_utils/flickr-service.c:195 -#: ../extensions/flicker_utils/flickr-service.c:398 -#: ../extensions/photobucket/photobucket-consumer.c:74 -#: ../extensions/photobucket/photobucket-consumer.c:79 -#: ../extensions/photobucket/photobucket-consumer.c:115 -#: ../extensions/photobucket/photobucket-consumer.c:170 -msgid "Unknown error" -msgstr "原因不明のエラー" +#. Translators: %s is a filename +#: extensions/facebook/facebook-service.c:734 +#: extensions/flicker_utils/flickr-service.c:1253 +#: extensions/picasaweb/picasa-web-service.c:838 +#, c-format +msgid "Uploading “%s”" +msgstr "“%s”をアップロード中" + +#: extensions/facebook/facebook-service.c:954 +#: extensions/flicker_utils/flickr-service.c:1450 +#: extensions/picasaweb/picasa-web-service.c:1062 +msgid "Uploading the files to the server" +msgstr "サーバーにファイルをアップロード中" -#: ../extensions/facebook/facebook-connection.c:310 -#: ../extensions/facebook/facebook-connection.c:461 -#: ../extensions/facebook/facebook-service.c:188 -#: ../extensions/facebook/facebook-service.c:290 -#: ../extensions/flicker_utils/flickr-connection.c:292 -#: ../extensions/flicker_utils/flickr-connection.c:439 -#: ../extensions/flicker_utils/flickr-service.c:219 -#: ../extensions/oauth/oauth-connection.c:356 -#: ../extensions/oauth/oauth-connection.c:431 -#: ../extensions/oauth/oauth-connection.c:535 -#: ../extensions/picasaweb/google-connection.c:344 -msgid "Connecting to the server" -msgstr "サーバーへ接続中" +#: extensions/facebook/facebook-service.c:1048 +#: extensions/flicker_utils/flickr-service.c:1611 +#: extensions/picasaweb/picasa-web-service.c:1174 +msgid "Getting the photo list" +msgstr "写真の一覧を取得中" -#: ../extensions/facebook/facebook.extension.in.in.h:1 +#: extensions/facebook/facebook.extension.desktop.in.in:3 msgid "Facebook" msgstr "Facebook" -#: ../extensions/facebook/facebook.extension.in.in.h:2 +#: extensions/facebook/facebook.extension.desktop.in.in:4 msgid "Upload images to Facebook" msgstr "画像を Facebook へアップロードします" -#: ../extensions/facebook/facebook-service.c:188 -#: ../extensions/facebook/facebook-service.c:290 -#: ../extensions/flicker_utils/flickr-service.c:219 -#: ../extensions/oauth/oauth-connection.c:356 -#: ../extensions/oauth/oauth-connection.c:431 -#: ../extensions/oauth/oauth-connection.c:535 -msgid "Getting account information" -msgstr "アカウント情報の取得中" - -#: ../extensions/facebook/facebook-service.c:396 -#: ../extensions/flicker_utils/flickr-service.c:323 -#: ../extensions/photobucket/photobucket-service.c:207 -#: ../extensions/picasaweb/picasa-web-service.c:209 -msgid "Getting the album list" -msgstr "アルバムの一覧の取得中" - -#: ../extensions/facebook/facebook-service.c:525 -#: ../extensions/flicker_utils/flickr-service.c:426 -#: ../extensions/flicker_utils/flickr-service.c:546 -#: ../extensions/flicker_utils/flickr-service.c:584 -#: ../extensions/photobucket/photobucket-service.c:316 -#: ../extensions/picasaweb/picasa-web-service.c:300 -msgid "Creating the new album" -msgstr "新しいアルバムの生成中" - -#: ../extensions/facebook/facebook-service.c:584 -#: ../extensions/flicker_utils/flickr-service.c:634 -#: ../extensions/photobucket/photobucket-service.c:373 -#: ../extensions/picasaweb/picasa-web-service.c:357 -#, c-format -msgid "Could not upload '%s': %s" -msgstr "'%s' をアップロードできませんでした: %s" - -#. Translators: %s is a filename -#: ../extensions/facebook/facebook-service.c:670 -#: ../extensions/flicker_utils/flickr-service.c:745 -#: ../extensions/photobucket/photobucket-service.c:430 -#: ../extensions/picasaweb/picasa-web-service.c:412 -#, c-format -msgid "Uploading '%s'" -msgstr "'%s' のアップロード中" - -#: ../extensions/facebook/facebook-service.c:886 -#: ../extensions/flicker_utils/flickr-service.c:914 -#: ../extensions/photobucket/photobucket-service.c:599 -#: ../extensions/picasaweb/picasa-web-service.c:605 -msgid "Uploading the files to the server" -msgstr "サーバーにファイルのアップロード中" - -#: ../extensions/facebook/facebook-service.c:1003 -#: ../extensions/flicker_utils/flickr-service.c:1077 -#: ../extensions/picasaweb/picasa-web-service.c:718 -msgid "Getting the photo list" -msgstr "写真の一覧の取得中" - -#: ../extensions/file_manager/actions.c:133 +#: extensions/file_manager/actions.c:137 msgid "New folder" msgstr "新しいフォルダー" -#: ../extensions/file_manager/actions.c:134 +#: extensions/file_manager/actions.c:138 msgid "Enter the folder name:" -msgstr "フォルダー名を入力して下さい: " +msgstr "フォルダー名を入力してください: " -#: ../extensions/file_manager/actions.c:400 -#: ../extensions/file_manager/callbacks.c:380 -#: ../extensions/file_manager/callbacks.c:842 +#: extensions/file_manager/actions.c:410 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "処理を実行できませんでした" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "ファイルを移動できませんでした" -#: ../extensions/file_manager/actions.c:401 -#: ../extensions/file_manager/callbacks.c:381 -#: ../extensions/file_manager/callbacks.c:843 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." msgstr "この場所にファイルを移動できませんが、コピーは可能です。" -#: ../extensions/file_manager/actions.c:563 -msgid "Could not open the location" -msgstr "その場所をオープンできませんでした" - -#: ../extensions/file_manager/actions.c:696 -msgid "" -"The folder is not empty, do you want to delete the folder and its content " -"permanently?" -msgstr "" -"そのフォルダーは空ではありませんが、そのフォルダーとその中身を完全に消去しま" -"すか?" +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 +#: extensions/file_tools/data/ui/color-picker-options.ui:206 +#: extensions/file_tools/data/ui/color-picker-options.ui:219 +#: gthumb/gtk-utils.h:38 +msgid "Copy" +msgstr "コピー" -#: ../extensions/file_manager/actions.c:712 -msgid "Could not delete the folder" -msgstr "フォルダーを削除できませんでした" +#: extensions/file_manager/actions.c:739 +msgid "Move To" +msgstr "移動先を選択" -#: ../extensions/file_manager/actions.c:773 -msgid "" -"The folder cannot be moved to the Trash. Do you want to delete it " -"permanently?" -msgstr "" -"そのフォルダーをゴミ箱へ移動できませんが、代わりにそれらを完全に消去しますか?" +#: extensions/file_manager/actions.c:739 +msgid "Copy To" +msgstr "コピー先を選択" -#: ../extensions/file_manager/actions.c:780 -msgid "Could not move the folder to the Trash" -msgstr "フォルダーをゴミ箱へ移動できませんでした" +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 +msgid "Move" +msgstr "移動" -#: ../extensions/file_manager/actions.c:816 -#: ../gthumb/gth-file-source-vfs.c:841 -#, c-format -msgid "Are you sure you want to permanently delete \"%s\"?" -msgstr "本当に \"%s\" を完全に消去しますか?" +#: extensions/file_manager/actions.c:870 +msgid "Could not open the location" +msgstr "その場所を開けませんでした" -#: ../extensions/file_manager/actions.c:826 -#: ../gthumb/gth-file-source-vfs.c:854 -msgid "If you delete a file, it will be permanently lost." -msgstr "ファイルを削除すると元に戻すことはできません。" +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 +msgid "Cut" +msgstr "切り取り" + +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 +msgid "Paste" +msgstr "貼り付け" + +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 +msgid "Copy to…" +msgstr "コピー先を選択…" + +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 +msgid "Move to…" +msgstr "移動先を選択…" + +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 +msgid "Move to Trash" +msgstr "ゴミ箱へ移動" + +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 +msgid "Delete" +msgstr "削除" + +#: extensions/file_manager/callbacks.c:92 +msgid "Open with the File Manager" +msgstr "ファイルマネージャーで開く" + +#: extensions/file_manager/callbacks.c:97 +msgid "Create Folder" +msgstr "フォルダーを作成" + +#: extensions/file_manager/callbacks.c:104 +msgid "Paste Into Folder" +msgstr "フォルダーの中に貼り付け" + +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 +msgid "Duplicate" +msgstr "複製" + +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "完全に削除" + +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "GIMP で開く" -#: ../extensions/file_manager/actions.c:920 -msgid "Move To" -msgstr "移動先の選択" +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 +msgid "Home Folder" +msgstr "ホームフォルダー" -#: ../extensions/file_manager/actions.c:920 -msgid "Copy To" -msgstr "コピー先の選択" +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 +msgid "Open _With" +msgstr "次で開く(_W)" -#: ../extensions/file_manager/actions.c:924 -msgid "Move" -msgstr "移動する" +#: extensions/file_manager/callbacks.c:1006 +#, c-format +msgid "Do you want to move “%s” to “%s”?" +msgstr "“%s”を“%s”へ移動しますか?" -#: ../extensions/file_manager/actions.c:924 -msgid "Copy" -msgstr "コピーする" +#: extensions/file_manager/callbacks.c:1008 +#, c-format +msgid "Do you want to copy “%s” to “%s”?" +msgstr "“%s”を“%s”にコピーしますか?" -#: ../extensions/file_manager/callbacks.c:163 -#: ../extensions/file_manager/callbacks.c:199 -msgid "Create _Folder" -msgstr "フォルダーの作成(_F)" - -#: ../extensions/file_manager/callbacks.c:164 -#: ../extensions/file_manager/callbacks.c:200 -msgid "Create a new empty folder inside this folder" -msgstr "このフォルダーの中に新しい空のフォルダーを作成します" - -#: ../extensions/file_manager/callbacks.c:179 -msgid "D_uplicate" -msgstr "複製(_U)" - -#: ../extensions/file_manager/callbacks.c:180 -msgid "Duplicate the selected files" -msgstr "選択したファイルの複製を作成します" - -#: ../extensions/file_manager/callbacks.c:183 -#: ../extensions/file_manager/callbacks.c:219 -#: ../gthumb/gth-file-source-vfs.c:813 -msgid "Mo_ve to Trash" -msgstr "ゴミ箱へ移動する(_V)" - -#: ../extensions/file_manager/callbacks.c:184 -msgid "Move the selected files to the Trash" -msgstr "選択したファイルをゴミ箱へ移動します" - -#: ../extensions/file_manager/callbacks.c:187 -#: ../extensions/file_manager/callbacks.c:223 -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:5 -msgid "_Delete" -msgstr "削除する(_D)" +#: extensions/file_manager/callbacks.c:1015 +#, c-format +msgid "Do you want to move the dragged files to “%s”?" +msgstr "ドラッグしたファイルを“%s”へ移動しますか?" -#: ../extensions/file_manager/callbacks.c:188 -msgid "Delete the selected files" -msgstr "選択したファイルを削除します" - -#: ../extensions/file_manager/callbacks.c:191 -#: ../extensions/file_manager/callbacks.c:203 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:2 -msgid "_Rename" -msgstr "ファイル名の変更(_R)" +#: extensions/file_manager/callbacks.c:1017 +#, c-format +msgid "Do you want to copy the dragged files to “%s”?" +msgstr "ドラッグしたファイルを“%s”にコピーしますか?" -#: ../extensions/file_manager/callbacks.c:192 -msgid "Rename the selected files" -msgstr "選択したファイルの名前を変更します" - -#: ../extensions/file_manager/callbacks.c:195 -msgid "Open with the _File Manager" -msgstr "ファイルマネージャーで開く(_F)" - -#: ../extensions/file_manager/callbacks.c:215 -msgid "_Paste Into Folder" -msgstr "フォルダーの中に貼り付け(_P)" - -#: ../extensions/file_manager/callbacks.c:227 -#: ../extensions/file_manager/callbacks.c:236 -msgid "Copy to..." -msgstr "コピーする..." - -#: ../extensions/file_manager/callbacks.c:228 -msgid "Copy the selected folder to another folder" -msgstr "選択したフォルダーを別のフォルダーへコピーします" - -#: ../extensions/file_manager/callbacks.c:231 -#: ../extensions/file_manager/callbacks.c:240 -msgid "Move to..." -msgstr "移動する..." - -#: ../extensions/file_manager/callbacks.c:232 -msgid "Move the selected folder to another folder" -msgstr "選択したフォルダーを別のフォルダーへ移動します" - -#: ../extensions/file_manager/callbacks.c:237 -msgid "Copy the selected files to another folder" -msgstr "選択したファイルを別のフォルダーへコピーします" - -#: ../extensions/file_manager/callbacks.c:241 -msgid "Move the selected files to another folder" -msgstr "選択したファイルを別のフォルダーへ移動します" - -#: ../extensions/file_manager/callbacks.c:1003 -#: ../extensions/find_duplicates/gth-find-duplicates.c:581 -#: ../gthumb/gth-browser.c:5015 ../gthumb/gth-browser.c:5049 -msgid "Could not perform the operation" -msgstr "処理を実行できませんでした" +#: extensions/file_manager/callbacks.c:1025 +msgid "_Copy" +msgstr "コピー(_P)" -#: ../extensions/file_manager/file_manager.extension.in.in.h:1 +#: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "ファイルマネージャー" -#: ../extensions/file_manager/file_manager.extension.in.in.h:2 +#: extensions/file_manager/file_manager.extension.desktop.in.in:4 msgid "File manager operations." msgstr "ファイルマネージャーの操作を提供します" -#: ../extensions/file_manager/gth-delete-task.c:62 -msgid "Deleting files" -msgstr "ファイルの削除中" +#: extensions/file_manager/file_manager.extension.desktop.in.in:8 +msgid "system-file-manager" +msgstr "system-file-manager" + +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "コントラストを調整" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "ひっくり返す" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "ミラーリング" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "時計回りに回転" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "反時計回りに回転" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "切り抜く" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "サイズを変更" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:1 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:56 +#: extensions/file_tools/data/ui/curves-options.ui:35 +#: extensions/file_tools/data/ui/sharpen-options.ui:45 msgid "_Preview" msgstr "プレビュー(_P)" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:2 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:94 msgid "B_rightness:" msgstr "輝度(_R):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:3 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:113 msgid "Con_trast:" msgstr "コントラスト(_T):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:4 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:132 msgid "_Saturation:" msgstr "彩度(_S):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:5 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:213 msgid "G_amma:" msgstr "ガンマ(_A):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:6 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:230 msgid "Cyan-_Red:" msgstr "シアン-赤(_R):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:7 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:249 msgid "_Magenta-Green:" -msgstr "マジェンタ-緑(_M):" +msgstr "マゼンタ-緑(_M):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:8 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:268 msgid "_Yellow-Blue:" msgstr "黄-青(_Y):" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:9 +#: extensions/file_tools/data/ui/adjust-colors-options.ui:294 msgid "Color Levels" msgstr "色のレベル" -#: ../extensions/file_tools/data/ui/adjust-colors-options.ui.h:10 -#: ../extensions/file_tools/data/ui/sharpen-options.ui.h:5 -msgid "_Reset" -msgstr "元に戻す(_R)" +#: extensions/file_tools/data/ui/color-picker-options.ui:40 +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:395 +#: extensions/red_eye_removal/data/ui/red-eye-removal-options.ui:36 +msgid "Position" +msgstr "位置" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:1 -msgid "_Position:" -msgstr "位置(_P):" +#: extensions/file_tools/data/ui/color-picker-options.ui:63 +#: extensions/red_eye_removal/data/ui/red-eye-removal-options.ui:60 +msgid "_X:" +msgstr "X 位置(_X):" + +#: extensions/file_tools/data/ui/color-picker-options.ui:77 +#: extensions/red_eye_removal/data/ui/red-eye-removal-options.ui:74 +msgid "_Y:" +msgstr "Y 位置(_Y):" -#. this is used to separate the dimensions, for example: 120 × 250 -#: ../extensions/file_tools/data/ui/crop-options.ui.h:4 -msgid "×" -msgstr "×" +#: extensions/file_tools/data/ui/color-picker-options.ui:175 +msgid "Color" +msgstr "色" + +#: extensions/file_tools/data/ui/crop-options.ui:31 +#: extensions/file_tools/data/ui/resize-options.ui:9 +#: extensions/file_tools/data/ui/rotate-options.ui:9 +#: extensions/file_tools/gth-file-tool-crop.c:661 +#: extensions/file_tools/gth-file-tool-resize.c:759 +#: extensions/file_tools/gth-file-tool-rotate.c:617 +#: gthumb/gth-file-chooser-dialog.c:262 +msgid "Options" +msgstr "オプション" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:5 +#: extensions/file_tools/data/ui/crop-options.ui:77 msgid "_Grid:" msgstr "格子(_G):" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:6 +#: extensions/file_tools/data/ui/crop-options.ui:141 +msgid "Selection" +msgstr "選択範囲" + +#: extensions/file_tools/data/ui/crop-options.ui:201 +#: extensions/file_tools/data/ui/resize-options.ui:170 +#: extensions/resize_images/data/ui/resize-images.ui:106 +msgid "_Width:" +msgstr "幅(_W):" + +#: extensions/file_tools/data/ui/crop-options.ui:242 +#: extensions/file_tools/data/ui/resize-options.ui:184 +msgid "Heigh_t:" +msgstr "高さ(_T):" + +#: extensions/file_tools/data/ui/crop-options.ui:257 +msgid "_Position:" +msgstr "位置(_P):" + +#: extensions/file_tools/data/ui/crop-options.ui:350 msgid "Maximize" msgstr "最大化" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:7 +#: extensions/file_tools/data/ui/crop-options.ui:373 msgid "Center" msgstr "中央" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:8 -#: ../extensions/red_eye_removal/data/ui/red-eye-removal-options.ui.h:3 -msgid "Selection" -msgstr "選択範囲" +#: extensions/file_tools/data/ui/crop-options.ui:418 +#: extensions/file_tools/data/ui/resize-options.ui:375 +#: gthumb/gth-main-default-tests.c:406 +msgid "Aspect ratio" +msgstr "縦横比" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:9 -#: ../extensions/file_tools/data/ui/resize-options.ui.h:5 +#: extensions/file_tools/data/ui/crop-options.ui:503 +#: extensions/file_tools/data/ui/resize-options.ui:460 msgid "I_nvert aspect ratio" msgstr "縦横比を反転させる(_N)" #. after the colon there is a control to select the size in pixels -#: ../extensions/file_tools/data/ui/crop-options.ui.h:11 +#: extensions/file_tools/data/ui/crop-options.ui:525 msgid "M_ultiple of:" msgstr "次の整数倍(_U): " #. abbreviation of pixel -#: ../extensions/file_tools/data/ui/crop-options.ui.h:13 +#: extensions/file_tools/data/ui/crop-options.ui:559 msgid "px" msgstr "ピクセル毎" -#: ../extensions/file_tools/data/ui/crop-options.ui.h:14 -#: ../extensions/file_tools/data/ui/resize-options.ui.h:6 -msgid "Aspect ratio" -msgstr "縦横比" - -#: ../extensions/file_tools/data/ui/crop-options.ui.h:15 -msgid "C_rop" -msgstr "切り抜く(_R)" +#: extensions/file_tools/data/ui/curves-options.ui:53 +msgid "Include current channel" +msgstr "現在のチャンネルを含む" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:1 -#: ../extensions/resize_images/data/ui/resize-images.ui.h:3 -msgid "_Width:" -msgstr "幅(_W):" +#: extensions/file_tools/data/ui/resize-options.ui:51 +msgid "High _quality" +msgstr "高品質を維持する(_Q)" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:2 -msgid "Heigh_t:" -msgstr "高さ(_T):" +#: extensions/file_tools/data/ui/resize-options.ui:105 +#: extensions/image_print/data/ui/print-layout.ui:1122 +msgid "pixels" +msgstr "ピクセル" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:3 -msgid "Set the image size to this value" -msgstr "画像のサイズをこの値にします" +#: extensions/file_tools/data/ui/resize-options.ui:109 +#: extensions/resize_images/data/ui/resize-images.ui:32 +msgid "%" +msgstr "%" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:4 -#: ../gthumb/gth-main-default-metadata.c:47 +#: extensions/file_tools/data/ui/resize-options.ui:137 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" -msgstr "画像の寸法" - -#: ../extensions/file_tools/data/ui/resize-options.ui.h:7 -msgid "High _quality" -msgstr "高品質を維持する(_Q)" +msgstr "画像のサイズ" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:8 -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:11 -msgid "Options" -msgstr "オプション" +#: extensions/file_tools/data/ui/resize-options.ui:295 +#: extensions/file_tools/data/ui/resize-options.ui:296 +#: extensions/file_tools/data/ui/resize-options.ui:322 +#: extensions/file_tools/data/ui/resize-options.ui:323 +msgid "Set the image size to this value" +msgstr "画像のサイズをこの値にします" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:9 +#: extensions/file_tools/data/ui/resize-options.ui:515 msgid "Original dimensions:" -msgstr "オリジナルの寸法:" +msgstr "オリジナルのサイズ:" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:10 +#: extensions/file_tools/data/ui/resize-options.ui:530 msgid "Scale factor:" msgstr "倍率:" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:11 +#: extensions/file_tools/data/ui/resize-options.ui:581 msgid "New dimensions:" -msgstr "新しい寸法:" +msgstr "新しいサイズ:" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:12 -#: ../extensions/image_print/data/ui/print-layout.ui.h:29 -msgid "pixels" -msgstr "ピクセル" +#: extensions/file_tools/data/ui/rotate-options.ui:77 +msgid "Grid:" +msgstr "格子:" -#: ../extensions/file_tools/data/ui/resize-options.ui.h:14 -#: ../extensions/resize_images/data/ui/resize-images.ui.h:12 -#, no-c-format -msgid "%" -msgstr "%" +#: extensions/file_tools/data/ui/rotate-options.ui:90 +msgid "_Background:" +msgstr "背景色(_B):" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:1 -msgid "Align" -msgstr "配置" +#: extensions/file_tools/data/ui/rotate-options.ui:116 +msgid "Pick a background color" +msgstr "背景色を取得" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:2 -msgid "Angle" -msgstr "角度" +#: extensions/file_tools/data/ui/rotate-options.ui:134 +msgid "_Transparent" +msgstr "透明な背景にする(_T)" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:3 -msgid "Point 1:" -msgstr "ポイント1:" +#: extensions/file_tools/data/ui/rotate-options.ui:182 +msgid "Original size" +msgstr "オリジナルのサイズ" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:4 -msgid "Point 2:" -msgstr "ポイント2:" +#: extensions/file_tools/data/ui/rotate-options.ui:185 +msgid "Bounding box" +msgstr "連続した矩形" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:5 -msgid "Keep aspect ratio" -msgstr "オリジナルの縦横比を保持する" +#: extensions/file_tools/data/ui/rotate-options.ui:188 +msgid "Crop borders" +msgstr "境界線で切り抜く" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:6 -msgid "Image size" -msgstr "画像のサイズ" +#: extensions/file_tools/data/ui/rotate-options.ui:222 +msgid "Angle" +msgstr "角度" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:7 -msgid "Grid:" -msgstr "格子:" +#: extensions/file_tools/data/ui/rotate-options.ui:281 +msgid "Align" +msgstr "配置" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:8 -msgid "Pick a background color" -msgstr "背景色の取得" +#: extensions/file_tools/data/ui/rotate-options.ui:326 +msgid "Image size" +msgstr "画像のサイズ" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:9 -msgid "_Transparent" -msgstr "透明な背景にする(_T)" +#: extensions/file_tools/data/ui/rotate-options.ui:416 +msgid "Point 1:" +msgstr "ポイント 1:" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:10 -msgid "_Background:" -msgstr "背景色(_B):" +#: extensions/file_tools/data/ui/rotate-options.ui:433 +msgid "Point 2:" +msgstr "ポイント 2:" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:12 -msgid "Reset" -msgstr "元に戻す" +#: extensions/file_tools/data/ui/rotate-options.ui:447 +msgid "Keep aspect ratio" +msgstr "オリジナルの縦横比を保持する" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:13 +#: extensions/file_tools/data/ui/rotate-options.ui:528 msgid "" "Draw a line on the image \n" "to set the alignment." @@ -2478,2364 +2335,2603 @@ "位置を調整するために\n" "画像に線を描画します" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:15 +#: extensions/file_tools/data/ui/rotate-options.ui:563 msgid "Parallel" msgstr "平行に移動する" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:16 +#: extensions/file_tools/data/ui/rotate-options.ui:580 msgid "Perpendicular" msgstr "垂直に移動する" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:17 +#: extensions/file_tools/data/ui/rotate-options.ui:604 msgid "Alignment" msgstr "配置" -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:18 -msgid "Original size" -msgstr "オリジナルのサイズ" - -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:19 -msgid "Bounding box" -msgstr "連続した矩形" - -#: ../extensions/file_tools/data/ui/rotate-options.ui.h:20 -msgid "Crop borders" -msgstr "境界線で切り抜く" - -#: ../extensions/file_tools/data/ui/sharpen-options.ui.h:1 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:28 -msgid "_Preview:" -msgstr "プレビュー(_P):" - -#: ../extensions/file_tools/data/ui/sharpen-options.ui.h:2 +#: extensions/file_tools/data/ui/sharpen-options.ui:83 msgid "Threshold:" msgstr "しきい値:" -#: ../extensions/file_tools/data/ui/sharpen-options.ui.h:3 +#: extensions/file_tools/data/ui/sharpen-options.ui:133 msgid "Radius:" msgstr "半径:" -#: ../extensions/file_tools/data/ui/sharpen-options.ui.h:4 +#: extensions/file_tools/data/ui/sharpen-options.ui:151 msgid "Amount:" msgstr "量:" -#: ../extensions/file_tools/file_tools.extension.in.in.h:1 -msgid "Image tools" -msgstr "画像の修正" +#. Translators: the first number is converted to the second number +#: extensions/file_tools/gth-curve-editor.c:417 +#, c-format +msgid "%d → %d" +msgstr "%d → %d" + +#: extensions/file_tools/gth-curve-editor.c:894 gthumb/gth-histogram-view.c:838 +msgid "Linear scale" +msgstr "線形比にします" + +#: extensions/file_tools/gth-curve-editor.c:906 gthumb/gth-histogram-view.c:850 +msgid "Logarithmic scale" +msgstr "対数比にします" + +#: extensions/file_tools/gth-curve-editor.c:926 gthumb/gth-histogram-view.c:870 +msgid "Channel:" +msgstr "チャンネル:" + +#: extensions/file_tools/gth-curve-editor.c:948 gthumb/gth-histogram-view.c:891 +msgid "Value" +msgstr "明度" + +#: extensions/file_tools/gth-curve-editor.c:953 gthumb/gth-histogram-view.c:896 +msgid "Red" +msgstr "赤" + +#: extensions/file_tools/gth-curve-editor.c:958 gthumb/gth-histogram-view.c:901 +msgid "Green" +msgstr "緑" -#: ../extensions/file_tools/file_tools.extension.in.in.h:2 -msgid "Basic tools to modify images." -msgstr "画像を変更するための基本ツールを提供します" +#: extensions/file_tools/gth-curve-editor.c:963 gthumb/gth-histogram-view.c:906 +msgid "Blue" +msgstr "青" + +#: extensions/file_tools/gth-curve-editor.c:982 +#: extensions/file_tools/gth-file-tool-adjust-colors.c:557 +#: extensions/file_tools/gth-file-tool-curves.c:819 +#: extensions/file_tools/gth-file-tool-rotate.c:604 +#: extensions/file_tools/gth-file-tool-sharpen.c:364 +#: gthumb/gth-test-aspect-ratio.c:218 +msgid "Reset" +msgstr "リセット" -#: ../extensions/file_tools/gth-file-tool-adjust-colors.c:530 -msgid "Adjust Colors..." -msgstr "色の調整...." +#: extensions/file_tools/gth-curve-preset-editor-dialog.c:267 +#: extensions/file_tools/gth-file-tool-curves.c:686 +#: extensions/file_tools/gth-file-tool-curves.c:847 +msgid "Presets" +msgstr "プリセット" + +#: extensions/file_tools/gth-file-tool-adjust-colors.c:340 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 +#: extensions/file_tools/gth-file-tool-crop.c:632 +#: extensions/file_tools/gth-file-tool-curves.c:287 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 +#: extensions/file_tools/gth-file-tool-flip.c:63 +#: extensions/file_tools/gth-file-tool-grayscale.c:230 +#: extensions/file_tools/gth-file-tool-lomo.c:182 +#: extensions/file_tools/gth-file-tool-mirror.c:63 +#: extensions/file_tools/gth-file-tool-negative.c:100 +#: extensions/file_tools/gth-file-tool-rotate-left.c:63 +#: extensions/file_tools/gth-file-tool-rotate-right.c:63 +#: extensions/file_tools/gth-file-tool-rotate.c:571 +msgid "Applying changes" +msgstr "変更を適用中" -#: ../extensions/file_tools/gth-file-tool-adjust-colors.c:530 +#: extensions/file_tools/gth-file-tool-adjust-colors.c:598 msgid "Adjust Colors" -msgstr "色の調整" +msgstr "色を調整" -#: ../extensions/file_tools/gth-file-tool-adjust-colors.c:531 +#: extensions/file_tools/gth-file-tool-adjust-colors.c:599 msgid "Change brightness, contrast, saturation and gamma level of the image" msgstr "画像の輝度やコントラスト、彩度、ガンマレベルを変更します" -#: ../extensions/file_tools/gth-file-tool-crop.c:424 -#: ../extensions/file_tools/gth-file-tool-resize.c:498 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:536 +msgid "Stretch" +msgstr "" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:538 +#, no-c-format +msgid "Stretch the histogram after trimming 0.5% from both ends" +msgstr "" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:542 +msgid "Equalize" +msgstr "均一化" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:543 +msgid "Equalize the histogram using the square root function" +msgstr "" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:547 +#: extensions/file_tools/gth-file-tool-crop.c:473 +#: extensions/file_tools/gth-file-tool-rotate.c:400 +msgid "Uniform" +msgstr "均一" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:548 +msgid "Equalize the histogram using the linear function" +msgstr "" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 +msgid "Adjust Contrast" +msgstr "コントラストを調整" + +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 +msgid "Automatic contrast adjustment" +msgstr "コントラストを自動調整します" + +#: extensions/file_tools/gth-file-tool-color-picker.c:246 +msgid "Color Picker" +msgstr "色を取得" + +#: extensions/file_tools/gth-file-tool-color-picker.c:249 +msgid "Pick a color from the image" +msgstr "画像から色を取得します" + +#: extensions/file_tools/gth-file-tool-crop.c:439 +#: extensions/file_tools/gth-file-tool-resize.c:589 +#: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "矩形" -#: ../extensions/file_tools/gth-file-tool-crop.c:425 -#: ../extensions/file_tools/gth-file-tool-resize.c:499 +#: extensions/file_tools/gth-file-tool-crop.c:440 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format -msgid "%d x %d (Image)" -msgstr "%d x %d (画像)" +msgid "%d × %d (Image)" +msgstr "%d × %d (画像)" -#: ../extensions/file_tools/gth-file-tool-crop.c:428 -#: ../extensions/file_tools/gth-file-tool-resize.c:503 +#: extensions/file_tools/gth-file-tool-crop.c:443 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format -msgid "%d x %d (Screen)" -msgstr "%d x %d (画面)" - -#: ../extensions/file_tools/gth-file-tool-crop.c:432 -#: ../extensions/file_tools/gth-file-tool-resize.c:508 -msgid "5:4" +msgid "%d × %d (Screen)" +msgstr "%d × %d (画面)" + +#: extensions/file_tools/gth-file-tool-crop.c:447 +#: extensions/file_tools/gth-file-tool-resize.c:599 +#: gthumb/gth-test-aspect-ratio.c:48 +msgid "5∶4" msgstr "5:4" -#: ../extensions/file_tools/gth-file-tool-crop.c:433 -#: ../extensions/file_tools/gth-file-tool-resize.c:509 -msgid "4:3 (DVD, Book)" +#: extensions/file_tools/gth-file-tool-crop.c:448 +#: extensions/file_tools/gth-file-tool-resize.c:600 +#: gthumb/gth-test-aspect-ratio.c:49 +msgid "4∶3 (DVD, Book)" msgstr "4:3 (DVD や書籍)" -#: ../extensions/file_tools/gth-file-tool-crop.c:434 -#: ../extensions/file_tools/gth-file-tool-resize.c:510 -msgid "7:5" +#: extensions/file_tools/gth-file-tool-crop.c:449 +#: extensions/file_tools/gth-file-tool-resize.c:601 +#: gthumb/gth-test-aspect-ratio.c:50 +msgid "7∶5" msgstr "7:5" -#: ../extensions/file_tools/gth-file-tool-crop.c:435 -#: ../extensions/file_tools/gth-file-tool-resize.c:511 -msgid "3:2 (Postcard)" +#: extensions/file_tools/gth-file-tool-crop.c:450 +#: extensions/file_tools/gth-file-tool-resize.c:602 +#: gthumb/gth-test-aspect-ratio.c:51 +msgid "3∶2 (Postcard)" msgstr "3:2 (はがき)" -#: ../extensions/file_tools/gth-file-tool-crop.c:436 -#: ../extensions/file_tools/gth-file-tool-resize.c:512 -msgid "16:10" +#: extensions/file_tools/gth-file-tool-crop.c:451 +#: extensions/file_tools/gth-file-tool-resize.c:603 +#: gthumb/gth-test-aspect-ratio.c:52 +msgid "16∶10" msgstr "16:10" -#: ../extensions/file_tools/gth-file-tool-crop.c:437 -#: ../extensions/file_tools/gth-file-tool-resize.c:513 -msgid "16:9 (DVD)" +#: extensions/file_tools/gth-file-tool-crop.c:452 +#: extensions/file_tools/gth-file-tool-resize.c:604 +#: gthumb/gth-test-aspect-ratio.c:53 +msgid "16∶9 (DVD)" msgstr "16:9 (DVD)" -#: ../extensions/file_tools/gth-file-tool-crop.c:438 -#: ../extensions/file_tools/gth-file-tool-resize.c:514 -msgid "1.85:1" +#: extensions/file_tools/gth-file-tool-crop.c:453 +#: extensions/file_tools/gth-file-tool-resize.c:605 +#: gthumb/gth-test-aspect-ratio.c:54 +msgid "1.85∶1" msgstr "1.85:1" -#: ../extensions/file_tools/gth-file-tool-crop.c:439 -#: ../extensions/file_tools/gth-file-tool-resize.c:515 -msgid "2.39:1" +#: extensions/file_tools/gth-file-tool-crop.c:454 +#: extensions/file_tools/gth-file-tool-resize.c:606 +#: gthumb/gth-test-aspect-ratio.c:55 +msgid "2.39∶1" msgstr "2.39:1" -#: ../extensions/file_tools/gth-file-tool-crop.c:440 -#: ../extensions/file_tools/gth-file-tool-resize.c:516 -#: ../extensions/image_print/data/ui/print-layout.ui.h:2 -#: ../extensions/rename_series/gth-template-selector.c:234 +#. Translators: this is an option for the format -> Format: Custom +#: extensions/file_tools/gth-file-tool-crop.c:455 +#: extensions/file_tools/gth-file-tool-resize.c:607 +#: extensions/image_print/data/ui/print-layout.ui:17 +#: extensions/rename_series/gth-template-selector.c:248 +#: gthumb/gth-test-aspect-ratio.c:193 msgid "Custom" msgstr "指定する" -#: ../extensions/file_tools/gth-file-tool-crop.c:455 -#: ../extensions/file_tools/gth-file-tool-rotate.c:416 +#: extensions/file_tools/gth-file-tool-crop.c:470 +#: extensions/file_tools/gth-file-tool-rotate.c:397 msgid "Rule of Thirds" msgstr "1/3 の規則" -#: ../extensions/file_tools/gth-file-tool-crop.c:456 -#: ../extensions/file_tools/gth-file-tool-rotate.c:417 +#: extensions/file_tools/gth-file-tool-crop.c:471 +#: extensions/file_tools/gth-file-tool-rotate.c:398 msgid "Golden Sections" msgstr "黄金分割" -#: ../extensions/file_tools/gth-file-tool-crop.c:457 -#: ../extensions/file_tools/gth-file-tool-rotate.c:418 +#: extensions/file_tools/gth-file-tool-crop.c:472 +#: extensions/file_tools/gth-file-tool-rotate.c:399 msgid "Center Lines" msgstr "中央線" -#: ../extensions/file_tools/gth-file-tool-crop.c:458 -#: ../extensions/file_tools/gth-file-tool-rotate.c:419 -msgid "Uniform" -msgstr "均一" +#: extensions/file_tools/gth-file-tool-curves.c:410 +msgid "Add to Presets" +msgstr "プリセットに追加" + +#: extensions/file_tools/gth-file-tool-curves.c:411 +msgid "Enter the preset name:" +msgstr "プリセット名を入力してください:" + +#: extensions/file_tools/gth-file-tool-curves.c:533 +#: extensions/gstreamer_tools/actions.c:69 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 +msgid "Could not save the file" +msgstr "ファイルを保存できませんでした" -#: ../extensions/file_tools/gth-file-tool-crop.c:614 -msgid "Crop..." -msgstr "切り抜き..." +#: extensions/file_tools/gth-file-tool-curves.c:833 +msgid "Add to presets" +msgstr "プリセットに追加" + +#: extensions/file_tools/gth-file-tool-curves.c:892 +msgid "Color Curves" +msgstr "トーンカーブ" + +#: extensions/file_tools/gth-file-tool-curves.c:893 +msgid "Adjust color curves" +msgstr "色カーブを調整します" + +#: extensions/file_tools/gth-file-tool-effects.c:359 +msgid "Special Effects" +msgstr "特殊効果" + +#. Translators: this is the name of a filter that produces warmer colors +#: extensions/file_tools/gth-file-tool-effects.c:403 +msgid "Warmer" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-crop.c:614 -msgid "Crop" -msgstr "切り抜き" +#. Translators: this is the name of a filter that produces cooler colors +#: extensions/file_tools/gth-file-tool-effects.c:447 +msgid "Cooler" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-desaturate.c:68 -#: ../extensions/file_tools/gth-file-tool-negative.c:68 -msgid "Applying changes" -msgstr "変更点の適用中" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:495 +msgid "Soil" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-desaturate.c:203 -msgid "Desaturate" -msgstr "脱色" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:544 +msgid "Desert" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-enhance.c:119 -msgid "White balance correction" -msgstr "ホワイトバランスの補正中" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:592 +msgid "Arctic" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-enhance.c:342 -msgid "Enhance Colors" -msgstr "色を鮮やかにする" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:640 +msgid "Mangos" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-enhance.c:343 -msgid "Automatic white balance correction" -msgstr "自動的にホワイトバランスを補正します" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:688 +msgid "Fresh Blue" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-equalize.c:86 -msgid "Equalizing image histogram" -msgstr "画像のヒストグラムの均一化中" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:735 +msgid "Cherry" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-equalize.c:275 -msgid "Equalize" -msgstr "均一化" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:784 +msgid "Vintage" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-equalize.c:276 -msgid "Equalize image histogram" -msgstr "画像のヒストグラムを均一にします" +#. Translators: this is the name of an image filter +#: extensions/file_tools/gth-file-tool-effects.c:906 +msgid "Blurred Edges" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-flip.c:87 -msgid "Flip" -msgstr "ひっくり返す" +#. Translators: this is the name of an image filter that produces darker edges +#: extensions/file_tools/gth-file-tool-effects.c:941 +msgid "Vignette" +msgstr "" -#: ../extensions/file_tools/gth-file-tool-flip.c:88 +#: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "画像を垂直方向にひっくり返します" -#: ../extensions/file_tools/gth-file-tool-mirror.c:87 -msgid "Mirror" -msgstr "ミラーリング" +#: extensions/file_tools/gth-file-tool-grayscale.c:373 +msgid "_Brightness" +msgstr "輝度(_B)" + +#: extensions/file_tools/gth-file-tool-grayscale.c:378 +msgid "_Saturation" +msgstr "彩度(_S)" -#: ../extensions/file_tools/gth-file-tool-mirror.c:88 +#: extensions/file_tools/gth-file-tool-grayscale.c:383 +msgid "_Average" +msgstr "" + +#: extensions/file_tools/gth-file-tool-grayscale.c:498 +msgid "Grayscale" +msgstr "グレースケール" + +#: extensions/file_tools/gth-file-tool-lomo.c:183 +msgid "Lomo" +msgstr "" + +#: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "画像を水平方向に写像します" -#: ../extensions/file_tools/gth-file-tool-negative.c:197 +#: extensions/file_tools/gth-file-tool-negative.c:101 msgid "Negative" msgstr "ネガティブ" -#: ../extensions/file_tools/gth-file-tool-redo.c:75 +#: extensions/file_tools/gth-file-tool-redo.c:77 msgid "Redo" msgstr "やり直す" -#: ../extensions/file_tools/gth-file-tool-resize.c:680 -msgid "Resize..." -msgstr "サイズの変更..." - -#: ../extensions/file_tools/gth-file-tool-resize.c:680 -msgid "Resize" -msgstr "サイズの変更..." - -#: ../extensions/file_tools/gth-file-tool-rotate.c:636 -msgid "Rotate..." -msgstr "回転する..." - -#: ../extensions/file_tools/gth-file-tool-rotate.c:636 -msgid "Rotate" -msgstr "回転する" - -#: ../extensions/file_tools/gth-file-tool-rotate.c:637 -msgid "Freely rotate the image" -msgstr "画像を自在に回転します" +#. resize the original image +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 +#: gthumb/gth-filter-grid.c:573 +msgid "Resizing images" +msgstr "画像サイズの変更中" -#: ../extensions/file_tools/gth-file-tool-rotate-left.c:87 -#: ../extensions/image_rotation/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-rotate-left.c:90 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" -msgstr "反時計回りに回転する" +msgstr "反時計回りに回転" -#: ../extensions/file_tools/gth-file-tool-rotate-left.c:88 +#: extensions/file_tools/gth-file-tool-rotate-left.c:91 msgid "Rotate the image by 90 degrees counterclockwise" -msgstr "画像を反時計回りに90°回転します" +msgstr "画像を反時計回りに 90° 回転します" -#: ../extensions/file_tools/gth-file-tool-rotate-right.c:87 -#: ../extensions/image_rotation/callbacks.c:49 +#: extensions/file_tools/gth-file-tool-rotate-right.c:90 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" -msgstr "時計回りに回転する" +msgstr "時計回りに回転" -#: ../extensions/file_tools/gth-file-tool-rotate-right.c:88 +#: extensions/file_tools/gth-file-tool-rotate-right.c:91 msgid "Rotate the image by 90 degrees clockwise" -msgstr "画像を時計回りに90°回転します" +msgstr "画像を時計回りに 90° 回転します" + +#: extensions/file_tools/gth-file-tool-rotate.c:682 +msgid "Rotate" +msgstr "回転する" -#: ../extensions/file_tools/gth-file-tool-save-as.c:70 -msgid "Save As" -msgstr "名前を付けて保存する" +#: extensions/file_tools/gth-file-tool-save-as.c:70 +#: gthumb/resources/gears-menu.ui:21 +msgid "Save As…" +msgstr "名前を付けて保存…" -#: ../extensions/file_tools/gth-file-tool-save.c:66 +#: extensions/file_tools/gth-file-tool-save.c:66 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" -msgstr "保存する" +msgstr "保存" -#: ../extensions/file_tools/gth-file-tool-sharpen.c:100 +#: extensions/file_tools/gth-file-tool-sharpen.c:334 msgid "Sharpening image" msgstr "画像の鮮明化" -#: ../extensions/file_tools/gth-file-tool-sharpen.c:458 -msgid "Enhance Focus..." -msgstr "焦点を合わせる..." - -#: ../extensions/file_tools/gth-file-tool-sharpen.c:458 +#: extensions/file_tools/gth-file-tool-sharpen.c:435 msgid "Enhance Focus" msgstr "焦点を合わせる" -#: ../extensions/file_tools/gth-file-tool-undo.c:75 +#: extensions/file_tools/gth-file-tool-undo.c:77 msgid "Undo" msgstr "元に戻す" -#: ../extensions/find_duplicates/callbacks.c:48 -msgid "Find _Duplicates..." -msgstr "重複した画像の検索(_D)..." - -#: ../extensions/find_duplicates/callbacks.c:49 -msgid "Find duplicated files in the current location" -msgstr "現在のフォルダーで重複しているファイルを検索します" +#: extensions/find_duplicates/callbacks.c:37 +msgid "Find _Duplicates…" +msgstr "重複ファイルを検索(_D)…" -#: ../extensions/find_duplicates/data/ui/find-duplicates-choose-folders.ui.h:1 +#: extensions/find_duplicates/data/ui/find-duplicates-choose-folders.ui:26 msgid "_Folders:" msgstr "フォルダーの一覧(_F):" -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:1 -msgid "Search for Duplicates" -msgstr "重複したファイルの検索" - -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:2 +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:225 msgid "Duplicates:" msgstr "重複の候補:" -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:3 +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:291 msgid "Files:" msgstr "ファイルの一覧:" -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:4 -#: ../gthumb/gth-browser-actions-entries.h:33 +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:366 +#: gthumb/gth-main-default-metadata.c:32 +msgid "File" +msgstr "ファイル" + +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:381 +msgid "Last modified" +msgstr "更新日時" + +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:438 msgid "_View" msgstr "表示(_V)" -#: ../extensions/find_duplicates/data/ui/find-duplicates-dialog.ui.h:6 +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:454 +#: gthumb/gth-tags-entry.c:1148 gthumb/gtk-utils.h:39 +msgid "_Delete" +msgstr "削除(_D)" + +#: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:544 msgid "No duplicates found." msgstr "重複したファイルは見つかりませんでした" -#: ../extensions/find_duplicates/data/ui/find-duplicates.ui.h:1 -#: ../extensions/find_duplicates/find_duplicates.extension.in.in.h:1 -msgid "Find Duplicates" -msgstr "重複したファイルの検索" - -#: ../extensions/find_duplicates/data/ui/find-duplicates.ui.h:2 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:3 -#: ../extensions/search/data/ui/search-editor.ui.h:1 +#: extensions/find_duplicates/data/ui/find-duplicates.ui:32 +#: extensions/rename_series/data/ui/rename-series.ui:27 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "開始(_A):" -#: ../extensions/find_duplicates/data/ui/find-duplicates.ui.h:4 +#: extensions/find_duplicates/data/ui/find-duplicates.ui:94 msgid "_Filter:" msgstr "フィルター(_F):" -#: ../extensions/find_duplicates/find_duplicates.extension.in.in.h:2 +#: extensions/find_duplicates/dlg-find-duplicates.c:98 +#: extensions/find_duplicates/find_duplicates.extension.desktop.in.in:3 +#: extensions/find_duplicates/gth-find-duplicates.c:1350 +msgid "Find Duplicates" +msgstr "重複したファイルを検索" + +#: extensions/find_duplicates/dlg-find-duplicates.c:106 +#: extensions/search/actions.c:80 +msgid "_Find" +msgstr "検索(_F)" + +#: extensions/find_duplicates/find_duplicates.extension.desktop.in.in:4 msgid "Find duplicated files." msgstr "重複しているファイルを検索します" -#: ../extensions/find_duplicates/gth-find-duplicates.c:53 +#: extensions/find_duplicates/gth-find-duplicates.c:65 msgid "leave the newest duplicates" msgstr "新しい複製を残す" -#: ../extensions/find_duplicates/gth-find-duplicates.c:54 +#: extensions/find_duplicates/gth-find-duplicates.c:66 msgid "leave the oldest duplicates" msgstr "古い複製を残す" -#: ../extensions/find_duplicates/gth-find-duplicates.c:55 -msgid "by folder..." -msgstr "フォルダー順..." +#: extensions/find_duplicates/gth-find-duplicates.c:67 +msgid "by folder…" +msgstr "フォルダー順…" -#: ../extensions/find_duplicates/gth-find-duplicates.c:56 +#: extensions/find_duplicates/gth-find-duplicates.c:68 msgid "all files" -msgstr "全てのファイル" +msgstr "すべてのファイル" -#: ../extensions/find_duplicates/gth-find-duplicates.c:57 +#: extensions/find_duplicates/gth-find-duplicates.c:69 msgid "no file" msgstr "なし" -#: ../extensions/find_duplicates/gth-find-duplicates.c:397 -#: ../extensions/find_duplicates/gth-find-duplicates.c:492 +#: extensions/find_duplicates/gth-find-duplicates.c:519 +#: extensions/find_duplicates/gth-find-duplicates.c:650 #, c-format msgid "%d duplicate" msgid_plural "%d duplicates" -msgstr[0] "%d個あり" +msgstr[0] "%d 個あり" -#: ../extensions/find_duplicates/gth-find-duplicates.c:536 +#: extensions/find_duplicates/gth-find-duplicates.c:557 msgid "Search completed" msgstr "検索が完了しました" -#: ../extensions/find_duplicates/gth-find-duplicates.c:548 +#: extensions/find_duplicates/gth-find-duplicates.c:741 msgid "Searching for duplicates" -msgstr "検索中です" +msgstr "重複を検索中" -#: ../extensions/find_duplicates/gth-find-duplicates.c:551 -#: ../gthumb/gth-load-file-data-task.c:106 -#: ../gthumb/gth-save-file-data-task.c:100 +#: extensions/find_duplicates/gth-find-duplicates.c:744 +#: gthumb/gth-load-file-data-task.c:109 gthumb/gth-save-file-data-task.c:103 #, c-format msgid "%d file remaining" msgid_plural "%d files remaining" -msgstr[0] "残り%d個" +msgstr[0] "残り %d 個" -#: ../extensions/find_duplicates/gth-find-duplicates.c:634 +#: extensions/find_duplicates/gth-find-duplicates.c:890 msgid "Getting the file list" -msgstr "ファイルの一覧の取得中" +msgstr "ファイルの一覧を取得中" -#: ../extensions/find_duplicates/gth-find-duplicates.c:740 +#: extensions/find_duplicates/gth-find-duplicates.c:1067 msgid "Duplicates" msgstr "重複しているファイル" -#: ../extensions/find_duplicates/gth-find-duplicates.c:997 +#: extensions/find_duplicates/gth-find-duplicates.c:1373 msgid "Select" msgstr "選択" -#: ../extensions/flicker/callbacks.c:59 ../extensions/flicker/callbacks.c:64 -msgid "_Flickr..." -msgstr "Flickr(_F)..." - -#: ../extensions/flicker/callbacks.c:60 -msgid "Download photos from Flickr" -msgstr "写真を Flickr からダウンロードします" - -#: ../extensions/flicker/callbacks.c:65 -msgid "Upload photos to Flickr" -msgstr "写真を Flickr へアップロードします" - -#: ../extensions/flicker/flicker.extension.in.in.h:1 +#: extensions/flicker/flicker.extension.desktop.in.in:3 msgid "Flicker" msgstr "Flicker" -#: ../extensions/flicker/flicker.extension.in.in.h:2 +#: extensions/flicker/flicker.extension.desktop.in.in:4 msgid "Upload images to Flickr" msgstr "画像を Flickr へアップロードします" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:4 -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:12 -#: ../extensions/picasaweb/data/ui/export-to-picasaweb.ui.h:4 -msgid "Free space:" -msgstr "空き容量:" - -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:5 -#: ../extensions/flicker_utils/data/ui/import-from-flickr.ui.h:4 -msgid "Ph_otoset:" -msgstr "フォトセット(_O):" - -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:6 -msgid "_Privacy:" -msgstr "プライバシー(_P):" - -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:7 -msgid "Hi_de from public searches" -msgstr "一般公開の検索から外す(_D)" - -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:8 -msgid "_Safety:" -msgstr "セーフティ(_S):" - -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:10 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:39 msgid "Private photos, visible to family and friends" msgstr "プライベートな写真 (家族と友人限定)" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:12 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:47 msgid "Private photos, visible to family" msgstr "プライベートな写真 (家族限定)" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:13 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:51 msgid "Private photos" msgstr "プライベートな写真" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:14 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:73 msgid "Safe content" msgstr "安全なコンテンツ" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:15 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:77 msgid "Moderate content" msgstr "モデレートが決定したコンテンツ" -#: ../extensions/flicker_utils/data/ui/export-to-flickr.ui.h:16 +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:81 msgid "Restricted content" msgstr "制限ありのコンテンツ" -#: ../extensions/flicker_utils/data/ui/import-from-flickr.ui.h:1 -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:1 -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:2 -msgid "_Import" -msgstr "インポート(_I)" +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:229 +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:175 +msgid "Free space:" +msgstr "空き容量:" + +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:275 +#: extensions/flicker_utils/data/ui/import-from-flickr.ui:134 +msgid "Ph_otoset:" +msgstr "フォトセット(_O):" + +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:291 +msgid "_Privacy:" +msgstr "プライバシー(_P):" + +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:329 +msgid "_Safety:" +msgstr "セーフティー(_S):" + +#: extensions/flicker_utils/data/ui/export-to-flickr.ui:405 +msgid "Hi_de from public searches" +msgstr "一般公開の検索から隠す(_D)" + +#: extensions/flicker_utils/dlg-export-to-flickr.c:164 +#: extensions/webalbums/gth-web-exporter.c:1826 +msgid "_Open in the Browser" +msgstr "ブラウザーで開く(_O)" + +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d 個のファイル" -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:360 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:830 +#: extensions/flicker_utils/dlg-import-from-flickr.c:345 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" msgstr "写真の一覧を取得できませんでした" -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:397 -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:561 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:864 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:1026 +#: extensions/flicker_utils/dlg-import-from-flickr.c:382 +#: extensions/flicker_utils/dlg-import-from-flickr.c:561 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:313 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:598 msgid "No album selected" -msgstr "アルバムが選択されていません" +msgstr "アルバムを選択していません" + +#: extensions/flicker_utils/dlg-import-from-flickr.c:521 +#: extensions/photo_importer/dlg-photo-importer.c:584 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:556 +msgid "_Import" +msgstr "インポート(_I)" -#: ../extensions/flicker_utils/dlg-import-from-flickr.c:579 +#: extensions/flicker_utils/dlg-import-from-flickr.c:579 #, c-format msgid "Import from %s" -msgstr "%s からのインポート" +msgstr "%s からインポート" -#: ../extensions/gstreamer_tools/actions.c:66 -#: ../extensions/image_viewer/gth-image-viewer-page.c:1080 -#: ../gthumb/gth-browser.c:2019 -msgid "Could not save the file" -msgstr "ファイルを保存できませんでした" +#: extensions/flicker_utils/flickr-consumer.c:122 +#: extensions/flicker_utils/flickr-service.c:240 +#: extensions/flicker_utils/flickr-service.c:344 +#: extensions/flicker_utils/flickr-service.c:667 +#: extensions/flicker_utils/flickr-service.c:919 +#: extensions/oauth/oauth-service.c:154 +msgid "Unknown error" +msgstr "原因不明のエラー" -#: ../extensions/gstreamer_tools/actions.c:126 -msgid "Could not take a screenshot" -msgstr "スクリーンショットを撮れませんでした" +#: extensions/flicker_utils/flickr-service.c:491 +#, c-format +msgid "" +"Return to this window when you have finished the authorization process on %s" +msgstr "%s の認証プロセスが完了したらこのウィンドウに戻ってください" -#: ../extensions/gstreamer_tools/actions.c:132 -#: ../extensions/image_viewer/gth-image-viewer-page.c:1248 -msgid "Save Image" -msgstr "画像の保存" +#: extensions/flicker_utils/flickr-service.c:492 +msgid "Once you’re done, click the “Continue” button below." +msgstr "完了したら、この下にある“続行”ボタンをクリックしてください。" + +#: extensions/flicker_utils/flickr-service.c:562 +msgid "C_ontinue" +msgstr "続行(_O)" -#: ../extensions/gstreamer_tools/actions.c:152 +#: extensions/flicker_utils/flickr-service.c:563 +msgid "_Authorize…" +msgstr "認証(_A)…" + +#: extensions/flicker_utils/flickr-service.c:566 +#, c-format +msgid "gThumb requires your authorization to upload the photos to %s" +msgstr "写真を %s へアップロードするには認証が必要です" + +#: extensions/flicker_utils/flickr-service.c:567 +#, c-format +msgid "" +"Click “Authorize” to open your web browser and authorize gthumb to upload " +"photos to %s. When you’re finished, return to this window to complete the " +"authorization." +msgstr "" +"“認証”をクリックしてウェブブラウザーを開き、写真を %s へアップロードするため" +"の認証を実行してください (完了したら、このウィンドウに戻って認証を完了させて" +"ください)" + +#. Translators: %s is a filename +#: extensions/gstreamer_tools/actions.c:75 +#, c-format +msgid "Image saved as %s" +msgstr "%s として画像を保存しました" + +#: extensions/gstreamer_tools/actions.c:101 msgctxt "Filename" msgid "Screenshot" -msgstr "Screenshot" +msgstr "スクリーンショット" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:1 -msgid "Slower" -msgstr "遅くします" +#: extensions/gstreamer_tools/actions.c:137 +#: extensions/gstreamer_tools/actions.c:148 +msgid "Could not take a screenshot" +msgstr "スクリーンショットを撮影できませんでした" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:2 -#: ../extensions/gstreamer_tools/gth-media-viewer-page.c:686 +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "スクリーンショット" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "再生/一時停止" + +#: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 +msgid "Use hardware acceleration" +msgstr "ハードウェアアクセラレーションを使用する" + +#: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:35 +msgid "_Screenshots location:" +msgstr "スクリーンショットの場所(_S):" + +#: extensions/gstreamer_tools/data/ui/mediabar.ui:30 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "再生します" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:3 +#: extensions/gstreamer_tools/data/ui/mediabar.ui:51 +msgid "Slower" +msgstr "遅くします" + +#: extensions/gstreamer_tools/data/ui/mediabar.ui:73 msgid "Faster" msgstr "早くします" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:4 +#: extensions/gstreamer_tools/data/ui/mediabar.ui:95 +msgid "Restart when finished" +msgstr "遷移をループさせます" + +#: extensions/gstreamer_tools/data/ui/mediabar.ui:131 msgid "Time:" msgstr "時間:" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:5 -msgid "--:--" +#: extensions/gstreamer_tools/data/ui/mediabar.ui:194 +msgid "--∶--" msgstr "--:--" -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:6 -msgid "Toggle volume" -msgstr "ミュートを ON/OFF します" - -#: ../extensions/gstreamer_tools/data/ui/mediabar.ui.h:7 -msgid "Change volume level" -msgstr "音量のレベルを変更します" - -#: ../extensions/gstreamer_tools/data/ui/save-screenshot.ui.h:3 -#: ../extensions/photo_importer/actions.c:67 -#: ../extensions/photo_importer/dlg-photo-importer.c:620 -msgid "Choose a folder" -msgstr "フォルダーの選択" - -#: ../extensions/gstreamer_tools/gstreamer_tools.extension.in.in.h:1 +#: extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in:3 msgid "Audio/Video support" msgstr "オーディオ/動画のサポート" -#: ../extensions/gstreamer_tools/gstreamer_tools.extension.in.in.h:2 +#: extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in:4 msgid "Play audio and video files." msgstr "オーディオや動画ファイルを再生します" -#: ../extensions/gstreamer_tools/gth-media-viewer-page.c:104 -msgid "Screenshot" -msgstr "スクリーンショット" - -#: ../extensions/gstreamer_tools/gth-media-viewer-page.c:105 -msgid "Take a screenshot" -msgstr "スクリーンショットを撮ります" +#: extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in:8 +msgid "video-x-generic" +msgstr "video-x-generic" -#: ../extensions/gstreamer_tools/gth-media-viewer-page.c:663 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "動画を再生します" -#: ../extensions/gstreamer_tools/gth-media-viewer-page.c:676 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "一時停止します" -#: ../extensions/gstreamer_tools/main.c:31 -#: ../gthumb/gth-main-default-tests.c:247 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 +msgid "Take a screenshot" +msgstr "スクリーンショットを撮ります" + +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "ウィンドウに合わせる" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "オーディオ/動画プレイヤー" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "動画" -#: ../extensions/gstreamer_tools/main.c:32 -#: ../gthumb/gth-main-default-tests.c:254 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "オーディオ" -#: ../extensions/gstreamer_tools/main.c:39 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "アーティスト" -#: ../extensions/gstreamer_tools/main.c:40 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:16 +#: extensions/gstreamer_tools/main.c:48 +#: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "アルバム" -#: ../extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "ビットレート" -#: ../extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "エンコーダー" -#: ../extensions/gstreamer_tools/main.c:44 -#: ../extensions/gstreamer_tools/main.c:49 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "コーデック" -#: ../extensions/gstreamer_tools/main.c:45 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "フレームレート" -#: ../extensions/gstreamer_tools/main.c:46 -#: ../extensions/image_print/data/ui/print-layout.ui.h:24 -#: ../extensions/image_viewer/gth-image-viewer-page.c:209 +#: extensions/gstreamer_tools/main.c:54 +#: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "幅" -#: ../extensions/gstreamer_tools/main.c:47 -#: ../extensions/image_print/data/ui/print-layout.ui.h:25 +#: extensions/gstreamer_tools/main.c:55 +#: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "高さ" -#: ../extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "チャンネル数" -#: ../extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "サンプリング" -#: ../extensions/gstreamer_utils/gstreamer-utils.c:363 +#: extensions/gstreamer_utils/gstreamer-utils.c:369 msgid "Stereo" msgstr "ステレオ" -#: ../extensions/gstreamer_utils/gstreamer-utils.c:363 +#: extensions/gstreamer_utils/gstreamer-utils.c:369 msgid "Mono" msgstr "モノラル" #. Translators: this is an image size, such as 1024 × 768 -#: ../extensions/gstreamer_utils/gstreamer-utils.c:396 -#: ../extensions/image_viewer/gth-image-viewer-page.c:1303 -#: ../extensions/image_viewer/gth-metadata-provider-image.c:190 -#: ../extensions/webalbums/dlg-web-exporter.c:442 -#: ../extensions/webalbums/gth-web-exporter.c:2446 +#: extensions/gstreamer_utils/gstreamer-utils.c:402 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 +#: extensions/raw_files/gth-metadata-provider-raw.c:96 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" -#: ../extensions/image_print/actions.c:69 +#: extensions/image_print/actions.c:69 msgid "Could not print the selected files" msgstr "選択したファイルを印刷できませんでした" -#: ../extensions/image_print/callbacks.c:54 -msgid "Print the selected images" -msgstr "選択した画像を印刷します" +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 +#: extensions/image_print/preferences.c:79 +msgid "Print" +msgstr "印刷" -#: ../extensions/image_print/data/ui/print-layout.ui.h:1 +#: extensions/image_print/data/ui/print-layout.ui:13 msgid "Centered" msgstr "中央に配置する" -#: ../extensions/image_print/data/ui/print-layout.ui.h:13 +#: extensions/image_print/data/ui/print-layout.ui:322 msgid "The total number of files" msgstr "ファイルの総数" -#: ../extensions/image_print/data/ui/print-layout.ui.h:14 -#: ../extensions/importer/data/ui/import-preferences.ui.h:4 +#: extensions/image_print/data/ui/print-layout.ui:340 +#: extensions/importer/data/ui/import-preferences.ui:258 msgid "The event description" msgstr "イベント名" -#: ../extensions/image_print/data/ui/print-layout.ui.h:17 +#: extensions/image_print/data/ui/print-layout.ui:478 msgid "_Rows:" msgstr "縦に並べる数(_R):" -#: ../extensions/image_print/data/ui/print-layout.ui.h:19 +#: extensions/image_print/data/ui/print-layout.ui:588 msgid "Image" msgstr "画像" -#: ../extensions/image_print/data/ui/print-layout.ui.h:20 +#: extensions/image_print/data/ui/print-layout.ui:630 msgid "Position:" msgstr "位置:" -#: ../extensions/image_print/data/ui/print-layout.ui.h:21 +#: extensions/image_print/data/ui/print-layout.ui:646 msgid "Left" msgstr "左側" -#: ../extensions/image_print/data/ui/print-layout.ui.h:22 +#: extensions/image_print/data/ui/print-layout.ui:662 msgid "Top" msgstr "上側" -#: ../extensions/image_print/data/ui/print-layout.ui.h:26 +#: extensions/image_print/data/ui/print-layout.ui:811 msgid "Rotation:" msgstr "回転:" -#: ../extensions/image_print/data/ui/print-layout.ui.h:27 +#: extensions/image_print/data/ui/print-layout.ui:870 msgid "Unit:" msgstr "単位:" -#: ../extensions/image_print/data/ui/print-layout.ui.h:28 +#: extensions/image_print/data/ui/print-layout.ui:924 msgid "Preview" msgstr "プレビュー" -#: ../extensions/image_print/data/ui/print-layout.ui.h:30 +#: extensions/image_print/data/ui/print-layout.ui:1125 msgid "millimeters" msgstr "ミリ" -#: ../extensions/image_print/data/ui/print-layout.ui.h:31 +#: extensions/image_print/data/ui/print-layout.ui:1128 msgid "inches" msgstr "インチ" -#: ../extensions/image_print/data/ui/print-preferences.ui.h:4 +#: extensions/image_print/data/ui/print-preferences.ui:14 +msgid "Fonts" +msgstr "フォント" + +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "見出しのフォント" -#: ../extensions/image_print/data/ui/print-preferences.ui.h:5 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "ヘッダーのフォント" -#: ../extensions/image_print/data/ui/print-preferences.ui.h:6 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "フッターのフォント" -#: ../extensions/image_print/data/ui/print-preferences.ui.h:7 -msgid "Fonts" -msgstr "フォント" - -#: ../extensions/image_print/gth-image-print-job.c:971 -#: ../extensions/webalbums/data/albumthemes/text.h:31 +#: extensions/image_print/gth-image-print-job.c:915 +#: extensions/webalbums/data/albumthemes/text.h:31 #, c-format msgid "Page %d of %d" msgstr "%d / %d ページ" -#: ../extensions/image_print/gth-image-print-job.c:1734 -#: ../extensions/image_print/gth-image-print-job.c:1861 -#: ../extensions/image_print/gth-image-print-job.c:1898 +#: extensions/image_print/gth-image-print-job.c:1681 +#: extensions/image_print/gth-image-print-job.c:1846 +#: extensions/image_print/gth-image-print-job.c:1889 msgid "Could not print" msgstr "印刷できませんでした" -#: ../extensions/image_print/gth-image-print-job.c:1796 -#: ../gthumb/gth-main-default-tests.c:240 +#: extensions/image_print/gth-image-print-job.c:1747 msgid "Images" msgstr "画像" -#: ../extensions/image_print/gth-image-print-job.c:1863 -#: ../gthumb/gth-image-loader.c:204 ../gthumb/gth-image-loader.c:278 +#: extensions/image_print/gth-image-print-job.c:1848 +#: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" -msgstr "この種類のファイルに対して利用できる妥当なローダーはありません" +msgstr "この種類のファイルに対して利用できる適切なローダーはありません" #. translators: %s is a filename -#: ../extensions/image_print/gth-load-image-info-task.c:164 +#: extensions/image_print/gth-load-image-info-task.c:168 #, c-format -msgid "Loading \"%s\"" -msgstr "\"%s\" の読み込み中" +msgid "Loading “%s”" +msgstr "“%s”を読み込み中" -#: ../extensions/image_print/gth-load-image-info-task.c:166 -#: ../extensions/webalbums/gth-web-exporter.c:2685 +#: extensions/image_print/gth-load-image-info-task.c:170 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" -msgstr "画像の読み込み中" +msgstr "画像を読み込み中" -#: ../extensions/image_print/image_print.extension.in.in.h:1 +#: extensions/image_print/image_print.extension.desktop.in.in:3 msgid "Image print" -msgstr "画像の印刷" +msgstr "画像を印刷" -#: ../extensions/image_print/image_print.extension.in.in.h:2 +#: extensions/image_print/image_print.extension.desktop.in.in:4 msgid "Allow to print images choosing the page layout." msgstr "ページのレイアウトを選択しながら画像を印刷できるようにします" -#: ../extensions/image_print/preferences.c:79 -msgid "Print" -msgstr "印刷" - -#: ../extensions/image_rotation/callbacks.c:50 -msgid "Rotate the selected images 90° to the right" -msgstr "選択した画像を時計回りに90°回転します" - -#: ../extensions/image_rotation/callbacks.c:56 -msgid "Rotate the selected images 90° to the left" -msgstr "選択した画像を反時計回りに90°回転します" +#: extensions/image_print/image_print.extension.desktop.in.in:8 +msgid "document-print" +msgstr "document-print" -#: ../extensions/image_rotation/callbacks.c:61 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" -msgstr "物理的に回転する" +msgstr "物理的に回転" -#: ../extensions/image_rotation/callbacks.c:62 -msgid "Rotate the selected images according to the embedded orientation" -msgstr "選択した画像を埋め込まれた EXIF の向き情報に従って回転します" - -#: ../extensions/image_rotation/callbacks.c:67 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" -msgstr "EXIF の向き情報のリセット" +msgstr "EXIF の向き情報をリセット" -#: ../extensions/image_rotation/callbacks.c:68 -msgid "Reset the embedded orientation without rotating the images" -msgstr "画像を回転させずに埋め込まれた EXIF の向き情報をリセットします" - -#: ../extensions/image_rotation/gth-reset-orientation-task.c:111 -#: ../extensions/image_rotation/gth-transform-task.c:141 -#: ../extensions/webalbums/gth-web-exporter.c:2339 -#: ../extensions/webalbums/gth-web-exporter.c:2423 +#: extensions/image_rotation/gth-reset-orientation-task.c:114 +#: extensions/image_rotation/gth-transform-task.c:146 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" -msgstr "画像の保存中" +msgstr "画像を保存中" -#: ../extensions/image_rotation/image_rotation.extension.in.in.h:1 +#: extensions/image_rotation/image_rotation.extension.desktop.in.in:3 msgid "Image rotation" -msgstr "画像の回転" +msgstr "画像を回転" -#: ../extensions/image_rotation/image_rotation.extension.in.in.h:2 +#: extensions/image_rotation/image_rotation.extension.desktop.in.in:4 msgid "Rotate images without data loss." msgstr "品質を維持したまま画像を回転します" -#: ../extensions/image_rotation/rotation-utils.c:117 +#: extensions/image_rotation/rotation-utils.c:105 #, c-format msgid "Problem transforming the image: %s" -msgstr "画像を変換する際に問題が発生しました: %s" +msgstr "画像を変換するときに問題が発生しました: %s" + +#: extensions/image_rotation/rotation-utils.c:110 +msgid "" +"This transformation may introduce small image distortions along one or more " +"edges, because the image dimensions are not multiples of 8.\n" +"\n" +"The distortion is reversible, however. If the resulting image is " +"unacceptable, simply apply the reverse transformation to return to the " +"original image.\n" +"\n" +"You can also choose to discard (or trim) any untransformable edge pixels. " +"For practical use, this mode gives the best looking results, but the " +"transformation is not strictly lossless anymore." +msgstr "" +"画像のサイズが 8 の倍数になっていないため、この変換によって、画像の端に沿って" +"一つ以上の小さな歪みが発生するかもしれません。\n" +"\n" +"しかし、その歪みを逆にすることも可能です。もし変換した出来に問題があるのであ" +"れば、最初にオリジナルの画像を反転させてから変換してみてください。\n" +"\n" +"さらに、変換できない端のピクセルを切り取って端を揃えておくことも可能です。実" +"際の使用では、このモードは最良の結果を提供してくれますが、変換についてはそれ" +"ほど厳しく品質を維持するようなことはしていません。" + +#: extensions/image_rotation/rotation-utils.c:116 +msgid "_Trim" +msgstr "角度(_T)" + +#: extensions/image_rotation/rotation-utils.c:118 +msgid "_Accept distortion" +msgstr "歪みを受け入れる(_A)" + +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "画像を拡大" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "画像を縮小" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "100% にズーム" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "200% にズーム" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "300% にズーム" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "ウィンドウに合わせてズーム" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "ウィンドウよりも大きい場合は合わせてズーム" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "ウィンドウの幅に合わせてズーム" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "ウィンドウよりも大きい場合は幅に合わせてズーム" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "ウィンドウの高さに合わせてズーム" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "ウィンドウよりも大きい場合は高さに合わせてズーム" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "編集を元に戻す" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "編集をやり直す" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "左にスクロール" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "右にスクロール" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "上にスクロール" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "下にスクロール" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "左に素早くスクロール" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "右に素早くスクロール" -#: ../extensions/image_rotation/rotation-utils.c:122 -msgid "" -"This transformation may introduce small image distortions along one or more " -"edges, because the image dimensions are not multiples of 8.\n" -"\n" -"The distortion is reversible, however. If the resulting image is " -"unacceptable, simply apply the reverse transformation to return to the " -"original image.\n" -"\n" -"You can also choose to discard (or trim) any untransformable edge pixels. " -"For practical use, this mode gives the best looking results, but the " -"transformation is not strictly lossless anymore." -msgstr "" -"画像のサイズが8の倍数になっていないため、この変換によって、画像の端に沿って" -"1つ以上の小さな歪みが発生するかもしれません。\n" -"\n" -"しかし、その歪みを逆にすることも可能です。もし変換した出来に問題があるのであ" -"れば、最初にオリジナルの画像を反転させてから変換してみて下さい。\n" -"\n" -"さらに、変換できない端のピクセルを切り取って端を揃えておくことも可能です。実" -"際の使用では、このモードは最良の結果を提供してくれますが、変換についてはそれ" -"ほど厳しく品質を維持するようなことはしていません。" +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "上に素早くスクロール" -#: ../extensions/image_rotation/rotation-utils.c:128 -msgid "_Trim" -msgstr "角度(_T)" +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "下に素早くスクロール" -#: ../extensions/image_rotation/rotation-utils.c:130 -msgid "_Accept distortion" -msgstr "歪みを受け入れる(_A)" +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "中央にスクロール" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 +msgid "After loading an image:" +msgstr "画像を読み込んだ後:" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:1 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "オリジナルのサイズにする" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:2 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "前と同じ拡大率にする" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:3 -msgid "Fit to window" -msgstr "ウィンドウに合わせる" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:4 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "ウィンドウサイズよりも大きい場合はウィンドウに合わせる" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:5 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "幅に合わせる" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:6 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "ウィンドウサイズよりも大きい場合は幅に合わせる" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:7 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "スクロールバーの位置をリセットする" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:8 -msgid "After loading an image:" -msgstr "画像を読み込んだ後:" +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "マウスホイールの動作" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "画像を変更する" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "画像を拡大縮小する" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 +msgid "Zoom quality:" +msgstr "ズームの品質:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 +msgctxt "zoom quality" +msgid "_High" +msgstr "高品質(_H)" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 +msgctxt "zoom quality" +msgid "_Low" +msgstr "低品質(_L)" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "透明な背景:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "市松模様" -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:9 -msgid "_Zoom quality:" -msgstr "ズーム時の品質(_Z):" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:10 -msgid "Transparency _type:" -msgstr "透明な背景の種類(_T):" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:11 -msgid "High" -msgstr "高品質" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:12 -msgid "Low" -msgstr "低品質" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:13 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 msgid "White" -msgstr "白色" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:15 -msgid "Black" -msgstr "黒色" - -#: ../extensions/image_viewer/data/ui/image-viewer-preferences.ui.h:16 -msgid "Checked" -msgstr "格子縞" +msgstr "白" -#: ../extensions/image_viewer/gth-image-histogram.c:84 -msgid "Histogram" -msgstr "ヒストグラム" +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "グレー" -#: ../extensions/image_viewer/gth-image-viewer-page.c:179 -msgid "Copy Image" -msgstr "画像のコピー" +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "黒" -#: ../extensions/image_viewer/gth-image-viewer-page.c:180 -msgid "Copy the image to the clipboard" -msgstr "画像をコピーしてクリップボードに格納します" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 +msgid "Automatic" +msgstr "自動" -#: ../extensions/image_viewer/gth-image-viewer-page.c:184 -msgid "Paste Image" -msgstr "画像の貼り付け" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 +msgid "Fit to height" +msgstr "高さに合わせる" -#: ../extensions/image_viewer/gth-image-viewer-page.c:185 -msgid "Paste the image from the clipboard" -msgstr "クリップボードから画像を貼り付けます" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 +msgid "50%" +msgstr "50%" -#: ../extensions/image_viewer/gth-image-viewer-page.c:189 -msgid "In" -msgstr "拡大" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 +msgid "100%" +msgstr "100%" -#: ../extensions/image_viewer/gth-image-viewer-page.c:190 -msgid "Zoom in" -msgstr "この画像を拡大します" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 +msgid "200%" +msgstr "200%" -#: ../extensions/image_viewer/gth-image-viewer-page.c:194 -msgid "Out" -msgstr "縮小" +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 +msgid "300%" +msgstr "300%" -#: ../extensions/image_viewer/gth-image-viewer-page.c:195 -msgid "Zoom out" -msgstr "この画像を縮小します" +#: extensions/image_viewer/gth-image-histogram.c:94 +msgid "Histogram" +msgstr "ヒストグラム" -#: ../extensions/image_viewer/gth-image-viewer-page.c:199 -msgid "1:1" -msgstr "1:1" +#: extensions/image_viewer/gth-image-viewer-page.c:83 +msgid "Copy Image" +msgstr "画像をコピー" -#: ../extensions/image_viewer/gth-image-viewer-page.c:200 -msgid "Actual size" -msgstr "実サイズで表示します" +#: extensions/image_viewer/gth-image-viewer-page.c:84 +msgid "Paste Image" +msgstr "画像を貼り付け" -#: ../extensions/image_viewer/gth-image-viewer-page.c:204 -msgid "Fit" -msgstr "フィット" +#: extensions/image_viewer/gth-image-viewer-page.c:1173 +msgid "Apply the embedded color profile" +msgstr "埋め込みのカラープロファイルを適用します" -#: ../extensions/image_viewer/gth-image-viewer-page.c:205 -msgid "Zoom to fit window" -msgstr "ウィンドウに合わせてズームします" +#: extensions/image_viewer/gth-image-viewer-page.c:1188 +msgid "Next frame" +msgstr "次のフレームに移動します" -#: ../extensions/image_viewer/gth-image-viewer-page.c:210 -msgid "Zoom to fit width" -msgstr "ウィンドウの幅に合わせてズームします" +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "透明性" -#: ../extensions/image_viewer/image_viewer.extension.in.in.h:1 -msgid "Image viewer" -msgstr "画像ビューアー" +#: extensions/image_viewer/gth-image-viewer-page.c:1803 +msgid "Save Image" +msgstr "画像を保存" -#: ../extensions/image_viewer/image_viewer.extension.in.in.h:2 -msgid "Basic image viewing." -msgstr "画像の基本的なビューアー機能です" +#: extensions/image_viewer/gth-image-viewer-page.c:2519 +msgid "Loading the original image" +msgstr "オリジナルの画像を読み込み中" + +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "画像をスクロール" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "画像エディター" -#: ../extensions/image_viewer/preferences.c:125 +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "ビューアー" -#: ../extensions/importer/data/ui/import-preferences.ui.h:1 +#: extensions/importer/data/ui/import-preferences.ui:63 msgid "_Destination" -msgstr "格納場所(_D)" +msgstr "保存場所(_D)" -#: ../extensions/importer/data/ui/import-preferences.ui.h:2 +#: extensions/importer/data/ui/import-preferences.ui:95 msgid "_Automatic subfolder" msgstr "自動的にサブフォルダーを作成する(_A)" -#: ../extensions/importer/data/ui/import-preferences.ui.h:3 +#: extensions/importer/data/ui/import-preferences.ui:160 msgid "as _single subfolder" msgstr "単一のサブフォルダーにする(_S)" -#: ../extensions/importer/data/ui/import-preferences.ui.h:7 +#: extensions/importer/data/ui/import-preferences.ui:393 msgid "The year" msgstr "年" -#: ../extensions/importer/data/ui/import-preferences.ui.h:8 +#: extensions/importer/data/ui/import-preferences.ui:410 msgid "The month" msgstr "月" -#: ../extensions/importer/data/ui/import-preferences.ui.h:9 +#: extensions/importer/data/ui/import-preferences.ui:427 msgid "The day of the month" msgstr "月内の通算日" -#: ../extensions/importer/data/ui/import-preferences.ui.h:10 +#: extensions/importer/data/ui/import-preferences.ui:444 msgid "The hour" msgstr "時" -#: ../extensions/importer/data/ui/import-preferences.ui.h:11 +#: extensions/importer/data/ui/import-preferences.ui:461 msgid "The minutes" msgstr "分" -#: ../extensions/importer/data/ui/import-preferences.ui.h:12 +#: extensions/importer/data/ui/import-preferences.ui:478 msgid "The seconds" msgstr "秒" -#: ../extensions/importer/gth-import-destination-button.c:183 +#: extensions/importer/gth-import-destination-button.c:115 msgid "Invalid Destination" -msgstr "格納場所が間違っています" +msgstr "保存場所が不正です" -#: ../extensions/importer/gth-import-preferences-dialog.c:198 +#: extensions/importer/gth-import-preferences-dialog.c:199 #, c-format msgid "example: %s" msgstr "例: %s" #. subfolder type -#: ../extensions/importer/gth-import-preferences-dialog.c:330 +#: extensions/importer/gth-import-preferences-dialog.c:324 msgid "File date" msgstr "ファイルの日付" #. gtk_label_set_mnemonic_widget (GTK_LABEL (GET_WIDGET ("subfolder_label")), self->priv->subfolder_type_list); #. subfolder format -#: ../extensions/importer/gth-import-preferences-dialog.c:340 +#: extensions/importer/gth-import-preferences-dialog.c:334 msgid "year-month-day" msgstr "年/月/日" -#: ../extensions/importer/gth-import-preferences-dialog.c:341 +#: extensions/importer/gth-import-preferences-dialog.c:335 msgid "year-month" msgstr "年/月" -#: ../extensions/importer/gth-import-preferences-dialog.c:342 +#: extensions/importer/gth-import-preferences-dialog.c:336 msgid "year" msgstr "年" -#: ../extensions/importer/gth-import-preferences-dialog.c:343 +#: extensions/importer/gth-import-preferences-dialog.c:337 msgid "custom format" msgstr "次の形式にする" -#: ../extensions/importer/gth-import-task.c:442 -#: ../extensions/importer/gth-import-task.c:477 -#: ../extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" -msgstr "ファイルのインポート中" +msgstr "ファイルをインポート中" -#: ../extensions/importer/gth-import-task.c:598 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "インポートしていません" -#: ../extensions/importer/gth-import-task.c:599 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." -msgstr "選択したファイルは既に格納場所に存在していました。" +msgstr "選択したファイルはすでに保存場所に存在します。" -#: ../extensions/importer/gth-import-task.c:622 -#: ../gthumb/gth-file-source-vfs.c:694 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" -msgstr "このファイルを削除できませんでした" +msgstr "ファイルを削除できませんでした" -#: ../extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "削除の操作はサポートしていません。" -#: ../extensions/importer/gth-import-task.c:709 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "最後のインポート" -#: ../extensions/importer/gth-import-task.c:815 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." -msgstr "ファイルが指定されていません。" +msgstr "ファイルを指定していません。" -#. Translators: For example: Not enough free space in '/home/user/Images'.\n1.3 GB of space is required but only 300 MB is available. -#: ../extensions/importer/gth-import-task.c:852 +#. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" -"Not enough free space in '%s'.\n" +"Not enough free space in “%s”.\n" "%s of space is required but only %s is available." msgstr "" -"'%s' の空き容量が十分ではありません。\n" -"%s の空きが必要ですが実際には %s しかありません。" +"“%s”に十分な空き領域がありません。\n" +"%s の空きが必要ですが %s しかありません。" -#: ../extensions/list_tools/callbacks.c:76 ../gthumb/gth-filterbar.c:304 -msgid "Personalize..." -msgstr "指定する..." - -#: ../extensions/list_tools/callbacks.c:320 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "ツール" -#: ../extensions/list_tools/callbacks.c:321 -msgid "Batch tools for multiple files" -msgstr "指定したツールを使って複数のファイルを一括処理します" - -#: ../extensions/list_tools/data/ui/ask-value.ui.h:1 -msgid "_Skip" -msgstr "何もしない(_S)" - -#: ../extensions/list_tools/data/ui/personalize-scripts.ui.h:1 -msgid "Commands" -msgstr "コマンドの一覧" - -#: ../extensions/list_tools/data/ui/personalize-scripts.ui.h:2 +#: extensions/list_tools/data/ui/personalize-scripts.ui:29 msgid "Co_mmands:" msgstr "コマンド(_M):" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:2 +#: extensions/list_tools/data/ui/script-editor.ui:47 msgid "_Wait for the command to finish" msgstr "コマンドが完了するまで待機する(_W)" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:3 +#: extensions/list_tools/data/ui/script-editor.ui:65 msgid "E_xecute command once for every file" -msgstr "ファイル毎に1回だけコマンドを実行する(_X)" +msgstr "ファイルごとに 1 回だけコマンドを実行する(_X)" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:4 +#: extensions/list_tools/data/ui/script-editor.ui:82 msgid "_Terminal command (shell script)" -msgstr "端末から実行する (シェルスクリプト)(_T)" +msgstr "端末で実行する (シェルスクリプト)(_T)" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:5 +#: extensions/list_tools/data/ui/script-editor.ui:101 msgid "Sh_ortcut:" msgstr "ショートカット(_O):" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:6 +#: extensions/list_tools/data/ui/script-editor.ui:232 msgid "The file uri" msgstr "ファイルの URI" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:7 +#: extensions/list_tools/data/ui/script-editor.ui:250 msgid "The file path" msgstr "ファイルのパス" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:8 +#: extensions/list_tools/data/ui/script-editor.ui:268 msgid "The file basename" -msgstr "ファイル名からパスを除いたもの" +msgstr "パスを除いたファイル名" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:9 +#: extensions/list_tools/data/ui/script-editor.ui:286 msgid "The parent folder path" msgstr "親フォルダーのパス" #. Translate only 'message' and 'default_value'. -#: ../extensions/list_tools/data/ui/script-editor.ui.h:14 -#, no-c-format +#: extensions/list_tools/data/ui/script-editor.ui:336 +#, c-format msgid "%ask{ message }{ default value }" msgstr "%ask{ メッセージ }{ デフォルト値 }" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:15 +#: extensions/list_tools/data/ui/script-editor.ui:352 msgid "Ask an input value" -msgstr "入力を促す" +msgstr "値の入力を確認する" #. Translate only 'attribute name' -#: ../extensions/list_tools/data/ui/script-editor.ui.h:18 -#, no-c-format +#: extensions/list_tools/data/ui/script-editor.ui:370 +#, c-format msgid "%attr{ attribute name }" msgstr "%attr{ 属性名 }" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:19 -#: ../extensions/rename_series/data/ui/rename-series.ui.h:25 +#: extensions/list_tools/data/ui/script-editor.ui:386 +#: extensions/rename_series/data/ui/rename-series.ui:356 msgid "A file attribute" msgstr "ファイルの属性" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:21 -#, no-c-format +#: extensions/list_tools/data/ui/script-editor.ui:404 msgid "%N" msgstr "%N" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:22 +#: extensions/list_tools/data/ui/script-editor.ui:420 msgid "The file basename without extension" -msgstr "ファイル名からパスと拡張子を除いたもの" +msgstr "パスと拡張子を除いたファイル名" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:24 -#, no-c-format +#: extensions/list_tools/data/ui/script-editor.ui:438 +#, c-format msgid "%E" msgstr "%E" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:25 +#: extensions/list_tools/data/ui/script-editor.ui:454 msgid "The file extension" msgstr "ファイルの拡張子" #. Translate only 'text'. -#: ../extensions/list_tools/data/ui/script-editor.ui.h:28 -#, no-c-format +#: extensions/list_tools/data/ui/script-editor.ui:472 +#, c-format msgid "%quote{ text }" msgstr "%quote{ 文字列 }" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:29 +#: extensions/list_tools/data/ui/script-editor.ui:488 msgid "Quote the text " msgstr "文字列を引用する" -#: ../extensions/list_tools/data/ui/script-editor.ui.h:30 +#: extensions/list_tools/data/ui/script-editor.ui:522 +msgid "The current date and time" +msgstr "現在の日付と時刻" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "コマンド(_C):" -#: ../extensions/list_tools/dlg-personalize-scripts.c:257 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 +msgid "Personalize…" +msgstr "個人専用の設定…" + +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "スクリプト" -#: ../extensions/list_tools/dlg-personalize-scripts.c:271 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "ショートカット" -#: ../extensions/list_tools/dlg-personalize-scripts.c:285 -#: ../gthumb/dlg-personalize-filters.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:278 +#: gthumb/dlg-personalize-filters.c:252 msgid "Show" -msgstr "表示する" +msgstr "表示" -#: ../extensions/list_tools/dlg-personalize-scripts.c:355 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "スクリプトを保存できませんでした" -#: ../extensions/list_tools/dlg-personalize-scripts.c:406 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "新しいコマンド" -#: ../extensions/list_tools/dlg-personalize-scripts.c:433 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" -msgstr "コマンドの編集" +msgstr "コマンドを編集" -#: ../extensions/list_tools/dlg-personalize-scripts.c:461 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "本当に選択したコマンドを削除しますか?" -#: ../extensions/list_tools/gth-script.c:610 -msgid "Enter a value:" -msgstr "値の入力:" - -#: ../extensions/list_tools/gth-script.c:745 -#: ../extensions/webalbums/gth-web-exporter.c:560 -#: ../extensions/webalbums/gth-web-exporter.c:572 -#: ../extensions/webalbums/gth-web-exporter.c:580 -msgid "Malformed command" -msgstr "コマンドがおかしいです" - -#: ../extensions/list_tools/gth-script-editor-dialog.c:147 -msgid "none" -msgstr "なし" - -#: ../extensions/list_tools/gth-script-editor-dialog.c:153 -#, c-format -msgid "key %d on the numeric keypad" -msgstr "テンキーの %d キー" +#: extensions/list_tools/dlg-personalize-scripts.c:605 +msgid "Commands" +msgstr "コマンドの一覧" -#: ../extensions/list_tools/gth-script-editor-dialog.c:296 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" -msgstr "コマンドが指定されていません。" +msgstr "コマンドを指定していません" -#: ../extensions/list_tools/gth-script-task.c:83 +#: extensions/list_tools/gth-script-task.c:86 #, c-format msgid "Command exited abnormally with status %d" -msgstr "コマンドが %d のステータスを返して異常終了しました" +msgstr "コマンドがステータス %d を返して異常終了しました" + +#: extensions/list_tools/gth-script.c:502 +msgid "Enter a value:" +msgstr "値を入力してください:" + +#: extensions/list_tools/gth-script.c:753 +#: extensions/webalbums/gth-web-exporter.c:561 +#: extensions/webalbums/gth-web-exporter.c:573 +#: extensions/webalbums/gth-web-exporter.c:581 +msgid "Malformed command" +msgstr "コマンドがおかしいです" + +#: extensions/list_tools/gth-script.c:808 +msgid "_Skip" +msgstr "何もしない(_S)" -#: ../extensions/list_tools/list_tools.extension.in.in.h:1 +#: extensions/list_tools/list_tools.extension.desktop.in.in:3 msgid "File list tools" msgstr "ファイルの一覧ツール" -#: ../extensions/list_tools/list_tools.extension.in.in.h:2 +#: extensions/list_tools/list_tools.extension.desktop.in.in:4 msgid "Scripting and batch manipulation of files." msgstr "ファイルのスクリプト処理やバッチ処理を提供します" -#: ../extensions/map_view/gth-map-view.c:130 +#: extensions/list_tools/list_tools.extension.desktop.in.in:8 +msgid "applications-engineering" +msgstr "applications-engineering" + +#: extensions/map_view/gth-map-view.c:128 msgctxt "Cardinal point" msgid "S" msgstr "S" -#: ../extensions/map_view/gth-map-view.c:130 +#: extensions/map_view/gth-map-view.c:128 msgctxt "Cardinal point" msgid "N" msgstr "N" -#: ../extensions/map_view/gth-map-view.c:132 +#: extensions/map_view/gth-map-view.c:130 msgctxt "Cardinal point" msgid "W" msgstr "W" -#: ../extensions/map_view/gth-map-view.c:132 +#: extensions/map_view/gth-map-view.c:130 msgctxt "Cardinal point" msgid "E" msgstr "E" -#: ../extensions/map_view/gth-map-view.c:205 -#: ../extensions/map_view/map_view.extension.in.in.h:1 +#: extensions/map_view/gth-map-view.c:225 +#: extensions/map_view/map_view.extension.desktop.in.in:3 msgid "Map" msgstr "Map" -#. No GPS label -#: ../extensions/map_view/gth-map-view.c:276 -msgid "The geographical position information is not available for this image." -msgstr "この画像では地理的な位置情報は利用できません" - -#: ../extensions/map_view/map_view.extension.in.in.h:2 +#: extensions/map_view/map_view.extension.desktop.in.in:4 msgid "View the photo position on the map" msgstr "写真を撮影した場所を地図に表示します" -#: ../extensions/photobucket/callbacks.c:54 -msgid "Photobucket..." -msgstr "Photobucket..." - -#: ../extensions/photobucket/callbacks.c:55 -msgid "Upload photos to Photobucket" -msgstr "写真を Photobucket へアップロードします" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:1 -msgid "Tiny ( 100 x 75 )" -msgstr "極小 ( 100 x 75 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:2 -msgid "Small ( 160 x 120 )" -msgstr "小さい ( 160 x 120 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:3 -msgid "Medium ( 320 x 240 )" -msgstr "中ぐらい ( 320 x 240 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:4 -msgid "Large ( 640 x 480 )" -msgstr "大きい ( 640 x 480 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:5 -msgid "15ʺ screen ( 800 x 600 )" -msgstr "15ʺ の画面 ( 800 x 600 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:6 -msgid "17ʺ screen ( 1024 x 768 )" -msgstr "17ʺ の画面 ( 1024 x 768 )" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:7 -#: ../extensions/photobucket/dlg-export-to-photobucket.c:297 -msgid "1 megabyte file size" -msgstr "1 Mバイトのファイル" - -#: ../extensions/photobucket/data/ui/export-to-photobucket.ui.h:16 -msgid "_Scramble filenames" -msgstr "ランダムなファイル名にする(_S)" - -#: ../extensions/photobucket/data/ui/photobucket-album-properties.ui.h:2 -msgid "_Container:" -msgstr "コンテナー(_C):" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:291 -msgid "Tiny ( 100 × 75 )" -msgstr "極小 ( 100 × 75 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:292 -msgid "Small ( 160 × 120 )" -msgstr "小さい ( 160 × 120 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:293 -msgid "Medium ( 320 × 240 )" -msgstr "中ぐらい ( 320 × 240 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:294 -msgid "Large ( 640 × 480 )" -msgstr "大きい ( 640 × 480 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:295 -msgid "15ʺ screen ( 800 × 600 )" -msgstr "15ʺ の画面 ( 800 × 600 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:296 -msgid "17ʺ screen ( 1024 × 768 )" -msgstr "17ʺ の画面 ( 1024 × 768 )" - -#: ../extensions/photobucket/dlg-export-to-photobucket.c:304 -msgid "2 megabyte file size" -msgstr "2 Mバイトのファイル" - -#: ../extensions/photobucket/photobucket.extension.in.in.h:1 -msgid "PhotoBucket" -msgstr "PhotoBucket" - -#: ../extensions/photobucket/photobucket.extension.in.in.h:2 -msgid "Upload images to PhotoBucket" -msgstr "画像を PhotoBucket へアップロードします" +#: extensions/oauth/data/ui/oauth-account-manager.ui:23 +msgid "A_ccounts:" +msgstr "アカウントの一覧(_C):" + +#: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 +#: gthumb/gth-folder-tree.c:1160 +msgid "Loading…" +msgstr "読み込み中…" + +#: extensions/oauth/oauth-account-chooser-dialog.c:192 +msgid "New authentication…" +msgstr "新しい認証…" + +#: extensions/oauth/oauth-ask-authorization-dialog.c:240 +msgid "Authorization Required" +msgstr "認証が必要です" + +#: extensions/oauth/web-service.c:379 +msgid "Choose _Account…" +msgstr "アカウントを選択(_A)…" + +#: extensions/oauth/web-service.c:657 +msgid "Choose Account" +msgstr "アカウントを選択" + +#: extensions/oauth/web-service.c:774 +msgid "Edit Accounts" +msgstr "アカウントを編集" + +#: extensions/oauth/web-service.c:792 extensions/oauth/web-service.c:809 +msgid "Connecting to the server" +msgstr "サーバーへ接続中" + +#: extensions/oauth/web-service.c:793 +msgid "Asking authorization" +msgstr "認証を確認中" + +#: extensions/oauth/web-service.c:810 +msgid "Getting account information" +msgstr "アカウント情報を取得中" + +#: extensions/photo_importer/actions.c:71 +#: extensions/photo_importer/dlg-photo-importer.c:628 +msgid "Choose a folder" +msgstr "フォルダーを選択" -#: ../extensions/photo_importer/actions.c:71 +#: extensions/photo_importer/actions.c:75 msgid "Import" msgstr "インポート" -#: ../extensions/photo_importer/callbacks.c:52 -msgid "_Removable Device..." -msgstr "リムーバブルデバイス(_R)..." - -#: ../extensions/photo_importer/callbacks.c:53 -msgid "Import photos and other files from a removable device" -msgstr "リムーバブルデバイスから写真などをダウンロードします" - -#: ../extensions/photo_importer/callbacks.c:56 -msgid "F_older..." -msgstr "フォルダー(_O)..." - -#: ../extensions/photo_importer/callbacks.c:57 -msgid "Import photos and other files from a folder" -msgstr "フォルダーから写真やその他のファイルをインポートします" +#: extensions/photo_importer/callbacks.c:41 +msgid "_Removable Device…" +msgstr "リムーバブルデバイス(_R)…" + +#: extensions/photo_importer/callbacks.c:42 +msgid "F_older…" +msgstr "フォルダー(_O)…" -#: ../extensions/photo_importer/data/ui/photo-importer-options.ui.h:1 -msgid "_Rotate the images physically" -msgstr "画像を物理的に回転する(_R)" +#: extensions/photo_importer/callbacks.c:63 +msgid "I_mport From" +msgstr "インポート(_M)" -#: ../extensions/photo_importer/data/ui/photo-importer-options.ui.h:2 +#: extensions/photo_importer/data/ui/photo-importer-options.ui:15 msgid "After importing from a device:" msgstr "デバイスからインポートした後:" +#: extensions/photo_importer/data/ui/photo-importer-options.ui:42 +msgid "_Rotate the images physically" +msgstr "画像を物理的に回転する(_R)" + +#: extensions/photo_importer/data/ui/photo-importer-options.ui:59 +#: extensions/photo_importer/data/ui/photo-importer.ui:273 +msgid "_Delete the imported files from the source" +msgstr "インポートした画像をソースから削除する(_D)" + #. view label -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:3 -#: ../gthumb/gth-filterbar.c:414 +#: extensions/photo_importer/data/ui/photo-importer.ui:54 +#: gthumb/gth-filterbar.c:414 msgid "S_how:" msgstr "フィルター(_H):" -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:4 -msgid "_Tags:" -msgstr "タグ(_T):" - -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:5 +#: extensions/photo_importer/data/ui/photo-importer.ui:185 msgid "_Event:" msgstr "イベント(_E):" -#: ../extensions/photo_importer/data/ui/photo-importer.ui.h:7 -msgid "_Delete the imported files from the source" -msgstr "インポートした画像をソースから削除する(_D)" +#: extensions/photo_importer/data/ui/photo-importer.ui:245 +msgid "_Tags:" +msgstr "タグ(_T):" -#: ../extensions/photo_importer/dlg-photo-importer.c:227 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:174 +#: extensions/photo_importer/dlg-photo-importer.c:227 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:149 msgid "Could not import the files" msgstr "ファイルをインポートできませんでした" #. translators: %d is the number of files, %s the total size -#: ../extensions/photo_importer/dlg-photo-importer.c:299 +#: extensions/photo_importer/dlg-photo-importer.c:291 #, c-format msgid "Files to import: %d (%s)" msgstr "インポートするファイル数: %d (%s)" -#: ../extensions/photo_importer/dlg-photo-importer.c:339 +#: extensions/photo_importer/dlg-photo-importer.c:331 msgid "Could not load the folder" msgstr "フォルダーを読み込めませんでした" -#: ../extensions/photo_importer/dlg-photo-importer.c:369 -#: ../gthumb/gth-browser.c:1932 -msgid "Getting folder listing..." -msgstr "フォルダーの一覧を取得しています..." +#: extensions/photo_importer/dlg-photo-importer.c:356 +#: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 +#: gthumb/gth-folder-tree.c:1186 +msgid "(Empty)" +msgstr "(ファイルなし)" + +#: extensions/photo_importer/dlg-photo-importer.c:361 +msgid "Getting the folder content…" +msgstr "フォルダーの内容を取得中…" -#: ../extensions/photo_importer/dlg-photo-importer.c:415 +#: extensions/photo_importer/dlg-photo-importer.c:407 msgid "Empty" msgstr "空です" -#: ../extensions/photo_importer/dlg-photo-importer.c:586 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" -msgstr "リムーバブルデバイスからのインポート" +msgstr "リムーバブルデバイスからインポート" -#: ../extensions/photo_importer/dlg-photo-importer.c:618 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" -msgstr "フォルダーからのインポート" +msgstr "フォルダーからインポート" -#: ../extensions/photo_importer/photo_importer.extension.in.in.h:1 +#: extensions/photo_importer/photo_importer.extension.desktop.in.in:3 msgid "Import photos" -msgstr "写真のインポート" +msgstr "写真をインポート" -#: ../extensions/photo_importer/photo_importer.extension.in.in.h:2 +#: extensions/photo_importer/photo_importer.extension.desktop.in.in:4 msgid "Import photos from removable devices." msgstr "リムーバブルデバイスから写真をインポートします" -#: ../extensions/picasaweb/callbacks.c:59 -#: ../extensions/picasaweb/callbacks.c:64 -msgid "_Picasa Web Album..." -msgstr "Picasa ウェブアルバム(_P)..." - -#: ../extensions/picasaweb/callbacks.c:60 -msgid "Download photos from Picasa Web Album" -msgstr "写真を Picasa ウェブアルバムからダウンロードします" - -#: ../extensions/picasaweb/callbacks.c:65 -msgid "Upload photos to Picasa Web Album" -msgstr "写真を Picasa ウェブアルバムへアップロードします" - -#: ../extensions/picasaweb/data/ui/export-to-picasaweb.ui.h:1 -msgid "Export to Picasa Web Albums" -msgstr "Picasa ウェブアルバムへのエクスポート" +#: extensions/photo_importer/photo_importer.extension.desktop.in.in:8 +msgid "camera-photo" +msgstr "camera-photo" + +#: extensions/picasaweb/callbacks.c:50 extensions/picasaweb/callbacks.c:56 +msgid "_Picasa Web Album…" +msgstr "Picasa ウェブアルバム(_P)…" -#: ../extensions/picasaweb/data/ui/export-to-picasaweb.ui.h:5 +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:233 msgid "_Albums:" msgstr "アルバムの一覧(_A):" -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:1 -msgid "Import from Picasa Web Album" -msgstr "Picasa ウェブアルバムからのインポート" - -#: ../extensions/picasaweb/data/ui/import-from-picasaweb.ui.h:5 -msgid "_Album:" -msgstr "アルバム(_A):" - -#: ../extensions/picasaweb/data/ui/picasa-web-account-properties.ui.h:1 -msgid "_E-Mail:" -msgstr "E-メール(_E):" - -#: ../extensions/picasaweb/data/ui/picasa-web-account-properties.ui.h:2 -msgid "" -"Type the characters you see in the picture below. Letters are not case-" -"sensitive." -msgstr "" -"下の画像に表示されている文字を入力して下さい (大/小文字は区別しません)。" +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:267 +#: gthumb/gth-main-default-metadata.c:39 +msgid "Name" +msgstr "名前" -#: ../extensions/picasaweb/data/ui/picasa-web-account-properties.ui.h:3 -msgid "_Password:" -msgstr "パスワード(_P):" +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:275 +msgid "Used" +msgstr "使用済み" + +#: extensions/picasaweb/data/ui/export-to-picasaweb.ui:286 +msgid "Remaining photos" +msgstr "残りの写真" -#: ../extensions/picasaweb/data/ui/picasa-web-album-properties.ui.h:4 +#: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:12 msgid "Public" msgstr "一般公開" -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:354 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:310 +#: extensions/picasaweb/dlg-export-to-picasaweb.c:344 +#: extensions/picasaweb/dlg-import-from-picasaweb.c:468 msgid "Could not get the album list" msgstr "アルバムの一覧を取得できませんでした" -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:438 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:394 -msgid "Picasa Web Album" -msgstr "Picasa ウェブアルバム" +#: extensions/picasaweb/dlg-export-to-picasaweb.c:431 +msgid "Export to Picasa Web Albums" +msgstr "Picasa ウェブアルバムへエクスポート" -#: ../extensions/picasaweb/dlg-export-to-picasaweb.c:525 -#: ../extensions/picasaweb/dlg-import-from-picasaweb.c:481 -msgid "Account" -msgstr "アカウント" - -#: ../extensions/picasaweb/picasa-account-properties-dialog.c:104 -msgid "Could not load the file" -msgstr "ファイルを読み込めませんでした" +#: extensions/picasaweb/dlg-import-from-picasaweb.c:547 +msgid "Import from Picasa Web Album" +msgstr "Picasa ウェブアルバムからインポート" -#: ../extensions/picasaweb/picasaweb.extension.in.in.h:1 +#: extensions/picasaweb/picasaweb.extension.desktop.in.in:3 msgid "Picasa Web Albums" msgstr "Picasa ウェブアルバム" -#: ../extensions/picasaweb/picasaweb.extension.in.in.h:2 +#: extensions/picasaweb/picasaweb.extension.desktop.in.in:4 msgid "Upload images to Picasa Web Albums" msgstr "画像を Picasa のウェブアルバムへアップロードします" -#: ../extensions/pixbuf_savers/data/ui/jpeg-options.ui.h:1 -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:1 -msgid "_Default extension:" -msgstr "デフォルトの拡張子(_D):" - -#: ../extensions/pixbuf_savers/data/ui/jpeg-options.ui.h:2 -msgid "_Quality:" -msgstr "品質の度合い(_Q):" - -#: ../extensions/pixbuf_savers/data/ui/jpeg-options.ui.h:3 -msgid "_Smoothing:" -msgstr "平滑化の度合い(_S):" - -#: ../extensions/pixbuf_savers/data/ui/jpeg-options.ui.h:4 -msgid "Opti_mize" -msgstr "最適化する(_M)" - -#: ../extensions/pixbuf_savers/data/ui/jpeg-options.ui.h:5 -msgid "_Progressive" -msgstr "プログレッシブを有効にする(_P)" - -#: ../extensions/pixbuf_savers/data/ui/png-options.ui.h:1 -msgid "Compression _level:" -msgstr "圧縮レベル(_L):" - -#: ../extensions/pixbuf_savers/data/ui/save-options-preferences.ui.h:1 -msgid "Default options:" -msgstr "デフォルトのオプション:" - -#: ../extensions/pixbuf_savers/data/ui/tga-options.ui.h:1 -msgid "_RLE compression" -msgstr "RLE で圧縮する(_R)" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:2 -msgid "_No compression" -msgstr "圧縮しない(_N)" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:3 -msgid "No_rmal (Deflate)" -msgstr "標準(収縮)(_R)" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:4 -msgid "_Loss compression (JPEG)" -msgstr "低圧縮(JPEG)(_L)" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:5 -msgid "Compression" -msgstr "圧縮" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:8 -msgid "dpi" -msgstr "dpi" - -#: ../extensions/pixbuf_savers/data/ui/tiff-options.ui.h:9 -msgid "Resolution" -msgstr "解像度" - -#: ../extensions/pixbuf_savers/gth-jpeg-saver.c:519 -msgid "JPEG" -msgstr "JPEG" - -#: ../extensions/pixbuf_savers/gth-png-saver.c:140 -msgid "PNG" -msgstr "PNG" - -#: ../extensions/pixbuf_savers/gth-tga-saver.c:286 -#: ../gthumb/gth-buffer-data.c:84 -msgid "Insufficient memory" -msgstr "メモリが足りません" - -#: ../extensions/pixbuf_savers/gth-tga-saver.c:373 -msgid "TGA" -msgstr "TGA" - -#: ../extensions/pixbuf_savers/gth-tiff-saver.c:537 -msgid "TIFF" -msgstr "TIFF" - -#: ../extensions/pixbuf_savers/pixbuf_savers.extension.in.in.h:1 -msgid "Save images" -msgstr "画像の保存" - -#: ../extensions/pixbuf_savers/pixbuf_savers.extension.in.in.h:2 -msgid "Save images in common file formats such as JPEG, PNG and TIFF" -msgstr "JPEG や PNG や TIFF のような共通ファイルで画像を保存します" +#: extensions/raw_files/gth-metadata-provider-raw.c:90 +msgid "RAW Format" +msgstr "RAW フォーマット" -#: ../extensions/raw_files/raw_files.extension.in.in.h:1 +#: extensions/raw_files/raw_files.extension.desktop.in.in:3 msgid "Raw format support" -msgstr "Raw フォーマットのサポート" +msgstr "RAW フォーマットのサポート" -#: ../extensions/raw_files/raw_files.extension.in.in.h:2 +#: extensions/raw_files/raw_files.extension.desktop.in.in:4 msgid "Allow to load raw format images." -msgstr "Raw フォーマットの画像を読み込めるようにします" +msgstr "RAW フォーマットの画像を読み込めるようにします" -#: ../extensions/red_eye_removal/data/ui/red-eye-removal-options.ui.h:1 -msgid "_X:" -msgstr "X位置(_X):" - -#: ../extensions/red_eye_removal/data/ui/red-eye-removal-options.ui.h:2 -msgid "_Y:" -msgstr "Y位置(_Y):" - -#: ../extensions/red_eye_removal/gth-file-tool-red-eye.c:510 -msgid "Red Eye Removal..." -msgstr "赤目の軽減..." - -#: ../extensions/red_eye_removal/gth-file-tool-red-eye.c:510 +#: extensions/red_eye_removal/gth-file-tool-red-eye.c:471 msgid "Red Eye Removal" -msgstr "赤目の軽減" +msgstr "赤目軽減" -#: ../extensions/red_eye_removal/gth-file-tool-red-eye.c:511 +#: extensions/red_eye_removal/gth-file-tool-red-eye.c:472 msgid "Remove the red eye effect caused by camera flashes" msgstr "カメラのフラッシュが引き起こす赤目の効果を取り除きます" -#: ../extensions/red_eye_removal/red_eye_removal.extension.in.in.h:1 +#: extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in:3 msgid "Red-eye removal" -msgstr "赤目の軽減" +msgstr "赤目軽減" -#: ../extensions/red_eye_removal/red_eye_removal.extension.in.in.h:2 +#: extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in:4 msgid "Tool to remove the red-eye effect from a photo." msgstr "写真から赤目の効果を取り除くツールです" -#: ../extensions/rename_series/data/ui/code-selector.ui.h:1 +#: extensions/rename_series/data/ui/code-selector.ui:105 msgid "digits" msgstr "桁" -#: ../extensions/rename_series/data/ui/code-selector.ui.h:2 +#: extensions/rename_series/data/ui/code-selector.ui:159 msgid "format:" msgstr "書式:" -#: ../extensions/rename_series/data/ui/code-selector.ui.h:3 +#: extensions/rename_series/data/ui/code-selector.ui:256 msgid "remove" msgstr "削除します" -#: ../extensions/rename_series/data/ui/code-selector.ui.h:4 +#: extensions/rename_series/data/ui/code-selector.ui:276 msgid "add" msgstr "追加します" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:1 -msgid "Rename" -msgstr "名前の変更" +#: extensions/rename_series/data/ui/rename-series.ui:41 +msgid "_Sort by:" +msgstr "並べ替え順序(_S): " #. Translators: this is the text case (upper or lower case). -#: ../extensions/rename_series/data/ui/rename-series.ui.h:6 +#: extensions/rename_series/data/ui/rename-series.ui:54 msgid "Cas_e:" msgstr "大/小文字(_E):" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:7 +#: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 +msgid "Help" +msgstr "ヘルプ" + +#: extensions/rename_series/data/ui/rename-series.ui:97 msgid "Edit template" -msgstr "テンプレートの編集" +msgstr "テンプレートを編集します" + +#. translate only the text in the curly brackets +#: extensions/rename_series/data/ui/rename-series.ui:204 +msgid "%M{ format }" +msgstr "%M{ フォーマット }" + +#. translate only the text in the curly brackets +#: extensions/rename_series/data/ui/rename-series.ui:234 +#, c-format +msgid "%A{ identifier }" +msgstr "%A{ 属性の識別子 }" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:9 -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:34 +#: extensions/rename_series/data/ui/rename-series.ui:280 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1106 msgid "The original filename" msgstr "オリジナルのファイル名" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:10 +#: extensions/rename_series/data/ui/rename-series.ui:295 msgid "The original extension" msgstr "オリジナルの拡張子" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:13 +#: extensions/rename_series/data/ui/rename-series.ui:310 msgid "The original enumerator" msgstr "オリジナルが持つ通番" -#. translate only the text in the curly brackets -#: ../extensions/rename_series/data/ui/rename-series.ui.h:16 -#, no-c-format -msgid "%M{ format }" -msgstr "%M{ フォーマット }" - -#: ../extensions/rename_series/data/ui/rename-series.ui.h:17 +#: extensions/rename_series/data/ui/rename-series.ui:325 msgid "The modification date" msgstr "更新日時" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:21 +#: extensions/rename_series/data/ui/rename-series.ui:341 msgid "The digitalization date" msgstr "EXIF の日時" -#. translate only the text in the curly brackets -#: ../extensions/rename_series/data/ui/rename-series.ui.h:24 -#, no-c-format -msgid "%A{ identifier }" -msgstr "%A{ 属性の識別子 }" +#: extensions/rename_series/data/ui/rename-series.ui:389 +msgid "1" +msgstr "1" + +#: extensions/rename_series/data/ui/rename-series.ui:426 +msgid "Re_verse Order" +msgstr "逆順にする(_V)" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:26 +#: extensions/rename_series/data/ui/rename-series.ui:473 msgid "_Template:" msgstr "テンプレート(_T):" -#: ../extensions/rename_series/data/ui/rename-series.ui.h:27 -msgid "Re_verse Order" -msgstr "逆順にする(_V)" +#: extensions/rename_series/data/ui/rename-series.ui:514 +msgid "_Preview:" +msgstr "プレビュー(_P):" -#: ../extensions/rename_series/dlg-rename-series.c:58 +#: extensions/rename_series/dlg-rename-series.c:58 msgid "Enumerator" msgstr "通番の数字" -#: ../extensions/rename_series/dlg-rename-series.c:59 +#: extensions/rename_series/dlg-rename-series.c:59 msgid "Original filename" msgstr "オリジナルのファイル名" -#: ../extensions/rename_series/dlg-rename-series.c:60 +#: extensions/rename_series/dlg-rename-series.c:60 msgid "Original extension" msgstr "オリジナルの拡張子" -#: ../extensions/rename_series/dlg-rename-series.c:61 +#: extensions/rename_series/dlg-rename-series.c:61 msgid "Original enumerator" msgstr "オリジナルが持つ通番" -#: ../extensions/rename_series/dlg-rename-series.c:62 +#: extensions/rename_series/dlg-rename-series.c:62 msgid "Modification date" msgstr "更新日時" -#: ../extensions/rename_series/dlg-rename-series.c:63 +#: extensions/rename_series/dlg-rename-series.c:63 msgid "Digitalization date" msgstr "EXIF の日時" -#: ../extensions/rename_series/dlg-rename-series.c:64 +#: extensions/rename_series/dlg-rename-series.c:64 msgid "File attribute" msgstr "ファイルの属性" -#: ../extensions/rename_series/dlg-rename-series.c:552 -#: ../extensions/rename_series/dlg-rename-series.c:683 +#: extensions/rename_series/dlg-rename-series.c:558 +#: extensions/rename_series/dlg-rename-series.c:685 msgid "Could not rename the files" msgstr "ファイル名を変更できませんでした" -#: ../extensions/rename_series/dlg-rename-series.c:780 +#: extensions/rename_series/dlg-rename-series.c:782 msgid "Could not save the template" msgstr "テンプレートを保存できませんでした" -#: ../extensions/rename_series/dlg-rename-series.c:798 +#: extensions/rename_series/dlg-rename-series.c:800 msgid "Edit Template" -msgstr "テンプレートの編集" +msgstr "テンプレートを編集" + +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 +msgid "_Rename" +msgstr "名前を変更(_R)" -#: ../extensions/rename_series/dlg-rename-series.c:856 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "古い名前" -#: ../extensions/rename_series/dlg-rename-series.c:867 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "新しい名前" -#: ../extensions/rename_series/dlg-rename-series.c:944 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "オリジナルと同じ大/小文字にする" -#: ../extensions/rename_series/dlg-rename-series.c:945 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "小文字に変換する" -#: ../extensions/rename_series/dlg-rename-series.c:946 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "大文字に変換する" -#: ../extensions/rename_series/gth-rename-task.c:167 +#: extensions/rename_series/gth-rename-task.c:170 msgid "Renaming files" -msgstr "ファイル名の変更中" +msgstr "ファイル名を変更中" -#: ../extensions/rename_series/rename_series.extension.in.in.h:1 +#: extensions/rename_series/rename_series.extension.desktop.in.in:3 msgid "Rename files" -msgstr "ファイル名の変更" +msgstr "ファイル名を変更" -#: ../extensions/rename_series/rename_series.extension.in.in.h:2 +#: extensions/rename_series/rename_series.extension.desktop.in.in:4 msgid "Rename series of files." msgstr "一連のファイルの名前を変更します" -#: ../extensions/resize_images/callbacks.c:45 -msgid "Resize Images..." -msgstr "画像の寸法を変更する..." - -#: ../extensions/resize_images/callbacks.c:46 -msgid "Resize the selected images" -msgstr "選択した画像の寸法を変更します" +#: extensions/resize_images/callbacks.c:38 +msgid "Resize Images…" +msgstr "画像のサイズを変更…" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:1 -msgid "Resize Images" -msgstr "画像の寸法の変更" +#: extensions/resize_images/data/ui/resize-images.ui:29 +msgid "pixel" +msgstr "ピクセル" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:2 +#: extensions/resize_images/data/ui/resize-images.ui:68 msgid "New dimensions" -msgstr "新しい寸法" +msgstr "新しいサイズ" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:4 +#: extensions/resize_images/data/ui/resize-images.ui:120 msgid "_Height:" msgstr "高さ(_H):" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:5 +#: extensions/resize_images/data/ui/resize-images.ui:203 msgid "_Preserve original aspect ratios" msgstr "オリジナルの縦横比を保持する(_P)" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:9 -#: ../gthumb/gth-main-default-metadata.c:49 +#: extensions/resize_images/data/ui/resize-images.ui:324 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "フォーマット" -#: ../extensions/resize_images/data/ui/resize-images.ui.h:10 -msgid "pixel" -msgstr "ピクセル" - -#: ../extensions/resize_images/dlg-resize-images.c:168 -msgid "Resizing images" -msgstr "画像サイズの変更中" +#: extensions/resize_images/dlg-resize-images.c:341 +msgid "Resize Images" +msgstr "画像のサイズを変更" -#: ../extensions/resize_images/dlg-resize-images.c:412 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "オリジナルと同じ形式にする" -#: ../extensions/resize_images/resize_images.extension.in.in.h:1 +#: extensions/resize_images/resize_images.extension.desktop.in.in:3 msgid "Resize images" -msgstr "画像のサイズ変更" +msgstr "画像のサイズを変更" -#: ../extensions/resize_images/resize_images.extension.in.in.h:2 +#: extensions/resize_images/resize_images.extension.desktop.in.in:4 msgid "Resize series of images." msgstr "一連の画像のサイズを変更します" -#: ../extensions/search/actions.c:49 ../extensions/search/actions.c:117 -#: ../extensions/search/actions.c:123 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "検索できませんでした" -#: ../extensions/search/actions.c:54 +#: extensions/search/actions.c:55 msgid "Search Result" msgstr "検索結果" -#: ../extensions/search/actions.c:76 +#: extensions/search/actions.c:78 msgid "Find" msgstr "検索" -#: ../extensions/search/callbacks.c:59 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" -msgstr "ファイルを検索します" +msgstr "ファイルを検索" -#: ../extensions/search/callbacks.c:132 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "もう一度検索します" #. Translators: This is not a verb, it's a name as in "the search properties". -#: ../extensions/search/callbacks.c:174 -#: ../extensions/search/search.extension.in.in.h:1 +#: extensions/search/callbacks.c:169 +#: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "検索" -#: ../extensions/search/gth-search-editor.c:112 -#: ../gthumb/gth-filter-editor-dialog.c:165 +#: extensions/search/gth-search-editor.c:117 +#: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" -msgstr "以下の条件の全て" +msgstr "以下の条件のすべて" -#: ../extensions/search/gth-search-editor.c:113 -#: ../gthumb/gth-filter-editor-dialog.c:166 +#: extensions/search/gth-search-editor.c:118 +#: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "以下の条件のいずれか" -#: ../extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "別の場所を追加します" + +#: extensions/search/gth-search-task.c:194 #, c-format -msgid "Files found until now: %s" -msgstr "見つかったファイル数: %s" +msgid "Files found so far: %s" +msgstr "見つかったファイル: %s" -#: ../extensions/search/gth-search-task.c:271 -msgid "Searching..." -msgstr "検索中..." +#: extensions/search/gth-search-task.c:340 +msgid "Searching…" +msgstr "検索中…" -#: ../extensions/search/gth-search-task.c:277 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "操作をキャンセルします" -#: ../extensions/search/search.extension.in.in.h:2 +#: extensions/search/search.extension.desktop.in.in:4 msgid "File search tool." msgstr "ファイルを検索するツールです" -#: ../extensions/selections/callbacks.c:77 -msgid "Add to _Selection" -msgstr "セレクションに追加(_S)" - -#: ../extensions/selections/callbacks.c:86 -msgid "Selection 1" -msgstr "セレクション 1" - -#: ../extensions/selections/callbacks.c:91 -msgid "Selection 2" -msgstr "セレクション 2" - -#: ../extensions/selections/callbacks.c:96 -msgid "Selection 3" -msgstr "セレクション 3" +#: extensions/search/search.extension.desktop.in.in:8 +msgid "edit-find" +msgstr "edit-find" + +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "セレクションに追加" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "セレクションから削除" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "セレクションを表示" + +#: extensions/selections/callbacks.c:83 +msgid "Remove from Selection" +msgstr "セレクションから削除" + +#: extensions/selections/callbacks.c:128 +#, c-format +msgid "Show selection %d" +msgstr "セレクション %d を表示" -#: ../extensions/selections/callbacks.c:285 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." msgstr "" -"セレクションにファイルを追加するには Alt-%d 、確認するには Ctrl-%d を使いま" +"セレクションにファイルを追加するには Alt-%d、確認するには Ctrl-%d を使用しま" "す。" -#: ../extensions/selections/gth-selections-manager.c:239 +#: extensions/selections/gth-selections-manager.c:228 #, c-format msgid "Selection %d" msgstr "セレクション %d" -#: ../extensions/selections/gth-selections-manager.c:242 -#: ../extensions/selections/selections.extension.in.in.h:1 +#: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 +#: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "セレクション" -#: ../extensions/selections/selections.extension.in.in.h:2 +#: extensions/selections/selections.extension.desktop.in.in:4 msgid "Advanced file selection." -msgstr "高度なファイルの選択方法です。" +msgstr "高度なファイルの選択方法です" -#: ../extensions/slideshow/callbacks.c:56 -msgid "_Slideshow" -msgstr "スライドショー(_S)" - -#: ../extensions/slideshow/callbacks.c:57 -msgid "View as a slideshow" -msgstr "スライドショーで表示します" - -#: ../extensions/slideshow/callbacks.c:410 -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:2 -#: ../extensions/slideshow/preferences.c:162 -#: ../extensions/slideshow/slideshow.extension.in.in.h:1 -msgid "Slideshow" -msgstr "スライドショー" +#: extensions/selections/selections.extension.desktop.in.in:8 +msgid "emblem-flag-gray" +msgstr "emblem-flag-gray" + +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "プレゼンテーションを開始" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "プレゼンテーションを終了" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "プレゼンテーションを中断/再開" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "次のファイルを表示" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "前のファイルを表示" + +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:65 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 +#: extensions/slideshow/slideshow.extension.desktop.in.in:3 +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "プレゼンテーション" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:1 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "個人専用の設定(_P)" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:3 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "遷移時の効果(_T):" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:5 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "次の周期で自動的に遷移する(_C): " -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:7 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 +msgctxt "Every x seconds" +msgid "seconds" +msgstr "秒" + +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "遷移をループさせる(_R)" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:8 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "遷移の順番をランダムにする(_A)" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:9 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" -msgstr "演奏一覧" +msgstr "プレイリスト" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:10 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" -msgstr "ファイルを演奏一覧に追加します" +msgstr "ファイルをプレイリストに追加します" -#: ../extensions/slideshow/data/ui/slideshow-preferences.ui.h:11 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" -msgstr "選択したファイルを演奏一覧から削除します" - -#: ../extensions/slideshow/gth-slideshow.c:229 -msgid "Playing slideshow" -msgstr "スライドショーを実行する" +msgstr "選択したファイルをプレイリストから削除します" -#: ../extensions/slideshow/gth-slideshow-preferences.c:184 +#: extensions/slideshow/gth-slideshow-preferences.c:185 msgid "Choose the files to play" -msgstr "演奏するファイルの選択" +msgstr "再生するファイルを選択" -#: ../extensions/slideshow/gth-slideshow-preferences.c:193 +#: extensions/slideshow/gth-slideshow-preferences.c:194 msgid "Audio files" -msgstr "楽曲ファイル" +msgstr "オーディオファイル" -#: ../extensions/slideshow/gth-slideshow-preferences.c:259 +#: extensions/slideshow/gth-slideshow-preferences.c:260 msgid "Random" msgstr "ランダム" -#: ../extensions/slideshow/main.c:283 +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "プレゼンテーション中" + +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "右から押し出す" -#: ../extensions/slideshow/main.c:289 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "下から押し出す" -#: ../extensions/slideshow/main.c:295 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "右から滑り込ませる" -#: ../extensions/slideshow/main.c:301 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "下から滑り込ませる" -#: ../extensions/slideshow/main.c:307 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "フェードイン" -#: ../extensions/slideshow/main.c:313 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "ページをひっくり返す" -#: ../extensions/slideshow/main.c:319 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "右から立方体を回す" -#: ../extensions/slideshow/main.c:325 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "下から立方体を回す" -#: ../extensions/slideshow/slideshow.extension.in.in.h:2 -msgid "View images as a slideshow." -msgstr "画像をスライドショーで表示します" - -#: ../extensions/webalbums/callbacks.c:71 -msgid "_Web Album..." -msgstr "ウェブアルバム(_W)..." - -#: ../extensions/webalbums/callbacks.c:72 -msgid "Create a static web album" -msgstr "ローカルのウェブアルバムを作成します" +#: extensions/slideshow/slideshow.extension.desktop.in.in:4 +msgid "Play a presentation of images." +msgstr "画像のプレゼンテーションを再生します" + +#: extensions/slideshow/slideshow.extension.desktop.in.in:8 +msgid "x-office-presentation" +msgstr "x-office-presentation" + +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "端末" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +msgid "Open in Terminal" +msgstr "端末で開く" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +msgid "Open a folder in a terminal" +msgstr "フォルダーを端末で開きます" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + +#: extensions/webalbums/callbacks.c:48 +msgid "_Web Album…" +msgstr "ウェブアルバム(_W)…" -#: ../extensions/webalbums/data/albumthemes/text.h:26 +#: extensions/webalbums/data/albumthemes/text.h:26 msgid "Click to view the image" -msgstr "表示する画像をクリックして下さい" +msgstr "表示する画像をクリックしてください" -#: ../extensions/webalbums/data/albumthemes/text.h:27 +#: extensions/webalbums/data/albumthemes/text.h:27 msgid "Go back to the index" msgstr "目次に戻ります" -#: ../extensions/webalbums/data/albumthemes/text.h:28 +#: extensions/webalbums/data/albumthemes/text.h:28 #, c-format msgid "Image %d of %d" msgstr "%d / %d の画像" -#: ../extensions/webalbums/data/albumthemes/text.h:29 -msgid "Index" -msgstr "目次" - -#: ../extensions/webalbums/data/albumthemes/text.h:30 -#: ../gthumb/gth-browser-actions-entries.h:125 -msgid "Next" -msgstr "次へ" - -#: ../extensions/webalbums/data/albumthemes/text.h:32 -#: ../gthumb/gth-browser-actions-entries.h:119 -msgid "Previous" -msgstr "前へ" - -#: ../extensions/webalbums/data/albumthemes/text.h:33 +#: extensions/webalbums/data/albumthemes/text.h:29 +msgid "Index" +msgstr "目次" + +#: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" msgstr "%d ページを表示します" -#: ../extensions/webalbums/data/albumthemes/text.h:34 +#: extensions/webalbums/data/albumthemes/text.h:34 msgid "View the next image" msgstr "次の画像を表示します" -#: ../extensions/webalbums/data/albumthemes/text.h:35 +#: extensions/webalbums/data/albumthemes/text.h:35 msgid "View the next page" msgstr "次のページを表示します" -#: ../extensions/webalbums/data/albumthemes/text.h:36 +#: extensions/webalbums/data/albumthemes/text.h:36 msgid "View the previous image" msgstr "前の画像を表示します" -#: ../extensions/webalbums/data/albumthemes/text.h:37 +#: extensions/webalbums/data/albumthemes/text.h:37 msgid "View the previous page" msgstr "前のページを表示します" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:1 -msgid "All images on a single image" -msgstr "全ての画像を1つの画像にまとめる" +#: extensions/webalbums/data/ui/web-album-exporter.ui:19 +msgid "All images on a single image" +msgstr "すべての画像を一つの画像にまとめる" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:2 +#: extensions/webalbums/data/ui/web-album-exporter.ui:22 msgid "Adapts to the window width" msgstr "ウィンドウの幅に合わせる" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:3 -msgid "Web Album" -msgstr "ウェブアルバム" - -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:5 -#, no-c-format +#: extensions/webalbums/data/ui/web-album-exporter.ui:127 msgid "%P" msgstr "%P" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:19 +#: extensions/webalbums/data/ui/web-album-exporter.ui:395 msgid "_Copy originals to destination" -msgstr "元の画像を格納場所へコピーする(_C)" - -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:20 -msgid "_Resize if larger than:" -msgstr "次よりも大きい場合はサイズを変更する(_R):" +msgstr "元の画像を保存先へコピーする(_C)" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:27 +#: extensions/webalbums/data/ui/web-album-exporter.ui:706 msgid "_Adapt to the window width " msgstr "ウィンドウの幅に合わせる(_A)" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:30 +#: extensions/webalbums/data/ui/web-album-exporter.ui:794 +#: extensions/webalbums/data/ui/web-album-exporter.ui:869 msgid "Index Page" msgstr "目次のページ" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:31 +#: extensions/webalbums/data/ui/web-album-exporter.ui:844 msgid "Thumbnail Caption" msgstr "サムネイルの見出し" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:32 +#: extensions/webalbums/data/ui/web-album-exporter.ui:988 msgid "The current image number" msgstr "現在の通し番号" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:33 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1006 msgid "The total number of images" msgstr "画像の総数" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:35 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1124 msgid "The file comment" msgstr "ファイルのコメント" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:36 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1207 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1323 msgid "Image Page" msgstr "画像のページ" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:37 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1241 msgid "Show the description, if available" -msgstr "可能ならば、説明を表示する" +msgstr "可能なら説明を表示する" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:38 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1267 msgid "Show the following attributes:" msgstr "次の属性値を表示する:" -#: ../extensions/webalbums/data/ui/web-album-exporter.ui.h:39 +#: extensions/webalbums/data/ui/web-album-exporter.ui:1301 msgid "Image Attributes" msgstr "画像の属性値" -#: ../extensions/webalbums/gth-web-exporter.c:1802 +#: extensions/webalbums/dlg-web-exporter.c:379 +msgid "Web Album" +msgstr "ウェブアルバム" + +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "フォルダーを表示できませんでした" -#: ../extensions/webalbums/gth-web-exporter.c:1838 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "アルバムの作成が完了しました。" -#: ../extensions/webalbums/gth-web-exporter.c:2106 -#: ../extensions/webalbums/gth-web-exporter.c:2133 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" -msgstr "サムネイルの保存中" +msgstr "サムネイルを保存中" -#: ../extensions/webalbums/gth-web-exporter.c:2161 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" -msgstr "HTML ページの保存中: 画像" +msgstr "HTML ページを保存中: 画像" -#: ../extensions/webalbums/gth-web-exporter.c:2219 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" -msgstr "HTML ページの保存中: 目録" +msgstr "HTML ページを保存中: 目録" -#: ../extensions/webalbums/gth-web-exporter.c:2502 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" -msgstr "オリジナルの画像をコピーする" +msgstr "オリジナルの画像をコピー中" -#: ../extensions/webalbums/gth-web-exporter.c:2929 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "スタイルのフォルダーが見つかりませんでした" -#: ../extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "作業フォルダーを作成できませんでした" -#: ../extensions/webalbums/webalbums.extension.in.in.h:1 +#: extensions/webalbums/webalbums.extension.desktop.in.in:3 msgid "Web Albums" msgstr "ウェブアルバム" -#: ../extensions/webalbums/webalbums.extension.in.in.h:2 +#: extensions/webalbums/webalbums.extension.desktop.in.in:4 msgid "Create static web albums." msgstr "ローカルのウェブアルバムを作成します" -#: ../gthumb/dlg-location.c:200 ../gthumb/gth-browser.c:1251 -#: ../gthumb/gth-browser.c:1820 ../gthumb/gth-browser.c:5975 -#: ../gthumb/gth-browser.c:5994 ../gthumb/gth-browser.c:6018 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format -msgid "Could not load the position \"%s\"" -msgstr "\"%s\" を読み込めませんでした" +msgid "Could not load the position “%s”" +msgstr "“%s”を読み込めませんでした" + +#: gthumb/dlg-location.c:408 gthumb/dlg-location.c:418 +msgid "Open" +msgstr "開く" -#: ../gthumb/dlg-personalize-filters.c:237 +#: gthumb/dlg-personalize-filters.c:237 msgid "Filter" msgstr "フィルター" -#: ../gthumb/dlg-personalize-filters.c:315 +#: gthumb/dlg-personalize-filters.c:315 msgid "Could not save the filter" msgstr "フィルターを保存できませんでした" -#: ../gthumb/dlg-personalize-filters.c:358 +#: gthumb/dlg-personalize-filters.c:358 msgid "New Filter" msgstr "新しいフィルター" -#: ../gthumb/dlg-personalize-filters.c:387 +#: gthumb/dlg-personalize-filters.c:387 msgid "Edit Filter" -msgstr "フィルターの編集" +msgstr "フィルターを編集" -#: ../gthumb/dlg-preferences-extensions.c:67 ../gthumb/gth-filterbar.c:270 +#: gthumb/dlg-personalize-filters.c:519 +msgid "Filters" +msgstr "フィルターの一覧" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 +msgid "Browser" +msgstr "ブラウザー" + +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" -msgstr "全て" +msgstr "すべて" -#: ../gthumb/dlg-preferences-extensions.c:68 +#: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "有効" -#: ../gthumb/dlg-preferences-extensions.c:69 +#: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "無効" -#: ../gthumb/dlg-preferences-extensions.c:72 +#: gthumb/dlg-preferences-extensions.c:66 msgid "Viewers" msgstr "ビューアー系" -#: ../gthumb/dlg-preferences-extensions.c:73 +#: gthumb/dlg-preferences-extensions.c:67 gthumb/gth-file-details.c:42 +#: gthumb/gth-main-default-metadata.c:33 msgid "Metadata" msgstr "メタデータ系" -#: ../gthumb/dlg-preferences-extensions.c:74 +#: gthumb/dlg-preferences-extensions.c:68 msgid "File tools" msgstr "ファイル系" -#: ../gthumb/dlg-preferences-extensions.c:75 +#: gthumb/dlg-preferences-extensions.c:69 msgid "List tools" msgstr "一覧系" -#: ../gthumb/dlg-preferences-extensions.c:76 +#: gthumb/dlg-preferences-extensions.c:70 msgid "Importers" msgstr "インポート系" -#: ../gthumb/dlg-preferences-extensions.c:77 +#: gthumb/dlg-preferences-extensions.c:71 msgid "Exporters" msgstr "エクスポート系" -#: ../gthumb/dlg-preferences-extensions.c:216 +#: gthumb/dlg-preferences-extensions.c:368 msgid "Could not activate the extension" msgstr "拡張機能を有効にできませんでした" -#: ../gthumb/dlg-preferences-extensions.c:226 +#: gthumb/dlg-preferences-extensions.c:374 msgid "Could not deactivate the extension" msgstr "拡張機能を無効にできませんでした" +#: gthumb/dlg-preferences-extensions.c:491 +msgid "gThumb Development Team" +msgstr "gThumb 開発チーム" + #. add the page to the preferences dialog -#: ../gthumb/dlg-preferences-extensions.c:772 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "拡張機能" -#: ../gthumb/dlg-preferences-extensions.c:819 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "再起動が必要です" -#: ../gthumb/dlg-preferences-extensions.c:820 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" -msgstr "変更内容を適用するには gThumb を再起動する必要があります。" - -#: ../gthumb/dlg-preferences-extensions.c:821 -msgid "_Continue" -msgstr "続行する(_C)" +msgstr "変更内容を適用するには gThumb を再起動する必要があります" -#: ../gthumb/dlg-preferences-extensions.c:822 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" -msgstr "再起動する(_R)" +msgstr "再起動(_R)" -#: ../gthumb/eggfileformatchooser.c:236 -#, c-format -msgid "File _Format: %s" -msgstr "ファイルの形式(_F): %s" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "戻す" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "すべての変更を元に戻してデフォルトのショートカットを使用しますか?" -#: ../gthumb/eggfileformatchooser.c:397 ../gthumb/gth-main-default-tests.c:233 -msgid "All Files" -msgstr "全てのファイル" +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "すべて" -#: ../gthumb/eggfileformatchooser.c:398 -msgid "All Supported Files" -msgstr "サポートしている全ファイル" +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "更新日時" -#: ../gthumb/eggfileformatchooser.c:407 -msgid "By Extension" -msgstr "拡張子に合わせる" - -#: ../gthumb/eggfileformatchooser.c:422 -msgid "File Format" -msgstr "ファイルの形式" - -#: ../gthumb/eggfileformatchooser.c:440 -msgid "Extension(s)" -msgstr "拡張子" +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "ショートカット" -#: ../gthumb/eggfileformatchooser.c:681 -#, c-format -msgid "" -"The program was not able to find out the file format you want to use for `%" -"s'. Please make sure to use a known extension for that file or manually " -"choose a file format from the list below." -msgstr "" -"'%s' で拡張子として使用しているファイル形式を見つけることができませんでした。" -"そのファイルに対して既知の拡張子を使っていることを確認するか、または下の一覧" -"からファイルの形式を選択して下さい。" - -#: ../gthumb/eggfileformatchooser.c:688 -msgid "File format not recognized" -msgstr "不明なファイル形式です" +#: gthumb/dlg-sort-order.c:113 +msgid "Sort By" +msgstr "並べ替え" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: ../gthumb/gio-utils.c:1351 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s / %s" -#: ../gthumb/gio-utils.c:1386 +#: gthumb/gio-utils.c:1148 #, c-format -msgid "Moving \"%s\" to \"%s\"" -msgstr "\"%s\" から \"%s\" へ移動中" +msgid "Moving “%s” to “%s”" +msgstr "“%s”から“%s”へ移動中" -#: ../gthumb/gio-utils.c:1388 +#: gthumb/gio-utils.c:1150 #, c-format -msgid "Copying \"%s\" to \"%s\"" -msgstr "\"%s\" から \"%s\" へコピー中" +msgid "Copying “%s” to “%s”" +msgstr "“%s”から“%s”にコピー中" -#: ../gthumb/gio-utils.c:1750 +#: gthumb/gio-utils.c:1561 msgid "Moving files" -msgstr "ファイルの移動中" +msgstr "ファイルを移動中" -#: ../gthumb/gio-utils.c:1750 +#: gthumb/gio-utils.c:1561 msgid "Copying files" -msgstr "ファイルのコピー中" +msgstr "ファイルをコピー中" -#: ../gthumb/gio-utils.c:1751 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" -msgstr "ファイル情報の取得中" +msgstr "ファイル情報を取得中" + +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "ファイルを削除中" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "ファイルをゴミ箱へ移動中" #. hour:minutes:seconds -#. Translators: This is a time format, like "9:05:02" for 9 -#. * hours, 5 minutes, and 2 seconds. You may change ":" to +#. Translators: This is a time format, like "9∶05∶02" for 9 +#. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: ../gthumb/glib-utils.c:2945 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" -msgid "%d:%02d:%02d" -msgstr "%d:%2d:%2d" +msgid "%d∶%02d∶%02d" +msgstr "%d:%02d:%02d" #. minutes:seconds -#. Translators: This is a time format, like "5:02" for 5 -#. * minutes and 2 seconds. You may change ":" to the +#. Translators: This is a time format, like "5∶02" for 5 +#. * minutes and 2 seconds. You may change "∶" to the #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: ../gthumb/glib-utils.c:2954 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" -msgid "%d:%02d" -msgstr "%d:%2d" +msgid "%d∶%02d" +msgstr "%d:%02d" + +#: gthumb/gth-accel-dialog.c:121 +msgid "Press a combination of keys to use as shortcut." +msgstr "ショートカットとして使用するキーの組み合わせを押してください。" + +#: gthumb/gth-accel-dialog.c:122 +msgid "Press Esc to cancel" +msgstr "Esc を押すとキャンセルします" + +#: gthumb/gth-application.c:52 +msgid "Open a new window" +msgstr "新しいウィンドウを開く" -#: ../gthumb/gth-browser-actions-callbacks.c:400 +#: gthumb/gth-application.c:56 +msgid "Start in fullscreen mode" +msgstr "全画面モードで起動する" + +#: gthumb/gth-application.c:60 +msgid "Automatically start a presentation" +msgstr "自動的にプレゼンテーションを開始する" + +#: gthumb/gth-application.c:64 +msgid "Automatically import digital camera photos" +msgstr "自動的にデジタルカメラの写真をインポートする" + +#: gthumb/gth-application.c:68 +msgid "Show version" +msgstr "バージョンを表示する" + +#: gthumb/gth-application.c:171 +msgid "— Image browser and viewer" +msgstr "— 画像ブラウザー/画像ビューアー" + +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" -"gthumb is free software; you can redistribute it and/or modify it under the " +"gThumb 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." @@ -4844,819 +4940,840 @@ "衆利用許諾契約書の第二版、あるいはそれ以降の版が定める条項の下で本プログラム" "を再頒布または変更することができます。" -#: ../gthumb/gth-browser-actions-callbacks.c:404 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" -"gthumb is distributed in the hope that it will be useful, but WITHOUT ANY " +"gThumb 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." msgstr "" "gThumb は有用とは思いますが、その頒布にあたり商用での利用や特定の目的に対する" -"適用については暗黙の保証を含めて、いかなる保証も行ないません。詳細には GNU 一" -"般公衆利用許諾契約書をご覧下さい。" +"適用については暗黙の保証を含めて、いかなる保証も行ないません。詳細は GNU 一般" +"公衆利用許諾契約書をご覧ください。" -#: ../gthumb/gth-browser-actions-callbacks.c:408 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " -"gthumb. If not, see http://www.gnu.org/licenses/." +"gThumb. If not, see http://www.gnu.org/licenses/." msgstr "" "あなたは gThumb と一緒に GNU 一般公衆利用許諾契約書の写しを受け取っているはず" -"です。もしくは http://www.gnu.org/licenses/ をご覧下さい。" +"です。もしくは http://www.gnu.org/licenses/ をご覧ください。" -#: ../gthumb/gth-browser-actions-callbacks.c:427 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." -msgstr "GNOME 向けの画像ビューアー/画像ブラウザーです。" +msgstr "GNOME 向けの画像ビューアー/画像ブラウザー" -#: ../gthumb/gth-browser-actions-callbacks.c:430 -msgid "translator_credits" +#: gthumb/gth-browser-actions-callbacks.c:130 +msgid "translator-credits" msgstr "" "相花 毅 \n" "松澤 二郎 \n" +"日本 GNOME ユーザー会 \n" +"OKANO Takayoshi \n" "Ritsuko Sato \n" -"日本GNOMEユーザー会 http://www.gnome.gr.jp" - -#: ../gthumb/gth-browser-actions-entries.h:31 -msgid "_File" -msgstr "ファイル(_F)" - -#: ../gthumb/gth-browser-actions-entries.h:32 -msgid "_Edit" -msgstr "編集(_E)" - -#: ../gthumb/gth-browser-actions-entries.h:34 -msgid "_Go" -msgstr "ジャンプ(_G)" - -#: ../gthumb/gth-browser-actions-entries.h:35 -msgid "_Help" -msgstr "ヘルプ(_H)" - -#: ../gthumb/gth-browser-actions-entries.h:36 -msgid "Open _With" -msgstr "次で開く(_W)" - -#: ../gthumb/gth-browser-actions-entries.h:37 -msgid "I_mport From" -msgstr "インポート(_M)" - -#: ../gthumb/gth-browser-actions-entries.h:38 -msgid "E_xport To" -msgstr "エクスポート(_X)" - -#: ../gthumb/gth-browser-actions-entries.h:41 -msgid "New _Window" -msgstr "新しいウィンドウ(_W)" - -#: ../gthumb/gth-browser-actions-entries.h:42 -msgid "Open another window" -msgstr "別のウィンドウを開きます" - -#: ../gthumb/gth-browser-actions-entries.h:71 -msgid "Open" -msgstr "開く" - -#: ../gthumb/gth-browser-actions-entries.h:77 -msgid "Open in New Window" -msgstr "新しいウィンドウで開く" - -#: ../gthumb/gth-browser-actions-entries.h:84 -msgid "Edit various preferences" -msgstr "gThumb の設定を変更します" - -#: ../gthumb/gth-browser-actions-entries.h:95 -msgid "_Sort By..." -msgstr "並べ替え(_S)..." - -#: ../gthumb/gth-browser-actions-entries.h:101 -msgid "_Filter..." -msgstr "フィルター(_F)..." - -#: ../gthumb/gth-browser-actions-entries.h:108 -msgid "Stop loading the current location" -msgstr "この場所の読み込みを停止します" - -#: ../gthumb/gth-browser-actions-entries.h:114 -msgid "Reload the current location" -msgstr "この場所の画像を再度読み込みます" - -#: ../gthumb/gth-browser-actions-entries.h:120 -msgid "View previous image" -msgstr "前の画像を表示します" - -#: ../gthumb/gth-browser-actions-entries.h:126 -msgid "View next image" -msgstr "次の画像を表示します" - -#: ../gthumb/gth-browser-actions-entries.h:132 -msgid "Switch to fullscreen" -msgstr "フルスクリーン表示に切り替えます" - -#: ../gthumb/gth-browser-actions-entries.h:138 -msgid "Leave Fullscreen" -msgstr "フルスクリーン表示を解除します" - -#: ../gthumb/gth-browser-actions-entries.h:144 ../gthumb/gth-browser.c:3658 -msgid "Go to the previous visited location" -msgstr "前に訪れた場所へジャンプします" - -#: ../gthumb/gth-browser-actions-entries.h:150 ../gthumb/gth-browser.c:3676 -msgid "Go to the next visited location" -msgstr "次に訪れた場所へジャンプします" - -#: ../gthumb/gth-browser-actions-entries.h:156 ../gthumb/gth-browser.c:3694 -msgid "Go up one level" -msgstr "一つ上の場所に上がります" - -#: ../gthumb/gth-browser-actions-entries.h:161 -msgid "_Location..." -msgstr "場所(_L)..." - -#: ../gthumb/gth-browser-actions-entries.h:162 -msgid "Specify a location to open" -msgstr "場所を指定して開く" - -#: ../gthumb/gth-browser-actions-entries.h:173 ../gthumb/gth-browser.c:673 -msgid "_Delete History" -msgstr "履歴の削除(_D)" - -#: ../gthumb/gth-browser-actions-entries.h:174 -msgid "Delete the list of visited locations" -msgstr "最近訪れた場所の一覧を削除します" - -#: ../gthumb/gth-browser-actions-entries.h:180 -msgid "View the folders" -msgstr "フォルダーを表示します" - -#: ../gthumb/gth-browser-actions-entries.h:186 -msgid "Show information about gthumb" -msgstr "gThumb の情報を表示します" - -#: ../gthumb/gth-browser-actions-entries.h:191 -msgid "Contents" -msgstr "目次" +"sicklylife " -#: ../gthumb/gth-browser-actions-entries.h:192 -msgid "Display the gthumb Manual" -msgstr "gThumb のマニュアルを表示します" - -#: ../gthumb/gth-browser-actions-entries.h:197 -msgid "_Keyboard Shortcuts" -msgstr "キー操作(_K)" - -#: ../gthumb/gth-browser-actions-entries.h:206 -msgid "_Toolbar" -msgstr "ツールバー(_T)" - -#: ../gthumb/gth-browser-actions-entries.h:207 -msgid "View or hide the toolbar of this window" -msgstr "このウィンドウのツールバーの表示を ON/OFF します" - -#: ../gthumb/gth-browser-actions-entries.h:211 -msgid "_Statusbar" -msgstr "ステータスバー(_S)" - -#: ../gthumb/gth-browser-actions-entries.h:212 -msgid "View or hide the statusbar of this window" -msgstr "このウィンドウのステータスバーの表示を ON/OFF します" - -#: ../gthumb/gth-browser-actions-entries.h:216 -msgid "_Filterbar" -msgstr "フィルターバー(_F)" - -#: ../gthumb/gth-browser-actions-entries.h:217 -msgid "View or hide the filterbar of this window" -msgstr "このウィンドウのフィルターバーの表示を ON/OFF します" - -#: ../gthumb/gth-browser-actions-entries.h:221 -msgid "_Sidebar" -msgstr "サイドバー(_S)" - -#: ../gthumb/gth-browser-actions-entries.h:222 -msgid "View or hide the sidebar of this window" -msgstr "このウィンドウのサイドバーの表示を ON/OFF します" - -#: ../gthumb/gth-browser-actions-entries.h:226 -msgid "_Thumbnail Pane" -msgstr "サムネイルの一覧(_T)" - -#: ../gthumb/gth-browser-actions-entries.h:227 -msgid "View or hide the thumbnail pane in viewer mode" -msgstr "サムネイルの一覧表示を ON/OFF します" - -#: ../gthumb/gth-browser-actions-entries.h:231 -msgid "_Thumbnails" -msgstr "サムネイル(_T)" - -#: ../gthumb/gth-browser-actions-entries.h:232 -msgid "View thumbnails" -msgstr "サムネイルで表示します" - -#: ../gthumb/gth-browser-actions-entries.h:236 -msgid "_Hidden Files" -msgstr "隠しファイル(_H)" - -#: ../gthumb/gth-browser-actions-entries.h:237 -msgid "Show hidden files and folders" -msgstr "隠しファイルや隠しフォルダーを表示します" - -#: ../gthumb/gth-browser-actions-entries.h:242 -#: ../gthumb/gth-browser-actions-entries.h:247 -msgid "View file properties" -msgstr "ファイルのプロパティを表示します" - -#: ../gthumb/gth-browser-actions-entries.h:251 -msgid "Edit" -msgstr "編集する" +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "新しいウィンドウ" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 +msgid "Keyboard Shortcuts" +msgstr "キーボードショートカット" + +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "終了" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "ブラウザーを表示" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "ウィンドウを閉じる" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "場所を開く" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "フルスクリーン" + +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "画像を保存されている状態に戻す" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "サイドバー" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "ステータスバー" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "サムネイル一覧" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "前の場所を読み込む" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "次の場所を読み込む" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "親フォルダーを読み込む" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "ホームを読み込む" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "場所を再読み込み" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "隠しファイルを表示/非表示" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "並べ替えを変更" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "最初のファイルを表示" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "最後のファイルを表示" -#: ../gthumb/gth-browser-actions-entries.h:252 -msgid "Edit file" -msgstr "ファイルを編集します" +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "画像を修正" -#: ../gthumb/gth-browser-actions-entries.h:256 -msgid "_Fit Window to Image" -msgstr "画像に合わせる(_F)" +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "ファイルのプロパティ" -#: ../gthumb/gth-browser-actions-entries.h:257 -msgid "Resize the window to the size of the image" -msgstr "画像のサイズに合わせてウィンドウの大きさを変更します" +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "すべて選択" -#: ../gthumb/gth-browser.c:370 -#, c-format -msgid "Open %s" -msgstr "%s を開きます" +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "選択を解除" -#: ../gthumb/gth-browser.c:510 +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[変更済]" -#: ../gthumb/gth-browser.c:1007 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" -msgstr[0] "%d個のファイルを選択しました (%s)" +msgstr[0] "%d 個のファイルを選択しました (%s)" -#: ../gthumb/gth-browser.c:1042 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" -msgstr "%sの空き" +msgstr "%s の空き" -#: ../gthumb/gth-browser.c:1916 ../gthumb/gth-browser.c:1943 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" -msgstr "%s に適したモジュールではありませんでした" +msgstr "%s に適したモジュールが見つかりませんでした" -#: ../gthumb/gth-browser.c:2063 +#: gthumb/gth-browser.c:1907 #, c-format -msgid "Save changes to file '%s'?" -msgstr "'%s' の変更点を保存しますか?" +msgid "Save changes to file “%s”?" +msgstr "“%s”の変更を保存しますか?" -#: ../gthumb/gth-browser.c:2068 -msgid "If you don't save, changes to the file will be permanently lost." -msgstr "保存しないと、そのファイルに対する変更点は完全に失われます。" +#: gthumb/gth-browser.c:1912 +msgid "If you don’t save, changes to the file will be permanently lost." +msgstr "保存しないと、そのファイルに対する変更は完全に失われます。" -#: ../gthumb/gth-browser.c:2069 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "保存しない(_N)" -#: ../gthumb/gth-browser.c:2842 ../gthumb/gth-source-tree.c:182 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 +msgid "Accept" +msgstr "承認" + +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 +msgid "_Close" +msgstr "閉じる(_C)" + +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "名前を変更できませんでした" -#: ../gthumb/gth-browser.c:3271 ../gthumb/gth-main-default-metadata.c:41 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "更新日時" -#: ../gthumb/gth-browser.c:3659 ../gthumb/gth-browser.c:3677 -msgid "View the list of visited locations" -msgstr "最近訪れた場所の一覧を表示します" - -#: ../gthumb/gth-browser.c:3695 -msgid "View the list of upper locations" -msgstr "上にある場所の一覧を表示します" +#: gthumb/gth-browser.c:4516 +msgid "Go to the previous visited location" +msgstr "前に表示した場所へジャンプします" + +#: gthumb/gth-browser.c:4522 +msgid "Go to the next visited location" +msgstr "次に表示した場所へジャンプします" + +#: gthumb/gth-browser.c:4530 +msgid "History" +msgstr "履歴" + +#: gthumb/gth-browser.c:4544 +msgid "View the folders" +msgstr "フォルダーを表示します" + +#: gthumb/gth-browser.c:4559 +msgid "Edit file" +msgstr "ファイルを編集します" -#: ../gthumb/gth-browser.c:5976 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "サポートしていない種類のファイルです" -#: ../gthumb/gth-browser.c:6019 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" -msgstr "妥当なモジュールが見つかりませんでした" +msgstr "適切なモジュールが見つかりませんでした" -#: ../gthumb/gth-extensions.c:203 +#: gthumb/gth-extensions.c:206 #, c-format -msgid "Could not open the module `%s`: %s" -msgstr "'%s' というモジュールをオープンできませんでした: %s" +msgid "Could not open the module “%s”: %s" +msgstr "モジュール“%s”を開けませんでした: %s" -#: ../gthumb/gth-extensions.c:744 +#: gthumb/gth-extensions.c:759 #, c-format -msgid "The extension '%1$s' is required by the extension '%2$s'" -msgstr "拡張機能の '%2$s' にはこの '%1$s' が必要です。" +msgid "The extension “%1$s” is required by the extension “%2$s”" +msgstr "拡張機能“%2$s”は“%1$s”が必要です" -#: ../gthumb/gth-file-source-vfs.c:121 -msgid "Home Folder" -msgstr "ホームフォルダー" +#: gthumb/gth-file-chooser-dialog.c:145 +msgid "All Supported Files" +msgstr "サポートしている全ファイル" -#: ../gthumb/gth-file-source-vfs.c:126 -msgid "File System" -msgstr "ファイルシステム" +#: gthumb/gth-file-chooser-dialog.c:195 +msgid "_Show Format Options" +msgstr "フォーマットオプションを表示(_S)" + +#: gthumb/gth-file-source-vfs.c:219 +msgid "Computer" +msgstr "コンピューター" -#: ../gthumb/gth-file-source-vfs.c:739 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" -msgstr "" -"ファイルをゴミ箱へ移動できませんが、代わりにそれらを完全に消去しますか?" +msgstr "ファイルをゴミ箱へ移動できません。それらを完全に削除しますか?" -#: ../gthumb/gth-file-source-vfs.c:750 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "ファイルをゴミ箱へ移動できませんでした" -#: ../gthumb/gth-file-source-vfs.c:797 +#: gthumb/gth-file-source-vfs.c:829 #, c-format -msgid "Are you sure you want to move \"%s\" to trash?" -msgstr "本当に \"%s\" をゴミ箱に移動しますか?" +msgid "Are you sure you want to permanently delete “%s”?" +msgstr "本当に“%s”を完全に削除しますか?" -#: ../gthumb/gth-file-source-vfs.c:801 -#, c-format -msgid "Are you sure you want to move to trash the %'d selected file?" -msgid_plural "Are you sure you want to move to trash the %'d selected files?" -msgstr[0] "本当に選択した%'d個のファイルをゴミ箱へ移動しますか?" - -#: ../gthumb/gth-file-source-vfs.c:844 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" "Are you sure you want to permanently delete the %'d selected files?" -msgstr[0] "本当に選択した%'d個のファイルを完全に消去しますか?" +msgstr[0] "本当に選択した %'d 個のファイルを完全に削除しますか?" + +#: gthumb/gth-file-source-vfs.c:842 +msgid "If you delete a file, it will be permanently lost." +msgstr "ファイルを削除すると元に戻すことはできません。" -#: ../gthumb/gth-filterbar.c:406 -msgid "Hide the filterbar" -msgstr "フィルターバーを隠します" +#. "files" label +#: gthumb/gth-filter-editor-dialog.c:179 gthumb/gth-filter.c:287 +msgid "files" +msgstr "個のファイル" -#: ../gthumb/gth-filter.c:43 ../gthumb/gth-filter-editor-dialog.c:178 -#: ../gthumb/gth-test-simple.c:75 +#: gthumb/gth-filter-editor-dialog.c:180 gthumb/gth-filter.c:43 +#: gthumb/gth-test-simple.c:78 msgid "kB" msgstr "KB" -#: ../gthumb/gth-filter.c:44 ../gthumb/gth-filter-editor-dialog.c:179 -#: ../gthumb/gth-test-simple.c:76 +#: gthumb/gth-filter-editor-dialog.c:181 gthumb/gth-filter.c:44 +#: gthumb/gth-test-simple.c:79 msgid "MB" msgstr "MB" -#: ../gthumb/gth-filter.c:45 ../gthumb/gth-filter-editor-dialog.c:180 -#: ../gthumb/gth-test-simple.c:77 +#: gthumb/gth-filter-editor-dialog.c:182 gthumb/gth-filter.c:45 +#: gthumb/gth-test-simple.c:80 msgid "GB" msgstr "GB" -#. "files" label -#: ../gthumb/gth-filter.c:291 ../gthumb/gth-filter-editor-dialog.c:177 -msgid "files" -msgstr "個のファイル" - -#: ../gthumb/gth-filter-editor-dialog.c:224 +#: gthumb/gth-filter-editor-dialog.c:226 msgid "ascending" msgstr "で昇順" -#: ../gthumb/gth-filter-editor-dialog.c:225 +#: gthumb/gth-filter-editor-dialog.c:227 msgid "descending" msgstr "で降順" -#: ../gthumb/gth-filter-editor-dialog.c:515 +#: gthumb/gth-filter-editor-dialog.c:521 #, c-format msgid "No limit specified" msgstr "制限なし" -#: ../gthumb/gth-folder-tree.c:857 -msgid "Loading..." -msgstr "読み込み中..." +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "すべて" -#: ../gthumb/gth-folder-tree.c:1100 +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(親フォルダーを開く)" -#: ../gthumb/gth-histogram-view.c:826 -msgid "Linear scale" -msgstr "線形比にします" - -#: ../gthumb/gth-histogram-view.c:838 -msgid "Logarithmic scale" -msgstr "対数比にします" - -#: ../gthumb/gth-histogram-view.c:858 -msgid "Channel:" -msgstr "チャンネル:" - -#: ../gthumb/gth-histogram-view.c:890 -msgid "Value" -msgstr "明度" - -#: ../gthumb/gth-histogram-view.c:896 -msgid "Red" -msgstr "赤" - -#: ../gthumb/gth-histogram-view.c:902 -msgid "Green" -msgstr "緑" - -#: ../gthumb/gth-histogram-view.c:908 -msgid "Blue" -msgstr "青" +#: gthumb/gth-folder-tree.c:1972 +msgid "Enter the new name:" +msgstr "新しい名前を入力してください:" -#: ../gthumb/gth-histogram-view.c:914 +#: gthumb/gth-histogram-view.c:911 msgid "Alpha" msgstr "アルファ" -#: ../gthumb/gth-histogram-view.c:921 +#. Translators: RGB is an acronym for Red Green Blue +#: gthumb/gth-histogram-view.c:917 msgid "RGB" msgstr "RGB" -#: ../gthumb/gth-load-file-data-task.c:108 +#: gthumb/gth-image-list-task.c:144 +msgid "Could not rename the file" +msgstr "ファイル名を変更できませんでした" + +#: gthumb/gth-image-saver.c:39 +msgid "No options available for this file type" +msgstr "この種類のファイルで利用できるオプションはありません" + +#: gthumb/gth-image-saver.c:185 +#, c-format +msgid "Could not find a suitable module to save the image as “%s”" +msgstr "画像を“%s”として保存するのに適したモジュールが見つかりませんでした" + +#: gthumb/gth-load-file-data-task.c:111 msgid "Reading file information" -msgstr "ファイル情報の取得中" +msgstr "ファイル情報を読み取り中" -#: ../gthumb/gth-main-default-metadata.c:32 -msgid "File" -msgstr "ファイル" +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "隠しファイル" -#: ../gthumb/gth-main-default-metadata.c:39 -msgid "Name" -msgstr "名前" +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "場所" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "場所" -#: ../gthumb/gth-main-default-metadata.c:40 -#: ../gthumb/gth-main-default-tests.c:284 +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "その他…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "サイズ" -#: ../gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:41 +msgid "Bytes" +msgstr "バイト" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 +msgid "Modified Date & Time" +msgstr "変更日時" + +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "種類" -#: ../gthumb/gth-main-default-metadata.c:44 -msgid "Full Name" -msgstr "絶対パス名" - -#: ../gthumb/gth-main-default-metadata.c:48 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "再生時間" -#: ../gthumb/gth-main-default-sort-types.c:131 +#: gthumb/gth-main-default-metadata.c:51 +msgid "Exposure Settings" +msgstr "露出設定" + +#: gthumb/gth-main-default-metadata.c:52 +msgid "Aperture" +msgstr "絞り" + +#: gthumb/gth-main-default-metadata.c:53 +msgid "ISO Speed" +msgstr "ISO 感度" + +#: gthumb/gth-main-default-metadata.c:54 +msgid "Exposure Time" +msgstr "露出時間" + +#: gthumb/gth-main-default-metadata.c:55 +msgid "Shutter Speed" +msgstr "シャッター速度" + +#: gthumb/gth-main-default-metadata.c:56 +msgid "Focal Length" +msgstr "焦点距離" + +#: gthumb/gth-main-default-metadata.c:57 +msgid "Flash" +msgstr "フラッシュ" + +#: gthumb/gth-main-default-metadata.c:58 +msgid "Camera Model" +msgstr "カメラの形式" + +#: gthumb/gth-main-default-metadata.c:59 +msgid "Color Profile" +msgstr "カラープロファイル" + +#: gthumb/gth-main-default-metadata.c:61 +msgid "General Date & Time" +msgstr "" + +#: gthumb/gth-main-default-metadata.c:68 +msgid "Author" +msgstr "作者" + +#: gthumb/gth-main-default-metadata.c:69 +msgid "Copyright" +msgstr "著作権" + +#: gthumb/gth-main-default-sort-types.c:166 msgid "file name" msgstr "ファイル名" -#: ../gthumb/gth-main-default-sort-types.c:132 +#: gthumb/gth-main-default-sort-types.c:167 msgid "file path" msgstr "パス名" -#: ../gthumb/gth-main-default-sort-types.c:133 +#: gthumb/gth-main-default-sort-types.c:168 msgid "file size" msgstr "サイズ" -#: ../gthumb/gth-main-default-sort-types.c:134 +#: gthumb/gth-main-default-sort-types.c:169 msgid "file modified date" msgstr "更新日時" -#: ../gthumb/gth-main-default-sort-types.c:135 +#: gthumb/gth-main-default-sort-types.c:170 msgid "no sorting" msgstr "並べ替えない" -#: ../gthumb/gth-main-default-sort-types.c:136 +#: gthumb/gth-main-default-sort-types.c:171 msgid "dimensions" -msgstr "画像の寸法" +msgstr "画像のサイズ" -#: ../gthumb/gth-main-default-tests.c:261 +#: gthumb/gth-main-default-sort-types.c:172 +msgid "aspect ratio" +msgstr "縦横比" + +#: gthumb/gth-main-default-tests.c:286 +msgid "All Files" +msgstr "すべてのファイル" + +#: gthumb/gth-main-default-tests.c:293 +msgid "All Images" +msgstr "すべての画像" + +#: gthumb/gth-main-default-tests.c:300 +msgid "JPEG Images" +msgstr "JPEG 画像" + +#: gthumb/gth-main-default-tests.c:307 +msgid "Raw Photos" +msgstr "RAW 写真" + +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "メディア" -#: ../gthumb/gth-main-default-tests.c:268 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" -msgstr "通常のファイル" +msgstr "テキストファイル" -#: ../gthumb/gth-main-default-tests.c:276 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "ファイル名" -#: ../gthumb/gth-main-default-tests.c:308 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "(埋め込まれた) タイトル" -#: ../gthumb/gth-main-default-tests.c:316 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "(埋め込まれた) 説明" -#: ../gthumb/gth-pixbuf-list-task.c:139 -msgid "Could not rename the file" -msgstr "ファイル名を変更できませんでした" +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "表示/非表示" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "ナビゲーション" -#: ../gthumb/gth-pixbuf-saver.c:34 -msgid "No options available for this file type" -msgstr "この種類のファイルで利用できるオプションはありません" +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "ファイルマネージャー" -#: ../gthumb/gth-progress-dialog.c:144 -msgid "Cancel operation" -msgstr "この操作をキャンセルします" +#: gthumb/gth-overwrite-dialog.c:326 +msgid "Overwrite" +msgstr "上書き" + +#: gthumb/gth-progress-dialog.c:310 gthumb/gth-progress-dialog.c:455 +msgid "Operations" +msgstr "処理" -#: ../gthumb/gth-save-file-data-task.c:102 +#: gthumb/gth-save-file-data-task.c:105 msgid "Saving file information" -msgstr "ファイル情報の保存中" +msgstr "ファイル情報を保存中" + +#. Translators: %s is a filename +#: gthumb/gth-save-image-task.c:161 +#, c-format +msgid "Saving “%s”" +msgstr "“%s”を保存中" -#: ../gthumb/gth-tags-entry.c:388 +#: gthumb/gth-tags-entry.c:507 #, c-format -msgid "Create tag «%s»" -msgstr "タグ «%s» の生成" +msgid "Create tag “%s”" +msgstr "タグ“%s”を作成" -#: ../gthumb/gth-tags-entry.c:735 +#: gthumb/gth-tags-entry.c:1090 msgid "Show all the tags" -msgstr "全てのタグを表示します" +msgstr "すべてのタグを表示します" -#: ../gthumb/gth-tags-file.c:236 +#: gthumb/gth-tags-file.c:235 msgid "Holidays" msgstr "祝日" -#: ../gthumb/gth-tags-file.c:237 +#: gthumb/gth-tags-file.c:236 msgid "Temporary" msgstr "作業用" -#: ../gthumb/gth-tags-file.c:238 +#: gthumb/gth-tags-file.c:237 msgid "Screenshots" msgstr "スクリーンショット" -#: ../gthumb/gth-tags-file.c:239 +#: gthumb/gth-tags-file.c:238 msgid "Science" msgstr "科学" -#: ../gthumb/gth-tags-file.c:240 +#: gthumb/gth-tags-file.c:239 msgid "Favorite" msgstr "お気に入り" -#: ../gthumb/gth-tags-file.c:241 +#: gthumb/gth-tags-file.c:240 msgid "Important" msgstr "重要" -#: ../gthumb/gth-tags-file.c:242 +#: gthumb/gth-tags-file.c:241 msgid "GNOME" msgstr "GNOME" -#: ../gthumb/gth-tags-file.c:243 +#: gthumb/gth-tags-file.c:242 msgid "Games" msgstr "ゲーム" -#: ../gthumb/gth-tags-file.c:244 +#: gthumb/gth-tags-file.c:243 msgid "Party" msgstr "パーティ" -#: ../gthumb/gth-tags-file.c:245 +#: gthumb/gth-tags-file.c:244 msgid "Birthday" msgstr "誕生日" -#: ../gthumb/gth-tags-file.c:246 +#: gthumb/gth-tags-file.c:245 msgid "Astronomy" msgstr "宇宙" -#: ../gthumb/gth-tags-file.c:247 +#: gthumb/gth-tags-file.c:246 msgid "Family" msgstr "家族" -#: ../gthumb/gth-test-category.c:46 ../gthumb/gth-test-simple.c:49 -#: ../gthumb/gth-test-simple.c:64 +#: gthumb/gth-test-aspect-ratio.c:67 gthumb/gth-test-simple.c:57 +msgid "is lower than" +msgstr "が次より小さい" + +#: gthumb/gth-test-aspect-ratio.c:68 gthumb/gth-test-simple.c:58 +msgid "is greater than" +msgstr "が次より大きい" + +#: gthumb/gth-test-aspect-ratio.c:69 gthumb/gth-test-simple.c:59 +msgid "is equal to" +msgstr "が次と同じ" + +#: gthumb/gth-test-aspect-ratio.c:70 gthumb/gth-test-simple.c:60 +msgid "is greater than or equal to" +msgstr "が次より大きいか同じ" + +#: gthumb/gth-test-aspect-ratio.c:71 gthumb/gth-test-simple.c:61 +msgid "is lower than or equal to" +msgstr "が次より小さいか同じ" + +#: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 +#, c-format +msgid "The test definition is incomplete" +msgstr "テストする定義が足りません" + +#: gthumb/gth-test-category.c:46 gthumb/gth-test-simple.c:50 +#: gthumb/gth-test-simple.c:67 msgid "is" msgstr "が次である" -#: ../gthumb/gth-test-category.c:47 +#: gthumb/gth-test-category.c:47 msgid "is only" msgstr "が次だけである" -#: ../gthumb/gth-test-category.c:48 ../gthumb/gth-test-simple.c:50 -#: ../gthumb/gth-test-simple.c:65 +#: gthumb/gth-test-category.c:48 gthumb/gth-test-simple.c:51 +#: gthumb/gth-test-simple.c:68 msgid "is not" msgstr "が次ではない" -#: ../gthumb/gth-test-category.c:394 ../gthumb/gth-test-simple.c:812 -#: ../gthumb/gth-test-simple.c:838 ../gthumb/gth-test-simple.c:859 -#: ../gthumb/gth-test-simple.c:885 -#, c-format -msgid "The test definition is incomplete" -msgstr "テストする定義が足りません。" +#: gthumb/gth-test-category.c:49 gthumb/gth-test-simple.c:53 +msgid "matches" +msgstr "が次のパターンにマッチする" -#: ../gthumb/gth-test-selector.c:252 +#: gthumb/gth-test-selector.c:259 msgid "Add a new rule" msgstr "新しい条件を追加します" -#: ../gthumb/gth-test-selector.c:263 +#: gthumb/gth-test-selector.c:269 msgid "Remove this rule" msgstr "この条件を削除します" -#: ../gthumb/gth-test-simple.c:46 +#: gthumb/gth-test-simple.c:47 msgid "contains" msgstr "が次を含む" -#: ../gthumb/gth-test-simple.c:47 +#: gthumb/gth-test-simple.c:48 msgid "starts with" msgstr "が次で始まる" -#: ../gthumb/gth-test-simple.c:48 +#: gthumb/gth-test-simple.c:49 msgid "ends with" msgstr "が次で終わる" -#: ../gthumb/gth-test-simple.c:51 +#: gthumb/gth-test-simple.c:52 msgid "does not contain" msgstr "が次を含まない" -#: ../gthumb/gth-test-simple.c:52 -msgid "matches" -msgstr "が次のパターンにマッチする" - -#: ../gthumb/gth-test-simple.c:56 -msgid "is lower than" -msgstr "が次より小さい" - -#: ../gthumb/gth-test-simple.c:57 -msgid "is greater than" -msgstr "が次より大きい" - -#: ../gthumb/gth-test-simple.c:58 -msgid "is equal to" -msgstr "が次と同じ" - -#: ../gthumb/gth-test-simple.c:62 +#: gthumb/gth-test-simple.c:65 msgid "is before" msgstr "が次より前" -#: ../gthumb/gth-test-simple.c:63 +#: gthumb/gth-test-simple.c:66 msgid "is after" msgstr "が次より後" -#: ../gthumb/gth-time-selector.c:477 +#: gthumb/gth-time-selector.c:542 msgid "Today" msgstr "今日" -#: ../gthumb/gth-time-selector.c:485 +#: gthumb/gth-time-selector.c:550 msgid "Now" msgstr "現在日時" -#: ../gthumb/gth-window-actions-entries.h:32 -msgid "Close this window" -msgstr "このウィンドウを閉じます" - -#: ../gthumb/gth-window-actions-entries.h:36 -msgid "Close _All Windows" -msgstr "全てのウィンドウを閉じる(_A)" +#: gthumb/gth-toolbox.c:146 +msgid "Colors" +msgstr "色" + +#: gthumb/gth-toolbox.c:147 +msgid "Rotation" +msgstr "回転" + +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"«%s» はすでに別のアクション «%s» に割り当てられています。このアクションに割り" +"当てますか?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "再割当て" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "«%s» はすでに別のアクション «%s» に割り当てられていて変更できません。" + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "«%s» はすでに割り当てられていて変更できません。" -#: ../gthumb/gtk-utils.c:551 +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "ヘルプを表示することができませんでした" -#: ../gthumb/gtk-utils.c:868 ../gthumb/gtk-utils.c:875 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "アプリケーションを起動できませんでした" -#: ../gthumb/gtk-utils.c:978 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" -msgstr "ここへコピーする(_C)" +msgstr "ここへコピー(_C)" -#: ../gthumb/gtk-utils.c:983 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" -msgstr "ここへ移動する(_M)" +msgstr "ここへ移動(_M)" -#: ../gthumb/gtk-utils.c:988 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" -msgstr "リンクの作成(_L)" +msgstr "リンクを作成(_L)" -#: ../gthumb/gtk-utils.c:997 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "キャンセル" -#: ../gthumb/main.c:59 -msgid "Open a new window" -msgstr "新しいウィンドウを開く" - -#: ../gthumb/main.c:63 -msgid "Start in fullscreen mode" -msgstr "全画面モードで起動する" - -#: ../gthumb/main.c:67 -msgid "Automatically start a slideshow" -msgstr "自動的にスライドショーを起動する" - -#: ../gthumb/main.c:71 -msgid "Automatically import digital camera photos" -msgstr "自動的にデジタルカメラの写真をインポートする" - -#: ../gthumb/main.c:75 -msgid "Show version" -msgstr "バージョンを表示する" - -#: ../gthumb/main.c:344 -msgid "- Image browser and viewer" -msgstr "- 画像ブラウザー/画像ビューアー" +#: gthumb/gtk-utils.h:36 +msgid "_Cancel" +msgstr "キャンセル(_C)" -#: ../gthumb/pixbuf-io.c:174 -#, c-format -msgid "Could not find a suitable module to save the image as \"%s\"" -msgstr "画像を \"%s\" として保存するのに適したモジュールが見つかりませんでした" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "ヘルプ(_H)" -#~ msgid "Choose another tag" -#~ msgstr "別のタグを選択します" +#: gthumb/gtk-utils.h:41 +msgid "_New" +msgstr "新規(_N)" + +#: gthumb/gtk-utils.h:42 +msgid "_Ok" +msgstr "OK(_O)" + +#: gthumb/gtk-utils.h:43 +msgid "_Remove" +msgstr "削除(_R)" + +#: gthumb/gtk-utils.h:44 +msgid "_Save" +msgstr "保存(_S)" + +#: gthumb/gtk-utils.h:45 +msgid "E_xecute" +msgstr "実行(_X)" -#~ msgid "New tag" -#~ msgstr "新しいタグ" +#: gthumb/gtk-utils.h:46 +msgid "_Upload" +msgstr "アップロード(_U)" -#~ msgid "Possible values are: list, thumbnails." -#~ msgstr "設定可能な値: list、thumbnails" +#: gthumb/resources/folder-menu.ui:7 +msgid "Open in New Window" +msgstr "新しいウィンドウで開く" -#~ msgid "Possible values are: high, low." -#~ msgstr "設定可能な値: high、low" +#: gthumb/resources/gears-menu.ui:11 +msgid "Open Location…" +msgstr "場所を開く…" + +#: gthumb/resources/gears-menu.ui:31 +msgid "Sort By…" +msgstr "並べ替え…" + +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "gThumb について(_A)" -#~ msgid "" -#~ "Possible values are: actual_size, fit, keep_prev, fit_if_larger, " -#~ "fit_width_if_larger." -#~ msgstr "" -#~ "設定可能な値: actual_size、fit、keep_prev、fit_if_larger、" -#~ "fit_width_if_larger" +#: gthumb/resources/history-menu.ui:9 +msgid "_Delete History" +msgstr "履歴を削除(_D)" -#~ msgid "Possible values are: light, midtone, dark." -#~ msgstr "設定可能な値: light、midtone、dark" +#~ msgid "Unrecognized launch option: %d" +#~ msgstr "不明な起動オプションです: %d" -#~ msgid "Possible values are: small, medium, large." -#~ msgstr "設定可能な値: small、medium、large" +#~ msgid "Disable connection to session manager" +#~ msgstr "セッションマネージャーに接続しない" -#~ msgid "" -#~ "Possible values are: system, text_below, text_beside, text_only, " -#~ "icons_only." -#~ msgstr "" -#~ "設定可能な値: system、text_below、text_beside、text_only、icons_only" +#~ msgid "Specify file containing saved configuration" +#~ msgstr "設定を保存したファイルを指定する" -#~ msgid "Follow Nautilus behaviour" -#~ msgstr "Nautilus の設定に従う" +#~ msgid "Specify session management ID" +#~ msgstr "セッション管理の ID を指定する" -#~ msgid "Activate items with a single click" -#~ msgstr "シングル・クリックで有効にする" +#~ msgid "gThumb Photo Import Tool" +#~ msgstr "gThumb フォトインポートツール" -#~ msgid "Activate items with a double click" -#~ msgstr "ダブル・クリックで有効にする" +#~ msgid "Whether to resize the window to fit the size of the image" +#~ msgstr "画像のサイズに合わせてウィンドウの大きさを変更するかどうかです。" -#~ msgid "Set image to actual size" -#~ msgstr "オリジナルのサイズにする" +#~ msgid "Text below icons" +#~ msgstr "アイコンの下にラベル" -#~ msgid "Possible values: pixels, percentage" -#~ msgstr "設定可能な値: pixels、percentage" +#~ msgid "Text beside icons" +#~ msgstr "アイコンの横にラベル" -#~ msgid " " -#~ msgstr " " +#~ msgid "Text only" +#~ msgstr "ラベルのみ" -#~ msgid "%p" -#~ msgstr "%p" +#~ msgid "Go to the folder that contains the selected file" +#~ msgstr "選択したファイルを格納するフォルダーへジャンプします" -#~ msgid "%n" -#~ msgstr "%n" +#~ msgid "Contact _Sheet..." +#~ msgstr "コンタクトシート(_S)..." -#~ msgid "###" -#~ msgstr "###" +#~ msgid "Create a contact sheet" +#~ msgstr "コンタクトシートを生成します" -#~ msgid "#" -#~ msgstr "#" +#~ msgid "Image _Wall..." +#~ msgstr "イメージウォール(_W)..." -#~ msgid "×" -#~ msgstr "×" +#~ msgid "Desaturate" +#~ msgstr "脱色" -#~ msgctxt "time" -#~ msgid "/" -#~ msgstr "/" +#~ msgid "White balance correction" +#~ msgstr "ホワイトバランスの補正中" -#~ msgid "" -#~ "Possible values are: actual-size, keep-prev, fit-size, fit-size-if-" -#~ "larger, fit-width, fit-width-if-larger." -#~ msgstr "" -#~ "設定可能な値: actual-size、keep-prev、fit-size、fit-size-if-larger、fit-" -#~ "width、fit-width-if-larger" +#~ msgid "Enhance Colors" +#~ msgstr "色を鮮やかにする" -#~ msgid "Possible values are: none, file_date, current_date" -#~ msgstr "設定可能な値: none、file_date、current_date" +#~ msgid "Automatic white balance correction" +#~ msgstr "自動的にホワイトバランスを補正します" -#~ msgid "Possible values are: yyyymmdd, yyyymm, yyyy" -#~ msgstr "設定可能な値: yyyymmdd、yyyymm、yyyy" +#~ msgid "Equalize image histogram" +#~ msgstr "画像のヒストグラムを均一にします" -#~ msgid "%U" -#~ msgstr "%U" +#~ msgid "Enhance Focus..." +#~ msgstr "焦点を合わせる..." -#~ msgid "%F" -#~ msgstr "%F" +#~ msgid "Zoom to fit window" +#~ msgstr "ウィンドウに合わせてズームします" -#~ msgid "%B" -#~ msgstr "%B" +#~ msgid "Personalize..." +#~ msgstr "指定する..." -#~ msgid "Possible values are: none, deflate, jpeg." -#~ msgstr "指定可能な値: none、deflate、jpeg" +#~ msgid "Batch tools for multiple files" +#~ msgstr "指定したツールを使って複数のファイルを一括処理します" -#~ msgid "Possible values: 0 (none), 1 (lower), 2 (upper)" -#~ msgstr "指定可能な値: 0 (なし)、1 (下部)、2 (上部)" +#~ msgid "" +#~ "The geographical position information is not available for this image." +#~ msgstr "この画像では地理的な位置情報は利用できません" -#~ msgid "%i" -#~ msgstr "%i" +#~ msgid "Tiny ( 100 x 75 )" +#~ msgstr "極小 ( 100 x 75 )" -#~ msgid "%I" -#~ msgstr "%I" +#~ msgid "_Scramble filenames" +#~ msgstr "ランダムなファイル名にする(_S)" -#~ msgid "%C" -#~ msgstr "%C" +#~ msgid "Red Eye Removal..." +#~ msgstr "赤目の軽減..." diff -Nru gthumb-3.8.3/po/nl.po gthumb-3.9.1/po/nl.po --- gthumb-3.8.3/po/nl.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/nl.po 2020-03-07 19:03:13.610286000 +0000 @@ -21,8 +21,8 @@ msgstr "" "Project-Id-Version: gthumb.HEAD\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-06-10 15:51+0000\n" -"PO-Revision-Date: 2019-06-18 09:23+0200\n" +"POT-Creation-Date: 2019-06-22 20:22+0000\n" +"PO-Revision-Date: 2019-06-28 12:21+0200\n" "Last-Translator: Paul Matthijsse \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -295,7 +295,7 @@ #: data/ui/location.ui:23 msgid "_Location:" -msgstr "_Locatie:" +msgstr "_Locatie" #: data/ui/overwrite-dialog.ui:15 msgid "Overwrite the old file with the new one?" @@ -825,7 +825,7 @@ #: extensions/catalogs/data/ui/catalog-properties.ui:82 #: extensions/edit_metadata/data/ui/edit-comment-page.ui:31 msgid "_Date:" -msgstr "_Datum:" +msgstr "_Datum" #: extensions/catalogs/data/ui/catalog-properties.ui:143 #: extensions/catalogs/data/ui/organize-files-task.ui:199 @@ -1536,24 +1536,24 @@ #: extensions/facebook/data/ui/facebook-album-properties.ui:135 #: extensions/picasaweb/data/ui/picasa-web-album-properties.ui:127 msgid "D_escription:" -msgstr "_Bestemming:" +msgstr "_Beschrijving" #: extensions/edit_metadata/data/ui/edit-comment-page.ui:81 msgid "_Place:" -msgstr "_Plaats:" +msgstr "_Plaats" #: extensions/edit_metadata/data/ui/edit-comment-page.ui:120 #: extensions/edit_metadata/data/ui/tag-chooser.ui:16 msgid "T_ags:" -msgstr "L_abels:" +msgstr "L_abels" #: extensions/edit_metadata/data/ui/edit-comment-page.ui:207 msgid "_Rating:" -msgstr "_Waardering:" +msgstr "_Waardering" #: extensions/edit_metadata/data/ui/edit-comment-page.ui:239 msgid "_Title:" -msgstr "_Titel:" +msgstr "_Titel" #: extensions/edit_metadata/dlg-edit-metadata.c:121 msgid "Could not save the file metadata" diff -Nru gthumb-3.8.3/po/pl.po gthumb-3.9.1/po/pl.po --- gthumb-3.8.3/po/pl.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/pl.po 2020-03-07 19:03:13.610286000 +0000 @@ -1,17 +1,17 @@ # Polish translation for gthumb. -# Copyright © 2003-2019 the gthumb authors. +# Copyright © 2003-2020 the gthumb authors. # This file is distributed under the same license as the gthumb package. # Artur Flinta , 2003-2004. # Tomasz Dominikowski , 2007. -# Piotr Drąg , 2011-2019. -# Aviary.pl , 2007-2019. +# Piotr Drąg , 2011-2020. +# Aviary.pl , 2007-2020. # msgid "" msgstr "" "Project-Id-Version: gthumb\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-01-10 18:17+0000\n" -"PO-Revision-Date: 2019-01-12 12:50+0100\n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-05 12:33+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" @@ -132,19 +132,13 @@ msgid "Import the photos on your camera card" msgstr "Import fotografii z aparatu cyfrowego" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Przeglądarka obrazów" @@ -159,69 +153,70 @@ msgid "Caption" msgstr "Opis" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Zachowanie" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "_Pojedyncze kliknięcie otwiera pliki" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "Po_dwójne kliknięcie otwiera pliki" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Otwieranie plików trybie pełnoekranowym" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Inne" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "_Rozmiar miniatur:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "_Określanie typu obrazu na podstawie zawartości (wolniejsze)" @@ -233,20 +228,34 @@ msgid "More extensions…" msgstr "Więcej rozszerzeń…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Poprzedni" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Następny" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "_Nazwa filtru:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "_Dopasowanie:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Reguły:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Ograniczenie do" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "zaznaczono według" @@ -292,40 +301,40 @@ msgid "Old File:" msgstr "Poprzedni plik:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Nazwa pliku:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Rozmiar:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Zmodyfikowano:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Nowy plik:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "_Zastąp poprzedni plik" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "_Bez zastępowania poprzedniego pliku" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Zastąp _wszystkie pliki" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "Bez zastępowania żadnych _obrazów" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "Zapi_sanie nowego pliku jako:" @@ -349,70 +358,75 @@ msgid "gThumb Preferences" msgstr "Preferencje programu gThumb" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Wygląd" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "_Miniatury w przeglądarce:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "na dole" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "na boku" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "_Właściwości pliku w przeglądarce:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Podczas uruchamiania:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Przechodzenie do _ostatnio odwiedzonego położenia" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Przejście do _katalogu:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Wybór katalogu startowego" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Ustaw na _bieżący" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "Uży_cie aktywnego okna do otwierania plików" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "_Pytanie o potwierdzenie przed usunięciem plików lub katalogów" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Pytanie o zapis z_modyfikowanych plików" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "Prze_chowywanie metadanych w plikach, jeśli to możliwe" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Ogólne" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Skróty:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Przywróć wszystkie…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "_Odwrócona kolejność" @@ -426,7 +440,7 @@ msgstr "Wysyłanie obrazów do serwisu 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Zakładki" @@ -443,7 +457,7 @@ msgid "_Edit Bookmarks…" msgstr "_Modyfikuj zakładki…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "Zakładki _systemowe" @@ -457,6 +471,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Usuń" @@ -508,15 +523,15 @@ msgid "Source" msgstr "Źródło" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Zapisz na płytę" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Kontynuuj" @@ -525,7 +540,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Błąd podczas interpretowania pliku obrazu JPEG: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Nieznana przestrzeń kolorów JPEG (%d)" @@ -608,12 +623,12 @@ msgstr "_Bezstratna" #: extensions/cairo_io/gth-image-saver-jpeg.c:517 -#: extensions/image_viewer/gth-metadata-provider-image.c:145 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 msgid "JPEG" msgstr "JPEG" #: extensions/cairo_io/gth-image-saver-png.c:354 -#: extensions/image_viewer/gth-metadata-provider-image.c:111 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 msgid "PNG" msgstr "PNG" @@ -631,71 +646,69 @@ msgstr "TIFF" #: extensions/cairo_io/gth-image-saver-webp.c:383 -#: extensions/image_viewer/gth-metadata-provider-image.c:174 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 msgid "WebP" msgstr "WebP" #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Zapisywanie" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Nie podano nazwy" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Nieprawidłowa nazwa. Następujące znaki nie są dozwolone: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Nazwa jest już użyta" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 msgid "New catalog" msgstr "Nowy katalog" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Nazwa katalogu:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "Ut_wórz" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 msgid "New library" msgstr "Nowa kolekcja" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Nazwa kolekcji:" @@ -712,7 +725,7 @@ msgid "Add to Catalog…" msgstr "Dodaj do katalogu…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Otwórz katalog" @@ -728,40 +741,40 @@ msgid "Create Library" msgstr "Utwórz kolekcję" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Zmień nazwę" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Właściwości" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 msgid "Catalogs" msgstr "Katalogi" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Wiersz poleceń" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Właściwości katalogu" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Organizuj" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Automatycznie organizuje pliki według daty" @@ -773,32 +786,32 @@ msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Dodanie do katalogu" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "_Dodaj i zamknij" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "K_atalogi:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "_Nowy katalog" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Nowa _kolekcja" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Nowa kolekcja" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Nowy katalog" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Wyświetl miejsce docelowe" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "_Bez zamykania okna" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -852,7 +865,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "P_rzeszukiwanie podkatalogów" @@ -868,26 +881,33 @@ msgid "Singles" msgstr "Pojedyncze" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Nie można dodać plików do katalogu" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Nie można utworzyć katalogu" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Dodanie do katalogu" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Dodaj" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Nie można zapisać katalogu" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Nie można wczytać katalogu" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Organizuj pliki" @@ -899,75 +919,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Data wykonania zdjęcia" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Data modyfikacji pliku" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Etykieta" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Etykieta (osadzona)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Nieprawidłowy format pliku" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "Etykiety" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "Katalog „%s” już istnieje. Zastąpić go?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "Kolekcja „%s” już istnieje. Zastąpić ją?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "_Zastąp" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Nie można przenieść plików" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Nie można skopiować plików" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Nieprawidłowe miejsce docelowe." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Kopiowanie plików do „%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Nie można usunąć plików z katalogu" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:871 -#: extensions/exiv2_tools/exiv2-utils.cpp:880 -#: extensions/exiv2_tools/exiv2-utils.cpp:910 -#: extensions/exiv2_tools/exiv2-utils.cpp:1441 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Nieprawidłowy format pliku" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1067,20 +1089,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Preferencje" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Komentarz" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "Tytuł" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1090,21 +1116,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "Opis" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "Miejsce" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Data i czas komentarza" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Ocena" @@ -1118,7 +1144,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:707 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Odbitka stykowa" @@ -1129,9 +1155,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Brak" @@ -1203,7 +1229,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1218,7 +1244,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1226,7 +1252,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Opis:" @@ -1381,13 +1407,13 @@ msgid "Thumbnails" msgstr "Miniatury" -#: extensions/contact_sheet/dlg-contact-sheet.c:488 -#: extensions/contact_sheet/dlg-contact-sheet.c:499 -#: extensions/contact_sheet/dlg-contact-sheet.c:513 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Nie można zapisać motywu" -#: extensions/contact_sheet/dlg-contact-sheet.c:658 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Nie można usunąć motywu" @@ -1395,11 +1421,11 @@ msgid "Image Wall" msgstr "Ściana obrazów" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Tworzenie obrazów" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Tworzenie miniatur" @@ -1462,7 +1488,7 @@ msgstr "Nie można wyświetlić właściwości tła pulpitu" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "P_referencje" @@ -1505,6 +1531,14 @@ msgstr "Usunięcie metadanych spowoduje ich bezpowrotne utracenie." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Modyfikuj polecenie" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Modyfikuj etykiety" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Usuń metadane" @@ -1535,8 +1569,8 @@ msgid "Could not save the file metadata" msgstr "Nie można zapisać metadanych pliku" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Nie można odczytać informacji o pliku" @@ -1548,28 +1582,7 @@ msgid "Allow to edit files metadata." msgstr "Umożliwienie modyfikowania metadanych plików." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "Metadane pliku „%s”" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d plik" -msgstr[1] "%d pliki" -msgstr[2] "%d plików" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "_Zapisz i zamknij" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Zapisywanie tylko zmie_nionych pól" @@ -1598,16 +1611,6 @@ msgid "Do not modify" msgstr "Bez modyfikacji" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "Etykiety pliku „%s”" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Przydzielenie etykiet" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1670,11 +1673,12 @@ msgid "State/Province:" msgstr "Stan/województwo:" -#: extensions/exiv2_tools/exiv2-utils.cpp:42 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(nieprawidłowa wartość)" -#: extensions/exiv2_tools/exiv2-utils.cpp:708 +#: extensions/exiv2_tools/exiv2-utils.cpp:713 msgid "Exposure" msgstr "Ekspozycja" @@ -1735,8 +1739,8 @@ msgstr "data wykonania zdjęcia" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Wyeksportuj" +msgid "_Export To" +msgstr "Wy_eksportuj do" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1877,7 +1881,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1919,13 +1923,13 @@ msgid "Uploading “%s”" msgstr "Wysyłanie „%s”" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Wysyłanie plików na serwer" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1948,131 +1952,144 @@ msgstr "Nazwa katalogu:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Nie można wykonać działania" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Nie można przenieść plików" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." msgstr "" "Nie można przenieść plików do bieżącego położenia, ale można je skopiować." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Skopiuj" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Przenieś do" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Skopiuj do" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Przenieś" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Nie można otworzyć położenia" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Wytnij" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Wklej" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Skopiuj do…" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Przenieś do…" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Przenieś do kosza" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Usuń" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Otwórz w menedżerze plików" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Utwórz katalog" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Wklej do katalogu" -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Duplikat" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Usuń trwale" + +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "Otwórz w programie GIMP" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 msgid "Home Folder" msgstr "Katalog domowy" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "_Otwórz za pomocą" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Przenieść „%s” do „%s”?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Skopiować „%s” do „%s”?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Przenieść przeciągnięte pliki do „%s”?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Skopiować przeciągnięte pliki do „%s”?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "S_kopiuj" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Nie można wykonać działania" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Menedżer plików" @@ -2085,6 +2102,40 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Dostosuj kontrast" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Odbij w pionie" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Odbij w poziomie" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Obróć w prawo" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Obróć w lewo" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Przytnij" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Zmień rozmiar" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2147,9 +2198,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Opcje" @@ -2186,7 +2237,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Współczynnik proporcji" @@ -2224,7 +2275,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" msgstr "Wymiary" @@ -2384,17 +2435,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2441,11 +2492,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Wyrównuje histogram za pomocą funkcji liniowej" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Dostosowanie kontrastu" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Automatyczne dostosowanie kontrastu" @@ -2458,74 +2509,74 @@ msgstr "Wybiera kolor z obrazu" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Kwadrat" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d×%d (obraz)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d×%d (ekran)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (DVD, książka)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (pocztówka)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1,85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2,39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2547,10 +2598,6 @@ msgid "Center Lines" msgstr "Linie wyśrodkowane" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Przycięcie" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Dodaj do ustawień" @@ -2561,8 +2608,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Nie można zapisać pliku" @@ -2578,69 +2625,65 @@ msgid "Adjust color curves" msgstr "Dostosowanie krzywych kolorów" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Efekty specjalne" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Cieplejsze" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Chłodniejsze" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Gleba" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Pustynia" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Arktyka" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mango" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Świeży błękit" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Wiśnia" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Vintage" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Rozmyte brzegi" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Winieta" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Odbij w pionie" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Obraca obraz pionowo" @@ -2657,7 +2700,7 @@ msgid "_Average" msgstr "Śre_dnia" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Skala szarości" @@ -2665,10 +2708,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Odbij w poziomie" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Odbija obraz poziomo" @@ -2682,19 +2721,15 @@ msgstr "Ponów" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Zmienianie rozmiarów obrazów" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Zmień rozmiar" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Obróć w lewo" @@ -2703,8 +2738,8 @@ msgstr "Obraca obraz o 90 stopni w lewo" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Obróć w prawo" @@ -2717,12 +2752,12 @@ msgstr "Obróć" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Zapisz jako…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Zapisz" @@ -2778,7 +2813,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "_Rozpoczęcie w:" @@ -2793,7 +2828,7 @@ msgstr "Wyszukiwanie duplikatów" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Znajdź" @@ -2914,10 +2949,19 @@ msgstr "_Ukrycie z publicznych wyszukiwań" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "_Otwórz w przeglądarce" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d plik" +msgstr[1] "%d pliki" +msgstr[2] "%d plików" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2931,7 +2975,7 @@ msgstr "Nie wybrano albumu" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "Za_importuj" @@ -3001,6 +3045,14 @@ msgid "Could not take a screenshot" msgstr "Nie można wykonać zrzutu ekranu" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Zrzut ekranu" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Odtwórz/wstrzymaj" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Przyspieszenie sprzętowe" @@ -3010,8 +3062,8 @@ msgstr "_Położenie zrzutów ekranu:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Odtwórz" @@ -3047,66 +3099,76 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Odtwarzanie nagrania wideo" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Wstrzymaj" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Wykonaj zrzut ekranu" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Dopasowanie do okna" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Odtwarzacz dźwięku/wideo" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Wideo" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Dźwięk" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Wykonawca" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Album" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Gęstość bitowa" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Koder" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Kodek" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Liczba klatek na sekundę" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Szerokość" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Wysokość" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Kanały" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Częstotliwość próbkowania" @@ -3120,10 +3182,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 -#: extensions/image_viewer/gth-metadata-provider-image.c:253 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d×%d" @@ -3132,7 +3194,8 @@ msgid "Could not print the selected files" msgstr "Nie można wydrukować zaznaczonych plików" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Drukowanie" @@ -3190,19 +3253,19 @@ msgid "inches" msgstr "cale" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Czcionki" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Wybór czcionki podpisu" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Wybór czcionki nagłówka" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Wybór czcionki stopki" @@ -3224,7 +3287,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "" "Brak dostępnego odpowiedniego programu wczytującego dla tego typu pliku" @@ -3236,7 +3299,7 @@ msgstr "Wczytywanie pliku „%s”" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Wczytywanie obrazów" @@ -3252,18 +3315,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Fizyczny obrót obrazów" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Przywróć ułożenie EXIF" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Zapisywanie obrazów" @@ -3313,77 +3376,198 @@ msgid "_Accept distortion" msgstr "Z_aakceptuj zniekształcenia" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Powiększ" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Pomniejsz" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "Powiększenie 100%" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "Powiększenie 200%" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "Powiększenie 300%" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Powiększenie, aby dopasować" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Powiększenie, aby dopasować, jeśli większy" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Powiększenie, aby dopasować do szerokości" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Powiększenie, aby dopasować do szerokości, jeśli większy" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Powiększenie, aby dopasować do wysokości" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Powiększenie, aby dopasować do wysokości, jeśli większy" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Cofnij modyfikację" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Ponów modyfikację" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Przewiń w lewo" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Przewiń w prawo" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Przewiń do góry" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Przewiń w dół" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Szybko przewiń w lewo" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Szybko przewiń w prawo" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Szybko przewiń w górę" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Szybko przewiń w dół" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Przewiń na środek" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Po wczytaniu obrazu:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Ustawianie na rzeczywisty rozmiar" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Zachowanie poprzedniego powiększenia" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Dopasowanie do okna" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Dopasowanie do okna, jeśli większy" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Dopasowanie do szerokości" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Dopasowanie do szerokości, jeśli większy" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Przywracanie położenia suwaków przewijania" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Działanie kółka myszy:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Zmień obraz" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Powiększ obraz" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" -msgstr "Jakość zbliżenia:" +msgstr "Jakość powiększenia:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Wysoka" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Niska" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Przezroczystość:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "Szachownica" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Białe" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Szare" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Czarne" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automatycznie" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Dopasowanie do wysokości" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3391,31 +3575,44 @@ msgid "Histogram" msgstr "Histogram" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Skopiuj obraz" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Wklej obraz" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Zastosowanie osadzonego profilu kolorów" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Następna klatka" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Przezroczystość" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Zapis obrazu" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Wczytywanie oryginalnego obrazu" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Przewiń obraz" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Edytor obrazów" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Przeglądarka" @@ -3487,38 +3684,38 @@ msgid "custom format" msgstr "własny format" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Importowanie plików" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Nie zaimportowano plików" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "Zaznaczone pliki już znajdują się w miejscu docelowym." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" msgstr "Nie można usunąć plików" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Działanie usuwania jest nieobsługiwane." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Ostatnio zaimportowano" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Nie podano pliku." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3527,7 +3724,8 @@ "Za mało wolnego miejsca w „%s”.\n" "Wymagane: %s, dostępne: %s." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Narzędzia" @@ -3615,49 +3813,53 @@ msgid "Quote the text " msgstr "Cytowanie tekstu " -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +msgid "The current date and time" +msgstr "Bieżąca data i czas" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "Pole_cenie:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Dostosuj…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Skrypt" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Skrót" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Wyświetl" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Nie można zapisać skryptu" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Nowe polecenie" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Modyfikuj polecenie" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Na pewno usunąć zaznaczone polecenie?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Polecenia" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Nie podano polecenia" @@ -3667,18 +3869,18 @@ msgid "Command exited abnormally with status %d" msgstr "Polecenie nieprawidłowo zakończyło działanie ze stanem %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Wartość:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Błędnie sformatowane polecenie" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Pomiń" @@ -3728,7 +3930,7 @@ msgstr "_Konta:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Wczytywanie…" @@ -3765,7 +3967,7 @@ msgstr "Pobieranie informacji o koncie" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Wybór katalogu" @@ -3829,11 +4031,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Pusty)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Pobieranie zawartości katalogu…" @@ -3841,11 +4043,11 @@ msgid "Empty" msgstr "Puste" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Zaimportuj z urządzenia wymiennego" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Zaimportuj z katalogu" @@ -3961,6 +4163,7 @@ msgstr "Wi_elkość liter:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Pomoc" @@ -4057,28 +4260,28 @@ msgid "Edit Template" msgstr "Modyfikuj szablon" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Zmień nazwę" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Poprzednia nazwa" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Nowa nazwa" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Zachowanie pierwotnej wielości liter" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Konwersja do małych liter" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Konwersja do wielkich liter" @@ -4115,15 +4318,15 @@ msgstr "_Zachowanie pierwotnych proporcji obrazów" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Format" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Zmiana rozmiaru obrazów" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Zachowanie pierwotnego formatu" @@ -4135,8 +4338,8 @@ msgid "Resize series of images." msgstr "Zmienianie rozmiarów serii obrazów." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Nie można wykonać wyszukiwania" @@ -4144,48 +4347,48 @@ msgid "Search Result" msgstr "Wynik wyszukiwania" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Znajdź" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Znajdź pliki" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Znajdź ponownie" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Wyszukiwanie" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Reguły:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "wszystkie poniższe reguły" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "dowolna z poniższych reguł" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Dodaj kolejne położenie" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Odnalezione pliki: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Wyszukiwanie…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Anuluj działanie" @@ -4197,16 +4400,32 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Dodaj do zaznaczenia" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Usuń z zaznaczenia" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Wyświetl zaznaczenie" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Usuń z zaznaczenia" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "Wyświetl zaznaczenie %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4220,6 +4439,7 @@ msgstr "Zaznaczenie %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Zaznaczenia" @@ -4232,52 +4452,69 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Prezentacja" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Rozpocznij prezentację" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Zakończ prezentację" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Wstrzymaj/wznów prezentację" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Wyświetl następny plik" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Wyświetl poprzedni plik" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Pokaz slajdów" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Prezentacja" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Dostosuj" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "_Efekt przejścia:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "Automatyczna _zmiana co" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "s" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "Ponowne _uruchomienie po ukończeniu" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "_Losowy porządek" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Lista odtwarzania" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Dodaj pliki do listy odtwarzania" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Usuń zaznaczone pliki" @@ -4293,50 +4530,67 @@ msgid "Random" msgstr "Losowo" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Odtwarzanie pokazu slajdów" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "Odtwarzanie prezentacji" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Odepchnięcie od prawej" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Odepchnięcie od dołu" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Zjechanie od prawej" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Zjechanie od dołu" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Przybliżenie" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Obrót strony" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Sześcian od prawej" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Sześcian od dołu" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Wyświetlanie obrazów jako pokaz slajdów." +msgid "Play a presentation of images." +msgstr "Odtwarzanie prezentacji obrazów." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminal" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +msgid "Open in Terminal" +msgstr "Otwórz w terminalu" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +msgid "Open a folder in a terminal" +msgstr "Otwieranie katalogu w terminalu" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" msgstr "Album _WWW…" @@ -4358,14 +4612,6 @@ msgid "Index" msgstr "Indeks" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Następny" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Poprzedni" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4449,36 +4695,36 @@ msgid "Web Album" msgstr "Album WWW" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Nie można wyświetlić miejsca docelowego" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "Pomyślnie utworzono album." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Zapisywanie miniatur" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Zapisywanie stron HTML: obrazy" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Zapisywanie stron HTML: indeksy" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Kopiowanie oryginalnych obrazów" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Nie można odnaleźć katalogu stylów" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Nie można utworzyć katalogu tymczasowego" @@ -4490,9 +4736,9 @@ msgid "Create static web albums." msgstr "Tworzenie statycznych albumów WWW." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "Nie można wczytać położenia „%s”" @@ -4523,18 +4769,22 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Przeglądarka" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" -msgstr "Wszystko" +msgstr "Wszystkie" #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "Włączone" #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "Wyłączone" @@ -4572,65 +4822,97 @@ msgstr "Nie można dezaktywować rozszerzenia" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" +msgid "gThumb Development Team" msgstr "Zespół programistów gThumb" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Rozszerzenia" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Wymagane jest ponowne uruchomienie" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "Należy ponownie uruchomić program gthumb, aby zastosować zmiany" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Przywróć" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Przywróć" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "Przywrócić wszystkie zmiany i użyć domyślnych skrótów?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Wszystkie" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Zmodyfikowane" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Skróty" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Porządkowanie według" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s z %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Przenoszenie „%s” do „%s”" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Kopiowanie „%s” do „%s”" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Przenoszenie plików" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Kopiowanie plików" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Pobieranie informacji o pliku" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Usuwanie plików" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Przenoszenie plików do kosza" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4642,17 +4924,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Proszę nacisnąć kombinację klawiszy do ustawienia jako skrót." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Naciśnięcie klawisza Esc anuluje" @@ -4665,8 +4947,8 @@ msgstr "Uruchamia w trybie pełnoekranowym" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Automatycznie uruchomia pokaz slajdów" +msgid "Automatically start a presentation" +msgstr "Automatycznie rozpoczyna prezentację" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4676,11 +4958,11 @@ msgid "Show version" msgstr "Wyświetla wersję" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— przeglądarka obrazów" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4692,7 +4974,7 @@ "przez Fundację Wolnego Oprogramowania (Free Software Foundation) — według " "wersji drugiej tej Licencji lub którejś z późniejszych wersji." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4704,7 +4986,7 @@ "HANDLOWEJ albo PRZYDATNOŚCI DO OKREŚLONYCH ZASTOSOWAŃ. W celu uzyskania " "bliższych informacji należy zapoznać się z Powszechną Licencją Publiczną GNU." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4713,36 +4995,121 @@ "Licencji Publicznej GNU (GNU General Public License); jeśli nie — proszę " "odwiedzić stronę internetową http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "Przeglądarka obrazów dla środowiska GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Artur Flinta , 2003-2004\n" "Tomasz Dominikowski , 2007\n" -"Piotr Drąg , 2011-2019\n" -"Aviary.pl , 2007-2019" +"Piotr Drąg , 2011-2020\n" +"Aviary.pl , 2007-2020" -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Nowe okno" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Skróty klawiszowe" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "Pomo_c" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Zakończ" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Wyświetl przeglądarkę" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Zamknij okno" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Otwórz położenie" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Pełny ekran" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_O programie" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Przywróć obraz do zapisanego" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Panel boczny" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Pasek stanu" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Lista miniatur" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Wczytaj poprzednie położenie" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Wczytaj następne położenie" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Wczytaj katalog nadrzędny" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Wczytaj katalog domowy" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Ponownie wczytaj położenie" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Wyświetl/ukryj ukryte pliki" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Zmień kolejność porządkowania" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Wyświetl pierwszy plik" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Wyświetl ostatni plik" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Narzędzia obrazów" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Właściwości pliku" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Zaznacz wszystko" + +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "Odznacz wszystko" + +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[zmodyfikowano]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" @@ -4750,85 +5117,76 @@ msgstr[1] "Zaznaczono %d pliki (%s)" msgstr[2] "Zaznaczono %d plików (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "Wolne miejsce: %s" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Nie odnaleziono odpowiedniego modułu dla %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Zapisać zmiany w pliku „%s”?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "" "Jeśli nie zostanie zapisane, to wszystkie zmiany zostaną trwale utracone." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "_Nie zapisuj" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Zaakceptuj" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "Za_mknij" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Nie można zmienić nazwy" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Zmodyfikowano" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Przechodzi do poprzednio odwiedzonego położenia" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Przechodzi do kolejnej odwiedzonego położenia" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Historia" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Wyświetla katalogi" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Modyfikuje plik" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Pełny ekran" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Nieobsługiwany typ pliku" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Nie odnaleziono odpowiedniego modułu" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Usuwanie plików" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4847,26 +5205,26 @@ msgid "_Show Format Options" msgstr "_Opcje formatu" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:219 msgid "Computer" msgstr "Komputer" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "Nie można przenieść plików do kosza. Usunąć je trwale?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "Nie można przenieść plików do kosza" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:829 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Na pewno trwale usunąć „%s”?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4875,7 +5233,7 @@ msgstr[1] "Na pewno trwale usunąć %'d zaznaczone pliki?" msgstr[2] "Na pewno trwale usunąć %'d zaznaczonych plików?" -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:842 msgid "If you delete a file, it will be permanently lost." msgstr "Usunięcie pliku spowoduje jego trwałe utracenie." @@ -4912,11 +5270,15 @@ msgid "No limit specified" msgstr "Nie podano ograniczenia" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Wszystko" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Otwórz nadrzędny)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Nowa nazwa:" @@ -4946,72 +5308,88 @@ msgid "Reading file information" msgstr "Odczytywanie informacji o pliku" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Ukryte pliki" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "Położenie" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Położenia" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Inne…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Rozmiar" #: gthumb/gth-main-default-metadata.c:41 -msgctxt "the file mtime" +msgid "Bytes" +msgstr "B" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 msgid "Modified Date & Time" msgstr "Data i czas modyfikacji" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "Typ" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Położenie" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "Czas trwania" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:51 msgid "Exposure Settings" msgstr "Ustawienia ekspozycji" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:52 msgid "Aperture" msgstr "Przesłona" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:53 msgid "ISO Speed" msgstr "Prędkość ISO" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:54 msgid "Exposure Time" msgstr "Czas ekspozycji" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:55 msgid "Shutter Speed" msgstr "Czas naświetlania" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:56 msgid "Focal Length" msgstr "Ogniskowa" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:57 msgid "Flash" msgstr "Lampa błyskowa" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:58 msgid "Camera Model" msgstr "Model aparatu" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:59 msgid "Color Profile" msgstr "Profil kolorów" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:61 msgid "General Date & Time" msgstr "Ogólna data i czas" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:68 msgid "Author" msgstr "Autor" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:69 msgid "Copyright" msgstr "Prawa autorskie" @@ -5043,43 +5421,55 @@ msgid "aspect ratio" msgstr "współczynnik proporcji" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Wszystkie pliki" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Wszystkie obrazy" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "Obrazy JPEG" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Zdjęcia RAW" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Multimedia" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Pliki tekstowe" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Nazwa pliku" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Tytuł (osadzony)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Opis (osadzony)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Wyświetl/ukryj" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Nawigacja" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Menedżer plików" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Zastąp" @@ -5175,8 +5565,8 @@ msgstr "jest niższe od lub równe" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "Określenie testu jest niepełne" @@ -5247,31 +5637,55 @@ msgid "Rotation" msgstr "Obrót" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Przenoszenie plików do kosza" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"Kombinacja klawiszy „%s” jest już przydzielona do działania „%s”. " +"Przydzielić ją do tego działania?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Przydziel" -#: gthumb/gtk-utils.c:338 +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"Kombinacja klawiszy „%s” jest już przydzielona do działania „%s” i nie można " +"jej zmienić." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "" +"Kombinacja klawiszy „%s” jest już przydzielona i nie można jej zmienić." + +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Nie można wyświetlić pomocy" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "Nie można uruchomić programu" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "S_kopiuj tutaj" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "_Przenieś tutaj" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "_Dowiąż tutaj" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Anuluj" @@ -5279,6 +5693,10 @@ msgid "_Cancel" msgstr "_Anuluj" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "Pomo_c" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Nowe" @@ -5303,51 +5721,31 @@ msgid "_Upload" msgstr "_Wyślij" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "_Nowe okno" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_O programie" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "Za_kończ" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Otwiera w nowym oknie" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Nowe okno" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Otwórz położenie…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Przywróć" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Porządkowanie według…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Ukryte pliki" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_O programie" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Usuń historię" -msgid "gThumb Photo Import Tool" -msgstr "Narzędzie do importu zdjęć gThumb" +#~ msgid "gThumb Photo Import Tool" +#~ msgstr "Narzędzie do importu zdjęć gThumb" -msgid "Example" -msgstr "Przykład" +#~ msgid "Example" +#~ msgstr "Przykład" -msgid "Extension example." -msgstr "Przykład rozszerzenia." +#~ msgid "Extension example." +#~ msgstr "Przykład rozszerzenia." diff -Nru gthumb-3.8.3/po/POTFILES.in gthumb-3.9.1/po/POTFILES.in --- gthumb-3.8.3/po/POTFILES.in 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/POTFILES.in 2020-03-07 19:03:13.580286500 +0000 @@ -4,6 +4,7 @@ # update the content run the following command: # ./make-potfiles-in.py > POTFILES.in data/appdata/org.gnome.gThumb.appdata.xml.in +data/gschemas/org.gnome.gthumb.catalogs.gschema.xml data/gschemas/org.gnome.gthumb.change-date.gschema.xml data/gschemas/org.gnome.gthumb.comments.gschema.xml data/gschemas/org.gnome.gthumb.contact-sheet.gschema.xml @@ -25,17 +26,21 @@ data/gschemas/org.gnome.gthumb.resize.gschema.xml data/gschemas/org.gnome.gthumb.rotate.gschema.xml data/gschemas/org.gnome.gthumb.slideshow.gschema.xml +data/gschemas/org.gnome.gthumb.terminal.gschema.xml data/gschemas/org.gnome.gthumb.webalbums.gschema.xml data/org.gnome.gThumb.Import.desktop.in.in data/org.gnome.gThumb.desktop.in.in data/ui/browser-preferences.ui data/ui/extensions-preferences.ui +data/ui/favorite-properties.ui +data/ui/file-selection-info.ui data/ui/filter-editor.ui data/ui/histogram-info.ui data/ui/location.ui data/ui/overwrite-dialog.ui data/ui/personalize-filters.ui data/ui/preferences.ui +data/ui/shortcuts-preferences.ui data/ui/sort-order.ui extensions/23hq/23hq.extension.desktop.in.in extensions/23hq/actions.c @@ -117,6 +122,7 @@ extensions/catalogs/gth-organize-task.c extensions/catalogs/gth-organize-task.h extensions/catalogs/main.c +extensions/catalogs/preferences.h extensions/change_date/actions.c extensions/change_date/actions.h extensions/change_date/callbacks.c @@ -256,6 +262,8 @@ extensions/file_manager/gth-reorder-task.h extensions/file_manager/main.c extensions/file_manager/preferences.h +extensions/file_tools/actions.c +extensions/file_tools/actions.h extensions/file_tools/cairo-blur.c extensions/file_tools/cairo-blur.h extensions/file_tools/cairo-effects.c @@ -381,6 +389,8 @@ extensions/flicker_utils/preferences.h extensions/gstreamer_tools/actions.c extensions/gstreamer_tools/actions.h +extensions/gstreamer_tools/callbacks.c +extensions/gstreamer_tools/callbacks.h extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui extensions/gstreamer_tools/data/ui/mediabar.ui extensions/gstreamer_tools/dlg-media-viewer-preferences.c @@ -392,6 +402,7 @@ extensions/gstreamer_tools/gth-metadata-provider-gstreamer.h extensions/gstreamer_tools/main.c extensions/gstreamer_tools/preferences.h +extensions/gstreamer_tools/shortcuts.h extensions/gstreamer_utils/gstreamer-utils.c extensions/gstreamer_utils/gstreamer-utils.h extensions/gstreamer_utils/gstreamer_utils.extension.desktop.in.in @@ -426,6 +437,8 @@ extensions/image_rotation/rotation-utils.h extensions/image_viewer/actions.c extensions/image_viewer/actions.h +extensions/image_viewer/callbacks.c +extensions/image_viewer/callbacks.h extensions/image_viewer/data/ui/image-viewer-preferences.ui extensions/image_viewer/data/ui/toolbar-zoom-menu.ui extensions/image_viewer/gth-image-histogram.c @@ -443,6 +456,7 @@ extensions/image_viewer/main.c extensions/image_viewer/preferences.c extensions/image_viewer/preferences.h +extensions/image_viewer/shortcuts.h extensions/importer/data/ui/import-preferences.ui extensions/importer/gth-import-destination-button.c extensions/importer/gth-import-destination-button.h @@ -493,6 +507,7 @@ extensions/list_tools/list-tools.h extensions/list_tools/list_tools.extension.desktop.in.in extensions/list_tools/main.c +extensions/list_tools/shortcuts.h extensions/map_view/gth-map-view.c extensions/map_view/gth-map-view.h extensions/map_view/main.c @@ -599,6 +614,10 @@ extensions/search/gth-search-editor-dialog.h extensions/search/gth-search-editor.c extensions/search/gth-search-editor.h +extensions/search/gth-search-source-selector.c +extensions/search/gth-search-source-selector.h +extensions/search/gth-search-source.c +extensions/search/gth-search-source.h extensions/search/gth-search-task.c extensions/search/gth-search-task.h extensions/search/gth-search.c @@ -617,6 +636,7 @@ extensions/selections/gth-selections-manager.h extensions/selections/main.c extensions/selections/selections.extension.desktop.in.in +extensions/selections/shortcuts.h extensions/slideshow/actions.c extensions/slideshow/actions.h extensions/slideshow/callbacks.c @@ -631,7 +651,18 @@ extensions/slideshow/main.c extensions/slideshow/preferences.c extensions/slideshow/preferences.h +extensions/slideshow/shortcuts.h extensions/slideshow/slideshow.extension.desktop.in.in +extensions/terminal/actions.c +extensions/terminal/actions.h +extensions/terminal/callbacks.c +extensions/terminal/callbacks.h +extensions/terminal/data/ui/terminal-preferences.ui +extensions/terminal/dlg-terminal-preferences.c +extensions/terminal/dlg-terminal-preferences.h +extensions/terminal/main.c +extensions/terminal/preferences.h +extensions/terminal/terminal.extension.desktop.in.in extensions/webalbums/actions.c extensions/webalbums/actions.h extensions/webalbums/albumtheme-private.c @@ -653,6 +684,8 @@ gthumb/cairo-utils.h gthumb/color-utils.c gthumb/color-utils.h +gthumb/dlg-favorite-properties.c +gthumb/dlg-favorite-properties.h gthumb/dlg-location.c gthumb/dlg-location.h gthumb/dlg-personalize-filters.c @@ -663,6 +696,8 @@ gthumb/dlg-preferences-extensions.h gthumb/dlg-preferences-general.c gthumb/dlg-preferences-general.h +gthumb/dlg-preferences-shortcuts.c +gthumb/dlg-preferences-shortcuts.h gthumb/dlg-preferences.c gthumb/dlg-preferences.h gthumb/dlg-sort-order.c @@ -683,6 +718,8 @@ gthumb/gsignature.h gthumb/gth-accel-button.c gthumb/gth-accel-button.h +gthumb/gth-accel-dialog.c +gthumb/gth-accel-dialog.h gthumb/gth-application.c gthumb/gth-application.h gthumb/gth-async-task.c @@ -722,6 +759,8 @@ gthumb/gth-file-list.h gthumb/gth-file-properties.c gthumb/gth-file-properties.h +gthumb/gth-file-selection-info.c +gthumb/gth-file-selection-info.h gthumb/gth-file-selection.c gthumb/gth-file-selection.h gthumb/gth-file-source-vfs.c @@ -794,6 +833,8 @@ gthumb/gth-load-file-data-task.h gthumb/gth-location-bar.c gthumb/gth-location-bar.h +gthumb/gth-location-chooser-dialog.c +gthumb/gth-location-chooser-dialog.h gthumb/gth-location-chooser.c gthumb/gth-location-chooser.h gthumb/gth-main-default-hooks.c @@ -833,12 +874,14 @@ gthumb/gth-save-image-task.h gthumb/gth-screensaver.c gthumb/gth-screensaver.h +gthumb/gth-shortcut.c +gthumb/gth-shortcut.h +gthumb/gth-shortcuts-window.c +gthumb/gth-shortcuts-window.h gthumb/gth-sidebar-section.c gthumb/gth-sidebar-section.h gthumb/gth-sidebar.c gthumb/gth-sidebar.h -gthumb/gth-source-tree.c -gthumb/gth-source-tree.h gthumb/gth-statusbar.c gthumb/gth-statusbar.h gthumb/gth-string-list.c @@ -875,6 +918,8 @@ gthumb/gth-uri-list.h gthumb/gth-user-dir.c gthumb/gth-user-dir.h +gthumb/gth-vfs-tree.c +gthumb/gth-vfs-tree.h gthumb/gth-viewer-page.c gthumb/gth-viewer-page.h gthumb/gth-window-title.c @@ -895,16 +940,20 @@ gthumb/pixbuf-io.h gthumb/pixbuf-utils.c gthumb/pixbuf-utils.h -gthumb/resources/app-menu.ui gthumb/resources/file-list-menu.ui gthumb/resources/file-menu.ui gthumb/resources/folder-menu.ui gthumb/resources/gears-menu.ui gthumb/resources/history-menu.ui +gthumb/str-utils.c +gthumb/str-utils.h gthumb/test-dom.c gthumb/test-glib-utils.c gthumb/test-gsignature.c +gthumb/test-gtk-utils.c gthumb/test-oauth.c gthumb/typedefs.h +gthumb/uri-utils.c +gthumb/uri-utils.h gthumb/zlib-utils.c gthumb/zlib-utils.h diff -Nru gthumb-3.8.3/po/pt_BR.po gthumb-3.9.1/po/pt_BR.po --- gthumb-3.8.3/po/pt_BR.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/pt_BR.po 2020-03-07 19:03:13.613619300 +0000 @@ -1,5 +1,5 @@ # Brazilian Portuguese translation of gthumb. -# Copyright (C) 2019 Free Software Foundation, Inc. +# Copyright (C) 2020 gThumb copyright holders # This file is distributed under the same license as the gthumb package. # Gustavo Noronha Silva , 2001-2003. # Joao Paulo Gomes Vanzuita , 2004. @@ -9,22 +9,22 @@ # Leonardo Ferreira Fontenelle , 2009. # Enrico Nicoletto , 2013. # Antonio Fernandes C. Neto , 2014. -# Rafael Fontenelle , 2013-2019. +# Rafael Fontenelle , 2013-2020. # msgid "" msgstr "" "Project-Id-Version: gthumb\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-02-24 11:07+0000\n" -"PO-Revision-Date: 2019-03-10 09:45-0300\n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-04 22:13-0300\n" "Last-Translator: Rafael Fontenelle \n" -"Language-Team: Portuguese - Brazil \n" +"Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 3.31.90\n" +"X-Generator: Gtranslator 3.32.0\n" "X-Project-Style: gnome\n" #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 @@ -136,19 +136,13 @@ msgid "Import the photos on your camera card" msgstr "Importe fotos do cartão da sua câmera" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Visualizador de imagens" @@ -163,69 +157,70 @@ msgid "Caption" msgstr "Legenda" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Comportamento" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" -msgstr "Clique _simple para abrir arquivos" +msgstr "Clique _simples para abrir arquivos" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "Clique _duplo para abrir arquivos" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Abrir arquivos em modo tela cheia" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Outros" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "_Tamanho da miniatura:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "D_eterminar tipo de imagem pelo conteúdo (lento)" @@ -237,21 +232,35 @@ msgid "More extensions…" msgstr "Mais extensões…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Anterior" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Próxima" + # ou Nome do filtro? #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "_Nome do filtro:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "C_orresponder a:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Regras:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Limitar a" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "selecionado(s) por" @@ -297,40 +306,40 @@ msgid "Old File:" msgstr "Arquivo antigo:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Nome do arquivo:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Tamanho:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Modificado:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Novo arquivo:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "Sobrescre_ver o arquivo antiga" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "Não sobrescrever o arquivo an_tigo" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Sobrescrever todos _arquivos" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_Não sobrescrever nenhum arquivo" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "_Salvar o novo arquivo como:" @@ -354,70 +363,75 @@ msgid "gThumb Preferences" msgstr "Preferências do gThumb" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Aparência" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "_Miniaturas no visualizador:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" -msgstr "embaixo" +msgstr "na parte inferior" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" -msgstr "lateral" +msgstr "na parte lateral" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "_Propriedades do arquivo no navegador:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Ao iniciar:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "_Vai para a última localização visitada" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Va_i para esta pasta:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Escolha a pasta de inicial" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Usar a _atual" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "_Usar a janela ativa para abrir arquivos" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Pedir confirmação antes de e_xcluir imagens ou catálogos" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Perguntar quando for _salvar imagens modificadas" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "Arma_zenar metadados dentro de arquivos, se possível" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Geral" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Atalhos:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Restaurar todos…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "Ordem _inversa" @@ -431,7 +445,7 @@ msgstr "Envia imagens para o 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Marcadores" @@ -448,7 +462,7 @@ msgid "_Edit Bookmarks…" msgstr "_Editar marcadores…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "Marcadores do _sistema" @@ -462,6 +476,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Remove" @@ -514,15 +529,15 @@ msgid "Source" msgstr "Fonte" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Gravar em disco" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Continuar" @@ -531,7 +546,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Erro ao interpretar o arquivo de imagem JPEG: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Espaço de cores JPEG desconhecido (%d)" @@ -564,7 +579,7 @@ #: extensions/cairo_io/data/ui/save-options-preferences.ui:25 msgid "Default options:" -msgstr "Opções padrões:" +msgstr "Opções padrão:" #: extensions/cairo_io/data/ui/tga-options.ui:11 msgid "_RLE compression" @@ -614,12 +629,12 @@ msgstr "_Sem perda" #: extensions/cairo_io/gth-image-saver-jpeg.c:517 -#: extensions/image_viewer/gth-metadata-provider-image.c:145 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 msgid "JPEG" msgstr "JPEG" #: extensions/cairo_io/gth-image-saver-png.c:354 -#: extensions/image_viewer/gth-metadata-provider-image.c:111 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 msgid "PNG" msgstr "PNG" @@ -637,71 +652,69 @@ msgstr "TIFF" #: extensions/cairo_io/gth-image-saver-webp.c:383 -#: extensions/image_viewer/gth-metadata-provider-image.c:174 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 msgid "WebP" msgstr "WebP" #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Salvar" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Nenhum nome especificado" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Nome inválido. Os caracteres a seguir não são permitidos: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Nome já usado" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 msgid "New catalog" msgstr "Novo catálogo" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Digite o nome do catálogo:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "C_riar" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 msgid "New library" msgstr "Nova biblioteca" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Digite o nome da biblioteca:" @@ -718,7 +731,7 @@ msgid "Add to Catalog…" msgstr "Adicionar ao catálogo…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Abrir pasta" @@ -734,40 +747,40 @@ msgid "Create Library" msgstr "Criar biblioteca" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" -msgstr "Renomear" +msgstr "Renomeia" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Propriedades" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 msgid "Catalogs" msgstr "Catálogos" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Linha de comando" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Propriedades do catálogo" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Organizar" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Organiza automaticamente os arquivos por data" @@ -780,32 +793,32 @@ msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Adicionar ao catálogo" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "A_dicionar e fechar" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "C_atálogos:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "_Novo catálogo" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Nova _biblioteca" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Nova biblioteca" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Novo catálogo" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Ver o destino" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "_Manter o diálogo aberto" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -859,7 +872,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "Incluir _subpastas" @@ -875,26 +888,33 @@ msgid "Singles" msgstr "Singulares" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Não foi possível adicionar os arquivos ao catálogo" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Não foi possível criar o catálogo" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Adicionar ao catálogo" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Adicionar" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Não foi possível salvar o catálogo" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Não foi possível carregar o catálogo" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Organizar arquivos" @@ -905,75 +925,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Data na qual a foto foi tirada" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Data de modificação do arquivo" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Etiqueta" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Etiqueta (embutida)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Formato de arquivo inválido" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "Etiquetas" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "O catálogo “%s” já existe; você deseja sobrescrevê-lo?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "A biblioteca “%s” já existe; você deseja sobrescrevê-la?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "Sobrescre_ver" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Não foi possível mover os arquivos" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Não foi possível copiar os arquivos" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Destino inválido." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Copiando os arquivos para “%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Não foi possível remover os arquivos do catálogo" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:876 -#: extensions/exiv2_tools/exiv2-utils.cpp:885 -#: extensions/exiv2_tools/exiv2-utils.cpp:915 -#: extensions/exiv2_tools/exiv2-utils.cpp:1450 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Formato de arquivo inválido" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1075,20 +1097,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Preferências" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Comentário" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "Título" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1098,21 +1124,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "Descrição" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "Lugar" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Data & hora do comentário" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Classificação" @@ -1126,7 +1152,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Folha de contato" @@ -1139,9 +1165,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Nenhum" @@ -1213,7 +1239,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1228,7 +1254,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1236,7 +1262,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Legenda:" @@ -1391,13 +1417,13 @@ msgid "Thumbnails" msgstr "Miniaturas" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Não foi possível salvar o tema" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Não foi possível excluir o tema" @@ -1405,11 +1431,11 @@ msgid "Image Wall" msgstr "Parede de imagens" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Carregando imagens" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Gerando miniaturas" @@ -1475,7 +1501,7 @@ "trabalho" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Preferências" @@ -1521,6 +1547,14 @@ msgstr "Se você excluir os metadados, eles serão perdidos permanentemente." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Edita o comentário" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Edita etiquetas" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Excluir metadados" @@ -1551,8 +1585,8 @@ msgid "Could not save the file metadata" msgstr "Não foi possível salvar os metadados do arquivo" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Não foi possível ler informações" @@ -1565,27 +1599,7 @@ msgid "Allow to edit files metadata." msgstr "Permite editar metadados de arquivos." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "Metadados de %s" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d arquivo" -msgstr[1] "%d arquivos" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "Sal_var e fechar" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Salvar some_nte campos alterados" @@ -1614,16 +1628,6 @@ msgid "Do not modify" msgstr "Não modificar" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "Etiquetas de %s" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Atribuir etiquetas" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1686,7 +1690,8 @@ msgid "State/Province:" msgstr "Estado/Província:" -#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(valor inválido)" @@ -1751,10 +1756,9 @@ msgid "date photo was taken" msgstr "data na qual a foto foi tirada" -# Referente a extensões #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Exportar" +msgid "_Export To" +msgstr "_Exportar para" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1895,7 +1899,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1936,13 +1940,13 @@ msgid "Uploading “%s”" msgstr "Enviando “%s”" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Enviando os arquivos para o servidor" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1965,14 +1969,21 @@ msgstr "Digite o nome da pasta:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Não foi possível executar a operação" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Não foi possível mover os arquivos" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1980,117 +1991,123 @@ "Arquivos não podem ser movidos da localização atual, mas você pode optar por " "copiá-los." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" -msgstr "Copiar" +msgstr "Copia" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Mover para" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Copiar para" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Mover" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Não foi possível abrir a localização" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" -msgstr "Cortar" +msgstr "Corta" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Colar" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Copiar para…" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Mover para…" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" -msgstr "Mover para a lixeira" +msgstr "Move para a lixeira" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" -msgstr "Excluir" +msgstr "Exclui" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" -msgstr "Abrir com o gerenciador de arquivos" +msgstr "Abre com o gerenciador de arquivos" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" -msgstr "Criar pasta" +msgstr "Cria pasta" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" -msgstr "Colar para a pasta" +msgstr "Cola para a pasta" -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" -msgstr "Duplicado" +msgstr "Duplica" + +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Exclui permanentemente" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "Abre com Gimp" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 msgid "Home Folder" msgstr "Pasta pessoal" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "_Abrir com" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Você realmente deseja mover “%s” para “%s”?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Você realmente deseja copiar “%s” para “%s”?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Você realmente deseja mover os arquivos arrastados para “%s”?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Você realmente deseja copiar os arquivos arrastados para “%s”?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Copiar" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Não foi possível executar a operação" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Gerenciador de arquivos" @@ -2103,6 +2120,40 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Ajusta o contraste" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Vira" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Espelha" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Gira para direita" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Gira para esquerda" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Recorta" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Redimensiona" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2165,9 +2216,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Opções" @@ -2204,7 +2255,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Proporção" @@ -2242,7 +2293,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" msgstr "Dimensões" @@ -2402,17 +2453,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2459,11 +2510,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Equaliza o histograma usando a função linear" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Ajustar contraste" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Ajuste automático de contraste" @@ -2476,74 +2527,74 @@ msgstr "Selecione uma cor a partir da imagem" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Quadrado" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d × %d (imagem)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d × %d (tela)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (DVD, Livro)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (cartão postal)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1.85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2.39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2565,10 +2616,6 @@ msgid "Center Lines" msgstr "Linhas centrais" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Recortar" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Adicionar às predefinições" @@ -2579,8 +2626,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Não foi possível salvar o arquivo" @@ -2596,69 +2643,65 @@ msgid "Adjust color curves" msgstr "Ajusta a curvas de cor" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Efeitos especiais" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Mais quente" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Mais frio" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Solo" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Deserto" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Ártico" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mangos" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Azul frescor" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Cereja" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Vintage" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Bordas borradas" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Vinheta" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Virar" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Vira verticalmente a imagem" @@ -2675,7 +2718,7 @@ msgid "_Average" msgstr "_Médio" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Escala de cinza" @@ -2683,10 +2726,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Espelhar" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Espelha horizontalmente a imagem" @@ -2700,31 +2739,27 @@ msgstr "Refazer" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Redimensionando imagens" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Redimensionar" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" -msgstr "Girar para esquerda" +msgstr "Gira para esquerda" #: extensions/file_tools/gth-file-tool-rotate-left.c:91 msgid "Rotate the image by 90 degrees counterclockwise" msgstr "Gira a imagem 90 graus no sentido anti-horário" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" -msgstr "Girar para direita" +msgstr "Gira para direita" #: extensions/file_tools/gth-file-tool-rotate-right.c:91 msgid "Rotate the image by 90 degrees clockwise" @@ -2735,12 +2770,12 @@ msgstr "Girar" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Salvar como…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Salvar" @@ -2796,7 +2831,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "_Iniciar em:" @@ -2811,7 +2846,7 @@ msgstr "Localizar duplicados" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Localizar" @@ -2931,10 +2966,18 @@ msgstr "Escon_der das pesquisas públicas" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "Abrir atalho n_o navegador" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d arquivo" +msgstr[1] "%d arquivos" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2948,7 +2991,7 @@ msgstr "Nenhum álbum selecionado" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Importar" @@ -3019,6 +3062,14 @@ msgid "Could not take a screenshot" msgstr "Não foi possível capturar uma imagem" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Captura de tela" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Reproduz/Pausa" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Usar aceleração de hardware" @@ -3028,8 +3079,8 @@ msgstr "Localização de captura_s de tela:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Reproduzir" @@ -3065,66 +3116,76 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Reproduzindo vídeo" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Pausar" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Obtém uma captura de tela" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Ajustar à janela" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Reprodutor de áudio/vídeo" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Vídeo" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Áudio" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Artista" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Álbum" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Taxa de bits" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Codificador" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Codec" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Taxa de quadros" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Largura" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Altura" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Canais" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Taxa de amostragem" @@ -3138,10 +3199,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 -#: extensions/image_viewer/gth-metadata-provider-image.c:253 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3150,10 +3211,11 @@ msgid "Could not print the selected files" msgstr "Não foi possível imprimir os arquivos selecionados" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" -msgstr "Imprimir" +msgstr "Imprime" #: extensions/image_print/data/ui/print-layout.ui:13 msgid "Centered" @@ -3208,19 +3270,19 @@ msgid "inches" msgstr "polegadas" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Fontes" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Selecionar fonte das legendas" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Selecionar fonte dos cabeçalhos" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Selecionar fontes dos rodapés" @@ -3243,7 +3305,7 @@ # carregador é o mais apropriado? #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Nenhum carregador adequado para esse tipo de arquivo" @@ -3254,7 +3316,7 @@ msgstr "Carregando “%s”" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Carregando imagens" @@ -3270,18 +3332,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Girar fisicamente" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Restaurar a orientação EXIF" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Salvando imagens" @@ -3331,77 +3393,198 @@ msgid "_Accept distortion" msgstr "Distorção _aceita" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Mais ampliação" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Menos ampliação" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "Ampliação de 100%" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "Ampliação de 200%" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "Ampliação de 300%" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Amplia para caber" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Amplia para ajustar se for maior" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Amplia para ajustar à largura" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Amplia para ajustar à largura se for maior" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Amplia para ajustar à altura" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Amplia para ajustar à altura se for maior" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Desfaz a edição" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Refaz a edição" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Rola para esquerda" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Rola para direita" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Rola para cima" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Rola para baixo" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Rola rápido para esquerda" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Rola rápido para direita" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Rola rápido para cima" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Rola rápido para baixo" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Rola para centro" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Após carregar uma imagem:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Utilizar tamanho original" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Manter zoom anterior" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Ajustar à janela" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Ajustar à janela se for maior" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Ajustar à largura" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Ajustar à largura se for maior" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Restaurar as posições da barra de rolagem" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Ação da rodinha do mouse:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Alterar imagem" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Ampliar imagem" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Qualidade do zoom:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Alta" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Baixa" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Transparência:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "Quadriculado" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Branco" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Cinza" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Preto" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automático" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Ajustar à altura" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3409,31 +3592,44 @@ msgid "Histogram" msgstr "Histograma" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Copiar imagem" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Colar imagem" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Aplicar o perfil de cores incorporado" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Próximo quadro" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Transparência" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Salvar imagem" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Copiando a imagem original" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Rolagem da imagem" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Editor de imagem" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Visualizador" @@ -3505,39 +3701,39 @@ msgid "custom format" msgstr "formato personalizado" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Importando arquivos" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Nenhum arquivo importado" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "Os arquivos selecionados já se encontram no destino." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" msgstr "Não foi possível excluir os arquivos" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Não há suporte à operação de exclusão." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Última importação" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Nenhum arquivo especificado." # "300MB is available" is wrong, as it should be in plural. #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3546,7 +3742,8 @@ "Sem espaço suficiente em “%s”.\n" "Precisa de %s, mas há apenas %s." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Ferramentas" @@ -3634,49 +3831,54 @@ msgid "Quote the text " msgstr "Cita o texto " -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +#| msgid "The current date" +msgid "The current date and time" +msgstr "A data e o horário atual" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "Co_mando:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Personalizar…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Script" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Atalho" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Mostrar" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Não foi possível salvar o script" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Novo comando" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Editar comando" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Você tem certeza que quer excluir o comando selecionado?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Comandos" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Nenhum comando especificado" @@ -3686,18 +3888,18 @@ msgid "Command exited abnormally with status %d" msgstr "Comando sai anormalmente com o status %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Digite um valor:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Comando mal formado" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Pular" @@ -3748,7 +3950,7 @@ msgstr "_Contas:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Carregando…" @@ -3785,7 +3987,7 @@ msgstr "Obtendo informações da conta" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Escolha uma pasta" @@ -3849,11 +4051,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Vazio)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Obtendo o conteúdo da pasta…" @@ -3861,11 +4063,11 @@ msgid "Empty" msgstr "Vazio" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Importar de dispositivo removível" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Importar de pasta" @@ -3982,6 +4184,7 @@ msgstr "_Maiúsculo/Minúsculo:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Ajuda" @@ -4078,29 +4281,29 @@ msgid "Edit Template" msgstr "Editar modelo" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Renomear" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Nome antigo" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Novo nome" # Na interface gráfica está visível estar relacionado com maiúsculo/minúsculo. -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Manter original" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Converter letras para minúsculo" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Converter letras para maiúsculo" @@ -4137,15 +4340,15 @@ msgstr "_Preservar as proporções originais" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Formato" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Redimensionar imagens" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Manter o formato original" @@ -4157,8 +4360,8 @@ msgid "Resize series of images." msgstr "Redimensiona séries de imagens." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Não foi possível realizar a pesquisa" @@ -4166,48 +4369,48 @@ msgid "Search Result" msgstr "Resultado da pesquisa" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Localizar" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Localiza arquivos" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Pesquisar novamente" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Pesquisar" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Regras:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "todos as regras a seguir" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "qualquer uma das regras a seguir" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Adiciona outra localização" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Arquivos encontrados até agora: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Pesquisando…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Cancelar a operação" @@ -4219,16 +4422,32 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Adiciona à seleção" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Remove da seleção" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Mostra a seleção" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Remover da seleção" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" msgstr "Mostrar seleção %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4242,6 +4461,7 @@ msgstr "Seleção %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Seleções" @@ -4254,52 +4474,69 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Apresentação" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Inicia a apresentação" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Encerra a apresentação" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Pausa/retoma a apresentação" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Mostra o próximo arquivo" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Mostra o arquivo anterior" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Apresentação de slides" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Apresentação" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Personalizar" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "Efeito de _transição:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Alterar automaticamente, a cada" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "segundos" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "_Reiniciar ao terminar" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "_Ordem aleatória" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Lista de reprodução" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Adiciona arquivos à lista de reprodução" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Remove arquivos selecionados" @@ -4315,50 +4552,69 @@ msgid "Random" msgstr "Aleatório" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Reproduzindo apresentação de slides" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "Reproduzindo uma apresentação" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Empurrar da direita" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Empurrar de baixo" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Deslizar da direita" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Deslizar de baixo" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Fade in" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Virar página" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Cubo da direita" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Cubo de baixo" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Veja imagens como em apresentação de slides." +msgid "Play a presentation of images." +msgstr "Reproduz uma apresentação de imagens." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminal" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +#| msgid "Open in New Window" +msgid "Open in Terminal" +msgstr "Abre no terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +#| msgid "Open the selected folder in a new window" +msgid "Open a folder in a terminal" +msgstr "Abre uma pasta em um terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" msgstr "Álbum _web…" @@ -4380,14 +4636,6 @@ msgid "Index" msgstr "Índice" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Próxima" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Anterior" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4471,36 +4719,36 @@ msgid "Web Album" msgstr "Álbum web" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Não foi possível abrir o destino" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "O álbum foi criado com sucesso." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Salvando miniaturas" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Salvando páginas HTML: imagens" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Salvando páginas HTML: índices" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Copiando imagens originais" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Não foi possível localizar a pasta de estilos" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Não foi possível criar uma pasta temporária" @@ -4512,9 +4760,9 @@ msgid "Create static web albums." msgstr "Cria álbuns web estáticos." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "Não foi possível carregar a posição: “%s”" @@ -4545,21 +4793,25 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Navegador" # Referente a extensões -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" msgstr "Todas" # Referente a extensões #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "Habilitadas" # Referente a extensões #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "Desabilitadas" @@ -4603,66 +4855,99 @@ msgstr "Não foi possível desativar a extensão" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" -msgstr "equipe de desenvolvimento do gThumb" +#| msgid "gthumb development team" +msgid "gThumb Development Team" +msgstr "Equipe de Desenvolvimento do gThumb" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Extensões" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Reinicialização necessária" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "" "Você precisa reiniciar o gthumb para que essas alterações tenham efeito" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Reiniciar" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Reverter" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "Você deseja reverter todas as alterações e usar os atalhos padrão?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Todos" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Modificados" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Atalhos" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Ordenar por" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s de %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Movendo “%s” para “%s”" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Copiando “%s” para “%s”" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Movendo arquivos" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Copiando arquivos" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Obtendo informações do arquivo" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Excluindo arquivos" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Movendo arquivos para a lixeira" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4674,17 +4959,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." msgstr "Pressione uma combinação de teclas a usar como atalho." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Pressione Esc para cancelar" @@ -4697,8 +4982,8 @@ msgstr "Inicia em modo tela cheia" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Inicia apresentação de slides automaticamente" +msgid "Automatically start a presentation" +msgstr "Inicia automaticamente a apresentação" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4708,11 +4993,11 @@ msgid "Show version" msgstr "Mostra a versão" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Visualizador e navegador de imagens" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4724,7 +5009,7 @@ "Software Foundation; tanto a versão 2 da Licença ou (a sua escolha) qualquer " "versão posterior." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4736,7 +5021,7 @@ "A UM PROPÓSITO EM PARTICULAR. Veja a Licença Pública Geral GNU (GNU GPL) " "para mais detalhes." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4744,123 +5029,199 @@ "Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este " "programa. Caso contrário, veja http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "Um visualizador e navegador de imagens para o GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" +"Enrico Nicoletto \n" "Gustavo Noronha Silva \n" -"João Paulo Gomes Vanzuita \n" -"Viviani Ap. dos Santos \n" -"Raphael Higino \n" "Igor Pires Soares \n" +"João Paulo Gomes Vanzuita \n" "Rafael Fontenelle \n" -"Enrico Nicoletto ." +"Raphael Higino \n" +"Viviani Ap. dos Santos " + +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Nova janela" -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Atalhos de teclado" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "Aj_uda" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Sai" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Mostra o navegador" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Fecha a janela" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Abre a localização" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Tela cheia" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_Sobre gThumb" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Reverte para a imagem salva" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Barra lateral" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Barra de status" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Lista de miniaturas" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Carrega a localização anterior" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Carrega a próxima localização" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Carrega a pasta pai" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Carrega o início" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Recarrega a localização" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Mostra/oculta arquivos ocultos" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Altera a ordem de classificação" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Mostra o primeiro arquivo" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Mostra o último arquivo" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Ferramentas de imagem" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Propriedades do arquivo" + +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Seleciona tudo" + +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "Seleciona nenhum" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[modificado]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d arquivo selecionado (%s)" msgstr[1] "%d arquivos selecionados (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s de espaço livre" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Não foi encontrado um módulo adequado para %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Salvar alterações do arquivo “%s”?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "Se você não salvar, as alterações serão permanentemente perdidas." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "_Não salvar" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Aceitar" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Fechar" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Não foi possível alterar o nome" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Modificado" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Vai para o local visitado anteriormente" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Vai para o próximo local visitado" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Histórico" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Veja as pastas" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Edita o arquivo" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Tela cheia" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Não há suporte ao tipo de arquivo" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Não foi encontrado um módulo adequado" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Excluindo arquivos" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4879,11 +5240,11 @@ msgid "_Show Format Options" msgstr "_Mostrar opções de formato" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:219 msgid "Computer" msgstr "Computador" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" @@ -4891,16 +5252,16 @@ "As imagens não podem ser movidas para a lixeira. Deseja excluí-las " "permanentemente?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "Não foi possível mover os arquivos para a lixeira" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:829 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Você tem certeza de que quer excluir “%s” permanentemente?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4911,7 +5272,7 @@ "Você tem certeza que quer excluir permanentemente %'d imagens selecionadas?" # Traduzi "permanently" para "para sempre" para não repetir "permanentemente", o que já era óbvio da string acima. -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:842 msgid "If you delete a file, it will be permanently lost." msgstr "Se você excluir um arquivo, ele será perdido para sempre." @@ -4948,11 +5309,16 @@ msgid "No limit specified" msgstr "Nenhum limite especificado" -#: gthumb/gth-folder-tree.c:1391 +# Referente a extensões +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Todas" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Abrir pai)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Digite o novo nome:" @@ -4983,72 +5349,90 @@ msgid "Reading file information" msgstr "Lendo informações do arquivo" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Arquivos ocultos" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "Local" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Locais" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Outros…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Tamanho" #: gthumb/gth-main-default-metadata.c:41 -msgctxt "the file mtime" +msgid "Bytes" +msgstr "Bytes" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 +#| msgctxt "the file mtime" +#| msgid "Modified Date & Time" msgid "Modified Date & Time" msgstr "Data & hora de modificação" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "Tipo" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Local" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "Duração" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:51 msgid "Exposure Settings" msgstr "Configurações de exposição" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:52 msgid "Aperture" msgstr "Abertura" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:53 msgid "ISO Speed" msgstr "Velocidade da ISO" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:54 msgid "Exposure Time" msgstr "Tempo de exposição" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:55 msgid "Shutter Speed" msgstr "Velocidade do obturador" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:56 msgid "Focal Length" msgstr "Distância focal" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:57 msgid "Flash" msgstr "Flash" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:58 msgid "Camera Model" msgstr "Modelo da câmera" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:59 msgid "Color Profile" msgstr "Perfil de cor" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:61 msgid "General Date & Time" msgstr "Data e hora geral" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:68 msgid "Author" msgstr "Autor" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:69 msgid "Copyright" msgstr "Copyright" @@ -5080,43 +5464,55 @@ msgid "aspect ratio" msgstr "proporção" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Todos arquivos" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Todas imagens" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "Imagens JPEG" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Fotos não tratadas (Raw)" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Mídia" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Arquivos de texto" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Nome de arquivo" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Título (embutido)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Descrição (embutida)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Mostrar/ocultar" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Organização" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Gerenciador de arquivos" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Sobrescrever" @@ -5212,8 +5608,8 @@ msgstr "é menor que ou igual a" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "A definição de teste está incompleta" @@ -5284,31 +5680,54 @@ msgid "Rotation" msgstr "Rotação" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Movendo arquivos para a lixeira" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"A combinação de teclas “%s” já está atribuída à ação “%s”. Você deseja " +"reatribuí-la a esta ação?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Reatribuir" -#: gthumb/gtk-utils.c:338 +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"A combinação de teclas “%s” já está atribuída à ação “%s” e não pode ser " +"alterada." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "A combinação de teclas “%s” já está atribuída e não pode ser alterada." + +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Não foi possível exibir a ajuda" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "Não foi possível iniciar o aplicativo" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "C_opiar aqui" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "_Mover aqui" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "Criar _link aqui" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Cancelar" @@ -5316,6 +5735,10 @@ msgid "_Cancel" msgstr "_Cancelar" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "Aj_uda" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Nova" @@ -5334,52 +5757,71 @@ #: gthumb/gtk-utils.h:45 msgid "E_xecute" -msgstr "E_xecutivo" +msgstr "E_xecutar" #: gthumb/gtk-utils.h:46 msgid "_Upload" msgstr "_Enviar" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Nova _janela" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "S_obre" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Sair" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Abre em nova janela" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Nova janela" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" -msgstr "Abrir Localização…" +msgstr "Abrir localização…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Reverter" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Ordenar por…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Arquivos ocultos" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_Sobre gThumb" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Excluir histórico" +#~ msgid "Choose startup folder" +#~ msgstr "Escolha a pasta de inicial" + +#~ msgid "A_dd and Close" +#~ msgstr "A_dicionar e fechar" + +#~ msgid "%s Metadata" +#~ msgstr "Metadados de %s" + +#~ msgid "Sa_ve and Close" +#~ msgstr "Sal_var e fechar" + +#~ msgid "%s Tags" +#~ msgstr "Etiquetas de %s" + +#~ msgid "Assign Tags" +#~ msgstr "Atribuir etiquetas" + +#~ msgid "Export" +#~ msgstr "Exporta" + +#~ msgid "gthumb" +#~ msgstr "gthumb" + +#~ msgid "Slideshow" +#~ msgstr "Apresentação de slides" + +#~ msgid "Playing slideshow" +#~ msgstr "Reproduzindo apresentação de slides" + +#~ msgid "View images as a slideshow." +#~ msgstr "Veja imagens como em apresentação de slides." + +#~ msgid "New _Window" +#~ msgstr "Nova _janela" + +#~ msgid "_About" +#~ msgstr "S_obre" + #~ msgid "" #~ "The geographical position information is not available for this image." #~ msgstr "" @@ -5514,9 +5956,6 @@ #~ msgid "Could not move the folder to the Trash" #~ msgstr "Não foi possível mover a pasta para a lixeira" -#~ msgid "Image tools" -#~ msgstr "Ferramentas de imagem" - #~ msgid "Basic tools to modify images." #~ msgstr "Ferramentas básicas para modificar imagens." @@ -5810,9 +6249,6 @@ #~ msgid "Change volume level" #~ msgstr "Altere o nível do volume" -#~ msgid "Screenshot" -#~ msgstr "Captura de tela" - #~ msgid "Print the selected images" #~ msgstr "Imprimir as imagens selecionadas" @@ -5828,18 +6264,6 @@ #~ msgid "Reset the embedded orientation without rotating the images" #~ msgstr "Redefine a orientação embutida sem girar as imagens" -#~ msgid "Transparency _type:" -#~ msgstr "Tip_o de transparência:" - -#~ msgid "White" -#~ msgstr "Branco" - -#~ msgid "Black" -#~ msgstr "Preto" - -#~ msgid "Checked" -#~ msgstr "Verificado" - #~ msgid "Copy the image to the clipboard" #~ msgstr "Copia a imagem para a área de transferência" @@ -5849,12 +6273,6 @@ #~ msgid "In" #~ msgstr "Aproximar" -#~ msgid "Zoom in" -#~ msgstr "Mais zoom" - -#~ msgid "Zoom out" -#~ msgstr "Menos zoom" - #~ msgid "1:1" #~ msgstr "1:1" @@ -5867,9 +6285,6 @@ #~ msgid "Zoom to fit window" #~ msgstr "Zoom para ajustar à janela" -#~ msgid "Zoom to fit width" -#~ msgstr "Zoom para ajustar à largura" - #~ msgid "Batch tools for multiple files" #~ msgstr "Ferramentas de processamento em lote para múltiplos arquivos" @@ -5941,9 +6356,6 @@ #~ msgid "_Go" #~ msgstr "_Ir" -#~ msgid "E_xport To" -#~ msgstr "E_xportar para" - #~ msgid "Open another window" #~ msgstr "Abre outra janela" @@ -5959,15 +6371,6 @@ #~ msgid "Stop loading the current location" #~ msgstr "Para de carregar a localização atual" -#~ msgid "Reload the current location" -#~ msgstr "Recarrega a localização atual" - -#~ msgid "View previous image" -#~ msgstr "Veja a imagem anterior" - -#~ msgid "View next image" -#~ msgstr "Veja a próxima imagem" - #~ msgid "Switch to fullscreen" #~ msgstr "Muda para tela cheia" @@ -6001,9 +6404,6 @@ #~ msgid "View or hide the toolbar of this window" #~ msgstr "Mostra ou oculta a barra de ferramentas dessa janela" -#~ msgid "_Statusbar" -#~ msgstr "Barra de _status" - #~ msgid "View or hide the statusbar of this window" #~ msgstr "Mostra ou oculta a barra de status dessa janela" @@ -6013,9 +6413,6 @@ #~ msgid "View or hide the filterbar of this window" #~ msgstr "Mostra ou oculta a barra de filtros desta janela" -#~ msgid "_Sidebar" -#~ msgstr "Barra _lateral" - #~ msgid "View or hide the sidebar of this window" #~ msgstr "Mostra ou oculta a barra de lateral desta janela" @@ -6031,12 +6428,6 @@ #~ msgid "View thumbnails" #~ msgstr "Veja miniaturas" -#~ msgid "Show hidden files and folders" -#~ msgstr "Mostra pastas e arquivos ocultos" - -#~ msgid "View file properties" -#~ msgstr "Veja as propriedades do arquivo" - #~ msgid "_Fit Window to Image" #~ msgstr "A_justa a janela à imagem" @@ -6055,9 +6446,6 @@ #~ msgid "File System" #~ msgstr "Sistema de arquivos" -#~ msgid "Close this window" -#~ msgstr "Fecha esta janela" - #~ msgid "Close _All Windows" #~ msgstr "Fechar _todas janelas" @@ -6138,9 +6526,6 @@ #~ msgid "File format not recognized" #~ msgstr "Formato de arquivo não reconhecido" -#~ msgid "Bytes" -#~ msgstr "Bytes" - #~ msgid "Exposure mode" #~ msgstr "Modo de exposição" @@ -6275,18 +6660,12 @@ #~ msgid "Show / hide the cropping selection area" #~ msgstr "Mostrar / esconder a seleção de área de aparo" -#~ msgid "Zoom at 100% scale" -#~ msgstr "Zoom na escala de 100%" - #~ msgid "Zoom in. The mousewheel can also be used to zoom in." #~ msgstr "Mais zoom. A roda do mouse também pode ser usada para aproximar." #~ msgid "Zoom out. The mousewheel can also be used to zoom out." #~ msgstr "Menos zoom. A roda do mouse também pode ser usada para afastar." -#~ msgid "Zoom to fit" -#~ msgstr "Ajustar à tela" - #~ msgid "_Done" #~ msgstr "_Concluir" @@ -7010,9 +7389,6 @@ #~ msgid "Home" #~ msgstr "Pessoal" -#~ msgid "No image" -#~ msgstr "Sem imagem" - #~ msgid "Ro_tate Images" #~ msgstr "Gi_rar imagens" @@ -7232,9 +7608,6 @@ #~ msgid "Could not create the folder \"%s\"" #~ msgstr "Não foi possível criar a pasta \"%s\": %s" -#~ msgid "Show/_Hide" -#~ msgstr "Mostrar/_Esconder" - #~ msgid "S_ort Images" #~ msgstr "_Ordenar Imagens" @@ -7320,9 +7693,6 @@ #~ msgid "Move current catalog to another location" #~ msgstr "Move o catálogo atual para outro local" -#~ msgid "Open the selected folder in a new window" -#~ msgstr "Abre a pasta selecionada em uma nova janela" - #~ msgid "Open the selected folder with the Nautilus file manager" #~ msgstr "Abre a pasta selecionada com o gerenciador de arquivos Nautilus" @@ -7341,9 +7711,6 @@ #~ msgid "Move the current folder to the Trash" #~ msgstr "Move pasta atual para a Lixeira" -#~ msgid "Copy current folder" -#~ msgstr "Copia pasta atual" - #~ msgid "Assign tags to the current folder" #~ msgstr "Atribui etiquetas à pasta atual" @@ -7501,9 +7868,6 @@ #~ msgid "_Open With..." #~ msgstr "_Abrir Com..." -#~ msgid "Revert to saved image" -#~ msgstr "Reverte para a imagem salva" - #~ msgid "Print..." #~ msgstr "Imprimir..." @@ -7634,9 +7998,6 @@ #~ msgid "_Selected categories:" #~ msgstr "Categorias _selecionadas:" -#~ msgid "Scale Image" -#~ msgstr "Redimensionar Imagem" - #~ msgid "112 x 112" #~ msgstr "112 x 112" diff -Nru gthumb-3.8.3/po/sv.po gthumb-3.9.1/po/sv.po --- gthumb-3.8.3/po/sv.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/sv.po 2020-03-07 19:03:13.616952400 +0000 @@ -1,17 +1,17 @@ # Swedish messages for gThumb. -# Copyright © 2001-2019 Free Software Foundation, Inc. +# Copyright © 2001-2020 Free Software Foundation, Inc. # Christian Rose , 2002, 2003, 2004. # Bo Rosén , 2001. # Daniel Nylander , 2006, 2007, 2008, 2009, 2010, 2011, 2012. # Josef Andersson , 2016. -# Anders Jonsson , 2016, 2017, 2018, 2019. +# Anders Jonsson , 2016, 2017, 2018, 2019, 2020. # msgid "" msgstr "" "Project-Id-Version: gThumb\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-01-12 11:52+0000\n" -"PO-Revision-Date: 2019-01-20 21:19+0100\n" +"POT-Creation-Date: 2020-03-01 20:18+0000\n" +"PO-Revision-Date: 2020-03-05 00:46+0100\n" "Last-Translator: Anders Jonsson \n" "Language-Team: Swedish \n" "Language: sv\n" @@ -19,7 +19,7 @@ "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.3\n" #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 msgid "gThumb Image Viewer" @@ -132,19 +132,13 @@ msgid "Import the photos on your camera card" msgstr "Importera foton från din digitalkamera" -#. Translators: Do NOT translate or transliterate this text (this is an icon file name)! -#: data/org.gnome.gThumb.Import.desktop.in.in:10 -#: data/org.gnome.gThumb.desktop.in.in:12 -msgid "gthumb" -msgstr "gthumb" - #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Bildvisare" @@ -159,69 +153,70 @@ msgid "Caption" msgstr "Text" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Beteende" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" msgstr "_Enkelklicka för att öppna filer" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "_Dubbelklicka för att öppna filer" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Öppna filer i helskärmsläge" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Övrigt" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "M_iniatyrbildsstorlek:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" msgstr "Fa_stställ bildtyp från innehåll (långsammare)" @@ -233,20 +228,34 @@ msgid "More extensions…" msgstr "Fler tillägg…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Föregående" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Nästa" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "Filter_namn:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "_Matcha:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Regler:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Begränsa till" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "markerade efter" @@ -292,40 +301,40 @@ msgid "Old File:" msgstr "Gammal fil:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Filnamn:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Storlek:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Ändrad:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Ny fil:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "Skriv _över den gamla filen" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "Skriv inte över _den gamla filen" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" msgstr "Skriv över _alla filer" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "_Skriv inte över någon fil" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "_Spara den nya filen som:" @@ -349,70 +358,75 @@ msgid "gThumb Preferences" msgstr "gThumb-inställningar" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Utseende" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "M_iniatyrbilder i visaren:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" msgstr "nederst" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" msgstr "på sidan" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "Fil_egenskaper i bläddraren:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Vid uppstart:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Gå till senaste _besökta plats" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Gå till denna _mapp:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Välj uppstartsmapp" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Ställ in till a_ktuell" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "_Återanvänd det aktiva fönstret till att öppna filer" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Be_kräfta innan filer eller album tas bort" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "Fråga huruvida _ändrade filer ska sparas" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "_Lagra metadata inuti filer om möjligt" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Allmänt" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Kortkommandon:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "Åte_rställ alla…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "Om_vänd ordning" @@ -426,7 +440,7 @@ msgstr "Skicka upp bilder till 23hq.com" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Bokmärken" @@ -443,7 +457,7 @@ msgid "_Edit Bookmarks…" msgstr "_Redigera bokmärken…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "S_ystembokmärken" @@ -457,6 +471,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Ta bort" @@ -508,15 +523,15 @@ msgid "Source" msgstr "Källa" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Skriv till skiva" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Fortsätt" @@ -525,7 +540,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "Misslyckade med att tolka JPEG-bildfilen: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:536 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Okänd JPEG-färgrymd (%d)" @@ -608,12 +623,12 @@ msgstr "_Förlustfri" #: extensions/cairo_io/gth-image-saver-jpeg.c:517 -#: extensions/image_viewer/gth-metadata-provider-image.c:145 +#: extensions/image_viewer/gth-metadata-provider-image.c:150 msgid "JPEG" msgstr "JPEG" #: extensions/cairo_io/gth-image-saver-png.c:354 -#: extensions/image_viewer/gth-metadata-provider-image.c:111 +#: extensions/image_viewer/gth-metadata-provider-image.c:116 msgid "PNG" msgstr "PNG" @@ -631,71 +646,69 @@ msgstr "TIFF" #: extensions/cairo_io/gth-image-saver-webp.c:383 -#: extensions/image_viewer/gth-metadata-provider-image.c:174 +#: extensions/image_viewer/gth-metadata-provider-image.c:179 msgid "WebP" msgstr "WebP" #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1663 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Sparar" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:368 -#: extensions/catalogs/dlg-add-to-catalog.c:488 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Inget namn angivet" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:375 -#: extensions/catalogs/dlg-add-to-catalog.c:495 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Ogiltigt namn. Följande tecken tillåts ej: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:432 -#: extensions/catalogs/dlg-add-to-catalog.c:542 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Namnet används redan" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:453 msgid "New catalog" msgstr "Nytt album" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:454 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Ange albumnamnet:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:456 -#: extensions/catalogs/dlg-add-to-catalog.c:568 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "S_kapa" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:565 msgid "New library" msgstr "Nytt bibliotek" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:566 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Ange biblioteksnamnet:" @@ -712,7 +725,7 @@ msgid "Add to Catalog…" msgstr "Lägg till i album…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Öppna mapp" @@ -728,40 +741,40 @@ msgid "Create Library" msgstr "Skapa bibliotek" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:105 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" msgstr "Byt namn" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4583 -#: gthumb/gth-browser.c:4685 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Egenskaper" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:916 extensions/catalogs/gth-catalog.c:917 msgid "Catalogs" msgstr "Album" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Kommandorad" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Albumegenskaper" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Ordna" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Ordna filer efter datum automatiskt" @@ -773,32 +786,32 @@ msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Lägg till i album" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "Lägg _till och stäng" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "_Album:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "_Nytt album" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Nytt _bibliotek" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Nytt bibliotek" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Nytt album" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "_Visa målplatsen" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "_Håll dialogrutan öppen" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -852,7 +865,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "_Inkludera undermappar" @@ -868,26 +881,33 @@ msgid "Singles" msgstr "Enskilda" -#: extensions/catalogs/dlg-add-to-catalog.c:149 -#: extensions/catalogs/dlg-add-to-catalog.c:183 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Kunde inte lägga till filerna till albumet" -#: extensions/catalogs/dlg-add-to-catalog.c:311 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Kunde inte skapa albumet" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Lägg till i album" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Lägg till" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Kunde inte spara albumet" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Kunde inte läsa in albumet" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Ordna filer" @@ -898,75 +918,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:366 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Datum då foto togs" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:358 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Filens ändringstid" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Tagg" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:399 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Tagg (inbäddad)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Ogiltigt filformat" + +#: extensions/catalogs/gth-catalog.c:1018 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:65 msgid "Tags" msgstr "Taggar" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "Albumet ”%s” finns redan. Vill du skriva över det?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "Biblioteket ”%s” finns redan. Vill du skriva över det?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" msgstr "Skriv öv_er" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Kan inte flytta filerna" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Kan inte kopiera filerna" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Ogiltigt mål." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Kopierar filer till ”%s”" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Kunde inte ta bort filerna från albumet" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:871 -#: extensions/exiv2_tools/exiv2-utils.cpp:880 -#: extensions/exiv2_tools/exiv2-utils.cpp:910 -#: extensions/exiv2_tools/exiv2-utils.cpp:1441 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Ogiltigt filformat" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1066,20 +1088,24 @@ #: extensions/gstreamer_tools/dlg-media-viewer-preferences.c:75 #: extensions/importer/gth-import-preferences-dialog.c:417 #: extensions/photo_importer/dlg-photo-importer-preferences.c:78 +#: extensions/terminal/dlg-terminal-preferences.c:83 #: gthumb/dlg-preferences-extensions.c:483 msgid "Preferences" msgstr "Inställningar" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" msgstr "Kommentar" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:62 msgid "Title" msgstr "Titel" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1089,21 +1115,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:64 msgid "Description" msgstr "Beskrivning" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:63 msgid "Place" msgstr "Plats" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" msgstr "Datum och tid för kommentar" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:390 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Betyg" @@ -1117,7 +1143,7 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Kontaktark" @@ -1129,9 +1155,9 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Ingen" @@ -1203,7 +1229,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1218,7 +1244,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1226,7 +1252,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" msgstr "Text:" @@ -1381,13 +1407,13 @@ msgid "Thumbnails" msgstr "Miniatyrbilder" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Kunde inte spara temat" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Kunde inte ta bort temat" @@ -1395,11 +1421,11 @@ msgid "Image Wall" msgstr "Bildvägg" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" msgstr "Skapar bilder" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Genererar miniatyrbilder" @@ -1462,7 +1488,7 @@ msgstr "Kunde inte visa egenskaperna för skrivbordsbakgrunden" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "_Inställningar" @@ -1506,6 +1532,14 @@ msgstr "Om du tar bort metadata förloras den för alltid." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Redigera kommentar" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Redigera taggar" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Ta bort metadata" @@ -1536,8 +1570,8 @@ msgid "Could not save the file metadata" msgstr "Kunde inte spara filens metadata" -#: extensions/edit_metadata/dlg-edit-metadata.c:227 -#: gthumb/gth-overwrite-dialog.c:139 +#: extensions/edit_metadata/dlg-edit-metadata.c:230 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Kan inte läsa filinformation" @@ -1549,27 +1583,7 @@ msgid "Allow to edit files metadata." msgstr "Tillåt att redigera metadata för filer." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "%s-metadata" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d fil" -msgstr[1] "%d filer" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "S_para och stäng" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Spara endast än_drade fält" @@ -1598,16 +1612,6 @@ msgid "Do not modify" msgstr "Ändra inte" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "Taggar för %s" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Tilldela taggar" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1670,11 +1674,12 @@ msgid "State/Province:" msgstr "Stat/Område:" -#: extensions/exiv2_tools/exiv2-utils.cpp:42 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2053 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(ogiltigt värde)" -#: extensions/exiv2_tools/exiv2-utils.cpp:708 +#: extensions/exiv2_tools/exiv2-utils.cpp:713 msgid "Exposure" msgstr "Exponering" @@ -1735,8 +1740,8 @@ msgstr "datum då fotot togs" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Exportera" +msgid "_Export To" +msgstr "_Exportera till" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1877,7 +1882,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1918,13 +1923,13 @@ msgid "Uploading “%s”" msgstr "Skickar upp ”%s”" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Skickar upp filerna till servern" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1947,14 +1952,21 @@ msgstr "Ange mappnamnet:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:265 -#: extensions/file_manager/callbacks.c:815 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "Kunde inte genomföra åtgärden" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Kunde inte flytta filerna" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:266 -#: extensions/file_manager/callbacks.c:816 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1962,117 +1974,124 @@ "Filer kan inte flyttas till nuvarande plats, som ett alternativ kan du välja " "att kopiera dem." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Kopiera" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Flytta till" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Kopiera till" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Flytta" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Kunde inte öppna platsen" -#: extensions/file_manager/callbacks.c:69 -#: extensions/file_manager/callbacks.c:98 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Klipp ut" -#: extensions/file_manager/callbacks.c:71 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Klistra in" -#: extensions/file_manager/callbacks.c:76 -#: extensions/file_manager/callbacks.c:106 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Kopiera till…" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Flytta till…" -#: extensions/file_manager/callbacks.c:83 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Flytta till papperskorgen" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Ta bort" -#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Öppna med filhanteraren" -#: extensions/file_manager/callbacks.c:93 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Skapa mapp" -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Klistra in i mapp" -#: extensions/file_manager/callbacks.c:114 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Dubbletter" -#: extensions/file_manager/callbacks.c:530 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Ta bort permanent" + +# TODO: GIMP +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "Öppna med GIMP" + +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:226 msgid "Home Folder" msgstr "Hemmapp" -#: extensions/file_manager/callbacks.c:537 -#: extensions/file_manager/callbacks.c:540 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "Öppna _med" -#: extensions/file_manager/callbacks.c:783 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "Vill du flytta ”%s” till ”%s”?" -#: extensions/file_manager/callbacks.c:785 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "Vill du kopiera ”%s” till ”%s”?" -#: extensions/file_manager/callbacks.c:790 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Vill du flytta de dragna filerna till ”%s”?" -#: extensions/file_manager/callbacks.c:792 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Vill du kopiera de dragna filerna till ”%s”?" -#: extensions/file_manager/callbacks.c:800 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "_Kopiera" -#: extensions/file_manager/callbacks.c:981 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5583 gthumb/gth-browser.c:5619 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "Kunde inte genomföra åtgärden" - #: extensions/file_manager/file_manager.extension.desktop.in.in:3 msgid "File manager" msgstr "Filhanterare" @@ -2085,6 +2104,40 @@ msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Justera kontrast" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Vänd" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Spegla" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Rotera åt höger" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Rotera åt vänster" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Beskär" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Ändra storlek" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2147,9 +2200,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Alternativ" @@ -2186,7 +2239,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:405 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "Proportioner" @@ -2224,7 +2277,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:48 msgid "Dimensions" msgstr "Dimensioner" @@ -2384,17 +2437,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2441,11 +2494,11 @@ msgid "Equalize the histogram using the linear function" msgstr "Histogramutjämna med den linjära funktionen" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" msgstr "Justera kontrasten" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" msgstr "Automatisk kontrastjustering" @@ -2458,74 +2511,74 @@ msgstr "Välj en färg från bilden" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Kvadratiskt" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d × %d (bild)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d × %d (skärm)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (dvd, bok)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (vykort)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1.85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2.39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2548,10 +2601,6 @@ msgid "Center Lines" msgstr "Centrera linjer" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Beskär" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Lägg till i förinställningar" @@ -2562,8 +2611,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1592 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Kunde inte spara filen" @@ -2579,70 +2628,66 @@ msgid "Adjust color curves" msgstr "Justera färgkurvor" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Specialeffekter" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Varmare" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Kallare" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Jord" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Öken" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Arktisk" # to-do #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mango" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Fräsch blå" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Körsbär" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Vintage" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Suddiga kanter" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Vinjettering" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Vänd" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Vänd bilden vertikalt" @@ -2659,7 +2704,7 @@ msgid "_Average" msgstr "_Medel" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Gråskala" @@ -2667,10 +2712,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Spegla" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Spegla bilden horisontellt" @@ -2684,19 +2725,15 @@ msgstr "Gör om" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" msgstr "Ändrar storlek på bild" -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Ändra storlek" - #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Rotera åt vänster" @@ -2705,8 +2742,8 @@ msgstr "Rotera bilden 90 grader motsols" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Rotera åt höger" @@ -2719,12 +2756,12 @@ msgstr "Rotera" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Spara som…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Spara" @@ -2780,7 +2817,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Starta _från:" @@ -2795,7 +2832,7 @@ msgstr "Hitta dubbletter" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Sök" @@ -2914,10 +2951,18 @@ msgstr "Dö_lj från offentliga sökningar" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "_Öppna i bläddraren" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d fil" +msgstr[1] "%d filer" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2931,7 +2976,7 @@ msgstr "Inget album har markerats" #: extensions/flicker_utils/dlg-import-from-flickr.c:521 -#: extensions/photo_importer/dlg-photo-importer.c:582 +#: extensions/photo_importer/dlg-photo-importer.c:584 #: extensions/picasaweb/dlg-import-from-picasaweb.c:556 msgid "_Import" msgstr "_Importera" @@ -3002,6 +3047,14 @@ msgid "Could not take a screenshot" msgstr "Kunde inte ta en skärmbild" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Skärmbild" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Spela/Pausa" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Använd hårdvaruacceleration" @@ -3011,8 +3064,8 @@ msgstr "Plats för _skärmbilder:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1138 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Spela upp" @@ -3048,66 +3101,76 @@ msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Spela upp video" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Paus" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Ta en skärmbild" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:313 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Anpassa till fönster" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Ljud/videospelare" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Video" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:320 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Ljud" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Artist" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Album" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Bitfrekvens" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Kodare" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Kodek" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Bildfrekvens" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Bredd" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Höjd" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Kanaler" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Samplingsfrekvens" @@ -3121,10 +3184,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1825 -#: extensions/image_viewer/gth-metadata-provider-image.c:253 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 +#: extensions/image_viewer/gth-metadata-provider-image.c:258 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:893 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:945 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3133,7 +3196,8 @@ msgid "Could not print the selected files" msgstr "Kunde inte skriva ut markerade filer" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Skriv ut" @@ -3191,19 +3255,19 @@ msgid "inches" msgstr "tum" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Typsnitt" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Välj ett typsnitt för rubrik" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Välj ett typsnitt för sidhuvud" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Välj ett typsnitt för sidfot" @@ -3225,7 +3289,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Ingen passande inläsare tillgänglig för denna filtyp" @@ -3236,7 +3300,7 @@ msgstr "Läser in ”%s”" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Läser in bilder" @@ -3252,18 +3316,18 @@ msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Rotera fysiskt" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" msgstr "Nollställ Exif-orientering" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Sparar bilder" @@ -3312,77 +3376,200 @@ msgid "_Accept distortion" msgstr "_Acceptera distorsion" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Zooma in" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Zooma ut" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "Zooma 100%" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "Zooma 200%" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "Zooma 300%" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Zooma för att passa" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Zooma för att passa om större" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Zooma för att passa bredd" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Zooma för att passa bredd om större" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Zooma för att passa höjd" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Zooma för att passa höjd om större" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Ångra redigering" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Gör om redigering" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Rulla åt vänster" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Rulla åt höger" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Rulla uppåt" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Rulla nedåt" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Rulla snabbt åt vänster" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Rulla snabbt åt höger" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Rulla snabbt uppåt" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Rulla snabbt nedåt" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Rulla till centrum" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" msgstr "Efter inläsning av en bild:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1095 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Ställ in till faktisk storlek" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Behåll föregående zoom" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Anpassa till fönster" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1102 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Anpassa till fönster om större" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Anpassa till bredd" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Anpassa till bredd om större" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Återställ rullningslistens positioner" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Mushjulsåtgärd:" + +# TODO: context should be 'mouse wheel action' +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Ändra bild" + +# TODO: context should be 'mouse wheel action' +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Zooma bild" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Zoomkvalitet:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Hög" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Låg" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Transparens:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "Rutig" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Vit" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Grå" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Svart" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Automatisk" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Anpassa till höjd" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "50%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "100%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "200%" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "300%" @@ -3390,31 +3577,44 @@ msgid "Histogram" msgstr "Histogram" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Kopiera bild" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Klistra in bild" -#: extensions/image_viewer/gth-image-viewer-page.c:1130 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Tillämpa den inbäddade färgprofilen" -#: extensions/image_viewer/gth-image-viewer-page.c:1145 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Nästa bildruta" -#: extensions/image_viewer/gth-image-viewer-page.c:1764 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Transparens" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Spara bild" -#: extensions/image_viewer/gth-image-viewer-page.c:2373 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" msgstr "Läser in den ursprungliga bilden" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Rulla bild" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Bildredigerare" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Visare" @@ -3486,38 +3686,38 @@ msgid "custom format" msgstr "anpassat format" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Importerar filer" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "Ingen fil importerades" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "De markerade filerna finns redan i destinationen." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:669 msgid "Could not delete the files" msgstr "Kunde inte ta bort filerna" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Åtgärden ta bort stöds ej." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Senast importerad" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Ingen fil angiven." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3526,7 +3726,8 @@ "Inte tillräckligt med fritt utrymme i ”%s”.\n" "%s utrymme krävs men endast %s finns tillgängligt." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Verktyg" @@ -3548,7 +3749,7 @@ #: extensions/list_tools/data/ui/script-editor.ui:101 msgid "Sh_ortcut:" -msgstr "Genvä_g:" +msgstr "K_ortkommando:" #: extensions/list_tools/data/ui/script-editor.ui:232 msgid "The file uri" @@ -3614,49 +3815,53 @@ msgid "Quote the text " msgstr "Citera texten " -#: extensions/list_tools/data/ui/script-editor.ui:534 +#: extensions/list_tools/data/ui/script-editor.ui:522 +msgid "The current date and time" +msgstr "Aktuellt datum och tid" + +#: extensions/list_tools/data/ui/script-editor.ui:568 msgid "_Command:" msgstr "_Kommando:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Personalisera…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Skript" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" -msgstr "Genväg" +msgstr "Kortkommando" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Visa" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Kunde inte spara skriptet" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Nytt kommando" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Redigera kommando" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Är du säker på att du vill ta bort det valda kommandot?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Kommandon" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Inget kommando angavs" @@ -3666,18 +3871,18 @@ msgid "Command exited abnormally with status %d" msgstr "Kommandot avslutades onormalt med status %d" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" msgstr "Ange ett värde:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:753 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Felformulerat kommando" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:808 msgid "_Skip" msgstr "_Hoppa över" @@ -3727,7 +3932,7 @@ msgstr "K_onton:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Läser in…" @@ -3764,7 +3969,7 @@ msgstr "Hämtar kontoinformation" #: extensions/photo_importer/actions.c:71 -#: extensions/photo_importer/dlg-photo-importer.c:626 +#: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" msgstr "Välj en mapp" @@ -3828,11 +4033,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Tom)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Hämta mappinnehållet…" @@ -3840,11 +4045,11 @@ msgid "Empty" msgstr "Tom" -#: extensions/photo_importer/dlg-photo-importer.c:592 +#: extensions/photo_importer/dlg-photo-importer.c:594 msgid "Import from Removable Device" msgstr "Importera från flyttbar enhet" -#: extensions/photo_importer/dlg-photo-importer.c:624 +#: extensions/photo_importer/dlg-photo-importer.c:626 msgid "Import from Folder" msgstr "Importera från mapp" @@ -3960,6 +4165,7 @@ msgstr "Skiftläg_e:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Hjälp" @@ -4056,28 +4262,28 @@ msgid "Edit Template" msgstr "Redigera mall" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" msgstr "_Byt namn" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" msgstr "Gammalt namn" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" msgstr "Nytt namn" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Behåll ursprungligt skiftläge" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Konvertera till gemener" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Konvertera till versaler" @@ -4114,15 +4320,15 @@ msgstr "_Bevara ursprungliga proportioner" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:47 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Format" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Ändra storlek på bilder" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Behåll ursprungligt format" @@ -4134,8 +4340,8 @@ msgid "Resize series of images." msgstr "Ändra storlek på en serie bilder." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Kunde inte genomföra sökningen" @@ -4143,48 +4349,48 @@ msgid "Search Result" msgstr "Sökresultat" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Sök" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" msgstr "Sök filer" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" msgstr "Sök igen" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Sök" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Regler:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "alla följande regler" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "någon av följande regler" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Lägg till en annan plats" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Filer hittade hittills: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Söker…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "Avbryt åtgärden" @@ -4196,29 +4402,46 @@ msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Lägg till i urval" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Ta bort från urval" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Visa urval" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Ta bort från urval" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" -msgstr "Visa urvalet %d" +msgstr "Visa urval %d" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." msgstr "" -"Använd Alt-%d för att lägga till filer till detta val, Ctrl-%d för att visa " -"detta val." +"Använd Alt-%d för att lägga till filer till detta urval, Ctrl-%d för att " +"visa detta urval." #: extensions/selections/gth-selections-manager.c:228 #, c-format msgid "Selection %d" -msgstr "Valet %d" +msgstr "Urval %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Val" @@ -4231,52 +4454,69 @@ msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Presentation" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Starta presentation" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Avsluta presentation" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Pausa/Återuppta presentation" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Visa nästa fil" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Visa föregående fil" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Bildspel" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Presentation" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Personalisera" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "Öv_ergångseffekt:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "_Byt automatiskt var" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "sekund" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" msgstr "Starta _om när slutet nås" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "S_lumpmässig ordning" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Spellista" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Lägg till filer till spellistan" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Ta bort markerade filer" @@ -4292,50 +4532,67 @@ msgid "Random" msgstr "Slumpmässig" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Spelar bildspel" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "Spelar en presentation" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Tryck från högerkant" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Tryck från nederkant" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Glid från högerkant" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Glid från nederkant" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" msgstr "Tona in" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Vänd på sida" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Kub från högerkant" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Kub från nederkant" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Visa bilder som ett bildspel." +msgid "Play a presentation of images." +msgstr "Spela upp en presentation bestående av bilder." #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" +#: extensions/terminal/actions.c:53 +#: extensions/terminal/terminal.extension.desktop.in.in:3 +msgid "Terminal" +msgstr "Terminal" + +#: extensions/terminal/callbacks.c:40 extensions/terminal/callbacks.c:45 +msgid "Open in Terminal" +msgstr "Öppna i terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:4 +msgid "Open a folder in a terminal" +msgstr "Öppna en mapp i en terminal" + +#: extensions/terminal/terminal.extension.desktop.in.in:8 +msgid "utilities-terminal" +msgstr "utilities-terminal" + #: extensions/webalbums/callbacks.c:48 msgid "_Web Album…" msgstr "_Webbalbum…" @@ -4357,14 +4614,6 @@ msgid "Index" msgstr "Index" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Nästa" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Föregående" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" @@ -4448,36 +4697,36 @@ msgid "Web Album" msgstr "Webbalbum" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Kunde inte visa målplatsen" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." msgstr "Albumet har skapats." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Sparar miniatyrbilder" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "Sparar HTML-sidor: Bilder" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "Sparar HTML-sidor: Index" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Kopierar ursprungliga bilder" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Kunde inte hitta stilmappen" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Kunde inte skapa temporär mapp" @@ -4489,9 +4738,9 @@ msgid "Create static web albums." msgstr "Skapa statiska webbalbum." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6582 -#: gthumb/gth-browser.c:6601 gthumb/gth-browser.c:6625 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "Kunde inte läsa in positionen ”%s”" @@ -4522,18 +4771,22 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Bläddrare" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" msgstr "Alla" #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "Aktiverade" #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "Inaktiverade" @@ -4571,65 +4824,97 @@ msgstr "Kunde inte inaktivera tillägget" #: gthumb/dlg-preferences-extensions.c:491 -msgid "gthumb development team" -msgstr "gthumbs utvecklingsgrupp" +msgid "gThumb Development Team" +msgstr "gThumbs utvecklingsgrupp" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Tillägg" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Omstart krävs" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "Du behöver starta om gthumb för att dessa ändringar ska bli aktiva" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "Starta _om" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Återställ" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "Vill du återställa alla ändringar och använda standardkortkommandona?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Alla" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Ändrade" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Kortkommandon" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Sortera efter" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s av %s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "Flyttar ”%s” till ”%s”" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "Kopierar ”%s” till ”%s”" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Flyttar filer" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Kopierar filer" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Hämtar filinformation" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Tar bort filer" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Flyttar filer till papperskorgen" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2029 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4641,17 +4926,17 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2038 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." -msgstr "Tryck ned en kombination av tangenter att använda som genväg." +msgstr "Tryck ned en kombination av tangenter att använda som kortkommando." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "Tryck ned Esc för att avbryta" @@ -4664,8 +4949,8 @@ msgstr "Starta i helskärmsläge" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Starta ett bildspel automatiskt" +msgid "Automatically start a presentation" +msgstr "Starta en presentation automatiskt" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4675,11 +4960,11 @@ msgid "Show version" msgstr "Visa version" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Bildbläddrare och bildvisare" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4690,7 +4975,7 @@ "under villkoren i GNU General Public License, publicerad av Free Software " "Foundation; antingen version 2 eller (om du så vill) någon senare version." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4702,7 +4987,7 @@ "LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL. Se GNU General Public License för " "ytterligare information." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4710,124 +4995,202 @@ "Du bör ha fått en kopia av GNU General Public License tillsammans med " "gThumb. Om inte, se http://www.gnu.org/licenses/." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." msgstr "En bildvisare och bläddrare för GNOME." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Daniel Nylander \n" "Christian Rose\n" "Bo Rosén\n" "Josef Andersson \n" +"Anders Jonsson \n" "\n" "Skicka synpunkter på översättningen till\n" "." -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Nytt fönster" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Tangentbordsgenvägar" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "_Hjälp" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Avsluta" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Visa bläddrare" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Stäng fönster" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Öppna plats" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Helskärm" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "_Om gThumb" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Återställ bild till sparad" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Sidopanel" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Statusrad" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Miniatyrbildslista" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Läs in föregående plats" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Läs in nästa plats" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Läs in överordnad mapp" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Läs in hem" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Uppdatera plats" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Visa/dölj dolda filer" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Ändra sorteringsordning" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "Visa första filen" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Visa sista filen" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Bildverktyg" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Filegenskaper" + +# file-list-select-all +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Markera alla" + +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "Markera ingen" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[ändrad]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d fil markerad (%s)" msgstr[1] "%d filer markerade (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s ledigt utrymme" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "Ingen lämplig modul hittades för %s" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Spara ändringar i filen ”%s”?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "" "Om du inte sparar kommer ändringarna i filen att gå förlorade för alltid." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "Spara _inte" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4624 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Acceptera" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Stäng" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Kunde inte ändra namnet" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Ändrad" -#: gthumb/gth-browser.c:4546 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Gå till föregående besökta plats" -#: gthumb/gth-browser.c:4552 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Gå till nästa besökta plats" -#: gthumb/gth-browser.c:4560 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Historik" -#: gthumb/gth-browser.c:4574 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Visa mapparna" -#: gthumb/gth-browser.c:4589 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Redigera fil" -#: gthumb/gth-browser.c:4598 gthumb/gth-browser.c:4616 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Helskärm" - -#: gthumb/gth-browser.c:6583 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Filtypen stöds inte" -#: gthumb/gth-browser.c:6626 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Ingen lämplig modul hittades" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Tar bort filer" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4846,27 +5209,27 @@ msgid "_Show Format Options" msgstr "_Visa formatalternativ" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:219 msgid "Computer" msgstr "Dator" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:773 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "" "Filerna kan inte flyttas till papperskorgen. Vill du ta bort dem permanent?" -#: gthumb/gth-file-source-vfs.c:795 +#: gthumb/gth-file-source-vfs.c:784 msgid "Could not move the files to the Trash" msgstr "Kunde inte flytta filerna till papperskorgen" -#: gthumb/gth-file-source-vfs.c:840 +#: gthumb/gth-file-source-vfs.c:829 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "Är du säker på att du vill permanent ta bort ”%s”?" -#: gthumb/gth-file-source-vfs.c:843 +#: gthumb/gth-file-source-vfs.c:832 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4876,7 +5239,7 @@ msgstr[1] "" "Är du säker på att du vill ta bort de %'d markerade filerna permanent?" -#: gthumb/gth-file-source-vfs.c:853 +#: gthumb/gth-file-source-vfs.c:842 msgid "If you delete a file, it will be permanently lost." msgstr "Om du tar bort en fil så kommer den förloras för alltid." @@ -4913,11 +5276,15 @@ msgid "No limit specified" msgstr "Ingen gräns specificerad" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Alla" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Öppna överordnad)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Ange det nya namnet:" @@ -4947,72 +5314,88 @@ msgid "Reading file information" msgstr "Läser filinformation" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:350 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Dolda filer" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:46 +msgid "Location" +msgstr "Plats" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Platser" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Annat…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Storlek" #: gthumb/gth-main-default-metadata.c:41 -msgctxt "the file mtime" +msgid "Bytes" +msgstr "Byte" + +#. Translators: the file modified time. +#: gthumb/gth-main-default-metadata.c:43 msgid "Modified Date & Time" msgstr "Datum och tid för ändring" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:44 msgid "Type" msgstr "Typ" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Plats" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:49 msgid "Duration" msgstr "Längd" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:51 msgid "Exposure Settings" msgstr "Exponeringsinställningar" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:52 msgid "Aperture" msgstr "Bländare" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:53 msgid "ISO Speed" msgstr "ISO-hastighet" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:54 msgid "Exposure Time" msgstr "Exponeringstid" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:55 msgid "Shutter Speed" msgstr "Slutarhastighet" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:56 msgid "Focal Length" msgstr "Brännvidd" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:57 msgid "Flash" msgstr "Blixt" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:58 msgid "Camera Model" msgstr "Kameramodell" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:59 msgid "Color Profile" msgstr "Färgprofil" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:61 msgid "General Date & Time" msgstr "Allmän datum och tid" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:68 msgid "Author" msgstr "Upphovsman" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:69 msgid "Copyright" msgstr "Upphovsrätt" @@ -5044,43 +5427,55 @@ msgid "aspect ratio" msgstr "proportioner" -#: gthumb/gth-main-default-tests.c:285 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Alla filer" -#: gthumb/gth-main-default-tests.c:292 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Alla bilder" -#: gthumb/gth-main-default-tests.c:299 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "JPEG-bilder" -#: gthumb/gth-main-default-tests.c:306 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "Raw-foton" -#: gthumb/gth-main-default-tests.c:327 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Media" -#: gthumb/gth-main-default-tests.c:334 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Textfiler" -#: gthumb/gth-main-default-tests.c:342 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" msgstr "Filnamn" -#: gthumb/gth-main-default-tests.c:374 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Titel (inbäddad)" -#: gthumb/gth-main-default-tests.c:382 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Beskrivning (inbäddad)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Visa/Dölj" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Navigering" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Filhanterare" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Skriv över" @@ -5176,8 +5571,8 @@ msgstr "är mindre än eller lika med" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "Testdefinitionen är inte komplett" @@ -5248,31 +5643,54 @@ msgid "Rotation" msgstr "Rotation" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Flyttar filer till papperskorgen" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"Tangentkombinationen ”%s” är redan tilldelad åtgärden ”%s”. Vill du överföra " +"den till denna åtgärd istället?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Överför" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "" +"Tangentkombinationen ”%s” är redan tilldelad åtgärden ”%s” och kan inte " +"ändras." -#: gthumb/gtk-utils.c:338 +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "Tangentkombinationen ”%s” är redan tilldelad och kan inte ändras." + +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Kunde inte visa hjälp" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:712 gthumb/gtk-utils.c:719 msgid "Could not launch the application" msgstr "Kunde inte starta programmet" -#: gthumb/gtk-utils.c:770 +#: gthumb/gtk-utils.c:822 msgid "_Copy Here" msgstr "_Kopiera hit" -#: gthumb/gtk-utils.c:775 +#: gthumb/gtk-utils.c:827 msgid "_Move Here" msgstr "_Flytta hit" -#: gthumb/gtk-utils.c:780 +#: gthumb/gtk-utils.c:832 msgid "_Link Here" msgstr "_Länka hit" -#: gthumb/gtk-utils.c:789 +#: gthumb/gtk-utils.c:841 msgid "Cancel" msgstr "Avbryt" @@ -5280,6 +5698,10 @@ msgid "_Cancel" msgstr "_Avbryt" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "_Hjälp" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Ny" @@ -5304,46 +5726,62 @@ msgid "_Upload" msgstr "Skicka _upp" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Nytt _fönster" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_Om" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Avsluta" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Öppna i nytt fönster" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Nytt fönster" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Öppna plats…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Återställ" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Sortera efter…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Dolda filer" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "_Om gThumb" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "_Ta bort historik" +#~ msgid "%s Metadata" +#~ msgstr "%s-metadata" + +#~ msgid "%s Tags" +#~ msgstr "Taggar för %s" + +#~ msgid "Assign Tags" +#~ msgstr "Tilldela taggar" + +#~ msgid "A_dd and Close" +#~ msgstr "Lägg _till och stäng" + +#~ msgid "Sa_ve and Close" +#~ msgstr "S_para och stäng" + +#~ msgid "gthumb" +#~ msgstr "gthumb" + +#~ msgid "Choose startup folder" +#~ msgstr "Välj uppstartsmapp" + +#~ msgid "Slideshow" +#~ msgstr "Bildspel" + +#~ msgid "Playing slideshow" +#~ msgstr "Spelar bildspel" + +#~ msgid "View images as a slideshow." +#~ msgstr "Visa bilder som ett bildspel." + +#~ msgid "New _Window" +#~ msgstr "Nytt _fönster" + +#~ msgid "_About" +#~ msgstr "_Om" + #~ msgid "" #~ "The geographical position information is not available for this image." #~ msgstr "" @@ -5476,9 +5914,6 @@ #~ msgid "Could not move the folder to the Trash" #~ msgstr "Kunde inte flytta mappen till papperskorgen" -#~ msgid "Image tools" -#~ msgstr "Bildverktyg" - #~ msgid "Image viewer" #~ msgstr "Bildvisare" diff -Nru gthumb-3.8.3/po/tr.po gthumb-3.9.1/po/tr.po --- gthumb-3.8.3/po/tr.po 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/po/tr.po 2020-03-07 19:03:13.616952400 +0000 @@ -7,15 +7,16 @@ # Simge Sezgin , 2015 # Rıdvan Can , 2015. # Serdar Sağlam , 2019. -# Sabri Ünal , 2019. +# Sabri Ünal , 2019-2020. +# Emin Tufan Çetin , 2020. # msgid "" msgstr "" "Project-Id-Version: gthumb\n" "Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gthumb/issues\n" -"POT-Creation-Date: 2019-08-18 18:56+0000\n" -"PO-Revision-Date: 2019-08-23 15:28+0300\n" -"Last-Translator: Sabri Ünal \n" +"POT-Creation-Date: 2020-02-17 13:44+0000\n" +"PO-Revision-Date: 2020-02-19 16:27+0300\n" +"Last-Translator: Emin Tufan Çetin \n" "Language-Team: Turkish \n" "Language: tr\n" "MIME-Version: 1.0\n" @@ -27,20 +28,20 @@ #: data/appdata/org.gnome.gThumb.appdata.xml.in:8 msgid "gThumb Image Viewer" -msgstr "gThumb Resim Gösterici" +msgstr "gThumb Resim Görüntüleyici" #: data/appdata/org.gnome.gThumb.appdata.xml.in:9 #: data/org.gnome.gThumb.desktop.in.in:6 msgid "View and organize your images" -msgstr "Resimleri düzenle ve göster" +msgstr "Resimleri düzenle ve görüntüle" #: data/appdata/org.gnome.gThumb.appdata.xml.in:11 msgid "" "gThumb is an image viewer, editor, browser and organizer. It is designed to " "be well integrated with the GNOME 3 desktop." msgstr "" -"gThumb bir resim görüntüleyici, editörü, tarayıcı ve düzenleyicisidir. GNOME " -"3 masaüstü ile entegre olacak şekilde tasarlanmıştır." +"gThumb resim görüntüleyici, düzenleyici, tarayıcı ve sıralayıcısıdır. GNOME " +"3 masaüstüyle tümleşecek biçimde tasarlanmıştır." #: data/appdata/org.gnome.gThumb.appdata.xml.in:15 msgid "" @@ -49,7 +50,7 @@ "is also possible to view various metadata types embedded inside an image " "such as EXIF, IPTC and XMP." msgstr "" -"Bir resim görüntüleyici olarak gThumb, BMP, JPEG, GIF (animasyon içerir), " +"Resim görüntüleyici olarak gThumb, BMP, JPEG, GIF (animasyon içerir), " "PNG, TIFF, TGA ve RAW resimleri gibi ortak resim dosyası formatlarının " "görüntülenmesine izin verir. Ayrıca resim içerisine gömülü, EXIF, IPTC ve " "XMP gibi çeşitli meta türlerini görüntülemesi de mümkündür." @@ -60,9 +61,9 @@ "change the saturation, lightness, contrast as well as other color " "transformations." msgstr "" -"Bir resim düzenleyicisi olarak gThumb resimlerinizi ölçeklemenize, " -"döndürmenize ve kırpmanıza ayrıca diğer renk dönüşümlerinin yanısıra " -"doygunluk, aydınlık, kontrast ayarlarını değiştirmenize olanak sağlar." +"Resim düzenleyicisi olarak gThumb resimlerinizi ölçeklemenize, döndürmenize " +"ve kırpmanıza ayrıca diğer renk dönüşümlerinin yanısıra doygunluk, aydınlık, " +"karşıtlık ayarlarını değiştirmenize olanak sağlar." #: data/appdata/org.gnome.gThumb.appdata.xml.in:27 msgid "" @@ -73,7 +74,7 @@ "format conversion; slideshow; setting an image as desktop background and " "several others." msgstr "" -"Bir resim tarayıcısı olarak gThumb diskinizde kaydedilmiş resimlerin küçük " +"Resim tarayıcısı olarak gThumb diskinizde kaydedilmiş resimlerin küçük " "örneklerini gösterir, kopyalama, taşıma, dosya ve klasör silme gibi ortak " "dosya yönetimi işlemlerini gerçekleştirmenize izin verir. Ayrıca bir dizi " "özel resim araçları vardır, örneğin JPEG kayıpsız dönüşümleri; resmi yeniden " @@ -86,9 +87,9 @@ "images; organize images in catalogs and catalogs in libraries; search for " "images and save the result as a catalog." msgstr "" -"Resim düzenleyici olarak gThumb resimlere açıklama ve diğer metaları " +"Resim düzenleyici olarak gThumb resimlere açıklama ve diğer üstverileri " "eklemenize; katalog içindeki resimleri ve kütüphanelerdeki katalogları " -"düzenlemenize; resim aramanıza ve bir katalog olarak sonuçları kaydetmenize " +"düzenlemenize; resim aramanıza ve katalog olarak sonuçları kaydetmenize " "olanak sağlar." #: data/gschemas/org.gnome.gthumb.gschema.xml:78 @@ -96,7 +97,7 @@ "Images over this size (in bytes) will not be thumbnailed. Use 0 if you want " "to generate thumbnails for all images." msgstr "" -"Bu büyüklüğün(byte) üstündeki resimlerin küçük resmi olmayacaktır. Bütün " +"Bu büyüklüğün (byte) üstündeki resimlerin küçük resmi olmayacaktır. Tüm " "resimlerin küçük resminin olmasını isterseniz 0 kullanın." #: data/gschemas/org.gnome.gthumb.gschema.xml:133 @@ -138,11 +139,11 @@ #. manually set name and icon #: data/org.gnome.gThumb.desktop.in.in:3 gthumb/gth-application.c:106 -#: gthumb/gth-browser.c:396 gthumb/gth-progress-dialog.c:413 +#: gthumb/gth-browser.c:423 gthumb/gth-progress-dialog.c:413 msgid "gThumb" msgstr "gThumb" -#: data/org.gnome.gThumb.desktop.in.in:4 +#: data/org.gnome.gThumb.desktop.in.in:4 extensions/image_viewer/main.c:35 msgid "Image Viewer" msgstr "Resim Görüntüleyici" @@ -157,71 +158,72 @@ msgid "Caption" msgstr "Başlık" -#: data/ui/browser-preferences.ui:72 +#: data/ui/browser-preferences.ui:66 msgid "Behavior" msgstr "Davranış" -#: data/ui/browser-preferences.ui:94 +#: data/ui/browser-preferences.ui:88 msgid "_Single click to open files" -msgstr "Ögeleri açmak için _bir kere tıklayın" +msgstr "Ögeleri açmak için _bir kez tıklayın" -#: data/ui/browser-preferences.ui:111 +#: data/ui/browser-preferences.ui:104 msgid "_Double click to open files" msgstr "Ögeleri açmak için _çift tıklayın" -#: data/ui/browser-preferences.ui:129 +#: data/ui/browser-preferences.ui:121 msgid "_Open files in fullscreen mode" msgstr "_Dosyaları tam ekran kipinde aç" -#: data/ui/browser-preferences.ui:167 data/ui/preferences.ui:364 +#: data/ui/browser-preferences.ui:158 data/ui/preferences.ui:336 #: extensions/exiv2_tools/gth-edit-iptc-page.c:199 -#: extensions/gstreamer_tools/main.c:34 +#: extensions/gstreamer_tools/main.c:41 gthumb/dlg-preferences-shortcuts.c:333 +#: gthumb/gth-shortcuts-window.c:96 msgid "Other" msgstr "Diğer" -#: data/ui/browser-preferences.ui:200 +#: data/ui/browser-preferences.ui:187 msgid "Thumbnail _size:" msgstr "Küçük resim _boyutu:" -#: data/ui/browser-preferences.ui:219 +#: data/ui/browser-preferences.ui:206 msgid "48" msgstr "48" -#: data/ui/browser-preferences.ui:220 +#: data/ui/browser-preferences.ui:207 msgid "64" msgstr "64" -#: data/ui/browser-preferences.ui:221 +#: data/ui/browser-preferences.ui:208 msgid "85" msgstr "85" -#: data/ui/browser-preferences.ui:222 +#: data/ui/browser-preferences.ui:209 msgid "95" msgstr "95" -#: data/ui/browser-preferences.ui:223 +#: data/ui/browser-preferences.ui:210 msgid "112" msgstr "112" -#: data/ui/browser-preferences.ui:224 +#: data/ui/browser-preferences.ui:211 msgid "128" msgstr "128" -#: data/ui/browser-preferences.ui:225 +#: data/ui/browser-preferences.ui:212 msgid "164" msgstr "164" -#: data/ui/browser-preferences.ui:226 +#: data/ui/browser-preferences.ui:213 msgid "200" msgstr "200" -#: data/ui/browser-preferences.ui:227 +#: data/ui/browser-preferences.ui:214 msgid "256" msgstr "256" -#: data/ui/browser-preferences.ui:252 +#: data/ui/browser-preferences.ui:239 msgid "D_etermine image type from content (slower)" -msgstr "İç_erikten şekil türüne karar ver (daha yavaş)" +msgstr "İç_erikten resim türüne karar ver (daha yavaş)" #: data/ui/extensions-preferences.ui:40 msgid "_Extensions:" @@ -231,20 +233,34 @@ msgid "More extensions…" msgstr "Daha fazla uzantı…" +#: data/ui/file-selection-info.ui:33 +#: extensions/webalbums/data/albumthemes/text.h:32 +msgid "Previous" +msgstr "Önceki" + +#: data/ui/file-selection-info.ui:71 +#: extensions/webalbums/data/albumthemes/text.h:30 +msgid "Next" +msgstr "Sonraki" + #: data/ui/filter-editor.ui:20 msgid "Filter _Name:" msgstr "Süzgeç _Adı:" -#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:76 +#: data/ui/filter-editor.ui:61 extensions/search/data/ui/search-editor.ui:21 msgid "_Match:" msgstr "_Eşleştir:" +#: data/ui/filter-editor.ui:106 extensions/search/data/ui/search-editor.ui:95 +msgid "Rules:" +msgstr "Kurallar:" + #. limit label -#: data/ui/filter-editor.ui:153 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 +#: data/ui/filter-editor.ui:164 gthumb/gth-filter.c:270 gthumb/gth-filter.c:338 msgid "_Limit to" msgstr "_Sınırla" -#: data/ui/filter-editor.ui:229 +#: data/ui/filter-editor.ui:241 msgid "selected by" msgstr "tarafından seçilen" @@ -290,40 +306,40 @@ msgid "Old File:" msgstr "Eski Dosya:" -#: data/ui/overwrite-dialog.ui:144 data/ui/overwrite-dialog.ui:312 +#: data/ui/overwrite-dialog.ui:145 data/ui/overwrite-dialog.ui:314 msgid "Filename:" msgstr "Dosya adı:" -#: data/ui/overwrite-dialog.ui:159 data/ui/overwrite-dialog.ui:327 +#: data/ui/overwrite-dialog.ui:160 data/ui/overwrite-dialog.ui:329 #: extensions/image_print/data/ui/print-layout.ui:705 msgid "Size:" msgstr "Boyut:" -#: data/ui/overwrite-dialog.ui:176 data/ui/overwrite-dialog.ui:344 +#: data/ui/overwrite-dialog.ui:177 data/ui/overwrite-dialog.ui:346 msgid "Modified:" msgstr "Değiştirildi:" -#: data/ui/overwrite-dialog.ui:241 +#: data/ui/overwrite-dialog.ui:242 msgid "New File:" msgstr "Yeni Dosya:" -#: data/ui/overwrite-dialog.ui:399 +#: data/ui/overwrite-dialog.ui:401 msgid "Over_write the old file" msgstr "Eski dosyanın üzerine _yaz" -#: data/ui/overwrite-dialog.ui:416 +#: data/ui/overwrite-dialog.ui:418 msgid "Do not overwrite _the old file" msgstr "_Eski dosyanın üzerine yazma" -#: data/ui/overwrite-dialog.ui:433 +#: data/ui/overwrite-dialog.ui:435 msgid "Overwrite _all files" -msgstr "_Bütün dosyaların üzerine yaz" +msgstr "_Tüm dosyaların üzerine yaz" -#: data/ui/overwrite-dialog.ui:450 +#: data/ui/overwrite-dialog.ui:452 msgid "_Do not overwrite any file" msgstr "Herhangi bir dosyanın _üzerine yazma" -#: data/ui/overwrite-dialog.ui:472 +#: data/ui/overwrite-dialog.ui:474 msgid "_Save the new file as:" msgstr "Yeni dosyayı farklı _kaydet:" @@ -347,70 +363,75 @@ msgid "gThumb Preferences" msgstr "gThumb Tercihleri" -#: data/ui/preferences.ui:100 +#: data/ui/preferences.ui:101 msgid "Appearance" msgstr "Görünüm" -#: data/ui/preferences.ui:128 +#: data/ui/preferences.ui:125 msgid "T_humbnails in viewer:" msgstr "Görüntüleyicideki k_üçük resimler:" -#: data/ui/preferences.ui:141 +#: data/ui/preferences.ui:139 msgid "on the bottom" -msgstr "altta" +msgstr "Altta" -#: data/ui/preferences.ui:142 +#: data/ui/preferences.ui:140 msgid "on the side" -msgstr "kenarda" +msgstr "Kenarda" -#: data/ui/preferences.ui:155 +#: data/ui/preferences.ui:152 msgid "File _properties in browser:" msgstr "Tarayıcıdaki dosya _özellikleri:" -#: data/ui/preferences.ui:208 +#: data/ui/preferences.ui:203 msgid "On startup:" msgstr "Başlangıçta:" -#: data/ui/preferences.ui:234 +#: data/ui/preferences.ui:226 msgid "Go to last _visited location" msgstr "Son _ziyaret edilmiş konuma git" -#: data/ui/preferences.ui:257 +#: data/ui/preferences.ui:247 msgid "Go to this _folder:" msgstr "Bu kla_söre git:" -#: data/ui/preferences.ui:278 -msgid "Choose startup folder" -msgstr "Başlangıç klasörü seç" - -#: data/ui/preferences.ui:299 +#: data/ui/preferences.ui:277 msgid "Set to C_urrent" msgstr "Geçerli _olarak belirle" -#: data/ui/preferences.ui:322 +#: data/ui/preferences.ui:299 msgid "_Reuse the active window to open files" msgstr "Dosyaları açmak için etkin pencereyi _yeniden kullan" -#: data/ui/preferences.ui:389 +#: data/ui/preferences.ui:358 msgid "As_k confirmation before deleting files or catalogs" msgstr "Dosyaları ya da katalogları silmeden önce onay s_or" -#: data/ui/preferences.ui:406 +#: data/ui/preferences.ui:373 msgid "Ask whether to save _modified files" msgstr "_Değiştirilen dosyaların kaydedilip kaydedilmeyeceğini sor" -#: data/ui/preferences.ui:423 +#: data/ui/preferences.ui:388 msgid "_Store metadata inside files if possible" msgstr "Eğer mümkünse dosyaların içerisindeki üstverileri _depolayın" -#: data/ui/preferences.ui:460 +#: data/ui/preferences.ui:421 #: extensions/catalogs/data/ui/catalog-properties.ui:39 #: extensions/contact_sheet/data/ui/contact-sheet.ui:576 #: extensions/edit_metadata/gth-edit-general-page.c:482 #: extensions/webalbums/data/ui/web-album-exporter.ui:571 +#: gthumb/gth-main-default-types.c:38 msgid "General" msgstr "Genel" +#: data/ui/shortcuts-preferences.ui:27 +msgid "Shortcuts:" +msgstr "Kısayollar:" + +#: data/ui/shortcuts-preferences.ui:92 +msgid "_Restore All…" +msgstr "_Tümünü Geri Getir…" + #: data/ui/sort-order.ui:30 msgid "_Inverse order" msgstr "_Ters sırada" @@ -424,7 +445,7 @@ msgstr "23hq.com adresine resimleri yükle" #: extensions/bookmarks/bookmarks.extension.desktop.in.in:3 -#: extensions/bookmarks/callbacks.c:325 +#: extensions/bookmarks/callbacks.c:323 #: extensions/bookmarks/dlg-bookmarks.c:350 msgid "Bookmarks" msgstr "Yer İmleri" @@ -441,7 +462,7 @@ msgid "_Edit Bookmarks…" msgstr "Yer İmlerini _Düzenle…" -#: extensions/bookmarks/data/ui/bookmarks-menu.ui:17 +#: extensions/bookmarks/data/ui/bookmarks-menu.ui:16 msgid "_System Bookmarks" msgstr "_Sistem Yer İmleri" @@ -455,6 +476,7 @@ #: extensions/bookmarks/data/ui/bookmarks.ui:76 #: extensions/catalogs/callbacks.c:72 +#: extensions/search/gth-search-source-selector.c:140 msgid "Remove" msgstr "Sil" @@ -506,15 +528,15 @@ msgid "Source" msgstr "Kaynak" -#: extensions/burn_disc/gth-burn-task.c:235 -#: extensions/burn_disc/gth-burn-task.c:256 -#: extensions/burn_disc/gth-burn-task.c:392 +#: extensions/burn_disc/gth-burn-task.c:239 +#: extensions/burn_disc/gth-burn-task.c:260 +#: extensions/burn_disc/gth-burn-task.c:396 msgid "Write to Disc" msgstr "Diske Yaz" -#: extensions/burn_disc/gth-burn-task.c:401 +#: extensions/burn_disc/gth-burn-task.c:405 #: extensions/oauth/oauth-account-chooser-dialog.c:150 -#: gthumb/dlg-preferences-extensions.c:717 +#: gthumb/dlg-preferences-extensions.c:715 msgid "_Continue" msgstr "_Devam et" @@ -523,7 +545,7 @@ msgid "Error interpreting JPEG image file: %s" msgstr "JPEG resim dosyası işlenirken hata: %s" -#: extensions/cairo_io/cairo-image-surface-jpeg.c:537 +#: extensions/cairo_io/cairo-image-surface-jpeg.c:558 #, c-format msgid "Unknown JPEG color space (%d)" msgstr "Bilinmeyen JPEG renk uzayı (%d)" @@ -636,64 +658,62 @@ #: extensions/cairo_io/preferences.c:134 #: extensions/contact_sheet/data/ui/contact-sheet.ui:556 #: extensions/contact_sheet/data/ui/image-wall.ui:269 -#: extensions/image_viewer/gth-image-viewer-page.c:1664 +#: extensions/image_viewer/gth-image-viewer-page.c:1702 #: extensions/webalbums/data/ui/web-album-exporter.ui:484 msgid "Saving" msgstr "Kaydediliyor" #: extensions/catalogs/actions.c:89 extensions/catalogs/actions.c:212 -#: extensions/catalogs/dlg-add-to-catalog.c:370 -#: extensions/catalogs/dlg-add-to-catalog.c:535 +#: extensions/catalogs/dlg-add-to-catalog.c:373 +#: extensions/catalogs/dlg-add-to-catalog.c:538 #: extensions/file_manager/actions.c:71 #: extensions/file_tools/gth-file-tool-curves.c:373 -#: extensions/list_tools/gth-script-editor-dialog.c:241 -#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1858 +#: extensions/list_tools/gth-script-editor-dialog.c:273 +#: gthumb/gth-filter-editor-dialog.c:467 gthumb/gth-folder-tree.c:1924 #, c-format msgid "No name specified" msgstr "Ad belirtilmemiş" #: extensions/catalogs/actions.c:96 extensions/catalogs/actions.c:219 -#: extensions/catalogs/dlg-add-to-catalog.c:377 -#: extensions/catalogs/dlg-add-to-catalog.c:542 +#: extensions/catalogs/dlg-add-to-catalog.c:380 +#: extensions/catalogs/dlg-add-to-catalog.c:545 #: extensions/file_manager/actions.c:78 #: extensions/file_tools/gth-file-tool-curves.c:380 -#: gthumb/gth-folder-tree.c:1865 +#: gthumb/gth-folder-tree.c:1931 #, c-format msgid "Invalid name. The following characters are not allowed: %s" msgstr "Geçersiz ad. Aşağıdaki karakterlere izin verilmez: %s" #: extensions/catalogs/actions.c:152 extensions/catalogs/actions.c:266 -#: extensions/catalogs/dlg-add-to-catalog.c:434 -#: extensions/catalogs/dlg-add-to-catalog.c:591 -#: extensions/catalogs/gth-file-source-catalogs.c:510 +#: extensions/catalogs/dlg-add-to-catalog.c:437 +#: extensions/catalogs/dlg-add-to-catalog.c:594 +#: extensions/catalogs/gth-file-source-catalogs.c:516 #: extensions/file_manager/actions.c:109 msgid "Name already used" msgstr "Ad zaten kullanımda" #: extensions/catalogs/actions.c:177 -#: extensions/catalogs/dlg-add-to-catalog.c:455 msgid "New catalog" -msgstr "Yeni Katalog" +msgstr "Yeni katalog" #: extensions/catalogs/actions.c:178 -#: extensions/catalogs/dlg-add-to-catalog.c:456 +#: extensions/catalogs/dlg-add-to-catalog.c:459 msgid "Enter the catalog name:" msgstr "Katalog adı girin:" #: extensions/catalogs/actions.c:180 extensions/catalogs/actions.c:294 -#: extensions/catalogs/dlg-add-to-catalog.c:458 -#: extensions/catalogs/dlg-add-to-catalog.c:617 +#: extensions/catalogs/dlg-add-to-catalog.c:461 +#: extensions/catalogs/dlg-add-to-catalog.c:620 #: extensions/file_manager/actions.c:140 msgid "C_reate" msgstr "Oluştu_r" #: extensions/catalogs/actions.c:291 -#: extensions/catalogs/dlg-add-to-catalog.c:614 msgid "New library" -msgstr "Yeni Kütüphane" +msgstr "Yeni kütüphane" #: extensions/catalogs/actions.c:292 -#: extensions/catalogs/dlg-add-to-catalog.c:615 +#: extensions/catalogs/dlg-add-to-catalog.c:618 msgid "Enter the library name:" msgstr "Kütüphane adı girin:" @@ -710,7 +730,7 @@ msgid "Add to Catalog…" msgstr "Kataloga Ekle…" -#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:50 +#: extensions/catalogs/callbacks.c:57 extensions/selections/callbacks.c:78 msgid "Open Folder" msgstr "Klasör Aç" @@ -726,40 +746,40 @@ msgid "Create Library" msgstr "Kütüphane Oluştur" -#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:79 -#: extensions/file_manager/callbacks.c:106 -#: extensions/rename_series/dlg-rename-series.c:844 -#: gthumb/gth-folder-tree.c:1910 +#: extensions/catalogs/callbacks.c:73 extensions/file_manager/callbacks.c:82 +#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:126 +#: extensions/rename_series/dlg-rename-series.c:850 +#: gthumb/gth-folder-tree.c:1971 msgid "Rename" -msgstr "Yeniden isimledir" +msgstr "Yeniden adlandır" #: extensions/catalogs/callbacks.c:78 -#: extensions/catalogs/dlg-catalog-properties.c:201 gthumb/gth-browser.c:4580 -#: gthumb/gth-browser.c:4682 gthumb/gth-file-properties.c:245 +#: extensions/catalogs/dlg-catalog-properties.c:205 gthumb/gth-browser.c:4553 +#: gthumb/gth-browser.c:4655 gthumb/gth-file-properties.c:245 msgid "Properties" msgstr "Özellikler" #: extensions/catalogs/callbacks.c:185 #: extensions/catalogs/catalogs.extension.desktop.in.in:3 -#: extensions/catalogs/gth-catalog.c:618 extensions/catalogs/gth-catalog.c:669 -#: extensions/catalogs/gth-catalog.c:1028 -#: extensions/catalogs/gth-catalog.c:1029 +#: extensions/catalogs/gth-catalog.c:504 extensions/catalogs/gth-catalog.c:555 +#: extensions/catalogs/gth-catalog.c:911 extensions/catalogs/gth-catalog.c:912 msgid "Catalogs" msgstr "Kataloglar" -#: extensions/catalogs/callbacks.c:225 extensions/catalogs/callbacks.c:228 +#: extensions/catalogs/callbacks.c:223 extensions/catalogs/callbacks.c:226 msgid "Command Line" msgstr "Komut Satırı" -#: extensions/catalogs/callbacks.c:375 +#: extensions/catalogs/callbacks.c:379 msgid "Catalog Properties" msgstr "Katalog Özellikleri" -#: extensions/catalogs/callbacks.c:391 +#: extensions/catalogs/callbacks.c:395 msgid "Organize" msgstr "Düzenle" -#: extensions/catalogs/callbacks.c:392 +#: extensions/catalogs/callbacks.c:396 msgid "Automatically organize files by date" msgstr "Tarihe göre dosyaları kendiliğinden düzenle" @@ -767,37 +787,36 @@ msgid "Create file collections." msgstr "Dosya koleksiyonu oluştur." -# simge ismidir, çevirmeyin! #: extensions/catalogs/catalogs.extension.desktop.in.in:8 msgid "file-catalog-symbolic" msgstr "file-catalog-symbolic" -#: extensions/catalogs/data/ui/add-to-catalog.ui:10 -msgid "Add to Catalog" -msgstr "Kataloga Ekle" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:56 -msgid "A_dd and Close" -msgstr "E_kle ve Kapat" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:97 +#: extensions/catalogs/data/ui/add-to-catalog.ui:19 msgid "C_atalogs:" msgstr "K_ataloglar:" -#: extensions/catalogs/data/ui/add-to-catalog.ui:135 -msgid "_New Catalog" -msgstr "Ye_ni Katalog" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:150 -msgid "New _Library" -msgstr "Yeni Kütü_phane" - -#: extensions/catalogs/data/ui/add-to-catalog.ui:194 -#: extensions/file_manager/actions.c:687 -#: extensions/webalbums/gth-web-exporter.c:1843 +#: extensions/catalogs/data/ui/add-to-catalog.ui:34 +#: extensions/catalogs/dlg-add-to-catalog.c:617 +msgid "New Library" +msgstr "Yeni Kütüphane" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:57 +#: extensions/catalogs/dlg-add-to-catalog.c:458 +msgid "New Catalog" +msgstr "Yeni Katalog" + +#: extensions/catalogs/data/ui/add-to-catalog.ui:103 +#: extensions/file_manager/actions.c:766 +#: extensions/webalbums/gth-web-exporter.c:1827 msgid "_View the destination" msgstr "Hedefi _görüntüle" +#: extensions/catalogs/data/ui/add-to-catalog.ui:119 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:159 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:202 +msgid "_Keep the dialog open" +msgstr "İletişim penceresini açı_k tut" + #: extensions/catalogs/data/ui/catalog-properties.ui:68 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:53 #: extensions/facebook/data/ui/facebook-album-properties.ui:45 @@ -851,7 +870,7 @@ #: extensions/catalogs/data/ui/organize-files.ui:139 #: extensions/find_duplicates/data/ui/find-duplicates.ui:64 -#: extensions/search/data/ui/search-editor.ui:46 +#: extensions/search/gth-search-source-selector.c:123 msgid "_Include sub-folders" msgstr "Alt klasörleri de _içer" @@ -867,26 +886,33 @@ msgid "Singles" msgstr "Tek" -#: extensions/catalogs/dlg-add-to-catalog.c:151 -#: extensions/catalogs/dlg-add-to-catalog.c:185 +#: extensions/catalogs/dlg-add-to-catalog.c:155 msgid "Could not add the files to the catalog" msgstr "Dosyalar kataloga eklenemedi" -#: extensions/catalogs/dlg-add-to-catalog.c:313 -#: extensions/search/gth-search-task.c:358 +#: extensions/catalogs/dlg-add-to-catalog.c:316 +#: extensions/search/gth-search-task.c:402 msgid "Could not create the catalog" msgstr "Katalog oluşturulamadı" +#: extensions/catalogs/dlg-add-to-catalog.c:682 +msgid "Add to Catalog" +msgstr "Kataloga Ekle" + +#: extensions/catalogs/dlg-add-to-catalog.c:697 +msgid "_Add" +msgstr "_Ekle" + #: extensions/catalogs/dlg-catalog-properties.c:80 msgid "Could not save the catalog" msgstr "Katalog kaydedilemedi" -#: extensions/catalogs/dlg-catalog-properties.c:151 +#: extensions/catalogs/dlg-catalog-properties.c:154 msgid "Could not load the catalog" msgstr "Katalog yüklenemedi" #: extensions/catalogs/dlg-organize-files.c:106 -#: extensions/catalogs/gth-organize-task.c:814 +#: extensions/catalogs/gth-organize-task.c:812 msgid "Organize Files" msgstr "Dosyaları Düzenle" @@ -898,75 +924,77 @@ #: extensions/catalogs/dlg-organize-files.c:138 #: extensions/edit_metadata/gth-edit-general-page.c:557 -#: gthumb/gth-main-default-tests.c:365 +#: gthumb/gth-main-default-tests.c:367 msgid "Date photo was taken" msgstr "Fotoğraf tarihi alındı" #: extensions/catalogs/dlg-organize-files.c:145 -#: gthumb/gth-main-default-tests.c:357 +#: gthumb/gth-main-default-tests.c:359 msgid "File modified date" msgstr "Dosya değiştirilme tarihi" -#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:182 +#: extensions/catalogs/dlg-organize-files.c:152 extensions/comments/main.c:186 msgid "Tag" msgstr "Etiket" #: extensions/catalogs/dlg-organize-files.c:159 -#: gthumb/gth-main-default-tests.c:398 +#: gthumb/gth-main-default-tests.c:400 msgid "Tag (embedded)" msgstr "Etiket (gömülü)" -#: extensions/catalogs/gth-catalog.c:1126 extensions/comments/main.c:45 -#: extensions/edit_metadata/callbacks.c:51 -#: extensions/edit_metadata/callbacks.c:85 -#: gthumb/gth-main-default-metadata.c:63 +#: extensions/catalogs/gth-catalog.c:300 +#: extensions/exiv2_tools/exiv2-utils.cpp:876 +#: extensions/exiv2_tools/exiv2-utils.cpp:885 +#: extensions/exiv2_tools/exiv2-utils.cpp:915 +#: extensions/exiv2_tools/exiv2-utils.cpp:1448 +#: extensions/search/gth-search.c:285 gthumb/gth-shortcut.c:336 +msgid "Invalid file format" +msgstr "Geçersiz dosya biçimi" + +#: extensions/catalogs/gth-catalog.c:1013 extensions/comments/main.c:47 +#: extensions/edit_metadata/callbacks.c:57 +#: extensions/edit_metadata/callbacks.c:94 +#: extensions/edit_metadata/callbacks.c:107 +#: extensions/edit_metadata/gth-edit-tags-dialog.c:185 +#: gthumb/gth-main-default-metadata.c:64 msgid "Tags" msgstr "Etiketler" -#: extensions/catalogs/gth-file-source-catalogs.c:955 +#: extensions/catalogs/gth-file-source-catalogs.c:958 #, c-format msgid "The catalog “%s” already exists, do you want to overwrite it?" msgstr "“%s” katalogu zaten var, üzerine yazmak istiyor musunuz?" -#: extensions/catalogs/gth-file-source-catalogs.c:957 +#: extensions/catalogs/gth-file-source-catalogs.c:960 #, c-format msgid "The library “%s” already exists, do you want to overwrite it?" msgstr "“%s” kütüphanesi zaten var, üzerine yazmak istiyor musunuz?" -#: extensions/catalogs/gth-file-source-catalogs.c:965 +#: extensions/catalogs/gth-file-source-catalogs.c:968 msgid "Over_write" -msgstr "Üzerine_ yaz" +msgstr "Üzerine _yaz" -#: extensions/catalogs/gth-file-source-catalogs.c:1083 +#: extensions/catalogs/gth-file-source-catalogs.c:1087 msgid "Cannot move the files" msgstr "Dosyalar taşınamıyor" -#: extensions/catalogs/gth-file-source-catalogs.c:1085 +#: extensions/catalogs/gth-file-source-catalogs.c:1089 msgid "Cannot copy the files" msgstr "Dosyalar kopyalanamıyor" -#: extensions/catalogs/gth-file-source-catalogs.c:1090 +#: extensions/catalogs/gth-file-source-catalogs.c:1094 msgid "Invalid destination." msgstr "Geçersiz hedef." -#: extensions/catalogs/gth-file-source-catalogs.c:1137 +#: extensions/catalogs/gth-file-source-catalogs.c:1141 #, c-format msgid "Copying files to “%s”" msgstr "Dosyalar “%s” konumuna kopyalanıyor" -#: extensions/catalogs/gth-file-source-catalogs.c:1324 +#: extensions/catalogs/gth-file-source-catalogs.c:1321 msgid "Could not remove the files from the catalog" msgstr "Katalogdan dosyalar kaldırılamadı" -#: extensions/catalogs/gth-file-source-catalogs.c:1375 -#: extensions/exiv2_tools/exiv2-utils.cpp:876 -#: extensions/exiv2_tools/exiv2-utils.cpp:885 -#: extensions/exiv2_tools/exiv2-utils.cpp:915 -#: extensions/exiv2_tools/exiv2-utils.cpp:1450 -#: extensions/search/gth-search.c:265 -msgid "Invalid file format" -msgstr "Geçersiz dosya biçimi" - #: extensions/catalogs/gth-organize-task.c:209 #, c-format msgid "Operation completed. Catalogs: %d. Images: %d." @@ -1052,11 +1080,11 @@ #: extensions/comments/comments.extension.desktop.in.in:3 msgid "Comments and tags" -msgstr "Açıklamalar ve etiketler" +msgstr "Yorumlar ve etiketler" #: extensions/comments/comments.extension.desktop.in.in:4 msgid "Add comments and tags to any file type." -msgstr "Herhangi bir dosya türüne açıklama ve etiket ekle." +msgstr "Herhangi bir dosya türüne yorum ve etiket ekle." #: extensions/comments/data/ui/comments-preferences.ui:12 msgid "_Synchronize with the embedded metadata" @@ -1070,16 +1098,19 @@ msgid "Preferences" msgstr "Tercihler" -#: extensions/comments/main.c:35 extensions/edit_metadata/callbacks.c:50 -#: extensions/edit_metadata/callbacks.c:79 gthumb/gth-file-comment.c:136 +#: extensions/comments/main.c:37 extensions/edit_metadata/callbacks.c:56 +#: extensions/edit_metadata/callbacks.c:88 +#: extensions/edit_metadata/callbacks.c:101 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:137 +#: gthumb/gth-file-comment.c:136 msgid "Comment" -msgstr "Açıklama" +msgstr "Yorum" -#: extensions/comments/main.c:41 gthumb/gth-main-default-metadata.c:60 +#: extensions/comments/main.c:43 gthumb/gth-main-default-metadata.c:61 msgid "Title" msgstr "Başlık" -#: extensions/comments/main.c:42 extensions/comments/main.c:166 +#: extensions/comments/main.c:44 extensions/comments/main.c:170 #: extensions/contact_sheet/data/ui/contact-sheet.ui:184 #: extensions/contact_sheet/data/ui/contact-sheet.ui:502 #: extensions/contact_sheet/data/ui/image-wall.ui:232 @@ -1089,21 +1120,21 @@ #: extensions/rename_series/data/ui/rename-series.ui:249 #: extensions/webalbums/data/ui/web-album-exporter.ui:194 #: extensions/webalbums/data/ui/web-album-exporter.ui:1039 -#: gthumb/gth-main-default-metadata.c:62 +#: gthumb/gth-main-default-metadata.c:63 msgid "Description" msgstr "Açıklama" -#: extensions/comments/main.c:43 extensions/comments/main.c:174 -#: gthumb/gth-main-default-metadata.c:61 +#: extensions/comments/main.c:45 extensions/comments/main.c:178 +#: gthumb/gth-main-default-metadata.c:62 msgid "Place" msgstr "Yer" -#: extensions/comments/main.c:44 +#: extensions/comments/main.c:46 msgid "Comment Date & Time" -msgstr "Açıklama Tarihi ve Zamanı" +msgstr "Yorum Tarihi ve Zamanı" -#: extensions/comments/main.c:46 gthumb/gth-main-default-metadata.c:64 -#: gthumb/gth-main-default-tests.c:389 +#: extensions/comments/main.c:48 gthumb/gth-main-default-metadata.c:65 +#: gthumb/gth-main-default-tests.c:391 msgid "Rating" msgstr "Değerlendirme" @@ -1117,22 +1148,22 @@ #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:3 #: extensions/contact_sheet/data/ui/contact-sheet.ui:308 -#: extensions/contact_sheet/dlg-contact-sheet.c:708 +#: extensions/contact_sheet/dlg-contact-sheet.c:710 msgid "Contact Sheet" msgstr "Bağlantı Sayfası" #: extensions/contact_sheet/contact_sheet.extension.desktop.in.in:4 msgid "Create an index image displaying the thumbnails of the selected files." msgstr "" -"Seçilen dosyaların küçük resimlerinin görüntüleneceği bir resim dizini " +"Seçilen dosyaların küçük resimlerinin görüntüleneceği resim dizini " "oluştur." #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:12 #: extensions/file_tools/gth-file-tool-crop.c:439 #: extensions/file_tools/gth-file-tool-crop.c:469 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: extensions/file_tools/gth-file-tool-rotate.c:396 -#: extensions/slideshow/main.c:291 gthumb/gth-accel-button.c:173 +#: extensions/slideshow/main.c:297 gthumb/gth-accel-button.c:201 msgid "None" msgstr "Bilinmeyen" @@ -1154,11 +1185,11 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:27 msgid "Inward Shadow" -msgstr "İçe doğru Gölge" +msgstr "İçe Doğru Gölge" #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:30 msgid "Outward Shadow" -msgstr "Dışa doğru Gölge" +msgstr "Dışa Doğru Gölge" #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:96 msgid "Background" @@ -1204,7 +1235,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:548 #: extensions/contact_sheet/data/ui/contact-sheet.ui:290 #: extensions/image_print/data/ui/print-layout.ui:88 -#: extensions/image_print/data/ui/print-preferences.ui:60 +#: extensions/image_print/data/ui/print-preferences.ui:55 #: extensions/webalbums/data/ui/web-album-exporter.ui:302 #: extensions/webalbums/data/ui/web-album-exporter.ui:1167 msgid "_Header:" @@ -1214,12 +1245,12 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:626 #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:684 msgid "Select a font" -msgstr "Bir yazı tipi seç" +msgstr "Yazı tipi seç" #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:604 #: extensions/contact_sheet/data/ui/contact-sheet.ui:261 #: extensions/image_print/data/ui/print-layout.ui:102 -#: extensions/image_print/data/ui/print-preferences.ui:74 +#: extensions/image_print/data/ui/print-preferences.ui:69 #: extensions/webalbums/data/ui/web-album-exporter.ui:271 #: extensions/webalbums/data/ui/web-album-exporter.ui:916 msgid "_Footer:" @@ -1227,15 +1258,15 @@ #: extensions/contact_sheet/data/ui/contact-sheet-theme-properties.ui:663 #: extensions/contact_sheet/data/ui/contact-sheet.ui:1038 -#: extensions/image_print/data/ui/print-preferences.ui:48 +#: extensions/image_print/data/ui/print-preferences.ui:43 msgid "Caption:" -msgstr "Resim Yazısı:" +msgstr "Resim yazısı:" #: extensions/contact_sheet/data/ui/contact-sheet.ui:133 #: extensions/image_print/data/ui/print-layout.ui:188 #: extensions/webalbums/data/ui/web-album-exporter.ui:143 msgid "The current page number" -msgstr "Şu anki sayfa numarası" +msgstr "Geçerli sayfa numarası" #: extensions/contact_sheet/data/ui/contact-sheet.ui:151 #: extensions/image_print/data/ui/print-layout.ui:206 @@ -1269,7 +1300,7 @@ #: extensions/webalbums/data/ui/web-album-exporter.ui:227 #: extensions/webalbums/data/ui/web-album-exporter.ui:1072 msgid "The current date" -msgstr "Şu anki tarih" +msgstr "Geçerli tarih" #: extensions/contact_sheet/data/ui/contact-sheet.ui:354 #: extensions/contact_sheet/data/ui/image-wall.ui:85 @@ -1307,7 +1338,7 @@ #: extensions/contact_sheet/data/ui/contact-sheet.ui:639 msgid "Create a new theme" -msgstr "Yeni bir tema oluştur" +msgstr "Yeni tema oluştur" #: extensions/contact_sheet/data/ui/contact-sheet.ui:660 msgid "Edit the selected theme" @@ -1344,11 +1375,11 @@ #: extensions/contact_sheet/data/ui/image-wall.ui:392 #: extensions/webalbums/data/ui/web-album-exporter.ui:751 msgid "All images on a single page" -msgstr "Tek bir sayfada bütün resimler" +msgstr "Tüm resimler tek sayfada" #: extensions/contact_sheet/data/ui/contact-sheet.ui:842 msgid "_All pages with the same size" -msgstr "Bütün s_ayfalar aynı büyüklükle" +msgstr "Tüm s_ayfalar aynı büyüklükle" #: extensions/contact_sheet/data/ui/contact-sheet.ui:875 #: extensions/contact_sheet/data/ui/image-wall.ui:414 @@ -1382,13 +1413,13 @@ msgid "Thumbnails" msgstr "Küçük resimler" -#: extensions/contact_sheet/dlg-contact-sheet.c:489 -#: extensions/contact_sheet/dlg-contact-sheet.c:500 -#: extensions/contact_sheet/dlg-contact-sheet.c:514 +#: extensions/contact_sheet/dlg-contact-sheet.c:491 +#: extensions/contact_sheet/dlg-contact-sheet.c:502 +#: extensions/contact_sheet/dlg-contact-sheet.c:516 msgid "Could not save the theme" msgstr "Tema kaydedilemedi" -#: extensions/contact_sheet/dlg-contact-sheet.c:659 +#: extensions/contact_sheet/dlg-contact-sheet.c:661 msgid "Could not delete the theme" msgstr "Tema silinemedi" @@ -1396,11 +1427,11 @@ msgid "Image Wall" msgstr "Resim Duvarı" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:250 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:291 msgid "Creating images" -msgstr "Görüntü oluşturuluyor" +msgstr "Resimler oluşturuluyor" -#: extensions/contact_sheet/gth-contact-sheet-creator.c:898 +#: extensions/contact_sheet/gth-contact-sheet-creator.c:936 msgid "Generating thumbnails" msgstr "Küçük resimler oluşturuluyor" @@ -1430,11 +1461,11 @@ #: extensions/convert_format/convert_format.extension.desktop.in.in:3 msgid "Convert format" -msgstr "Biçim Dönüştür" +msgstr "Biçim dönüştür" #: extensions/convert_format/convert_format.extension.desktop.in.in:4 msgid "Save images in a different format" -msgstr "Resimleri farklı bir biçimde kaydet" +msgstr "Resimleri başka biçimde kaydet" #: extensions/convert_format/data/ui/convert-format.ui:40 msgid "New format" @@ -1463,7 +1494,7 @@ msgstr "Masaüstü arkaplan özellikleri gösterilemedi" #: extensions/desktop_background/actions.c:329 -#: gthumb/gth-browser-actions-entries.h:85 gthumb/resources/app-menu.ui:14 +#: gthumb/resources/gears-menu.ui:45 msgid "_Preferences" msgstr "Ö_zellikler" @@ -1491,7 +1522,6 @@ msgid "Set the image as desktop background" msgstr "Resmi masaüstü arkaplanı olarak ayarla" -# simge ismidir, çevirmeyin! #: extensions/desktop_background/desktop_background.extension.desktop.in.in:8 msgid "desktop" msgstr "desktop" @@ -1509,6 +1539,14 @@ msgstr "Eğer üstveriyi silerseniz, kalıcı olarak kaybedilecek." #: extensions/edit_metadata/callbacks.c:45 +msgid "Edit comment" +msgstr "Yorumu düzenle" + +#: extensions/edit_metadata/callbacks.c:46 +msgid "Edit tags" +msgstr "Etiketleri düzenle" + +#: extensions/edit_metadata/callbacks.c:51 msgid "Delete Metadata" msgstr "Üstveriyi Sil" @@ -1540,7 +1578,7 @@ msgstr "Dosya üstverisi kaydedilemedi" #: extensions/edit_metadata/dlg-edit-metadata.c:230 -#: gthumb/gth-overwrite-dialog.c:139 +#: gthumb/gth-overwrite-dialog.c:184 msgid "Cannot read file information" msgstr "Dosya bilgisi okunamıyor" @@ -1552,26 +1590,7 @@ msgid "Allow to edit files metadata." msgstr "Dosya üstverilerini düzenlemeye izin ver." -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-comment-dialog.c:64 -#, c-format -msgid "%s Metadata" -msgstr "%s Üstverisi" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:67 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:84 -#: extensions/flicker_utils/dlg-import-from-flickr.c:320 -#, c-format -msgid "%d file" -msgid_plural "%d files" -msgstr[0] "%d dosya" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:145 -#: extensions/edit_metadata/gth-edit-tags-dialog.c:196 -msgid "Sa_ve and Close" -msgstr "Ka_ydet ve Kapat" - -#: extensions/edit_metadata/gth-edit-comment-dialog.c:156 +#: extensions/edit_metadata/gth-edit-comment-dialog.c:155 msgid "Save only cha_nged fields" msgstr "Sadece değişen ala_nları kaydet" @@ -1600,16 +1619,6 @@ msgid "Do not modify" msgstr "Değiştirme" -#. Translators: the %s symbol in the string is a file name -#: extensions/edit_metadata/gth-edit-tags-dialog.c:81 -#, c-format -msgid "%s Tags" -msgstr "%s Etiketleri" - -#: extensions/edit_metadata/gth-edit-tags-dialog.c:188 -msgid "Assign Tags" -msgstr "Etiket Ata" - #: extensions/edit_metadata/gth-tag-task.c:122 #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Assigning tags to the selected files" @@ -1617,11 +1626,11 @@ #: extensions/edit_metadata/gth-tag-task.c:122 msgid "Writing files" -msgstr "Dosyalar Yazılıyor" +msgstr "Dosyalar yazılıyor" #: extensions/edit_metadata/gth-tag-task.c:139 msgid "Reading files" -msgstr "Dosyalar Okunuyor" +msgstr "Dosyalar okunuyor" #: extensions/exiv2_tools/data/ui/edit-exiv2-page.ui:30 msgid "C_opyright:" @@ -1672,7 +1681,8 @@ msgid "State/Province:" msgstr "Eyalet/Bölge:" -#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1115 +#: extensions/exiv2_tools/exiv2-utils.cpp:47 gthumb/glib-utils.c:1088 +#: gthumb/glib-utils.c:2051 gthumb/str-utils.c:677 msgid "(invalid value)" msgstr "(geçersiz değer)" @@ -1686,7 +1696,7 @@ #: extensions/exiv2_tools/exiv2_tools.extension.desktop.in.in:4 msgid "Read and write exif, iptc and xmp metadata." -msgstr "exif, iptc ve xmp üstverisi yaz ve oku." +msgstr "Exif, iptc ve xmp üstverisi yaz ve oku." #: extensions/exiv2_tools/main.c:33 msgid "Exif General" @@ -1734,11 +1744,11 @@ #: extensions/exiv2_tools/main.c:272 msgid "date photo was taken" -msgstr "fotoğraf tarihi alındı" +msgstr "fotoğrafın çekildi tarih" #: extensions/export_tools/callbacks.c:46 -msgid "Export" -msgstr "Dışa Aktar" +msgid "_Export To" +msgstr "_Şuraya Dışa Aktar" #: extensions/facebook/data/ui/export-to-facebook.ui:34 msgid "720 × 720" @@ -1774,7 +1784,7 @@ #: extensions/facebook/data/ui/export-to-facebook.ui:212 msgid "Add a new album" -msgstr "Yeni bir albüm ekle" +msgstr "Yeni albüm ekle" #: extensions/facebook/data/ui/export-to-facebook.ui:242 #: extensions/flicker_utils/data/ui/export-to-flickr.ui:150 @@ -1830,7 +1840,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:161 #: extensions/picasaweb/dlg-export-to-picasaweb.c:120 msgid "Files successfully uploaded to the server." -msgstr "Dosyalar sunucuya başarılı bir şekilde yüklendi." +msgstr "Dosyalar sunucuya başarılı biçimde yüklendi." #: extensions/facebook/dlg-export-to-facebook.c:151 #: extensions/flicker_utils/dlg-export-to-flickr.c:246 @@ -1871,7 +1881,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:593 #: extensions/picasaweb/dlg-export-to-picasaweb.c:495 msgid "Could not export the files" -msgstr "Dosyalar dışarı aktarılamadı" +msgstr "Dosyalar dışa aktarılamadı" #: extensions/facebook/dlg-export-to-facebook.c:550 #: extensions/find_duplicates/gth-find-duplicates.c:278 @@ -1879,7 +1889,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:601 #: extensions/picasaweb/dlg-export-to-picasaweb.c:502 #: extensions/picasaweb/dlg-import-from-picasaweb.c:254 -#: gthumb/gth-browser.c:832 +#: gthumb/gth-browser.c:872 #, c-format msgid "%d file (%s)" msgid_plural "%d files (%s)" @@ -1889,7 +1899,7 @@ #: extensions/flicker_utils/dlg-export-to-flickr.c:624 #, c-format msgid "Export to %s" -msgstr "%s konumuna dışarı aktar" +msgstr "%s konumuna dışa aktar" #: extensions/facebook/facebook-service.c:496 #: extensions/flicker_utils/flickr-service.c:849 @@ -1919,13 +1929,13 @@ msgid "Uploading “%s”" msgstr "“%s” yükleniyor" -#: extensions/facebook/facebook-service.c:949 +#: extensions/facebook/facebook-service.c:954 #: extensions/flicker_utils/flickr-service.c:1450 #: extensions/picasaweb/picasa-web-service.c:1062 msgid "Uploading the files to the server" msgstr "Dosyalar sunucuya yükleniyor" -#: extensions/facebook/facebook-service.c:1043 +#: extensions/facebook/facebook-service.c:1048 #: extensions/flicker_utils/flickr-service.c:1611 #: extensions/picasaweb/picasa-web-service.c:1174 msgid "Getting the photo list" @@ -1948,14 +1958,21 @@ msgstr "Klasör adı girin:" #: extensions/file_manager/actions.c:410 -#: extensions/file_manager/callbacks.c:271 -#: extensions/file_manager/callbacks.c:1005 +#: extensions/file_manager/callbacks.c:551 +#: extensions/file_manager/callbacks.c:986 +#: extensions/find_duplicates/gth-find-duplicates.c:788 +#: gthumb/gth-browser.c:5565 gthumb/gth-browser.c:5601 +#: gthumb/gth-progress-dialog.c:429 +msgid "Could not perform the operation" +msgstr "İşlem gerçekleştirilemedi" + +#: extensions/file_manager/actions.c:423 +#: extensions/file_manager/callbacks.c:277 msgid "Could not move the files" msgstr "Dosyalar taşınamadı" -#: extensions/file_manager/actions.c:411 -#: extensions/file_manager/callbacks.c:272 -#: extensions/file_manager/callbacks.c:1006 +#: extensions/file_manager/actions.c:424 +#: extensions/file_manager/callbacks.c:278 msgid "" "Files cannot be moved to the current location, as alternative you can choose " "to copy them." @@ -1963,114 +1980,121 @@ "Dosyalar mevcut konuma taşınamadı, alternatif olarak onları kopyalamayı " "seçebilirsiniz." -#: extensions/file_manager/actions.c:413 extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:71 -#: extensions/file_manager/callbacks.c:100 +#: extensions/file_manager/actions.c:426 extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:74 +#: extensions/file_manager/callbacks.c:103 +#: extensions/file_manager/callbacks.c:124 #: extensions/file_tools/data/ui/color-picker-options.ui:206 #: extensions/file_tools/data/ui/color-picker-options.ui:219 #: gthumb/gtk-utils.h:38 msgid "Copy" msgstr "Kopyala" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Move To" msgstr "Buraya Taşı" -#: extensions/file_manager/actions.c:660 +#: extensions/file_manager/actions.c:739 msgid "Copy To" msgstr "Buraya Kopyala" -#: extensions/file_manager/actions.c:664 -#: extensions/file_manager/callbacks.c:990 +#: extensions/file_manager/actions.c:743 +#: extensions/file_manager/callbacks.c:1025 msgid "Move" msgstr "Taşı" -#: extensions/file_manager/actions.c:791 +#: extensions/file_manager/actions.c:870 msgid "Could not open the location" msgstr "Konum açılamadı" -#: extensions/file_manager/callbacks.c:70 -#: extensions/file_manager/callbacks.c:99 +#: extensions/file_manager/callbacks.c:73 +#: extensions/file_manager/callbacks.c:102 +#: extensions/file_manager/callbacks.c:123 msgid "Cut" msgstr "Kes" -#: extensions/file_manager/callbacks.c:72 +#: extensions/file_manager/callbacks.c:75 +#: extensions/file_manager/callbacks.c:125 msgid "Paste" msgstr "Yapıştır" -#: extensions/file_manager/callbacks.c:77 -#: extensions/file_manager/callbacks.c:107 +#: extensions/file_manager/callbacks.c:80 +#: extensions/file_manager/callbacks.c:110 msgid "Copy to…" msgstr "Şuraya Kopyala…" -#: extensions/file_manager/callbacks.c:78 -#: extensions/file_manager/callbacks.c:108 +#: extensions/file_manager/callbacks.c:81 +#: extensions/file_manager/callbacks.c:111 msgid "Move to…" msgstr "Şuraya Taşı…" -#: extensions/file_manager/callbacks.c:84 -#: extensions/file_manager/callbacks.c:109 +#: extensions/file_manager/callbacks.c:87 +#: extensions/file_manager/callbacks.c:112 msgid "Move to Trash" msgstr "Çöpe Taşı" -#: extensions/file_manager/callbacks.c:85 -#: extensions/file_manager/callbacks.c:110 +#: extensions/file_manager/callbacks.c:88 +#: extensions/file_manager/callbacks.c:113 +#: extensions/file_manager/callbacks.c:128 msgid "Delete" msgstr "Sil" -#: extensions/file_manager/callbacks.c:89 +#: extensions/file_manager/callbacks.c:92 msgid "Open with the File Manager" msgstr "Dosya Yöneticisiyle aç" -#: extensions/file_manager/callbacks.c:94 +#: extensions/file_manager/callbacks.c:97 msgid "Create Folder" msgstr "Klasör Oluştur" -#: extensions/file_manager/callbacks.c:101 +#: extensions/file_manager/callbacks.c:104 msgid "Paste Into Folder" msgstr "Klasöre Yapıştır" -#: extensions/file_manager/callbacks.c:115 +#: extensions/file_manager/callbacks.c:118 +#: extensions/file_manager/callbacks.c:127 msgid "Duplicate" msgstr "Çoğalt" -#: extensions/file_manager/callbacks.c:545 -#: extensions/find_duplicates/gth-find-duplicates.c:788 -#: gthumb/gth-browser.c:5580 gthumb/gth-browser.c:5616 -#: gthumb/gth-progress-dialog.c:429 -msgid "Could not perform the operation" -msgstr "İşlem gerçekleştirilemedi" +#: extensions/file_manager/callbacks.c:129 +msgid "Delete permanently" +msgstr "Kalıcı olarak sil" + +# Programın adı GIMP +#: extensions/file_manager/callbacks.c:130 +msgid "Open with Gimp" +msgstr "GIMP ile aç" -#: extensions/file_manager/callbacks.c:716 gthumb/gth-file-source-vfs.c:234 +#: extensions/file_manager/callbacks.c:722 gthumb/gth-file-source-vfs.c:235 msgid "Home Folder" msgstr "Ev Klasörü" -#: extensions/file_manager/callbacks.c:723 -#: extensions/file_manager/callbacks.c:726 +#: extensions/file_manager/callbacks.c:729 +#: extensions/file_manager/callbacks.c:732 msgid "Open _With" msgstr "_Birlikte Aç" -#: extensions/file_manager/callbacks.c:973 +#: extensions/file_manager/callbacks.c:1006 #, c-format msgid "Do you want to move “%s” to “%s”?" msgstr "“%s” dosyasını “%s” içine taşımak istediğinizden emin misiniz?" -#: extensions/file_manager/callbacks.c:975 +#: extensions/file_manager/callbacks.c:1008 #, c-format msgid "Do you want to copy “%s” to “%s”?" msgstr "“%s” dosyasını “%s” içine kopyalamak istediğinizden emin misiniz?" -#: extensions/file_manager/callbacks.c:980 +#: extensions/file_manager/callbacks.c:1015 #, c-format msgid "Do you want to move the dragged files to “%s”?" msgstr "Sürüklenen dosyaları “%s” konumuna taşımak istiyor musunuz?" -#: extensions/file_manager/callbacks.c:982 +#: extensions/file_manager/callbacks.c:1017 #, c-format msgid "Do you want to copy the dragged files to “%s”?" msgstr "Sürüklenen dosyaları “%s” konumuna kopyalamak istiyor musunuz?" -#: extensions/file_manager/callbacks.c:990 +#: extensions/file_manager/callbacks.c:1025 msgid "_Copy" msgstr "K_opyala" @@ -2082,11 +2106,44 @@ msgid "File manager operations." msgstr "Dosya yönetici işlemleri." -# simge ismidir, çevirmeyin! #: extensions/file_manager/file_manager.extension.desktop.in.in:8 msgid "system-file-manager" msgstr "system-file-manager" +#: extensions/file_tools/callbacks.c:53 +msgid "Adjust contrast" +msgstr "Karşıtlığı ayarla" + +#: extensions/file_tools/callbacks.c:54 +#: extensions/file_tools/gth-file-tool-flip.c:90 +msgid "Flip" +msgstr "Çevir" + +#: extensions/file_tools/callbacks.c:55 +#: extensions/file_tools/gth-file-tool-mirror.c:90 +msgid "Mirror" +msgstr "Yansı" + +#: extensions/file_tools/callbacks.c:56 +#: extensions/image_rotation/callbacks.c:47 +msgid "Rotate right" +msgstr "Sağa döndür" + +#: extensions/file_tools/callbacks.c:57 +#: extensions/image_rotation/callbacks.c:48 +msgid "Rotate left" +msgstr "Sola döndür" + +#: extensions/file_tools/callbacks.c:58 +#: extensions/file_tools/gth-file-tool-crop.c:687 +msgid "Crop" +msgstr "Kes" + +#: extensions/file_tools/callbacks.c:59 +#: extensions/file_tools/gth-file-tool-resize.c:840 +msgid "Resize" +msgstr "Yeniden Boyutlandır" + #: extensions/file_tools/data/ui/adjust-colors-options.ui:56 #: extensions/file_tools/data/ui/curves-options.ui:35 #: extensions/file_tools/data/ui/sharpen-options.ui:45 @@ -2111,7 +2168,7 @@ #: extensions/file_tools/data/ui/adjust-colors-options.ui:230 msgid "Cyan-_Red:" -msgstr "Camgöbeği (Cyan)-_Kırmızı:" +msgstr "Camgöbeği-_Kırmızı:" #: extensions/file_tools/data/ui/adjust-colors-options.ui:249 msgid "_Magenta-Green:" @@ -2149,9 +2206,9 @@ #: extensions/file_tools/data/ui/resize-options.ui:9 #: extensions/file_tools/data/ui/rotate-options.ui:9 #: extensions/file_tools/gth-file-tool-crop.c:661 -#: extensions/file_tools/gth-file-tool-resize.c:757 +#: extensions/file_tools/gth-file-tool-resize.c:759 #: extensions/file_tools/gth-file-tool-rotate.c:617 -#: gthumb/gth-file-chooser-dialog.c:258 +#: gthumb/gth-file-chooser-dialog.c:262 msgid "Options" msgstr "Seçenekler" @@ -2188,7 +2245,7 @@ #: extensions/file_tools/data/ui/crop-options.ui:418 #: extensions/file_tools/data/ui/resize-options.ui:375 -#: gthumb/gth-main-default-tests.c:404 +#: gthumb/gth-main-default-tests.c:406 msgid "Aspect ratio" msgstr "En boy oranı" @@ -2226,7 +2283,7 @@ msgstr "%" #: extensions/file_tools/data/ui/resize-options.ui:137 -#: gthumb/gth-main-default-metadata.c:46 +#: gthumb/gth-main-default-metadata.c:47 msgid "Dimensions" msgstr "Boyutlar" @@ -2259,11 +2316,11 @@ #: extensions/file_tools/data/ui/rotate-options.ui:116 msgid "Pick a background color" -msgstr "Bir arkaplan rengi seç" +msgstr "Arka plan rengi seç" #: extensions/file_tools/data/ui/rotate-options.ui:134 msgid "_Transparent" -msgstr "_Şeffaf" +msgstr "_Saydam" #: extensions/file_tools/data/ui/rotate-options.ui:182 msgid "Original size" @@ -2275,7 +2332,7 @@ #: extensions/file_tools/data/ui/rotate-options.ui:188 msgid "Crop borders" -msgstr "Kenarlıkları Kırp" +msgstr "Kenarlıkları kırp" #: extensions/file_tools/data/ui/rotate-options.ui:222 msgid "Angle" @@ -2306,8 +2363,8 @@ "Draw a line on the image \n" "to set the alignment." msgstr "" -"Hizalama ayarlamak için \n" -"resimde bir çizgi çiz." +"Hizayı ayarlamak için \n" +"resimde çizgi çizin." #: extensions/file_tools/data/ui/rotate-options.ui:563 msgid "Parallel" @@ -2386,17 +2443,17 @@ #: extensions/file_tools/gth-file-tool-adjust-contrast.c:393 #: extensions/file_tools/gth-file-tool-crop.c:632 #: extensions/file_tools/gth-file-tool-curves.c:287 -#: extensions/file_tools/gth-file-tool-effects.c:400 -#: extensions/file_tools/gth-file-tool-effects.c:444 -#: extensions/file_tools/gth-file-tool-effects.c:492 -#: extensions/file_tools/gth-file-tool-effects.c:541 -#: extensions/file_tools/gth-file-tool-effects.c:589 -#: extensions/file_tools/gth-file-tool-effects.c:637 -#: extensions/file_tools/gth-file-tool-effects.c:685 -#: extensions/file_tools/gth-file-tool-effects.c:732 -#: extensions/file_tools/gth-file-tool-effects.c:781 -#: extensions/file_tools/gth-file-tool-effects.c:903 -#: extensions/file_tools/gth-file-tool-effects.c:938 +#: extensions/file_tools/gth-file-tool-effects.c:401 +#: extensions/file_tools/gth-file-tool-effects.c:445 +#: extensions/file_tools/gth-file-tool-effects.c:493 +#: extensions/file_tools/gth-file-tool-effects.c:542 +#: extensions/file_tools/gth-file-tool-effects.c:590 +#: extensions/file_tools/gth-file-tool-effects.c:638 +#: extensions/file_tools/gth-file-tool-effects.c:686 +#: extensions/file_tools/gth-file-tool-effects.c:733 +#: extensions/file_tools/gth-file-tool-effects.c:782 +#: extensions/file_tools/gth-file-tool-effects.c:904 +#: extensions/file_tools/gth-file-tool-effects.c:939 #: extensions/file_tools/gth-file-tool-flip.c:63 #: extensions/file_tools/gth-file-tool-grayscale.c:230 #: extensions/file_tools/gth-file-tool-lomo.c:182 @@ -2414,7 +2471,7 @@ #: extensions/file_tools/gth-file-tool-adjust-colors.c:599 msgid "Change brightness, contrast, saturation and gamma level of the image" -msgstr "Görüntünün parlaklık, kontrast, doygunluk ve gama seviyesini değiştir" +msgstr "Resmin parlaklık, karşıtlık, doygunluk ve gama seviyesini değiştir" #: extensions/file_tools/gth-file-tool-adjust-contrast.c:536 msgid "Stretch" @@ -2443,13 +2500,13 @@ msgid "Equalize the histogram using the linear function" msgstr "Doğrusal fonksiyon kullanan çubuklu grafiği eşitle" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:660 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:661 msgid "Adjust Contrast" -msgstr "Kontrast Ayarla" +msgstr "Karşıtlığı Ayarla" -#: extensions/file_tools/gth-file-tool-adjust-contrast.c:662 +#: extensions/file_tools/gth-file-tool-adjust-contrast.c:663 msgid "Automatic contrast adjustment" -msgstr "Kendiliğinden kontrast ayarlama" +msgstr "Kendiliğinden karşıtlık ayarlama" #: extensions/file_tools/gth-file-tool-color-picker.c:246 msgid "Color Picker" @@ -2457,77 +2514,77 @@ #: extensions/file_tools/gth-file-tool-color-picker.c:249 msgid "Pick a color from the image" -msgstr "Görüntüden renk seç" +msgstr "Resimden renk seç" #: extensions/file_tools/gth-file-tool-crop.c:439 -#: extensions/file_tools/gth-file-tool-resize.c:587 +#: extensions/file_tools/gth-file-tool-resize.c:589 #: gthumb/gth-test-aspect-ratio.c:47 msgid "Square" msgstr "Köşeli" #: extensions/file_tools/gth-file-tool-crop.c:440 -#: extensions/file_tools/gth-file-tool-resize.c:588 +#: extensions/file_tools/gth-file-tool-resize.c:590 #, c-format msgid "%d × %d (Image)" msgstr "%d × %d (Resim)" #: extensions/file_tools/gth-file-tool-crop.c:443 -#: extensions/file_tools/gth-file-tool-resize.c:592 +#: extensions/file_tools/gth-file-tool-resize.c:594 #, c-format msgid "%d × %d (Screen)" msgstr "%d × %d (Ekran)" #: extensions/file_tools/gth-file-tool-crop.c:447 -#: extensions/file_tools/gth-file-tool-resize.c:597 +#: extensions/file_tools/gth-file-tool-resize.c:599 #: gthumb/gth-test-aspect-ratio.c:48 msgid "5∶4" msgstr "5∶4" #: extensions/file_tools/gth-file-tool-crop.c:448 -#: extensions/file_tools/gth-file-tool-resize.c:598 +#: extensions/file_tools/gth-file-tool-resize.c:600 #: gthumb/gth-test-aspect-ratio.c:49 msgid "4∶3 (DVD, Book)" msgstr "4∶3 (DVD, Kitap)" #: extensions/file_tools/gth-file-tool-crop.c:449 -#: extensions/file_tools/gth-file-tool-resize.c:599 +#: extensions/file_tools/gth-file-tool-resize.c:601 #: gthumb/gth-test-aspect-ratio.c:50 msgid "7∶5" msgstr "7∶5" #: extensions/file_tools/gth-file-tool-crop.c:450 -#: extensions/file_tools/gth-file-tool-resize.c:600 +#: extensions/file_tools/gth-file-tool-resize.c:602 #: gthumb/gth-test-aspect-ratio.c:51 msgid "3∶2 (Postcard)" msgstr "3∶2 (Kartpostal)" #: extensions/file_tools/gth-file-tool-crop.c:451 -#: extensions/file_tools/gth-file-tool-resize.c:601 +#: extensions/file_tools/gth-file-tool-resize.c:603 #: gthumb/gth-test-aspect-ratio.c:52 msgid "16∶10" msgstr "16∶10" #: extensions/file_tools/gth-file-tool-crop.c:452 -#: extensions/file_tools/gth-file-tool-resize.c:602 +#: extensions/file_tools/gth-file-tool-resize.c:604 #: gthumb/gth-test-aspect-ratio.c:53 msgid "16∶9 (DVD)" msgstr "16∶9 (DVD)" #: extensions/file_tools/gth-file-tool-crop.c:453 -#: extensions/file_tools/gth-file-tool-resize.c:603 +#: extensions/file_tools/gth-file-tool-resize.c:605 #: gthumb/gth-test-aspect-ratio.c:54 msgid "1.85∶1" msgstr "1.85∶1" #: extensions/file_tools/gth-file-tool-crop.c:454 -#: extensions/file_tools/gth-file-tool-resize.c:604 +#: extensions/file_tools/gth-file-tool-resize.c:606 #: gthumb/gth-test-aspect-ratio.c:55 msgid "2.39∶1" msgstr "2.39∶1" #. Translators: this is an option for the format -> Format: Custom #: extensions/file_tools/gth-file-tool-crop.c:455 -#: extensions/file_tools/gth-file-tool-resize.c:605 +#: extensions/file_tools/gth-file-tool-resize.c:607 #: extensions/image_print/data/ui/print-layout.ui:17 #: extensions/rename_series/gth-template-selector.c:248 #: gthumb/gth-test-aspect-ratio.c:193 @@ -2549,10 +2606,6 @@ msgid "Center Lines" msgstr "Orta Çizgiler" -#: extensions/file_tools/gth-file-tool-crop.c:687 -msgid "Crop" -msgstr "Kes" - #: extensions/file_tools/gth-file-tool-curves.c:410 msgid "Add to Presets" msgstr "Önayarlara Ekle" @@ -2563,8 +2616,8 @@ #: extensions/file_tools/gth-file-tool-curves.c:533 #: extensions/gstreamer_tools/actions.c:69 -#: extensions/image_viewer/gth-image-viewer-page.c:1593 -#: gthumb/gth-browser.c:1887 +#: extensions/image_viewer/gth-image-viewer-page.c:1631 +#: gthumb/gth-browser.c:1863 msgid "Could not save the file" msgstr "Dosya kaydedilemedi" @@ -2580,69 +2633,65 @@ msgid "Adjust color curves" msgstr "Renk eğrilerini ayarla" -#: extensions/file_tools/gth-file-tool-effects.c:358 +#: extensions/file_tools/gth-file-tool-effects.c:359 msgid "Special Effects" msgstr "Özel Efektler" #. Translators: this is the name of a filter that produces warmer colors -#: extensions/file_tools/gth-file-tool-effects.c:402 +#: extensions/file_tools/gth-file-tool-effects.c:403 msgid "Warmer" msgstr "Daha Sıcak" #. Translators: this is the name of a filter that produces cooler colors -#: extensions/file_tools/gth-file-tool-effects.c:446 +#: extensions/file_tools/gth-file-tool-effects.c:447 msgid "Cooler" msgstr "Daha soğuk" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:494 +#: extensions/file_tools/gth-file-tool-effects.c:495 msgid "Soil" msgstr "Toprak" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:543 +#: extensions/file_tools/gth-file-tool-effects.c:544 msgid "Desert" msgstr "Çöl" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:591 +#: extensions/file_tools/gth-file-tool-effects.c:592 msgid "Arctic" msgstr "Artik" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:639 +#: extensions/file_tools/gth-file-tool-effects.c:640 msgid "Mangos" msgstr "Mango" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:687 +#: extensions/file_tools/gth-file-tool-effects.c:688 msgid "Fresh Blue" msgstr "Taze Mavi" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:734 +#: extensions/file_tools/gth-file-tool-effects.c:735 msgid "Cherry" msgstr "Kiraz" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:783 +#: extensions/file_tools/gth-file-tool-effects.c:784 msgid "Vintage" msgstr "Eski" #. Translators: this is the name of an image filter -#: extensions/file_tools/gth-file-tool-effects.c:905 +#: extensions/file_tools/gth-file-tool-effects.c:906 msgid "Blurred Edges" msgstr "Bulanık Kenarlar" #. Translators: this is the name of an image filter that produces darker edges -#: extensions/file_tools/gth-file-tool-effects.c:940 +#: extensions/file_tools/gth-file-tool-effects.c:941 msgid "Vignette" msgstr "Etrafını Sil" -#: extensions/file_tools/gth-file-tool-flip.c:90 -msgid "Flip" -msgstr "Çevir" - #: extensions/file_tools/gth-file-tool-flip.c:91 msgid "Flip the image vertically" msgstr "Resmi dikey olarak döndür" @@ -2659,7 +2708,7 @@ msgid "_Average" msgstr "_Ortalama" -#: extensions/file_tools/gth-file-tool-grayscale.c:497 +#: extensions/file_tools/gth-file-tool-grayscale.c:498 msgid "Grayscale" msgstr "Gri tonlama" @@ -2667,10 +2716,6 @@ msgid "Lomo" msgstr "Lomo" -#: extensions/file_tools/gth-file-tool-mirror.c:90 -msgid "Mirror" -msgstr "Yansı" - #: extensions/file_tools/gth-file-tool-mirror.c:91 msgid "Mirror the image horizontally" msgstr "Resmi yatay olarak yansıt" @@ -2681,22 +2726,18 @@ #: extensions/file_tools/gth-file-tool-redo.c:77 msgid "Redo" -msgstr "Tekrarla" +msgstr "Yinele" #. resize the original image -#: extensions/file_tools/gth-file-tool-resize.c:183 -#: extensions/resize_images/dlg-resize-images.c:172 +#: extensions/file_tools/gth-file-tool-resize.c:185 +#: extensions/resize_images/dlg-resize-images.c:169 #: gthumb/gth-filter-grid.c:573 msgid "Resizing images" -msgstr "Resim yeniden boyutlandırılıyor" - -#: extensions/file_tools/gth-file-tool-resize.c:838 -msgid "Resize" -msgstr "Yeniden Boyutlandır" +msgstr "Resimler yeniden boyutlandırılıyor" #: extensions/file_tools/gth-file-tool-rotate-left.c:90 -#: extensions/image_rotation/callbacks.c:46 -#: extensions/image_rotation/callbacks.c:177 +#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:163 msgid "Rotate Left" msgstr "Sola Döndür" @@ -2705,8 +2746,8 @@ msgstr "Resmi saat yönünün tersine 90 derece döndür" #: extensions/file_tools/gth-file-tool-rotate-right.c:90 -#: extensions/image_rotation/callbacks.c:47 -#: extensions/image_rotation/callbacks.c:185 +#: extensions/image_rotation/callbacks.c:54 +#: extensions/image_rotation/callbacks.c:171 msgid "Rotate Right" msgstr "Sağa Döndür" @@ -2719,12 +2760,12 @@ msgstr "Döndür" #: extensions/file_tools/gth-file-tool-save-as.c:70 -#: gthumb/resources/gears-menu.ui:24 +#: gthumb/resources/gears-menu.ui:21 msgid "Save As…" msgstr "Farklı Kaydet…" #: extensions/file_tools/gth-file-tool-save.c:66 -#: gthumb/resources/gears-menu.ui:19 +#: gthumb/resources/gears-menu.ui:17 msgid "Save" msgstr "Kaydet" @@ -2767,7 +2808,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:438 msgid "_View" -msgstr "_Göster" +msgstr "_Görüntüle" #: extensions/find_duplicates/data/ui/find-duplicates-dialog.ui:454 #: gthumb/gth-tags-entry.c:1148 gthumb/gtk-utils.h:39 @@ -2780,7 +2821,7 @@ #: extensions/find_duplicates/data/ui/find-duplicates.ui:32 #: extensions/rename_series/data/ui/rename-series.ui:27 -#: extensions/search/data/ui/search-editor.ui:20 +#: extensions/search/data/ui/search-editor.ui:73 msgid "Start _at:" msgstr "Başlan_gıç:" @@ -2795,7 +2836,7 @@ msgstr "Kopyaları Bul" #: extensions/find_duplicates/dlg-find-duplicates.c:106 -#: extensions/search/actions.c:81 +#: extensions/search/actions.c:80 msgid "_Find" msgstr "_Ara" @@ -2912,10 +2953,17 @@ msgstr "Açık aramalardan gi_zle" #: extensions/flicker_utils/dlg-export-to-flickr.c:164 -#: extensions/webalbums/gth-web-exporter.c:1842 +#: extensions/webalbums/gth-web-exporter.c:1826 msgid "_Open in the Browser" msgstr "Tarayıcıda _Aç" +#: extensions/flicker_utils/dlg-import-from-flickr.c:320 +#: gthumb/gth-file-selection-info.c:140 +#, c-format +msgid "%d file" +msgid_plural "%d files" +msgstr[0] "%d dosya" + #: extensions/flicker_utils/dlg-import-from-flickr.c:345 #: extensions/picasaweb/dlg-import-from-picasaweb.c:279 msgid "Could not get the photo list" @@ -2986,7 +3034,7 @@ #: extensions/gstreamer_tools/actions.c:75 #, c-format msgid "Image saved as %s" -msgstr "Görüntü %s olarak kaydedildi" +msgstr "Resim %s olarak kaydedildi" #: extensions/gstreamer_tools/actions.c:101 msgctxt "Filename" @@ -2998,6 +3046,14 @@ msgid "Could not take a screenshot" msgstr "Ekran görüntüsü alınamadı" +#: extensions/gstreamer_tools/callbacks.c:32 +msgid "Screenshot" +msgstr "Ekran Görüntüsü" + +#: extensions/gstreamer_tools/callbacks.c:33 +msgid "Play/Pause" +msgstr "Oynat/Duraklat" + #: extensions/gstreamer_tools/data/ui/media-viewer-preferences.ui:13 msgid "Use hardware acceleration" msgstr "Donanım hızlandırması kullan" @@ -3007,8 +3063,8 @@ msgstr "_Ekran Görüntüleri konumu:" #: extensions/gstreamer_tools/data/ui/mediabar.ui:30 -#: extensions/gstreamer_tools/gth-media-viewer-page.c:600 -#: extensions/image_viewer/gth-image-viewer-page.c:1139 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:621 +#: extensions/image_viewer/gth-image-viewer-page.c:1181 msgid "Play" msgstr "Oynat" @@ -3022,7 +3078,7 @@ #: extensions/gstreamer_tools/data/ui/mediabar.ui:95 msgid "Restart when finished" -msgstr "Bitince tekrar başlat" +msgstr "Bitince yeniden başlat" #: extensions/gstreamer_tools/data/ui/mediabar.ui:131 msgid "Time:" @@ -3040,71 +3096,80 @@ msgid "Play audio and video files." msgstr "Ses ve video dosyalarını oynat." -# simge ismidir, çevirmeyin! #: extensions/gstreamer_tools/gstreamer_tools.extension.desktop.in.in:8 msgid "video-x-generic" msgstr "video-x-generic" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:573 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:594 msgid "Playing video" msgstr "Video oynatılıyor" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:586 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:607 msgid "Pause" msgstr "Durdur" -#: extensions/gstreamer_tools/gth-media-viewer-page.c:914 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:930 msgid "Take a screenshot" msgstr "Ekran görüntüsü al" -#: extensions/gstreamer_tools/main.c:32 gthumb/gth-main-default-tests.c:312 +#: extensions/gstreamer_tools/gth-media-viewer-page.c:937 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:51 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:71 +msgid "Fit to window" +msgstr "Pencereye sığdır" + +#: extensions/gstreamer_tools/main.c:34 +msgid "Audio/Video Player" +msgstr "Ses/Video Oynatıcı" + +#: extensions/gstreamer_tools/main.c:39 gthumb/gth-main-default-tests.c:314 msgid "Video" msgstr "Video" -#: extensions/gstreamer_tools/main.c:33 gthumb/gth-main-default-tests.c:319 +#: extensions/gstreamer_tools/main.c:40 gthumb/gth-main-default-tests.c:321 msgid "Audio" msgstr "Ses" -#: extensions/gstreamer_tools/main.c:40 +#: extensions/gstreamer_tools/main.c:47 msgid "Artist" msgstr "Sanatçı" -#: extensions/gstreamer_tools/main.c:41 +#: extensions/gstreamer_tools/main.c:48 #: extensions/webalbums/data/ui/web-album-exporter.ui:320 msgid "Album" msgstr "Albüm" -#: extensions/gstreamer_tools/main.c:42 +#: extensions/gstreamer_tools/main.c:49 msgid "Bitrate" msgstr "Bit oranı" -#: extensions/gstreamer_tools/main.c:43 +#: extensions/gstreamer_tools/main.c:50 msgid "Encoder" msgstr "Kodlayıcı" -#: extensions/gstreamer_tools/main.c:45 extensions/gstreamer_tools/main.c:50 +#: extensions/gstreamer_tools/main.c:52 extensions/gstreamer_tools/main.c:57 msgid "Codec" msgstr "Kodlayıcı/Çözücü" -#: extensions/gstreamer_tools/main.c:46 +#: extensions/gstreamer_tools/main.c:53 msgid "Framerate" msgstr "Kare sayısı" -#: extensions/gstreamer_tools/main.c:47 +#: extensions/gstreamer_tools/main.c:54 #: extensions/image_print/data/ui/print-layout.ui:723 msgid "Width" msgstr "Genişlik" -#: extensions/gstreamer_tools/main.c:48 +#: extensions/gstreamer_tools/main.c:55 #: extensions/image_print/data/ui/print-layout.ui:739 msgid "Height" msgstr "Yükseklik" -#: extensions/gstreamer_tools/main.c:51 +#: extensions/gstreamer_tools/main.c:58 msgid "Channels" msgstr "Kanallar" -#: extensions/gstreamer_tools/main.c:52 +#: extensions/gstreamer_tools/main.c:59 msgid "Sample rate" msgstr "Örnekleme oranı" @@ -3118,10 +3183,10 @@ #. Translators: this is an image size, such as 1024 × 768 #: extensions/gstreamer_utils/gstreamer-utils.c:402 -#: extensions/image_viewer/gth-image-viewer-page.c:1826 +#: extensions/image_viewer/gth-image-viewer-page.c:1864 #: extensions/image_viewer/gth-metadata-provider-image.c:253 #: extensions/raw_files/gth-metadata-provider-raw.c:96 -#: extensions/webalbums/gth-web-exporter.c:2449 gthumb/gtk-utils.c:894 +#: extensions/webalbums/gth-web-exporter.c:2434 gthumb/gtk-utils.c:944 #, c-format msgid "%d × %d" msgstr "%d × %d" @@ -3130,7 +3195,8 @@ msgid "Could not print the selected files" msgstr "Seçilen dosyalar yazdırılamadı" -#: extensions/image_print/callbacks.c:53 extensions/image_print/callbacks.c:59 +#: extensions/image_print/callbacks.c:38 extensions/image_print/callbacks.c:53 +#: extensions/image_print/callbacks.c:59 #: extensions/image_print/preferences.c:79 msgid "Print" msgstr "Yazdır" @@ -3188,19 +3254,19 @@ msgid "inches" msgstr "inç" -#: extensions/image_print/data/ui/print-preferences.ui:15 +#: extensions/image_print/data/ui/print-preferences.ui:14 msgid "Fonts" msgstr "Yazı tipleri" -#: extensions/image_print/data/ui/print-preferences.ui:92 +#: extensions/image_print/data/ui/print-preferences.ui:87 msgid "Select Caption Font" msgstr "Resim Yazısı Yazı Tipi Seç" -#: extensions/image_print/data/ui/print-preferences.ui:110 +#: extensions/image_print/data/ui/print-preferences.ui:104 msgid "Select Header Font" msgstr "Başlık Yazı Tipi Seç" -#: extensions/image_print/data/ui/print-preferences.ui:128 +#: extensions/image_print/data/ui/print-preferences.ui:121 msgid "Select Footer Font" msgstr "Alt Bilgi Yazıtipi Seç" @@ -3222,7 +3288,7 @@ #: extensions/image_print/gth-image-print-job.c:1848 #: gthumb/gth-image-loader.c:251 gthumb/gth-image-loader.c:375 -#: gthumb/gth-image-utils.c:131 gthumb/gth-image-utils.c:137 +#: gthumb/gth-image-utils.c:117 gthumb/gth-image-utils.c:123 msgid "No suitable loader available for this file type" msgstr "Bu dosya türü için uygun yükleyici mevcut değil" @@ -3233,7 +3299,7 @@ msgstr "“%s” yükleniyor" #: extensions/image_print/gth-load-image-info-task.c:170 -#: extensions/webalbums/gth-web-exporter.c:2723 +#: extensions/webalbums/gth-web-exporter.c:2714 msgid "Loading images" msgstr "Resimler yükleniyor" @@ -3245,23 +3311,22 @@ msgid "Allow to print images choosing the page layout." msgstr "Sayfa düzeni seçerek resimleri yazdırmaya izin ver." -# simge ismidir, çevirmeyin! #: extensions/image_print/image_print.extension.desktop.in.in:8 msgid "document-print" msgstr "document-print" -#: extensions/image_rotation/callbacks.c:52 +#: extensions/image_rotation/callbacks.c:59 msgid "Rotate Physically" msgstr "Fiziki Olarak Döndür" -#: extensions/image_rotation/callbacks.c:53 +#: extensions/image_rotation/callbacks.c:60 msgid "Reset the EXIF Orientation" -msgstr "EXIF Yönlendirmesini sıfırla" +msgstr "EXIF Yönlendirmesini Sıfırla" #: extensions/image_rotation/gth-reset-orientation-task.c:114 #: extensions/image_rotation/gth-transform-task.c:146 -#: extensions/webalbums/gth-web-exporter.c:2341 -#: extensions/webalbums/gth-web-exporter.c:2426 +#: extensions/webalbums/gth-web-exporter.c:2326 +#: extensions/webalbums/gth-web-exporter.c:2411 msgid "Saving images" msgstr "Resimler kaydediliyor" @@ -3271,12 +3336,12 @@ #: extensions/image_rotation/image_rotation.extension.desktop.in.in:4 msgid "Rotate images without data loss." -msgstr "Görüntüyü veri kaybı olmadan döndür." +msgstr "Resmi veri kaybı olmadan döndür." #: extensions/image_rotation/rotation-utils.c:105 #, c-format msgid "Problem transforming the image: %s" -msgstr "Görüntü dönüştürme sorunu: %s" +msgstr "Resim dönüştürme sorunu: %s" #: extensions/image_rotation/rotation-utils.c:110 msgid "" @@ -3291,11 +3356,11 @@ "For practical use, this mode gives the best looking results, but the " "transformation is not strictly lossless anymore." msgstr "" -"Bu dönüşüm resimlerin bir veya daha fazla kenarında küçük bozulmalar " -"görüntüleyebilir, çünkü resim boyutları 8 katı değil.\n" +"Bu dönüşüm resimlerin bir veya daha çok kenarında küçük bozulmalar " +"görüntüleyebilir, çünkü resim boyutları 8’in katı değil.\n" "\n" "Bozulma geri alınabilirdir. Eğer resim sonucu kabul edilebilir değilse, " -"basit şekilde özgün resme dönmek için dönüşümü ters çevirme uygulanabilir.\n" +"basit biçimde özgün resme dönmek için dönüşümü ters çevirme uygulanabilir.\n" "\n" "Ayrıca dönüştürülemez kenar piksellerinden vazgeçmeyi (ya da kırpmayı) " "seçebilirsiniz. Pratik kullanım için bu kip en iyi görünüm sonuçlarını verir " @@ -3309,77 +3374,198 @@ msgid "_Accept distortion" msgstr "Bozulmayı _Kabul Et" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:21 +#: extensions/image_viewer/callbacks.c:32 +msgid "Zoom in" +msgstr "Büyültmeyi arttır" + +#: extensions/image_viewer/callbacks.c:33 +msgid "Zoom out" +msgstr "Büyültmeyi azalt" + +#: extensions/image_viewer/callbacks.c:34 +msgid "Zoom 100%" +msgstr "%100 yakınlaştır" + +#: extensions/image_viewer/callbacks.c:35 +msgid "Zoom 200%" +msgstr "%200 yakınlaştır" + +#: extensions/image_viewer/callbacks.c:36 +msgid "Zoom 300%" +msgstr "%200 yakınlaştır" + +#: extensions/image_viewer/callbacks.c:38 +msgid "Zoom to fit" +msgstr "Sığdır" + +#: extensions/image_viewer/callbacks.c:39 +msgid "Zoom to fit if larger" +msgstr "Eğer büyükse sığdır" + +#: extensions/image_viewer/callbacks.c:40 +msgid "Zoom to fit width" +msgstr "Genişliğe sığdır" + +#: extensions/image_viewer/callbacks.c:41 +msgid "Zoom to fit width if larger" +msgstr "Eğer büyükse genişliğe sığdır" + +#: extensions/image_viewer/callbacks.c:42 +msgid "Zoom to fit height" +msgstr "Yüksekliğe sığdır" + +#: extensions/image_viewer/callbacks.c:43 +msgid "Zoom to fit height if larger" +msgstr "Eğer büyükse yüksekliğe sığdır" + +#: extensions/image_viewer/callbacks.c:45 +msgid "Undo edit" +msgstr "Düzenlemeyi geri al" + +#: extensions/image_viewer/callbacks.c:46 +msgid "Redo edit" +msgstr "Düzenlemeyi yinele" + +#: extensions/image_viewer/callbacks.c:48 +msgid "Scroll left" +msgstr "Sola kaydır" + +#: extensions/image_viewer/callbacks.c:49 +msgid "Scroll right" +msgstr "Sağa kaydır" + +#: extensions/image_viewer/callbacks.c:50 +msgid "Scroll up" +msgstr "Yukarı kaydır" + +#: extensions/image_viewer/callbacks.c:51 +msgid "Scroll down" +msgstr "Aşağı kaydır" + +#: extensions/image_viewer/callbacks.c:53 +msgid "Scroll left fast" +msgstr "Sola hızlı kaydır" + +#: extensions/image_viewer/callbacks.c:54 +msgid "Scroll right fast" +msgstr "Sağa hızlı kaydır" + +#: extensions/image_viewer/callbacks.c:55 +msgid "Scroll up fast" +msgstr "Yukarı hızlı kaydır" + +#: extensions/image_viewer/callbacks.c:56 +msgid "Scroll down fast" +msgstr "Aşağı hızlı kaydır" + +#: extensions/image_viewer/callbacks.c:58 +msgid "Scroll to center" +msgstr "Merkeze kaydır" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:20 msgid "After loading an image:" -msgstr "Bir resim yüklendikten sonra:" +msgstr "Resim yüklendikten sonra:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 -#: extensions/image_viewer/gth-image-viewer-page.c:1096 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:49 +#: extensions/image_viewer/gth-image-viewer-page.c:1138 msgid "Set to actual size" msgstr "Gerçek boyutuna ayarla" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:50 msgid "Keep previous zoom" msgstr "Önceki büyültmeyi koru" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:55 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:29 -msgid "Fit to window" -msgstr "Pencereye sığdır" - -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:56 -#: extensions/image_viewer/gth-image-viewer-page.c:1103 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:52 +#: extensions/image_viewer/gth-image-viewer-page.c:1145 msgid "Fit to window if larger" msgstr "Eğer büyükse pencereye uydur" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:57 -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:38 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:53 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:80 msgid "Fit to width" msgstr "Genişliğe sığdır" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:58 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:54 msgid "Fit to width if larger" msgstr "Eğer büyükse genişliğe sığdır" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:76 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:72 msgid "Reset scrollbar positions" msgstr "Kaydırma çubuğu konumlarını sıfırla" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:117 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:109 +msgid "Mouse wheel action:" +msgstr "Fare tekerleği eylemi:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:131 +msgctxt "zoom quality" +msgid "Change image" +msgstr "Resmi değiştir" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:148 +msgctxt "zoom quality" +msgid "Zoom image" +msgstr "Resmi yakınlaştır" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:187 msgid "Zoom quality:" msgstr "Yakınlaştırma kalitesi:" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:141 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:209 msgctxt "zoom quality" msgid "_High" msgstr "_Yüksek" -#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:158 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:226 msgctxt "zoom quality" msgid "_Low" msgstr "_Düşük" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:20 +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:266 +msgid "Transparency:" +msgstr "Saydamlık:" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:295 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:15 +msgid "Checkered" +msgstr "Damalı" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:296 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:24 +msgid "White" +msgstr "Beyaz" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:297 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:33 +msgid "Gray" +msgstr "Gri" + +#: extensions/image_viewer/data/ui/image-viewer-preferences.ui:298 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:42 +msgid "Black" +msgstr "Siyah" + +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:62 msgid "Automatic" msgstr "Kendiliğinden" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:47 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:89 msgid "Fit to height" msgstr "Yüksekliğe sığdır" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:64 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:106 msgid "50%" msgstr "%50" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:73 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:115 msgid "100%" msgstr "%100" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:82 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:124 msgid "200%" msgstr "%200" -#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:91 +#: extensions/image_viewer/data/ui/toolbar-zoom-menu.ui:133 msgid "300%" msgstr "%300" @@ -3387,31 +3573,44 @@ msgid "Histogram" msgstr "Çubuklu Grafik" -#: extensions/image_viewer/gth-image-viewer-page.c:77 +#: extensions/image_viewer/gth-image-viewer-page.c:83 msgid "Copy Image" msgstr "Resmi Kopyala" -#: extensions/image_viewer/gth-image-viewer-page.c:78 +#: extensions/image_viewer/gth-image-viewer-page.c:84 msgid "Paste Image" msgstr "Resmi Yapıştır" -#: extensions/image_viewer/gth-image-viewer-page.c:1131 +#: extensions/image_viewer/gth-image-viewer-page.c:1173 msgid "Apply the embedded color profile" msgstr "Gömülü renk profilini uygula" -#: extensions/image_viewer/gth-image-viewer-page.c:1146 +#: extensions/image_viewer/gth-image-viewer-page.c:1188 msgid "Next frame" msgstr "Sonraki kare" -#: extensions/image_viewer/gth-image-viewer-page.c:1765 +#: extensions/image_viewer/gth-image-viewer-page.c:1195 +msgid "Transparency" +msgstr "Saydamlık" + +#: extensions/image_viewer/gth-image-viewer-page.c:1803 msgid "Save Image" msgstr "Resmi Kaydet" -#: extensions/image_viewer/gth-image-viewer-page.c:2442 +#: extensions/image_viewer/gth-image-viewer-page.c:2519 msgid "Loading the original image" -msgstr "Gerçek resim yükleniyor" +msgstr "Özgün resim yükleniyor" -#: extensions/image_viewer/preferences.c:117 +#: extensions/image_viewer/main.c:36 +msgid "Scroll Image" +msgstr "Resmi Kaydır" + +#: extensions/image_viewer/main.c:37 +msgid "Image Editor" +msgstr "Resim Düzenleyici" + +#: extensions/image_viewer/preferences.c:158 gthumb/gth-main-default-types.c:42 +#: gthumb/gth-shortcuts-window.c:40 msgid "Viewer" msgstr "Gösterici" @@ -3483,38 +3682,38 @@ msgid "custom format" msgstr "özel biçim" -#: extensions/importer/gth-import-task.c:429 -#: extensions/importer/gth-import-task.c:464 -#: extensions/importer/gth-import-task.c:674 +#: extensions/importer/gth-import-task.c:431 +#: extensions/importer/gth-import-task.c:466 +#: extensions/importer/gth-import-task.c:678 msgid "Importing files" msgstr "Dosyalar içeri aktarılıyor" -#: extensions/importer/gth-import-task.c:623 +#: extensions/importer/gth-import-task.c:627 msgid "No file imported" msgstr "İçeri aktarılan dosya yok" -#: extensions/importer/gth-import-task.c:624 +#: extensions/importer/gth-import-task.c:628 msgid "The selected files are already present in the destination." msgstr "Seçilen dosyalar zaten hedefte var." -#: extensions/importer/gth-import-task.c:647 gthumb/gth-file-source-vfs.c:683 +#: extensions/importer/gth-import-task.c:651 gthumb/gth-file-source-vfs.c:683 msgid "Could not delete the files" msgstr "Dosyalar silinemedi" -#: extensions/importer/gth-import-task.c:648 +#: extensions/importer/gth-import-task.c:652 msgid "Delete operation not supported." msgstr "Silme işlemi desteklenmiyor." -#: extensions/importer/gth-import-task.c:735 +#: extensions/importer/gth-import-task.c:739 msgid "Last imported" msgstr "Son içeri aktarım" -#: extensions/importer/gth-import-task.c:839 +#: extensions/importer/gth-import-task.c:843 msgid "No file specified." msgstr "Dosya belirtilmedi." #. Translators: For example: Not enough free space in “/home/user/Images”.\n1.3 GB of space is required but only 300 MB is available. -#: extensions/importer/gth-import-task.c:876 +#: extensions/importer/gth-import-task.c:880 #, c-format msgid "" "Not enough free space in “%s”.\n" @@ -3523,7 +3722,8 @@ "“%s” konumunda yeterli boş alan yok.\n" "%s alan gerekli fakat sadece %s kullanılabilir alan var." -#: extensions/list_tools/callbacks.c:174 extensions/list_tools/callbacks.c:183 +#: extensions/list_tools/callbacks.c:148 extensions/list_tools/callbacks.c:157 +#: extensions/list_tools/main.c:31 msgid "Tools" msgstr "Araçlar" @@ -3609,51 +3809,51 @@ #: extensions/list_tools/data/ui/script-editor.ui:488 msgid "Quote the text " -msgstr "Metni göster " +msgstr "Metni alıntıla " #: extensions/list_tools/data/ui/script-editor.ui:534 msgid "_Command:" msgstr "_Komut:" -#: extensions/list_tools/data/ui/tools-menu.ui:13 gthumb/gth-filterbar.c:314 +#: extensions/list_tools/data/ui/tools-menu.ui:15 gthumb/gth-filterbar.c:314 msgid "Personalize…" msgstr "Kişiselleştir…" -#: extensions/list_tools/dlg-personalize-scripts.c:252 +#: extensions/list_tools/dlg-personalize-scripts.c:250 msgid "Script" msgstr "Betik" -#: extensions/list_tools/dlg-personalize-scripts.c:266 -#: gthumb/gth-accel-button.c:229 +#: extensions/list_tools/dlg-personalize-scripts.c:264 +#: gthumb/dlg-preferences-shortcuts.c:229 gthumb/gth-accel-button.c:256 msgid "Shortcut" msgstr "Kısayol" -#: extensions/list_tools/dlg-personalize-scripts.c:280 +#: extensions/list_tools/dlg-personalize-scripts.c:278 #: gthumb/dlg-personalize-filters.c:252 msgid "Show" msgstr "Göster" -#: extensions/list_tools/dlg-personalize-scripts.c:350 +#: extensions/list_tools/dlg-personalize-scripts.c:368 msgid "Could not save the script" msgstr "Betik kaydedilemedi" -#: extensions/list_tools/dlg-personalize-scripts.c:401 +#: extensions/list_tools/dlg-personalize-scripts.c:448 msgid "New Command" msgstr "Yeni Komut" -#: extensions/list_tools/dlg-personalize-scripts.c:428 +#: extensions/list_tools/dlg-personalize-scripts.c:475 msgid "Edit Command" msgstr "Komutu Düzenle" -#: extensions/list_tools/dlg-personalize-scripts.c:456 +#: extensions/list_tools/dlg-personalize-scripts.c:505 msgid "Are you sure you want to delete the selected command?" msgstr "Seçilen komutu silmek istediğinizden emin misiniz?" -#: extensions/list_tools/dlg-personalize-scripts.c:544 +#: extensions/list_tools/dlg-personalize-scripts.c:605 msgid "Commands" msgstr "Komutlar" -#: extensions/list_tools/gth-script-editor-dialog.c:247 +#: extensions/list_tools/gth-script-editor-dialog.c:279 #, c-format msgid "No command specified" msgstr "Hiçbir komut belirtilmemiş" @@ -3663,18 +3863,18 @@ msgid "Command exited abnormally with status %d" msgstr "Komut %d durumu ile anormal olarak çıktı" -#: extensions/list_tools/gth-script.c:481 +#: extensions/list_tools/gth-script.c:502 msgid "Enter a value:" -msgstr "Bir değer girin:" +msgstr "Değer girin:" -#: extensions/list_tools/gth-script.c:715 +#: extensions/list_tools/gth-script.c:736 #: extensions/webalbums/gth-web-exporter.c:561 #: extensions/webalbums/gth-web-exporter.c:573 #: extensions/webalbums/gth-web-exporter.c:581 msgid "Malformed command" msgstr "Hatalı biçimlendirilmiş komut" -#: extensions/list_tools/gth-script.c:770 +#: extensions/list_tools/gth-script.c:791 msgid "_Skip" msgstr "_Atla" @@ -3686,7 +3886,6 @@ msgid "Scripting and batch manipulation of files." msgstr "Dosyaları toplu işleme ve komut dizisi oluşturma." -# simge ismidir, çevirmeyin! #: extensions/list_tools/list_tools.extension.desktop.in.in:8 msgid "applications-engineering" msgstr "applications-engineering" @@ -3725,7 +3924,7 @@ msgstr "H_esaplar:" #: extensions/oauth/data/ui/oauth-ask-authorization.ui:54 -#: gthumb/gth-folder-tree.c:1080 +#: gthumb/gth-folder-tree.c:1160 msgid "Loading…" msgstr "Yükleniyor…" @@ -3764,11 +3963,11 @@ #: extensions/photo_importer/actions.c:71 #: extensions/photo_importer/dlg-photo-importer.c:628 msgid "Choose a folder" -msgstr "Bir klasör seç" +msgstr "Klasör seç" #: extensions/photo_importer/actions.c:75 msgid "Import" -msgstr "İçeri Aktar" +msgstr "İçe Aktar" #: extensions/photo_importer/callbacks.c:41 msgid "_Removable Device…" @@ -3780,11 +3979,11 @@ #: extensions/photo_importer/callbacks.c:63 msgid "I_mport From" -msgstr "Buradan İ_çeri Aktar" +msgstr "Buradan İ_çe Aktar" #: extensions/photo_importer/data/ui/photo-importer-options.ui:15 msgid "After importing from a device:" -msgstr "Bir aygıttan içeri aktardıktan sonra:" +msgstr "Aygıttan içe aktardıktan sonra:" #: extensions/photo_importer/data/ui/photo-importer-options.ui:42 msgid "_Rotate the images physically" @@ -3826,11 +4025,11 @@ #: extensions/photo_importer/dlg-photo-importer.c:356 #: extensions/photo_importer/dlg-photo-importer.c:396 gthumb/gth-file-list.c:42 -#: gthumb/gth-folder-tree.c:1107 +#: gthumb/gth-folder-tree.c:1186 msgid "(Empty)" msgstr "(Boş)" -#: extensions/photo_importer/dlg-photo-importer.c:361 gthumb/gth-browser.c:1798 +#: extensions/photo_importer/dlg-photo-importer.c:361 msgid "Getting the folder content…" msgstr "Klasör içeriği alınıyor…" @@ -3854,7 +4053,6 @@ msgid "Import photos from removable devices." msgstr "Fotoğrafları kaldırılabilir aygıttan içeri aktar." -# simge ismidir, çevirmeyin! #: extensions/photo_importer/photo_importer.extension.desktop.in.in:8 msgid "camera-photo" msgstr "camera-photo" @@ -3870,7 +4068,7 @@ #: extensions/picasaweb/data/ui/export-to-picasaweb.ui:267 #: gthumb/gth-main-default-metadata.c:39 msgid "Name" -msgstr "İsim" +msgstr "Ad" #: extensions/picasaweb/data/ui/export-to-picasaweb.ui:275 msgid "Used" @@ -3915,7 +4113,7 @@ #: extensions/raw_files/raw_files.extension.desktop.in.in:4 msgid "Allow to load raw format images." -msgstr "Raw biçimindeki görüntüleri yüklemeye izin ver." +msgstr "Raw biçimindeki resimleri yüklemeye izin ver." #: extensions/red_eye_removal/gth-file-tool-red-eye.c:471 msgid "Red Eye Removal" @@ -3931,7 +4129,7 @@ #: extensions/red_eye_removal/red_eye_removal.extension.desktop.in.in:4 msgid "Tool to remove the red-eye effect from a photo." -msgstr "Bir fotoğraftan gözlerdeki kırmızılığı kaldırmak için araç." +msgstr "Fotoğraftan gözlerdeki kırmızılığı kaldırmak için araç." #: extensions/rename_series/data/ui/code-selector.ui:105 msgid "digits" @@ -3959,6 +4157,7 @@ msgstr "Duru_m:" #: extensions/rename_series/data/ui/rename-series.ui:83 +#: gthumb/gth-browser-actions-entries.h:94 msgid "Help" msgstr "Yardım" @@ -4055,28 +4254,28 @@ msgid "Edit Template" msgstr "Şablonu Düzenle" -#: extensions/rename_series/dlg-rename-series.c:854 -#: gthumb/gth-folder-tree.c:1913 +#: extensions/rename_series/dlg-rename-series.c:860 +#: gthumb/gth-folder-tree.c:1974 msgid "_Rename" -msgstr "Yeniden İsimlendi_r" +msgstr "Yeniden Adlandı_r" -#: extensions/rename_series/dlg-rename-series.c:871 +#: extensions/rename_series/dlg-rename-series.c:877 msgid "Old Name" -msgstr "Eski İsim" +msgstr "Eski Ad" -#: extensions/rename_series/dlg-rename-series.c:882 +#: extensions/rename_series/dlg-rename-series.c:888 msgid "New Name" -msgstr "Yeni İsim" +msgstr "Yeni Ad" -#: extensions/rename_series/dlg-rename-series.c:960 +#: extensions/rename_series/dlg-rename-series.c:966 msgid "Keep original case" msgstr "Özgün yazı tipini koru" -#: extensions/rename_series/dlg-rename-series.c:961 +#: extensions/rename_series/dlg-rename-series.c:967 msgid "Convert to lower-case" msgstr "Küçük harfe dönüştür" -#: extensions/rename_series/dlg-rename-series.c:962 +#: extensions/rename_series/dlg-rename-series.c:968 msgid "Convert to upper-case" msgstr "Büyük harfe dönüştür" @@ -4113,28 +4312,28 @@ msgstr "Özgün en-boy oranlarını _koru" #: extensions/resize_images/data/ui/resize-images.ui:324 -#: gthumb/gth-main-default-metadata.c:45 gthumb/gth-toolbox.c:148 +#: gthumb/gth-main-default-metadata.c:46 gthumb/gth-toolbox.c:148 msgid "Format" msgstr "Biçim" -#: extensions/resize_images/dlg-resize-images.c:344 +#: extensions/resize_images/dlg-resize-images.c:341 msgid "Resize Images" msgstr "Resimleri Yeniden Boyutlandır" -#: extensions/resize_images/dlg-resize-images.c:430 +#: extensions/resize_images/dlg-resize-images.c:427 msgid "Keep the original format" msgstr "Özgün biçimi koru" #: extensions/resize_images/resize_images.extension.desktop.in.in:3 msgid "Resize images" -msgstr "Resimleri Yeniden Boyutlandır" +msgstr "Resimleri yeniden boyutlandır" #: extensions/resize_images/resize_images.extension.desktop.in.in:4 msgid "Resize series of images." msgstr "Resim serilerini yeniden boyutlandır." -#: extensions/search/actions.c:50 extensions/search/actions.c:123 -#: extensions/search/actions.c:129 +#: extensions/search/actions.c:50 extensions/search/actions.c:122 +#: extensions/search/actions.c:128 msgid "Could not perform the search" msgstr "Arama gerçekleştirilemedi" @@ -4142,48 +4341,48 @@ msgid "Search Result" msgstr "Arama Sonucu" -#: extensions/search/actions.c:79 +#: extensions/search/actions.c:78 msgid "Find" msgstr "Ara" -#: extensions/search/callbacks.c:69 +#: extensions/search/callbacks.c:44 extensions/search/callbacks.c:79 msgid "Find files" -msgstr "Dosyaları Bul" +msgstr "Dosyaları bul" -#: extensions/search/callbacks.c:103 +#: extensions/search/callbacks.c:113 msgid "Search again" -msgstr "Tekrar ara" +msgstr "Yeniden ara" #. Translators: This is not a verb, it's a name as in "the search properties". -#: extensions/search/callbacks.c:146 +#: extensions/search/callbacks.c:169 #: extensions/search/search.extension.desktop.in.in:3 msgid "Search" msgstr "Ara" -#: extensions/search/data/ui/search-editor.ui:112 -msgid "Rules:" -msgstr "Kurallar:" - -#: extensions/search/gth-search-editor.c:114 +#: extensions/search/gth-search-editor.c:117 #: gthumb/gth-filter-editor-dialog.c:167 msgid "all the following rules" msgstr "aşağıdaki tüm kurallar" -#: extensions/search/gth-search-editor.c:115 +#: extensions/search/gth-search-editor.c:118 #: gthumb/gth-filter-editor-dialog.c:168 msgid "any of the following rules" msgstr "aşağıdaki kurallardan herhangi biri" -#: extensions/search/gth-search-task.c:181 +#: extensions/search/gth-search-source-selector.c:130 +msgid "Add another location" +msgstr "Başka konum ekle" + +#: extensions/search/gth-search-task.c:194 #, c-format msgid "Files found so far: %s" msgstr "Şu ana kadar bulunan dosyalar: %s" -#: extensions/search/gth-search-task.c:272 +#: extensions/search/gth-search-task.c:340 msgid "Searching…" msgstr "Aranıyor…" -#: extensions/search/gth-search-task.c:279 +#: extensions/search/gth-search-task.c:347 msgid "Cancel the operation" msgstr "İşlemi iptal et" @@ -4191,21 +4390,36 @@ msgid "File search tool." msgstr "Dosya arama aracı." -# simge ismidir, çevirmeyin! #: extensions/search/search.extension.desktop.in.in:8 msgid "edit-find" msgstr "edit-find" -#: extensions/selections/callbacks.c:55 +#. Not real actions, used in the shorcut window for documentation. +#: extensions/selections/callbacks.c:57 extensions/selections/callbacks.c:58 +#: extensions/selections/callbacks.c:59 extensions/selections/callbacks.c:71 +msgid "Add to selection" +msgstr "Seçime ekle" + +#: extensions/selections/callbacks.c:61 extensions/selections/callbacks.c:62 +#: extensions/selections/callbacks.c:63 extensions/selections/callbacks.c:72 +msgid "Remove from selection" +msgstr "Seçimden kaldır" + +#: extensions/selections/callbacks.c:65 extensions/selections/callbacks.c:66 +#: extensions/selections/callbacks.c:67 extensions/selections/callbacks.c:73 +msgid "Show selection" +msgstr "Seçimini göster" + +#: extensions/selections/callbacks.c:83 msgid "Remove from Selection" msgstr "Seçimden kaldır" -#: extensions/selections/callbacks.c:100 +#: extensions/selections/callbacks.c:128 #, c-format msgid "Show selection %d" -msgstr "%d seçimini göster" +msgstr "%d. seçimi göster" -#: extensions/selections/callbacks.c:339 +#: extensions/selections/callbacks.c:365 #, c-format msgid "" "Use Alt-%d to add files to this selection, Ctrl-%d to view this selection." @@ -4218,6 +4432,7 @@ msgstr "Seçim %d" #: extensions/selections/gth-selections-manager.c:231 +#: extensions/selections/main.c:33 #: extensions/selections/selections.extension.desktop.in.in:3 msgid "Selections" msgstr "Seçimler" @@ -4226,57 +4441,73 @@ msgid "Advanced file selection." msgstr "Gelişmiş dosya seçimi." -# simge ismidir, çevirmeyin! #: extensions/selections/selections.extension.desktop.in.in:8 msgid "emblem-flag-gray" msgstr "emblem-flag-gray" -#: extensions/slideshow/callbacks.c:51 -msgid "Presentation" -msgstr "Sunum" +#: extensions/slideshow/callbacks.c:40 +msgid "Start presentation" +msgstr "Sunumu başlat" + +#: extensions/slideshow/callbacks.c:41 +msgid "Terminate presentation" +msgstr "Sunumu sonlandır" + +#: extensions/slideshow/callbacks.c:42 +msgid "Pause/Resume presentation" +msgstr "Sunumu duraklat/sürdür" + +#: extensions/slideshow/callbacks.c:43 gthumb/gth-browser-actions-entries.h:118 +msgid "Show next file" +msgstr "Sonraki dosyayı göster" + +#: extensions/slideshow/callbacks.c:44 gthumb/gth-browser-actions-entries.h:117 +msgid "Show previous file" +msgstr "Önceki dosyayı göster" -#: extensions/slideshow/callbacks.c:348 +#: extensions/slideshow/callbacks.c:65 extensions/slideshow/callbacks.c:362 #: extensions/slideshow/data/ui/slideshow-preferences.ui:65 -#: extensions/slideshow/preferences.c:162 +#: extensions/slideshow/main.c:286 extensions/slideshow/preferences.c:142 #: extensions/slideshow/slideshow.extension.desktop.in.in:3 -msgid "Slideshow" -msgstr "Slayt Gösterisi" +#: gthumb/gth-shortcuts-window.c:41 +msgid "Presentation" +msgstr "Sunum" #: extensions/slideshow/data/ui/slideshow-preferences.ui:46 msgid "_Personalize" msgstr "_Kişiselleştir" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:102 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:100 msgid "_Transition effect:" msgstr "_Geçiş efekti:" #. This is the first part of the phrase "change automatically, every x seconds", where x is an input control that let the user choose a value. -#: extensions/slideshow/data/ui/slideshow-preferences.ui:128 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:126 msgid "_Change automatically, every" msgstr "Kendiliğinden _değiştir, her" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:166 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:162 msgctxt "Every x seconds" msgid "seconds" msgstr "saniye" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:190 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:186 msgid "_Restart when finished" -msgstr "Bittiğinde _tekrar başlat" +msgstr "Bittiğinde _yeniden başlat" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:207 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:201 msgid "R_andom order" msgstr "R_astgele sırada" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:247 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:237 msgid "Playlist" msgstr "Çalma listesi" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:326 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:314 msgid "Add files to the playlist" msgstr "Dosyaları çalma listesine ekle" -#: extensions/slideshow/data/ui/slideshow-preferences.ui:347 +#: extensions/slideshow/data/ui/slideshow-preferences.ui:334 msgid "Remove the selected files" msgstr "Seçilen dosyaları kaldır" @@ -4292,47 +4523,46 @@ msgid "Random" msgstr "Rastgele" -#: extensions/slideshow/gth-slideshow.c:284 -msgid "Playing slideshow" -msgstr "Slayt gösterisi başlatılıyor" +#: extensions/slideshow/gth-slideshow.c:237 +msgid "Playing a presentation" +msgstr "Sunum oynatılıyor" -#: extensions/slideshow/main.c:297 +#: extensions/slideshow/main.c:303 msgid "Push from right" msgstr "Sağdan itin" -#: extensions/slideshow/main.c:303 +#: extensions/slideshow/main.c:309 msgid "Push from bottom" msgstr "Alttan itin" -#: extensions/slideshow/main.c:309 +#: extensions/slideshow/main.c:315 msgid "Slide from right" msgstr "Sağdan kaydır" -#: extensions/slideshow/main.c:315 +#: extensions/slideshow/main.c:321 msgid "Slide from bottom" msgstr "Alttan kaydır" -#: extensions/slideshow/main.c:321 +#: extensions/slideshow/main.c:327 msgid "Fade in" -msgstr "Artarak Giriş" +msgstr "Artarak giriş" -#: extensions/slideshow/main.c:327 +#: extensions/slideshow/main.c:333 msgid "Flip page" msgstr "Sayfayı döndür" -#: extensions/slideshow/main.c:333 +#: extensions/slideshow/main.c:339 msgid "Cube from right" msgstr "Sağdan küp" -#: extensions/slideshow/main.c:339 +#: extensions/slideshow/main.c:345 msgid "Cube from bottom" msgstr "Alttan küp" #: extensions/slideshow/slideshow.extension.desktop.in.in:4 -msgid "View images as a slideshow." -msgstr "Resimleri bir slayt gösterisi olarak görüntüle." +msgid "Play a presentation of images." +msgstr "Resimlerin sunumunu oynat." -# simge ismidir, çevirmeyin! #: extensions/slideshow/slideshow.extension.desktop.in.in:8 msgid "x-office-presentation" msgstr "x-office-presentation" @@ -4352,44 +4582,36 @@ #: extensions/webalbums/data/albumthemes/text.h:28 #, c-format msgid "Image %d of %d" -msgstr "Görüntü %d / %d" +msgstr "Resim %d / %d" #: extensions/webalbums/data/albumthemes/text.h:29 msgid "Index" msgstr "Dizin" -#: extensions/webalbums/data/albumthemes/text.h:30 -msgid "Next" -msgstr "Sonraki" - -#: extensions/webalbums/data/albumthemes/text.h:32 -msgid "Previous" -msgstr "Önceki" - #: extensions/webalbums/data/albumthemes/text.h:33 #, c-format msgid "View page %d" -msgstr "%d sayfasını görüntüle" +msgstr "%d. sayfayı görüntüle" #: extensions/webalbums/data/albumthemes/text.h:34 msgid "View the next image" -msgstr "Sonraki resmi göster" +msgstr "Sonraki resmi görüntüle" #: extensions/webalbums/data/albumthemes/text.h:35 msgid "View the next page" -msgstr "Sonraki sayfayı göster" +msgstr "Sonraki sayfayı görüntüle" #: extensions/webalbums/data/albumthemes/text.h:36 msgid "View the previous image" -msgstr "Önceki resmi göster" +msgstr "Önceki resmi görüntüle" #: extensions/webalbums/data/albumthemes/text.h:37 msgid "View the previous page" -msgstr "Önceki sayfayı göster" +msgstr "Önceki sayfayı görüntüle" #: extensions/webalbums/data/ui/web-album-exporter.ui:19 msgid "All images on a single image" -msgstr "Bütün resimler tek bir resimde" +msgstr "Tüm resimler tek resimde" #: extensions/webalbums/data/ui/web-album-exporter.ui:22 msgid "Adapts to the window width" @@ -4418,7 +4640,7 @@ #: extensions/webalbums/data/ui/web-album-exporter.ui:988 msgid "The current image number" -msgstr "Şu anki resim numarası" +msgstr "Geçerli resim sayısı" #: extensions/webalbums/data/ui/web-album-exporter.ui:1006 msgid "The total number of images" @@ -4426,7 +4648,7 @@ #: extensions/webalbums/data/ui/web-album-exporter.ui:1124 msgid "The file comment" -msgstr "Dosya açıklaması" +msgstr "Dosya yorumu" #: extensions/webalbums/data/ui/web-album-exporter.ui:1207 #: extensions/webalbums/data/ui/web-album-exporter.ui:1323 @@ -4449,36 +4671,36 @@ msgid "Web Album" msgstr "Web Albümü" -#: extensions/webalbums/gth-web-exporter.c:1803 +#: extensions/webalbums/gth-web-exporter.c:1787 msgid "Could not show the destination" msgstr "Hedef gösterilemedi" -#: extensions/webalbums/gth-web-exporter.c:1839 +#: extensions/webalbums/gth-web-exporter.c:1823 msgid "The album has been created successfully." -msgstr "Albüm başarılı bir şekilde oluşturuldu." +msgstr "Albüm başarılı biçimde oluşturuldu." -#: extensions/webalbums/gth-web-exporter.c:2107 -#: extensions/webalbums/gth-web-exporter.c:2135 +#: extensions/webalbums/gth-web-exporter.c:2092 +#: extensions/webalbums/gth-web-exporter.c:2120 msgid "Saving thumbnails" msgstr "Küçük resimler kaydediliyor" -#: extensions/webalbums/gth-web-exporter.c:2163 +#: extensions/webalbums/gth-web-exporter.c:2148 msgid "Saving HTML pages: Images" msgstr "HTML sayfaları kaydediliyor: Resimler" -#: extensions/webalbums/gth-web-exporter.c:2221 +#: extensions/webalbums/gth-web-exporter.c:2206 msgid "Saving HTML pages: Indexes" msgstr "HTML sayfaları kaydediliyor: Dizinler" -#: extensions/webalbums/gth-web-exporter.c:2506 +#: extensions/webalbums/gth-web-exporter.c:2491 msgid "Copying original images" msgstr "Özgün resimler kopyalanıyor" -#: extensions/webalbums/gth-web-exporter.c:2967 +#: extensions/webalbums/gth-web-exporter.c:2958 msgid "Could not find the style folder" msgstr "Biçem klasörü bulunamadı" -#: extensions/webalbums/gth-web-exporter.c:3005 +#: extensions/webalbums/gth-web-exporter.c:2996 msgid "Could not create a temporary folder" msgstr "Geçici klasör oluşturulamıyor" @@ -4490,9 +4712,9 @@ msgid "Create static web albums." msgstr "Değişmeyen web albümleri oluştur." -#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1109 -#: gthumb/gth-browser.c:1678 gthumb/gth-browser.c:6557 -#: gthumb/gth-browser.c:6576 gthumb/gth-browser.c:6600 +#: gthumb/dlg-location.c:200 gthumb/gth-browser.c:1170 +#: gthumb/gth-browser.c:6569 gthumb/gth-browser.c:6588 +#: gthumb/gth-browser.c:6612 gthumb/gth-vfs-tree.c:390 #, c-format msgid "Could not load the position “%s”" msgstr "“%s” konumuna yüklenemedi" @@ -4523,18 +4745,22 @@ #. add the page to the preferences dialog #: gthumb/dlg-preferences-browser.c:188 gthumb/dlg-preferences-extensions.c:65 +#: gthumb/gth-shortcuts-window.c:39 msgid "Browser" msgstr "Tarayıcı" -#: gthumb/dlg-preferences-extensions.c:61 gthumb/gth-filterbar.c:280 +#: gthumb/dlg-preferences-extensions.c:61 +msgctxt "Extensions" msgid "All" -msgstr "Bütün" +msgstr "Tümü" #: gthumb/dlg-preferences-extensions.c:62 +msgctxt "Extensions" msgid "Enabled" msgstr "Etkinleştirildi" #: gthumb/dlg-preferences-extensions.c:63 +msgctxt "Extensions" msgid "Disabled" msgstr "Devre dışı bırakıldı" @@ -4545,7 +4771,7 @@ #: gthumb/dlg-preferences-extensions.c:67 gthumb/gth-file-details.c:42 #: gthumb/gth-main-default-metadata.c:33 msgid "Metadata" -msgstr "Görüntüleyici" +msgstr "Üstveri" #: gthumb/dlg-preferences-extensions.c:68 msgid "File tools" @@ -4553,7 +4779,7 @@ #: gthumb/dlg-preferences-extensions.c:69 msgid "List tools" -msgstr "Araçları listele" +msgstr "Liste araçları" #: gthumb/dlg-preferences-extensions.c:70 msgid "Importers" @@ -4576,63 +4802,97 @@ msgstr "gthumb geliştirme takımı" #. add the page to the preferences dialog -#: gthumb/dlg-preferences-extensions.c:666 +#: gthumb/dlg-preferences-extensions.c:664 msgid "Extensions" msgstr "Uzantılar" -#: gthumb/dlg-preferences-extensions.c:715 +#: gthumb/dlg-preferences-extensions.c:713 msgid "Restart required" msgstr "Yeniden başlatma gerekli" -#: gthumb/dlg-preferences-extensions.c:716 +#: gthumb/dlg-preferences-extensions.c:714 msgid "You need to restart gthumb for these changes to take effect" msgstr "" "Değişikliklerin uygulanabilmesi için gthumb uygulamasını yeniden başlatmanız " "gerekmektedir" -#: gthumb/dlg-preferences-extensions.c:718 +#: gthumb/dlg-preferences-extensions.c:716 msgid "_Restart" msgstr "_Yeniden Başlat" +#: gthumb/dlg-preferences-shortcuts.c:294 +#: gthumb/dlg-preferences-shortcuts.c:369 gthumb/resources/gears-menu.ui:25 +msgid "Revert" +msgstr "Dön" + +#: gthumb/dlg-preferences-shortcuts.c:367 +msgid "Do you want to revert all the changes and use the default shortcuts?" +msgstr "" +"Tüm değişiklikleri geri almak ve öntanımlı kısayolları kullanmak istiyor " +"musun?" + +#: gthumb/dlg-preferences-shortcuts.c:541 +msgctxt "Shortcuts" +msgid "All" +msgstr "Tümü" + +#: gthumb/dlg-preferences-shortcuts.c:547 +msgctxt "Shortcuts" +msgid "Modified" +msgstr "Değiştirildi" + +#. add the page to the preferences dialog +#: gthumb/dlg-preferences-shortcuts.c:576 +msgid "Shortcuts" +msgstr "Kısayollar" + #: gthumb/dlg-sort-order.c:113 msgid "Sort By" msgstr "Buna Göre Sırala" #. For translators: This is a progress size indicator, for example: 230.4 MB of 512.8 MB -#: gthumb/gio-utils.c:1383 +#: gthumb/gio-utils.c:1059 #, c-format msgid "%s of %s" msgstr "%s/%s" -#: gthumb/gio-utils.c:1472 +#: gthumb/gio-utils.c:1148 #, c-format msgid "Moving “%s” to “%s”" msgstr "“%s” “%s” konumuna taşınıyor" -#: gthumb/gio-utils.c:1474 +#: gthumb/gio-utils.c:1150 #, c-format msgid "Copying “%s” to “%s”" msgstr "“%s” “%s” konumuna kopyalanıyor" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Moving files" msgstr "Dosyalar taşınıyor" -#: gthumb/gio-utils.c:1885 +#: gthumb/gio-utils.c:1561 msgid "Copying files" msgstr "Dosyalar kopyalanıyor" -#: gthumb/gio-utils.c:1886 +#: gthumb/gio-utils.c:1562 gthumb/gio-utils.c:1793 gthumb/gio-utils.c:1923 msgid "Getting file information" msgstr "Dosya bilgisi alınıyor" +#: gthumb/gio-utils.c:1728 +msgid "Deleting files" +msgstr "Dosyalar siliniyor" + +#: gthumb/gio-utils.c:1869 +msgid "Moving files to trash" +msgstr "Dosyalar çöpe taşınıyor" + #. hour:minutes:seconds #. Translators: This is a time format, like "9∶05∶02" for 9 #. * hours, 5 minutes, and 2 seconds. You may change "∶" to #. * the separator that your locale uses or use "%Id" instead #. * of "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3298 +#: gthumb/glib-utils.c:2027 #, c-format msgctxt "long time format" msgid "%d∶%02d∶%02d" @@ -4644,31 +4904,31 @@ #. * separator that your locale uses or use "%Id" instead of #. * "%d" if your locale uses localized digits. #. -#: gthumb/glib-utils.c:3307 +#: gthumb/glib-utils.c:2036 #, c-format msgctxt "short time format" msgid "%d∶%02d" msgstr "%d∶%02d" -#: gthumb/gth-accel-button.c:239 +#: gthumb/gth-accel-dialog.c:121 msgid "Press a combination of keys to use as shortcut." -msgstr "Kısayol olarak kullanmak için bir tuş bileşimine basın." +msgstr "Kısayol olarak kullanmak için tuş bileşimine basın." -#: gthumb/gth-accel-button.c:240 +#: gthumb/gth-accel-dialog.c:122 msgid "Press Esc to cancel" msgstr "İptal etmek için Esc’ye basınız" #: gthumb/gth-application.c:52 msgid "Open a new window" -msgstr "Yeni Bir Pencere Aç" +msgstr "Yeni Pencere Aç" #: gthumb/gth-application.c:56 msgid "Start in fullscreen mode" msgstr "Tam ekran kipinde başlat" #: gthumb/gth-application.c:60 -msgid "Automatically start a slideshow" -msgstr "Slayt gösterisini kendiliğinden başlat" +msgid "Automatically start a presentation" +msgstr "Sunumu kendiliğinden başlat" #: gthumb/gth-application.c:64 msgid "Automatically import digital camera photos" @@ -4678,11 +4938,11 @@ msgid "Show version" msgstr "Sürümü göster" -#: gthumb/gth-application.c:198 +#: gthumb/gth-application.c:171 msgid "— Image browser and viewer" msgstr "— Resim tarayıcısı ya da göstericisi" -#: gthumb/gth-browser-actions-callbacks.c:127 +#: gthumb/gth-browser-actions-callbacks.c:100 msgid "" "gThumb 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 " @@ -4693,7 +4953,7 @@ "Kamu Lisansı şartları altında; Lisans sürümü 2 ya da (isteğinize göre) daha " "sonraki sürümleriyle değiştirebilir ve yeniden dağıtabilirsiniz." -#: gthumb/gth-browser-actions-callbacks.c:131 +#: gthumb/gth-browser-actions-callbacks.c:104 msgid "" "gThumb is distributed in the hope that it will be useful, but WITHOUT ANY " "WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS " @@ -4704,7 +4964,7 @@ "YOKTUR; aynı zamanda BİR AMACA UYGUNLUĞU ya da SATILABİLİRLİĞİ garanti " "etmez. Daha fazla ayrıntı için GNU Genel Kamu Lisansını inceleyin." -#: gthumb/gth-browser-actions-callbacks.c:135 +#: gthumb/gth-browser-actions-callbacks.c:108 msgid "" "You should have received a copy of the GNU General Public License along with " "gThumb. If not, see http://www.gnu.org/licenses/." @@ -4713,11 +4973,11 @@ "olmalısınız. Eğer almadıysanız, http://www.gnu.org/licenses/ adresine " "bakabilirsiniz." -#: gthumb/gth-browser-actions-callbacks.c:155 +#: gthumb/gth-browser-actions-callbacks.c:127 msgid "An image viewer and browser for GNOME." -msgstr "GNOME için tarayıcı ve resim gösterici." +msgstr "GNOME için resim tarayıcı ve gösterici." -#: gthumb/gth-browser-actions-callbacks.c:158 +#: gthumb/gth-browser-actions-callbacks.c:130 msgid "translator-credits" msgstr "" "Görkem Çetin \n" @@ -4727,108 +4987,184 @@ "Serdar Sağlam \n" "Sabri Ünal " -#: gthumb/gth-browser-actions-entries.h:86 gthumb/resources/app-menu.ui:20 +#: gthumb/gth-browser-actions-entries.h:93 gthumb/resources/gears-menu.ui:7 +msgid "New Window" +msgstr "Yeni Pencere" + +#: gthumb/gth-browser-actions-entries.h:95 gthumb/resources/gears-menu.ui:49 msgid "Keyboard Shortcuts" msgstr "Klavye Kısayolları" -#: gthumb/gth-browser-actions-entries.h:87 gthumb/gtk-utils.h:40 -#: gthumb/resources/app-menu.ui:24 -msgid "_Help" -msgstr "_Yardım" +#: gthumb/gth-browser-actions-entries.h:96 +msgid "Quit" +msgstr "Çık" + +#: gthumb/gth-browser-actions-entries.h:99 +msgid "Show browser" +msgstr "Tarayıcıyı göster" + +#: gthumb/gth-browser-actions-entries.h:100 +msgid "Close window" +msgstr "Pencereyi kapat" + +#: gthumb/gth-browser-actions-entries.h:102 +msgid "Open location" +msgstr "Konum aç" + +#: gthumb/gth-browser-actions-entries.h:103 gthumb/gth-browser.c:4568 +#: gthumb/gth-browser.c:4586 gthumb/resources/file-list-menu.ui:7 +#: gthumb/resources/file-menu.ui:7 +msgid "Fullscreen" +msgstr "Tam Ekran" -#: gthumb/gth-browser-actions-entries.h:88 -msgid "_About gThumb" -msgstr "gThumb H_akkında" +#: gthumb/gth-browser-actions-entries.h:104 +msgid "Revert image to saved" +msgstr "Kayıtlı resme döndür" + +#: gthumb/gth-browser-actions-entries.h:105 +msgid "Sidebar" +msgstr "Kenar çubuğu" + +#: gthumb/gth-browser-actions-entries.h:106 +msgid "Statusbar" +msgstr "Durum çubuğu" + +#: gthumb/gth-browser-actions-entries.h:107 +msgid "Thumbnails list" +msgstr "Küçük resimler listesi" + +#: gthumb/gth-browser-actions-entries.h:109 +msgid "Load previous location" +msgstr "Önceki konumu yükle" + +#: gthumb/gth-browser-actions-entries.h:110 +msgid "Load next location" +msgstr "Sonraki konumu yükle" + +#: gthumb/gth-browser-actions-entries.h:111 +msgid "Load parent folder" +msgstr "Üst konumu yükle" + +#: gthumb/gth-browser-actions-entries.h:112 +msgid "Load home" +msgstr "Ev’i yükle" + +#: gthumb/gth-browser-actions-entries.h:113 +msgid "Reload location" +msgstr "Konumu yeniden yükle" + +#: gthumb/gth-browser-actions-entries.h:114 +msgid "Show/Hide hidden files" +msgstr "Gizli dosyaları göster/gizle" + +#: gthumb/gth-browser-actions-entries.h:115 +msgid "Change sorting order" +msgstr "Sıralama ölçütünü değiştir" + +#: gthumb/gth-browser-actions-entries.h:119 +msgid "Show first file" +msgstr "İlk dosyayı göster" + +#: gthumb/gth-browser-actions-entries.h:120 +msgid "Show last file" +msgstr "Son dosyayı göster" + +#: gthumb/gth-browser-actions-entries.h:122 +msgid "Image tools" +msgstr "Resim araçları" + +#: gthumb/gth-browser-actions-entries.h:123 +msgid "File properties" +msgstr "Dosya özellikleri" + +#: gthumb/gth-browser-actions-entries.h:125 +msgid "Select all" +msgstr "Tümünü seç" + +#: gthumb/gth-browser-actions-entries.h:126 +msgid "Select none" +msgstr "Hiçbirini seçme" -#: gthumb/gth-browser.c:381 +#: gthumb/gth-browser.c:408 msgid "[modified]" msgstr "[değiştirildi]" -#: gthumb/gth-browser.c:833 +#: gthumb/gth-browser.c:873 #, c-format msgid "%d file selected (%s)" msgid_plural "%d files selected (%s)" msgstr[0] "%d seçilen dosya (%s)" -#: gthumb/gth-browser.c:868 +#: gthumb/gth-browser.c:908 #, c-format msgid "%s of free space" msgstr "%s boş alan" -#: gthumb/gth-browser.c:1782 gthumb/gth-browser.c:1809 +#: gthumb/gth-browser.c:1786 gthumb/gth-browser.c:1802 #, c-format msgid "No suitable module found for %s" msgstr "%s için uygun modül bulunamadı" -#: gthumb/gth-browser.c:1931 +#: gthumb/gth-browser.c:1907 #, c-format msgid "Save changes to file “%s”?" msgstr "Değişiklikler “%s” dosyasına kaydedilsin mi?" -#: gthumb/gth-browser.c:1936 +#: gthumb/gth-browser.c:1912 msgid "If you don’t save, changes to the file will be permanently lost." msgstr "" "Eğer kaydetmezseniz, dosyadaki değişiklikler kalıcı olarak kaybolacaktır." -#: gthumb/gth-browser.c:1937 +#: gthumb/gth-browser.c:1913 msgid "Do _Not Save" msgstr "Kaydet_mez" -#: gthumb/gth-browser.c:2421 gthumb/gth-browser.c:4621 +#: gthumb/gth-browser.c:2401 gthumb/gth-browser.c:4594 msgid "Accept" msgstr "Kabul Et" -#: gthumb/gth-browser.c:2421 gthumb/gtk-utils.h:37 +#: gthumb/gth-browser.c:2401 gthumb/gtk-utils.h:37 msgid "_Close" msgstr "_Kapat" -#: gthumb/gth-browser.c:3015 gthumb/gth-source-tree.c:185 +#: gthumb/gth-browser.c:2939 msgid "Could not change name" msgstr "Ad değiştirilemedi" -#: gthumb/gth-browser.c:3470 +#: gthumb/gth-browser.c:3436 msgid "Modified" msgstr "Değiştirildi" -#: gthumb/gth-browser.c:4543 +#: gthumb/gth-browser.c:4516 msgid "Go to the previous visited location" msgstr "Ziyaret edilmiş önceki yere git" -#: gthumb/gth-browser.c:4549 +#: gthumb/gth-browser.c:4522 msgid "Go to the next visited location" msgstr "Ziyaret edilmiş sonraki yere git" -#: gthumb/gth-browser.c:4557 +#: gthumb/gth-browser.c:4530 msgid "History" msgstr "Geçmiş" -#: gthumb/gth-browser.c:4571 +#: gthumb/gth-browser.c:4544 msgid "View the folders" msgstr "Klasörleri göster" -#: gthumb/gth-browser.c:4586 +#: gthumb/gth-browser.c:4559 msgid "Edit file" msgstr "Dosya Düzenle" -#: gthumb/gth-browser.c:4595 gthumb/gth-browser.c:4613 -#: gthumb/resources/file-list-menu.ui:7 gthumb/resources/file-menu.ui:7 -msgid "Fullscreen" -msgstr "Tam Ekran" - -#: gthumb/gth-browser.c:6558 +#: gthumb/gth-browser.c:6570 #, c-format msgid "File type not supported" msgstr "Dosya türü desteklenmiyor" -#: gthumb/gth-browser.c:6601 +#: gthumb/gth-browser.c:6613 #, c-format msgid "No suitable module found" msgstr "Uygun modül bulunamadı" -#: gthumb/gth-delete-task.c:67 -msgid "Deleting files" -msgstr "Dosyalar siliniyor" - #: gthumb/gth-extensions.c:206 #, c-format msgid "Could not open the module “%s”: %s" @@ -4847,26 +5183,26 @@ msgid "_Show Format Options" msgstr "Biçim Seçeneklerini _Göster" -#: gthumb/gth-file-source-vfs.c:227 +#: gthumb/gth-file-source-vfs.c:228 msgid "Computer" msgstr "Bilgisayar" -#: gthumb/gth-file-source-vfs.c:785 +#: gthumb/gth-file-source-vfs.c:787 msgid "" "The files cannot be moved to the Trash. Do you want to delete them " "permanently?" msgstr "Dosyalar Çöpe taşınamadı. Onları kalıcı olarak silmek istiyor musunuz?" -#: gthumb/gth-file-source-vfs.c:796 +#: gthumb/gth-file-source-vfs.c:798 msgid "Could not move the files to the Trash" msgstr "Dosyalar Çöpe taşınamadı" -#: gthumb/gth-file-source-vfs.c:845 +#: gthumb/gth-file-source-vfs.c:843 #, c-format msgid "Are you sure you want to permanently delete “%s”?" msgstr "“%s” dosyasını kalıcı olarak silmek istediğinizden emin misiniz?" -#: gthumb/gth-file-source-vfs.c:848 +#: gthumb/gth-file-source-vfs.c:846 #, c-format msgid "Are you sure you want to permanently delete the %'d selected file?" msgid_plural "" @@ -4874,7 +5210,7 @@ msgstr[0] "" "Seçilen %'d dosyasını kalıcı olarak silmek istediğinizden emin misiniz?" -#: gthumb/gth-file-source-vfs.c:858 +#: gthumb/gth-file-source-vfs.c:856 msgid "If you delete a file, it will be permanently lost." msgstr "Eğer dosyayı silerseniz, kalıcı olarak kaybolacak." @@ -4911,11 +5247,15 @@ msgid "No limit specified" msgstr "Sınır belirtilmemiş" -#: gthumb/gth-folder-tree.c:1391 +#: gthumb/gth-filterbar.c:280 +msgid "All" +msgstr "Tüm" + +#: gthumb/gth-folder-tree.c:1465 msgid "(Open Parent)" msgstr "(Üst Klasörü Aç)" -#: gthumb/gth-folder-tree.c:1911 +#: gthumb/gth-folder-tree.c:1972 msgid "Enter the new name:" msgstr "Yeni ad girin:" @@ -4939,78 +5279,94 @@ #: gthumb/gth-image-saver.c:185 #, c-format msgid "Could not find a suitable module to save the image as “%s”" -msgstr "Resmi “%s” olarak kaydetmek için uygun bir modül bulunamadı" +msgstr "Resmi, “%s” olarak kaydetmek için uygun modül bulunamadı" #: gthumb/gth-load-file-data-task.c:111 msgid "Reading file information" msgstr "Dosya bilgisi okunuyor" -#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:349 +#: gthumb/gth-location-chooser-dialog.c:194 gthumb/resources/gears-menu.ui:35 +msgid "Hidden Files" +msgstr "Gizli Dosyalar" + +#: gthumb/gth-location-chooser.c:274 gthumb/gth-main-default-metadata.c:45 +msgid "Location" +msgstr "Konum" + +#: gthumb/gth-location-chooser.c:572 +msgid "Locations" +msgstr "Konumlar" + +#: gthumb/gth-location-chooser.c:617 +msgid "Other…" +msgstr "Diğer…" + +#: gthumb/gth-main-default-metadata.c:40 gthumb/gth-main-default-tests.c:351 msgid "Size" msgstr "Boyut" #: gthumb/gth-main-default-metadata.c:41 +msgid "Bytes" +msgstr "Bayt" + +#: gthumb/gth-main-default-metadata.c:42 msgctxt "the file mtime" msgid "Modified Date & Time" msgstr "Değiştirme Tarihi ve Zamanı" -#: gthumb/gth-main-default-metadata.c:42 +#: gthumb/gth-main-default-metadata.c:43 msgid "Type" msgstr "Tür" -#: gthumb/gth-main-default-metadata.c:44 -msgid "Location" -msgstr "Konum" - -#: gthumb/gth-main-default-metadata.c:47 +#: gthumb/gth-main-default-metadata.c:48 msgid "Duration" msgstr "Süre" -#: gthumb/gth-main-default-metadata.c:49 +#: gthumb/gth-main-default-metadata.c:50 msgid "Exposure Settings" msgstr "Pozlama Ayarları" -#: gthumb/gth-main-default-metadata.c:50 +#: gthumb/gth-main-default-metadata.c:51 msgid "Aperture" msgstr "Diyafram açıklığı" -#: gthumb/gth-main-default-metadata.c:51 +#: gthumb/gth-main-default-metadata.c:52 msgid "ISO Speed" msgstr "ISO Hızı" -#: gthumb/gth-main-default-metadata.c:52 +#: gthumb/gth-main-default-metadata.c:53 msgid "Exposure Time" msgstr "Pozlama Süresi" -#: gthumb/gth-main-default-metadata.c:53 +#: gthumb/gth-main-default-metadata.c:54 msgid "Shutter Speed" msgstr "Objektif Hızı" -#: gthumb/gth-main-default-metadata.c:54 +#: gthumb/gth-main-default-metadata.c:55 msgid "Focal Length" msgstr "Odak Uzaklığı" -#: gthumb/gth-main-default-metadata.c:55 +#: gthumb/gth-main-default-metadata.c:56 msgid "Flash" msgstr "Işık" -#: gthumb/gth-main-default-metadata.c:56 +#: gthumb/gth-main-default-metadata.c:57 msgid "Camera Model" msgstr "Kamera Modeli" -#: gthumb/gth-main-default-metadata.c:57 +#: gthumb/gth-main-default-metadata.c:58 msgid "Color Profile" msgstr "Renk Profili" -#: gthumb/gth-main-default-metadata.c:59 +#: gthumb/gth-main-default-metadata.c:60 msgid "General Date & Time" msgstr "Genel Tarih ve Zaman" -#: gthumb/gth-main-default-metadata.c:66 +#: gthumb/gth-main-default-metadata.c:67 msgid "Author" msgstr "Yazar" -#: gthumb/gth-main-default-metadata.c:67 +#: gthumb/gth-main-default-metadata.c:68 msgid "Copyright" msgstr "Telif Hakkı" @@ -5042,43 +5398,55 @@ msgid "aspect ratio" msgstr "en boy oranı" -#: gthumb/gth-main-default-tests.c:284 +#: gthumb/gth-main-default-tests.c:286 msgid "All Files" msgstr "Tüm Dosyalar" -#: gthumb/gth-main-default-tests.c:291 +#: gthumb/gth-main-default-tests.c:293 msgid "All Images" msgstr "Tüm Resimler" -#: gthumb/gth-main-default-tests.c:298 +#: gthumb/gth-main-default-tests.c:300 msgid "JPEG Images" msgstr "JPEG Resimler" -#: gthumb/gth-main-default-tests.c:305 +#: gthumb/gth-main-default-tests.c:307 msgid "Raw Photos" msgstr "RAW Fotoğraflar" -#: gthumb/gth-main-default-tests.c:326 +#: gthumb/gth-main-default-tests.c:328 msgid "Media" msgstr "Ortam" -#: gthumb/gth-main-default-tests.c:333 +#: gthumb/gth-main-default-tests.c:335 msgid "Text Files" msgstr "Metin Dosyaları" -#: gthumb/gth-main-default-tests.c:341 +#: gthumb/gth-main-default-tests.c:343 msgid "Filename" -msgstr "Dosya ismi" +msgstr "Dosya adı" -#: gthumb/gth-main-default-tests.c:373 +#: gthumb/gth-main-default-tests.c:375 msgid "Title (embedded)" msgstr "Başlık (gömülü)" -#: gthumb/gth-main-default-tests.c:381 +#: gthumb/gth-main-default-tests.c:383 msgid "Description (embedded)" msgstr "Açıklama (gömülü)" -#: gthumb/gth-overwrite-dialog.c:246 +#: gthumb/gth-main-default-types.c:39 +msgid "Show/Hide" +msgstr "Göster/Gizle" + +#: gthumb/gth-main-default-types.c:40 +msgid "Navigation" +msgstr "Gezinme" + +#: gthumb/gth-main-default-types.c:41 +msgid "File Manager" +msgstr "Dosya Yöneticisi" + +#: gthumb/gth-overwrite-dialog.c:326 msgid "Overwrite" msgstr "Üzerine yaz" @@ -5103,7 +5471,7 @@ #: gthumb/gth-tags-entry.c:1090 msgid "Show all the tags" -msgstr "Bütün etiketleri göster" +msgstr "Tüm etiketleri göster" #: gthumb/gth-tags-file.c:235 msgid "Holidays" @@ -5174,8 +5542,8 @@ msgstr "eşit ya da daha küçükse" #: gthumb/gth-test-aspect-ratio.c:369 gthumb/gth-test-category.c:421 -#: gthumb/gth-test-simple.c:1030 gthumb/gth-test-simple.c:1051 -#: gthumb/gth-test-simple.c:1077 +#: gthumb/gth-test-simple.c:1084 gthumb/gth-test-simple.c:1105 +#: gthumb/gth-test-simple.c:1131 #, c-format msgid "The test definition is incomplete" msgstr "Tamamlanmamış test tanımlaması" @@ -5200,7 +5568,7 @@ #: gthumb/gth-test-selector.c:259 msgid "Add a new rule" -msgstr "Yeni bir kural ekle" +msgstr "Yeni kural ekle" #: gthumb/gth-test-selector.c:269 msgid "Remove this rule" @@ -5246,31 +5614,52 @@ msgid "Rotation" msgstr "Döndürme" -#: gthumb/gth-trash-task.c:67 -msgid "Moving files to trash" -msgstr "Dosyalar çöpe taşınıyor" +#: gthumb/gth-window.c:1020 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s». Do you " +"want to reassign it to this action instead?" +msgstr "" +"«%s» tuş birleşimi zaten «%s» eylemine atanmış. Bunun yerine bu eyleme " +"yeniden atamak ister misin?" + +#: gthumb/gth-window.c:1028 +msgid "Reassign" +msgstr "Yeniden ata" + +#: gthumb/gth-window.c:1046 +#, c-format +msgid "" +"The key combination «%s» is already assigned to the action «%s» and cannot " +"be changed." +msgstr "«%s» tuş birleşimi zaten «%s» eylemine atanmış ve değiştirilemez." + +#: gthumb/gth-window.c:1050 +#, c-format +msgid "The key combination «%s» is already assigned and cannot be changed." +msgstr "«%s» tuş birleşimi zaten atanmış ve değiştirilemez." -#: gthumb/gtk-utils.c:338 +#: gthumb/gtk-utils.c:352 msgid "Could not display help" msgstr "Yardım gösterilemedi" -#: gthumb/gtk-utils.c:661 gthumb/gtk-utils.c:668 +#: gthumb/gtk-utils.c:711 gthumb/gtk-utils.c:718 msgid "Could not launch the application" msgstr "Uygulama başlatılamadı" -#: gthumb/gtk-utils.c:771 +#: gthumb/gtk-utils.c:821 msgid "_Copy Here" msgstr "Buraya _Kopyala" -#: gthumb/gtk-utils.c:776 +#: gthumb/gtk-utils.c:826 msgid "_Move Here" msgstr "Buraya _Taşı" -#: gthumb/gtk-utils.c:781 +#: gthumb/gtk-utils.c:831 msgid "_Link Here" msgstr "Buraya _Bağla" -#: gthumb/gtk-utils.c:790 +#: gthumb/gtk-utils.c:840 msgid "Cancel" msgstr "İptal et" @@ -5278,6 +5667,10 @@ msgid "_Cancel" msgstr "_İptal Et" +#: gthumb/gtk-utils.h:40 gthumb/resources/gears-menu.ui:53 +msgid "_Help" +msgstr "_Yardım" + #: gthumb/gtk-utils.h:41 msgid "_New" msgstr "_Yeni" @@ -5302,46 +5695,59 @@ msgid "_Upload" msgstr "_Yükle" -#: gthumb/resources/app-menu.ui:7 -msgid "New _Window" -msgstr "Yeni _Pencere" - -#: gthumb/resources/app-menu.ui:29 -msgid "_About" -msgstr "_Hakkında" - -#: gthumb/resources/app-menu.ui:33 -msgid "_Quit" -msgstr "_Çık" - #: gthumb/resources/folder-menu.ui:7 msgid "Open in New Window" msgstr "Yeni Pencerede Aç" -#: gthumb/resources/gears-menu.ui:7 -msgid "New Window" -msgstr "Yeni Pencere" - -#: gthumb/resources/gears-menu.ui:12 +#: gthumb/resources/gears-menu.ui:11 msgid "Open Location…" msgstr "Konumu Aç…" -#: gthumb/resources/gears-menu.ui:28 -msgid "Revert" -msgstr "Dön" - -#: gthumb/resources/gears-menu.ui:35 +#: gthumb/resources/gears-menu.ui:31 msgid "Sort By…" msgstr "Buna Göre Sırala…" -#: gthumb/resources/gears-menu.ui:39 -msgid "Hidden Files" -msgstr "Gizli Dosyalar" +#: gthumb/resources/gears-menu.ui:57 +msgid "_About gThumb" +msgstr "gThumb H_akkında" #: gthumb/resources/history-menu.ui:9 msgid "_Delete History" msgstr "Geçmişi _Sil" +#~ msgid "A_dd and Close" +#~ msgstr "E_kle ve Kapat" + +#~ msgid "%s Metadata" +#~ msgstr "%s Üstverisi" + +#~ msgid "Sa_ve and Close" +#~ msgstr "Ka_ydet ve Kapat" + +#~ msgid "%s Tags" +#~ msgstr "%s Etiketleri" + +#~ msgid "Assign Tags" +#~ msgstr "Etiket Ata" + +#~ msgid "Choose startup folder" +#~ msgstr "Başlangıç klasörü seç" + +#~ msgid "Slideshow" +#~ msgstr "Slayt Gösterisi" + +#~ msgid "Playing slideshow" +#~ msgstr "Slayt gösterisi başlatılıyor" + +#~ msgid "View images as a slideshow." +#~ msgstr "Resimleri bir slayt gösterisi olarak görüntüle." + +#~ msgid "New _Window" +#~ msgstr "Yeni _Pencere" + +#~ msgid "_About" +#~ msgstr "_Hakkında" + #~ msgid "gthumb" #~ msgstr "gThumb" @@ -5474,10 +5880,6 @@ #~ msgid "Could not move the folder to the Trash" #~ msgstr "Klasör Çöpe taşınamadı" -#~| msgid "Image Toolbar" -#~ msgid "Image tools" -#~ msgstr "Resim araçları" - #~ msgid "Basic tools to modify images." #~ msgstr "Resimleri değiştirmek için basit araçlar." @@ -5569,9 +5971,6 @@ #~ msgid "(click on the image to view it at original size)" #~ msgstr "(özgün boyuta getirmek için şekle tıklayınız)" -#~ msgid "Bytes" -#~ msgstr "Bayt" - #~ msgid "Exposure mode" #~ msgstr "Açma kipi" @@ -5713,9 +6112,6 @@ #~ msgid "Preserve l_uminosity" #~ msgstr "Işığı Ko_ru" -#~ msgid "Scale Image" -#~ msgstr "Resmi Ölçekle" - #~ msgid "_Hue:" #~ msgstr "_Renk tonu:" @@ -5873,15 +6269,9 @@ #~ msgid "Activate items with a single click" #~ msgstr "Tek tıklamayla öğeleri etkinleştir" -#~ msgid "Black" -#~ msgstr "Siyah" - #~ msgid "C_lick policy:" #~ msgstr "Tıklama _kuralı:" -#~ msgid "Checked" -#~ msgstr "Kontrol et" - #~ msgid "Co_mments" #~ msgstr "Açıklamala_r" @@ -5927,9 +6317,6 @@ #~ msgid "Text beside icons" #~ msgstr "Simgelerin yanında metin" -#~ msgid "White" -#~ msgstr "Beyaz" - #~ msgid "_Filenames" #~ msgstr "_Dosya isimleri" @@ -6506,9 +6893,6 @@ #~ msgid "[Press 'c' to add a comment]" #~ msgstr "[Açıklama eklemek için 'c' ye basın]" -#~ msgid "No image" -#~ msgstr "Resim yok" - #~ msgid "1 image (%s)" #~ msgstr "1 resim (%s)" @@ -6545,9 +6929,6 @@ #~ msgid "_Edit" #~ msgstr "_Düzenle" -#~ msgid "Show/_Hide" -#~ msgstr "Göster/_Gizle" - #~ msgid "S_ort Images" #~ msgstr "Resi_mleri Sırala" @@ -6572,18 +6953,12 @@ #~ msgid "Create a new window" #~ msgstr "Yeni bir pencere oluştur" -#~ msgid "Close this window" -#~ msgstr "Pencereyi kapat" - #~ msgid "Open selected images with an application" #~ msgstr "Seçilmiş resimleri uygulamayla aç" #~ msgid "_Revert" #~ msgstr "_Dön" -#~ msgid "Revert to saved image" -#~ msgstr "Kayıtlı resme dön" - #~ msgid "_Print..." #~ msgstr "Yazdı_r..." @@ -6600,7 +6975,7 @@ #~ msgstr "Resmi uygulamayla aç" #~ msgid "_Rename..." -#~ msgstr "Yeniden İsimlendi_r..." +#~ msgstr "Yeniden _Adlandır..." #~ msgid "D_uplicate" #~ msgstr "_Kopyala" @@ -6719,9 +7094,6 @@ #~ msgid "Move the current folder to the Trash" #~ msgstr "Geçerli klasörü Çöpe taşı" -#~ msgid "Copy current folder" -#~ msgstr "Geçerli klasöre kopyala" - #~ msgid "Assign categories to the current folder" #~ msgstr "Geçerli klasöre kategori ata" @@ -6788,18 +7160,9 @@ #~ msgid "_Rotate" #~ msgstr "_Döndür" -#~ msgid "Zoom in" -#~ msgstr "Büyültmeyi arttır" - -#~ msgid "Zoom out" -#~ msgstr "Büyültmeyi azalt" - #~ msgid "Actual size" #~ msgstr "Güncel boyut" -#~ msgid "Zoom to fit window" -#~ msgstr "Büyültmeyi pencereye uydur" - #~ msgid "Step A_nimation" #~ msgstr "A_nimasyon Adımı" @@ -6893,9 +7256,6 @@ #~ msgid "View or hide the toolbar of this window" #~ msgstr "Bu pencerede araç çubuğunu göster ya da gizle" -#~ msgid "_Statusbar" -#~ msgstr "_Durum Çubuğu" - #~ msgid "View or hide the statusbar of this window" #~ msgstr "Bu pencerede durum çubuğu göster ya da gizle" @@ -6921,7 +7281,7 @@ #~ msgstr "İsi_m" #~ msgid "Sort images by name" -#~ msgstr "Resimleri isimlerine göre sırala" +#~ msgstr "Resimleri adlarına göre sırala" #~ msgid "by _Path" #~ msgstr "Yo_l" @@ -7031,9 +7391,6 @@ #~ msgid "Zoom _Out" #~ msgstr "_Büyültmeyi Azalt" -#~ msgid "Zoom to _Fit" -#~ msgstr "Büyültmeyi _Uydur" - #~ msgid "_Actual Size" #~ msgstr "Güncel _Boyut" diff -Nru gthumb-3.8.3/README gthumb-3.9.1/README --- gthumb-3.8.3/README 2019-12-23 18:51:13.000000000 +0000 +++ gthumb-3.9.1/README 1970-01-01 00:00:00.000000000 +0000 @@ -1,132 +0,0 @@ -This is the distribution of gThumb, an image viewer and browser utility -for the GNOME environment. - -Information about gthumb can be found at https://wiki.gnome.org/Apps/Gthumb. - - -What is gThumb -============== - - * gThumb is an image browser - - + Browse your hard disk showing you thumbnails of image files. - + Thumbnails are saved in the same database used by Nautilus so you - don't waste disk space. - + Automatically update the content of a folder. - + Copy, move, delete images and folders. - + Bookmarks of folders and catalogs. - - * gThumb is an image viewer - - + View single images (including GIF animations). Supported image - types are: BMP, JPEG, GIF, PNG, TIFF, TGA, ICO, XPM. - + Optional support for RAW and HDR (high dynamic range) images. - + View EXIF data attached to JPEG images. - + View in fullscreen mode. - + View images rotated, flipped, mirrored. - - * gThumb is an image organizer - - + Add comments to images. - + Organize images in catalogs, catalogs in libraries. - + Print images and comments. - + Search for images on you hard disk and save the result as a catalog. - Search criteria remain attached to the catalog so you can update it - when you want. - - * gThumb is an image editor - - + Change image hue, saturation, lightness, contrast and adjust colors. - + Scale and rotate images. - + Save images in the following formats: JPEG, PNG, TIFF, TGA. - + Crop images. - + Red-eye removal tool. - - * gThumb is an advanced tool - - + Import images from a digital camera. - + Slide Shows. - + Set an image as Desktop background. - + Create index image. - + Rename images in series. - + Convert image format. - + Change images date and time. - + JPEG lossless transformations. - + Find duplicated images. - - -Licensing -========= - - This program is released under the terms of the GNU General Public - License (GNU GPL). - - You can find a copy of the license in the file COPYING. - - -Compiling -========= - - In order to build this program you need a working GNOME environment - version 2 or greater, with the development tools installed properly. - The following is the detailed list of libraries you need: - - * glib version >= 2.36.0 - * gtk version >= 3.16 - * gthread - * gmodule - * gio-unix - - While not mandatory, these libraries greatly increase gThumb's - basic usefulness: - - * exiv2 version >= 0.21 - (embedded metadata support) - - * gstreamer version >= 1.0.0 - (video support) - - * libjpeg - * libtiff - (jpeg and tiff writing support) - - - These libraries are optional: - - * clutter version >= 1.12.0 - * clutter-gtk version >= 1.0.0 - (These libraries provide enhanced slideshow effects.) - - * libraw - (This adds some support for RAW photos) - - - -Extensions -========== - - gThumb has a plug-in system for extensions. Some standard features - are implemented as extensions and are supplied with the standard - distribution. Users may write (and share) additional extensions. - - See https://wiki.gnome.org/Apps/Gthumb/extensions for details. - - -Download -======== - - * Tar archives can be found here: - - http://ftp.gnome.org/pub/GNOME/sources/gthumb - - * You can download and compile the latest development version using the - following commands: - - git clone https://gitlab.gnome.org/GNOME/gthumb.git - cd gthumb - meson build - ninja -C build - sudo ninja -C build install - - More development information is available at - https://wiki.gnome.org/Apps/Gthumb/development diff -Nru gthumb-3.8.3/README.md gthumb-3.9.1/README.md --- gthumb-3.8.3/README.md 1970-01-01 00:00:00.000000000 +0000 +++ gthumb-3.9.1/README.md 2020-03-07 19:03:13.393623400 +0000 @@ -0,0 +1,120 @@ +# gThumb + +An image viewer and browser utility for the GNOME environment. +More information can be found at https://wiki.gnome.org/Apps/Gthumb. + +![Image](https://gitlab.gnome.org/GNOME/gthumb/raw/master/data/appdata/ss-viewer.png) + +## Features + + * Image browser + + + Browse your hard disk showing you thumbnails of image files. + + Thumbnails are saved in the same database used by Nautilus so you + don't waste disk space. + + Automatically update the content of a folder. + + Copy, move, delete images and folders. + + Bookmarks of folders and catalogs. + + * Image viewer + + + View single images (including GIF animations). Supported image + types are: BMP, JPEG, GIF, PNG, TIFF, TGA, ICO, XPM. + + Optional support for RAW and HDR (high dynamic range) images. + + View EXIF data attached to JPEG images. + + View in fullscreen mode. + + View images rotated, flipped, mirrored. + + * Image organizer + + + Add comments to images. + + Organize images in catalogs, catalogs in libraries. + + Print images and comments. + + Search for images on you hard disk and save the result as a catalog. + Search criteria remain attached to the catalog so you can update it + when you want. + + * Image editor + + + Change image hue, saturation, lightness, contrast and adjust colors. + + Scale and rotate images. + + Save images in the following formats: JPEG, PNG, TIFF, TGA. + + Crop images. + + Red-eye removal tool. + + * Advanced tools + + + Import images from a digital camera. + + Slide Shows. + + Set an image as Desktop background. + + Create index image. + + Rename images in series. + + Convert image format. + + Change images date and time. + + JPEG lossless transformations. + + Find duplicated images. + +## Extensions + + gThumb has a plug-in system for extensions. Some standard features + are implemented as extensions and are supplied with the standard + distribution. Users may write (and share) additional extensions. + + See https://wiki.gnome.org/Apps/Gthumb/extensions for details. + +## Licensing + + This program is released under the terms of the GNU General Public + License (GNU GPL), either version 2, or (at your option) any later version. + + You can find a copy of the license in the file COPYING. + +## Dependencies + + Mandatory libraries: + + * glib >= 2.38.0 + * gtk >= 3.16 + * libpng + * zlib + * libjpeg + * gsettings-desktop-schemas + + While not mandatory, the following libraries greatly increase gThumb's basic usefulness: + + * exiv2 - embedded metadata support + * gstreamer, gstreamer-plugins-base, gstreamer-video - audio/video support + * libtiff - tiff writing support + + Other optional libraries: + + * libraw - some support for RAW photos + * librsvg - display SVG images + * libwebp - display and save WebP images + * lcms2, colord - color profile support + * champlain, champlain-gtk - view the place a photo was taken on a map + * clutter, clutter-gtk - enhanced slideshow effects + * libsoup, json-glib, webkit2gtk, libsecret - upload images to and + download images from some web services such as Facebook, Flickr + * brasero - write images and comments to CDs + * bison, flex - web albums + +## Download + + Tar archives: + + http://ftp.gnome.org/pub/GNOME/sources/gthumb + + Git repository: + + git clone https://gitlab.gnome.org/GNOME/gthumb.git + +## Installation + + cd gthumb + meson build + ninja -C build + sudo ninja -C build install + + More development information is available at + https://wiki.gnome.org/Apps/Gthumb/development.