Manuals

Interfejs IBugtraqProvider2

W TortoiseSVN 1.6 został dodany nowy interfejs, który zapewnia większą funkcjonalność wtyczek. Ten interfejs IBugtraqProvider2 dziedziczy z IBugtraqProvider.

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

  // Parametry dla dostawcy.
  [in] BSTR parameters,
  // Wspólny URL zatwierdzenia
  [in] BSTR commonURL,
  [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,

  // Można przypisać niestandardowe właściwości wersji do zatwierdzenia
  // przez ustawienie następnych dwóch parametrów.
  // uwaga: Obie tabele safearray muszą mieć tą samą długość.
  //        Dla każdej nazwy atrybutu musi tam być wartość atrybutu!

  // Zawartość pola bugID (jeśli nadano)
  [in] BSTR bugID,

  // Zmieniona zawartość pola bugID
  [out] BSTR * bugIDOut,

  // Lista nazw atrybutów wersji.
  [out] SAFEARRAY(BSTR) * revPropNames,

  // Lista wartości atrybutów wersji.
  [out] SAFEARRAY(BSTR) * revPropValues,

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

Metoda ta wywoływana jest w oknie dialogowym zatwierdzenia TortoiseSVN, kiedy użytkownik kliknie na przycisk wtyczki. Jest ona wywoływana zamiast GetCommitMessage(). Proszę zapoznać się z dokumentacją GetCommitMessage dotyczącą parametrów, które są tam również używane.

Parametr commonURL jest nadrzędnym URL wszystkich wybranych elementów, aby otworzyć okno dialogowe zatwierdzenia. Jest to po prostu adres URL dla ścieżki commonRoot.

Parametr bugID zawiera treści pola ID błędu (jeżeli jest pokazywana, skonfigurowana w atrybucie bugtraq:message).

Parametr zwrotny bugIDOut jest używany do wypełnienia pola ID błędu, gdy zwracany przez metodę.

Parametry zwrotne RevPropNames i revPropValues​ mogą zawierać pary nazwa/wartość dla atrybutów wersji, które zatwierdzenie powinno ustawić. Wtyczka musi upewnić się, że obie tablice mają ten sam rozmiar podczas zwracania! Każda nazwa własności revPropNames musi mieć odpowiednią wartość w revPropValues​​. Jeśli nie ma atrybutów wersji do ustawienia, wtyczka musi zwrócić puste tablice.

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

Ta metoda jest wywoływana tuż przed zamknięciem okna dialogowego zatwierdzenia i rozpoczęciem samego zatwierdzenia. Wtyczka może użyć tej metody do sprawdzania wybranych plików/folderów do zatwierdzenia i/lub opisu zmiany wprowadzonego przez użytkownika. Parametry są takie same jak dla GetCommitMessage2(), z tą różnicą, że commonURL jest wspólnym URL wszystkich zaznaczonych elementów, a commonRoot ścieżką do katalogu głównego wszystkich zaznaczonych elementów.

Dla okna gałęzi/etykiety commonURL jest adres URL źródła kopiowania, a commonRoot jest ustawiony na adres docelowy kopii.

Parametr zwrotny ErrorMessage musi albo zawierać komunikat o błędzie, który TortoiseSVN pokazuje użytkownikowi albo być pusty by rozpoczęło się zatwierdzenie. Jeśli został zwrócony komunikat o błędzie, TortoiseSVN pokazuje okno błędu i jednocześnie utrzymuje okno zatwierdzenia otwarte więc użytkownik może poprawić to co jest niepoprawne. Wtyczka powinna zwracać zapis błędu, który informuje użytkownika, co jest nie tak i jak to poprawić.

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

  // Wspólny korzeń dla wszystkich ścieżek jakie zostaną zatwierdzone.
  [in] BSTR commonRoot,

  // Wszystkie ścieżki do zatwierdzenia.
  [in] SAFEARRAY(BSTR) pathList,


  // Tekst już wprowadzony do opisu zmiany.
  [in] BSTR logMessage,

  // wersja zatwierdzenia.
  [in] ULONG revision,


  // Błąd do pokazania użytkownikowi jeśli funkcja
  // zwróci coś innego niż S_OK
  [out, retval] BSTR * error
);

Metoda ta wywoływana jest po udanym zatwierdzeniu. Wtyczka może użyć tej metody do np. zamknięcia wybranego zagadnienia lub dodania informacji o zatwierdzeniu się do wydania. Parametry są takie same jak dla GetCommitMessage2.

HRESULT HasOptions(
  // Czy dostawca przewiduje opcje
  [out, retval] VARIANT_BOOL *ret
);

Metoda ta wywoływana jest w oknie ustawień, gdzie użytkownik może skonfigurować wtyczki. Jeśli wtyczka udostępnia własne okno konfiguracyjne z ShowOptionsDialog, musi ona zwrócić tutaj TRUE, w przeciwnym wypadku musi zwrócić FALSE.

HRESULT ShowOptionsDialog(
  // Okno nadrzędne dla okna opcji
  [in] HWND hParentWnd,

  // Parametry dla dostawcy.
  [in] BSTR parameters,

  // Ciąg znaków parametrów
  [out, retval] BSTR * newparameters
);

Metoda ta wywoływana jest w oknie ustawień, gdy użytkownik kliknie na przycisk "Opcje", który jest wyświetlany, jeśli HasOptions zwraca TRUE. Wtyczka może wyświetlić okno opcji, aby ułatwić użytkownikowi konfigurację wtyczki.

Ciąg parameters zawiera ciąg parametrów wtyczki, który jest już ustawiony/wprowadzony.

Parametr zwrotny newparameters musi zawierać ciąg parametrów, które wtyczka utworzyła z informacji zgromadzonych w oknie dialogowym Opcje. To ciąg znaków paramameters przekazywany jest do wszystkich innych IBugtraqProvider i metod IBugtraqProvider2.

TortoiseSVN homepage