Manuals

A interface IBugtraqProvider2

No TortoiseSVN 1.6 foi adicionada uma nova interface que providência mais funcionalidades aos plugins. Esta interface IBugtraqProvider2 herda da IBugtraqProvider.

HRESULT GetCommitMessage2 (
  // Janela pai para o UI do teu fornecedor.
  [in] HWND hParentWnd,

  // Parametros do teu fornecedor.
  [in] BSTR parameters,
  // O URL comum da submissão
  [in] BSTR commonURL,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // O Texto já presente na tua mensagem de submissão.
  // O teu fornecedor deverá incluir este texto na nova mensagem,
  // quando apropriado.
  [in] BSTR originalMessage,

  //Tu podes atribuir a uma submissão propriedades de revisão personalisadas
  // através da configuração dos dois próximos parâmetros.
  // nota: Ambos os safearrays deverão ser do mesmo comprimento.
  //       Para cada nome de propriedade deverá existir um valor de propriedade!

  // O conteúdo do campo bugID (se mostrado)
  [in] BSTR bugID,

  // Conteúdo modificado do campo bugID
  [out] BSTR * bugIDOut,

  // A lista de nomes das propriedades de revisão.
  [out] SAFEARRAY(BSTR) * revPropNames,

  // A lista de valores de propriedades de revisão.
  [out] SAFEARRAY(BSTR) * revPropValues,

  // O novo texto para a mensagem de submissão.
  // Isto substitui a mensagem original
  [out, retval] BSTR * newMessage
);

Este método é chamado a partir da caixa de diálogo submeter do TortoiseSVN, quando o utilizador clica no botão do plugin. Este método é chamado em vez do GetCommitMessage(). Consultar, por favor, a documentação do GetCommitMessage para informação sobre os parâmetros que também são usados aqui.

O parâmetro commonURL representa o URL pai de todos os itens seleccionados para serem mostrados na caixa de diálogo submeter. Isto é basicamente o URL do caminho commonRoot.

O parâmetro bugID contém o conteúdo do campo bug-ID ( se for mostrado, configurado com a propriedade bugtraq:message).

O parâmetro de retorno bugIDOut é usado para preencher o campo bug-ID, quando o método retorna.

Os parâmetros de retorno revPropNames e revPropValues podem conter pares nome/valor de propriedades de revisão que a submissão deverá usar. Um plugin deverá ter a certeza que ambos os arrays têm o mesmo tamanho, ao retornar! Cada nome de propriedade no revPropNames deverá ter também o correspondente valor no revPropValues. Se não forem configuradas nenhumas propriedades de revisão, o plugin deverá retornar arrays vazios.

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
);

Este método é chamado, mesmo antes de ser fechada a caixa de diálogo submeter, e a submissão começar. O plugin pode usar este método para validar os ficheiros/pastas seleccionados para a submissão e/ou a mensagem de submissão introduzida pelo utilizador. Os parâmetros são os mesmos do GetCommitMessage2(), com a diferença que o commonURL é agora o URL comum de todos os itens verificados, e o commonRoot o caminho raiz de todos os itens verificados.

Para a caixa de diálogo ramo/etiqueta, o commonURL é o URL fonte da cópia, e o commonRoot é configurado para o URL destino da cópia.

O parâmetro de retorno errorMessage deverá conter uma mensagem de erro, que o TortoiseSVN mostra ao utilizador, ou então ser vazio para começar a submissão. Se for retornada uma mensagem de erro, o TortoiseSVN mostra a mensagem numa caixa de diálogo e mantém a caixa de diálogo submeter aberta, para que o utilizador possa corrigir o que quer que esteja errado. Um plugin deverá por isso retornar uma string que informe o utilizador do que está errado e como o corrigir.

HRESULT  OnCommitFinished (
  // Janela pai para qualquer (erro) UI que precisa de ser mostrado.
  [in] HWND hParentWnd,

  // A raiz comum para todos os caminhos que foram submetidos.
  [in] BSTR commonRoot,

  // Todos os caminhos que foram submetidos.
  [in] SAFEARRAY(BSTR) pathList,


  // O texto já presente na mensagem de submissão.
  [in] BSTR logMessage,

  // A revisão da submissão.
  [in] ULONG revision,


  // Um erro a mostrar ao utilizador se esta função
  // retorna algo para além de S_OK
  [out, retval] BSTR * error
);

Este método é chamado após uma submissão com sucesso. Um plugin pode usar este método para, e.g. fechar o problema seleccionado ou adicionar-lhe informação sobre a submissão. Os parâmetros são os mesmos do GetCommitMessage2.

HRESULT HasOptions(
  // Para quando o fornecedor providenciar opções
  [out, retval] VARIANT_BOOL *ret
);

Este método é chamado a partir da caixa de diálogo preferências, onde o utilizador pode configurar os plugins. Se um plugin fornecer a sua própria caixa de diálogo de configuração com o ShowOptionsDialog, este deverá retornar TRUE aqui, ou de outro modo retornar FALSE.

HRESULT ShowOptionsDialog(
  // Janela pai para a caixa de diálogo opções
  [in] HWND hParentWnd,

  // Parâmetros para o teu fornecedor.
  [in] BSTR parameters,

  // A string parâmetros
  [out, retval] BSTR * newparameters
);

Este método é chamado a partir da caixa de diálogo preferências quando o utilizador clica no botão "Opções" , que é mostrado se a HasOptions retorna TRUE. Um plugin poderá mostrar uma caixa de diálogo opções, de modo a facilitar ao utilizador a configuração do plugin.

A string parameters contém a string dos parâmetros do plugin que forma já configurados/introduzidos.

O parâmetro de retorno newparameters deverá conter a string de parâmetros que o plugin construiu a partir da informação recolhida na sua caixa de diálogo opções. Essa string parameters será passada a todos os outros métodos IBugtraqProvider e IBugtraqProvider2.

TortoiseSVN homepage