diff -Nru selene-16.9~287~ubuntu14.04.1/build-deb-for-dist.sh selene-17.4.1/build-deb-for-dist.sh --- selene-16.9~287~ubuntu14.04.1/build-deb-for-dist.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/build-deb-for-dist.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,60 @@ +#!/bin/bash + +app_name='selene' +app_fullname='Selene' +dsc="${app_name}*.dsc" + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd $DIR + +if [ -z "$1" ]; then + echo "" + echo "E: Distribution name not specified" + echo "" + echo "Syntax: build-deb-for-dist " + echo "Example: build-deb-for-dist trusty amd64" + echo "" + exit 1 +else + dist=$1 +fi + +if [ -z "$2" ]; then + echo "" + echo "E: Architecture not specified" + echo "" + echo "Syntax: build-deb-for-dist " + echo "Example: build-deb-for-dist trusty amd64" + echo "" + exit 1 +else + arch=$2 +fi + + +sh build-source.sh +cd ../builds + +# build installer ------------------------------------- + +#for arch in amd64 +#do + +rm -rf "${dist}-${arch}" +mkdir -p "${dist}-${arch}" + +sudo pbuilder --build --distribution ${dist} --architecture ${arch} --buildresult "${dist}-${arch}" --basetgz "../pbuilder/build/${dist}/base-${arch}.tgz" ${dsc} + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cp "${dist}-${arch}"/* ./ + +#done + +cd "$backup" diff -Nru selene-16.9~287~ubuntu14.04.1/build-installer.sh selene-17.4.1/build-installer.sh --- selene-16.9~287~ubuntu14.04.1/build-installer.sh 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/build-installer.sh 2017-04-23 09:44:51.000000000 +0000 @@ -25,6 +25,12 @@ rm -rf ${arch} mkdir -p ${arch} +echo "" +echo "******************************************************************************" +echo "Creating Installer (${arch})..." +echo "******************************************************************************" +echo "" + sudo pbuilder --build --buildresult ${arch} --basetgz "${tgz}base-${arch}.tgz" ${dsc} #check for errors @@ -34,6 +40,9 @@ exit 1 fi +PKGNAME=$(grep -R Source: ${arch}/*.changes | awk '{print $2}') +VERSION=$(grep -R Version: ${arch}/*.changes | awk '{print "v"$2}') + dpkg-deb -x ${arch}/${app_name}*.deb ${arch}/extracted cp -p --no-preserve=ownership -t ${arch}/extracted ./install.sh @@ -41,7 +50,7 @@ cp -p --no-preserve=ownership -t ${arch}/extracted/usr/share/${app_name}/libs ${libs}/${arch}/libjson-glib-1.0.so.0 chmod --recursive 0755 ${arch}/extracted/usr/share/${app_name} -makeself ${arch}/extracted ./${app_name}-latest-${arch}.run "${app_fullname} (${arch})" ./install.sh +makeself ${arch}/extracted ./${app_name}-${VERSION}-${arch}.run "${app_fullname} (${arch})" ./install.sh #check for errors if [ $? -ne 0 ]; then @@ -50,8 +59,9 @@ exit 1 fi -cp -p --no-preserve=ownership ./${arch}/${app_name}*.deb ./${app_name}-latest-${arch}.deb +cp -p --no-preserve=ownership ./${arch}/${app_name}*.deb ./${app_name}-${VERSION}-${arch}.deb done + cd "$backup" diff -Nru selene-16.9~287~ubuntu14.04.1/debian/bzr-builder.manifest selene-17.4.1/debian/bzr-builder.manifest --- selene-16.9~287~ubuntu14.04.1/debian/bzr-builder.manifest 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/debian/bzr-builder.manifest 1970-01-01 00:00:00.000000000 +0000 @@ -1,2 +0,0 @@ -# bzr-builder format 0.3 deb-version {debupstream}~287 -lp:selene revid:tony.george.kol@gmail.com-20160914151617-qh91t0rncvnku9u1 diff -Nru selene-16.9~287~ubuntu14.04.1/debian/changelog selene-17.4.1/debian/changelog --- selene-16.9~287~ubuntu14.04.1/debian/changelog 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/debian/changelog 2017-04-23 09:44:51.000000000 +0000 @@ -1,8 +1,29 @@ -selene (16.9~287~ubuntu14.04.1) trusty; urgency=low +selene (17.4.1-0~201704230812~ubuntu14.04.1) trusty; urgency=low * Auto build. - -- Tony George Wed, 14 Sep 2016 15:23:25 +0000 + -- Tony George Sun, 23 Apr 2017 09:44:51 +0000 + +selene (17.4.1) xenial; urgency=low + + * Fixed issues with newer Gtk versions + + * Use GtkStackSwitcher in app settings window + + * Use GtkSidebar in encoder settings window + + * Subs: Added support for muxing ASS subs in MKV + + * AppSettings: Show OK button instead of Save & Cancel + + * AppSettings: Save settings if window is closed directly + + * Removed dependency on realpath + + * Added Dutch translation by Heimen Stoffels + + -- Tony George Sat, 22 Apr 2017 10:00:00 +0530 + selene (16.9) xenial; urgency=low diff -Nru selene-16.9~287~ubuntu14.04.1/debian/control selene-17.4.1/debian/control --- selene-16.9~287~ubuntu14.04.1/debian/control 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/debian/control 2017-04-23 09:44:51.000000000 +0000 @@ -2,7 +2,7 @@ Section: video Priority: extra Maintainer: Tony George -Build-Depends: debhelper (>= 8.0.0), autotools-dev, valac-0.26, libgtk-3-dev, libgee-0.8-dev, libjson-glib-dev +Build-Depends: debhelper (>= 8.0.0), autotools-dev, valac, libgtk-3-dev, libgee-0.8-dev, libjson-glib-dev Standards-Version: 3.9.3 Homepage: http://teejeetech.blogspot.in/p/selene-media-encoder.html #Vcs-Git: git://git.debian.org/collab-maint/hello.git @@ -10,8 +10,8 @@ Package: selene Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends}, realpath, rsync, mediainfo, ffmpeg | libav-tools, mplayer | mplayer2, vorbis-tools, x264, lame, mkvtoolnix -Recommends: opus-tools, vpx-tools, libkate-tools, gpac, sox, x265, libfdk-aac0 +Depends: ${shlibs:Depends}, ${misc:Depends}, rsync, mediainfo, ffmpeg | libav-tools, mplayer | mplayer2 | mpv, fdkaac, vorbis-tools, x264, lame, mkvtoolnix +Recommends: opus-tools, vpx-tools, libkate-tools, gpac, sox, x265 Description: Audio-video converter for Linux. Utility for converting audio and video files to OGG,OGV, MKV,MP4,WEBM,OPUS,AAC,FLAC,MP3 and WAV formats. Provides a simple diff -Nru selene-16.9~287~ubuntu14.04.1/debian/git-build-recipe.manifest selene-17.4.1/debian/git-build-recipe.manifest --- selene-16.9~287~ubuntu14.04.1/debian/git-build-recipe.manifest 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/debian/git-build-recipe.manifest 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,2 @@ +# git-build-recipe format 0.4 deb-version {debupstream}-0~201704230812 +lp:selene git-commit:958bf648c79c4d5da82569117fb6fb2f18601695 diff -Nru selene-16.9~287~ubuntu14.04.1/git-add-origin.sh selene-17.4.1/git-add-origin.sh --- selene-16.9~287~ubuntu14.04.1/git-add-origin.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/git-add-origin.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/bash + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd "$DIR" + +echo "Adding Git origin..." +git remote add origin git@github.com:teejee2008/selene-media-converter.git + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cd "$backup" + + + + diff -Nru selene-16.9~287~ubuntu14.04.1/git-pull.sh selene-17.4.1/git-pull.sh --- selene-16.9~287~ubuntu14.04.1/git-pull.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/git-pull.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/bash + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd "$DIR" + +echo "Pulling remote changes to local Git repo..." +git pull origin master + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cd "$backup" + + diff -Nru selene-16.9~287~ubuntu14.04.1/git-push.sh selene-17.4.1/git-push.sh --- selene-16.9~287~ubuntu14.04.1/git-push.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/git-push.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/bash + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd "$DIR" + +echo "Pushing local changes to Git repo..." +git push -u origin master + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cd "$backup" + + diff -Nru selene-16.9~287~ubuntu14.04.1/git-reinit-remote-repo.sh selene-17.4.1/git-reinit-remote-repo.sh --- selene-16.9~287~ubuntu14.04.1/git-reinit-remote-repo.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/git-reinit-remote-repo.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,19 @@ +#!/bin/bash + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd "$DIR" + +echo "Re-initializing Git repo and pushing changes..." +git push --force --set-upstream origin master + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cd "$backup" + + diff -Nru selene-16.9~287~ubuntu14.04.1/git-sync.sh selene-17.4.1/git-sync.sh --- selene-16.9~287~ubuntu14.04.1/git-sync.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/git-sync.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,21 @@ +#!/bin/bash + +backup=`pwd` +DIR="$( cd "$( dirname "$0" )" && pwd )" +cd "$DIR" + +echo "Updating local Git repo..." +bzr fast-export --plain . | git fast-import + +#check for errors +if [ $? -ne 0 ]; then + cd "$backup" + echo "Failed" + exit 1 +fi + +cd "$backup" + + + + diff -Nru selene-16.9~287~ubuntu14.04.1/list-todo.sh selene-17.4.1/list-todo.sh --- selene-16.9~287~ubuntu14.04.1/list-todo.sh 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/list-todo.sh 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,3 @@ +#!/bin/bash + +grep -n --color=always -R TODO src/ diff -Nru selene-16.9~287~ubuntu14.04.1/po/selene-nl.po selene-17.4.1/po/selene-nl.po --- selene-16.9~287~ubuntu14.04.1/po/selene-nl.po 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/po/selene-nl.po 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,1916 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR Tony George (teejee2008@gmail.com) +# This file is distributed under the same license as the selene package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: selene 2.2\n" +"Report-Msgid-Bugs-To: teejee2008@gmail.com\n" +"POT-Creation-Date: 2017-04-21 12:38+0200\n" +"PO-Revision-Date: 2017-04-22 12:54+0200\n" +"Language-Team: Vistaus \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.1\n" +"Last-Translator: Heimen Stoffels \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: nl_NL\n" + +#: EncoderConfigWindow.vala:1952 +msgid "" +"\n" +"Note:\n" +"\n" +"1. Audio track will be copied directly to the output file without changes.\n" +"\n" +"2. Format of the audio track must be compatible with the selected file " +"format. For example, if the input file contains AAC audio and the selected " +"file format is WEBM, then encoding will fail - since WEBM does not support " +"AAC audio.\n" +"\n" +"3. Input file can be trimmed only in basic mode (single segment). Selecting " +"multiple segments using advanced mode will not work." +msgstr "" +"\n" +"Let op:\n" +"\n" +"1. Het audiospoor zal direct, zonder wijzigingen, worden gekopieerd naar het " +"uitvoerbestand.\n" +"\n" +"2. Het bestandsformaat van het audiospoor moet compatibel zijn met het " +"geselecteerde bestandsformaat. Als, bijv., het invoerbestand AAC-audio bevat " +"en het geselecteerde bestandsformaat is WEBM, dan zal het decoderen " +"mislukken omdat WEBM geen AAC-audio ondersteunt.\n" +"\n" +"3. Het invoerbestand kan alleen worden getrimd in de basismodus (los " +"segment). Het selecteren van meerdere segmenten in de geavanceerde modus " +"gaat niet werken." + +#: EncoderConfigWindow.vala:2870 +msgid "" +"\n" +"Note:\n" +"\n" +"1. Supported subtitle file formats:" +msgstr "" +"\n" +"Let op:\n" +"\n" +"1. Ondersteunde ondertitel-bestandsformaten:" + +#: EncoderConfigWindow.vala:2445 +msgid "" +"\n" +"Note:\n" +"\n" +"1. Video track will be copied to the output file without re-encoding.\n" +"\n" +"2. Format of the video track must be compatible with the selected container. " +"For example, if the input file contains H264 video and the selected file " +"format is WEBM, then encoding will fail (since WEBM does not support H264).\n" +"\n" +"3. If you are trimming the input file then select the basic mode (single " +"segment). Selecting multiple segments in advanced mode will not work." +msgstr "" +"\n" +"Let op:\n" +"\n" +"1. Het videospoor zal direct, zonder opnieuw te worden gedecodeerd, worden " +"gekopieerd naar het uitvoerbestand.\n" +"\n" +"2. Het bestandsformaat van het videospoor moet compatibel zijn met de " +"geselecteerde container. Als, bijv., het invoerbestand H264-video bevat en " +"het geselecteerde bestandsformaat is WEBM, dan zal het decoderen mislukken " +"omdat WEBM geen H264-video ondersteunt.\n" +"\n" +"3. Het invoerbestand kan alleen worden getrimd in de basismodus (los " +"segment). Het selecteren van meerdere segmenten in de geavanceerde modus " +"gaat niet werken." + +#: BatchEditWindow.vala:85 BatchEditWindow.vala:88 +msgid "(Batch)" +msgstr "(Batch)" + +#: MediaPlayerWindow.vala:1109 +msgid "100%" +msgstr "100%" + +#: EncoderConfigWindow.vala:2890 +msgid "" +"2. External subtitle files must be present in the same location and start " +"with the same file name." +msgstr "" +"2. Externe ondertitelbestanden moeten aanwezig zijn in dezelfde locatie en " +"beginnen met dezelfde bestandsnaam." + +#: MediaPlayerWindow.vala:1111 +msgid "200%" +msgstr "200%" + +#: MediaPlayerWindow.vala:1103 +msgid "25%" +msgstr "25%" + +#: MediaPlayerWindow.vala:1105 +msgid "50%" +msgstr "50%" + +#: MediaPlayerWindow.vala:1107 +msgid "75%" +msgstr "75%" + +#: EncoderConfigWindow.vala:504 EncoderConfigWindow.vala:505 +msgid "" +"AAC-ELD\n" +"Enhanced Low Delay Profile for real-time communication\n" +"\n" +msgstr "" +"AAC-ELD\n" +"Enhanced Low Delay-profiel voor directe communicatie\n" +"\n" + +#: EncoderConfigWindow.vala:500 +msgid "" +"AAC-LC (Recommended)\n" +"MPEG-2 Low-complexity (LC) combined with MPEG-4 Perceptual Noise " +"Substitution (PNS)\n" +"\n" +msgstr "" +"AAC-LC (aanbevolen)\n" +"MPEG-2 Low-complexity (LC) gecombineerd met MPEG-4 Perceptual Noise " +"Substitution (PNS)\n" +"\n" + +#: EncoderConfigWindow.vala:503 +msgid "" +"AAC-LD\n" +"Low Delay Profile for real-time communication\n" +"\n" +msgstr "" +"AAC-LD\n" +"Low Delay-profiel voor directe communicatie\n" +"\n" + +#: EncoderConfigWindow.vala:1251 +msgid "" +"Additional Options\n" +"These options will be passed to the encoder\n" +"on the command line. Please do not specify\n" +"any options that are already provided by the GUI." +msgstr "" +"Extra opties\n" +"Deze opties zullen worden meegeven aan de decodeerder\n" +"in de opdrachtregel. Geef geen opties op die al worden\n" +"geboden door de grafische applicatie." + +#: EncoderConfigWindow.vala:631 +msgid "Adjustments:" +msgstr "Aanpassingen:" + +#: EncoderConfigWindow.vala:389 +msgid "Audio Encoder" +msgstr "Audio-decodeerder" + +#: AppConfigWindow.vala:177 +msgid "Backup Directory" +msgstr "Back-upmap" + +#: EncoderConfigWindow.vala:559 +msgid "Channels" +msgstr "Kanalen" + +#: EncoderConfigWindow.vala:1183 +msgid "" +"Compression Vs Device Compatibility\n" +"'High' profile gives the best compression.\n" +"Change this to 'Baseline' or 'Main' only if you are encoding\n" +"for a particular device (mobiles,PMPs,etc) which does not\n" +"support the 'High' profile" +msgstr "" +"Compressie vs apparaatcomptabiliteit\n" +"Het profiel 'Hoog' geeft de beste compressie.\n" +"Wijzig dit alleen in 'Basis' of 'Algemeen' als u decodeert\n" +"voor een bepaald apparaat (mobiele telefoon, PMP, etc.) die\n" +"geen ondersteuning heeft voor het profiel 'Hoog'" + +#: EncoderConfigWindow.vala:1141 +msgid "" +"Compression Vs Encoding Speed\n" +"Slower presets give better compression and smaller files\n" +"but take more time to encode." +msgstr "" +"Compressie vs decodeersnelheid\n" +"Tragere voorinstellingen geven betere compressie en kleinere bestanden\n" +"maar hebben meer tijd nodig om te decoderen." + +#: EncoderConfigWindow.vala:1119 +msgid "" +"Compression Vs Quality\n" +"Smaller values give better quality video and larger files" +msgstr "" +"Compressie vs kwaliteit\n" +"Lagere waarden geven betere videokwaliteit en grotere bestanden" + +#: AppConfigWindow.vala:381 +msgid "Default Language" +msgstr "Standaard taal" + +#: EncoderConfigWindow.vala:1522 +msgid "" +"Embed - Subtitle files will be combined with the output file.\n" +"These subtitles can be switched off since they are added as a separate track" +msgstr "" +"Insluiting - Ondertitelbestanden zullen worden gecombineerd met het " +"uitvoerbestand.\n" +"Deze ondertitelingen kunnen worden uitgeschakeld omdat ze worden toegevoegd " +"als een apart spoor" + +#: AppConfigWindow.vala:293 +msgid "" +"Encoder\n" +"Use the 'ffmpeg' encoding tool from the FFmpeg project (Recommended)\n" +"\n" +msgstr "" +"Decodeerder\n" +"Gebruik het 'ffmpeg'-decodeerhulpmiddel van het FFmpeg-project (aanbevolen)\n" +"\n" + +#: EncoderConfigWindow.vala:793 +msgid "Fade:" +msgstr "Vervagen:" + +#: EncoderConfigWindow.vala:253 +msgid "File Format" +msgstr "Bestandsformaat" + +#: AppConfigWindow.vala:435 +msgid "File Handling" +msgstr "Bestandsafhandeling" + +#: EncoderConfigWindow.vala:502 +msgid "" +"HE-AAC v2\n" +"AAC-LC + SBR + PS (Parametric Stereo)\n" +"\n" +msgstr "" +"HE-AAC v2\n" +"AAC-LC + SBR + PS (Parametric Stereo)\n" +"\n" + +#: EncoderConfigWindow.vala:501 +msgid "" +"HE-AAC\n" +"AAC-LC + SBR (Spectral Band Replication)\n" +"\n" +msgstr "" +"HE-AAC\n" +"AAC-LC + SBR (Spectral Band Replication)\n" +"\n" + +#: AppConfigWindow.vala:229 +msgid "Main Window" +msgstr "Hoofdvenster" + +#: EncoderConfigWindow.vala:506 +msgid "" +"Note:\n" +"HE-AAC and HE-AACv2 are used for low-bitrate encoding while HE-LD and HE-ELD " +"are used for real-time communication. HE-AAC is suitable for bit rates " +"between 48 to 64 kbps (stereo) while HE-AACv2 is suitable for bit rates as " +"low as 32 kbps." +msgstr "" +"Let op:\n" +"HE-AAC en HE-AACv2 worden gebruikt voor decoderen met lage bitrate; HE-LD en " +"HE-ELD worden gebruikt voor directe communicatie. HE-AAC is geschikt voor " +"bitrates tussen de 48 en 64 kbps (stereo); HE-AACv2 is geschikt voor lage " +"bitrates, al vanaf 32 kbps." + +#: EncoderConfigWindow.vala:887 +msgid "Other Effects:" +msgstr "Andere effecten:" + +#: AppConfigWindow.vala:125 +msgid "Output Directory" +msgstr "Uitvoermap" + +#: AppConfigWindow.vala:280 +msgid "Preferred Tools" +msgstr "Voorkeurshulpmiddelen" + +#: EncoderConfigWindow.vala:313 +msgid "Preset" +msgstr "Voorinstelling" + +#: EncoderConfigWindow.vala:2517 +msgid "" +"Quality Vs Encoding Speed\n" +"\n" +"Best: Best quality, slower\n" +"Good: Good quality, faster\n" +"Realtime: Fastest" +msgstr "" +"Kwaliteit vs decodeersnelheid\n" +"\n" +"Best: Beste kwaliteit, slomer\n" +"Goed: Goede kwaliteit, sneller\n" +"Realtime: Snelste" + +#: EncoderConfigWindow.vala:2519 +msgid "" +"Quality Vs Encoding Speed\n" +"\n" +"Smaller values = Better quality, slower\n" +"Larger value = Lower quality, faster\n" +msgstr "" +"Kwaliteit vs decodeersnelheid\n" +"\n" +"Lagere waarden = Betere kwaliteit, slomer\n" +"Hogere waarden = Lagere kwaliteit, sneller\n" + +#: EncoderConfigWindow.vala:2527 +msgid "" +"Quality Vs Encoding Speed\n" +"Higher values speed-up encoding at the expense of quality.\n" +"Lower values improve quality at the expense of encoding speed." +msgstr "" +"Kwaliteit vs decodeersnelheid\n" +"Hogere waarden versnellen het decoderen ten koste van de kwaliteit.\n" +"Lagere waarden verbeteren de kwaliteit ten koste van de decodeersnelheid." + +#: EncoderConfigWindow.vala:1524 +msgid "" +"Render - Subtitles are rendered/burned on the video.\n" +"These subtitles cannot be switched off since they become a part of the video" +msgstr "" +"Renderen - Ondertitelingen worden gerenderd/gebrand op de video.\n" +"Deze ondertitelingen kunnen niet worden uitgeschakeld omdat ze onderdeel " +"worden van de video" + +#: EncoderConfigWindow.vala:537 EncoderConfigWindow.vala:1430 +msgid "Resample" +msgstr "Resample" + +#: EncoderConfigWindow.vala:1311 +msgid "Resize" +msgstr "Vergroten/verkleinen" + +#: EncoderConfigWindow.vala:596 +msgid "SOX Audio Processing" +msgstr "SOX audioverwerking" + +#: EncoderConfigWindow.vala:1516 +msgid "Subtitles" +msgstr "Ondertitelingen" + +#: EncoderConfigWindow.vala:1579 +msgid "Tags" +msgstr "Labels" + +#: EncoderConfigWindow.vala:1039 +msgid "Video Encoder" +msgstr "Videodecodeerder" + +#: AppConfigWindow.vala:292 +msgid "" +"avconv\n" +"Use the 'avconv' encoding tool from the Libav project\n" +"\n" +msgstr "" +"avconv\n" +"Gebruik het 'avconv' decodeerhulpmiddel van het Libav-project\n" +"\n" + +#: MainWindow.vala:958 +msgid "A-Bitrate" +msgstr "A-Bitrate" + +#: MainWindow.vala:832 +msgid "A-Ch" +msgstr "A-Ch" + +#: MainWindow.vala:754 +msgid "A-Fmt" +msgstr "A-Fmt" + +#: MainWindow.vala:872 +msgid "A-Sampling" +msgstr "A-Sampling" + +#: EncoderConfigWindow.vala:2928 EncoderConfigWindow.vala:2947 +msgid "AAC-ELD" +msgstr "AAC-ELD" + +#: EncoderConfigWindow.vala:2911 EncoderConfigWindow.vala:2920 +#: EncoderConfigWindow.vala:2939 +msgid "AAC-LC" +msgstr "AAC-LC" + +#: EncoderConfigWindow.vala:2926 EncoderConfigWindow.vala:2945 +msgid "AAC-LD" +msgstr "AAC-LD" + +#: EncoderConfigWindow.vala:276 +msgid "AC3 Audio (*.ac3)" +msgstr "AC3-audio (*.ac3)" + +#: MainWindow.vala:243 +msgid "Abort" +msgstr "Afbreken" + +#: MainWindow.vala:301 +msgid "About" +msgstr "Over" + +#: MainWindow.vala:353 MainWindow.vala:2582 +msgid "Add File(s)" +msgstr "Bestand(en) toevoegen" + +#: MainWindow.vala:336 +msgid "Add File(s)..." +msgstr "Bestand(en) toevoegen..." + +#: MainWindow.vala:2586 +msgid "Add Folder(s)" +msgstr "Map(pen) toevoegen" + +#: MainWindow.vala:346 +msgid "Add Folder(s)..." +msgstr "Map(pen) toevoegen..." + +#: MainWindow.vala:1775 +msgid "Add New Preset" +msgstr "Nieuwe voorinstelling toevoegen" + +#: MainWindow.vala:2890 MainWindow.vala:2916 MainWindow.vala:3050 +msgid "Add some files to the file list" +msgstr "Voeg wat bestanden toe aan de bestandslijst" + +#: MainWindow.vala:2904 +msgid "Add some videos to the file list" +msgstr "Voeg wat video's toe aan de bestandslijst" + +#: MainWindow.vala:2628 +#, c-format +msgid "Adding (%d/%d): '%s'" +msgstr "Bezig met toevoegen (%d/%d): '%s'" + +#: MainWindow.vala:2618 +msgid "Adding..." +msgstr "Bezig met toevoegen..." + +#: EncoderConfigWindow.vala:924 +msgid "Adjust Stereo for Headphones" +msgstr "Stereo aanpassen voor koptelefoons" + +#: MediaPlayerWindow.vala:378 +msgid "Advanced Mode" +msgstr "Geavanceerde modus" + +#: MainWindow.vala:1204 MainWindow.vala:2773 +msgid "Album" +msgstr "Album" + +#: Main.vala:698 +msgid "All files removed" +msgstr "Alle bestanden zijn verwijderd" + +#: MainWindow.vala:2961 +msgid "An audio-video converter for Linux" +msgstr "Een audio-video-converteerder voor Linux" + +#: MainWindow.vala:277 +msgid "Application Settings" +msgstr "Applicatie-instellingen" + +#: MainWindow.vala:1173 MainWindow.vala:2772 +msgid "Artist" +msgstr "Artiest" + +#: AboutWindow.vala:322 +#, c-format +msgid "Artists" +msgstr "Artiesten" + +#: EncoderConfigWindow.vala:382 MainWindow.vala:1662 +msgid "Audio" +msgstr "Audio" + +#: MainWindow.vala:2770 +msgid "Audio Bitrate" +msgstr "Audio-bitrate" + +#: MainWindow.vala:2764 +msgid "Audio Channels" +msgstr "Audiokanalen" + +#: MainWindow.vala:2762 +msgid "Audio Format" +msgstr "Audioformaat" + +#: MainWindow.vala:2765 +msgid "Audio Sampling Rate" +msgstr "Audio sampling rate" + +#: EncoderConfigWindow.vala:344 +msgid "Author" +msgstr "Auteur" + +#: AboutWindow.vala:314 +#, c-format +msgid "Authors" +msgstr "Auteurs" + +#: EncoderConfigWindow.vala:2906 +msgid "Auto" +msgstr "Automatisch" + +#: BatchEditWindow.vala:99 +msgid "Auto Crop" +msgstr "Automatisch bijsnijden" + +#: EncoderConfigWindow.vala:2040 EncoderConfigWindow.vala:2065 +#: EncoderConfigWindow.vala:2083 EncoderConfigWindow.vala:2109 +#: EncoderConfigWindow.vala:2140 EncoderConfigWindow.vala:2157 +#: EncoderConfigWindow.vala:2541 EncoderConfigWindow.vala:2566 +#: EncoderConfigWindow.vala:2591 +msgid "Average Bitrate" +msgstr "Gemiddelde bitrate" + +#: EncoderConfigWindow.vala:2543 EncoderConfigWindow.vala:2568 +#: EncoderConfigWindow.vala:2593 +msgid "Average Bitrate (2-pass)" +msgstr "Gemiddelde bitrate (2-pass)" + +#: AboutWindow.vala:285 +msgid "Back" +msgstr "Terug" + +#: MainWindow.vala:250 +msgid "Background" +msgstr "Achtergrond" + +#: MediaPlayerWindow.vala:492 +msgid "Basic Mode" +msgstr "Basismodus" + +#: EncoderConfigWindow.vala:646 +msgid "Bass" +msgstr "Bas" + +#: EncoderConfigWindow.vala:1220 +msgid "Best" +msgstr "Best" + +#: MainWindow.vala:912 MainWindow.vala:2769 +msgid "Bitrate" +msgstr "Bitrate" + +#: EncoderConfigWindow.vala:433 EncoderConfigWindow.vala:1098 +msgid "Bitrate (kbps)" +msgstr "Bitrate (kbps)" + +#: EncoderConfigWindow.vala:644 +msgid "Boost or cut the bass (lower) frequencies of the audio." +msgstr "Meer of minder (lagere) basfrequenties in het audiobestand." + +#: EncoderConfigWindow.vala:682 +msgid "Boost or cut the treble (upper) frequencies of the audio." +msgstr "Meer of minder (lagere) treble-frequenties in het audiobestand." + +#: BatchEditWindow.vala:221 +msgid "Bottom" +msgstr "Onderkant" + +#: MediaPlayerWindow.vala:263 +msgid "Bottom:" +msgstr "Onderkant:" + +#: MainWindow.vala:1788 +msgid "Browse" +msgstr "Bladeren" + +#: MainWindow.vala:3246 +msgid "CPU: " +msgstr "CPU: " + +#: Main.vala:1227 Main.vala:1241 +msgid "Cancelled" +msgstr "Geannuleerd" + +#: EncoderConfigWindow.vala:720 +msgid "Change audio pitch (shrillness) without changing audio tempo (speed)." +msgstr "" +"Audio-toonhoogte wijzigen (schrilheid) zonder het audiotempo (snelheid) te " +"wijzigen." + +#: EncoderConfigWindow.vala:758 +msgid "" +"Change audio tempo (speed) without changing audio pitch (shrillness).\n" +"\n" +"WARNING: This will change the duration of the audio track" +msgstr "" +"Audio-tempo (snelheid) wijzigen zonder de audio-toonhoogte (schrilheid) te " +"wijzigen.\n" +"\n" +"Waarschuwing: dit wijzigt de duur van het audiospoor" + +#: EncoderConfigWindow.vala:567 +msgid "Channels" +msgstr "Kanalen" + +#: MainWindow.vala:387 +msgid "Clear List" +msgstr "Lijst wissen" + +#: MediaPlayerWindow.vala:675 +msgid "Clip" +msgstr "Vastmaken" + +#: AboutWindow.vala:295 AppConfigWindow.vala:107 +msgid "Close" +msgstr "Sluiten" + +#: MainWindow.vala:1536 +msgid "Columns..." +msgstr "Kolommen..." + +#: MainWindow.vala:1329 MainWindow.vala:2777 +msgid "Comments" +msgstr "Opmerkingen" + +#: Main.vala:1062 Main.vala:1072 Main.vala:1080 +msgid "Completed" +msgstr "Voltooid" + +#: EncoderConfigWindow.vala:2042 EncoderConfigWindow.vala:2111 +#: EncoderConfigWindow.vala:2142 EncoderConfigWindow.vala:2618 +msgid "Constant Bitrate" +msgstr "Constante bitrate" + +#: EncoderConfigWindow.vala:2044 +msgid "Constant Bitrate (Strict)" +msgstr "Constante bitrate (streng)" + +#: Main.vala:972 Main.vala:1275 MainWindow.vala:2279 +msgid "Converting" +msgstr "Bezig met converteren" + +#: Main.vala:970 Main.vala:1273 +msgid "Converting: Enter (q) to quit or (p) to pause..." +msgstr "" +"Bezig met converteren: druk op (q) om af te sluiten of (p) om te pauzeren..." + +#: EncoderConfigWindow.vala:1753 EncoderConfigWindow.vala:1769 +#: EncoderConfigWindow.vala:1784 +msgid "Copy Audio" +msgstr "Audio kopiëren" + +#: EncoderConfigWindow.vala:1688 EncoderConfigWindow.vala:1697 +#: EncoderConfigWindow.vala:1706 EncoderConfigWindow.vala:1713 +#: EncoderConfigWindow.vala:1724 +msgid "Copy Video" +msgstr "Video kopiëren" + +#: EncoderConfigWindow.vala:1588 +msgid "Copy tags (artist, album, etc) from the source file to output file" +msgstr "" +"Labels (artiest, album, etc.) kopiëren van het bronbestand naar het " +"uitvoerbestand" + +#: EncoderConfigWindow.vala:1590 +msgid "Copy tags from source file" +msgstr "Labels kopiëren uit het bronbestand" + +#: AboutWindow.vala:272 AboutWindow.vala:289 +msgid "Credits" +msgstr "Met dank aan" + +#: MainWindow.vala:432 +msgid "Crop" +msgstr "Bijsnijden" + +#: BatchEditWindow.vala:161 +msgid "Crop Left" +msgstr "Links bijsnijden" + +#: BatchEditWindow.vala:85 MainWindow.vala:1442 MediaPlayerWindow.vala:123 +msgid "Crop Video" +msgstr "Video bijsnijden" + +#: MainWindow.vala:416 MainWindow.vala:435 +msgid "Crop Videos" +msgstr "Video's bijsnijden" + +#: MediaPlayerWindow.vala:283 +msgid "Cropped:" +msgstr "Bijgesneden:" + +#: EncoderConfigWindow.vala:1328 EncoderConfigWindow.vala:1448 +msgid "Custom" +msgstr "Aangepast" + +#: MainWindow.vala:1782 +msgid "Delete Preset" +msgstr "Voorinstelling verwijderen" + +#: MediaPlayerWindow.vala:474 +msgid "Delete Segment" +msgstr "Segment verwijderen" + +#: AppConfigWindow.vala:445 +msgid "Delete temporary files after successful encode" +msgstr "Tijdelijke bestanden verwijderen na succesvolle decodering" + +#: EncoderConfigWindow.vala:1494 +msgid "Denominator" +msgstr "Noemer" + +#: EncoderStatusWindow.vala:90 +msgid "Description" +msgstr "Omschrijving" + +#: MediaPlayerWindow.vala:298 +msgid "Detect Borders" +msgstr "Randen detecteren" + +#: MediaPlayerWindow.vala:300 +msgid "Detect black borders in the video and set cropping parameters" +msgstr "Zwarte randen detecteren in de video en bijsnijd-parameters instellen" + +#: MediaPlayerWindow.vala:872 +#, c-format +msgid "Detected Parameters: %d, %d, %d, %d" +msgstr "Gedetecteerde parameters: %d, %d, %d, %d" + +#: BatchEditWindow.vala:426 MediaPlayerWindow.vala:804 +msgid "Detecting borders..." +msgstr "Bezig met detecteren van randen..." + +#: DonationWindow.vala:54 +msgid "" +"Did you find this software useful?\n" +"\n" +"You can buy me a coffee or make a donation via PayPal to show your support. " +"Or just drop me an email and say Hi. This application is completely free and " +"will continue to remain that way. Your contributions will help in keeping " +"this project alive and improving it further.\n" +"\n" +"Feel free to send me an email if you find any issues in this application or " +"if you need any changes. Suggestions and feedback are always welcome.\n" +"\n" +"Thanks,\n" +"Tony George\n" +"(teejeetech@gmail.com)" +msgstr "" +"Vindt u deze software handig?\n" +"\n" +"U kunt een kopje koffie voor me kopen of een donatie doen via PayPal om me " +"te ondersteunen. Of stuur me een e-mail en zeg me gedag. Deze applicatie is " +"volledig gratis en dat zal ook altijd zo blijven. Uw bijdragen helpen me om " +"dit project te blijven ontwikkelen en te verbeteren.\n" +"\n" +"Stuur me een e-mail als u problemen ervaart met deze applicatie of als u " +"dingen anders wilt zien. Suggesties en feedback worden altijd gewaardeerd!\n" +"\n" +"Bedankt,\n" +"Tony George\n" +"(teejeetech@gmail.com)" + +#: EncoderConfigWindow.vala:1751 EncoderConfigWindow.vala:1767 +#: EncoderConfigWindow.vala:1782 +msgid "Disable Audio" +msgstr "Audio uitschakelen" + +#: EncoderConfigWindow.vala:1722 +msgid "Disable Video" +msgstr "Video uitschakelen" + +#: EncoderConfigWindow.vala:1411 +msgid "Do not stretch or squeeze the video (Fit-To-Box)" +msgstr "Video niet uitrekken of omspannen (aanpassen-aan-vierkant)" + +#: AboutWindow.vala:346 +#, c-format +msgid "Documenters" +msgstr "Documenteerders" + +#: DonationWindow.vala:36 MainWindow.vala:290 MainWindow.vala:291 +msgid "Donate" +msgstr "Doneren" + +#: DonationWindow.vala:74 +msgid "Donate with Google Wallet" +msgstr "Doneren met Google Wallet" + +#: DonationWindow.vala:67 +msgid "Donate with PayPal" +msgstr "Doneren met PayPal" + +#: AboutWindow.vala:354 +#, c-format +msgid "Donations" +msgstr "Donaties" + +#: Main.vala:1057 +msgid "Done" +msgstr "Voltooid" + +#: ColumnSelectionDialog.vala:62 +msgid "Drag and drop to re-order" +msgstr "Herordenen kan d.m.v. slepen-en-neerzetten" + +#: MainWindow.vala:2267 +msgid "Drag files on this window or click the 'Add' button" +msgstr "Sleep bestanden naar dit venster of klik op 'Toevoegen'" + +#: MainWindow.vala:660 MediaPlayerWindow.vala:681 +msgid "Duration" +msgstr "Duur" + +#: BatchEditWindow.vala:283 +msgid "Edit" +msgstr "Bewerken" + +#: MainWindow.vala:1855 +msgid "Edit Preset" +msgstr "Voorinstelling bewerken" + +#: EncoderConfigWindow.vala:355 +msgid "Email" +msgstr "E-mail" + +#: EncoderConfigWindow.vala:1878 +msgid "Embed / Soft Subs" +msgstr "Insluiten / zachte ondertitels" + +#: EncoderConfigWindow.vala:2968 +msgid "Empty Preset Name" +msgstr "Lege voorinstellingsnaam" + +#: AppConfigWindow.vala:295 +msgid "Encoder" +msgstr "Decodeerder" + +#: EncoderStatusWindow.vala:45 MainWindow.vala:283 +msgid "Encoders" +msgstr "Decodeerders" + +#: EncoderConfigWindow.vala:420 EncoderConfigWindow.vala:1079 +msgid "Encoding Mode" +msgstr "Decodeermodus" + +#: MainWindow.vala:1845 +msgid "Encoding Script or Preset File" +msgstr "Decodeerscript of voorinstellingsbestand" + +#: MediaPlayerWindow.vala:344 +msgid "End (sec):" +msgstr "Einde (sec):" + +#: MediaPlayerWindow.vala:679 +msgid "End Pos" +msgstr "Eindpositie" + +#: MediaPlayerWindow.vala:458 +msgid "End Segment" +msgstr "Eindsegment" + +#: BatchEditWindow.vala:262 +msgid "EndPos" +msgstr "EindPositie" + +#: Main.vala:779 +msgid "Enter any key to Cancel..." +msgstr "Druk op een toets om te annuleren..." + +#: AppConfigWindow.vala:145 AppConfigWindow.vala:197 +msgid "Enter path or browse for directory" +msgstr "Voer het pad in of blader naar een map" + +#: Main.vala:1067 Utility.vala:108 +msgid "Error" +msgstr "Fout" + +#: Main.vala:814 +msgid "Error: File missing" +msgstr "Fout: het bestand ontbreekt" + +#: EncoderConfigWindow.vala:300 +msgid "Extension" +msgstr "Extensie" + +#: EncoderConfigWindow.vala:1254 +msgid "Extra Options" +msgstr "Extra opties" + +#: EncoderConfigWindow.vala:278 +msgid "FLAC Audio (*.flac)" +msgstr "FLAC-audio (*.flac)" + +#: EncoderConfigWindow.vala:808 +msgid "Fade In (sec)" +msgstr "Fade-in (sec)" + +#: EncoderConfigWindow.vala:828 +msgid "Fade Out (sec)" +msgstr "Vervagen (sec)" + +#: EncoderConfigWindow.vala:848 +msgid "Fade Type" +msgstr "Vervagingstype" + +#: Main.vala:1083 +msgid "Failed" +msgstr "Mislukt" + +#: Utility.vala:1435 +msgid "Failed to set ownership" +msgstr "Het instellen van rechten is mislukt" + +#: EncoderConfigWindow.vala:1168 +msgid "Fast" +msgstr "Snel" + +#: BatchEditWindow.vala:140 ColumnSelectionDialog.vala:74 MainWindow.vala:471 +msgid "File" +msgstr "Bestand" + +#: MainWindow.vala:1525 +msgid "File Info (Output)" +msgstr "Bestandsinformatie (uitvoer)" + +#: MainWindow.vala:1519 +msgid "File Info (Source)" +msgstr "Bestandsinformatie (bron)" + +#: AppConfigWindow.vala:241 +msgid "File View" +msgstr "Bestandsweergave" + +#: Main.vala:678 +msgid "File added:" +msgstr "Bestand toegevoegd:" + +#: Main.vala:692 +msgid "File removed:" +msgstr "Bestand verwijderd:" + +#: Main.vala:715 +#, c-format +msgid "Files will be saved in '%s'" +msgstr "Bestanden zullen worden opgeslagen in '%s'" + +#: Main.vala:718 +msgid "Files will be saved in source directory" +msgstr "Bestanden zullen worden opgeslagen in de bronmap" + +#: EncoderConfigWindow.vala:530 +msgid "Filters (A)" +msgstr "Filters (A)" + +#: EncoderConfigWindow.vala:1302 +msgid "Filters (V)" +msgstr "Filters (V)" + +#: MainWindow.vala:261 MainWindow.vala:263 MediaPlayerWindow.vala:307 +#: MediaPlayerWindow.vala:393 MediaPlayerWindow.vala:507 +msgid "Finish" +msgstr "Afronden" + +#: EncoderConfigWindow.vala:1407 +msgid "Fits the video in a box of given width and height." +msgstr "Past de video in in een vierkant met de opgegeven breedte en hoogte." + +#: EncoderConfigWindow.vala:2174 +msgid "Fixed Bitrate" +msgstr "Vastgezette bitrate" + +#: MainWindow.vala:1820 MainWindow.vala:1830 +msgid "Folder" +msgstr "Map" + +#: MainWindow.vala:3065 +msgid "Following encoders were not found on your system:" +msgstr "De volgende decodeerders kunnen niet gevonden op uw systeem:" + +#: Main.vala:347 +msgid "Following utilities are not installed on your system:" +msgstr "De volgende hulpmiddelen zijn niet geïnstalleerd op uw systeem:" + +#: EncoderConfigWindow.vala:261 MainWindow.vala:703 MainWindow.vala:2761 +msgid "Format" +msgstr "Formaat" + +#: EncoderConfigWindow.vala:397 EncoderConfigWindow.vala:1047 +msgid "Format / Codec" +msgstr "Formaat / Codec" + +#: EncoderStatusWindow.vala:153 +msgid "Found" +msgstr "Gevonden" + +#: EncoderConfigWindow.vala:1468 +msgid "Fps: Frames" +msgstr "Fps: frames" + +#: EncoderConfigWindow.vala:1485 +msgid "Fps: Seconds" +msgstr "Fps: seconden" + +#: EncoderConfigWindow.vala:1439 +msgid "Frame Rate" +msgstr "Framerate" + +#: EncoderConfigWindow.vala:1441 +msgid "Frames/sec" +msgstr "Frames/sec" + +#: MediaPlayerWindow.vala:1193 MediaPlayerWindow.vala:1197 +msgid "Fullscreen" +msgstr "Volledig scherm" + +#: AppConfigWindow.vala:121 EncoderConfigWindow.vala:246 +msgid "General" +msgstr "Algemeen" + +#: MainWindow.vala:1235 MainWindow.vala:2774 +msgid "Genre" +msgstr "Genre" + +#: EncoderConfigWindow.vala:1222 +msgid "Good" +msgstr "Goed" + +#: EncoderConfigWindow.vala:2913 EncoderConfigWindow.vala:2922 +#: EncoderConfigWindow.vala:2941 +msgid "HE-AAC" +msgstr "HE-AAC" + +#: EncoderConfigWindow.vala:2915 EncoderConfigWindow.vala:2924 +#: EncoderConfigWindow.vala:2943 +msgid "HE-AAC v2" +msgstr "HE-AAC v2" + +#: EncoderConfigWindow.vala:868 +msgid "Half Sine" +msgstr "Half-sinus" + +#: EncoderConfigWindow.vala:1369 EncoderConfigWindow.vala:1378 +msgid "Height" +msgstr "Hoogte" + +#: MainWindow.vala:1797 MainWindow.vala:1799 MainWindow.vala:2225 +msgid "Info" +msgstr "Informatie" + +#: Main.vala:706 +msgid "Input queue is empty! Please add some files." +msgstr "De invoerwachtrij is leeg! Voeg wat bestanden toe." + +#: Main.vala:257 +msgid "Input queue is empty! Please select files to convert." +msgstr "De invoerwachtrij is leeg! Selecteer te converteren bestanden." + +#: EncoderConfigWindow.vala:874 +msgid "Inverted Parabola" +msgstr "Omgekeerde parabool" + +#: FileInfoWindow.vala:69 +msgid "Key" +msgstr "Sleutel" + +#: AppConfigWindow.vala:395 +msgid "Language" +msgstr "Taal" + +#: MediaPlayerWindow.vala:224 +msgid "Left:" +msgstr "Links:" + +#: EncoderConfigWindow.vala:870 +msgid "Linear" +msgstr "Linear" + +#: AppConfigWindow.vala:257 +msgid "List" +msgstr "Lijst" + +#: Main.vala:395 +msgid "Loading presets from:" +msgstr "Voorinstellingen worden geladen uit:" + +#: Main.vala:394 +msgid "Loading scripts from:" +msgstr "Scripts worden geladen uit:" + +#: EncoderConfigWindow.vala:872 +msgid "Logarithmic" +msgstr "Logaritmisch" + +#: EncoderConfigWindow.vala:2201 +msgid "Lossless" +msgstr "Lossless" + +#: EncoderConfigWindow.vala:280 +msgid "MP3 Audio (*.mp3)" +msgstr "MP3-audio (*.mp3)" + +#: EncoderConfigWindow.vala:282 +msgid "MP4 Audio (*.mp4)" +msgstr "MP4-audio (*.mp4)" + +#: EncoderConfigWindow.vala:2930 EncoderConfigWindow.vala:2949 +msgid "MPEG-2 AAC-LC" +msgstr "MPEG-2 AAC-LC" + +#: EncoderConfigWindow.vala:2932 EncoderConfigWindow.vala:2951 +msgid "MPEG-2 HE-AAC" +msgstr "MPEG-2 HE-AAC" + +#: EncoderConfigWindow.vala:2953 +msgid "MPEG-2 HE-AAC v2" +msgstr "MPEG-2 HE-AAC v2" + +#: EncoderConfigWindow.vala:270 +msgid "MPEG4 Video (*.mp4)" +msgstr "MPEG4-video (*.mp4)" + +#: EncoderConfigWindow.vala:921 +msgid "" +"Makes audio easier to listen to on headphones. Adds 'cues' to the audio so " +"that when listened to on headphones the stereo image is moved from inside " +"your head (standard for headphones) to outside and in front of the listener " +"(standard for speakers)." +msgstr "" +"Zorgt ervoor dat audio beter te beluisteren is via koptelefoons. Voegt " +"'cues' toe aan de audio zodat tijdens het luisteren met een koptelefoon de " +"stereo verplaatst wordt van in uw hoofd (standaard op koptelefoons) naar " +"buiten en vóór de luisteraar (standaard voor speakers)." + +#: EncoderConfigWindow.vala:268 +msgid "Matroska Video (*.mkv)" +msgstr "Matroska-video (*.mkv)" + +#: EncoderConfigWindow.vala:903 +msgid "Maximize Volume Level (Normalize)" +msgstr "Volumeniveau maximaliseren (normaliseren)" + +#: EncoderConfigWindow.vala:900 +msgid "Maximize the volume level (loudness)" +msgstr "Het volumeniveau maximaliseren (hardheid)" + +#: EncoderConfigWindow.vala:1170 +msgid "Medium" +msgstr "Gemiddeld" + +#: EncoderConfigWindow.vala:1388 +msgid "Method" +msgstr "Methode" + +#: EncoderStatusWindow.vala:153 +msgid "Missing" +msgstr "Ontbreekt" + +#: MainWindow.vala:3065 +msgid "Missing Encoders" +msgstr "Ontbrekende decodeerders" + +#: Utility.vala:1037 +msgid "Missing Icon" +msgstr "Ontbrekend pictogram" + +#: Main.vala:348 +msgid "Missing Utilities" +msgstr "Ontbrekende hulpmiddelen" + +#: EncoderConfigWindow.vala:1532 +msgid "Mode" +msgstr "Modus" + +#: AppConfigWindow.vala:185 +msgid "Move source files after encoding is complete" +msgstr "Bronbestanden verplaatsen nadat het decoderen is afgerond" + +#: EncoderConfigWindow.vala:479 +msgid "Music" +msgstr "Muziek" + +#: MediaPlayerWindow.vala:1181 MediaPlayerWindow.vala:1185 +msgid "Mute" +msgstr "Dempen" + +#: MediaFile.vala:565 +msgid "N/A" +msgstr "N/B" + +#: EncoderConfigWindow.vala:322 +msgid "Name" +msgstr "Naam" + +#: EncoderConfigWindow.vala:328 MainWindow.vala:1773 +msgid "New Preset" +msgstr "Nieuwe voorinstelling" + +#: EncoderConfigWindow.vala:1326 EncoderConfigWindow.vala:1446 +#: EncoderConfigWindow.vala:2224 EncoderConfigWindow.vala:2266 +#: EncoderConfigWindow.vala:2294 EncoderConfigWindow.vala:2308 +#: EncoderConfigWindow.vala:2339 EncoderConfigWindow.vala:2359 +msgid "No Change" +msgstr "Geen wijziging" + +#: MainWindow.vala:2889 MainWindow.vala:2915 MainWindow.vala:3049 +msgid "No Files" +msgstr "Geen bestanden" + +#: BatchEditWindow.vala:420 BatchEditWindow.vala:484 +msgid "No Files Selected" +msgstr "Geen bestanden geselecteerd" + +#: EncoderConfigWindow.vala:1876 +msgid "No Subtitles" +msgstr "Geen ondertitelingen" + +#: EncoderConfigWindow.vala:1422 +msgid "No Up-Scaling" +msgstr "Niet opschalen" + +#: MainWindow.vala:2903 +msgid "No Videos" +msgstr "Geen video's" + +#: EncoderConfigWindow.vala:475 +msgid "None" +msgstr "Geen" + +#: Main.vala:347 +msgid "Not possible to continue!" +msgstr "Het is niet mogelijk om door te gaan!" + +#: EncoderConfigWindow.vala:1477 +msgid "Numerator" +msgstr "Teller" + +#: EncoderConfigWindow.vala:272 +msgid "OGG Theora Video (*.ogv)" +msgstr "OGG Theora-video (*.ogv)" + +#: EncoderConfigWindow.vala:284 +msgid "OGG Vorbis Audio (*.ogg)" +msgstr "OGG Vobis-audio (*.ogg)" + +#: DonationWindow.vala:95 +msgid "OK" +msgstr "Oké" + +#: MediaPlayerWindow.vala:146 +msgid "Open" +msgstr "Openen" + +#: MainWindow.vala:1790 +msgid "Open Folder" +msgstr "Map openen" + +#: MainWindow.vala:1496 +msgid "Open Log File" +msgstr "Logbestand openen" + +#: MainWindow.vala:1490 +msgid "Open Output Folder" +msgstr "Uitvoermap openen" + +#: MainWindow.vala:1484 +msgid "Open Temp Folder" +msgstr "Tijdelijke map openen" + +#: MainWindow.vala:319 +msgid "Open output folder" +msgstr "Uitvoermap openen" + +#: EncoderConfigWindow.vala:461 +msgid "Optimization" +msgstr "Optimalisering" + +#: EncoderConfigWindow.vala:286 +msgid "Opus Audio (*.opus)" +msgstr "Opus-audio (*.opus)" + +#: MainWindow.vala:317 +msgid "Output" +msgstr "Uitvoer" + +#: MainWindow.vala:234 MainWindow.vala:3030 MainWindow.vala:3032 +#: MediaPlayerWindow.vala:1173 +msgid "Pause" +msgstr "Pauzeren" + +#: Main.vala:1254 Main.vala:1259 +msgid "Paused" +msgstr "Gepauzeerd" + +#: Main.vala:1257 +msgid "Paused: Enter (r) to resume..." +msgstr "Gepauzeerd: druk op (r) om verder te gaan..." + +#: EncoderConfigWindow.vala:722 +msgid "Pitch" +msgstr "Toonhoogte" + +#: MediaPlayerWindow.vala:1169 +msgid "Play" +msgstr "Afspelen" + +#: MainWindow.vala:1513 +msgid "Play File (Output)" +msgstr "Bestand (uitvoer) afspelen" + +#: MainWindow.vala:1507 +msgid "Play File (Source)" +msgstr "Bestand (bron) afspelen" + +#: AppConfigWindow.vala:341 +msgid "Player" +msgstr "Speler" + +#: MediaPlayerWindow.vala:806 +msgid "Please Wait..." +msgstr "Even geduld..." + +#: EncoderConfigWindow.vala:2966 +msgid "Please enter a name for this preset" +msgstr "Voer een naam in voor deze voorinstelling" + +#: MainWindow.vala:3065 +msgid "Please install required packages or select another preset" +msgstr "" +"Installeer de vereiste pakketten of selecteer een andere voorinstelling" + +#: EncoderConfigWindow.vala:618 +msgid "Please install the 'sox' package on your system to use this feature" +msgstr "Installeer het pakket 'sox' om deze functie te kunnen gebruiken" + +#: EncoderConfigWindow.vala:167 EncoderConfigWindow.vala:1146 +#: MainWindow.vala:1835 +msgid "Preset" +msgstr "Voorinstelling" + +#: MainWindow.vala:2186 +msgid "Preset deleted" +msgstr "Voorinstelling verwijderd" + +#: MainWindow.vala:3176 +msgid "Press 'Cancel' to abort shutdown" +msgstr "Druk op 'Annuleren' om het afsluiten af te breken" + +#: EncoderConfigWindow.vala:484 EncoderConfigWindow.vala:1188 +msgid "Profile" +msgstr "Profiel" + +#: FileInfoWindow.vala:44 +msgid "Properties" +msgstr "Eigenschappen" + +#: EncoderConfigWindow.vala:447 EncoderConfigWindow.vala:1124 +msgid "Quality" +msgstr "Kwaliteit" + +#: EncoderConfigWindow.vala:866 +msgid "Quarter Sine" +msgstr "Kwart-sinus" + +#: Main.vala:736 Main.vala:795 MediaFile.vala:46 +msgid "Queued" +msgstr "In wachtrij" + +#: MainWindow.vala:2616 +msgid "Reading file properties..." +msgstr "Bezig met lezen van bestandseigenschappen..." + +#: EncoderConfigWindow.vala:1224 +msgid "Realtime" +msgstr "Real-time" + +#: MainWindow.vala:1360 MainWindow.vala:2778 +msgid "Recorded Date" +msgstr "Opnamedatum" + +#: EncoderStatusWindow.vala:108 +msgid "Refresh" +msgstr "Verversen" + +#: MainWindow.vala:394 +msgid "Remove File(s)" +msgstr "Bestand(en) verwijderen" + +#: MainWindow.vala:375 +msgid "Remove Selected Items" +msgstr "Geselecteerde items verwijderen" + +#: BatchEditWindow.vala:103 +msgid "Reset" +msgstr "Standaardwaarden" + +#: EncoderConfigWindow.vala:1319 +msgid "Resolution" +msgstr "Resolutie" + +#: MainWindow.vala:3024 MainWindow.vala:3026 +msgid "Resume" +msgstr "Doorgaan" + +#: BatchEditWindow.vala:181 +msgid "Right" +msgstr "Rechts" + +#: MainWindow.vala:454 +msgid "Right-click for more options" +msgstr "Klik met de rechtermuisknop voor meer opties" + +#: MediaPlayerWindow.vala:237 +msgid "Right:" +msgstr "Rechts:" + +#: MainWindow.vala:255 +msgid "Run in background with lower priority" +msgstr "Op achtergrond uitvoeren met lagere prioriteit" + +#: EncoderConfigWindow.vala:587 +msgid "SOX" +msgstr "SOX" + +#: EncoderConfigWindow.vala:545 +msgid "Sampling Rate (Hz)" +msgstr "Sampling rate (hz)" + +#: AppConfigWindow.vala:133 +msgid "Save files in following location" +msgstr "Bestanden opslaan op de volgende locatie" + +#: MediaPlayerWindow.vala:220 +msgid "Scroll mouse wheel to adjust" +msgstr "Scroll met muiswiel om aan te passen" + +#: ColumnSelectionDialog.vala:42 +msgid "Select Columns" +msgstr "Kolommen selecteren" + +#: AppConfigWindow.vala:156 AppConfigWindow.vala:208 +msgid "Select Path" +msgstr "Pad selecteren" + +#: MainWindow.vala:2265 +msgid "Select a script from the dropdown and click 'Start' to begin" +msgstr "" +"Selecteer een script in het uitrolmenu en druk op 'Starten' om te beginnen" + +#: MediaPlayerWindow.vala:380 +msgid "Select multiple segments" +msgstr "Selecteer meerdere segmenten" + +#: BatchEditWindow.vala:421 BatchEditWindow.vala:485 +msgid "Select some files from the list" +msgstr "Selecteer wat bestanden uit de lijst" + +#: MediaPlayerWindow.vala:416 +msgid "Select the segments to include in output file:" +msgstr "" +"Selecteer de segmenten die moeten worden opgenomen in het uitvoerbestand:" + +#: AppConfigWindow.vala:393 +msgid "" +"Selected language will be used for setting the default flag on the audio/" +"subtitle track" +msgstr "" +"De geselecteerde taal zal worden gebruikt voor het instellen van de " +"standaard optie op het audio-/ondertitelingsspoor" + +#: MainWindow.vala:2223 +msgid "" +"Selene supports 2 types of presets:\n" +"\n" +"1) JSON presets with a '.json' file extension. Clicking the Edit button on " +"the toolbar will display a GUI for configuring the preset.\n" +"\n" +"2) Bash scripts with a '.sh' file extension. Clicking the Edit button will " +"open the script file in a text editor. Bash scripts are useful if you need " +"complete control over the encoding process. The script can use any set of " +"commands for encoding the input files. Selene will try to parse the output " +"and display the progress during encoding. See the sample scripts in '$HOME/." +"config/selene/scripts' for the syntax." +msgstr "" +"Selene ondersteunt 2 soort voorinstellingen:\n" +"\n" +"1) JSON-voorinstellingen met een '.json'-bestandsextensie. Klik op de knop " +"Bewerken op de werkbalk om een venster te openen voor het instellen van de " +"voorinstelling.\n" +"\n" +"2) Bash-scripts met een '.sh'-bestandsextensie. Klik op de knop Bewerken op " +"het script te openen in een tekstbewerker. Bash-scripts zijn handig als u " +"volledige controle over het decodeerproces wilt. Het script kan welk " +"commando dan ook bevatten voor het decoderen van de invoerbestanden. Selene " +"zal proberen om de uitvoer te verwerken en de voortgang te laten zien " +"tijdens het decoderen. Bekijk de voorbeeldscripts in '$HOME/.config/selene/" +"scripts' om de syntax bestuderen." + +#: DonationWindow.vala:81 +msgid "Send Email" +msgstr "E-mail versturen" + +#: MediaPlayerWindow.vala:358 MediaPlayerWindow.vala:368 +msgid "Set" +msgstr "Instellen" + +#: MediaPlayerWindow.vala:369 +msgid "Set current playback position as ending position" +msgstr "Huidige afspeelpositie instellen als eindpositie" + +#: MediaPlayerWindow.vala:359 +msgid "Set current playback position as starting position" +msgstr "Huidige afspeelpositie instellen als beginpositie" + +#: EncoderConfigWindow.vala:1348 +msgid "" +"Set either Width or Height and leave the other as 0.\n" +"It will be calculated automatically.\n" +"\n" +"Setting both width and height is not recommended\n" +"since the video may get stretched or squeezed.\n" +"\n" +"Enable the 'Fit-To-Box' option to avoid changes to aspect ratio." +msgstr "" +"Stel óf de breedte óf de hoogte in en laat de rest op 0 staan.\n" +"Dit zal automatisch worden berekend.\n" +"\n" +"Het instellen van zowel de breedte als hoogte is af te raden\n" +"aangezien de video uitgerekt of samengeperst kan worden.\n" +"\n" +"Schakel 'Aanpassen aan vierkant' in om wijzigen in de schermverhouding te " +"voorkomen." + +#: MainWindow.vala:306 +msgid "Shutdown" +msgstr "Afsluiten" + +#: MainWindow.vala:3002 +msgid "Shutdown Disabled" +msgstr "Afsluiten uitgeschakeld" + +#: MainWindow.vala:2999 +msgid "Shutdown Enabled" +msgstr "Afsluiten ingeschakeld" + +#: MainWindow.vala:311 +msgid "Shutdown system after completion" +msgstr "Systeem afsluiten na voltooiing" + +#: MainWindow.vala:610 +msgid "Size" +msgstr "Grootte" + +#: MainWindow.vala:1437 +msgid "Skip File" +msgstr "Bestand overslaan" + +#: EncoderConfigWindow.vala:1172 +msgid "Slow" +msgstr "Sloom" + +#: EncoderConfigWindow.vala:1174 +msgid "Slower" +msgstr "Slomer" + +#: MainWindow.vala:2654 +msgid "Some files could not be added:" +msgstr "Enkele bestanden kunnen niet worden toegevoegd:" + +#: Main.vala:724 +#, c-format +msgid "Source files will be moved to '%s'" +msgstr "De bronbestanden zullen worden verplaatst naar '%s'" + +#: Main.vala:826 MediaPlayerWindow.vala:276 +msgid "Source:" +msgstr "Bron:" + +#: EncoderConfigWindow.vala:618 +msgid "Sox Not Installed" +msgstr "Sox is niet geïnstalleerd" + +#: EncoderConfigWindow.vala:477 +msgid "Speech" +msgstr "Spraak" + +#: EncoderConfigWindow.vala:1208 +msgid "Speed" +msgstr "Snelheid" + +#: MainWindow.vala:225 MainWindow.vala:227 +msgid "Start" +msgstr "Starten" + +#: MediaPlayerWindow.vala:330 +msgid "Start (sec):" +msgstr "Starten (sec):" + +#: MediaPlayerWindow.vala:677 +msgid "Start Pos" +msgstr "Beginpositie" + +#: MediaPlayerWindow.vala:445 +msgid "Start Segment" +msgstr "Beginsegment" + +#: BatchEditWindow.vala:241 +msgid "StartPos" +msgstr "Beginpositie" + +#: Main.vala:710 +#, c-format +msgid "Starting batch of %d file(s):" +msgstr "Bezig met starten van batch van %d bestand(en):" + +#: EncoderStatusWindow.vala:98 MainWindow.vala:1392 +msgid "Status" +msgstr "Status" + +#: Utility.vala:761 +msgid "Stopped" +msgstr "Gestopt" + +#: Main.vala:1077 +msgid "Stopped!" +msgstr "Gestopt!" + +#: MainWindow.vala:1665 +msgid "Subtitle" +msgstr "Ondertiteling" + +#: EncoderConfigWindow.vala:1510 EncoderConfigWindow.vala:1550 +msgid "Subtitles" +msgstr "Ondertitelingen" + +#: EncoderConfigWindow.vala:1166 +msgid "SuperFast" +msgstr "Supersnel" + +#: MainWindow.vala:3178 +msgid "System shutdown" +msgstr "Systeem afsluiten" + +#: MainWindow.vala:3185 +#, c-format +msgid "System shutdown was cancelled by user!" +msgstr "Het afsluiten is geannuleerd door de gebruiker!" + +#: Main.vala:230 +msgid "System will be shutdown after completion" +msgstr "Het systeem zal worden afgesloten na voltooiing" + +#: Main.vala:778 MainWindow.vala:3175 +msgid "System will shutdown in one minute!" +msgstr "Het systeem zal over één minuut worden afgesloten!" + +#: EncoderConfigWindow.vala:1572 +msgid "Tags" +msgstr "Labels" + +#: EncoderConfigWindow.vala:760 +msgid "Tempo" +msgstr "Tempo" + +#: EncoderConfigWindow.vala:618 +msgid "The Sox utility was not found on your system" +msgstr "Het Sox-hulpmiddel kan niet worden gevonden op uw systeem" + +#: EncoderConfigWindow.vala:1384 +msgid "" +"The resizing filter affects the sharpness and compressibility of the video.\n" +"For example, the 'Lanzos' filter gives sharper video but the extra detail\n" +"makes the video more difficult to compress resulting in slightly bigger " +"files.\n" +"The 'Bilinear' filter gives smoother video (less detail) and smaller files." +msgstr "" +"Het herschalingsfilter beïnvloedt de scherpte en compressiemogelijkheden van " +"de video.\n" +"Voorbeeld: het 'Lanzos'-filter geeft scherpere videobeelden maar de extra " +"details\n" +"zorgen voor moeilijkere compressie waardoor de bestanden groter worden.\n" +"Het 'Bilinear'-filter geeft vloeiender videobeelden (minder details) en " +"kleinere bestanden." + +#: AppConfigWindow.vala:442 +msgid "" +"The temporary folder contains files which may be useful for advanced users. " +"Keep this un-checked if you want to keep the temp files till the next reboot." +msgstr "" +"De tijdelijke map bevat bestanden die handig kunnen zijn voor geavanceerde " +"gebruikers. Vink dit niet aan als u de tijdelijke bestanden wilt bewaren " +"totdat u de computer opnieuw opstart." + +#: AboutWindow.vala:338 +#, c-format +msgid "Third Party Tools & Software" +msgstr "Hulpmiddelen en software van derde partijen" + +#: AppConfigWindow.vala:259 +msgid "Tiles" +msgstr "Tegels" + +#: MainWindow.vala:1266 MainWindow.vala:2775 +msgid "Title" +msgstr "Titel" + +#: EncoderStatusWindow.vala:76 +msgid "Tool" +msgstr "Hulpmiddel" + +#: AppConfigWindow.vala:274 +msgid "Tools" +msgstr "Hulpmiddelen" + +#: BatchEditWindow.vala:201 +msgid "Top" +msgstr "Bovenkant" + +#: MediaPlayerWindow.vala:250 +msgid "Top:" +msgstr "Bovenkant:" + +#: MainWindow.vala:1297 +msgid "Track #" +msgstr "Spoor #" + +#: MainWindow.vala:2776 +msgid "Track Number" +msgstr "Spoornummer" + +#: AboutWindow.vala:330 +#, c-format +msgid "Translators" +msgstr "Vertalers" + +#: EncoderConfigWindow.vala:684 +msgid "Treble" +msgstr "Treble" + +#: MediaPlayerWindow.vala:126 +msgid "Trim" +msgstr "Trimmen" + +#: BatchEditWindow.vala:88 MainWindow.vala:427 MainWindow.vala:1447 +msgid "Trim Duration" +msgstr "Trimduur" + +#: EncoderConfigWindow.vala:1164 +msgid "UltraFast" +msgstr "Ultrasnel" + +#: Main.vala:683 +msgid "Unknown format:" +msgstr "Onbekend formaat:" + +#: Main.vala:396 +msgid "Using temp folder:" +msgstr "De gebruikte tijdelijke map:" + +#: MainWindow.vala:1013 +msgid "V-Bitrate" +msgstr "V-Bitrate" + +#: MainWindow.vala:793 +msgid "V-Fmt" +msgstr "V-Fmt" + +#: MainWindow.vala:1133 +msgid "V-Fps" +msgstr "V-Fps" + +#: MainWindow.vala:1093 +msgid "V-Height" +msgstr "V-Hoogte" + +#: MainWindow.vala:1053 +msgid "V-Width" +msgstr "V-Breedte" + +#: FileInfoWindow.vala:70 +msgid "Value" +msgstr "Waarde" + +#: EncoderConfigWindow.vala:2038 EncoderConfigWindow.vala:2063 +#: EncoderConfigWindow.vala:2081 EncoderConfigWindow.vala:2107 +#: EncoderConfigWindow.vala:2138 EncoderConfigWindow.vala:2155 +#: EncoderConfigWindow.vala:2589 EncoderConfigWindow.vala:2614 +msgid "Variable Bitrate" +msgstr "Variabele bitrate" + +#: EncoderConfigWindow.vala:2616 +msgid "Variable Bitrate (2pass)" +msgstr "Variabele bitrate (2pass)" + +#: EncoderConfigWindow.vala:2539 EncoderConfigWindow.vala:2564 +msgid "Variable Bitrate / CRF" +msgstr "Variabele bitrate / CRF" + +#: EncoderConfigWindow.vala:333 +msgid "Version" +msgstr "Versie" + +#: EncoderConfigWindow.vala:1176 +msgid "VerySlow" +msgstr "Ergsloom" + +#: EncoderConfigWindow.vala:1032 MainWindow.vala:1659 +msgid "Video" +msgstr "Video" + +#: MainWindow.vala:2771 +msgid "Video Bitrate" +msgstr "Video-bitrate" + +#: MainWindow.vala:2763 +msgid "Video Format" +msgstr "Videoformaat" + +#: MainWindow.vala:2768 +msgid "Video Framerate" +msgstr "Video-framerate" + +#: MainWindow.vala:2767 +msgid "Video Height" +msgstr "Videohoogte" + +#: MainWindow.vala:2766 +msgid "Video Width" +msgstr "Videobreedte" + +#: EncoderConfigWindow.vala:1418 +msgid "" +"Video will not be resized if it's smaller than the given width and height" +msgstr "" +"De video zal niet worden herschaald als deze kleiner is dan de opgegeven " +"breedte en hoogte" + +#: DonationWindow.vala:88 +msgid "Visit Website" +msgstr "Website bezoeken" + +#: EncoderConfigWindow.vala:288 +msgid "WAV Audio (*.wav)" +msgstr "WAV-audio (*.wav)" + +#: Utility.vala:108 +msgid "Warning" +msgstr "Waarschuwing" + +#: Main.vala:233 +msgid "" +"Warning: User does not have Admin priviledges. '--shutdown' will be ignored." +msgstr "" +"Waarschuwing: de gebruikers heeft geen administratorrechten. '--shutdown' " +"zal worden genegeerd." + +#: EncoderConfigWindow.vala:274 +msgid "WebM Video (*.webm)" +msgstr "WebM-video (*.webm)" + +#: EncoderConfigWindow.vala:1352 EncoderConfigWindow.vala:1361 +msgid "Width" +msgstr "Breedte" + +#: MainWindow.vala:2271 +msgid "" +"[Batch completed] Right-click for options or click 'Finish' to continue." +msgstr "" +"[Batch voltooid] Klik met de rechtermuisknop voor opties of druk op " +"'Afronden' om door te gaan." + +#: MainWindow.vala:2275 +msgid "[Paused] Click 'Resume' to continue or 'Stop' to abort." +msgstr "" +"[Gepauzeerd] Druk op 'Doorgaan' om door te gaan op 'Stoppen' om af te breken." + +#: AppConfigWindow.vala:311 +msgid "avconv / Libav" +msgstr "avconv/libav" + +#: AppConfigWindow.vala:309 +msgid "ffmpeg" +msgstr "ffmpeg" + +#: AppConfigWindow.vala:355 +msgid "mplayer" +msgstr "mplayer" + +#: AppConfigWindow.vala:353 +msgid "mpv" +msgstr "mpv" + +#: MainWindow.vala:1906 +msgid "presets" +msgstr "voorinstellingen" + +#: MainWindow.vala:1902 +msgid "scripts" +msgstr "scripts" diff -Nru selene-16.9~287~ubuntu14.04.1/README.md selene-17.4.1/README.md --- selene-16.9~287~ubuntu14.04.1/README.md 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/README.md 2017-04-23 09:44:51.000000000 +0000 @@ -56,11 +56,8 @@ [selene-latest-amd64.deb](http://dl.dropbox.com/u/67740416/linux/selene-latest-amd64.deb?dl=1) (64-bit) ### Other Linux Distributions -An installer is available from following links: -[selene-latest-i386.run](http://dl.dropbox.com/u/67740416/linux/selene-latest-i386.run?dl=1) (32-bit) -[selene-latest-amd64.run](http://dl.dropbox.com/u/67740416/linux/selene-latest-amd64.run?dl=1) (64-bit) - -Run it from a terminal window with the following commands: +.RUN installers are available on the [GitHub Releases page](https://github.com/teejee2008/ukuu/releases). +Download the 32-bit or 64-bit installer and run the following commands in a terminal window: sh ./selene-latest-i386.run #32-bit sh ./selene-latest-amd64.run #64-bit @@ -101,7 +98,7 @@ Bash scripts can be written for controlling the encoding process. For example: x264 -o "${outDir}/${title}.mkv" "${inFile}" - + This script converts any given input file to an MKV file using the x264 encoder. ${inFile}, ${outDir}, ${title} are variables which refer to the input file. These variables will be inserted into the script before execution. It is mandatory to use these variables instead of hard-coding the input file names. This is the only restriction. @@ -121,9 +118,9 @@ 3. Select any preset, OR 4. Select any script that uses avconv, x264 or ffmpeg2theora for encoding. The script must use the cropping option for the encoder that is used. For example, we can use: - x264 --vf crop:0,0,0,0 -o "${outDir}/${title}.mkv" "${inFile}" + x264 --vf crop:0,0,0,0 -o "${outDir}/${title}.mkv" "${inFile}" - The cropping values specified in the script will be replaced with the calculated values before the script is executed. + The cropping values specified in the script will be replaced with the calculated values before the script is executed. After using the 'AutoCrop' option, the output can be previewed by right-clicking the file and selecting the 'Preview Output' option. The values can be edited directly from the input file list. Clear the values to disable the cropping option. diff -Nru selene-16.9~287~ubuntu14.04.1/selene.geany selene-17.4.1/selene.geany --- selene-16.9~287~ubuntu14.04.1/selene.geany 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/selene.geany 2017-04-23 09:44:51.000000000 +0000 @@ -17,27 +17,29 @@ long_line_column=80 [files] -current_page=1 -FILE_NAME_0=23970;Vala;0;EUTF-8;1;1;0;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FUtility.vala;0;4 -FILE_NAME_1=53290;Vala;0;EUTF-8;1;1;0;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMain.vala;0;4 -FILE_NAME_2=6735;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FEncoderConfigWindow.vala;0;4 +current_page=6 +FILE_NAME_0=24679;Vala;0;EUTF-8;1;1;0;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FUtility.vala;0;4 +FILE_NAME_1=6821;Vala;0;EUTF-8;1;1;0;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMain.vala;0;4 +FILE_NAME_2=6253;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FEncoderConfigWindow.vala;0;4 FILE_NAME_3=2267;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FFileInfoWindow.vala;0;4 -FILE_NAME_4=1516;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FAboutWindow.vala;0;4 -FILE_NAME_5=826;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FAppConfigWindow.vala;0;4 -FILE_NAME_6=2124;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FColumnSelectionDialog.vala;0;4 +FILE_NAME_4=6082;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FAboutWindow.vala;0;4 +FILE_NAME_5=2865;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FAppConfigWindow.vala;0;4 +FILE_NAME_6=1663;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FColumnSelectionDialog.vala;0;4 FILE_NAME_7=2436;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FEncoderStatusWindow.vala;0;4 -FILE_NAME_8=2607;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FCustomMessageDialog.vala;0;4 -FILE_NAME_9=2819;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FFFmpegBuilder.vala;0;4 +FILE_NAME_8=1601;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FCustomMessageDialog.vala;0;4 +FILE_NAME_9=2136;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FFFmpegBuilder.vala;0;4 FILE_NAME_10=4148;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FSimpleProgressWindow.vala;0;4 -FILE_NAME_11=71352;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMainWindow.vala;0;4 -FILE_NAME_12=981;Conf;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fdebian%2Fcontrol;0;4 -FILE_NAME_13=286;None;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fdebian%2Fchangelog;0;4 +FILE_NAME_11=87790;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMainWindow.vala;0;4 +FILE_NAME_12=436;Conf;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fdebian%2Fcontrol;0;4 +FILE_NAME_13=386;None;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fdebian%2Fchangelog;0;4 FILE_NAME_14=11321;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMediaPlayer.vala;0;4 -FILE_NAME_15=13049;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMediaFile.vala;0;4 +FILE_NAME_15=20588;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMediaFile.vala;0;4 FILE_NAME_16=2475;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FBatchEditWindow.vala;0;4 -FILE_NAME_17=550;Make;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2Fmakefile;0;4 -FILE_NAME_18=1942;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMediaPlayerWindow.vala;0;4 -FILE_NAME_19=7859;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Faptik%2Fsrc%2FClasses.vala;0;4 +FILE_NAME_17=3378;Make;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2Fmakefile;0;4 +FILE_NAME_18=3896;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FMediaPlayerWindow.vala;0;4 +FILE_NAME_19=926;Sh;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fbuild-installer.sh;0;4 +FILE_NAME_20=1400;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FTreeViewColumnManager.vala;0;4 +FILE_NAME_21=1527;Vala;0;EUTF-8;1;1;1;%2Fhome%2Fteejee%2Fprojects%2Flinux%2Fselene%2Fsrc%2FColumnSelectionBox.vala;0;4 [VTE] last_dir=/home/teejee diff -Nru selene-16.9~287~ubuntu14.04.1/selene.pot selene-17.4.1/selene.pot --- selene-16.9~287~ubuntu14.04.1/selene.pot 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/selene.pot 2017-04-23 09:44:51.000000000 +0000 @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: selene 2.2\n" "Report-Msgid-Bugs-To: teejee2008@gmail.com\n" -"POT-Creation-Date: 2016-09-14 20:42+0530\n" +"POT-Creation-Date: 2017-04-23 12:02+0530\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,7 +17,7 @@ "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: EncoderConfigWindow.vala:2147 +#: EncoderConfigWindow.vala:1954 msgid "" "\n" "Note:\n" @@ -33,7 +33,7 @@ "multiple segments using advanced mode will not work." msgstr "" -#: EncoderConfigWindow.vala:3065 +#: EncoderConfigWindow.vala:2872 msgid "" "\n" "Note:\n" @@ -41,7 +41,7 @@ "1. Supported subtitle file formats:" msgstr "" -#: EncoderConfigWindow.vala:2640 +#: EncoderConfigWindow.vala:2447 msgid "" "\n" "Note:\n" @@ -60,40 +60,40 @@ msgid "(Batch)" msgstr "" -#: MediaPlayerWindow.vala:1093 +#: MediaPlayerWindow.vala:1109 msgid "100%" msgstr "" -#: EncoderConfigWindow.vala:3085 +#: EncoderConfigWindow.vala:2892 msgid "" "2. External subtitle files must be present in the same location and start " "with the same file name." msgstr "" -#: MediaPlayerWindow.vala:1095 +#: MediaPlayerWindow.vala:1111 msgid "200%" msgstr "" -#: MediaPlayerWindow.vala:1087 +#: MediaPlayerWindow.vala:1103 msgid "25%" msgstr "" -#: MediaPlayerWindow.vala:1089 +#: MediaPlayerWindow.vala:1105 msgid "50%" msgstr "" -#: MediaPlayerWindow.vala:1091 +#: MediaPlayerWindow.vala:1107 msgid "75%" msgstr "" -#: EncoderConfigWindow.vala:683 EncoderConfigWindow.vala:684 +#: EncoderConfigWindow.vala:506 EncoderConfigWindow.vala:507 msgid "" "AAC-ELD\n" "Enhanced Low Delay Profile for real-time communication\n" "\n" msgstr "" -#: EncoderConfigWindow.vala:679 +#: EncoderConfigWindow.vala:502 msgid "" "AAC-LC (Recommended)\n" "MPEG-2 Low-complexity (LC) combined with MPEG-4 Perceptual Noise " @@ -101,14 +101,14 @@ "\n" msgstr "" -#: EncoderConfigWindow.vala:682 +#: EncoderConfigWindow.vala:505 msgid "" "AAC-LD\n" "Low Delay Profile for real-time communication\n" "\n" msgstr "" -#: EncoderConfigWindow.vala:1439 +#: EncoderConfigWindow.vala:1253 msgid "" "Additional Options\n" "These options will be passed to the encoder\n" @@ -116,23 +116,23 @@ "any options that are already provided by the GUI." msgstr "" -#: EncoderConfigWindow.vala:816 +#: EncoderConfigWindow.vala:633 msgid "Adjustments:" msgstr "" -#: EncoderConfigWindow.vala:568 +#: EncoderConfigWindow.vala:391 msgid "Audio Encoder" msgstr "" -#: AppConfigWindow.vala:158 +#: AppConfigWindow.vala:177 msgid "Backup Directory" msgstr "" -#: EncoderConfigWindow.vala:741 +#: EncoderConfigWindow.vala:561 msgid "Channels" msgstr "" -#: EncoderConfigWindow.vala:1371 +#: EncoderConfigWindow.vala:1185 msgid "" "Compression Vs Device Compatibility\n" "'High' profile gives the best compression.\n" @@ -141,67 +141,67 @@ "support the 'High' profile" msgstr "" -#: EncoderConfigWindow.vala:1329 +#: EncoderConfigWindow.vala:1143 msgid "" "Compression Vs Encoding Speed\n" "Slower presets give better compression and smaller files\n" "but take more time to encode." msgstr "" -#: EncoderConfigWindow.vala:1307 +#: EncoderConfigWindow.vala:1121 msgid "" "Compression Vs Quality\n" "Smaller values give better quality video and larger files" msgstr "" -#: AppConfigWindow.vala:366 +#: AppConfigWindow.vala:381 msgid "Default Language" msgstr "" -#: EncoderConfigWindow.vala:1716 +#: EncoderConfigWindow.vala:1524 msgid "" "Embed - Subtitle files will be combined with the output file.\n" "These subtitles can be switched off since they are added as a separate track" msgstr "" -#: AppConfigWindow.vala:278 +#: AppConfigWindow.vala:293 msgid "" "Encoder\n" "Use the 'ffmpeg' encoding tool from the FFmpeg project (Recommended)\n" "\n" msgstr "" -#: EncoderConfigWindow.vala:978 +#: EncoderConfigWindow.vala:795 msgid "Fade:" msgstr "" -#: EncoderConfigWindow.vala:429 +#: EncoderConfigWindow.vala:255 msgid "File Format" msgstr "" -#: AppConfigWindow.vala:420 +#: AppConfigWindow.vala:435 msgid "File Handling" msgstr "" -#: EncoderConfigWindow.vala:681 +#: EncoderConfigWindow.vala:504 msgid "" "HE-AAC v2\n" "AAC-LC + SBR + PS (Parametric Stereo)\n" "\n" msgstr "" -#: EncoderConfigWindow.vala:680 +#: EncoderConfigWindow.vala:503 msgid "" "HE-AAC\n" "AAC-LC + SBR (Spectral Band Replication)\n" "\n" msgstr "" -#: AppConfigWindow.vala:210 +#: AppConfigWindow.vala:229 msgid "Main Window" msgstr "" -#: EncoderConfigWindow.vala:685 +#: EncoderConfigWindow.vala:508 msgid "" "Note:\n" "HE-AAC and HE-AACv2 are used for low-bitrate encoding while HE-LD and HE-ELD " @@ -210,23 +210,23 @@ "low as 32 kbps." msgstr "" -#: EncoderConfigWindow.vala:1072 +#: EncoderConfigWindow.vala:889 msgid "Other Effects:" msgstr "" -#: AppConfigWindow.vala:106 +#: AppConfigWindow.vala:125 msgid "Output Directory" msgstr "" -#: AppConfigWindow.vala:265 +#: AppConfigWindow.vala:280 msgid "Preferred Tools" msgstr "" -#: EncoderConfigWindow.vala:489 +#: EncoderConfigWindow.vala:315 msgid "Preset" msgstr "" -#: EncoderConfigWindow.vala:2712 +#: EncoderConfigWindow.vala:2519 msgid "" "Quality Vs Encoding Speed\n" "\n" @@ -235,7 +235,7 @@ "Realtime: Fastest" msgstr "" -#: EncoderConfigWindow.vala:2714 +#: EncoderConfigWindow.vala:2521 msgid "" "Quality Vs Encoding Speed\n" "\n" @@ -243,153 +243,153 @@ "Larger value = Lower quality, faster\n" msgstr "" -#: EncoderConfigWindow.vala:2722 +#: EncoderConfigWindow.vala:2529 msgid "" "Quality Vs Encoding Speed\n" "Higher values speed-up encoding at the expense of quality.\n" "Lower values improve quality at the expense of encoding speed." msgstr "" -#: EncoderConfigWindow.vala:1718 +#: EncoderConfigWindow.vala:1526 msgid "" "Render - Subtitles are rendered/burned on the video.\n" "These subtitles cannot be switched off since they become a part of the video" msgstr "" -#: EncoderConfigWindow.vala:719 EncoderConfigWindow.vala:1621 +#: EncoderConfigWindow.vala:539 EncoderConfigWindow.vala:1432 msgid "Resample" msgstr "" -#: EncoderConfigWindow.vala:1502 +#: EncoderConfigWindow.vala:1313 msgid "Resize" msgstr "" -#: EncoderConfigWindow.vala:781 +#: EncoderConfigWindow.vala:598 msgid "SOX Audio Processing" msgstr "" -#: EncoderConfigWindow.vala:1710 +#: EncoderConfigWindow.vala:1518 msgid "Subtitles" msgstr "" -#: EncoderConfigWindow.vala:1774 +#: EncoderConfigWindow.vala:1581 msgid "Tags" msgstr "" -#: EncoderConfigWindow.vala:1227 +#: EncoderConfigWindow.vala:1041 msgid "Video Encoder" msgstr "" -#: AppConfigWindow.vala:277 +#: AppConfigWindow.vala:292 msgid "" "avconv\n" "Use the 'avconv' encoding tool from the Libav project\n" "\n" msgstr "" -#: MainWindow.vala:958 +#: MainWindow.vala:978 msgid "A-Bitrate" msgstr "" -#: MainWindow.vala:832 +#: MainWindow.vala:852 msgid "A-Ch" msgstr "" -#: MainWindow.vala:754 +#: MainWindow.vala:774 msgid "A-Fmt" msgstr "" -#: MainWindow.vala:872 +#: MainWindow.vala:892 msgid "A-Sampling" msgstr "" -#: EncoderConfigWindow.vala:3123 EncoderConfigWindow.vala:3142 +#: EncoderConfigWindow.vala:2930 EncoderConfigWindow.vala:2949 msgid "AAC-ELD" msgstr "" -#: EncoderConfigWindow.vala:3106 EncoderConfigWindow.vala:3115 -#: EncoderConfigWindow.vala:3134 +#: EncoderConfigWindow.vala:2913 EncoderConfigWindow.vala:2922 +#: EncoderConfigWindow.vala:2941 msgid "AAC-LC" msgstr "" -#: EncoderConfigWindow.vala:3121 EncoderConfigWindow.vala:3140 +#: EncoderConfigWindow.vala:2928 EncoderConfigWindow.vala:2947 msgid "AAC-LD" msgstr "" -#: EncoderConfigWindow.vala:452 +#: EncoderConfigWindow.vala:278 msgid "AC3 Audio (*.ac3)" msgstr "" -#: MainWindow.vala:243 +#: MainWindow.vala:259 msgid "Abort" msgstr "" -#: MainWindow.vala:301 +#: MainWindow.vala:317 msgid "About" msgstr "" -#: MainWindow.vala:353 MainWindow.vala:2582 +#: MainWindow.vala:369 MainWindow.vala:2617 msgid "Add File(s)" msgstr "" -#: MainWindow.vala:336 +#: MainWindow.vala:352 msgid "Add File(s)..." msgstr "" -#: MainWindow.vala:2586 +#: MainWindow.vala:2621 msgid "Add Folder(s)" msgstr "" -#: MainWindow.vala:346 +#: MainWindow.vala:362 msgid "Add Folder(s)..." msgstr "" -#: MainWindow.vala:1775 +#: MainWindow.vala:1811 msgid "Add New Preset" msgstr "" -#: MainWindow.vala:2888 MainWindow.vala:2914 MainWindow.vala:3049 +#: MainWindow.vala:2857 MainWindow.vala:2883 MainWindow.vala:3017 msgid "Add some files to the file list" msgstr "" -#: MainWindow.vala:2902 +#: MainWindow.vala:2871 msgid "Add some videos to the file list" msgstr "" -#: MainWindow.vala:2628 +#: MainWindow.vala:2663 #, c-format msgid "Adding (%d/%d): '%s'" msgstr "" -#: MainWindow.vala:2618 +#: MainWindow.vala:2653 msgid "Adding..." msgstr "" -#: EncoderConfigWindow.vala:1109 +#: EncoderConfigWindow.vala:926 msgid "Adjust Stereo for Headphones" msgstr "" -#: MediaPlayerWindow.vala:362 +#: MediaPlayerWindow.vala:378 msgid "Advanced Mode" msgstr "" -#: MainWindow.vala:1204 MainWindow.vala:2771 +#: MainWindow.vala:1224 msgid "Album" msgstr "" -#: Main.vala:698 +#: Main.vala:721 msgid "All files removed" msgstr "" -#: MainWindow.vala:2959 +#: MainWindow.vala:2928 msgid "An audio-video converter for Linux" msgstr "" -#: MainWindow.vala:277 +#: MainWindow.vala:293 msgid "Application Settings" msgstr "" -#: MainWindow.vala:1173 MainWindow.vala:2770 +#: MainWindow.vala:1193 msgid "Artist" msgstr "" @@ -398,35 +398,11 @@ msgid "Artists" msgstr "" -#: EncoderConfigWindow.vala:553 MainWindow.vala:1662 +#: EncoderConfigWindow.vala:384 MainWindow.vala:1688 msgid "Audio" msgstr "" -#: MainWindow.vala:2768 -msgid "Audio Bitrate" -msgstr "" - -#: MainWindow.vala:2762 -msgid "Audio Channels" -msgstr "" - -#: EncoderConfigWindow.vala:384 -msgid "Audio Encoder" -msgstr "" - -#: EncoderConfigWindow.vala:389 -msgid "Audio Filters" -msgstr "" - -#: MainWindow.vala:2760 -msgid "Audio Format" -msgstr "" - -#: MainWindow.vala:2763 -msgid "Audio Sampling Rate" -msgstr "" - -#: EncoderConfigWindow.vala:520 +#: EncoderConfigWindow.vala:346 msgid "Author" msgstr "" @@ -435,7 +411,7 @@ msgid "Authors" msgstr "" -#: EncoderConfigWindow.vala:3101 +#: EncoderConfigWindow.vala:2908 msgid "Auto" msgstr "" @@ -443,16 +419,16 @@ msgid "Auto Crop" msgstr "" -#: EncoderConfigWindow.vala:2235 EncoderConfigWindow.vala:2260 -#: EncoderConfigWindow.vala:2278 EncoderConfigWindow.vala:2304 -#: EncoderConfigWindow.vala:2335 EncoderConfigWindow.vala:2352 -#: EncoderConfigWindow.vala:2736 EncoderConfigWindow.vala:2761 -#: EncoderConfigWindow.vala:2786 +#: EncoderConfigWindow.vala:2042 EncoderConfigWindow.vala:2067 +#: EncoderConfigWindow.vala:2085 EncoderConfigWindow.vala:2111 +#: EncoderConfigWindow.vala:2142 EncoderConfigWindow.vala:2159 +#: EncoderConfigWindow.vala:2543 EncoderConfigWindow.vala:2568 +#: EncoderConfigWindow.vala:2593 msgid "Average Bitrate" msgstr "" -#: EncoderConfigWindow.vala:2738 EncoderConfigWindow.vala:2763 -#: EncoderConfigWindow.vala:2788 +#: EncoderConfigWindow.vala:2545 EncoderConfigWindow.vala:2570 +#: EncoderConfigWindow.vala:2595 msgid "Average Bitrate (2-pass)" msgstr "" @@ -460,35 +436,35 @@ msgid "Back" msgstr "" -#: MainWindow.vala:250 +#: MainWindow.vala:266 msgid "Background" msgstr "" -#: MediaPlayerWindow.vala:476 +#: MediaPlayerWindow.vala:492 msgid "Basic Mode" msgstr "" -#: EncoderConfigWindow.vala:831 +#: EncoderConfigWindow.vala:648 msgid "Bass" msgstr "" -#: EncoderConfigWindow.vala:1408 +#: EncoderConfigWindow.vala:1222 msgid "Best" msgstr "" -#: MainWindow.vala:912 MainWindow.vala:2767 +#: MainWindow.vala:932 msgid "Bitrate" msgstr "" -#: EncoderConfigWindow.vala:612 EncoderConfigWindow.vala:1286 +#: EncoderConfigWindow.vala:435 EncoderConfigWindow.vala:1100 msgid "Bitrate (kbps)" msgstr "" -#: EncoderConfigWindow.vala:829 +#: EncoderConfigWindow.vala:646 msgid "Boost or cut the bass (lower) frequencies of the audio." msgstr "" -#: EncoderConfigWindow.vala:867 +#: EncoderConfigWindow.vala:684 msgid "Boost or cut the treble (upper) frequencies of the audio." msgstr "" @@ -496,94 +472,95 @@ msgid "Bottom" msgstr "" -#: MediaPlayerWindow.vala:247 +#: MediaPlayerWindow.vala:263 msgid "Bottom:" msgstr "" -#: MainWindow.vala:1788 +#: MainWindow.vala:1824 msgid "Browse" msgstr "" -#: MainWindow.vala:3245 +#: MainWindow.vala:3204 msgid "CPU: " msgstr "" -#: Main.vala:1227 Main.vala:1241 +#: Main.vala:1250 Main.vala:1264 msgid "Cancelled" msgstr "" -#: EncoderConfigWindow.vala:905 +#: EncoderConfigWindow.vala:722 msgid "Change audio pitch (shrillness) without changing audio tempo (speed)." msgstr "" -#: EncoderConfigWindow.vala:943 +#: EncoderConfigWindow.vala:760 msgid "" "Change audio tempo (speed) without changing audio pitch (shrillness).\n" "\n" "WARNING: This will change the duration of the audio track" msgstr "" -#: EncoderConfigWindow.vala:749 +#: EncoderConfigWindow.vala:569 msgid "Channels" msgstr "" -#: MainWindow.vala:387 +#: MainWindow.vala:403 msgid "Clear List" msgstr "" -#: MediaPlayerWindow.vala:659 +#: MediaPlayerWindow.vala:675 msgid "Clip" msgstr "" -#: AboutWindow.vala:295 +#: AboutWindow.vala:295 AppConfigWindow.vala:107 ColumnSelectionBox.vala:214 +#: ColumnSelectionBox.vala:215 msgid "Close" msgstr "" -#: MainWindow.vala:1536 +#: MainWindow.vala:1559 msgid "Columns..." msgstr "" -#: MainWindow.vala:1329 MainWindow.vala:2775 +#: MainWindow.vala:1349 msgid "Comments" msgstr "" -#: Main.vala:1062 Main.vala:1072 Main.vala:1080 +#: Main.vala:1085 Main.vala:1095 Main.vala:1103 msgid "Completed" msgstr "" -#: EncoderConfigWindow.vala:2237 EncoderConfigWindow.vala:2306 -#: EncoderConfigWindow.vala:2337 EncoderConfigWindow.vala:2813 +#: EncoderConfigWindow.vala:2044 EncoderConfigWindow.vala:2113 +#: EncoderConfigWindow.vala:2144 EncoderConfigWindow.vala:2620 msgid "Constant Bitrate" msgstr "" -#: EncoderConfigWindow.vala:2239 +#: EncoderConfigWindow.vala:2046 msgid "Constant Bitrate (Strict)" msgstr "" -#: Main.vala:972 Main.vala:1275 MainWindow.vala:2279 +#: Main.vala:995 Main.vala:1298 MainWindow.vala:2314 msgid "Converting" msgstr "" -#: Main.vala:970 Main.vala:1273 +#: Main.vala:993 Main.vala:1296 msgid "Converting: Enter (q) to quit or (p) to pause..." msgstr "" -#: EncoderConfigWindow.vala:1948 EncoderConfigWindow.vala:1964 -#: EncoderConfigWindow.vala:1979 +#: EncoderConfigWindow.vala:1755 EncoderConfigWindow.vala:1771 +#: EncoderConfigWindow.vala:1786 msgid "Copy Audio" msgstr "" -#: EncoderConfigWindow.vala:1883 EncoderConfigWindow.vala:1892 -#: EncoderConfigWindow.vala:1901 EncoderConfigWindow.vala:1908 -#: EncoderConfigWindow.vala:1919 +#: EncoderConfigWindow.vala:1690 EncoderConfigWindow.vala:1699 +#: EncoderConfigWindow.vala:1708 EncoderConfigWindow.vala:1715 +#: EncoderConfigWindow.vala:1726 msgid "Copy Video" msgstr "" -#: EncoderConfigWindow.vala:1783 +#: EncoderConfigWindow.vala:1590 msgid "Copy tags (artist, album, etc) from the source file to output file" msgstr "" -#: EncoderConfigWindow.vala:1785 +#: EncoderConfigWindow.vala:1592 msgid "Copy tags from source file" msgstr "" @@ -591,7 +568,7 @@ msgid "Credits" msgstr "" -#: MainWindow.vala:432 +#: MainWindow.vala:448 msgid "Crop" msgstr "" @@ -599,35 +576,35 @@ msgid "Crop Left" msgstr "" -#: BatchEditWindow.vala:85 MainWindow.vala:1442 MediaPlayerWindow.vala:122 +#: BatchEditWindow.vala:85 MainWindow.vala:1465 MediaPlayerWindow.vala:123 msgid "Crop Video" msgstr "" -#: MainWindow.vala:416 MainWindow.vala:435 +#: MainWindow.vala:432 MainWindow.vala:451 msgid "Crop Videos" msgstr "" -#: MediaPlayerWindow.vala:267 +#: MediaPlayerWindow.vala:283 msgid "Cropped:" msgstr "" -#: EncoderConfigWindow.vala:1519 EncoderConfigWindow.vala:1639 +#: EncoderConfigWindow.vala:1330 EncoderConfigWindow.vala:1450 msgid "Custom" msgstr "" -#: MainWindow.vala:1782 +#: MainWindow.vala:1818 msgid "Delete Preset" msgstr "" -#: MediaPlayerWindow.vala:458 +#: MediaPlayerWindow.vala:474 msgid "Delete Segment" msgstr "" -#: AppConfigWindow.vala:430 +#: AppConfigWindow.vala:445 msgid "Delete temporary files after successful encode" msgstr "" -#: EncoderConfigWindow.vala:1685 +#: EncoderConfigWindow.vala:1496 msgid "Denominator" msgstr "" @@ -635,20 +612,20 @@ msgid "Description" msgstr "" -#: MediaPlayerWindow.vala:282 +#: MediaPlayerWindow.vala:298 msgid "Detect Borders" msgstr "" -#: MediaPlayerWindow.vala:284 +#: MediaPlayerWindow.vala:300 msgid "Detect black borders in the video and set cropping parameters" msgstr "" -#: MediaPlayerWindow.vala:856 +#: MediaPlayerWindow.vala:872 #, c-format msgid "Detected Parameters: %d, %d, %d, %d" msgstr "" -#: BatchEditWindow.vala:426 MediaPlayerWindow.vala:788 +#: BatchEditWindow.vala:426 MediaPlayerWindow.vala:804 msgid "Detecting borders..." msgstr "" @@ -669,16 +646,16 @@ "(teejeetech@gmail.com)" msgstr "" -#: EncoderConfigWindow.vala:1946 EncoderConfigWindow.vala:1962 -#: EncoderConfigWindow.vala:1977 +#: EncoderConfigWindow.vala:1753 EncoderConfigWindow.vala:1769 +#: EncoderConfigWindow.vala:1784 msgid "Disable Audio" msgstr "" -#: EncoderConfigWindow.vala:1917 +#: EncoderConfigWindow.vala:1724 msgid "Disable Video" msgstr "" -#: EncoderConfigWindow.vala:1602 +#: EncoderConfigWindow.vala:1413 msgid "Do not stretch or squeeze the video (Fit-To-Box)" msgstr "" @@ -687,7 +664,7 @@ msgid "Documenters" msgstr "" -#: DonationWindow.vala:36 MainWindow.vala:290 MainWindow.vala:291 +#: DonationWindow.vala:36 MainWindow.vala:306 MainWindow.vala:307 msgid "Donate" msgstr "" @@ -704,19 +681,15 @@ msgid "Donations" msgstr "" -#: Main.vala:1057 +#: Main.vala:1080 msgid "Done" msgstr "" -#: ColumnSelectionDialog.vala:62 -msgid "Drag and drop to re-order" -msgstr "" - -#: MainWindow.vala:2267 +#: MainWindow.vala:2302 msgid "Drag files on this window or click the 'Add' button" msgstr "" -#: MainWindow.vala:660 MediaPlayerWindow.vala:665 +#: MainWindow.vala:680 MediaPlayerWindow.vala:681 msgid "Duration" msgstr "" @@ -724,47 +697,47 @@ msgid "Edit" msgstr "" -#: MainWindow.vala:1855 +#: MainWindow.vala:1891 msgid "Edit Preset" msgstr "" -#: EncoderConfigWindow.vala:531 +#: EncoderConfigWindow.vala:357 msgid "Email" msgstr "" -#: EncoderConfigWindow.vala:2073 +#: EncoderConfigWindow.vala:1880 msgid "Embed / Soft Subs" msgstr "" -#: EncoderConfigWindow.vala:3163 +#: EncoderConfigWindow.vala:2970 msgid "Empty Preset Name" msgstr "" -#: AppConfigWindow.vala:280 +#: AppConfigWindow.vala:295 msgid "Encoder" msgstr "" -#: EncoderStatusWindow.vala:45 MainWindow.vala:283 +#: EncoderStatusWindow.vala:45 MainWindow.vala:299 msgid "Encoders" msgstr "" -#: EncoderConfigWindow.vala:599 EncoderConfigWindow.vala:1267 +#: EncoderConfigWindow.vala:422 EncoderConfigWindow.vala:1081 msgid "Encoding Mode" msgstr "" -#: MainWindow.vala:1845 +#: MainWindow.vala:1881 msgid "Encoding Script or Preset File" msgstr "" -#: MediaPlayerWindow.vala:328 +#: MediaPlayerWindow.vala:344 msgid "End (sec):" msgstr "" -#: MediaPlayerWindow.vala:663 +#: MediaPlayerWindow.vala:679 msgid "End Pos" msgstr "" -#: MediaPlayerWindow.vala:442 +#: MediaPlayerWindow.vala:458 msgid "End Segment" msgstr "" @@ -772,125 +745,133 @@ msgid "EndPos" msgstr "" -#: Main.vala:779 +#: Main.vala:802 msgid "Enter any key to Cancel..." msgstr "" -#: AppConfigWindow.vala:126 AppConfigWindow.vala:178 +#: AppConfigWindow.vala:145 AppConfigWindow.vala:197 msgid "Enter path or browse for directory" msgstr "" -#: Main.vala:1067 Utility.vala:108 +#: Main.vala:1090 Utility.vala:108 msgid "Error" msgstr "" -#: Main.vala:814 +#: Main.vala:837 msgid "Error: File missing" msgstr "" -#: EncoderConfigWindow.vala:476 +#: EncoderConfigWindow.vala:302 msgid "Extension" msgstr "" -#: EncoderConfigWindow.vala:1442 +#: EncoderConfigWindow.vala:1256 msgid "Extra Options" msgstr "" -#: EncoderConfigWindow.vala:454 +#: EncoderConfigWindow.vala:280 msgid "FLAC Audio (*.flac)" msgstr "" -#: EncoderConfigWindow.vala:993 +#: EncoderConfigWindow.vala:810 msgid "Fade In (sec)" msgstr "" -#: EncoderConfigWindow.vala:1013 +#: EncoderConfigWindow.vala:830 msgid "Fade Out (sec)" msgstr "" -#: EncoderConfigWindow.vala:1033 +#: EncoderConfigWindow.vala:850 msgid "Fade Type" msgstr "" -#: Main.vala:1083 +#: Main.vala:1106 msgid "Failed" msgstr "" -#: Utility.vala:1435 +#: Utility.vala:1458 msgid "Failed to set ownership" msgstr "" -#: EncoderConfigWindow.vala:1356 +#: EncoderConfigWindow.vala:1170 msgid "Fast" msgstr "" -#: BatchEditWindow.vala:140 ColumnSelectionDialog.vala:74 MainWindow.vala:471 +#: BatchEditWindow.vala:140 MainWindow.vala:491 msgid "File" msgstr "" -#: MainWindow.vala:1525 +#: MainWindow.vala:1548 msgid "File Info (Output)" msgstr "" -#: MainWindow.vala:1519 +#: MainWindow.vala:1542 msgid "File Info (Source)" msgstr "" -#: AppConfigWindow.vala:222 +#: AppConfigWindow.vala:241 msgid "File View" msgstr "" -#: Main.vala:678 +#: Main.vala:701 msgid "File added:" msgstr "" -#: Main.vala:692 +#: Main.vala:715 msgid "File removed:" msgstr "" -#: Main.vala:715 +#: Main.vala:738 #, c-format msgid "Files will be saved in '%s'" msgstr "" -#: Main.vala:718 +#: Main.vala:741 msgid "Files will be saved in source directory" msgstr "" -#: EncoderConfigWindow.vala:704 EncoderConfigWindow.vala:1485 -msgid "Filters" +#: EncoderConfigWindow.vala:532 +msgid "Filters (A)" msgstr "" -#: MainWindow.vala:261 MainWindow.vala:263 MediaPlayerWindow.vala:291 -#: MediaPlayerWindow.vala:377 MediaPlayerWindow.vala:491 +#: EncoderConfigWindow.vala:1304 +msgid "Filters (V)" +msgstr "" + +#: MainWindow.vala:277 MainWindow.vala:279 MediaPlayerWindow.vala:307 +#: MediaPlayerWindow.vala:393 MediaPlayerWindow.vala:507 msgid "Finish" msgstr "" -#: EncoderConfigWindow.vala:1598 +#: EncoderConfigWindow.vala:1409 msgid "Fits the video in a box of given width and height." msgstr "" -#: EncoderConfigWindow.vala:2369 +#: EncoderConfigWindow.vala:2176 msgid "Fixed Bitrate" msgstr "" -#: MainWindow.vala:1820 MainWindow.vala:1830 +#: ColumnSelectionBox.vala:267 ColumnSelectionBox.vala:302 +msgid "Fixed Column" +msgstr "" + +#: MainWindow.vala:1856 MainWindow.vala:1866 msgid "Folder" msgstr "" -#: MainWindow.vala:3064 +#: MainWindow.vala:3032 msgid "Following encoders were not found on your system:" msgstr "" -#: Main.vala:347 +#: Main.vala:359 msgid "Following utilities are not installed on your system:" msgstr "" -#: EncoderConfigWindow.vala:437 MainWindow.vala:703 MainWindow.vala:2759 +#: EncoderConfigWindow.vala:263 MainWindow.vala:723 msgid "Format" msgstr "" -#: EncoderConfigWindow.vala:576 EncoderConfigWindow.vala:1235 +#: EncoderConfigWindow.vala:399 EncoderConfigWindow.vala:1049 msgid "Format / Codec" msgstr "" @@ -898,70 +879,73 @@ msgid "Found" msgstr "" -#: EncoderConfigWindow.vala:1659 +#: EncoderConfigWindow.vala:1470 msgid "Fps: Frames" msgstr "" -#: EncoderConfigWindow.vala:1676 +#: EncoderConfigWindow.vala:1487 msgid "Fps: Seconds" msgstr "" -#: EncoderConfigWindow.vala:1630 +#: EncoderConfigWindow.vala:1441 msgid "Frame Rate" msgstr "" -#: EncoderConfigWindow.vala:1632 +#: EncoderConfigWindow.vala:1443 msgid "Frames/sec" msgstr "" -#: MediaPlayerWindow.vala:1177 MediaPlayerWindow.vala:1181 +#: MediaPlayerWindow.vala:1193 MediaPlayerWindow.vala:1197 msgid "Fullscreen" msgstr "" -#: AppConfigWindow.vala:98 EncoderConfigWindow.vala:369 -#: EncoderConfigWindow.vala:415 +#: AppConfigWindow.vala:121 EncoderConfigWindow.vala:248 msgid "General" msgstr "" -#: MainWindow.vala:1235 MainWindow.vala:2772 +#: MainWindow.vala:1255 msgid "Genre" msgstr "" -#: EncoderConfigWindow.vala:1410 +#: EncoderConfigWindow.vala:1224 msgid "Good" msgstr "" -#: EncoderConfigWindow.vala:3108 EncoderConfigWindow.vala:3117 -#: EncoderConfigWindow.vala:3136 +#: EncoderConfigWindow.vala:2915 EncoderConfigWindow.vala:2924 +#: EncoderConfigWindow.vala:2943 msgid "HE-AAC" msgstr "" -#: EncoderConfigWindow.vala:3110 EncoderConfigWindow.vala:3119 -#: EncoderConfigWindow.vala:3138 +#: EncoderConfigWindow.vala:2917 EncoderConfigWindow.vala:2926 +#: EncoderConfigWindow.vala:2945 msgid "HE-AAC v2" msgstr "" -#: EncoderConfigWindow.vala:1053 +#: EncoderConfigWindow.vala:870 msgid "Half Sine" msgstr "" -#: EncoderConfigWindow.vala:1560 EncoderConfigWindow.vala:1569 +#: EncoderConfigWindow.vala:1371 EncoderConfigWindow.vala:1380 msgid "Height" msgstr "" -#: MainWindow.vala:1797 MainWindow.vala:1799 MainWindow.vala:2225 +#: ColumnSelectionBox.vala:125 +msgid "Indicator" +msgstr "" + +#: MainWindow.vala:1833 MainWindow.vala:1835 MainWindow.vala:2261 msgid "Info" msgstr "" -#: Main.vala:706 +#: Main.vala:729 msgid "Input queue is empty! Please add some files." msgstr "" -#: Main.vala:257 +#: Main.vala:266 msgid "Input queue is empty! Please select files to convert." msgstr "" -#: EncoderConfigWindow.vala:1059 +#: EncoderConfigWindow.vala:876 msgid "Inverted Parabola" msgstr "" @@ -969,63 +953,63 @@ msgid "Key" msgstr "" -#: AppConfigWindow.vala:380 +#: AppConfigWindow.vala:395 msgid "Language" msgstr "" -#: MediaPlayerWindow.vala:208 +#: MediaPlayerWindow.vala:224 msgid "Left:" msgstr "" -#: EncoderConfigWindow.vala:1055 +#: EncoderConfigWindow.vala:872 msgid "Linear" msgstr "" -#: AppConfigWindow.vala:238 +#: AppConfigWindow.vala:257 msgid "List" msgstr "" -#: Main.vala:395 +#: Main.vala:407 msgid "Loading presets from:" msgstr "" -#: Main.vala:394 +#: Main.vala:406 msgid "Loading scripts from:" msgstr "" -#: EncoderConfigWindow.vala:1057 +#: EncoderConfigWindow.vala:874 msgid "Logarithmic" msgstr "" -#: EncoderConfigWindow.vala:2396 +#: EncoderConfigWindow.vala:2203 msgid "Lossless" msgstr "" -#: EncoderConfigWindow.vala:456 +#: EncoderConfigWindow.vala:282 msgid "MP3 Audio (*.mp3)" msgstr "" -#: EncoderConfigWindow.vala:458 +#: EncoderConfigWindow.vala:284 msgid "MP4 Audio (*.mp4)" msgstr "" -#: EncoderConfigWindow.vala:3125 EncoderConfigWindow.vala:3144 +#: EncoderConfigWindow.vala:2932 EncoderConfigWindow.vala:2951 msgid "MPEG-2 AAC-LC" msgstr "" -#: EncoderConfigWindow.vala:3127 EncoderConfigWindow.vala:3146 +#: EncoderConfigWindow.vala:2934 EncoderConfigWindow.vala:2953 msgid "MPEG-2 HE-AAC" msgstr "" -#: EncoderConfigWindow.vala:3148 +#: EncoderConfigWindow.vala:2955 msgid "MPEG-2 HE-AAC v2" msgstr "" -#: EncoderConfigWindow.vala:446 +#: EncoderConfigWindow.vala:272 msgid "MPEG4 Video (*.mp4)" msgstr "" -#: EncoderConfigWindow.vala:1106 +#: EncoderConfigWindow.vala:923 msgid "" "Makes audio easier to listen to on headphones. Adds 'cues' to the audio so " "that when listened to on headphones the stereo image is moved from inside " @@ -1033,23 +1017,23 @@ "(standard for speakers)." msgstr "" -#: EncoderConfigWindow.vala:444 +#: EncoderConfigWindow.vala:270 msgid "Matroska Video (*.mkv)" msgstr "" -#: EncoderConfigWindow.vala:1088 +#: EncoderConfigWindow.vala:905 msgid "Maximize Volume Level (Normalize)" msgstr "" -#: EncoderConfigWindow.vala:1085 +#: EncoderConfigWindow.vala:902 msgid "Maximize the volume level (loudness)" msgstr "" -#: EncoderConfigWindow.vala:1358 +#: EncoderConfigWindow.vala:1172 msgid "Medium" msgstr "" -#: EncoderConfigWindow.vala:1579 +#: EncoderConfigWindow.vala:1390 msgid "Method" msgstr "" @@ -1057,54 +1041,74 @@ msgid "Missing" msgstr "" -#: MainWindow.vala:3064 +#: MainWindow.vala:3032 msgid "Missing Encoders" msgstr "" -#: Utility.vala:1037 +#: Utility.vala:1024 msgid "Missing Icon" msgstr "" -#: Main.vala:348 +#: Main.vala:360 msgid "Missing Utilities" msgstr "" -#: EncoderConfigWindow.vala:1726 +#: EncoderConfigWindow.vala:1534 msgid "Mode" msgstr "" -#: AppConfigWindow.vala:166 +#: ColumnSelectionBox.vala:203 +msgid "Move Down" +msgstr "" + +#: ColumnSelectionBox.vala:192 +msgid "Move Up" +msgstr "" + +#: ColumnSelectionBox.vala:204 +msgid "Move selected item down" +msgstr "" + +#: ColumnSelectionBox.vala:193 +msgid "Move selected item up" +msgstr "" + +#: AppConfigWindow.vala:185 msgid "Move source files after encoding is complete" msgstr "" -#: EncoderConfigWindow.vala:658 +#: ColumnSelectionBox.vala:246 ColumnSelectionBox.vala:281 +msgid "Multiple items selected" +msgstr "" + +#: EncoderConfigWindow.vala:481 msgid "Music" msgstr "" -#: MediaPlayerWindow.vala:1165 MediaPlayerWindow.vala:1169 +#: MediaPlayerWindow.vala:1181 MediaPlayerWindow.vala:1185 msgid "Mute" msgstr "" -#: MediaFile.vala:562 +#: MediaFile.vala:565 msgid "N/A" msgstr "" -#: EncoderConfigWindow.vala:498 +#: ColumnSelectionBox.vala:105 EncoderConfigWindow.vala:324 msgid "Name" msgstr "" -#: EncoderConfigWindow.vala:504 MainWindow.vala:1773 +#: EncoderConfigWindow.vala:330 MainWindow.vala:1809 msgid "New Preset" msgstr "" -#: EncoderConfigWindow.vala:1517 EncoderConfigWindow.vala:1637 -#: EncoderConfigWindow.vala:2419 EncoderConfigWindow.vala:2461 -#: EncoderConfigWindow.vala:2489 EncoderConfigWindow.vala:2503 -#: EncoderConfigWindow.vala:2534 EncoderConfigWindow.vala:2554 +#: EncoderConfigWindow.vala:1328 EncoderConfigWindow.vala:1448 +#: EncoderConfigWindow.vala:2226 EncoderConfigWindow.vala:2268 +#: EncoderConfigWindow.vala:2296 EncoderConfigWindow.vala:2310 +#: EncoderConfigWindow.vala:2341 EncoderConfigWindow.vala:2361 msgid "No Change" msgstr "" -#: MainWindow.vala:2887 MainWindow.vala:2913 MainWindow.vala:3048 +#: MainWindow.vala:2856 MainWindow.vala:2882 MainWindow.vala:3016 msgid "No Files" msgstr "" @@ -1112,35 +1116,35 @@ msgid "No Files Selected" msgstr "" -#: EncoderConfigWindow.vala:2071 +#: EncoderConfigWindow.vala:1878 msgid "No Subtitles" msgstr "" -#: EncoderConfigWindow.vala:1613 +#: EncoderConfigWindow.vala:1424 msgid "No Up-Scaling" msgstr "" -#: MainWindow.vala:2901 +#: MainWindow.vala:2870 msgid "No Videos" msgstr "" -#: EncoderConfigWindow.vala:654 +#: EncoderConfigWindow.vala:477 msgid "None" msgstr "" -#: Main.vala:347 +#: Main.vala:359 msgid "Not possible to continue!" msgstr "" -#: EncoderConfigWindow.vala:1668 +#: EncoderConfigWindow.vala:1479 msgid "Numerator" msgstr "" -#: EncoderConfigWindow.vala:448 +#: EncoderConfigWindow.vala:274 msgid "OGG Theora Video (*.ogv)" msgstr "" -#: EncoderConfigWindow.vala:460 +#: EncoderConfigWindow.vala:286 msgid "OGG Vorbis Audio (*.ogg)" msgstr "" @@ -1148,101 +1152,109 @@ msgid "OK" msgstr "" -#: MainWindow.vala:1790 +#: MediaPlayerWindow.vala:146 +msgid "Open" +msgstr "" + +#: MainWindow.vala:1826 msgid "Open Folder" msgstr "" -#: MainWindow.vala:1496 +#: MainWindow.vala:1519 msgid "Open Log File" msgstr "" -#: MainWindow.vala:1490 +#: MainWindow.vala:1513 msgid "Open Output Folder" msgstr "" -#: MainWindow.vala:1484 +#: MainWindow.vala:1507 msgid "Open Temp Folder" msgstr "" -#: MainWindow.vala:319 +#: MainWindow.vala:335 msgid "Open output folder" msgstr "" -#: EncoderConfigWindow.vala:640 +#: EncoderConfigWindow.vala:463 msgid "Optimization" msgstr "" -#: EncoderConfigWindow.vala:462 +#: EncoderConfigWindow.vala:288 msgid "Opus Audio (*.opus)" msgstr "" -#: MainWindow.vala:317 +#: MainWindow.vala:333 msgid "Output" msgstr "" -#: MainWindow.vala:234 MainWindow.vala:3029 MainWindow.vala:3031 -#: MediaPlayerWindow.vala:1157 +#: MainWindow.vala:250 MainWindow.vala:2997 MainWindow.vala:2999 +#: MediaPlayerWindow.vala:1173 msgid "Pause" msgstr "" -#: Main.vala:1254 Main.vala:1259 +#: Main.vala:1277 Main.vala:1282 msgid "Paused" msgstr "" -#: Main.vala:1257 +#: Main.vala:1280 msgid "Paused: Enter (r) to resume..." msgstr "" -#: EncoderConfigWindow.vala:907 +#: EncoderConfigWindow.vala:724 msgid "Pitch" msgstr "" -#: MediaPlayerWindow.vala:1153 +#: MediaPlayerWindow.vala:1169 msgid "Play" msgstr "" -#: MainWindow.vala:1513 +#: MainWindow.vala:1536 msgid "Play File (Output)" msgstr "" -#: MainWindow.vala:1507 +#: MainWindow.vala:1530 msgid "Play File (Source)" msgstr "" -#: AppConfigWindow.vala:326 +#: AppConfigWindow.vala:341 msgid "Player" msgstr "" -#: MediaPlayerWindow.vala:790 +#: MediaPlayerWindow.vala:806 msgid "Please Wait..." msgstr "" -#: EncoderConfigWindow.vala:3161 +#: EncoderConfigWindow.vala:2968 msgid "Please enter a name for this preset" msgstr "" -#: MainWindow.vala:3064 +#: MainWindow.vala:3032 msgid "Please install required packages or select another preset" msgstr "" -#: EncoderConfigWindow.vala:803 +#: EncoderConfigWindow.vala:620 msgid "Please install the 'sox' package on your system to use this feature" msgstr "" -#: EncoderConfigWindow.vala:167 EncoderConfigWindow.vala:1334 -#: MainWindow.vala:1835 +#: ColumnSelectionBox.vala:267 ColumnSelectionBox.vala:302 +msgid "Position of fixed columns cannot be changed" +msgstr "" + +#: EncoderConfigWindow.vala:167 EncoderConfigWindow.vala:1148 +#: MainWindow.vala:1871 msgid "Preset" msgstr "" -#: MainWindow.vala:2186 +#: MainWindow.vala:2222 msgid "Preset deleted" msgstr "" -#: MainWindow.vala:3175 +#: MainWindow.vala:3134 msgid "Press 'Cancel' to abort shutdown" msgstr "" -#: EncoderConfigWindow.vala:663 EncoderConfigWindow.vala:1376 +#: EncoderConfigWindow.vala:486 EncoderConfigWindow.vala:1190 msgid "Profile" msgstr "" @@ -1250,27 +1262,27 @@ msgid "Properties" msgstr "" -#: EncoderConfigWindow.vala:626 EncoderConfigWindow.vala:1312 +#: EncoderConfigWindow.vala:449 EncoderConfigWindow.vala:1126 msgid "Quality" msgstr "" -#: EncoderConfigWindow.vala:1051 +#: EncoderConfigWindow.vala:868 msgid "Quarter Sine" msgstr "" -#: Main.vala:736 Main.vala:795 MediaFile.vala:46 +#: Main.vala:759 Main.vala:818 MediaFile.vala:46 msgid "Queued" msgstr "" -#: MainWindow.vala:2616 +#: MainWindow.vala:2651 msgid "Reading file properties..." msgstr "" -#: EncoderConfigWindow.vala:1412 +#: EncoderConfigWindow.vala:1226 msgid "Realtime" msgstr "" -#: MainWindow.vala:1360 MainWindow.vala:2776 +#: MainWindow.vala:1380 msgid "Recorded Date" msgstr "" @@ -1278,23 +1290,27 @@ msgid "Refresh" msgstr "" -#: MainWindow.vala:394 +#: MainWindow.vala:410 msgid "Remove File(s)" msgstr "" -#: MainWindow.vala:375 +#: MainWindow.vala:391 msgid "Remove Selected Items" msgstr "" -#: BatchEditWindow.vala:103 +#: BatchEditWindow.vala:103 ColumnSelectionBox.vala:169 msgid "Reset" msgstr "" -#: EncoderConfigWindow.vala:1510 +#: ColumnSelectionBox.vala:170 +msgid "Reset to default columns" +msgstr "" + +#: EncoderConfigWindow.vala:1321 msgid "Resolution" msgstr "" -#: MainWindow.vala:3023 MainWindow.vala:3025 +#: MainWindow.vala:2991 MainWindow.vala:2993 msgid "Resume" msgstr "" @@ -1302,65 +1318,69 @@ msgid "Right" msgstr "" -#: MainWindow.vala:454 +#: MainWindow.vala:472 msgid "Right-click for more options" msgstr "" -#: MediaPlayerWindow.vala:221 +#: MediaPlayerWindow.vala:237 msgid "Right:" msgstr "" -#: MainWindow.vala:255 +#: MainWindow.vala:271 msgid "Run in background with lower priority" msgstr "" -#: EncoderConfigWindow.vala:394 EncoderConfigWindow.vala:768 +#: EncoderConfigWindow.vala:589 msgid "SOX" msgstr "" -#: EncoderConfigWindow.vala:727 +#: EncoderConfigWindow.vala:547 msgid "Sampling Rate (Hz)" msgstr "" -#: AppConfigWindow.vala:114 +#: AppConfigWindow.vala:133 msgid "Save files in following location" msgstr "" -#: MediaPlayerWindow.vala:204 +#: MediaPlayerWindow.vala:220 msgid "Scroll mouse wheel to adjust" msgstr "" -#: ColumnSelectionDialog.vala:42 +#: ColumnSelectionDialog.vala:43 msgid "Select Columns" msgstr "" -#: AppConfigWindow.vala:137 AppConfigWindow.vala:189 +#: AppConfigWindow.vala:156 AppConfigWindow.vala:208 msgid "Select Path" msgstr "" -#: MainWindow.vala:2265 +#: MainWindow.vala:2300 msgid "Select a script from the dropdown and click 'Start' to begin" msgstr "" -#: MediaPlayerWindow.vala:364 +#: MediaPlayerWindow.vala:380 msgid "Select multiple segments" msgstr "" +#: ColumnSelectionBox.vala:246 ColumnSelectionBox.vala:281 +msgid "Select single item to move" +msgstr "" + #: BatchEditWindow.vala:421 BatchEditWindow.vala:485 msgid "Select some files from the list" msgstr "" -#: MediaPlayerWindow.vala:400 +#: MediaPlayerWindow.vala:416 msgid "Select the segments to include in output file:" msgstr "" -#: AppConfigWindow.vala:378 +#: AppConfigWindow.vala:393 msgid "" "Selected language will be used for setting the default flag on the audio/" "subtitle track" msgstr "" -#: MainWindow.vala:2223 +#: MainWindow.vala:2259 msgid "" "Selene supports 2 types of presets:\n" "\n" @@ -1379,19 +1399,19 @@ msgid "Send Email" msgstr "" -#: MediaPlayerWindow.vala:342 MediaPlayerWindow.vala:352 +#: MediaPlayerWindow.vala:358 MediaPlayerWindow.vala:368 msgid "Set" msgstr "" -#: MediaPlayerWindow.vala:353 +#: MediaPlayerWindow.vala:369 msgid "Set current playback position as ending position" msgstr "" -#: MediaPlayerWindow.vala:343 +#: MediaPlayerWindow.vala:359 msgid "Set current playback position as starting position" msgstr "" -#: EncoderConfigWindow.vala:1539 +#: EncoderConfigWindow.vala:1350 msgid "" "Set either Width or Height and leave the other as 0.\n" "It will be calculated automatically.\n" @@ -1402,76 +1422,76 @@ "Enable the 'Fit-To-Box' option to avoid changes to aspect ratio." msgstr "" -#: MainWindow.vala:306 +#: MainWindow.vala:322 msgid "Shutdown" msgstr "" -#: MainWindow.vala:3001 +#: MainWindow.vala:2969 msgid "Shutdown Disabled" msgstr "" -#: MainWindow.vala:2998 +#: MainWindow.vala:2966 msgid "Shutdown Enabled" msgstr "" -#: MainWindow.vala:311 +#: MainWindow.vala:327 msgid "Shutdown system after completion" msgstr "" -#: MainWindow.vala:610 +#: MainWindow.vala:630 msgid "Size" msgstr "" -#: MainWindow.vala:1437 +#: MainWindow.vala:1460 msgid "Skip File" msgstr "" -#: EncoderConfigWindow.vala:1360 +#: EncoderConfigWindow.vala:1174 msgid "Slow" msgstr "" -#: EncoderConfigWindow.vala:1362 +#: EncoderConfigWindow.vala:1176 msgid "Slower" msgstr "" -#: MainWindow.vala:2654 +#: MainWindow.vala:2689 msgid "Some files could not be added:" msgstr "" -#: Main.vala:724 +#: Main.vala:747 #, c-format msgid "Source files will be moved to '%s'" msgstr "" -#: Main.vala:826 MediaPlayerWindow.vala:260 +#: Main.vala:849 MediaPlayerWindow.vala:276 msgid "Source:" msgstr "" -#: EncoderConfigWindow.vala:803 +#: EncoderConfigWindow.vala:620 msgid "Sox Not Installed" msgstr "" -#: EncoderConfigWindow.vala:656 +#: EncoderConfigWindow.vala:479 msgid "Speech" msgstr "" -#: EncoderConfigWindow.vala:1396 +#: EncoderConfigWindow.vala:1210 msgid "Speed" msgstr "" -#: MainWindow.vala:225 MainWindow.vala:227 +#: MainWindow.vala:241 MainWindow.vala:243 msgid "Start" msgstr "" -#: MediaPlayerWindow.vala:314 +#: MediaPlayerWindow.vala:330 msgid "Start (sec):" msgstr "" -#: MediaPlayerWindow.vala:661 +#: MediaPlayerWindow.vala:677 msgid "Start Pos" msgstr "" -#: MediaPlayerWindow.vala:429 +#: MediaPlayerWindow.vala:445 msgid "Start Segment" msgstr "" @@ -1479,69 +1499,65 @@ msgid "StartPos" msgstr "" -#: Main.vala:710 +#: Main.vala:733 #, c-format msgid "Starting batch of %d file(s):" msgstr "" -#: EncoderStatusWindow.vala:98 MainWindow.vala:1392 +#: EncoderStatusWindow.vala:98 MainWindow.vala:1412 msgid "Status" msgstr "" -#: Utility.vala:761 +#: Utility.vala:748 msgid "Stopped" msgstr "" -#: Main.vala:1077 +#: Main.vala:1100 msgid "Stopped!" msgstr "" -#: EncoderConfigWindow.vala:1696 -msgid "Subs" -msgstr "" - -#: MainWindow.vala:1665 +#: MainWindow.vala:1691 msgid "Subtitle" msgstr "" -#: EncoderConfigWindow.vala:399 EncoderConfigWindow.vala:1744 +#: EncoderConfigWindow.vala:1512 EncoderConfigWindow.vala:1552 msgid "Subtitles" msgstr "" -#: EncoderConfigWindow.vala:1354 +#: EncoderConfigWindow.vala:1168 msgid "SuperFast" msgstr "" -#: MainWindow.vala:3177 +#: MainWindow.vala:3136 msgid "System shutdown" msgstr "" -#: MainWindow.vala:3184 +#: MainWindow.vala:3143 #, c-format msgid "System shutdown was cancelled by user!" msgstr "" -#: Main.vala:230 +#: Main.vala:239 msgid "System will be shutdown after completion" msgstr "" -#: Main.vala:778 MainWindow.vala:3174 +#: Main.vala:801 MainWindow.vala:3133 msgid "System will shutdown in one minute!" msgstr "" -#: EncoderConfigWindow.vala:404 EncoderConfigWindow.vala:1759 +#: EncoderConfigWindow.vala:1574 msgid "Tags" msgstr "" -#: EncoderConfigWindow.vala:945 +#: EncoderConfigWindow.vala:762 msgid "Tempo" msgstr "" -#: EncoderConfigWindow.vala:803 +#: EncoderConfigWindow.vala:620 msgid "The Sox utility was not found on your system" msgstr "" -#: EncoderConfigWindow.vala:1575 +#: EncoderConfigWindow.vala:1386 msgid "" "The resizing filter affects the sharpness and compressibility of the video.\n" "For example, the 'Lanzos' filter gives sharper video but the extra detail\n" @@ -1550,7 +1566,7 @@ "The 'Bilinear' filter gives smoother video (less detail) and smaller files." msgstr "" -#: AppConfigWindow.vala:427 +#: AppConfigWindow.vala:442 msgid "" "The temporary folder contains files which may be useful for advanced users. " "Keep this un-checked if you want to keep the temp files till the next reboot." @@ -1561,11 +1577,11 @@ msgid "Third Party Tools & Software" msgstr "" -#: AppConfigWindow.vala:240 +#: AppConfigWindow.vala:259 msgid "Tiles" msgstr "" -#: MainWindow.vala:1266 MainWindow.vala:2773 +#: MainWindow.vala:1286 msgid "Title" msgstr "" @@ -1573,7 +1589,7 @@ msgid "Tool" msgstr "" -#: AppConfigWindow.vala:255 +#: AppConfigWindow.vala:274 msgid "Tools" msgstr "" @@ -1581,64 +1597,60 @@ msgid "Top" msgstr "" -#: MediaPlayerWindow.vala:234 +#: MediaPlayerWindow.vala:250 msgid "Top:" msgstr "" -#: MainWindow.vala:1297 +#: MainWindow.vala:1317 msgid "Track #" msgstr "" -#: MainWindow.vala:2774 -msgid "Track Number" -msgstr "" - #: AboutWindow.vala:330 #, c-format msgid "Translators" msgstr "" -#: EncoderConfigWindow.vala:869 +#: EncoderConfigWindow.vala:686 msgid "Treble" msgstr "" -#: MediaPlayerWindow.vala:125 +#: MediaPlayerWindow.vala:126 msgid "Trim" msgstr "" -#: BatchEditWindow.vala:88 MainWindow.vala:427 MainWindow.vala:1447 +#: BatchEditWindow.vala:88 MainWindow.vala:443 MainWindow.vala:1470 msgid "Trim Duration" msgstr "" -#: EncoderConfigWindow.vala:1352 +#: EncoderConfigWindow.vala:1166 msgid "UltraFast" msgstr "" -#: Main.vala:683 +#: Main.vala:706 msgid "Unknown format:" msgstr "" -#: Main.vala:396 +#: Main.vala:408 msgid "Using temp folder:" msgstr "" -#: MainWindow.vala:1013 +#: MainWindow.vala:1033 msgid "V-Bitrate" msgstr "" -#: MainWindow.vala:793 +#: MainWindow.vala:813 msgid "V-Fmt" msgstr "" -#: MainWindow.vala:1133 +#: MainWindow.vala:1153 msgid "V-Fps" msgstr "" -#: MainWindow.vala:1093 +#: MainWindow.vala:1113 msgid "V-Height" msgstr "" -#: MainWindow.vala:1053 +#: MainWindow.vala:1073 msgid "V-Width" msgstr "" @@ -1646,62 +1658,34 @@ msgid "Value" msgstr "" -#: EncoderConfigWindow.vala:2233 EncoderConfigWindow.vala:2258 -#: EncoderConfigWindow.vala:2276 EncoderConfigWindow.vala:2302 -#: EncoderConfigWindow.vala:2333 EncoderConfigWindow.vala:2350 -#: EncoderConfigWindow.vala:2784 EncoderConfigWindow.vala:2809 +#: EncoderConfigWindow.vala:2040 EncoderConfigWindow.vala:2065 +#: EncoderConfigWindow.vala:2083 EncoderConfigWindow.vala:2109 +#: EncoderConfigWindow.vala:2140 EncoderConfigWindow.vala:2157 +#: EncoderConfigWindow.vala:2591 EncoderConfigWindow.vala:2616 msgid "Variable Bitrate" msgstr "" -#: EncoderConfigWindow.vala:2811 +#: EncoderConfigWindow.vala:2618 msgid "Variable Bitrate (2pass)" msgstr "" -#: EncoderConfigWindow.vala:2734 EncoderConfigWindow.vala:2759 +#: EncoderConfigWindow.vala:2541 EncoderConfigWindow.vala:2566 msgid "Variable Bitrate / CRF" msgstr "" -#: EncoderConfigWindow.vala:509 +#: EncoderConfigWindow.vala:335 msgid "Version" msgstr "" -#: EncoderConfigWindow.vala:1364 +#: EncoderConfigWindow.vala:1178 msgid "VerySlow" msgstr "" -#: EncoderConfigWindow.vala:1212 MainWindow.vala:1659 +#: EncoderConfigWindow.vala:1034 MainWindow.vala:1685 msgid "Video" msgstr "" -#: MainWindow.vala:2769 -msgid "Video Bitrate" -msgstr "" - -#: EncoderConfigWindow.vala:374 -msgid "Video Encoder" -msgstr "" - -#: EncoderConfigWindow.vala:379 -msgid "Video Filters" -msgstr "" - -#: MainWindow.vala:2761 -msgid "Video Format" -msgstr "" - -#: MainWindow.vala:2766 -msgid "Video Framerate" -msgstr "" - -#: MainWindow.vala:2765 -msgid "Video Height" -msgstr "" - -#: MainWindow.vala:2764 -msgid "Video Width" -msgstr "" - -#: EncoderConfigWindow.vala:1609 +#: EncoderConfigWindow.vala:1420 msgid "" "Video will not be resized if it's smaller than the given width and height" msgstr "" @@ -1710,7 +1694,7 @@ msgid "Visit Website" msgstr "" -#: EncoderConfigWindow.vala:464 +#: EncoderConfigWindow.vala:290 msgid "WAV Audio (*.wav)" msgstr "" @@ -1718,48 +1702,48 @@ msgid "Warning" msgstr "" -#: Main.vala:233 +#: Main.vala:242 msgid "" "Warning: User does not have Admin priviledges. '--shutdown' will be ignored." msgstr "" -#: EncoderConfigWindow.vala:450 +#: EncoderConfigWindow.vala:276 msgid "WebM Video (*.webm)" msgstr "" -#: EncoderConfigWindow.vala:1543 EncoderConfigWindow.vala:1552 +#: EncoderConfigWindow.vala:1354 EncoderConfigWindow.vala:1363 msgid "Width" msgstr "" -#: MainWindow.vala:2271 +#: MainWindow.vala:2306 msgid "" "[Batch completed] Right-click for options or click 'Finish' to continue." msgstr "" -#: MainWindow.vala:2275 +#: MainWindow.vala:2310 msgid "[Paused] Click 'Resume' to continue or 'Stop' to abort." msgstr "" -#: AppConfigWindow.vala:296 +#: AppConfigWindow.vala:311 msgid "avconv / Libav" msgstr "" -#: AppConfigWindow.vala:294 +#: AppConfigWindow.vala:309 msgid "ffmpeg" msgstr "" -#: AppConfigWindow.vala:340 +#: AppConfigWindow.vala:355 msgid "mplayer" msgstr "" -#: AppConfigWindow.vala:338 +#: AppConfigWindow.vala:353 msgid "mpv" msgstr "" -#: MainWindow.vala:1906 +#: MainWindow.vala:1942 msgid "presets" msgstr "" -#: MainWindow.vala:1902 +#: MainWindow.vala:1938 msgid "scripts" msgstr "" Binary files /tmp/tmphiqF8T/W31mXfsOhe/selene-16.9~287~ubuntu14.04.1/selene.xcf and /tmp/tmphiqF8T/WUsatXuWm1/selene-17.4.1/selene.xcf differ diff -Nru selene-16.9~287~ubuntu14.04.1/src/AppConfigWindow.vala selene-17.4.1/src/AppConfigWindow.vala --- selene-16.9~287~ubuntu14.04.1/src/AppConfigWindow.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/AppConfigWindow.vala 2017-04-23 09:44:51.000000000 +0000 @@ -32,15 +32,15 @@ using TeeJee.System; using TeeJee.Misc; -public class AppConfigWindow : Gtk.Dialog { +public class AppConfigWindow : Gtk.Window { private Box vbox_main; - private Gtk.Notebook notebook; + private Gtk.StackSwitcher switcher; + private Gtk.Stack stack; private CheckButton chk_output_dir; private Entry txt_backup_dir; private CheckButton chk_backup_dir; private Entry txt_output_dir; private Button btn_save; - private Button btn_cancel; private ComboBox cmb_file_view; private ComboBox cmb_select_encoder; private ComboBox cmb_select_player; @@ -61,30 +61,53 @@ resizable = false; icon = get_app_icon(16); + this.delete_event.connect(()=>{ + btn_save_clicked(); + return true; + }); + // get content area - vbox_main = get_content_area(); - vbox_main.set_size_request(400,500); + vbox_main = new Gtk.Box (Gtk.Orientation.VERTICAL, 0); + vbox_main.set_size_request(400,450); + add(vbox_main); + //vbox_main.margin = 0; + + + var hbox = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL); + //hbox.margin = 0; + hbox.set_layout (Gtk.ButtonBoxStyle.CENTER); + hbox.get_style_context().add_class(Gtk.STYLE_CLASS_PRIMARY_TOOLBAR); + vbox_main.add(hbox); + + switcher = new Gtk.StackSwitcher(); + switcher.margin = 6; + hbox.add (switcher); + + stack = new Gtk.Stack(); + stack.set_transition_duration (200); + stack.set_transition_type (Gtk.StackTransitionType.SLIDE_LEFT_RIGHT); + vbox_main.add(stack); - //notebook - notebook = new Notebook(); - notebook.tab_pos = PositionType.TOP; - notebook.show_border = true; - notebook.scrollable = true; - notebook.margin = 6; - vbox_main.pack_start (notebook, true, true, 0); + switcher.set_stack(stack); init_ui_tab_general(); init_ui_tab_tools(); + + var label = new Label(""); + label.vexpand = true; + vbox_main.add(label); + + // get action area + var hbox_action = new Gtk.ButtonBox (Gtk.Orientation.HORIZONTAL); + hbox_action.margin = 6; + vbox_main.add(hbox_action); // btn_save - btn_save = (Button) add_button ("gtk-save", Gtk.ResponseType.ACCEPT); + btn_save = new Button.with_label(_("Close")); btn_save.clicked.connect (btn_save_clicked); - - // btn_cancel - btn_cancel = (Button) add_button ("gtk-cancel", Gtk.ResponseType.CANCEL); - btn_cancel.clicked.connect (btn_cancel_clicked); - + hbox_action.add(btn_save); + chk_output_dir_clicked(); chk_backup_dir_clicked(); @@ -93,17 +116,13 @@ private void init_ui_tab_general(){ - // add tab ------------------------------ - - var label = new Label (_("General")); - - var vbox = new Box(Orientation.VERTICAL,6); + var vbox = new Gtk.Box(Orientation.VERTICAL,6); vbox.margin = 12; - notebook.append_page (vbox, label); - + stack.add_titled (vbox, "general", _("General")); + // output dir -------------------------------------------- - label = new Label (_("Output Directory")); + var label = new Label (_("Output Directory")); label.set_use_markup(true); label.halign = Align.START; //label.margin_top = 12; @@ -250,19 +269,15 @@ private void init_ui_tab_tools(){ - // add tab --------------------------------------- - - var label = new Label (_("Tools")); - var vbox = new Box(Orientation.VERTICAL,6); vbox.margin = 12; - notebook.append_page (vbox, label); + stack.add_titled (vbox, "tools", _("Tools")); var sizegroup_lbl = new Gtk.SizeGroup (Gtk.SizeGroupMode.BOTH); var sizegroup_cmb = new Gtk.SizeGroup (Gtk.SizeGroupMode.BOTH); // header - label = new Label (_("Preferred Tools")); + var label = new Label (_("Preferred Tools")); label.set_use_markup(true); label.halign = Align.START; //label.margin_top = 6; @@ -481,8 +496,4 @@ destroy(); } - - private void btn_cancel_clicked(){ - destroy(); - } } diff -Nru selene-16.9~287~ubuntu14.04.1/src/ColumnSelectionBox.vala selene-17.4.1/src/ColumnSelectionBox.vala --- selene-16.9~287~ubuntu14.04.1/src/ColumnSelectionBox.vala 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/src/ColumnSelectionBox.vala 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,396 @@ +/* + * Settings.vala + * + * Copyright 2017 Tony George + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * + */ + + +using Gtk; +using Gee; + +using TeeJee.Logging; +using TeeJee.FileSystem; +using TeeJee.JSON; +using TeeJee.ProcessManagement; +using TeeJee.GtkHelper; +using TeeJee.System; +using TeeJee.Misc; + +public class ColumnSelectionBox : Gtk.Box { + + private Gtk.TreeView treeview; + private TreeViewColumnManager manager; + + // parents + private Gtk.Window window; + + // signals + public signal void changed(); + + public ColumnSelectionBox(Gtk.Window _window, TreeViewColumnManager _manager){ + //base(Gtk.Orientation.VERTICAL, 6); // issue with vala + Object(orientation: Gtk.Orientation.VERTICAL, spacing: 12); // work-around + margin = 6; + + log_debug("ColumnSelectionBox()"); + + window = _window; + manager = _manager; + + init_ui(); + } + + // list view options ----------------------------------- + + private void init_ui() { + + var hbox = new Gtk.Box(Orientation.HORIZONTAL, 6); + this.add(hbox); + + init_treeview_columns(hbox); + + init_column_buttons(hbox); + } + + private void init_treeview_columns(Gtk.Box box) { + + log_debug("ColumnSelectionBox: init_treeview_columns()"); + + // treeview + treeview = new TreeView(); + treeview.get_selection().mode = SelectionMode.SINGLE; + treeview.headers_clickable = false; + treeview.rubber_banding = false; + treeview.has_tooltip = false; + //treeview.reorderable = true; + treeview.activate_on_single_click = true; + treeview.headers_visible = false; + + // scrolled + var scrolled = new ScrolledWindow(null, null); + scrolled.set_shadow_type (ShadowType.ETCHED_IN); + scrolled.hscrollbar_policy = PolicyType.AUTOMATIC; + scrolled.vscrollbar_policy = PolicyType.AUTOMATIC; + scrolled.add (treeview); + box.add(scrolled); + + //if (true){ + scrolled.set_size_request(250,400); + //} + //else{ + // scrolled.set_size_request(250,250); + //} + + // name ---------------------------------------------- + + // column + var col = new TreeViewColumn(); + col.title = _("Name"); + col.clickable = true; + col.resizable = true; + col.expand = true; + treeview.append_column(col); + + // toggle + var cell_toggle = new CellRendererToggle (); + cell_toggle.activatable = true; + col.pack_start (cell_toggle, false); + + // text + var cell_text = new CellRendererText (); + col.pack_start (cell_text, false); + + // render text + col.set_cell_data_func (cell_text, (cell_layout, cell, model, iter) => { + var crt = cell as Gtk.CellRendererText; + string name, title; + model.get (iter, 0, out name, 1, out title, -1); + crt.text = (title.length > 0) ? title : _("Indicator"); + }); + + // render toggle + col.set_cell_data_func (cell_toggle, (cell_layout, cell, model, iter) => { + var crt = cell as Gtk.CellRendererToggle; + string name, title; + bool selected, enabled; + model.get (iter, 0, out name, 1, out title, 2, out selected, 3, out enabled, -1); + crt.active = selected; + crt.sensitive = enabled; + }); + + // toggle handler + cell_toggle.toggled.connect((path) => { + + TreeIter iter; + var model = (Gtk.ListStore) treeview.model; + model.get_iter_from_string (out iter, path); + + string name, title; + bool selected, enabled; + model.get (iter, 0, out name, 1, out title, 2, out selected, 3, out enabled, -1); + + selected = !selected; + model.set (iter, 2, selected); + + apply_column_changes(true); + }); + + refresh_list_view_columns(); + } + + private void init_column_buttons(Gtk.Box box) { + + log_debug("ColumnSelectionBox: init_column_buttons()"); + + var bbox = new Gtk.ButtonBox(Orientation.VERTICAL); + bbox.set_spacing (6); + bbox.set_layout(Gtk.ButtonBoxStyle.START); + box.add(bbox); + + // reset + + var button = new Gtk.Button.with_label(_("Reset")); + button.set_tooltip_text(_("Reset to default columns")); + bbox.add(button); + + button.clicked.connect(()=>{ + reset_column_changes(true); + }); + + // set default + + /*if (!global_settings){ + + button = new Gtk.Button.with_label(_("Set Default")); + button.set_tooltip_text(_("Set selected columns as default for all panes")); + bbox.add(button); + + button.clicked.connect(()=>{ + apply_column_changes(true); + }); + }*/ + + // move up + + button = new Gtk.Button.with_label(_("Move Up")); + button.set_tooltip_text(_("Move selected item up")); + bbox.add(button); + + button.clicked.connect(()=>{ + move_selected_up(); + apply_column_changes(true); + }); + + // move down + + button = new Gtk.Button.with_label(_("Move Down")); + button.set_tooltip_text(_("Move selected item down")); + bbox.add(button); + + button.clicked.connect(()=>{ + move_selected_down(); + apply_column_changes(true); + }); + + // close + + button = new Gtk.Button.with_label(_("Close")); + button.set_tooltip_text(_("Close")); + bbox.add(button); + + button.clicked.connect(()=>{ + window.close(); + }); + } + + private void reset_column_changes(bool apply_all_views){ + + log_debug("ColumnSelectionBox: reset_column_changes()"); + + manager.reset_columns(); + + refresh_list_view_columns(); + } + + private void apply_column_changes(bool apply_all_views){ + + log_debug("ColumnSelectionBox: apply_column_changes()"); + + App.selected_columns = get_selected_columns(); + manager.set_columns(App.selected_columns); + } + + private void move_selected_up(){ + + log_debug("ColumnSelectionBox: move_selected_up()"); + + var sel = treeview.get_selection(); + if (sel.count_selected_rows() > 1){ + gtk_messagebox(_("Multiple items selected"),_("Select single item to move"), window, true); + return; + } + else if (sel.count_selected_rows() == 0){ + log_debug("no items selected"); + return; + } + + Gtk.TreeModel model; + TreeIter iter_current; + treeview.get_selection().get_selected(out model, out iter_current); + + var iter_prev = gtk_get_iter_prev(model, iter_current); + + bool current_enabled; + model.get (iter_current, 3, out current_enabled); + + bool prev_enabled; + model.get (iter_prev, 3, out prev_enabled); + + if (!prev_enabled || !current_enabled){ + gtk_messagebox(_("Fixed Column"),_("Position of fixed columns cannot be changed"), window, true); + } + else{ + ((Gtk.ListStore) model).move_before(ref iter_current, iter_prev); + manager.set_columns(get_selected_columns()); + } + } + + private void move_selected_down(){ + + log_debug("ColumnSelectionBox: move_selected_down()"); + + var sel = treeview.get_selection(); + if (sel.count_selected_rows() > 1){ + gtk_messagebox(_("Multiple items selected"),_("Select single item to move"), window, true); + return; + } + else if (sel.count_selected_rows() == 0){ + log_debug("no items selected"); + return; + } + + Gtk.TreeModel model; + TreeIter iter_current; + treeview.get_selection().get_selected(out model, out iter_current); + + var iter_next = gtk_get_iter_next(model, iter_current); + + bool current_enabled; + model.get (iter_current, 3, out current_enabled); + + bool next_enabled; + model.get (iter_next, 3, out next_enabled); + + if (!next_enabled || !current_enabled){ + gtk_messagebox(_("Fixed Column"),_("Position of fixed columns cannot be changed"), window, true); + } + else{ + ((Gtk.ListStore) model).move_after(ref iter_current, iter_next); + manager.set_columns(get_selected_columns()); + } + } + + private string get_selected_columns(){ + + string s = ""; + TreeIter iter; + Gtk.ListStore model = (Gtk.ListStore) treeview.model; + bool iterExists = model.get_iter_first (out iter); + + while (iterExists){ + + string name; + model.get (iter, 0, out name); + + bool selected; + model.get (iter, 2, out selected); + + if (selected){ + if (s.length > 0){ + s += ","; + } + s += name; + } + + iterExists = model.iter_next (ref iter); + } + + return s; + } + + public void refresh_list_view_columns(){ + + log_debug("ColumnSelectionBox: refresh_list_view_columns()"); + + var model = new Gtk.ListStore(4, + typeof(string), + typeof(string), + typeof(bool), + typeof(bool) + ); + + string selected_columns = App.selected_columns; //: pane.view.get_columns(); + + foreach(var col in manager.get_all_columns()){ + + string name = col.get_data("name"); + + if (selected_columns.contains(name)){ + append_to_list_view_columns(model, col, selected_columns); + } + } + + foreach(var col in manager.get_all_columns()){ + + string name = col.get_data("name"); + + if (!selected_columns.contains(name)){ + append_to_list_view_columns(model, col, selected_columns); + } + } + + treeview.set_model(model); + treeview.columns_autosize(); + } + + private void append_to_list_view_columns(Gtk.ListStore model, Gtk.TreeViewColumn col, string selected_columns){ + + string name = col.get_data("name"); + + var list_req_end = new Gee.ArrayList(); + foreach(var item in Main.REQUIRED_COLUMNS_END.split(",")){ + list_req_end.add(item); + } + + // skip ending columns + if (list_req_end.contains(name)){ return; } + + TreeIter iter0; + model.append(out iter0); + model.set (iter0, 0, name); + model.set (iter0, 1, col.title); + model.set (iter0, 2, selected_columns.contains(name) || Main.REQUIRED_COLUMNS.contains(name)); + model.set (iter0, 3, !Main.REQUIRED_COLUMNS.contains(name)); + } +} + + + + diff -Nru selene-16.9~287~ubuntu14.04.1/src/ColumnSelectionDialog.vala selene-17.4.1/src/ColumnSelectionDialog.vala --- selene-16.9~287~ubuntu14.04.1/src/ColumnSelectionDialog.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/ColumnSelectionDialog.vala 2017-04-23 09:44:51.000000000 +0000 @@ -34,171 +34,32 @@ using TeeJee.System; using TeeJee.Misc; -public class ColumnSelectionDialog : Gtk.Dialog { +public class ColumnSelectionDialog : Gtk.Window { + + public ColumnSelectionDialog.with_parent(Window _window, TreeViewColumnManager _manager) { + + log_debug("ColumnSelectionDialog()"); - private Gtk.TreeView tv_cols; - - public ColumnSelectionDialog.with_parent(Window parent, Gee.HashMap col_list) { title = _("Select Columns"); - set_transient_for(parent); + set_transient_for(_window); set_modal(true); set_skip_taskbar_hint(true); set_skip_pager_hint(true); window_position = WindowPosition.CENTER_ON_PARENT; - deletable = false; - resizable = false; - - set_transient_for(parent); + + set_transient_for(_window); set_modal(true); // get content area - var vbox_main = get_content_area(); - vbox_main.set_size_request(300,300); - - //add treeview for columns - tv_cols = new TreeView(); - tv_cols.get_selection().mode = SelectionMode.MULTIPLE; - tv_cols.set_tooltip_text (_("Drag and drop to re-order")); - tv_cols.headers_visible = false; - tv_cols.reorderable = true; - - var sw_cols = new ScrolledWindow(tv_cols.get_hadjustment(), tv_cols.get_vadjustment()); - sw_cols.set_shadow_type (ShadowType.ETCHED_IN); - sw_cols.add (tv_cols); - sw_cols.margin = 3; - vbox_main.pack_start (sw_cols, true, true, 0); - - //colName - var col = new TreeViewColumn(); - col.title = _("File"); - col.expand = true; - tv_cols.append_column(col); - - //cell toggle - var cell_select = new CellRendererToggle (); - cell_select.activatable = true; - col.pack_start (cell_select, false); - col.set_cell_data_func (cell_select, (cell_layout, cell, model, iter) => { - bool selected; - model.get (iter, 0, out selected, -1); - (cell as Gtk.CellRendererToggle).active = selected; - }); - - cell_select.toggled.connect((path) => { - var store = (Gtk.ListStore) tv_cols.model; - bool selected; - TreeViewListColumn column; - - TreeIter iter; - store.get_iter_from_string (out iter, path); - store.get (iter, 0, out selected, 1, out column, -1); - - column.Selected = !selected; - - store.set(iter, 0, column.Selected, -1); - }); - - //cell text - var cellText = new CellRendererText(); - cellText.ellipsize = Pango.EllipsizeMode.END; - col.pack_start (cellText, false); - col.set_cell_data_func (cellText, (cell_layout, cell, model, iter)=>{ - TreeViewListColumn column; - model.get (iter, 1, out column, -1); - (cell as Gtk.CellRendererText).text = column.FullDisplayName; - }); + //var vbox_main = get_content_area(); + //vbox_main.set_size_request(300,300); - //create sorted list --------------------- - - TreeIter iter; - var lst_all = new Gee.ArrayList(); - foreach(TreeViewListColumn column in col_list.values){ - lst_all.add(column); - } - CompareDataFunc func = (a, b) => { - return strcmp(a.FullDisplayName,b.FullDisplayName); - }; - lst_all.sort((owned)func); - - //created ordered list -------------------- - - var lst = new Gee.ArrayList(); - //add selected columns in order - foreach(string col_name in App.ListViewColumns.split(",")){ - foreach(TreeViewListColumn column in col_list.values){ - if (column.Name == col_name){ - lst.add(column); - break; - } - } - } - //add unselected - foreach(TreeViewListColumn column in lst_all){ - if (!column.Selected){ - lst.add(column); - } - } - - //add rows ---------------------- - - var store = new Gtk.ListStore (2, typeof(bool), typeof(TreeViewListColumn)); - foreach(TreeViewListColumn column in lst){ - store.append (out iter); - store.set (iter, 0, column.Selected); - store.set (iter, 1, column); - } - tv_cols.model = store; - - // btn_save - var btn_save = (Button) add_button ("gtk-save", Gtk.ResponseType.ACCEPT); - btn_save.clicked.connect (()=>{ - save_columns(col_list); - this.close(); - }); - - // btn_cancel - var btn_cancel = (Button) add_button ("gtk-cancel", Gtk.ResponseType.CANCEL); - btn_cancel.clicked.connect (()=>{ - this.close(); - }); + var colbox = new ColumnSelectionBox(this, _manager); + add(colbox); show_all(); } - - private void save_columns(Gee.HashMap col_list){ - if (col_list == null){ - return; - } - - string s = ""; - - //get ordered list ----------------------- - - var list = new Gee.ArrayList(); - - TreeIter iter; - bool iterExists = tv_cols.model.get_iter_first (out iter); - while (iterExists) { - TreeViewListColumn item; - tv_cols.model.get (iter, 1, out item, -1); - list.add(item); - iterExists = tv_cols.model.iter_next (ref iter); - } - - // create string of column names ------------- - - foreach(TreeViewListColumn col in list){ - if (col.Selected){ - s += col.Name + ","; - } - } - if (s.has_suffix(",")){ - s = s[0:s.length - 1]; - } - - App.ListViewColumns = s; - } } diff -Nru selene-16.9~287~ubuntu14.04.1/src/CustomMessageDialog.vala selene-17.4.1/src/CustomMessageDialog.vala --- selene-16.9~287~ubuntu14.04.1/src/CustomMessageDialog.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/CustomMessageDialog.vala 2017-04-23 09:44:51.000000000 +0000 @@ -44,8 +44,11 @@ private string msg_body; private Gtk.MessageType msg_type; - public CustomMessageDialog(string _msg_title, string _msg_body, Gtk.MessageType _msg_type, Window? parent) { - set_transient_for(parent); + public CustomMessageDialog(string _msg_title, string _msg_body, Gtk.MessageType _msg_type, Gtk.Window? parent) { + + if (parent != null){ + set_transient_for(parent); + } set_modal(true); msg_title = _msg_title; @@ -54,16 +57,18 @@ init_window(); + set_size_request(450,300); + show_all(); - if (lbl_msg.get_allocated_height() > 400){ + /*if (lbl_msg.get_allocated_height() > 400){ sw_msg.vscrollbar_policy = PolicyType.AUTOMATIC; sw_msg.set_size_request(-1,400); lbl_msg.margin_right = 25; } else{ sw_msg.vscrollbar_policy = PolicyType.NEVER; - } + }*/ } public void init_window () { @@ -122,7 +127,7 @@ sw_msg.hscrollbar_policy = PolicyType.NEVER; sw_msg.vscrollbar_policy = PolicyType.AUTOMATIC; //sw_msg.set_size_request(); - hbox_contents.add(sw_msg); + hbox_contents.add(sw_msg); //actions btn_ok = (Gtk.Button) add_button ("_Ok", Gtk.ResponseType.OK); diff -Nru selene-16.9~287~ubuntu14.04.1/src/EncoderConfigWindow.vala selene-17.4.1/src/EncoderConfigWindow.vala --- selene-16.9~287~ubuntu14.04.1/src/EncoderConfigWindow.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/EncoderConfigWindow.vala 2017-04-23 09:44:51.000000000 +0000 @@ -40,9 +40,9 @@ private bool IsNew = true; private Gtk.Paned pane; - private Gtk.TreeView tv_pages; - private Gtk.Notebook notebook; - private Box vbox_main; + private Gtk.Box vbox_main; + private Gtk.StackSidebar sidebar; + private Gtk.Stack stack; // grids private Gtk.Grid grid_video; @@ -165,7 +165,7 @@ private void init_ui() { title = _("Preset"); - //set_default_size (450, 550); + set_default_size (550, 550); window_position = WindowPosition.CENTER_ON_PARENT; destroy_with_parent = true; @@ -186,14 +186,14 @@ init_ui_general(); - init_ui_video(); - - init_ui_video_filters(); - init_ui_audio(); + + init_ui_video(); init_ui_audio_filters(); + init_ui_video_filters(); + init_ui_sox(); init_ui_subtitles(); @@ -203,7 +203,7 @@ // Actions ---------------------------------------------- var vbox = get_action_area(); - vbox.margin = 3; + vbox.margin = 6; //btn_save btn_save = (Button) add_button ("gtk-save", Gtk.ResponseType.ACCEPT); @@ -220,207 +220,33 @@ private void init_ui_navpane(){ pane = new Gtk.Paned (Gtk.Orientation.HORIZONTAL); - pane.margin = 6; + //pane.margin = 6; vbox_main.add(pane); - //tv_pages - tv_pages = new TreeView(); - tv_pages.get_selection().mode = SelectionMode.SINGLE; - tv_pages.headers_visible = false; - tv_pages.activate_on_single_click = true; - - var sw_pages = new ScrolledWindow(tv_pages.get_hadjustment(), tv_pages.get_vadjustment()); - sw_pages.set_shadow_type (ShadowType.ETCHED_IN); - sw_pages.add (tv_pages); - //sw_pages.margin_right = 3; - sw_pages.set_size_request (150, -1); - pane.pack1(sw_pages, false, false); //resize, shrink - - TreeViewColumn col; - CellRendererPixbuf cellPix; - CellRendererText cellText; - - //col_dir - col = new TreeViewColumn(); - col.expand = true; - tv_pages.append_column(col); - - cellPix = new CellRendererPixbuf (); - cellPix.xpad = 1; - col.pack_start (cellPix, false); - - cellText = new CellRendererText (); - cellText.ellipsize = Pango.EllipsizeMode.END; - col.pack_start (cellText, false); - - //render icon - col.set_attributes(cellPix, "pixbuf", 2); - - //render text - col.set_cell_data_func (cellText, (cell_layout, cell, model, iter) => { - string name; - model.get (iter, 0, out name, -1); - (cell as Gtk.CellRendererText).text = name; - }); - - //row activated event - tv_pages.row_activated.connect(tv_pages_row_activated); + sidebar = new Gtk.StackSidebar(); + //sidebar.margin = 6; + pane.pack1(sidebar, false, false); //resize, shrink + + stack = new Gtk.Stack(); + stack.set_transition_duration (200); + stack.set_transition_type (Gtk.StackTransitionType.SLIDE_UP_DOWN); + pane.pack2(stack, true, true); //resize, shrink - - tv_pages.get_selection().changed.connect(tv_pages_selection_changed); + pane.wide_handle = false; - //notebook - notebook = new Notebook(); - notebook.tab_pos = PositionType.TOP; - notebook.show_border = true; - notebook.scrollable = true; - notebook.show_tabs = false; - notebook.margin_left = 3; - pane.pack2(notebook, true, true); //resize, shrink - - refresh_navpane(); - } - - private void tv_pages_row_activated(TreePath path, TreeViewColumn column){ - TreeIter iter; - tv_pages.model.get_iter_from_string(out iter, path.to_string()); - string page_name; - tv_pages.model.get (iter, 1, out page_name, -1); - - select_page(page_name); + sidebar.set_stack(stack); } - private void tv_pages_selection_changed(){ - var sel = tv_pages.get_selection(); - - if (sel.count_selected_rows() != 1){ - return; - } - - TreeModel model; - TreeIter iter; - sel.get_selected (out model, out iter); - - string page_name; - model.get (iter, 1, out page_name, -1); - - select_page(page_name); - } - - private void select_page(string page_name){ - switch (page_name){ - case "general": - notebook.set_current_page(0); - break; - case "video": - notebook.set_current_page(1); - break; - case "vf": - notebook.set_current_page(2); - break; - case "audio": - notebook.set_current_page(3); - break; - case "af": - notebook.set_current_page(4); - break; - case "sox": - notebook.set_current_page(5); - break; - case "subs": - notebook.set_current_page(6); - break; - case "tags": - notebook.set_current_page(7); - break; - } - } - - - private void refresh_navpane(){ - var model = new Gtk.ListStore(3, typeof(string), typeof(string), typeof(Gdk.Pixbuf)); - - //status icons - Gdk.Pixbuf pix_audio = null; - Gdk.Pixbuf pix_video = null; - Gdk.Pixbuf pix_subs = null; - Gdk.Pixbuf pix_general = null; - - var img = get_shared_icon("","audio.svg",16); - if (img != null){ - pix_audio = img.pixbuf; - } - img = get_shared_icon("","video.svg",16); - if (img != null){ - pix_video = img.pixbuf; - } - img = get_shared_icon("","subs.svg",16); - if (img != null){ - pix_subs = img.pixbuf; - } - img = get_shared_icon("","general.svg",16); - if (img != null){ - pix_general = img.pixbuf; - } - - TreeIter iter; - - model.append(out iter); - model.set (iter, 0, _("General")); - model.set (iter, 1, "general"); - model.set (iter, 2, pix_general); - - model.append(out iter); - model.set (iter, 0, _("Video Encoder")); - model.set (iter, 1, "video"); - model.set (iter, 2, pix_video); - - model.append(out iter); - model.set (iter, 0, _("Video Filters")); - model.set (iter, 1, "vf"); - model.set (iter, 2, pix_video); - - model.append(out iter); - model.set (iter, 0, _("Audio Encoder")); - model.set (iter, 1, "audio"); - model.set (iter, 2, pix_audio); - - model.append(out iter); - model.set (iter, 0, _("Audio Filters")); - model.set (iter, 1, "af"); - model.set (iter, 2, pix_audio); - - model.append(out iter); - model.set (iter, 0, _("SOX")); - model.set (iter, 1, "sox"); - model.set (iter, 2, pix_audio); - - model.append(out iter); - model.set (iter, 0, _("Subtitles")); - model.set (iter, 1, "subs"); - model.set (iter, 2, pix_subs); - - model.append(out iter); - model.set (iter, 0, _("Tags")); - model.set (iter, 1, "tags"); - model.set (iter, 2, pix_subs); - - tv_pages.set_model(model); - } - private void init_ui_general(){ - // add tab page ------------------------- - - var lbl_general = new Label (_("General")); - var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; - grid.margin_right = 24; - notebook.append_page (grid, lbl_general); + //grid.margin_right = 24; + stack.add_titled (grid, "general", _("General")); + int row = -1; Gtk.ListStore model; TreeIter iter; @@ -548,24 +374,21 @@ private void init_ui_audio(){ - // add tab page ------------------------- - - var label = new Label (_("Audio")); - var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; grid.visible = false; - notebook.append_page (grid, label); grid_audio = grid; + + stack.add_titled (grid_audio, "audio", _("Audio")); int row = -1; Gtk.ListStore model; TreeIter iter; //lblHeaderFileFormat - label = new Gtk.Label(_("Audio Encoder")); + var label = new Gtk.Label(_("Audio Encoder")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_bottom = 6; @@ -699,24 +522,21 @@ private void init_ui_audio_filters(){ - // add tab page ------------------------- - - var label = new Label (_("Filters")); - var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; grid.visible = false; - notebook.append_page (grid, label); grid_af = grid; + + stack.add_titled (grid_af, "af", _("Filters (A)")); int row = -1; int col; // resample ----------------------------------------- - label = new Gtk.Label(_("Resample")); + var label = new Gtk.Label(_("Resample")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_top = 6; @@ -763,14 +583,11 @@ int sliderMarginBottom = 3; int spacing = 6; - // add tab page ------------------------- - - var label = new Label ("" + _("SOX") + ""); - vboxSoxOuter = new Box(Orientation.VERTICAL,spacing); vboxSoxOuter.margin = 12; - notebook.append_page (vboxSoxOuter, label); + stack.add_titled (vboxSoxOuter, "sox", _("SOX")); + // SOX switch ------------------------------------ var hbox = new Box(Orientation.HORIZONTAL,0); @@ -778,7 +595,7 @@ vboxSoxOuter.add(hbox); //lbl_sox_header - label = new Gtk.Label(_("SOX Audio Processing")); + var label = new Gtk.Label(_("SOX Audio Processing")); label.set_use_markup(true); label.xalign = (float) 0.0; label.hexpand = true; @@ -1207,24 +1024,21 @@ private void init_ui_video(){ - // add tab ---------------------------- - - var label = new Label(_("Video")); - //grid_video var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; - notebook.append_page (grid, label); grid_video = grid; + + stack.add_titled (grid_video, "video", _("Video")); int row = -1; string tt = ""; // header ------------------------ - label = new Gtk.Label(_("Video Encoder")); + var label = new Gtk.Label(_("Video Encoder")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_bottom = 6; @@ -1480,18 +1294,15 @@ private void init_ui_video_filters(){ - // add tab page ------------------------- - - var label = new Label (_("Filters")); - // grid_vf var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; - notebook.append_page (grid, label); grid_vf = grid; + stack.add_titled (grid_vf, "vf", _("Filters (V)")); + int row = -1; string tt = ""; Gtk.ListStore model; @@ -1499,7 +1310,7 @@ // resize header ------------------------------ - label = new Gtk.Label(_("Resize")); + var label = new Gtk.Label(_("Resize")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_bottom = 6; @@ -1691,23 +1502,20 @@ private void init_ui_subtitles(){ - // add tab --------------------------------------------- - - var label = new Label ("" + _("Subs") + ""); - // grid_subs var grid = new Grid(); grid.set_column_spacing (6); grid.set_row_spacing (6); grid.margin = 12; - notebook.append_page (grid, label); grid_subs = grid; + stack.add_titled (grid_subs, "subs", _("Subtitles")); + int row = -1; // header ---------------------------------------------- - label = new Gtk.Label(_("Subtitles")); + var label = new Gtk.Label(_("Subtitles")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_bottom = 6; @@ -1756,22 +1564,21 @@ // add tab page ------------------------- - var label = new Label (_("Tags")); - var grid = new Grid(); grid.set_column_spacing (12); grid.set_row_spacing (6); grid.margin = 12; grid.visible = false; - notebook.append_page (grid, label); grid_tags = grid; + + stack.add_titled (grid_tags, "tags", _("Tags")); int row = -1; int col; // resample ----------------------------------------- - label = new Gtk.Label(_("Tags")); + var label = new Gtk.Label(_("Tags")); label.set_use_markup(true); label.xalign = (float) 0.0; label.margin_top = 6; @@ -2110,7 +1917,7 @@ case "ac3": case "flac": case "wav": - img_file_format.set_from_file(App.SharedImagesFolder + "/libav.png"); + img_file_format.set_from_file(App.SharedImagesFolder + "/ffmpeg.svg"); img_file_format.xalign = (float) 0.5; img_file_format.yalign = (float) 1.0; break; @@ -2593,7 +2400,7 @@ case "pcm_s32be": case "pcm_u32le": case "pcm_u32be": - img_audio_format.set_from_file(App.SharedImagesFolder + "/libav.png"); + img_audio_format.set_from_file(App.SharedImagesFolder + "/ffmpeg.svg"); img_audio_format.xalign = (float) 0.5; img_audio_format.yalign = (float) 1.0; break; @@ -3156,7 +2963,7 @@ private void btn_save_clicked(){ if (txt_preset_name.text.length < 1) { - notebook.page = 0; + stack.set_visible_child_name("general"); string msg = _("Please enter a name for this preset"); var dlg = new Gtk.MessageDialog(null,Gtk.DialogFlags.MODAL, Gtk.MessageType.ERROR, Gtk.ButtonsType.OK, msg); diff -Nru selene-16.9~287~ubuntu14.04.1/src/Main.vala selene-17.4.1/src/Main.vala --- selene-16.9~287~ubuntu14.04.1/src/Main.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/Main.vala 2017-04-23 09:44:51.000000000 +0000 @@ -38,7 +38,7 @@ public Main App; public const string AppName = "Selene Media Converter"; public const string AppShortName = "selene"; -public const string AppVersion = "16.9"; +public const string AppVersion = "17.4.1"; public const string AppAuthor = "Tony George"; public const string AppAuthorEmail = "teejeetech@gmail.com"; @@ -90,9 +90,7 @@ public string PrimaryPlayer = "mpv"; public string DefaultLanguage = "en"; public bool DeleteTempFiles = true; - - public string ListViewColumns = ""; - + public ScriptFile SelectedScript; public MediaFile CurrentFile; public string CurrentLine; @@ -131,6 +129,13 @@ private Regex regex_vpxenc; private Regex regex_neroaacenc; + public static string REQUIRED_COLUMNS = "name,spacer"; + public static string REQUIRED_COLUMNS_END = "spacer"; + public static string DEFAULT_COLUMNS = "name,size,duration,spacer"; + //public static string DEFAULT_COLUMNS_TILE_VIEW = "name,progress,spacer"; + public static string DEFAULT_COLUMN_ORDER = "name,size,duration,format,aformat,vformat,channels,samplingrate,width,height,framerate,bitrate,abitrate,vbitrate,artist,album,genre,title,tracknum,comments,recordeddate,progress,spacer"; + public string selected_columns = DEFAULT_COLUMNS; + private string tempLine; private MatchInfo match; private double dblVal; @@ -167,6 +172,8 @@ } } + stdout.printf("\n"); // print an empty line, otherwise log_debug() stops working; TODO: investigate + //init GTK Gtk.init (ref args); @@ -180,6 +187,8 @@ string term = Environment.get_variable ("TERM").down(); LOG_COLORS = (term == "xterm"); + log_debug("Parsing arguments..."); + //get command line arguments for (int k = 1; k < args.length; k++) // Oth arg is app path { @@ -261,6 +270,7 @@ App.convert_begin(); } else{ + log_debug("Creating MainWindow\n"); var window = new MainWindow(); window.destroy.connect (App.exit_app); window.show_all(); @@ -324,6 +334,8 @@ public Main(string arg0){ + + log_debug("Main()"); InputFiles = new Gee.ArrayList(); Encoders = new Gee.HashMap(); @@ -440,9 +452,12 @@ blankLine = ""; for (int i=0; i<80; i++) blankLine += " "; + + log_debug("Main(): exit"); } public void init_encoder_list(){ + Encoders["avconv"] = new Encoder("avconv","Libav Encoder","Audio-Video Decoding"); Encoders["ffmpeg"] = new Encoder("ffmpeg","FFmpeg Encoder","Audio-Video Decoding"); //Encoders["ffmpeg2theora"] = new Encoder("ffmpeg2theora","Theora Video Encoder","Theora Output"); @@ -532,6 +547,9 @@ } public void save_config(){ + + log_debug("save_config()"); + var config = new Json.Object(); config.set_string_member("input-dir", InputDirectory); config.set_string_member("backup-dir", BackupDirectory); @@ -542,7 +560,7 @@ config.set_string_member("av-player", PrimaryPlayer); config.set_string_member("default-lang", DefaultLanguage); config.set_string_member("delete-temp-files", DeleteTempFiles.to_string()); - config.set_string_member("list-view-columns", ListViewColumns); + config.set_string_member("list-view-columns", selected_columns); if (SelectedScript != null) { config.set_string_member("last-script", SelectedScript.Path); @@ -568,6 +586,8 @@ var f = File.new_for_path(AppConfPath); if (!f.query_exists()) { return; } + log_debug("load_config()"); + var parser = new Json.Parser(); try{ parser.load_from_file(AppConfPath); @@ -611,7 +631,9 @@ TileView = json_get_bool(config,"tile-view",true); - ListViewColumns = json_get_string(config,"list-view-columns", ListViewColumns); + selected_columns = json_get_string(config,"list-view-columns", selected_columns); + + log_debug("load_config(): exit"); } public void check_and_default_av_encoder(){ @@ -647,6 +669,7 @@ } public void exit_app(){ + log_debug("exit_app()"); save_config(); Gtk.main_quit(); } @@ -3429,7 +3452,7 @@ } s += " \"${temp_subs_%d}\"".printf(stm.TypeIndex); } - else if (stm.IsExternal && (stm.SubExt == ".srt" || stm.SubExt == ".sub" || stm.SubExt == ".ssa")){ + else if (stm.IsExternal && (stm.SubExt == ".srt" || stm.SubExt == ".sub" || stm.SubExt == ".ssa") || (stm.SubExt == ".ass")){ s += " --compression -1:none"; if (stm.LangCode.length > 0){ s += " --language -1:%s".printf(stm.LangCode); diff -Nru selene-16.9~287~ubuntu14.04.1/src/MainWindow.vala selene-17.4.1/src/MainWindow.vala --- selene-16.9~287~ubuntu14.04.1/src/MainWindow.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/MainWindow.vala 2017-04-23 09:44:51.000000000 +0000 @@ -94,8 +94,9 @@ // list view columns - private Gtk.TreeView tv_files; + private Gtk.TreeView treeview; private Gtk.ScrolledWindow sw_files; + private TreeViewColumnManager tv_manager; private Gtk.TreeViewColumn col_name; private Gtk.TreeViewColumn col_size; @@ -122,8 +123,6 @@ private Gtk.TreeViewColumn col_recorded_date; private Gtk.Grid grid_config; - private Gee.HashMap col_list; - // regular expressions private Regex rex_generic; @@ -153,6 +152,9 @@ // initialize window ----------------- public MainWindow() { + + log_debug("MainWindow()"); + set_window_title(); window_position = WindowPosition.CENTER; set_default_size (650, 20); @@ -165,27 +167,39 @@ vbox_main = new Box (Orientation.VERTICAL, 0); add (vbox_main); + log_debug("MainWindow(): toolbar"); + //main toolbar init_ui_main_toolbar(); + log_debug("MainWindow(): listview"); + //listview init_list_view(); refresh_list_view(); init_list_view_context_menu(); + log_debug("MainWindow(): presets"); + //presets init_preset_toolbar(); init_preset_dropdowns(); populate_script_folders(); select_script(); + log_debug("MainWindow(): statusbar"); + //statusbar init_statusbar(); statusbar_default_message(); + log_debug("MainWindow(): regular_expressions"); + //regex init_regular_expressions(); + log_debug("MainWindow(): handlers"); + //destroy handler this.delete_event.connect (()=>{ if (App.Status == AppStatus.IDLE){ @@ -198,6 +212,8 @@ }); this.destroy.connect(Gtk.main_quit); + + log_debug("MainWindow(): exit"); } // toolbar ------------------------------------- @@ -446,24 +462,28 @@ // file list ------------------------------------- private void init_list_view(){ + + log_debug("MainWindow(): init_list_view()"); // tv_files --------------------------------------------------- - tv_files = new TreeView(); - tv_files.get_selection().mode = SelectionMode.MULTIPLE; - tv_files.set_tooltip_text (_("Right-click for more options")); - tv_files.headers_clickable = true; - tv_files.rules_hint = true; + treeview = new TreeView(); + treeview.get_selection().mode = SelectionMode.MULTIPLE; + treeview.set_tooltip_text (_("Right-click for more options")); + treeview.headers_clickable = true; + treeview.rules_hint = true; - sw_files = new ScrolledWindow(tv_files.get_hadjustment(), tv_files.get_vadjustment()); + sw_files = new ScrolledWindow(treeview.get_hadjustment(), treeview.get_vadjustment()); sw_files.set_shadow_type (ShadowType.ETCHED_IN); - sw_files.add (tv_files); + sw_files.add (treeview); sw_files.margin = 3; sw_files.set_size_request (-1, 300); vbox_main.pack_start (sw_files, true, true, 0); CellRendererText cellText; TreeViewColumn col; + + log_debug("MainWindow(): init_list_view(): columns"); // col_name ------------------------------------------------- @@ -475,7 +495,7 @@ col.reorderable = true; col.min_width = 200; col.sort_column_id = InputField.FILE_PATH; - tv_files.append_column(col); + treeview.append_column(col); col_name = col; //icon @@ -515,7 +535,7 @@ //toggle handler cell_select.toggled.connect((path) => { - var store = (Gtk.TreeStore) tv_files.model; + var store = (Gtk.TreeStore) treeview.model; bool selected, isChild; MediaStream stream; @@ -611,7 +631,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_SIZE; - tv_files.append_column(col); + treeview.append_column(col); col_size = col; cellText = new CellRendererText(); @@ -661,7 +681,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_DURATION; - tv_files.append_column(col); + treeview.append_column(col); col_duration = col; cellText = new CellRendererText(); @@ -704,7 +724,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_FFORMAT; - tv_files.append_column(col); + treeview.append_column(col); col_file_format = col; cellText = new CellRendererText(); @@ -755,7 +775,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_AFORMAT; - tv_files.append_column(col); + treeview.append_column(col); col_aformat = col; cellText = new CellRendererText(); @@ -794,7 +814,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_VFORMAT; - tv_files.append_column(col); + treeview.append_column(col); col_vformat = col; cellText = new CellRendererText(); @@ -833,7 +853,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_ACHANNELS; - tv_files.append_column(col); + treeview.append_column(col); col_channels = col; cellText = new CellRendererText(); @@ -873,7 +893,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_ARATE; - tv_files.append_column(col); + treeview.append_column(col); col_sampling = col; cellText = new CellRendererText(); @@ -913,7 +933,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_BITRATE; - tv_files.append_column(col); + treeview.append_column(col); col_bitrate = col; cellText = new CellRendererText(); @@ -959,7 +979,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_ABITRATE; - tv_files.append_column(col); + treeview.append_column(col); col_abitrate = col; cellText = new CellRendererText(); @@ -996,7 +1016,7 @@ //colVFrameSize colVFrameSize = new TreeViewColumn(); colVFrameSize.title = _("Video Size"); - tv_files.append_column(colVFrameSize); + treeview.append_column(colVFrameSize); cellText = new CellRendererText(); colVFrameSize.pack_start (cellText, false); @@ -1014,7 +1034,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_VBITRATE; - tv_files.append_column(col); + treeview.append_column(col); col_vbitrate = col; cellText = new CellRendererText(); @@ -1054,7 +1074,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_VWIDTH; - tv_files.append_column(col); + treeview.append_column(col); col_width = col; cellText = new CellRendererText(); @@ -1094,7 +1114,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_VHEIGHT; - tv_files.append_column(col); + treeview.append_column(col); col_height = col; cellText = new CellRendererText(); @@ -1134,7 +1154,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_VRATE; - tv_files.append_column(col); + treeview.append_column(col); col_fps = col; cellText = new CellRendererText(); @@ -1174,7 +1194,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_ARTIST; - tv_files.append_column(col); + treeview.append_column(col); col_artist = col; cellText = new CellRendererText(); @@ -1205,7 +1225,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_ALBUM; - tv_files.append_column(col); + treeview.append_column(col); col_album = col; cellText = new CellRendererText(); @@ -1236,7 +1256,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_GENRE; - tv_files.append_column(col); + treeview.append_column(col); col_genre = col; cellText = new CellRendererText(); @@ -1267,7 +1287,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_TRACK_NAME; - tv_files.append_column(col); + treeview.append_column(col); col_track_name = col; cellText = new CellRendererText(); @@ -1298,7 +1318,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_TRACK_NUM; - tv_files.append_column(col); + treeview.append_column(col); col_track_num = col; cellText = new CellRendererText(); @@ -1330,7 +1350,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_COMMENTS; - tv_files.append_column(col); + treeview.append_column(col); col_comments = col; cellText = new CellRendererText(); @@ -1361,7 +1381,7 @@ col.clickable = true; col.reorderable = true; col.sort_column_id = InputField.FILE_RECORDED_DATE; - tv_files.append_column(col); + treeview.append_column(col); col_recorded_date = col; cellText = new CellRendererText(); @@ -1391,7 +1411,7 @@ col = new TreeViewColumn(); col.title = _("Status"); col.fixed_width = 150; - tv_files.append_column(col); + treeview.append_column(col); col_progress = col; CellRendererProgress2 cellProgress = new CellRendererProgress2(); @@ -1405,7 +1425,7 @@ col = new TreeViewColumn(); col.expand = false; col.fixed_width = 10; - tv_files.append_column(col); + treeview.append_column(col); col_spacer = col; cellText = new CellRendererText(); @@ -1413,19 +1433,22 @@ // init ---------------------------------------------------- - tv_files_init_columns(); + init_column_manager(); startupTimer = Timeout.add (100,() => { - col_progress.visible = false; + //col_progress.visible = false; Source.remove (startupTimer); return true; }); - Gtk.drag_dest_set (tv_files,Gtk.DestDefaults.ALL, targets, Gdk.DragAction.COPY); - tv_files.drag_data_received.connect(on_drag_data_received); + Gtk.drag_dest_set (treeview, Gtk.DestDefaults.ALL, targets, Gdk.DragAction.COPY); + treeview.drag_data_received.connect(on_drag_data_received); } private void init_list_view_context_menu(){ + + log_debug("MainWindow(): init_list_view_context_menu()"); + Gdk.RGBA gray = Gdk.RGBA(); gray.parse ("rgba(200,200,200,1)"); @@ -1450,7 +1473,7 @@ // miFileSeparator0 var miFileSeparator0 = new Gtk.MenuItem(); - miFileSeparator0.override_color (StateFlags.NORMAL, gray); + //miFileSeparator0.override_color (StateFlags.NORMAL, gray); menu_file.append(miFileSeparator0); mi_file_crop.show.connect(()=>{ @@ -1476,7 +1499,7 @@ // miFileSeparator1 miFileSeparator1 = new Gtk.MenuItem(); - miFileSeparator1.override_color (StateFlags.NORMAL, gray); + //miFileSeparator1.override_color (StateFlags.NORMAL, gray); menu_file.append(miFileSeparator1); // mi_file_open_temp_dir @@ -1499,7 +1522,7 @@ // miFileSeparator2 miFileSeparator2 = new Gtk.MenuItem(); - miFileSeparator2.override_color (StateFlags.NORMAL, gray); + //miFileSeparator2.override_color (StateFlags.NORMAL, gray); menu_file.append(miFileSeparator2); // mi_file_play_src @@ -1528,7 +1551,7 @@ // miFileSeparator3 var miFileSeparator3 = new Gtk.MenuItem(); - miFileSeparator3.override_color (StateFlags.NORMAL, gray); + //miFileSeparator3.override_color (StateFlags.NORMAL, gray); menu_file.append(miFileSeparator3); // mi_listview_columns @@ -1536,11 +1559,11 @@ mi_listview_columns.label = _("Columns..."); menu_file.append(mi_listview_columns); mi_listview_columns.activate.connect(()=>{ - var dlg = new ColumnSelectionDialog.with_parent(this, col_list); - dlg.run(); + var dlg = new ColumnSelectionDialog.with_parent(this, tv_manager); + dlg.show_all(); //dlg.close(); //dlg.destroy(); - tv_files_load_columns(); + //tv_manager.set_columns(App.selected_columns); }); mi_listview_columns.show.connect(()=>{ @@ -1554,9 +1577,9 @@ menu_file.show_all(); //connect signal for shift+F10 - tv_files.popup_menu.connect(() => { return menu_file_popup (menu_file, null); }); + treeview.popup_menu.connect(() => { return menu_file_popup (menu_file, null); }); //connect signal for right-click - tv_files.button_press_event.connect ((w, event) => { + treeview.button_press_event.connect ((w, event) => { if (event.button == 3) { return menu_file_popup (menu_file, event); } @@ -1566,6 +1589,9 @@ } private void refresh_list_view (bool refresh_model = true){ + + log_debug("MainWindow(): refresh_list_view()"); + if (refresh_model){ var inputStore = new Gtk.TreeStore (32, typeof(MediaFile), //FILE_REF @@ -1603,7 +1629,7 @@ ); TreeIter iter, iter2; - foreach(MediaFile mFile in App.InputFiles) { + foreach(var mFile in App.InputFiles) { inputStore.append (out iter, null); inputStore.set (iter, InputField.FILE_REF, mFile); inputStore.set (iter, InputField.STREAM_REF, null); @@ -1702,22 +1728,32 @@ } } - tv_files.set_model (inputStore); + treeview.set_model (inputStore); } - //set visibility - columns - foreach(TreeViewListColumn col in col_list.values){ - if (col.Selected){ - col.Ref.visible = !App.TileView; + if (App.TileView){ + if (App.Status == AppStatus.NOTSTARTED){ + tv_manager.set_columns("name,spacer"); + } + else{ + tv_manager.set_columns("name,progress,spacer"); + } + } + else{ + if (App.Status == AppStatus.NOTSTARTED){ + tv_manager.set_columns(App.selected_columns); + } + else{ + tv_manager.set_columns(Main.DEFAULT_COLUMNS); } } - col_size.visible = !App.TileView; - col_duration.visible = !App.TileView; //set visibility - column header - tv_files.headers_visible = !App.TileView; + treeview.headers_visible = !App.TileView; - tv_files.columns_autosize(); + treeview.columns_autosize(); + + log_debug("MainWindow(): refresh_list_view(): exit"); } private enum InputField{ @@ -2097,7 +2133,7 @@ } private void mi_file_open_logfile_clicked(){ - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() > 0){ TreeModel model; @@ -2227,8 +2263,7 @@ // statusbar ------------------- - private void statusbar_show_message (string message, bool is_error = false, - bool timeout = true){ + private void statusbar_show_message (string message, bool is_error = false, bool timeout = true){ Gdk.RGBA red = Gdk.RGBA(); Gdk.RGBA white = Gdk.RGBA(); @@ -2284,7 +2319,7 @@ // file list context menu ------------------------- private bool menu_file_popup (Gtk.Menu popup, Gdk.EventButton? event) { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); int index = -1; MediaFile mFile = null; //if (selection.count_selected_rows() == 0){ @@ -2418,7 +2453,7 @@ } private void mi_file_info_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() > 0){ TreeModel model; @@ -2434,7 +2469,7 @@ } private void mi_file_info_output_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() > 0){ TreeModel model; @@ -2455,7 +2490,7 @@ } private void mi_file_crop_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() != 1){ return; } TreeModel model; @@ -2475,7 +2510,7 @@ } private void mi_file_trim_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() != 1){ return; } TreeModel model; @@ -2499,7 +2534,7 @@ } private void mi_file_open_temp_dir_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() == 0){ return; } TreeModel model; @@ -2516,7 +2551,7 @@ } private void mi_file_open_output_dir_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() == 0){ return; } TreeModel model; @@ -2545,7 +2580,7 @@ private void mi_file_play_output_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() > 0){ TreeModel model; @@ -2560,7 +2595,7 @@ } private void mi_file_play_src_clicked() { - TreeSelection selection = tv_files.get_selection(); + TreeSelection selection = treeview.get_selection(); if (selection.count_selected_rows() > 0){ TreeModel model; @@ -2642,13 +2677,13 @@ //Adjustment adj = sw_files.get_vadjustment(); //double pos = adj.get_value(); - //log_msg("%f".printf(tv_files.vadjustment.get_value())); + //log_msg("%f".printf(treeview.vadjustment.get_value())); refresh_list_view(); //adj.set_value(adj.upper-adj.page_size); //sw_files.set_vadjustment(adj); - //log_msg("%f".printf(tv_files.vadjustment.get_value())); + //log_msg("%f".printf(treeview.vadjustment.get_value())); if (msg_add.length > 0){ msg_add = _("Some files could not be added:") + "\n\n" + msg_add; @@ -2733,6 +2768,8 @@ msg_add += "%s\n".printf(file_basename(file_path)); } } + + // TODO: high: easy: remove the "some files could not be added" message from subtitles files that have been added } private void on_drag_data_received (Gdk.DragContext drag_context, int x, int y, Gtk.SelectionData data, uint info, uint time) { @@ -2751,126 +2788,58 @@ // treeview columns -------------------------------- - private void tv_files_init_columns(){ - col_list = new Gee.HashMap(); - //col_list[col_name] = new TreeViewListColumn("name",col_name); - //col_list[col_size] = new TreeViewListColumn("size",col_size); - //col_list[col_duration] = new TreeViewListColumn("duration",col_duration); - col_list[col_file_format] = new TreeViewListColumn("format",_("Format"),col_file_format); - col_list[col_aformat] = new TreeViewListColumn("aformat",_("Audio Format"),col_aformat); - col_list[col_vformat] = new TreeViewListColumn("vformat",_("Video Format"),col_vformat); - col_list[col_channels] = new TreeViewListColumn("channels",_("Audio Channels"),col_channels); - col_list[col_sampling] = new TreeViewListColumn("samplingrate",_("Audio Sampling Rate"),col_sampling); - col_list[col_width] = new TreeViewListColumn("width",_("Video Width"),col_width); - col_list[col_height] = new TreeViewListColumn("height",_("Video Height"),col_height); - col_list[col_fps] = new TreeViewListColumn("framerate",_("Video Framerate"),col_fps); - col_list[col_bitrate] = new TreeViewListColumn("bitrate",_("Bitrate"),col_bitrate); - col_list[col_abitrate] = new TreeViewListColumn("abitrate",_("Audio Bitrate"),col_abitrate); - col_list[col_vbitrate] = new TreeViewListColumn("vbitrate",_("Video Bitrate"),col_vbitrate); - col_list[col_artist] = new TreeViewListColumn("artist",_("Artist"),col_artist); - col_list[col_album] = new TreeViewListColumn("album",_("Album"),col_album); - col_list[col_genre] = new TreeViewListColumn("genre",_("Genre"),col_genre); - col_list[col_track_name] = new TreeViewListColumn("title",_("Title"),col_track_name); - col_list[col_track_num] = new TreeViewListColumn("tracknum",_("Track Number"),col_track_num); - col_list[col_comments] = new TreeViewListColumn("comments",_("Comments"),col_comments); - col_list[col_recorded_date] = new TreeViewListColumn("recordeddate",_("Recorded Date"),col_recorded_date); - //col_list[col_progress] = new TreeViewListColumn("status",col_progress); - //col_list[col_spacer] = new TreeViewListColumn("spacer",col_spacer); - - tv_files_load_columns(); - - //disconnect event handler before exit - this.delete_event.connect(()=>{ - tv_files.columns_changed.disconnect(tv_files_columns_changed); - return false; - }); - } + private void init_column_manager(){ - private void tv_files_load_columns(){ + // set column names + col_name.set_data("name", "name"); + col_size.set_data("name", "size"); + col_duration.set_data("name", "duration"); + + col_file_format.set_data("name", "format"); + col_aformat.set_data("name", "aformat"); + col_vformat.set_data("name", "vformat"); + col_channels.set_data("name", "channels"); + col_sampling.set_data("name", "samplingrate"); + col_width.set_data("name", "width"); + col_height.set_data("name", "height"); + col_fps.set_data("name", "framerate"); + col_bitrate.set_data("name", "bitrate"); + col_abitrate.set_data("name", "abitrate"); + col_vbitrate.set_data("name", "vbitrate"); + + col_artist.set_data("name", "artist"); + col_album.set_data("name", "album"); + col_genre.set_data("name", "genre"); + col_track_name.set_data("name", "title"); + col_track_num.set_data("name", "tracknum"); + col_comments.set_data("name", "comments"); + col_recorded_date.set_data("name", "recordeddate"); + + col_progress.set_data("name", "progress"); + col_spacer.set_data("name", "spacer"); + + // load default columns + tv_manager = new TreeViewColumnManager((Gtk.TreeView) treeview, + Main.REQUIRED_COLUMNS, Main.REQUIRED_COLUMNS_END, Main.DEFAULT_COLUMNS, Main.DEFAULT_COLUMN_ORDER); - tv_files.columns_changed.disconnect(tv_files_columns_changed); - - //remove all columns - var list = new Gee.ArrayList(); - foreach(TreeViewColumn col in tv_files.get_columns()){ - list.add(col); - } - foreach(TreeViewColumn col in list){ - tv_files.remove_column(col); - } - - //add required columns - tv_files.append_column(col_name); - tv_files.append_column(col_size); - tv_files.append_column(col_duration); - - //add selected columns - foreach(string col_name in App.ListViewColumns.split(",")){ - foreach(TreeViewListColumn col in col_list.values){ - if (col.Name == col_name){ - tv_files.append_column(col.Ref); - break; - } - } - } - - //add required columns - tv_files.append_column(col_progress); - tv_files.append_column(col_spacer); - - //update Selected flag - foreach(TreeViewListColumn col in col_list.values){ - col.Selected = false; - } - foreach(TreeViewColumn col in tv_files.get_columns()){ - if (col_list.has_key(col)){ - col_list[col].Selected = true; - } - } - - tv_files.columns_changed.connect(tv_files_columns_changed); - } - - private void tv_files_columns_changed(){ - tv_files_save_columns(); - } - - private void tv_files_save_columns(){ - if (col_list == null){ - return; - } - - string s = ""; - var list = tv_files.get_columns(); - foreach(TreeViewColumn col in list){ - //s += "'%s',".printf(col.title); - if (col_list.has_key(col)){ - s += col_list[col].Name + ","; - } - } - - if (s.has_suffix(",")){ - s = s[0:s.length - 1]; - } - - App.ListViewColumns = s; + //tv_manager.set_columns(App.selected_columns); } // toolbar -------------------------------- private void btn_remove_files_clicked(){ Gee.ArrayList list = new Gee.ArrayList(); - TreeSelection sel = tv_files.get_selection(); + TreeSelection sel = treeview.get_selection(); TreeIter iter; - bool iterExists = tv_files.model.get_iter_first (out iter); + bool iterExists = treeview.model.get_iter_first (out iter); while (iterExists) { if (sel.iter_is_selected (iter)){ MediaFile mf; - tv_files.model.get (iter, InputField.FILE_REF, out mf, -1); + treeview.model.get (iter, InputField.FILE_REF, out mf, -1); list.add(mf); } - iterExists = tv_files.model.iter_next (ref iter); + iterExists = treeview.model.iter_next (ref iter); } App.remove_files(list); @@ -2933,7 +2902,8 @@ "abuyop (Malay):launchpad.net/~abuyop", "B. W. Knight (Korean):launchpad.net/~kbd0651", "Felix Moreno (Spanish):launchpad.net/~felix-justdust", - "Radek Otáhal (Czech):radek.otahal@email.cz" + "Radek Otáhal (Czech):radek.otahal@email.cz", + "Heimen Stoffels (Dutch):vistausss@outlook.com" }; dialog.third_party = { @@ -2984,11 +2954,10 @@ } private void btn_app_settings_clicked(){ - var dialog = new AppConfigWindow(this); - dialog.run(); - dialog.destroy(); - - refresh_list_view(); + var win = new AppConfigWindow(this); + win.destroy.connect(()=>{ + refresh_list_view(); + }); } private void btn_shutdown_clicked(){ @@ -3103,13 +3072,8 @@ paused = false; btn_pause.stock_id = "gtk-media-pause"; - foreach(TreeViewListColumn col in col_list.values){ - if (col.Selected){ - col.Ref.visible = false; - } - } //colCrop.visible = false; - col_progress.visible = true; + //col_progress.visible = true; start_cpu_usage_timer(); } @@ -3119,15 +3083,11 @@ grid_config.visible = true; //show extra columns - if (!App.TileView){ - foreach(TreeViewListColumn col in col_list.values){ - if (col.Selected){ - col.Ref.visible = true; - } - } - } + //if (!App.TileView){ + // tv_manager.set_columns(App.selected_columns); + //} //colCrop.visible = !App.TileView; - col_progress.visible = false; + //col_progress.visible = false; btn_edit_files.visible = true; btn_start.visible = true; @@ -3156,7 +3116,7 @@ private bool update_status(){ TreeIter iter; - var model = (Gtk.TreeStore)tv_files.model; + var model = (Gtk.TreeStore)treeview.model; switch (App.Status) { case AppStatus.PAUSED: @@ -3254,7 +3214,7 @@ } private void update_status_all(){ - var model = (Gtk.TreeStore)tv_files.model; + var model = (Gtk.TreeStore)treeview.model; MediaFile mf; int index = -1; TreeIter iter; @@ -3278,16 +3238,3 @@ } } -public class TreeViewListColumn : GLib.Object { - public string Name; - public TreeViewColumn Ref; - public string FullDisplayName; - public bool Selected = false; - - public TreeViewListColumn(string _Name, string _FullDisplayName, TreeViewColumn _Ref){ - Name = _Name; - Ref = _Ref; - FullDisplayName = _FullDisplayName; - } -} - diff -Nru selene-16.9~287~ubuntu14.04.1/src/makefile selene-17.4.1/src/makefile --- selene-16.9~287~ubuntu14.04.1/src/makefile 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/makefile 2017-04-23 09:44:51.000000000 +0000 @@ -9,9 +9,19 @@ app_name=selene app_fullname=Selene +gtk3_version=$(shell { (pkg-config --modversion gtk+-3.0 | cut -d. -f2); } ) + +ifeq ($(shell { test ${gtk3_version} -gt 17 ; echo $$? ; } ), 0) +gtk3_symbols=$(shell { echo '-D GTK3_18'; } ) +else +gtk3_symbols=$(shell { echo ''; } ) +endif + +define_symbols=$(shell { echo "${gtk3_symbols}"; } ) + all: #build binaries - valac -X -D'GETTEXT_PACKAGE="${app_name}"' --Xcc="-lm" -X -Wl,-rpath,/usr/share/${app_name}/libs "Main.vala" "Utility.vala" "MainWindow.vala" "AppConfigWindow.vala" "EncoderConfigWindow.vala" "EncoderStatusWindow.vala" "FileInfoWindow.vala" "AboutWindow.vala" "DonationWindow.vala" "CustomMessageDialog.vala" "SimpleProgressWindow.vala" "ColumnSelectionDialog.vala" "BatchEditWindow.vala" "MediaFile.vala" "MediaPlayer.vala" "ScriptFile.vala" "MediaPlayerWindow.vala" "XidHelper.vala" -o ${app_name} --pkg glib-2.0 --pkg gio-unix-2.0 --pkg posix --pkg gtk+-3.0 --pkg gee-0.8 --pkg json-glib-1.0 --pkg gdk-x11-3.0 + valac -X -D'GETTEXT_PACKAGE="${app_name}"' --Xcc="-lm" -X -Wl,-rpath,/usr/share/${app_name}/libs ${define_symbols} "Main.vala" "Utility.vala" "MainWindow.vala" "AppConfigWindow.vala" "EncoderConfigWindow.vala" "EncoderStatusWindow.vala" "FileInfoWindow.vala" "AboutWindow.vala" "DonationWindow.vala" "CustomMessageDialog.vala" "SimpleProgressWindow.vala" "ColumnSelectionDialog.vala" "BatchEditWindow.vala" "MediaFile.vala" "MediaPlayer.vala" "ScriptFile.vala" "MediaPlayerWindow.vala" "XidHelper.vala" "TreeViewColumnManager.vala" "ColumnSelectionBox.vala" -o ${app_name} --pkg glib-2.0 --pkg gio-unix-2.0 --pkg posix --pkg gtk+-3.0 --pkg gee-0.8 --pkg json-glib-1.0 --pkg gdk-x11-3.0 #--pkg gdk-x11-3.0 #valac -X -D'GETTEXT_PACKAGE=ffmpeg-builder' --Xcc="-lm" -X -Wl,-rpath,/usr/share/${app_name}/libs "Main.vala" "Utility.vala" "FFmpegBuilder.vala" "CustomMessageDialog.vala" -o ${app_name} --pkg glib-2.0 --pkg gio-unix-2.0 --pkg posix --pkg gtk+-3.0 --pkg gee-0.8 --pkg json-glib-1.0 --pkg libvte @@ -55,6 +65,8 @@ msgfmt --check --verbose -o "$(DESTDIR)$(localedir)/es/LC_MESSAGES/${app_name}.mo" ../po/${app_name}-es.po mkdir -p "$(DESTDIR)$(localedir)/cs/LC_MESSAGES" msgfmt --check --verbose -o "$(DESTDIR)$(localedir)/cs/LC_MESSAGES/${app_name}.mo" ../po/${app_name}-cs.po + mkdir -p "$(DESTDIR)$(localedir)/nl/LC_MESSAGES" + msgfmt --check --verbose -o "$(DESTDIR)$(localedir)/nl/LC_MESSAGES/${app_name}.mo" ../po/${app_name}-nl.po uninstall: #binary diff -Nru selene-16.9~287~ubuntu14.04.1/src/MediaFile.vala selene-17.4.1/src/MediaFile.vala --- selene-16.9~287~ubuntu14.04.1/src/MediaFile.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/MediaFile.vala 2017-04-23 09:44:51.000000000 +0000 @@ -128,7 +128,7 @@ if (fileInfo.get_file_type() == FileType.REGULAR) { string fname = fileInfo.get_name().down(); - if (fname.has_prefix(Title.down()) && (fname.has_suffix (".srt")||fname.has_suffix (".sub")||fname.has_suffix (".ssa")||fname.has_suffix (".ttxt")||fname.has_suffix (".xml")||fname.has_suffix (".lrc"))) + if (fname.has_prefix(Title.down()) && (fname.has_suffix (".srt")||fname.has_suffix (".sub")||fname.has_suffix (".ssa")||fname.has_suffix (".ass")||fname.has_suffix (".ttxt")||fname.has_suffix (".xml")||fname.has_suffix (".lrc"))) { var stream = new TextStream(); stream_list.add(stream); @@ -141,6 +141,9 @@ else if (fname.has_suffix (".ssa")){ stream.Format = "SSA"; } + else if (fname.has_suffix (".ass")){ + stream.Format = "ASS"; + } else if (fname.has_suffix (".sub")){ stream.Format = "SUB"; } diff -Nru selene-16.9~287~ubuntu14.04.1/src/MediaPlayerWindow.vala selene-17.4.1/src/MediaPlayerWindow.vala --- selene-16.9~287~ubuntu14.04.1/src/MediaPlayerWindow.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/MediaPlayerWindow.vala 2017-04-23 09:44:51.000000000 +0000 @@ -35,7 +35,8 @@ public class MediaPlayerWindow : Gtk.Window { private Gtk.Box vboxMain; - + private Gtk.HeaderBar headerbar; + //crop private Gtk.SpinButton spinCropL; private Gtk.SpinButton spinCropR; @@ -110,7 +111,7 @@ icon = get_app_icon(16); deletable = true; - resizable = false; + //resizable = false; action = _action; @@ -132,6 +133,21 @@ vboxMain = new Gtk.Box(Orientation.VERTICAL,0); add(vboxMain); + headerbar = new Gtk.HeaderBar (); + headerbar.set_title ("Selene Video Trimer"); + headerbar.set_subtitle ("Test"); + headerbar.set_show_close_button(true); + //vboxMain.pack_start (headerbar, false, true, 0); + + set_titlebar(headerbar); + + //decorated = false; + + Gtk.Button button = new Gtk.Button.with_label (_("Open")); + button.set_valign (Gtk.Align.CENTER); + button.get_style_context().add_class(Gtk.STYLE_CLASS_RAISED); + headerbar.pack_start (button); + if (action == "crop"){ init_ui_file_crop_options(); } Binary files /tmp/tmphiqF8T/W31mXfsOhe/selene-16.9~287~ubuntu14.04.1/src/share/selene/images/ffmpeg_old.png and /tmp/tmphiqF8T/WUsatXuWm1/selene-17.4.1/src/share/selene/images/ffmpeg_old.png differ diff -Nru selene-16.9~287~ubuntu14.04.1/src/share/selene/images/ffmpeg.svg selene-17.4.1/src/share/selene/images/ffmpeg.svg --- selene-16.9~287~ubuntu14.04.1/src/share/selene/images/ffmpeg.svg 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/src/share/selene/images/ffmpeg.svg 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -Nru selene-16.9~287~ubuntu14.04.1/src/TreeViewColumnManager.vala selene-17.4.1/src/TreeViewColumnManager.vala --- selene-16.9~287~ubuntu14.04.1/src/TreeViewColumnManager.vala 1970-01-01 00:00:00.000000000 +0000 +++ selene-17.4.1/src/TreeViewColumnManager.vala 2017-04-23 09:44:51.000000000 +0000 @@ -0,0 +1,216 @@ +/* + * TreeViewColumnManager.vala + * + * Copyright 2017 Tony George + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * + */ + +using TeeJee.Logging; +using TeeJee.FileSystem; +using TeeJee.JSON; +using TeeJee.ProcessManagement; +using TeeJee.System; +using TeeJee.Misc; +using TeeJee.GtkHelper; +using Gtk; + +public class TreeViewColumnManager : GLib.Object { + + private Gtk.TreeView treeview; + private Gee.HashMap columns; + private string columns_required = ""; + private string columns_required_end = ""; + private string columns_default = ""; + private string columns_all = ""; + + public TreeViewColumnManager(TreeView _treeview, string _columns_required, string _columns_required_end, string _columns_default, string _columns_all){ + treeview = _treeview; + + columns = new Gee.HashMap(); + foreach(var col in treeview.get_columns()){ + columns[col.get_data("name")] = col; + } + + columns_required = _columns_required; + columns_default = _columns_default; + columns_all = _columns_all; + columns_required_end = _columns_required_end; + } + + public string get_columns(){ + string s = ""; + foreach(var col in treeview.get_columns()){ + if (col.visible){ + string name = col.get_data("name"); + if (s.length > 0){ + s += ","; + } + s += name; + } + } + //log_debug("get_current_column_string: %s".printf(s)); + return s; + } + + public void set_columns(string selected_columns){ + + log_debug("set_columns(): %s".printf(selected_columns)); + + var list = new Gee.ArrayList(); + + var list_req_end = new Gee.ArrayList(); + foreach(var item in columns_required_end.split(",")){ + list_req_end.add(item); + } + + // add required columns ------------------------- + + Gtk.TreeViewColumn? column = null; + Gtk.TreeViewColumn? last_column = null; + + foreach(string name in columns_required.split(",")){ + + // skip ending columns + if (list_req_end.contains(name)){ continue; } + + // skip existing + if (list.contains(name)){ continue; } + + // show column + if (columns.has_key(name)){ + + //log_debug("set_columns: show: %s".printf(name)); + + column = columns[name]; + column.visible = true; + treeview.move_column_after(column, last_column); + last_column = column; + + list.add(name); + } + } + + // add optional selected columns -------------------- + + foreach(string name in selected_columns.split(",")){ + + // skip ending columns + if (list_req_end.contains(name)){ continue; } + + // skip existing + if (list.contains(name)){ continue; } + + // show column + if (columns.has_key(name)){ + + //log_debug("set_columns: show: %s".printf(name)); + + column = columns[name]; + column.visible = true; + treeview.move_column_after(column, last_column); + last_column = column; + + list.add(name); + } + } + + // hide all columns not in list + + foreach(string name in columns_all.split(",")){ + + // skip ending columns + if (list_req_end.contains(name)){ continue; } + + // skip existing + if (list.contains(name)){ continue; } + + // hide column + if (columns.has_key(name)){ + + //log_debug("set_columns: hide: %s".printf(name)); + + column = columns[name]; + column.visible = false; + treeview.move_column_after(column, last_column); + last_column = column; + + list.add(name); + } + } + + // move required_end columns after other columns + + foreach(string name in list_req_end){ + + if (columns.has_key(name)){ + + column = columns[name]; + column.visible = true; + treeview.move_column_after(column, last_column); + last_column = column; + } + } + + + /* spacer can be reordered by dragging other columns after it, + * (even though we have set reorderable = false for spacer column) + * */ + } + + public Gee.ArrayList get_all_columns(){ + + var list = new Gee.ArrayList(); + + if (columns_all.length > 0){ + foreach(string name in columns_all.split(",")){ + list.add(columns[name]); + } + } + else{ + columns.values.foreach((x) => { list.add(x); return true; } ); + } + + return list; + } + + public void add_column(string name){ + + log_debug("add_column(): %s".printf(name)); + + if (columns.has_key(name)){ + var col = columns[name]; + col.visible = true; + } + } + + public void remove_column(string name){ + + log_debug("remove_column(): %s".printf(name)); + + if (columns.has_key(name)){ + var col = columns[name]; + col.visible = false; + } + } + + public void reset_columns(){ + log_debug("reset_columns()"); + set_columns(columns_default); + } +} diff -Nru selene-16.9~287~ubuntu14.04.1/src/Utility.vala selene-17.4.1/src/Utility.vala --- selene-16.9~287~ubuntu14.04.1/src/Utility.vala 2016-09-14 15:23:25.000000000 +0000 +++ selene-17.4.1/src/Utility.vala 2017-04-23 09:44:51.000000000 +0000 @@ -335,28 +335,15 @@ return execute_command_sync ("chmod " + permission + " \"%s\"".printf(file)); } - public string resolve_relative_path (string filePath){ + public string resolve_relative_path (string file_path){ - /* Resolve the full path of given file using 'realpath' command */ + string? resolved_path = Posix.realpath(file_path); - string filePath2 = filePath; - if (filePath2.has_prefix ("~")){ - filePath2 = Environment.get_home_dir () + "/" + filePath2[2:filePath2.length]; + if (resolved_path == null){ + resolved_path = file_path; } - - try { - string output = ""; - Process.spawn_command_line_sync("realpath \"%s\"".printf(filePath2), out output); - output = output.strip (); - if (FileUtils.test(output, GLib.FileTest.EXISTS)){ - return output; - } - } - catch(Error e){ - log_error (e.message); - } - - return filePath2; + + return resolved_path; } public int rsync (string sourceDirectory, string destDirectory, bool updateExisting, bool deleteExtra){ @@ -1056,6 +1043,42 @@ widget.get_style_context().add_provider(css_provider, Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION); widget.get_style_context().add_class("style_%d".printf(CSS_AUTO_CLASS_INDEX)); } + + public TreeIter gtk_get_iter_next (Gtk.TreeModel model, Gtk.TreeIter iter_find){ + + bool return_next = false; + + TreeIter iter; + bool iterExists = model.get_iter_first (out iter); + while (iterExists){ + if (return_next){ + return iter; + } + else if (iter == iter_find){ + return_next = true; + } + iterExists = model.iter_next (ref iter); + } + + return iter_find; + } + + public TreeIter gtk_get_iter_prev (Gtk.TreeModel model, Gtk.TreeIter iter_find){ + + TreeIter iter_prev = iter_find; + + TreeIter iter; + bool iterExists = model.get_iter_first (out iter); + while (iterExists){ + if (iter == iter_find){ + return iter_prev; + } + iter_prev = iter; + iterExists = model.iter_next (ref iter); + } + + return iter_find; + } } namespace TeeJee.Multimedia{