![]() |
TiPhotoLocator 2.2
A tiny application to easily geotag your photos
|
The PhotoModel class manages a list of photo data. Plus de détails...
#include <PhotoModel.h>
Types publics | |
| enum | Roles { FilenameRole = Qt::UserRole , ImageUrlRole , LatitudeRole , LongitudeRole , HasGPSRole , IsCurrentRole , IsSelectedRole , IsMarkerRole , InsideCircleRole , IsOnTrackRole , OnTrackLatitudeRole , OnTrackLongitudeRole , ToBeSavedRole , DateTimeOriginalRole , CamModelRole , MakeRole , ImageWidthRole , ImageHeightRole , OrientationRole , ShutterSpeedRole , FNumberRole , CreatorRole , CityRole , CountryRole , LocationRole , DescriptionRole , CaptionWriterRole , SoftwareRole , MetadataRole , KeywordsRole , WriteErrorRole } |
| The Roles enum lists the roles associated to each attribute of a Photo. Plus de détails... | |
Connecteurs publics | |
| void | append (const QString &filename, const QString &url) |
| Adds a Photo to the model, with just a name and a path (url). Other data should be filled later, from exif metadata. | |
| void | appendSavedPosition () |
| Ajoute une entrée spéciale dans le Modèle, correspondant à une position GPS mémorisée (marker jaune). Ses coordonnées GPS sont celles de la photo sélectionnée. | |
| void | setWriteError (QModelIndex idx, const QString &message) |
| Enregistre un message d'erreur d'écriture ExifTool pour une photo. Si message est vide, l'erreur précédente est effacée (écriture réussie). Si message est non-vide, émet writeErrorOccurred pour la snackbar QML. | |
| void | fetchExifMetadata (int row=-1) |
| Ce slot lit des données EXIF d'une (ou de toutes les) photos du répertoire, en utilisant la tache asynchrone ExifReadTask. A la fin de chaque lecture, la tache appelle setData(). | |
| void | readTaskFinished () |
| Appelé par chaque ExifReadTask à la fin de son exécution. Décrémente le compteur et arrête le BusyIndicator quand toutes les tâches sont terminées. | |
| void | saveMetadata () |
| Ce slot écrit dans les fichiers JPG (de façon asynchrone) les metadonnées IPTC des photos qui ont été modifiées. Ce slot est connecté au signal QML saveMetadata émis par ToolBarBottom. | |
| void | setData (int row, const QString &value, const QString &property) |
| Ce slot ajoute ou modifie une propriété d'une Photo, par exemple quand on clique sur une suggestion. | |
| void | setInCircleItemCoords (const double latitude, const double longitude) |
| Ce slot affecte les même coordonnées GPS fournies à toutes les photos géographiquement situées à l'interieur du cercle rouge. | |
| void | setPhotoProperty (const int photo, const QString &value, const QString &property) |
| Ce slot affecte le role fourni à toutes les photos demandées. | |
| void | applyCreatorToAll () |
| Applique le "photographe" à toutes les photos du modèle. | |
| void | applyCreatorToSelection () |
| Applique le "photographe" aux photos sélectionnées du modèle. | |
| void | removeSavedPosition () |
| Supprime du modèle l'item correspondant à la position sauvegardée. | |
| void | duplicateData (int row) |
| Duplicates an item of the model, and add it at the end of the vector. | |
| void | removeData (int row) |
| Fonction typique qui supprime l'item désigné du modèle. | |
Signaux | |
| void | sendSuggestion (QString text, QString target, QString category, int row) |
| Ce signal envoie une Suggestion au SuggestionModel. | |
| void | writeProgressChanged () |
| Ce signal est émis chaque fois qu'une nouvelle donnée Exif est écrite dans un JPG. | |
| void | currentItemRowChanged (const int row) |
| Signal émis quand la Photo courante change. | |
| void | currentItemCoordsChanged () |
| Signal émis quand les coordonnées GPS de la Photo courante changent. | |
| void | currentItemHasGPSChanged () |
| Signal émis quand le flag hasGPS de la photo courante change. | |
| void | dataCleared () |
| Signal émis quand le modèle a été vidé. | |
| void | dataSaved () |
| Signal émis quand les données ont été enregistrées sur le disque. | |
| void | firstCoordsReady () |
| Signal émis quand les coordonnées GPS de la première photo sont disponibles. | |
| void | savedPositionExistsChanged () |
| void | writeErrorOccurred (const QString &filename, const QString &message) |
| Signal émis quand ExifTool échoue à écrire une photo. //!< Signal émis quand une SavedPosition est créée ou supprimée. | |
| void | loadingChanged () |
| Signal émis quand le status loading change. | |
| void | selectionCountChanged () |
| Signal émis quand le nombre de photos sélectionnées change. | |
| void | trackCountChanged () |
| Signal émis quand le nombre de photos on-track change. | |
| void | trackDeactivated () |
| Signal émis quand l'utilisateur clique une photo hors-track alors qu'une track était active. | |
| void | countChanged () |
| Signal émis quand le nombre total de photos change. | |
Fonctions membres publiques | |
| PhotoModel (QObject *parent=nullptr) | |
| Constructor. Just add the welcome item in the list. If the debug mode is active, a second item is added for testing purpose. | |
| int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
| Returns the number of items in the model. | |
| QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const override |
| Returns the role value of an element of the model. | |
| Qt::ItemFlags | flags (const QModelIndex &index) const override |
| Retourne les flags Qt d'un élément (éditable, activé, sélectionnable). | |
| QHash< int, QByteArray > | roleNames () const override |
| Table of Role names. C'est la correspondance entre le role C++ et le nom de la property dans QML. | |
| Q_INVOKABLE QString | getRoleName (int role) |
| Retourne le nom du role dans le modèle. | |
| Q_INVOKABLE QVariant | getUrl (int row) |
| Returns the full name of the photo. This is an example of unitary getter method. | |
| Q_INVOKABLE QVariantMap | get (int row) |
| La méthode get() (invocable par QML) renvoie les données de la photo demandée. Usage dans QML: titre = myModel.get(1).title; | |
| Q_INVOKABLE void | addToSelection (int row, bool unselectAllOther=false, bool keepOnTrack=false) |
| Cette méthode (invocable par QML) ajoute la photo désignée aux photos sélectionnées. | |
| Q_INVOKABLE void | removeFromSelection (int row) |
| Cette méthode enlève la photo désignée des photos sélectionnées. | |
| Q_INVOKABLE void | resetSelection () |
| Enleve le flag "isSelected" à toutes les photos. | |
| Q_INVOKABLE void | resetCircle () |
| Enleve le flag "insideCircle" à toutes les photos. | |
| Q_INVOKABLE void | resetOnTrack () |
| Efface le flag isOnTrack sur toutes les photos du modèle. | |
| Q_INVOKABLE void | selectUnlocalized () |
| Ajoute le flag "isSelected" à toutes les photos qui n'ont pas de coordonnées GPS. | |
| Q_INVOKABLE void | selectUndated () |
| Ajoute le flag "isSelected" à toutes les photos qui n'ont pas de date. | |
| Q_INVOKABLE void | selectAll () |
| Ajoute le flag "isSelected" à toutes les photos. | |
| Q_INVOKABLE void | selectOnTrack () |
| Sélectionne toutes les photos flagguées isOnTrack et désélectionne les autres. | |
| Q_INVOKABLE int | nextOnTrackRow (int currentRow) const |
| Retourne le row de la prochaine photo isOnTrack après currentRow (avec wrap-around). | |
| Q_INVOKABLE int | previousOnTrackRow (int currentRow) const |
| Retourne le row de la photo précédente isOnTrack avant currentRow (avec wrap-around). | |
| Q_INVOKABLE void | applyTrackPointCoordsToAll () |
| Applique les coordonnées interpolées de la track à toutes les photos isOnTrack. | |
| Q_INVOKABLE void | findInCirclePhotos (int circle_radius=-1) |
| Parcourt toutes les Photo du modèle, et flague celles qui sont à l'interieur du cercle demandé. Fonction avec mécanisme de Mutuelle Exclusion (MUTEX). | |
| Q_INVOKABLE void | selectionCount () |
| Q_INVOKABLE void | removePhotoKeyword (const QString &keyword) |
| Enlève un des mots-clef descriptif de la photo. | |
| Q_INVOKABLE void | replaceKeywordForCurrent (const QString &keyword, int index) |
| Remplace un keyword (mots-clef descriptif) par un autre dans la photo courante. | |
| Q_INVOKABLE void | replaceKeywordForSelection (const QString &oldKeyword, const QString &newKeyword) |
| Remplace un keyword par un autre dans toutes les photos sélectionnées. Recherche par valeur (pas par index) pour gérer les listes de longueurs différentes. | |
| Q_INVOKABLE void | addKeywordToAll (const QString &keyword) |
| Ajoute un mot-clef à toutes les photos qui ne le possèdent pas déjà. | |
| Q_INVOKABLE void | addKeywordToSelection (const QString &keyword) |
| Ajoute un mot-clef aux photos sélectionnées qui ne le possèdent pas déjà. | |
| Q_INVOKABLE void | suggestFromSelection () |
| Cherche des suggestions de keywords, country, city, location pour la photo courante, en allant regarder dans les tags des autres photos de la selection. | |
| Q_INVOKABLE void | suggestFromPhoto (const int row) |
| Envoie des suggestions de keywords, country, city, location pour la photo courante, en allant regarder dans les tags de la photo fournie. | |
| Q_INVOKABLE int | scanFolder (const QString &folderUrl) |
| Scanne un dossier directement via QDir (fallback pour les chemins UNC que FolderListModel ne supporte pas). | |
| Q_INVOKABLE void | setSelectedItemsCoords (QGeoCoordinate coords) |
| Affecte les coordonnées GPS fournies à toutes les photos sélectionnées. | |
| Q_INVOKABLE void | setSavedPositionCoords (double latitude, double longitude) |
| Ajoute une entrée spéciale dans le modèle avec des coordonnées GPS explicites (marker jaune). Utilisé par l'identification IA pour sauvegarder la position du lieu reconnu. | |
| Q_INVOKABLE void | applyTrackPointCoords () |
| Applique les coords. | |
| Q_INVOKABLE void | dumpData () |
| Debug function that print (in the console) one line of the model at every call. | |
| Q_INVOKABLE void | clear () |
| Deletes all the items of the Model. | |
| void | append (const QVariantMap &data) |
| Adds a Photo item to the model, from a list of metadata. | |
| bool | setData (const QModelIndex &index, const QVariant &value, int role) override |
| Surcharge qui permet de modifier unitairement un Role d'un item du modèle. | |
| void | setOnTrack (int row, double lat, double lon) |
| Marque la photo comme étant sur le track GPX et stocke ses coordonnées interpolées. | |
| void | setData (const QVariantMap &value_list) |
| Cette méthode permet de modifier plusieurs roles d'un item du modèle, avec comme clef le role FilenameRole. Elle est appelée lors de la lecture (ou relecture) globale des tags Exif des photos originales. | |
| void | selectFirstPhoto () |
| Active la première photo de la liste (preview de l'image et pinpoint géographique). Cette méthode est appelée une fois que l'on a lu les données Exif de la première photo de la liste. | |
| void | setWriteProgress (const int total=0) |
| PhotoModel::setWriteProgress. | |
| int | getCount () const |
Attributs publics | |
| QModelIndex | m_markerIndex = QModelIndex() |
| Index du marker SavedPosition. Initialisé à une valeur invalide. | |
Attributs protégés | |
| int | m_markerRow = -1 |
| Position du marker SavedPosition. | |
Propriétés | |
| int | currentItemRow |
| currentItemRow is the Photo row in the model corresponding to the current photo in the ListView. | |
| QGeoCoordinate | currentItemCoords |
| currentItemCoords is the GPS coordinates of the current Photo. | |
| bool | currentItemHasGPS |
| currentItemHasGPS indicate if the current Photo has GPS coordinates. | |
| bool | savedPositionExists |
| Indique si un SavedPosition existe dans le modèle. | |
| bool | loading |
| Indique si le modele est en train de lire les données Exif. | |
| qreal | writeProgress |
| Indique si le modele est en train d'écrire les données Exif. | |
| int | selectionCount |
| Le nombre de photos dans la sélection. | |
| int | onTrackCount |
| Le nombre de photos matchant le track GPX courant. | |
| int | count |
| Le nombre total de photos dans le modèle. | |
Fonctions membres privées | |
| void | addTestItem () |
| Adds a test item to the PhotoModel. (only if DebugMode is enabled in the Registry) | |
| void | setLoading (const bool state) |
| Positionne le flag "loading" qui indique que le modèle est en train de se remplir avec les données EXIF. | |
| void | currentItemRow (const int row) |
| Mémorise la photo indiquée comme étant la photo courante de la ListView. | |
| void | currentItemCoords (const QGeoCoordinate coords) |
| Mémorise les coordonnées dans la photo sélectionnée. | |
| int | getCurrentItemRow () |
| Returns the last selected row. | |
| int | getOnTrackCount () const |
| bool | getCurrentItemHasGPS () |
| Returns if the selected photo has GPS coordinates. | |
| QGeoCoordinate | getCurrentItemCoords () |
| Returns the GPS Coords of the selected row. | |
| bool | belong (double pLa, double pLo, double oLa, double oLo, double rLa, double rLo) |
| Indique si le point P de coordonnées (pX, pY) appartient au cercle de centre O (oX, oY) et de rayon R. | |
Attributs privés | |
| QVector< Photo > | m_photos |
| La liste des Photo du modèle. | |
| int | m_lastCurrentRow = 0 |
| L'indice de la précédente photo sélectionnée. (initialisé à 0 car au départ, on a un item: le Welcome Rolleyflex) | |
| int | m_dumpedRow = 0 |
| Compteur pour le dump de debug. | |
| int | m_lastCircleRadius = 0 |
| Valeur précédente du rayon de recherche. | |
| double | m_lastCircleLat = -1000.0 |
| Latitude du dernier centre de cercle calculé (-1000 = jamais calculé) | |
| double | m_lastCircleLong = -1000.0 |
| Longitude du dernier centre de cercle calculé | |
| bool | m_circleResetted = true |
| True si le rayon du cercle est à 0, et que le flag insideCircle a été resetté sur toutes les photos. | |
| bool | m_savedPositionExists = false |
| True si le marker SavedPosition existe. | |
| bool | m_loading = false |
| True si le modèle est en train de scanner le répertoire. | |
| int | m_pendingReadTasks = 0 |
| Nombre de ExifReadTask encore en cours d'exécution. | |
| qreal | m_writeProgress = 0 |
| Progression de l'écriture des données Exif dans les JPG. Varie de 0 à 1. | |
| int | m_totalWrite = 1 |
| Nombre de fichiers JPEG à modifier avec de nouvelles metadata. | |
| int | m_countWrite = 0 |
| Nombre de fichiers JPEG modifiés avec de nouvelles metadata. | |
| int | m_selectionCount = 0 |
| Nombre de photos dans la sélection. | |
| int | m_onTrackCount = 0 |
| Nombre de photos matchant le track GPX courant. | |
The PhotoModel class manages a list of photo data.
| enum PhotoModel::Roles |
|
explicit |
Constructor. Just add the welcome item in the list. If the debug mode is active, a second item is added for testing purpose.
| parent | : paramètre classique pour les QAbstractListModel. |
| void PhotoModel::addKeywordToAll | ( | const QString & | keyword | ) |
Ajoute un mot-clef à toutes les photos qui ne le possèdent pas déjà.
| keyword | : le mot-clef à ajouter. |
| void PhotoModel::addKeywordToSelection | ( | const QString & | keyword | ) |
Ajoute un mot-clef aux photos sélectionnées qui ne le possèdent pas déjà.
| keyword | : le mot-clef à ajouter. |
|
private |
Adds a test item to the PhotoModel. (only if DebugMode is enabled in the Registry)
| void PhotoModel::addToSelection | ( | int | row, |
| bool | unselectAllOther = false, | ||
| bool | keepOnTrack = false ) |
Cette méthode (invocable par QML) ajoute la photo désignée aux photos sélectionnées.
| row | : indice de la photo dans la listView |
| unselectAllOther | : if True, all other photos are unselected. |
| keepOnTrack | : if True, all other photos are unselected except photo on the Track (that stay selected). |
|
slot |
Adds a Photo to the model, with just a name and a path (url). Other data should be filled later, from exif metadata.
| filename | : filename of the photo |
| url | : full path of the photo (in Qt format) |
| void PhotoModel::append | ( | const QVariantMap & | data | ) |
Adds a Photo item to the model, from a list of metadata.
| data | : a 'key-value' dictionnary of metadata. |
|
slot |
Ajoute une entrée spéciale dans le Modèle, correspondant à une position GPS mémorisée (marker jaune). Ses coordonnées GPS sont celles de la photo sélectionnée.
|
slot |
Applique le "photographe" à toutes les photos du modèle.
Le nom du photographe est configuré dans les Settings.
|
slot |
Applique le "photographe" aux photos sélectionnées du modèle.
Le nom du photographe est configuré dans les Settings.
| void PhotoModel::applyTrackPointCoords | ( | ) |
Applique les coords.
| void PhotoModel::applyTrackPointCoordsToAll | ( | ) |
Applique les coordonnées interpolées de la track à toutes les photos isOnTrack.
|
private |
Indique si le point P de coordonnées (pX, pY) appartient au cercle de centre O (oX, oY) et de rayon R.
| pLa | : Latitude du point à tester. |
| pLo | : Longitude du point à tester. |
| oLa | : Latitude de l'origine du cercle. |
| oLo | : Longitude de l'origine du cercle. |
| rLa | : le rayon du cercle sur l'axe des Latitudes N-S(en degrés). |
| rLo | : le rayon du cercle sur l'axe des Longitudes E-W (en degrés). |
| void PhotoModel::clear | ( | ) |
Deletes all the items of the Model.
On utilise cette fonction quand on scanne un nouveau répertoire de photos.
|
private |
Mémorise les coordonnées dans la photo sélectionnée.
| coords | : Coordonnées GPS à appliquer. |
|
private |
Mémorise la photo indiquée comme étant la photo courante de la ListView.
Met le flag isCurrent du précédent item à False et le nouveau à True. On fait aussi le traitement si le numéro de row est le même, car il s'agit peut-être d'une autre liste de photos.
| row | : l'indice de l'item courant de la ListView. |
|
override |
Returns the role value of an element of the model.
| index | : index of the element of the model. |
| role | : the requested role (enum). |
| void PhotoModel::dumpData | ( | ) |
Debug function that print (in the console) one line of the model at every call.
|
slot |
Duplicates an item of the model, and add it at the end of the vector.
| row | : item row to be duplicated. |
|
slot |
Ce slot lit des données EXIF d'une (ou de toutes les) photos du répertoire, en utilisant la tache asynchrone ExifReadTask. A la fin de chaque lecture, la tache appelle setData().
| photo | : l'indice de la photo (vide ou -1 = toutes les photos du répertoire) |
| void PhotoModel::findInCirclePhotos | ( | int | circle_radius = -1 | ) |
Parcourt toutes les Photo du modèle, et flague celles qui sont à l'interieur du cercle demandé. Fonction avec mécanisme de Mutuelle Exclusion (MUTEX).
| circle_radius | Le rayon du cercle (en mètres). Si circle_radius vaut 0, alors on enleve les pictos "circle". Si circle_radius vaut -1, (default value) alors on réutilise la dernière valeur de rayon reçue. |
On utilise les conversions: 1°lat = 111km et 1°long = 111km x cos(lat).
|
override |
Retourne les flags Qt d'un élément (éditable, activé, sélectionnable).
| index | : index de l'élément dans le modèle. |
| QVariantMap PhotoModel::get | ( | int | row | ) |
La méthode get() (invocable par QML) renvoie les données de la photo demandée. Usage dans QML: titre = myModel.get(1).title;
| row | : indice. |
|
private |
Returns the GPS Coords of the selected row.
|
private |
Returns if the selected photo has GPS coordinates.
|
private |
Returns the last selected row.
| QString PhotoModel::getRoleName | ( | int | role | ) |
Retourne le nom du role dans le modèle.
| role | la valeur numérique du role. |
| QVariant PhotoModel::getUrl | ( | int | row | ) |
Returns the full name of the photo. This is an example of unitary getter method.
| row | : Indice de l'élément à lire. |
| int PhotoModel::nextOnTrackRow | ( | int | currentRow | ) | const |
Retourne le row de la prochaine photo isOnTrack après currentRow (avec wrap-around).
| currentRow | : row de départ dans m_photos (exclu de la recherche). |
| int PhotoModel::previousOnTrackRow | ( | int | currentRow | ) | const |
Retourne le row de la photo précédente isOnTrack avant currentRow (avec wrap-around).
| currentRow | : row de départ dans m_photos (exclu de la recherche). |
|
slot |
Appelé par chaque ExifReadTask à la fin de son exécution. Décrémente le compteur et arrête le BusyIndicator quand toutes les tâches sont terminées.
|
slot |
Fonction typique qui supprime l'item désigné du modèle.
| row | : la position dans le vecteur de l'item à supprimer. |
| void PhotoModel::removeFromSelection | ( | int | row | ) |
Cette méthode enlève la photo désignée des photos sélectionnées.
| row | : indice de la photo dans la listView |
| void PhotoModel::removePhotoKeyword | ( | const QString & | keyword | ) |
Enlève un des mots-clef descriptif de la photo.
| keyword | : le mot-clef à retirer de la liste. |
|
slot |
Supprime du modèle l'item correspondant à la position sauvegardée.
L'item SavedPosition, de type isMarker est supprimé du modèle.
| void PhotoModel::replaceKeywordForCurrent | ( | const QString & | keyword, |
| int | index ) |
Remplace un keyword (mots-clef descriptif) par un autre dans la photo courante.
| keyword | : la nouvelle valeur du mot-clef. |
| index | : la position du mot-clef dans la liste. |
| void PhotoModel::replaceKeywordForSelection | ( | const QString & | oldKeyword, |
| const QString & | newKeyword ) |
Remplace un keyword par un autre dans toutes les photos sélectionnées. Recherche par valeur (pas par index) pour gérer les listes de longueurs différentes.
| oldKeyword | : le mot-clef à remplacer. |
| newKeyword | : le nouveau mot-clef. |
| void PhotoModel::resetCircle | ( | ) |
Enleve le flag "insideCircle" à toutes les photos.
| void PhotoModel::resetOnTrack | ( | ) |
Efface le flag isOnTrack sur toutes les photos du modèle.
| void PhotoModel::resetSelection | ( | ) |
Enleve le flag "isSelected" à toutes les photos.
|
override |
Table of Role names. C'est la correspondance entre le role C++ et le nom de la property dans QML.
|
override |
Returns the number of items in the model.
| parent | : parent of the model. |
|
slot |
Ce slot écrit dans les fichiers JPG (de façon asynchrone) les metadonnées IPTC des photos qui ont été modifiées. Ce slot est connecté au signal QML saveMetadata émis par ToolBarBottom.
| int PhotoModel::scanFolder | ( | const QString & | folderUrl | ) |
Scanne un dossier directement via QDir (fallback pour les chemins UNC que FolderListModel ne supporte pas).
| folderUrl | URL du dossier (format "file:////serveur/chemin" ou "file:///C:/chemin") |
| void PhotoModel::selectAll | ( | ) |
Ajoute le flag "isSelected" à toutes les photos.
| void PhotoModel::selectFirstPhoto | ( | ) |
Active la première photo de la liste (preview de l'image et pinpoint géographique). Cette méthode est appelée une fois que l'on a lu les données Exif de la première photo de la liste.
| void PhotoModel::selectOnTrack | ( | ) |
Sélectionne toutes les photos flagguées isOnTrack et désélectionne les autres.
| void PhotoModel::selectUndated | ( | ) |
Ajoute le flag "isSelected" à toutes les photos qui n'ont pas de date.
| void PhotoModel::selectUnlocalized | ( | ) |
Ajoute le flag "isSelected" à toutes les photos qui n'ont pas de coordonnées GPS.
|
override |
Surcharge qui permet de modifier unitairement un Role d'un item du modèle.
Cette fonction met aussi à True le flag To Be Saved quand il s'agit d'une action opérateur. Cette fonction est appelée quand on clique sur un Chips, pour modifier une des propriétés de la Photo. Certains roles ne sont pas modifiables: imageUrl, isCurrent, hasGPS, filename, shutterSpeed, F-number, etc.
| index | : l'index (au sens QModelIndex) de l'item à modifier. |
| value | : la nouvelle valeur. |
| role | : le Role à modifier (LatitudeRole, LongitudeRole, ToBeSavedRole, city, country). |
| void PhotoModel::setData | ( | const QVariantMap & | value_list | ) |
Cette méthode permet de modifier plusieurs roles d'un item du modèle, avec comme clef le role FilenameRole. Elle est appelée lors de la lecture (ou relecture) globale des tags Exif des photos originales.
Roles non modifiables (ignorés): imageUrl, insideCircle.
Roles non modifiables (recalculés): hasGPS, toBeSaved.
| value_list | : la liste des données à modifier. Attention: les keys sont les noms des balises EXIF. FileName est obligatoire. |
|
slot |
Ce slot ajoute ou modifie une propriété d'une Photo, par exemple quand on clique sur une suggestion.
| row | : indice de la photo. |
| value | : valeur de la propriété. |
| property | : nom de la propriété. |
|
slot |
Ce slot affecte les même coordonnées GPS fournies à toutes les photos géographiquement situées à l'interieur du cercle rouge.
| latitude | : Latitude GPS à affecter aux photos |
| longitude | : Longitude GPS à affecter aux photos |
|
private |
Positionne le flag "loading" qui indique que le modèle est en train de se remplir avec les données EXIF.
| state | True pour indiquer que la lecture est en cours. |
| void PhotoModel::setOnTrack | ( | int | row, |
| double | lat, | ||
| double | lon ) |
Marque la photo comme étant sur le track GPX et stocke ses coordonnées interpolées.
| row | : indice de la photo. |
| lat | : latitude GPS interpolée depuis le track GPX, en degrés décimaux. |
| lon | : longitude GPS interpolée depuis le track GPX, en degrés décimaux. |
|
slot |
Ce slot affecte le role fourni à toutes les photos demandées.
| photo | : l'indice de la Photo à modifier. Voir la note pour les valeurs particulières. |
| value | : la valeur de la property. |
| property | : le nom de la property (correspondant à un Role). |
| void PhotoModel::setSavedPositionCoords | ( | double | latitude, |
| double | longitude ) |
Ajoute une entrée spéciale dans le modèle avec des coordonnées GPS explicites (marker jaune). Utilisé par l'identification IA pour sauvegarder la position du lieu reconnu.
| latitude | : latitude en degrés décimaux (WGS84). |
| longitude | : longitude en degrés décimaux (WGS84). |
| void PhotoModel::setSelectedItemsCoords | ( | QGeoCoordinate | coords | ) |
Affecte les coordonnées GPS fournies à toutes les photos sélectionnées.
| coords | des coordonnées GPS. Il faut distinguer le cas des photos sélectionées manuellement, et les photos sélectionées parce qu'elles sont dans le cercle. A priori, on ne veut pas modifier les photos du cercle. Solution A: si Rayon>0 ; on modifie uniquement la photo courante (easiest). Solution B: On teste si la photo est dans le cercle avant de la modifier ou pas. |
|
slot |
Enregistre un message d'erreur d'écriture ExifTool pour une photo. Si message est vide, l'erreur précédente est effacée (écriture réussie). Si message est non-vide, émet writeErrorOccurred pour la snackbar QML.
| idx | : index de la photo dans le modèle. |
| message | : message d'erreur retourné par ExifTool, ou chaîne vide en cas de succès. |
| void PhotoModel::setWriteProgress | ( | const int | total = 0 | ) |
| total | : Nombre de photos dont on veut écrire les exifs. Si 0 ou non fourni, alors c'est que l'on vient de faire une écriture. |
| void PhotoModel::suggestFromPhoto | ( | const int | row | ) |
Envoie des suggestions de keywords, country, city, location pour la photo courante, en allant regarder dans les tags de la photo fournie.
| row | : indice de la photo source dans m_photos dont on extrait les tags. |
| void PhotoModel::suggestFromSelection | ( | ) |
Cherche des suggestions de keywords, country, city, location pour la photo courante, en allant regarder dans les tags des autres photos de la selection.
| void PhotoModel::selectionCount |
Le nombre de photos dans la sélection.
Compte le nombre de photos sélectionnées.