Manuals

Interfejs IBugtraqProvider

TortoiseSVN 1.5 i następne mogą korzystać z wtyczek, które implementują interfejs IBugtraqProvider. Interfejs zapewnia kilka metod, które wtyczki mogą używać do interakcji z trackerem wydań.

HRESULT ValidateParameters (
  // Okno nadrzędne dla dowolnego UI niezbędnego do
  // wyświetlenia podczas walidacji.
  [in] HWND hParentWnd,

  // Ciąg znaków parametru który ma być sprawdzony.
  [in] BSTR parameters,

  // Czy ciąg znaków jest poprawny?
  [out, retval] VARIANT_BOOL *valid
);

Metoda ta wywoływana jest w oknie ustawień, gdzie użytkownik może dodać i skonfigurować wtyczkę. Ciąg znaków parameters może być używany przez wtyczkę, aby uzyskać dodatkowe wymagane informacje, np. adres URL do śledzenia zgłoszeń, danych logowania itp. Wtyczka powinna sprawdzić ciąg znaków parameters i wyświetlić okno błędu, jeśli ciąg nie jest poprawny. Parametr hParentWnd powinien być używany dla każdego okna dialogowego który wtyczka pokazuje jako okno rodzica. Wtyczka musi zwrócić wartość TRUE, jeśli sprawdzenie ciągu znaków parameters powiedzie się. Jeśli plugin zwraca FALSE, okno ustawień nie pozwoli użytkownikowi dodać wtyczki do ścieżki na kopii roboczej.

HRESULT GetLinkText (
  // Okno nadrzędne dla dowolnego (error) UI niezbędnego do wyświetlenia.
  [in] HWND hParentWnd,

  // Ciąg znaków parametru, na wypadek konieczności porozumienia z 
  // serwisem (np.) sprawdzić jaki jest poprawny tekst.
  [in] BSTR parameters,

  // Jaki tekst trzeba wyświetlić?
  // Użyj bieżącej lokalizacji wątku.
  [out, retval] BSTR *linkText
);

Wtyczka może tutaj dostarczyć ciągu znaków, który jest używany w oknie zatwierdzenia TortoiseSVN jako etykieta przycisku, który wywołuje wtyczkę, np. "Wskaż problem" lub "Wybierz bilet". Upewnijcie się, że napis nie jest zbyt długi, w przeciwnym razie może nie pasować do przycisku. Jeśli metoda zwraca błąd (np. E_NOTIMPL), na przycisku zostanie wyświetlony tekst domyślny.

HRESULT GetCommitMessage (
  // Okno nadrzędne dla UI dostawcy.
  [in] HWND hParentWnd,

  // Parametry dla dostawcy.
  [in] BSTR parameters,
  [in] BSTR commonRoot,
  [in] SAFEARRAY(BSTR) pathList,

  // Tekst już obecny w opisie zmiany.
  // Dostawca powinien zawrzeć ten tekst w nowym opisie,
  // gdzie należy.
  [in] BSTR originalMessage,

  // Nowy tekst dla opisu zmiany.
  // Zastępuje oryginalny opis.
  [out, retval] BSTR *newMessage
);

Jest to główna metoda wtyczki. Metoda ta wywoływana jest w oknie dialogowym zatwierdzenia TortoiseSVN, gdy użytkownik kliknie na przycisk wtyczki.

Ciąg znaków parameters użytkownik musi wpisać w oknie ustawień, gdy konfiguruje plugin. Zazwyczaj wtyczki może wykorzystać go, aby znaleźć adres URL systemu śledzenia błędów i/lub informacji autoryzacyjnych albo więcej.

Ciąg znaków commonRoot zawiera ścieżkę nadrzędną wszystkich wybranych elementów, aby otworzyć okno dialogowe zatwierdzenia. Należy pamiętać, że nie jest to ścieżka do katalogu głównego wszystkich elementów, które użytkownik wybrał w oknie dialogowym zatwierdzenia. Dla okna gałęzi/etykiety, to jest ścieżka, która ma być skopiowana.

Parametr pathList zawiera tablicę ścieżek (jako ciągi znaków) które użytkownik wybrał do zatwierdzenia.

Parametr OriginalMessage zawiera tekst wprowadzony w oknie opisu zmiany w oknie zatwierdzenia. Jeśli użytkownik nie wprowadził jeszcze żadnego tekstu, napis ten będzie pusty.

Zwracany ciąg znaków NewMessage jest kopiowany do pola edycji opisu zmiany w oknie zatwierdzenia, zastępując to co już wprowadzono. Jeśli wtyczka nie zmienia ciągu znaków originalMessage, musi ona zwrócić ten sam ciąg tutaj, w przeciwnym razie tekst wpisany przez użytkownika zostanie utracony.

TortoiseSVN homepage