Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package pdfarranger for openSUSE:Factory checked in at 2021-04-12 15:49:44 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/pdfarranger (Old) and /work/SRC/openSUSE:Factory/.pdfarranger.new.2401 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "pdfarranger" Mon Apr 12 15:49:44 2021 rev:2 rq:884623 version:1.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/pdfarranger/pdfarranger.changes 2021-04-01 14:18:15.500068447 +0200 +++ /work/SRC/openSUSE:Factory/.pdfarranger.new.2401/pdfarranger.changes 2021-04-12 15:49:58.605280278 +0200 @@ -1,0 +2,16 @@ +Mon Apr 12 10:30:11 UTC 2021 - Christophe Giboudeaux <[email protected]> + +- Update to 1.7.1 + * Fix "TypeError: only pages can be inserted" with + libqpdf >= 10.2.0 & pikepdf < 2.7.0 + * Display imported files in alphabetical order + * Release memory after rendering and deleting pages + * Installation instructions for FreeBSD + * Fix a segfault on "crop white borders" while rendering thumbnails + * Allow PDF Arranger to be recognized as a handler for all image + MIME type that it can handle + * Fix min & max zoom level limits + * Fix issue with pages copied with ctrl + dnd + * Fix displayed page range when using paste before + +------------------------------------------------------------------- Old: ---- pdfarranger-1.7.0.tar.gz New: ---- pdfarranger-1.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ pdfarranger.spec ++++++ --- /var/tmp/diff_new_pack.rp1p6p/_old 2021-04-12 15:49:59.157280946 +0200 +++ /var/tmp/diff_new_pack.rp1p6p/_new 2021-04-12 15:49:59.157280946 +0200 @@ -1,7 +1,7 @@ # # spec file for package pdfarranger # -# Copyright (c) 2020 SUSE LLC +# Copyright (c) 2021 SUSE LLC # Copyright (c) 2020 Karl Cheng <[email protected]> # # All modifications and additions to the file contributed by third parties @@ -18,7 +18,7 @@ Name: pdfarranger -Version: 1.7.0 +Version: 1.7.1 Release: 0 Summary: Merge, split, rotate, crop, and rearrange pages of PDF documents License: GPL-3.0-only @@ -36,6 +36,7 @@ Requires: python3-dateutil >= 2.4.0 Requires: python3-pikepdf >= 1.7.0 Requires: typelib-1_0-Poppler-0_18 +Requires: python3-gobject-Gdk Recommends: %{name}-lang BuildArch: noarch ++++++ pdfarranger-1.7.0.tar.gz -> pdfarranger-1.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/.github/workflows/install.yml new/pdfarranger-1.7.1/.github/workflows/install.yml --- old/pdfarranger-1.7.0/.github/workflows/install.yml 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/.github/workflows/install.yml 2021-03-13 18:37:08.000000000 +0100 @@ -1,7 +1,7 @@ name: pdfarranger on: push: - branches: [ master ] + branches: [ main ] pull_request: jobs: build: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/README.md new/pdfarranger-1.7.1/README.md --- old/pdfarranger-1.7.0/README.md 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/README.md 2021-03-13 18:37:08.000000000 +0100 @@ -3,8 +3,8 @@ [](https://lgtm.com/projects/g/pdfarranger/pdfarranger/alerts/) [](https://lgtm.com/projects/g/pdfarranger/pdfarranger/context:python) [](https://www.codacy.com/gh/pdfarranger/pdfarranger/dashboard?utm_source=github.com&utm_medium=referral&utm_content=pdfarranger/pdfarranger&utm_campaign=Badge_Grade) -[](https://github.com/pdfarranger/pdfarranger/actions?query=workflow%3Apdfarranger+branch%3Amaster) -[](https://codecov.io/gh/pdfarranger/pdfarranger) +[](https://github.com/pdfarranger/pdfarranger/actions?query=workflow%3Apdfarranger+branch%3Amain) +[](https://codecov.io/gh/pdfarranger/pdfarranger) *pdfarranger* is a small python-gtk application, which helps the user to merge or split pdf documents and rotate, crop and rearrange their pages using an @@ -16,7 +16,7 @@ [Sourceforge](http://sourceforge.net/projects/pdfshuffler)). It???s a humble attempt to make the project a bit more active. - + ## Downloads @@ -37,8 +37,8 @@ ## Install from source -*pdfarranger* requires [pikepdf](https://github.com/pikepdf/pikepdf) >= 1.7.0. Older versions may work -but are not supported. [pikepdf](https://github.com/pikepdf/pikepdf) >= 1.15.1 is highly recommended. +*pdfarranger* requires [pikepdf](https://github.com/pikepdf/pikepdf) >= 1.7.0, but pikepdf >= 1.15.1 is highly recommended. +pip will automatically install the latest pikepdf if there is no pikepdf installed on the system. **On Debian based distributions** @@ -55,14 +55,19 @@ **On Fedora** ``` -sudo dnf install poppler-glib python3-distutils-extra python3-pip python3-gobject gtk3 python3-cairo python3-wheel +sudo dnf install poppler-glib python3-distutils-extra python3-pip python3-gobject gtk3 python3-cairo python3-wheel python3-pikepdf python3-img2pdf python3-dateutil +``` + +**On FreeBSD** + +``` +sudo pkg install devel/gettext devel/py-gobject3 devel/py-pip devel/py-python-distutils-extra graphics/poppler-glib textproc/intltool textproc/py-pikepdf x11-toolkits/gtk30 ``` -or `sudo dnf builddep pdfarranger` **Then** ``` -pip3 install --user --upgrade https://github.com/pdfarranger/pdfarranger/zipball/master +pip3 install --user --upgrade https://github.com/pdfarranger/pdfarranger/zipball/main ``` In addition, *pdfarranger* supports image file import if [img2pdf](https://gitlab.mister-muffin.de/josch/img2pdf) is installed. @@ -72,7 +77,6 @@ ``` git clone https://github.com/pdfarranger/pdfarranger.git cd pdfarranger -pip install -e . ./setup.py build python3 -m pdfarranger ``` @@ -81,7 +85,7 @@ ## For translators -- Download the master branch (see [For developers](#for-developers)) +- Download the main branch (see [For developers](#for-developers)) - Run `po/genpot.sh`. The `pot` is an automatically generated file and as such should not be in the repository. It is to make life of some translators diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/data/com.github.jeromerobert.pdfarranger.desktop new/pdfarranger-1.7.1/data/com.github.jeromerobert.pdfarranger.desktop --- old/pdfarranger-1.7.0/data/com.github.jeromerobert.pdfarranger.desktop 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/data/com.github.jeromerobert.pdfarranger.desktop 2021-03-13 18:37:08.000000000 +0100 @@ -16,7 +16,7 @@ Type=Application Exec=pdfarranger %U Icon=com.github.jeromerobert.pdfarranger -MimeType=application/pdf; +MimeType=application/pdf;application/postscript;application/x-ext-pdf;image/x-bmp;image/bmp;image/gif;image/tiff;image/jp2;image/jpeg;image/jpg;image/png;image/x-icon;image/x-portable-pixmap;image/x-gray;image/x-ico;image/x-png;image/vnd.zbrush.pcx;image/x-pcx; Categories=Office; Terminal=false StartupNotify=false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/data/com.github.jeromerobert.pdfarranger.metainfo.xml new/pdfarranger-1.7.1/data/com.github.jeromerobert.pdfarranger.metainfo.xml --- old/pdfarranger-1.7.0/data/com.github.jeromerobert.pdfarranger.metainfo.xml 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/data/com.github.jeromerobert.pdfarranger.metainfo.xml 2021-03-13 18:37:08.000000000 +0100 @@ -23,12 +23,13 @@ <url type="homepage">https://github.com/pdfarranger/pdfarranger</url> <screenshots> <screenshot type="default"> - <image>https://github.com/pdfarranger/pdfarranger/raw/master/data/screenshot.png</image> + <image>https://github.com/pdfarranger/pdfarranger/raw/main/data/screenshot.png</image> <caption/> </screenshot> </screenshots> <update_contact>[email protected]</update_contact> <releases> + <release date="2021-03-13" version="1.7.1"/> <release date="2021-01-24" version="1.7.0"/> <release date="2020-08-01" version="1.6.2"/> <release date="2020-07-31" version="1.6.1"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/pdfarranger/core.py new/pdfarranger-1.7.1/pdfarranger/core.py --- old/pdfarranger-1.7.0/pdfarranger/core.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/pdfarranger/core.py 2021-03-13 18:37:08.000000000 +0100 @@ -244,6 +244,7 @@ raise e def __init__(self, filename, basename, tmp_dir, parent): + self.render_lock = threading.Lock() self.filename = os.path.abspath(filename) self.mtime = os.path.getmtime(filename) if basename is None: # When importing files @@ -421,7 +422,7 @@ previous_p = self.start_p - cnt next_p = self.start_p + cnt if previous_p < 0 and next_p > len(self.model): - return + break if previous_p >= 0: self.update(previous_p, self.model[previous_p]) if next_p < len(self.model): @@ -445,7 +446,8 @@ cr = cairo.Context(thumbnail) if scale != 1.0: cr.scale(scale, scale) - page.render(cr) + with pdfdoc.render_lock: + page.render(cr) GObject.idle_add( self.emit, "update_thumbnail", diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/pdfarranger/croputils.py new/pdfarranger-1.7.1/pdfarranger/croputils.py --- old/pdfarranger-1.7.0/pdfarranger/croputils.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/pdfarranger/croputils.py 2021-03-13 18:37:08.000000000 +0100 @@ -271,7 +271,8 @@ h = int(h) thumbnail = cairo.ImageSurface(cairo.FORMAT_ARGB32, w, h) cr = cairo.Context(thumbnail) - page.render(cr) + with pdfdoc.render_lock: + page.render(cr) # TODO: python list are dead slow compared to memoryview. It would # be faster to create a memoryview full of 0 and then compare each row # to it. memoryview have full native __eq__ operator which is fast. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/pdfarranger/exporter.py new/pdfarranger-1.7.1/pdfarranger/exporter.py --- old/pdfarranger-1.7.0/pdfarranger/exporter.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/pdfarranger/exporter.py 2021-03-13 18:37:08.000000000 +0100 @@ -165,12 +165,20 @@ if cropped: new_page.MediaBox = cropped new_page = _scale(pdf_output, new_page, row.scale) + + # Workraround for pikepdf < 2.7.0 + # https://github.com/pikepdf/pikepdf/issues/174 + new_page = pdf_output.make_indirect(new_page) + pdf_output.pages.append(new_page) if exportmode in ['ALL_TO_MULTIPLE', 'SELECTED_TO_MULTIPLE']: for n, page in enumerate(pdf_output.pages): outpdf = pikepdf.Pdf.new() _set_meta(mdata, pdf_input, outpdf) + # needed to add this, probably related to pikepdf < 2.7.0 workaround + page = outpdf.copy_foreign(page) + # works without make_indirect as already applied to this page outpdf.pages.append(page) outname = file_out parts = file_out.rsplit('.', 1) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/pdfarranger/pdfarranger.py new/pdfarranger-1.7.1/pdfarranger/pdfarranger.py --- old/pdfarranger-1.7.0/pdfarranger/pdfarranger.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/pdfarranger/pdfarranger.py 2021-03-13 18:37:08.000000000 +0100 @@ -26,7 +26,9 @@ import gettext import gc import subprocess +import ctypes from urllib.request import url2pathname +from functools import lru_cache sharedir = os.path.join(sys.prefix, 'share') @@ -60,15 +62,14 @@ except AttributeError: pass else: - from ctypes import cdll # Windows or musl - libintl = cdll['libintl-8' if os.name == 'nt' else 'libintl.so.8'] + libintl = ctypes.cdll['libintl-8' if os.name == 'nt' else 'libintl.so.8'] libintl.bindtextdomain(DOMAIN.encode(), localedir.encode(sys.getfilesystemencoding())) libintl.bind_textdomain_codeset(DOMAIN.encode(), 'UTF-8'.encode()) del libintl APPNAME = 'PDF Arranger' -VERSION = '1.7.0' +VERSION = '1.7.1' WEBSITE = 'https://github.com/pdfarranger/pdfarranger' # Add support for dnd to other instance and insert file at drop location in Windows @@ -163,6 +164,27 @@ return wrapper +def malloc_trim(): + """Release free memory from the heap.""" + if os.name == 'nt': + return + mtrim = malloc_trim_available() + if mtrim: + mtrim() + + +@lru_cache() +def malloc_trim_available(): + try: + ctypes.CDLL('libc.so.6').malloc_trim(0) + except (FileNotFoundError, AttributeError, OSError): + print('malloc_trim not available. Application may not release memory properly.') + return + def mtrim(): + ctypes.CDLL('libc.so.6').malloc_trim(0) + return mtrim + + def get_file_path_from_uri(uri): """Extracts the path from an uri""" uri = uri[5:] # remove 'file:' @@ -533,7 +555,7 @@ all_files = self.active_file_names() if len(all_files) > 0: - title += ' [' + ', '.join(all_files) + ']' + title += ' [' + ', '.join(sorted(all_files)) + ']' title += ' ??? ' + APPNAME self.window.set_title(title) @@ -559,6 +581,8 @@ page.zoom = self.zoom_scale page.thumbnail = thumbnail self.model[num][0] = page + elif num == -2: + malloc_trim() self.update_progress_bar(num) def on_window_size_request(self, _window): @@ -825,6 +849,7 @@ self.iconview.grab_focus() if self.progress_bar.get_visible() and len(self.model) > 0: self.render() + malloc_trim() def copy_pages(self): """Collect data from selected pages""" @@ -981,6 +1006,8 @@ self.paste_files(data, before, ref_to) else: self.paste_pages(data, before, ref_to, select_added=False) + if pastemode == 'BEFORE': + self.__update_statusbar() elif pastemode in ['ODD', 'EVEN']: if data_is_filepaths: # Generate data to send to paste_pages_interleave @@ -1179,11 +1206,12 @@ for p in data] iter_to = self.model.get_iter(ref_to.get_path()) for ref_from in ref_from_list: - row = model[model.get_iter(ref_from.get_path())] + iterator = model.get_iter(ref_from.get_path()) + page = model.get_value(iterator, 0).duplicate() if before: - it = model.insert_before(iter_to, row[:]) + it = model.insert_before(iter_to, [page, page.description()]) else: - it = model.insert_after(iter_to, row[:]) + it = model.insert_after(iter_to, [page, page.description()]) path = model.get_path(it) iconview.select_path(path) if move: @@ -1211,6 +1239,7 @@ for ref_del in ref_del_list: path = ref_del.get_path() model.remove(model.get_iter(path)) + malloc_trim() def iv_dnd_motion(self, iconview, context, x, y, etime): """Handles drag motion: autoscroll, select move or copy, select drag cursor location.""" @@ -1545,7 +1574,8 @@ def zoom_set(self, level): """Sets the zoom level""" - if level < -10 or level > 40: + level = min(max(level, -10), 40) + if level == self.zoom_level: return if self.zoom_change_render: GObject.source_remove(self.zoom_change_render) @@ -1582,7 +1612,6 @@ selection = self.iconview.get_selected_items() if len(selection) != 1: return - self.zoom_full_page = True item_padding = self.iconview.get_item_padding() cell_image_renderer, cell_text_renderer = self.iconview.get_cells() @@ -1601,6 +1630,8 @@ zoom_scaleX_new = (sw_width - cell_extraX - margins) / page_width zoom_scaleY_new = (sw_height - cell_extraY - margins) / page_height self.zoom_scale = min(zoom_scaleY_new, zoom_scaleX_new) + if self.zoom_scale < 0.2 * (1.1 ** -10): + return for page, _ in self.model: page.zoom = self.zoom_scale selected_page_nr = Gtk.TreePath.get_indices(selection[0])[0] @@ -1610,6 +1641,7 @@ self.zoom_level = -10 while self.zoom_scale > 0.2 * (1.1 ** self.zoom_level): self.zoom_level += 1 + self.zoom_full_page = True def scroll_to_selection(self): """Scroll iconview so that selection is in center of window.""" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/po/de.po new/pdfarranger-1.7.1/po/de.po --- old/pdfarranger-1.7.0/po/de.po 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/po/de.po 2021-03-13 18:37:08.000000000 +0100 @@ -274,7 +274,7 @@ #: pdfarranger/splitter.py:26 msgid "Split Pages" -msgstr "Seiten zuschneiden" +msgstr "Seiten teilen" #: pdfarranger/splitter.py:58 msgid "Columns" @@ -422,7 +422,7 @@ #: data/menu.ui.h:19 msgid "_Split Pages" -msgstr "_Seiten zuschneiden" +msgstr "_Seiten teilen" #: data/menu.ui.h:20 msgid "Cu_t" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/po/fr.po new/pdfarranger-1.7.1/po/fr.po --- old/pdfarranger-1.7.0/po/fr.po 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/po/fr.po 2021-03-13 18:37:08.000000000 +0100 @@ -6,22 +6,22 @@ # Translators: # David VANTYGHEM <[email protected]>, 2014. # J??r??me Robert <[email protected]>, 2019. -# Charles Monzat <[email protected]>, 2019. +# Charles Monzat <[email protected]>, 2019-2021. # msgid "" msgstr "" "Project-Id-Version: unnamed project\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2021-01-01 22:06+0100\n" -"PO-Revision-Date: 2020-12-26 10:03+0100\n" -"Last-Translator: J??r??me Robert <[email protected]>\n" +"PO-Revision-Date: 2021-02-04 14:22+0100\n" +"Last-Translator: Charles Monzat <[email protected]>\n" "Language-Team: French - France <>\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Poedit-SourceCharset: utf-8\n" -"X-Generator: Poedit 2.4.2\n" +"X-Generator: Gtranslator 3.38.0\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" #: pdfarranger/core.py:80 @@ -34,15 +34,14 @@ #: pdfarranger/core.py:186 msgid "The password will be remembered until you close PDF-Arranger." -msgstr "" -"Le mot de passe sera m??moris?? jusqu'?? ce que vous fermiez PDF-Arranger." +msgstr "Le mot de passe sera m??moris?? jusqu????? la fermeture de PDF-Arranger." #: pdfarranger/core.py:187 msgid "" "The document ???{}??? is locked and requires a password before it can be opened." msgstr "" -"Le document ?? {} ?? est verrouill?? et n??cessite un mot de passe avant de " -"pouvoir ??tre ouvert." +"Le document ????{}???? est verrouill?? et n??cessite un mot de passe avant son " +"ouverture." #: pdfarranger/core.py:197 msgid "Password" @@ -54,7 +53,7 @@ #: pdfarranger/core.py:256 msgid "Image files are only supported with img2pdf" -msgstr "Les fichiers images sont seulement pris en charge avec img2pdf" +msgstr "Les fichiers image sont seulement pris en charge avec img2pdf" #: pdfarranger/core.py:278 msgid "Image format is not supported by img2pdf" @@ -62,11 +61,11 @@ #: pdfarranger/core.py:280 pdfarranger/pdfarranger.py:1000 msgid "File is neither pdf nor image" -msgstr "Le fichier n'est pas un PDF ni une image" +msgstr "Le fichier n???est ni un PDF ni une image" #: pdfarranger/croputils.py:124 msgid "Scale factor" -msgstr "Facteur d'??chelle" +msgstr "Facteur d?????chelle" #: pdfarranger/croputils.py:130 msgid "%" @@ -134,7 +133,7 @@ #: pdfarranger/croputils.py:339 msgid "Insert Blank Page" -msgstr "Inserer une page blanche" +msgstr "Ins??rer une page blanche" #: pdfarranger/exporter.py:106 msgid "Warning" @@ -218,11 +217,11 @@ #: pdfarranger/pdfarranger.py:626 msgid "Save changes to ???{}??? before closing?" -msgstr "Enregistrer les modifications du document ??{}?? avant la fermeture ?" +msgstr "Enregistrer les modifications du document ????{}???? avant la fermeture???" #: pdfarranger/pdfarranger.py:628 msgid "Save changes before closing?" -msgstr "Enregistrer les modifications avant la fermeture ?" +msgstr "Enregistrer les modifications avant la fermeture???" #: pdfarranger/pdfarranger.py:630 msgid "Your changes will be lost if you don???t save them." @@ -230,11 +229,11 @@ #: pdfarranger/pdfarranger.py:631 msgid "Do_n???t Save" -msgstr "_Ne pas enregistrer" +msgstr "Ne _pas enregistrer" #: pdfarranger/pdfarranger.py:631 msgid "_Cancel" -msgstr "_Annuler" +msgstr "A_nnuler" #: pdfarranger/pdfarranger.py:631 data/menu.ui.h:3 msgid "_Save" @@ -250,7 +249,7 @@ #: pdfarranger/pdfarranger.py:886 msgid "Pasted data not valid. Aborting paste." -msgstr "Donn??es coll??es invalides. Annulation du collage." +msgstr "Donn??es coll??es non valides. Annulation du collage." #: pdfarranger/pdfarranger.py:994 msgid "PDF document is damaged" @@ -275,11 +274,11 @@ #: pdfarranger/pdfarranger.py:1823 msgid "Selected pages: " -msgstr "Pages selectionn??es: " +msgstr "Pages s??lectionn??es??: " #: pdfarranger/splitter.py:26 msgid "Split Pages" -msgstr "" +msgstr "S??parer les pages" #: pdfarranger/splitter.py:58 msgid "Columns" @@ -295,7 +294,7 @@ #: pdfarranger/splitter.py:59 msgid "Horizontal Splits" -msgstr "Numbre de lignes" +msgstr "Nombre de lignes" #: pdfarranger/splitter.py:60 msgid "Equal column width" @@ -375,11 +374,11 @@ #: data/menu.ui.h:6 msgid "E_xport Selection to a Single File???" -msgstr "E_xporter la selection vers un seul fichier???" +msgstr "E_xporter la s??lection vers un seul fichier???" #: data/menu.ui.h:7 msgid "Export Selection to _Individual Files???" -msgstr "Exporter chaque page select_ionn??e vers un fichier???" +msgstr "Exporter chaque page s??lect_ionn??e vers un fichier???" #: data/menu.ui.h:8 msgid "Export _All Pages to Individual Files???" @@ -455,19 +454,19 @@ #: data/menu.ui.h:26 msgid "Insert Blan_k Page" -msgstr "Inserer une page _blanche" +msgstr "Ins??rer une page _blanche" #: data/menu.ui.h:27 msgid "_Select" -msgstr "_Selectionner" +msgstr "_S??lectionner" #: data/menu.ui.h:28 msgid "Select _All" -msgstr "Selectionner _tout" +msgstr "_Tout s??lectionner" #: data/menu.ui.h:29 msgid "_Deselect All" -msgstr "_D??selectionner tout" +msgstr "Tout _d??s??lectionner" #: data/menu.ui.h:30 msgid "Select _Odd Pages" @@ -487,7 +486,7 @@ #: data/menu.ui.h:34 msgid "_Invert Selection" -msgstr "_Inverser la selection" +msgstr "_Inverser la s??lection" #: data/menu.ui.h:35 msgid "Zoom _In" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/setup.py new/pdfarranger-1.7.1/setup.py --- old/pdfarranger-1.7.0/setup.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/setup.py 2021-03-13 18:37:08.000000000 +0100 @@ -33,7 +33,7 @@ setup( name='pdfarranger', - version='1.7.0', + version='1.7.1', author='Jerome Robert', author_email='[email protected]', description='A simple application for PDF Merging, Rearranging, and Splitting', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pdfarranger-1.7.0/setup_win32.py new/pdfarranger-1.7.1/setup_win32.py --- old/pdfarranger-1.7.0/setup_win32.py 2021-01-24 11:46:12.000000000 +0100 +++ new/pdfarranger-1.7.1/setup_win32.py 2021-03-13 18:37:08.000000000 +0100 @@ -1,4 +1,4 @@ -VERSION='1.7.0' +VERSION='1.7.1' from cx_Freeze import setup, Executable import os
