mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-09-30 14:29:39 +02:00
wiki test: showing language enabled
git-svn-id: trunk@35819 -
This commit is contained in:
parent
fd960b161e
commit
f985998e16
@ -98,6 +98,7 @@ function WikiHeaderToLink(Header: string): string;
|
||||
function WikiCreateCommonCodeTagList(AddLazWikiLangs: boolean): TKeyWordFunctionList;
|
||||
function GetWikiPageLanguage(const Page: string): string;
|
||||
function WikiPageHasLanguage(const Page, Languages: string): boolean;
|
||||
function WikiLangInLanguageFilter(const Lang, Languages: string): boolean;
|
||||
|
||||
function ComparePagesWithFilenames(Page1, Page2: Pointer): integer;
|
||||
function CompareFilenameWithPage(Filename, Page: Pointer): integer;
|
||||
@ -477,15 +478,18 @@ begin
|
||||
end;
|
||||
|
||||
function WikiPageHasLanguage(const Page, Languages: string): boolean;
|
||||
begin
|
||||
Result:=WikiLangInLanguageFilter(GetWikiPageLanguage(Page),Languages);
|
||||
end;
|
||||
|
||||
function WikiLangInLanguageFilter(const Lang, Languages: string): boolean;
|
||||
// * = fits any
|
||||
// de = fits 'de' and original
|
||||
// -,de = fits only 'de'
|
||||
var
|
||||
Lang: String;
|
||||
p: PChar;
|
||||
StartPos: PChar;
|
||||
begin
|
||||
Lang:=GetWikiPageLanguage(Page);
|
||||
if (Languages='') then
|
||||
exit(Lang='');
|
||||
p:=PChar(Languages);
|
||||
@ -507,7 +511,6 @@ begin
|
||||
end;
|
||||
while p^=',' do inc(p);
|
||||
end;
|
||||
Result:=false;
|
||||
end;
|
||||
|
||||
function ComparePagesWithFilenames(Page1, Page2: Pointer): integer;
|
||||
|
@ -33,6 +33,8 @@ resourcestring
|
||||
rsLanguageSpanish = 'Spanish';
|
||||
rsLanguageTurkish = 'Turkish';
|
||||
rsLanguageUkrainian = 'Ukrainian';
|
||||
wrsWikiSearchOptions = 'Wiki Search Options';
|
||||
wrsLanguages = 'Languages';
|
||||
|
||||
implementation
|
||||
|
||||
|
@ -1544,7 +1544,7 @@ end;
|
||||
|
||||
function TWikiHelp.LangCodeToCaption(ID: string): string;
|
||||
begin
|
||||
if ID='' then Result:='English, original'
|
||||
if ID='' then Result:=rsLanguageEnglishOriginal
|
||||
else if CompareText(ID,'af')=0 then Result:=rsLanguageAfrikaans
|
||||
else if CompareText(ID,'ar')=0 then Result:=rsLanguageArabic
|
||||
else if CompareText(ID,'ca')=0 then Result:=rsLanguageCatalan
|
||||
@ -1574,8 +1574,8 @@ end;
|
||||
|
||||
function TWikiHelp.LangCaptionToCode(Caption: string): string;
|
||||
begin
|
||||
Result:='';
|
||||
if Caption=rsLanguageEnglish then Result:='en'
|
||||
if Caption=rsLanguageEnglishOriginal then Result:=''
|
||||
else if Caption=rsLanguageEnglish then Result:='en'
|
||||
else if Caption=rsLanguageAfrikaans then Result:='af'
|
||||
else if Caption=rsLanguageArabic then Result:='ar'
|
||||
else if Caption=rsLanguageCatalan then Result:='ca'
|
||||
@ -1599,6 +1599,7 @@ begin
|
||||
else if Caption=rsLanguageSpanish then Result:='es'
|
||||
else if Caption=rsLanguageTurkish then Result:='tk'
|
||||
else if Caption=rsLanguageUkrainian then Result:='uk'
|
||||
else Result:=Caption;
|
||||
end;
|
||||
|
||||
function TWikiHelp.GetProgressCaption: string;
|
||||
|
@ -317,7 +317,6 @@ var
|
||||
HTML: String;
|
||||
begin
|
||||
UpdateProgress;
|
||||
|
||||
HTML:=WikiHelp.ResultsHTML;
|
||||
if HTML='' then exit;
|
||||
LoadHTML(ResultsIpHtmlPanel,HTML);
|
||||
|
@ -13,30 +13,102 @@ object WikiSearchOptsWnd: TWikiSearchOptsWnd
|
||||
Left = 0
|
||||
Height = 308
|
||||
Top = 0
|
||||
Width = 159
|
||||
Width = 194
|
||||
Align = alLeft
|
||||
Caption = 'LanguagesGroupBox'
|
||||
ClientHeight = 292
|
||||
ClientWidth = 155
|
||||
ClientWidth = 190
|
||||
TabOrder = 0
|
||||
object LanguagesTreeView: TTreeView
|
||||
Left = 0
|
||||
Height = 292
|
||||
Top = 0
|
||||
Width = 155
|
||||
Width = 190
|
||||
Align = alClient
|
||||
DefaultItemHeight = 16
|
||||
ReadOnly = True
|
||||
ShowLines = False
|
||||
ShowRoot = False
|
||||
StateImages = ImageList1
|
||||
TabOrder = 0
|
||||
Options = [tvoAutoItemHeight, tvoHideSelection, tvoKeepCollapsedNodes, tvoReadOnly, tvoShowButtons, tvoToolTips, tvoThemedDraw]
|
||||
end
|
||||
end
|
||||
object LanguagesSplitter: TSplitter
|
||||
Left = 159
|
||||
Left = 194
|
||||
Height = 308
|
||||
Top = 0
|
||||
Width = 5
|
||||
end
|
||||
object ImageList1: TImageList
|
||||
left = 70
|
||||
top = 106
|
||||
Bitmap = {
|
||||
4C69020000001000000010000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00806D5EFF7C614CFF8062
|
||||
49FF816249FF816249FF826449FF816348FF836248FF836248FF84624AFF7E61
|
||||
4CFF806D5EFFFFFFFF00FFFFFF00FFFFFF00FFFFFF007C614CFFEED4BCFFEDD2
|
||||
B8FFEFD2B7FFEDCFB4FFEFCFB2FFEECEB1FFF1CFB2FFF0CEB1FFEFCCB2FFEBCC
|
||||
B3FF7E614CFFFFFFFF00FFFFFF00FFFFFF00FFFFFF007C614CFFE6CCB4FFD1B6
|
||||
9CFFD2B59AFFD1B398FFD2B295FFCBAB8EFFCBA98CFFC8A689FFC6A389FFDCBD
|
||||
A4FF7E614CFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00806D5EFF7C614CFF8062
|
||||
49FF816249FF816249FF816249FF816249FF836248FF816348FF816249FF7C61
|
||||
4CFF806D5EFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FC00FFFFF700806D5EFF7C614CFF7C614CFF806D5EFFFFFFF700FFFFFC00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FB00FFFFF2007C614CFFE8CDB8FFE8CDB8FF7C614CFFFFFFF200FFFFFA00FFFF
|
||||
FF00FFFFFE00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFC00FFFFFB00FFFF
|
||||
F500FFFFED00836248FFEACEB6FFEACEB6FF836248FFFFFFEB00FFFFF500FFFF
|
||||
F900FFFFFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFF700FFFFF200FFFF
|
||||
EB00FFFFE6008A6245FFECCEB5FFECCEB5FF8A6245FFFFFFE600FFFFEB00FFFF
|
||||
F100FFFFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00806D5EFF7A624CFF8362
|
||||
48FF8A6343FF8A6343FFEDCFB4FFEDCFB4FF8C6343FF8C6342FF856346FF7F63
|
||||
4BFF816F5EFFFFFFFF00FFFFFF00FFFFFF00FFFFFF007C614CFFEED4BCFFEFD2
|
||||
B7FFF2D2B5FFF1CFB2FFEDCFB2FFEFCFB2FFF5CFB1FFF4CEB0FFEFCDB0FFEBCD
|
||||
B2FF7F634BFFFFFFFF00FFFFFF00FFFFFF00FFFFFF007C614CFFE6CCB4FFD3B5
|
||||
9CFFD4B497FFD5B395FFD4B294FFCFAC8BFFCFA989FFCCA688FFC6A487FFDCBE
|
||||
A3FF7E614CFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00806D5EFF7C614DFF8362
|
||||
48FF8A6343FF8E6342FFD2AC8AFFD4AB8AFF906341FF8E6342FF876246FF7E62
|
||||
4AFF826D5EFFFFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFF800FFFFF200FFFF
|
||||
ED00FFFFE6008E6342FFF6D0AEFFD2AC8AFF8E6342FFFFFFE600FFFFED00FFFF
|
||||
F200FFFFF700FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFC00FFFFFB00FFFF
|
||||
F500FFFFED00856346FFEFCFB2FFCBAB8EFF856346FFFFFFEB00FFFFF500FFFF
|
||||
FB00FFFFFC00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FB00FFFFF2007C614CFFECCEB5FFECCEB5FF7C614CFFFFFFF200FFFFFB00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FC00FFFFF700806D5EFF7B604BFF7D624DFF806D5EFFFFFFF700FFFFFC00FDFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
|
||||
FF00FFFFFF00FFFFFF00FFFFFF00
|
||||
}
|
||||
end
|
||||
end
|
||||
|
@ -25,14 +25,16 @@ unit WikiSearchOptions;
|
||||
interface
|
||||
|
||||
uses
|
||||
Classes, SysUtils, FileUtil, AvgLvlTree, WikiHelpManager, WikiFormat, Forms,
|
||||
Controls, Graphics, Dialogs, ExtCtrls, StdCtrls, ComCtrls;
|
||||
Classes, SysUtils, FileUtil, AvgLvlTree, LazLogger, WikiHelpManager,
|
||||
WikiFormat, WikiStrConsts, Forms, Controls, Graphics, Dialogs, ExtCtrls,
|
||||
StdCtrls, ComCtrls;
|
||||
|
||||
type
|
||||
|
||||
{ TWikiSearchOptsWnd }
|
||||
|
||||
TWikiSearchOptsWnd = class(TForm)
|
||||
ImageList1: TImageList;
|
||||
LanguagesGroupBox: TGroupBox;
|
||||
LanguagesSplitter: TSplitter;
|
||||
LanguagesTreeView: TTreeView;
|
||||
@ -40,10 +42,13 @@ type
|
||||
private
|
||||
FLanguages: string;
|
||||
procedure SetLanguages(AValue: string);
|
||||
function LangNodeTextToCode(NodeText: string): string;
|
||||
function LangToNodeText(LangID: string; Count: integer = -1): string;
|
||||
public
|
||||
property Languages: string read FLanguages write SetLanguages;
|
||||
procedure UpdateAvailableLanguages;
|
||||
procedure UpdateSelectedLanguages;
|
||||
procedure UpdateEnabledLanguages;
|
||||
function LangCodeEnabled(const ID: string): boolean;
|
||||
end;
|
||||
|
||||
var
|
||||
@ -57,8 +62,8 @@ implementation
|
||||
|
||||
procedure TWikiSearchOptsWnd.FormCreate(Sender: TObject);
|
||||
begin
|
||||
Caption:='Wiki Search Options';
|
||||
LanguagesGroupBox.Caption:='Languages';
|
||||
Caption:=wrsWikiSearchOptions;
|
||||
LanguagesGroupBox.Caption:=wrsLanguages;
|
||||
end;
|
||||
|
||||
procedure TWikiSearchOptsWnd.SetLanguages(AValue: string);
|
||||
@ -67,6 +72,25 @@ begin
|
||||
FLanguages:=AValue;
|
||||
end;
|
||||
|
||||
function TWikiSearchOptsWnd.LangNodeTextToCode(NodeText: string): string;
|
||||
var
|
||||
p: SizeInt;
|
||||
begin
|
||||
p:=Pos(' (',NodeText);
|
||||
if p>0 then Delete(NodeText,p,length(NodeText));
|
||||
Result:=WikiHelp.LangCaptionToCode(NodeText)
|
||||
end;
|
||||
|
||||
function TWikiSearchOptsWnd.LangToNodeText(LangID: string; Count: integer
|
||||
): string;
|
||||
begin
|
||||
Result:=WikiHelp.LangCodeToCaption(LangID);
|
||||
if Count<0 then
|
||||
Result+=' (?)'
|
||||
else
|
||||
Result+=' ('+IntToStr(Count)+')';
|
||||
end;
|
||||
|
||||
procedure TWikiSearchOptsWnd.UpdateAvailableLanguages;
|
||||
var
|
||||
Langs: TStringList;
|
||||
@ -87,14 +111,14 @@ begin
|
||||
end;
|
||||
for S2PItem in LangToCount do
|
||||
if S2PItem^.Name<>'' then
|
||||
Langs.Add(WikiHelp.LangCodeToCaption(S2PItem^.Name)+' ('+IntToStr({%H-}PtrUInt(S2PItem^.Value))+')');
|
||||
Langs.Add(LangToNodeText(S2PItem^.Name,{%H-}PtrUInt(S2PItem^.Value)));
|
||||
Langs.Sort;
|
||||
Langs.Insert(0,WikiHelp.LangCodeToCaption('')+' ('+IntToStr({%H-}PtrUInt(LangToCount['']))+')');
|
||||
Langs.Insert(0,LangToNodeText('',{%H-}PtrUInt(LangToCount[''])));
|
||||
finally
|
||||
LangToCount.Free;
|
||||
end;
|
||||
end else begin
|
||||
Langs.Add(WikiHelp.LangCodeToCaption(''));
|
||||
Langs.Add(LangToNodeText(''));
|
||||
end;
|
||||
|
||||
LanguagesTreeView.BeginUpdate;
|
||||
@ -113,12 +137,28 @@ begin
|
||||
LanguagesTreeView.EndUpdate;
|
||||
Langs.Free;
|
||||
end;
|
||||
UpdateSelectedLanguages;
|
||||
UpdateEnabledLanguages;
|
||||
end;
|
||||
|
||||
procedure TWikiSearchOptsWnd.UpdateSelectedLanguages;
|
||||
procedure TWikiSearchOptsWnd.UpdateEnabledLanguages;
|
||||
var
|
||||
i: Integer;
|
||||
TVNode: TTreeNode;
|
||||
LangEnabled: Boolean;
|
||||
begin
|
||||
for i:=0 to LanguagesTreeView.Items.TopLvlCount-1 do begin
|
||||
TVNode:=LanguagesTreeView.Items.TopLvlItems[i];
|
||||
LangEnabled:=LangCodeEnabled(LangNodeTextToCode(TVNode.Text));
|
||||
if LangEnabled then
|
||||
TVNode.StateIndex:=1
|
||||
else
|
||||
TVNode.StateIndex:=0;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TWikiSearchOptsWnd.LangCodeEnabled(const ID: string): boolean;
|
||||
begin
|
||||
Result:=WikiLangInLanguageFilter(ID,Languages);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
Loading…
Reference in New Issue
Block a user