L'interface de IBugtraqProvider2

Dans TortoiseSVN 1.6 une nouvelle interface a été ajoutée, augmentant le potentiel des greffons. Cet interface IBugtraqProvider2 hérite de IBugtraqProvider.

HRESULT GetCommitMessage2 (
  // Fenêtre principale de l'interface utilisateur de votre FAI.
  [in] HWND hParentWnd,

  // Paramètres pour votre FAI.
  [in] BSTR parameters,
  // L'URL commune de livraison
  [in] BSTR commonURL,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Le texte déjà présent dans le message de livraison.
  // Votre FAI doit inclure ce texte dans le nouveau message,
  // où c'est approprié.
  [in] BSTR originalMessage,

  // Vous pouvez assigner des propriétés de révision personnalisées à la livraison
  // en configurant les deux prochains paramètres.
  // note: les deux tableaux doivent avoir la même longueur.
  //       Chaque propriété doit avoir une valeur!

  // Le contenu du champ bugID (si affiché)
  [in] BSTR bugID,

  // Le contenu modifié du champ bugID
  [out] BSTR * bugIDOut,

  // La liste des noms de propriété de révision.
  [out] SAFEARRAY(BSTR) * revPropNames,

  // La liste des valeurs de propriété de révision.
  [out] SAFEARRAY(BSTR) * revPropValues,

  // Le nouveau texte du message de livraison.
  // Ceci remplace le message original
  [out, retval] BSTR * newMessage
);

Cette méthode est appelée depuis la boîte de dialogue de livraison de TortoiseSVN lorsque l'utilisateur clique sur le bouton de plugin. Cette méthode est appelée à la place de GetCommitMessage(). Veuillez vous référer à la documentation de GetCommitMessage pour les paramètres utilisés.

Le paramètre commonURL est l'URL mère de tous les éléments sélectionnés pour faire apparaître la boîte de dialogue de livraison. Il s'agit essentiellement de l'URL du chemin commonRoot.

Le paramètre bugID correspond au contenu du champ bug-ID (s'il est montré, configuré avec la propriété bugtraq:message).

Le paramètre de retour bugIDOutliteral> est utilis

Les paramètres de retour revPropNames et revPropValues peuvent contenir des paires nom/valeur pour les propriétés de révision que la livraison devrait avoir. Un plugin doit faire en sorte que les deux tableaux ont la même taille en retour! Chaque nom de propriété dans revPropNames doit aussi avoir une valeur correspondante dans revPropValues. Si aucune des propriétés de révision ne sont à paramétrer, le plugin doit retourner des tableaux vides.

HRESULT CheckCommit (
  [in] HWND hParentWnd,
  [in] BSTR parameters,
  [in] BSTR commonURL,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,
  [in] BSTR commitMessage,
  [out, retval] BSTR * errorMessage
);

Cette méthode est appelée juste avant que la boîte de dialogue de livraison ne soit fermée et que la livraison ne commence. Un plugin peut utiliser cette méthode pour valider les fichiers/dossiers sélectionnés pour la livraison et/ou le message de livraison entré par l'utilisateur. Les paramètres sont les mêmes que pour GetCommitMessage2(), à la différence que commonURL est l'URL commune de tous les éléments cochés, et commonRoot le chemin racine de tous les éléments cochés.

Pour la boîte de dialogue de branche/tag, commonURL est l'URL source de la copie, et commonRoot est attribué à l'URL cible de la copie.

Le paramètre de retour errorMessage doit contenir soit un message d'erreur que TortoiseSVN montre à l'utilisateur soit être vide pour que la livraison débute. Si un message d'erreur est retourné, TortoiseSVN montre la chaîne d'erreur dans une boîte de dialogue et maintient la boîte de dialogue de livraison ouverte afin que l'utilisateur puisse corriger tout ce qui est mauvais. Un plugin doit donc retourner une chaîne d'erreur qui informe l'utilisateur de ce quiemphasis> est faux et comment le corriger.

HRESULT  OnCommitFinished (
  // Fen^tre principale pour n'importe quelle interface utilisateur (d'erreur) qui doit être affichée.
  [in] HWND hParentWnd,

  // La racine commune de tous les chemins qui ont été livrés.
  [in] BSTR commonRoot,

  // Tous les chemins qui ont été livrés.
  [in] SAFEARRAY(BSTR) pathList,


  // Le texte déjà présent dans le message de livraison.
  [in] BSTR logMessage,

  // La révision de la livraison.
  [in] ULONG revision,


  // Une erreur à montrer à l'utilisateur si cette fonction
  // renvoie autre chose que S_OK
  [out, retval] BSTR * error
);

Cette méthode est appelée après une livraison réussie. Un plugin peut utiliser cette méthode pour, par exemple, clore l'incident sélectionné ou ajouter des informations à l'incident au sujet de la livraison . Les paramètres sont les mêmes que pour GetCommitMessage2.

HRESULT HasOptions(
  // Si le fournisseur fournit des options
  [out, retval] VARIANT_BOOL *ret
);

Cette méthode est appelée à partir de la boîte de dialogue de configuration où l'utilisateur peut configurer les plugins. Si un plugin fournit sa propre boîte de dialogue de configuration avec ShowOptionsDialog, il doit retourner TRUE, sinon il doit retourner FALSE.

HRESULT ShowOptionsDialog(
  // Fenêtre principale pour la boîte de dialogue des options
  [in] HWND hParentWnd,

  // Paramètres pour votre FAI.
  [in] BSTR parameters,

  // La chaîne des paramètres
  [out, retval] BSTR * newparameters
);

Cette méthode est appelée à partir de la boîte de dialogue des paramètres lorsque l'utilisateur clique sur le bouton "Options " qui est affiché si HasOptions retourne TRUE. Un plugin peut afficher une boîte de dialogue d'options pour le rendre plus facile à configurer pour l'utilisateur.

La chaîne paramètres contient la chaîne de paramètres du plugin qui est déjà configuré/entré.

Le paramètre de retour newparameters doit contenir la chaîne des paramètres que le greffon a construit à partir des informations recueillies dans sa boîte de dialogue Options. Cette chaîne paramameters est passée à toutes les autres méthodes IBugtraqProvider et IBugtraqProvider2.