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.