Documentation
This document in english.
L’utilisation de ce logiciel vous soumet à nos Conditions d’Utilisation et à notre Politique de Protection des Données.
Introduction:
gDriveOOo fait partie d’une Suite d’extensions LibreOffice et/ou OpenOffice permettant de vous offrir des services inovants dans ces suites bureautique.
Cette extension vous permet de travailler sous LibreOffice sur vos fichiers présents sur votre téléphone (fichiers que vous avez téléchargés sur votre téléphone Android), même hors ligne.
Elle utilise l’API Google Drive pour synchroniser vos fichier Google Drive distant avec l’aide d’une base de données locale HsqlDB 2.7.2.
Cette extension est vu par LibreOffice comme un fournisseur de contenu (Content Provider) répondant à l’URL: vnd-google://*
.
Etant un logiciel libre je vous encourage:
Bref, à participer au developpement de cette extension.
Car c’est ensemble que nous pouvons rendre le Logiciel Libre plus intelligent.
Prérequis:
L’extension gDriveOOo utilise l’extension OAuth2OOo pour fonctionner.
Elle doit donc répondre aux prérequis de l’extension OAuth2OOo.
L’extension gDriveOOo utilise l’extension jdbcDriverOOo pour fonctionner.
Elle doit donc répondre aux prérequis de l’extension jdbcDriverOOo.
De plus, gDriveOOo nécessite que l’extension jdbcDriverOOo soit configurée pour fournir com.sun.star.sdb
comme niveau d’API, qui est la configuration par défaut.
Installation:
Il semble important que le fichier n’ait pas été renommé lors de son téléchargement.
Si nécessaire, renommez-le avant de l’installer.
-
Installer l’extension OAuth2OOo.oxt 
Vous devez d’abord installer cette extension, si elle n’est pas déjà installée.
-
Installer l’extension jdbcDriverOOo.oxt 
Vous devez installer cette extension, si elle n’est pas déjà installée.
-
Installer l’extension gDriveOOo.oxt 
Redémarrez LibreOffice après l’installation.
Attention, redémarrer LibreOffice peut ne pas suffire.
-
Sous Windows pour vous assurer que LibreOffice redémarre correctement, utilisez le Gestionnaire de tâche de Windows pour vérifier qu’aucun service LibreOffice n’est visible après l’arrêt de LibreOffice (et tuez-le si ç’est le cas).
-
Sous Linux ou macOS vous pouvez également vous assurer que LibreOffice redémarre correctement, en le lançant depuis un terminal avec la commande
soffice
et en utilisant la combinaison de touches Ctrl + C
si après l’arrêt de LibreOffice, le terminal n’est pas actif (pas d’invité de commande).
Utilisation:
Ouvrir votre Drive Google:
Dans: Fichier -> Ouvrir saisir dans la première liste déroulante:
- Pour une Url nommée: vnd-google://votre_compte@gmail.com
ou
- Pour une url non nommée (anonyme): vnd-google:///
Et validez non pas par le bouton Ouvrir mais par la touche Entrée.
Si vous ne donnez pas votre_compte@gmail.com, il vous sera demandé…
Les Urls anonymes vous permettent de rester anonyme (votre compte n’apparaît pas dans l’Url) tandis que les Urls nommées vous permettent d’accéder à plusieurs comptes simultanément.
Après avoir autorisé l’application OAuth2OOo à accéder à vos fichiers de votre Google Drive, votre Google Drive devrait s’ouvrir!!! normalement 
Afin de pouvoir conserver l’utilisation des fenêtres de dialogue système pour l’ouverture et l’enregistrement des fichiers dans LibreOffice, il est désormais possible de créer des menus personnalisés pour les commandes: Ouvrir distant et Enregistrer distant.
Dans l’onglet Menu de la fenêtre Outils -> Personnaliser, sélectionnez Macros dans Catégorie pour accéder aux deux macros: OpenRemote
et SaveRemote
sous: Mes macros -> gDriveOOo.
Il faudra d’abord ajouter la macro OpenRemote
à l’un des menus avec l’Étendue définie sur LibreOffice, puis il faudra ouvrir les applications (Writer, Calc, Draw…) éventuellement en ouvrant un nouveau document, et ajouter les macros OpenRemote
et SaveRemote
avec l’Étendue définie sur l’application à laquelle vous souhaitez ajouter les menus.
La macro OpenRemote
prend en charge tout type d’Étendue, tandis que la macro SaveRemote
ne doit être attribuée qu’aux étendues de type application car elle nécessite qu’un document soit déjà ouvert dans LibreOffice.
Cela ne doit être fait qu’une seule fois pour LibreOffice et chaque application, et malheureusement je n’ai encore rien trouvé de plus simple.
Normalement, l’extension est créée avec Eclipse pour Java et LOEclipse. Pour contourner Eclipse, j’ai modifié LOEclipse afin de permettre la création de l’extension avec Apache Ant.
Pour créer l’extension gDriveOOo avec l’aide d’Apache Ant, vous devez:
- Installer le SDK Java version 8 ou supérieure.
- Installer Apache Ant version 1.10.0 ou supérieure.
- Installer LibreOffice et son SDK version 7.x ou supérieure.
- Cloner le dépôt gDriveOOo sur GitHub dans un dossier.
- Depuis ce dossier, accédez au répertoire:
source/gDriveOOo/
- Dans ce répertoire, modifiez le fichier
build.properties
afin que les propriétés office.install.dir
et sdk.dir
pointent vers les dossiers d’installation de LibreOffice et de son SDK, respectivement.
- Lancez la création de l’archive avec la commande:
ant
- Vous trouverez l’archive générée dans le sous-dossier:
dist/
A été testé avec:
-
LibreOffice 7.3.7.2 - Lubuntu 22.04 - Python version 3.10.12
-
LibreOffice 7.5.4.2(x86) - Windows 10 - Python version 3.8.16 (sous Lubuntu 22.04 / VirtualBox 6.1.38)
-
LibreOffice 7.4.3.2(x64) - Windows 10(x64) - Python version 3.8.15 (sous Lubuntu 22.04 / VirtualBox 6.1.38)
-
LibreOffice 24.8.0.3 (X86_64) - Windows 10(x64) - Python version 3.9.19 (sous Lubuntu 22.04 / VirtualBox 6.1.38)
-
Ne fonctionne pas avec OpenOffice voir dysfonctionnement 128569. N’ayant aucune solution, je vous encourrage d’installer LibreOffice.
Je vous encourage en cas de problème 
de créer un dysfonctionnement
J’essaierai de le résoudre 
Historique:
Ce qui a été fait pour la version 0.0.5:
-
Intégration et utilisation de la nouvelle version de HsqlDB 2.5.1.
-
Ecriture d’une nouvelle interface Replicator, lancé en arrière-plan (python Thread) responsable de:
-
Effectuer les procédures nécessaires lors de la création d’un nouvel utilisateur (Pull initial).
-
Effectuer des pulls régulièrement (toutes les dix minutes) afin de synchroniser les modifications externes (Tirer toutes les modifications).
-
Répliquer à la demande toutes les modifications apportées à la base de données hsqldb 2.5.1 à l’aide du contrôle de version du système (Pousser toutes les modifications).
-
Ecriture d’une nouvelle interface DataBase, responsable de tous les appels à la base de données.
-
Mise en place d’un cache sur les identifiants, voir la méthode: _getUser(), autorisant l’accès à un Contenu (fichier ou dossier) sans accès à la base de données pour les appels ultérieurs.
-
Gestion des doublons des noms des fichiers / dossiers par Vues SQL: Child, Twin, Uri, et Title générant des noms uniques s’il existe des doublons.
Bien que cette fonctionnalité ne soit nécessaire que pour gDriveOOo, elle est implémentée globalement…
-
Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 0.0.6:
-
Utilisation du nouveau schéma: vnd-google:// comme revendiqué par draft-king-vnd-urlscheme-03.txt
- Aboutissement de la gestion des doublons des noms de fichiers / dossiers par des vues SQL dans HsqlDB:
- Une vue Twin regroupant tous les doublons par dossier parent et les ordonnant par date de création, date de modification.
- Une vue Uri générant des indexes uniques pour chaque doublon.
- Une vue Title générant des nom uniques pour chaque doublon.
- Une vue récursive Path pour générer un chemin unique pour chaque fichier/dossier.
-
Création d’un Provider capable de répondre aux deux types d’Urls supportées (nommées et anonymes).
Des expressions régulières (regex), déclarées dans le fichier de configuration de l’UCB, sont maintenant utilisées par OpenOffice/LibreOffice pour envoyer les Urls au ContentProvider approprié.
-
Utilisation de la nouvelle struct UNO DateTimeWithTimezone fournie par l’extension jdbcDriverOOo depuis sa version 0.0.4.
Bien que cette struct existe déjà dans LibreOffice, sa création était nécessaire afin de rester compatible avec OpenOffice (voir Demande d’amélioration 128560).
- Modification de l’interface Replicator, afin de permettre:
- De choisir l’ordre de synchronisation des données (locales d’abord puis distantes ensuite ou inversement).
- La synchronisation des modifications locales par des opérations atomiques effectuées dans l’ordre chronologique pour supporter pleinement le travail hors ligne.
Pour ce faire, trois procédures SQL GetPushItems, GetPushProperties et UpdatePushItems sont utilisées pour chaque utilisateur ayant accédé à ses fichiers / dossiers.
- Réécriture de la fenêtre des options accessible par : Outils -> Options -> Internet -> gDriveOOo afin de permettre :
- L’accès aux deux fichiers journaux concernant les activités de l’UCP et du réplicateur de données.
- Le choix de l’ordre de synchronisation.
- La modification de l’intervalle entre deux synchronisations.
- L’accès à la base de données HsqlDB 2.7.2 sous-jacente gérant vos métadonnées Google Drive.
-
La présence ou l’absence d’une barre oblique finale dans l’Url est maintenant prise en charge.
- Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 1.0.1:
-
Mise en place de la gestion des fichiers partagés.
-
Le nom du dossier partagé peut être défini avant toute connexion dans: Outils -> Options -> Internet -> gDriveOOo -> Gérer les documents partagés dans le dossier:
-
Beaucoup d’autres correctifs…
Ce qui a été fait pour la version 1.0.2:
Ce qui a été fait pour la version 1.0.3:
- Prise en charge de la version 1.2.0 de l’extension OAuth2OOo. Les versions précédentes ne fonctionneront pas avec l’extension OAuth2OOo 1.2.0 ou ultérieure.
Ce qui a été fait pour la version 1.0.4:
- Prise en charge de la version 1.2.1 de l’extension OAuth2OOo. Les versions précédentes ne fonctionneront pas avec l’extension OAuth2OOo 1.2.1 ou ultérieure.
Ce qui a été fait pour la version 1.0.5:
Ce qui a été fait pour la version 1.0.6:
- Prise en charge de la version 1.2.4 de l’extension OAuth2OOo. De nombreux problèmes résolus.
Ce qui a été fait pour la version 1.0.7:
- Maintenant utilisation du package Python dateutil pour convertir vers UNO DateTime.
Ce qui a été fait pour la version 1.1.0:
- Tous les paquets Python nécessaires à l’extension sont désormais enregistrés dans un fichier requirements.txt suivant la PEP 508.
- Désormais si vous n’êtes pas sous Windows alors les paquets Python nécessaires à l’extension peuvent être facilement installés avec la commande:
pip install requirements.txt
- Modification de la section Prérequis.
Ce qui a été fait pour la version 1.1.1:
- Correction d’une régression empêchant la création de nouveaux fichiers.
- Intégration d’un correctif pour contourner le dysfonctionnement #159988.
Ce qui a été fait pour la version 1.1.2:
- La création de la base de données, lors de la première connexion, utilise l’API UNO proposée par l’extension jdbcDriverOOo depuis la version 1.3.2. Cela permet d’enregistrer toutes les informations nécessaires à la création de la base de données dans 6 tables texte qui sont en fait 6 fichiers csv.
- Réécriture des vues SQL nécessaires à la gestion des doublons. Désormais, le chemin d’un dossier ou d’un fichier est calculé par une vue récursive qui prend en charge les doublons.
- Bien que l’extension prenne en charge la gestion des fichiers et dossiers en double, il n’est plus possible de les créer ou de les renommer.
- L’installation de l’extension désactivera l’option permettant de créer une copie de sauvegarde (ie: fichier .bak) dans LibreOffice. Si cette option est validée alors l’extension n’est plus capable d’enregistrer les fichiers.
- L’extension vous demandera d’installer les extensions OAuth2OOo et jdbcDriverOOo en version respectivement 1.3.4 et 1.3.2 minimum.
- De nombreuses corrections.
Ce qui a été fait pour la version 1.1.3:
Ce qui a été fait pour la version 1.1.4:
- Mise à jour du paquet Python setuptools vers la version 73.0.1.
- L’extension vous demandera d’installer les extensions OAuth2OOo et jdbcDriverOOo en version respectivement 1.3.7 et 1.4.5 minimum.
- Les modifications apportées aux options de l’extension, qui nécessitent un redémarrage de LibreOffice, entraîneront l’affichage d’un message.
- Support de LibreOffice version 24.8.x.
Ce qui a été fait pour la version 1.1.5:
- La désactivation de la réplication des données dans les options d’extension affichera un message explicite dans le journal du réplicateur.
- L’extension vous demandera d’installer les extensions OAuth2OOo et jdbcDriverOOo en version respectivement 1.3.8 et 1.4.6 minimum.
- Modification des options de l’extension accessibles via : Outils -> Options… -> Internet -> gDriveOOo afin de respecter la nouvelle charte graphique.
Ce qui a été fait pour la version 1.1.6:
- Afin de répondre à la demande du dysfonctionnement 16, la gestion du dossier Partagés avec moi a été implémentée.
- Préparation de l’extension à l’utilisation d’un périmètre de droits plus restreint et ne nécessitant pas la certification CASA tier 2 qui est désormais payante. Merci Google…
- Les modifications à distance du contenu des fichiers sont prises en compte par le réplicateur.
- Si nécessaire, il est possible de demander, dans les options de l’extension, une synchronisation initiale. Il est également possible de demander le téléchargement de tous les fichiers déjà visualisés qui ont une copie locale.
- Le réplicateur fournit une journalisation plus complète.
- Les dossiers partagés sont désormais reconnaissables à leur icône.
- De nombreuses corrections.
Ce qui a été fait pour la version 1.2.0:
- L’extension vous demandera d’installer les extensions OAuth2OOo et jdbcDriverOOo en version respectivement 1.4.0 et 1.4.6 minimum.
- Il est possible de construire l’archive de l’extension (ie: le fichier oxt) avec l’utilitaire Apache Ant et le fichier script build.xml.
- L’extension refusera de s’installer sous OpenOffice quelle que soit la version ou LibreOffice autre que 7.x ou supérieur.
- Ajout des fichiers binaires nécessaires aux bibliothèques Python pour fonctionner sous Linux et LibreOffice 24.8 (ie: Python 3.9).
- La possibilité de ne pas spécifier le nom du compte de l’utilisateur dans l’URL est à nouveau fonctionnelle.
Ce qui a été fait pour la version 1.2.1:
Ce qui a été fait pour la version 1.3.0:
- Mise à jour du paquet Python packaging vers la version 25.0.
- Rétrogradage du paquet Python setuptools vers la version 75.3.2, afin d’assurer la prise en charge de Python 3.8.
- Déploiement de l’enregistrement passif permettant une installation beaucoup plus rapide des extensions et de différencier les services UNO enregistrés de ceux fournis par une implémentation Java ou Python. Cet enregistrement passif est assuré par l’extension LOEclipse via les PR#152 et PR#157.
- Modification de LOEclipse pour prendre en charge le nouveau format de fichier
rdb
produit par l’utilitaire de compilation unoidl-write
. Les fichiers idl
ont été mis à jour pour prendre en charge les deux outils de compilation disponibles: idlc et unoidl-write.
- Il est désormais possible de créer le fichier oxt de l’extension gDriveOOo uniquement avec Apache Ant et une copie du dépôt GitHub. La section Comment créer l’extension a été ajoutée à la documentation.
- Implémentation de PEP 570 dans la journalisation pour prendre en charge les arguments multiples uniques.
- Pour garantir la création correcte de la base de données gDriveOOo, il sera vérifié que l’extension jdbcDriverOOo a
com.sun.star.sdb
comme niveau d’API.
- Ecriture de deux macros
OpenRemote
et SaveRemote
permettant de créer des menus personnalisés et de conserver la fenêtre de dialogue système pour l’ouverture et l’enregistrement de fichiers dans LibreOffice. Pour faciliter la création de ces menus personnalisés, la section Comment personnaliser les menus de LibreOffice a été ajoutée à la documentation.
- Nécessite l’extension jdbcDriverOOo en version 1.5.0 minimum.
- Nécessite l’extension OAuth2OOo en version 1.5.0 minimum.
Que reste-t-il à faire pour la version 1.3.0: