Hello everyone,
I'm Fred (morfredus on GitHub). With the agreement of Antoine Potten, the author of Ant Renamer, I would like to present Ant Renamer Qt, a port of Ant Renamer 2.13 to C++ and Qt 6.
Why a port?
Ant Renamer 2 is a Delphi 7 program from 2002. I wanted to keep using it on recent systems, and to have a version that anyone can build with today's free tools. The original needs Delphi 7 and five third-party component packs, runs on Windows only, and there is no easy way to make it run on Linux.
The chosen solution
A rewrite in C++20 with Qt 6, from the sources Antoine published (antrenamer2_sources.zip). The goal is to stay faithful to the original:
- the 14 renaming actions, with the same names, order and settings;
- the same mask language (%name%, %ext%, %folderN%, %count*%, $if(...));
- the same batch files (.arb): both programs read each other's batches;
- the same command line options;
- the same interface layout (Files / Actions / Log pages, toolbars, icons, shortcuts, live preview);
- the original language files (the 27 .lng files, used as they are), the original help and the original graphics.
Windows and Linux
- Windows 64-bit: installer and portable zip.
- Linux: .deb packages (amd64 and arm64) and an x86_64 AppImage.
Several issues have been fixed in the port, in particular some behaviours inherited from the original version. The deliberate differences between the two versions are detailed in the presentation document available on GitHub:
- an endless loop on a lone "$" in an $if mask;
- empty MP3 / EXIF tags that turned into a number (so $if(%title%,...) was always true);
- the "Restart" value of the Enumeration action saved with the wrong value in batch files;
- the missing "%" in the MP3 default mask;
- case-only renames (a.txt to A.TXT) now work on case-insensitive volumes;
- the preview of date / MP3 / EXIF actions after another action.
- ID3v2.2, 2.3 and 2.4 tags for the MP3 action (the original reads ID3v1 only);
- IPTC and XMP data (keywords, title, rating, color label...) in the EXIF action, and a %num% counter;
- sidecar files (.xmp, DxO .dop) follow their picture when it is renamed, and the undo puts them back;
- the same number for JPG + RAW pairs;
- wildcards in string replacement;
- a "Changed only" button to review only the files whose name changes in a big list;
- natural sort in the files list (file 2 before file 10);
- editing an action of the batch in place (double-click);
- Explorer context menu "Add to Ant Renamer";
- long paths (over 260 characters), UTF-8, high-resolution screens, dark theme;
- built-in help window, no external browser needed.
Besides the classic layout, there is a modern one, as an option (Options > Display):
- one main bar with tabs showing the number of files and actions, and a prominent Go button;
- a bar per page, and the new-name column visible by default;
- a "single screen" mode: Files, Actions and Log all visible at once, in bands or in columns, with movable splitters and remembered sizes (an idea from Antoine);
- the system light or dark theme.
Portable version for testing
A portable zip is available: unzip it anywhere and run it, nothing is installed. To keep the settings in the same folder, put an empty antrenamer-qt.ini file next to the program. It is the easiest way to try it without touching your current installation of Ant Renamer.
The current version is a release candidate (3.0.0-rc.9). It is available for testing, and your feedback is welcome before the release of version 3.0.0.
Where to find it and how to give feedback
Download and source code: https://github.com/morfredus/ant-renamer-qt
The follow-up and development of Ant Renamer Qt are independent from those of the original program and take place on GitHub. For any question or report about the port, please use the dedicated spaces:
- Bugs: https://github.com/morfredus/ant-renamer-qt/issues
- Questions, ideas and discussions: https://github.com/morfredus/ant-renamer-qt/discussions
Many thanks to Antoine Potten for Ant Renamer, for publishing its sources, and for his agreement: without them this port would not exist.
Fred
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
FRANÇAIS
Bonjour à tous,
Je suis Fred (morfredus sur GitHub). Avec l'accord d'Antoine Potten, l'auteur d'Ant Renamer, je souhaite vous présenter Ant Renamer Qt, un portage d'Ant Renamer 2.13 en C++ et Qt 6.
Pourquoi un portage ?
Ant Renamer 2 est un programme Delphi 7 datant de 2002. Je voulais continuer à l'utiliser sur les systèmes récents, et avoir une version que chacun puisse compiler avec les outils gratuits d'aujourd'hui. L'original demande Delphi 7 et cinq packs de composants tiers, ne fonctionne que sous Windows, et il n'y a pas de moyen simple de le faire tourner sous Linux.
La solution retenue
Une réécriture en C++20 avec Qt 6, à partir des sources publiées par Antoine (antrenamer2_sources.zip). L'objectif est de rester fidèle à l'original :
- les 14 actions de renommage, avec les mêmes noms, le même ordre et les mêmes réglages ;
- le même langage de masques (%name%, %ext%, %folderN%, %count*%, $if(...)) ;
- les mêmes fichiers de batch (.arb) : les deux programmes lisent les batchs de l'autre ;
- les mêmes options de ligne de commande ;
- la même disposition de l'interface (pages Fichiers / Actions / Journal, barres d'outils, icônes, raccourcis, aperçu en direct) ;
- les fichiers de langue d'origine (les 27 fichiers .lng, utilisés tels quels), l'aide d'origine et les graphismes d'origine.
Windows et Linux
- Windows 64 bits : installeur et zip portable.
- Linux : paquets .deb (amd64 et arm64) et AppImage x86_64.
Plusieurs anomalies ont été corrigées dans le portage, notamment certains comportements hérités de la version originale. Les différences volontaires entre les deux versions sont détaillées dans le document de présentation disponible sur GitHub :
- une boucle infinie sur un « $ » isolé dans un masque $if ;
- des tags MP3 / EXIF vides transformés en nombre (donc $if(%title%,...) toujours vrai) ;
- la valeur « Redémarrer » de l'action Énumération enregistrée avec une mauvaise valeur dans les batchs ;
- le « % » manquant dans le masque MP3 par défaut ;
- les renommages qui ne changent que la casse (a.txt vers A.TXT) fonctionnent sur les volumes insensibles à la casse ;
- l'aperçu des actions date / MP3 / EXIF après une autre action.
- tags ID3v2.2, 2.3 et 2.4 pour l'action MP3 (l'original ne lit que l'ID3v1) ;
- données IPTC et XMP (mots-clés, titre, note, label de couleur...) dans l'action EXIF, et un compteur %num% ;
- les fichiers associés (.xmp, .dop de DxO) suivent leur image quand elle est renommée, et l'annulation les remet ;
- le même numéro pour les paires JPG + RAW ;
- jokers dans le remplacement de chaîne ;
- un bouton « Seulement modifiés » pour ne contrôler, dans une grosse liste, que les fichiers dont le nom change ;
- tri naturel dans la liste des fichiers (file 2 avant file 10) ;
- modification d'une action du batch en place (double-clic) ;
- menu contextuel de l'Explorateur « Ajouter à Ant Renamer » ;
- chemins longs (plus de 260 caractères), UTF-8, écrans haute résolution, thème sombre ;
- fenêtre d'aide intégrée, sans navigateur externe.
En plus de la disposition classique, il existe une disposition moderne, en option (Options > Affichage) :
- une barre principale avec des onglets indiquant le nombre de fichiers et d'actions, et un bouton Go bien visible ;
- une barre par page, et la colonne du nouveau nom visible par défaut ;
- un mode « écran unique » : Fichiers, Actions et Journal visibles en même temps, en bandes ou en colonnes, avec des séparateurs déplaçables et des tailles mémorisées (une idée d'Antoine) ;
- le thème clair ou sombre du système.
Version portable pour tester
Un zip portable est disponible : décompressez-le où vous voulez et lancez-le, rien n'est installé. Pour garder les réglages dans le même dossier, placez un fichier antrenamer-qt.ini vide à côté du programme. C'est le moyen le plus simple de l'essayer sans toucher à votre installation actuelle d'Ant Renamer.
La version actuelle est une release candidate (3.0.0-rc.9). Elle est disponible pour les tests et vos retours sont les bienvenus avant la publication de la version 3.0.0.
Où la trouver et comment donner votre avis
Téléchargement et code source : https://github.com/morfredus/ant-renamer-qt
Le suivi et le développement d'Ant Renamer Qt sont indépendants de ceux du programme original et se déroulent sur GitHub. Pour toute question ou tout signalement concernant le portage, merci d'utiliser les espaces dédiés :
- Bugs : https://github.com/morfredus/ant-renamer-qt/issues
- Questions, idées et discussions : https://github.com/morfredus/ant-renamer-qt/discussions
Un grand merci à Antoine Potten pour Ant Renamer, pour la publication de ses sources et pour son accord : sans eux ce portage n'existerait pas.
Fred