• R/O
  • HTTP
  • SSH
  • HTTPS

gikonavi: Commit


Commit MetaInfo

Revisiond1e62aebfafb07e39df70e25d6157fbed1029b29 (tree)
Time2007-01-22 02:43:50
Authorcvs2git <cvs2git>
Commitercvs2git

Log Message

This commit was manufactured by cvs2svn to create tag 'v1_54_0_685'.

Change Summary

Incremental Difference

--- a/Editor.pas
+++ b/Editor.pas
@@ -1757,7 +1757,6 @@ var
17571757 Action: TAction;
17581758 begin
17591759 s := MouseGesture.GetGestureStr;
1760- MouseGesture.Clear;
17611760 Action := GikoSys.Setting.Gestures.GetGestureAction(s);
17621761 if Action <> nil then
17631762 Action.Execute;
--- a/Gesture.pas
+++ b/Gesture.pas
@@ -25,6 +25,7 @@ type
2525 function CheckAction(Message: Integer; x, y: Integer): Boolean;
2626 procedure AddAction(sx, sy: Integer);
2727 function AddGesture(Item: string): Integer;
28+ procedure ClearGesture;
2829 function Get(Index: integer): string;
2930 procedure Put(Index: integer; Item: string);
3031 public
@@ -36,7 +37,6 @@ type
3637 property GestureCount: Integer read GetGestureCount;
3738 property Margin: Integer read FMargin write FMargin;
3839 function GetGestureStr: string;
39- procedure Clear;
4040 property OnGestureStart: TNotifyEvent read FOnGestureStart write FOnGestureStart;
4141 property OnGestureMove: TNotifyEvent read FOnGestureMove write FOnGestureMove;
4242 property OnGestureEnd: TNotifyEvent read FOnGestureEnd write FOnGestureEnd;
@@ -65,7 +65,7 @@ end;
6565 destructor TMouseGesture.Destroy;
6666 begin
6767 UnHook;
68- Clear;
68+ ClearGesture;
6969 FGestureItemList.Free;
7070 inherited;
7171 end;
@@ -161,11 +161,9 @@ begin
161161 FBeginGesture := False;
162162 ReleaseCapture;
163163 if FGestureItemList.Count <> 0 then begin
164- if Assigned(FOnGestureEnd) then begin
164+ if Assigned(FOnGestureEnd) then
165165 FOnGestureEnd(Self);
166- end else begin
167- Clear;
168- end;
166+ ClearGesture;
169167 end else begin
170168 FCancelMode := True;
171169 //ジェスチャーじゃなかった場合、マウスDOWN,UPをエミュレート
@@ -241,7 +239,7 @@ begin
241239 end;
242240
243241 //ジェスチャーをクリアする
244-procedure TMouseGesture.Clear;
242+procedure TMouseGesture.ClearGesture;
245243 begin
246244 FGestureItemList.Clear;
247245 end;
--- a/Giko.dfm
+++ b/Giko.dfm
@@ -4478,9 +4478,6 @@ object GikoForm: TGikoForm
44784478 object B4: TMenuItem
44794479 Action = GikoDM.NewBoardAction
44804480 end
4481- object N80: TMenuItem
4482- Action = GikoDM.NewBoardSearchAction
4483- end
44844481 object N7: TMenuItem
44854482 Caption = '-'
44864483 end
--- a/Giko.pas
+++ b/Giko.pas
@@ -19,14 +19,14 @@ uses
1919 HintWindow, GikoCoolBar, GikoListView, Search, ExternalBoardManager,
2020 ExternalBoardPlugInMain, StdActns, Variants, ExtActns,IdTCPConnection,
2121 IdBaseComponent, IdTCPClient, AppEvnts, BrowserRecord, MoveHistoryItem,
22- ShellAPI,Preview, HistoryList;
22+ ShellAPI,Preview;
2323
2424 const
2525 NGWORDNAME_PANEL = 3;
2626 THREADSIZE_PANEL = 2;
2727
2828 type
29-
29+ TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
3030 TToolBarSettingSenderType = (tssNone, tssMain, tssList, tssBrowser);
3131 TMinimizeType = (mtNone, mtMinimizing, mtMinimized);
3232 TResizeType = (rtNone, rtResizing);
@@ -416,7 +416,6 @@ type
416416 N79: TMenuItem;
417417 HTML1: TMenuItem;
418418 DAT4: TMenuItem;
419- N80: TMenuItem;
420419 procedure FormCreate(Sender: TObject);
421420 procedure FormDestroy(Sender: TObject);
422421 procedure BrowserStatusTextChange(Sender: TObject;
@@ -570,7 +569,7 @@ type
570569 FActiveList: TObject;
571570 FActiveContent: TBrowserRecord; //
572571 FActiveBBS : TBBS;
573- FHistoryList: THistoryList; //ヒストリリスト
572+ FHistoryList: TList; //ヒストリリスト
574573 FTreeType: TGikoTreeType;
575574 FWorkCount: Integer;
576575 FNameCookie: string;
@@ -723,9 +722,14 @@ type
723722 procedure SetListViewType(AViewType: TGikoViewType); overload;
724723 procedure SetListViewType(AViewType: TGikoViewType; SelectText: string; KubetsuChk: Boolean); overload;
725724 procedure PlaySound(SoundEventName: string);
725+ function AddHistory( FavItem: TFavoriteThreadItem ): Boolean;
726+ procedure ClearHistory;
727+ procedure SaveHistory;
728+ procedure LoadHistory;
726729 procedure ShowBBSTree( inBBS : TBBS );
727730 procedure ShowBBSTreeOld( inBBS : TBBS );
728731 procedure ShowHistoryTree;
732+ procedure SetHistoryTreeNode;
729733 procedure AddMessageList(ACaption: string; AObject: TObject; Icon: TGikoMessageIcon);
730734 procedure SetBrowserTabState;
731735 procedure SetToolBarPopup;
@@ -848,6 +852,8 @@ const
848852 DandD_THRESHOLD = 5; //D&Dの閾値(pixcel)
849853 //プレビューファイル名
850854 HTML_FILE_NAME = 'temp_preview.html';
855+ ITEM_ICON_THREADLOG1 = 6; //スレアイコン(ログあり)
856+ ITEM_ICON_THREADLOG2 = 7; //スレアイコン(ログあり)
851857 //メッセージID
852858 USER_TREECLICK = WM_USER + 2000;
853859 USER_RESIZED = WM_USER + 2001;
@@ -1132,11 +1138,10 @@ begin
11321138
11331139
11341140 // ヒストリリスト(LoadHistory よりも先に行うこと)
1135- FHistoryList := THistoryList.Create;
1141+ FHistoryList := TList.Create;
11361142
11371143 // 履歴読み込み
1138- FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml',
1139- TreeView, FTreeType);
1144+ LoadHistory;
11401145
11411146 //お気に入り読み込み
11421147 FavoriteDM.SetFavTreeView(FavoriteTreeView);
@@ -1611,12 +1616,12 @@ begin
16111616
16121617 //ヒストリリスト保存
16131618 try
1614- FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1619+ SaveHistory;
16151620 except
16161621 end;
16171622 try
16181623 try
1619- FHistoryList.Clear;
1624+ ClearHistory;
16201625 except
16211626 end;
16221627 finally
@@ -1762,8 +1767,8 @@ begin
17621767
17631768 //履歴の保存と破棄
17641769 try
1765- FHistoryList.SaveToFile(GikoSys.GetConfigDir + 'History.xml');
1766- FHistoryList.Clear;
1770+ SaveHistory;
1771+ ClearHistory;
17671772 except
17681773 end;
17691774
@@ -1814,8 +1819,7 @@ begin
18141819 ShowBBSTree( BBSs[ 0 ] );
18151820
18161821 // 履歴読み込み
1817- FHistoryList.LoadFromFile(GikoSys.GetConfigDir + 'History.xml',
1818- TreeView, FTreeType);
1822+ LoadHistory;
18191823
18201824 //お気に入り読み込み
18211825 FavoriteDM.ReadFavorite;
@@ -1886,13 +1890,7 @@ begin
18861890 FActiveContent := nil;
18871891 Exit;
18881892 end;
1889- // 前回と同じ場合終了
1890- if (StatusBar.Panels[1].Text = Text2) then begin
1891- {$IFDEF DEBUG}
1892- Writeln('Status Text is not changed!');
1893- {$ENDIF}
1894- Exit;
1895- end;
1893+
18961894 StatusBar.Panels[1].Text := Text2;
18971895
18981896 if FHint <> nil then begin
@@ -1906,8 +1904,6 @@ begin
19061904 if not GikoForm.Active then
19071905 Exit;
19081906
1909-
1910-
19111907 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10
19121908 //file:///C:/Borland/Projects/gikoNavi/test/read.cgi/qa/990576336/10-15
19131909
@@ -2543,7 +2539,7 @@ begin
25432539 FBrowsers.Move(BROWSER_COUNT - 1, 0);
25442540 end;
25452541 favItem := TFavoriteThreadItem.Create(ThreadItem.URL, ThreadItem.Title );
2546- if not FHistoryList.AddHistory( favItem, TreeView, FTreeType ) then
2542+ if not AddHistory( favItem ) then
25472543 favItem.Free;
25482544
25492545 for i := 0 to BrowserTab.Tabs.Count - 1 do begin
@@ -3023,10 +3019,209 @@ begin
30233019 end;
30243020 end;
30253021
3026-//履歴から削除
3022+function TGikoForm.AddHistory( favItem : TFavoriteThreadItem ): Boolean;
3023+var
3024+ i: Integer;
3025+ Item: TFavoriteThreadItem;
3026+ Node: TTreeNode;
3027+begin
3028+// Result := False;
3029+// if (GetActiveContent = ThreadItem) and
3030+// (ThreadItem.Count <= ThreadItem.Kokomade) then
3031+// Exit;
3032+// if GetActiveContent = ThreadItem then
3033+// Exit;
3034+
3035+ Result := True;
3036+ if FTreeType = gttHistory then
3037+ TreeView.Selected := nil;
3038+
3039+ for i := 0 to FHistoryList.Count - 1 do begin
3040+ if TObject(FHistoryList[i]) is TFavoriteThreadItem then begin
3041+ Item := TFavoriteThreadItem(FHistoryList[i]);
3042+ if Item.URL = favItem.URL then begin
3043+// SetContent(ThreadItem);
3044+ FHistoryList.Move(i, 0);
3045+ if FTreeType = gttHistory then
3046+ if TreeView.Items.GetFirstNode <> TreeView.Items[ i ] then
3047+ TreeView.Items[ i ].MoveTo( TreeView.Items.GetFirstNode, naInsert );
3048+ Result := false;
3049+ Exit;
3050+ end;
3051+ end;
3052+ end;
3053+
3054+ if FHistoryList.Count > 0 then
3055+ FHistoryList.Insert( 0, favItem )
3056+ else
3057+ FHistoryList.Add( favItem );
3058+// SetContent(ThreadItem);
3059+// while GikoSys.Setting.AddressHistoryCount < FHistoryList.Count do begin
3060+ while GikoSys.Setting.MaxRecordCount < FHistoryList.Count do begin
3061+ i := FHistoryList.Count - 1;
3062+ TObject( FHistoryList.Items[ i ] ).Free;
3063+ FHistoryList.Delete( i );
3064+ end;
3065+
3066+ if FTreeType = gttHistory then begin
3067+ Node := TreeView.Items.Add( nil, favItem.Title );
3068+ Node.MoveTo( TreeView.Items.GetFirstNode, naInsert );
3069+ {
3070+ if favItem.NewArrival then begin
3071+ Node.ImageIndex := ITEM_ICON_THREADNEW1;
3072+ Node.SelectedIndex := ITEM_ICON_THREADNEW2;
3073+ end else begin
3074+ Node.ImageIndex := ITEM_ICON_THREADLOG1;
3075+ Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3076+ end;
3077+ }
3078+ // 負荷をかけたくないので NewArrival のチェックを行わない
3079+ // ※favItem.Item プロパティは dat の読み込みを必要とする
3080+ Node.ImageIndex := ITEM_ICON_THREADLOG1;
3081+ Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3082+ Node.Data := favItem;
3083+ //while GikoSys.Setting.AddressHistoryCount < TreeView.Items.Count do begin
3084+ while GikoSys.Setting.MaxRecordCount < TreeView.Items.Count do begin
3085+ i := TreeView.Items.Count - 1;
3086+ TreeView.Items.Item[ i ].Delete;
3087+ end;
3088+ end;
3089+end;
3090+
30273091 procedure TGikoForm.DeleteHistory( threadItem: TThreadItem );
3092+var
3093+ i: Integer;
3094+ node: TTreeNode;
3095+begin
3096+ // キャビネットに履歴が表示されていたら、
3097+ // キャビネット内のアイテムも削除する。
3098+ if (FTreeType = gttHistory) then begin
3099+ node := TreeView.Items.GetFirstNode;
3100+ while (node <> nil) do begin
3101+ if ( TFavoriteThreadItem(node.Data).Item = threadItem ) then begin
3102+ TreeView.Items.Delete(node);
3103+ TreeView.Refresh;
3104+ node := nil;
3105+ end else begin
3106+ node := node.GetNext;
3107+ end;
3108+ end;
3109+ end;
3110+ for i := 0 to FHistoryList.Count - 1 do begin
3111+ if threadItem = TFavoriteThreadItem( FHistoryList.Items[i] ).Item then begin
3112+ TFavoriteThreadItem( FHistoryList.Items[ i ] ).Free;
3113+ FHistoryList.Delete(i);
3114+ FHistoryList.Capacity := FHistoryList.Count;
3115+ Break;
3116+ end;
3117+ end;
3118+end;
3119+
3120+procedure TGikoForm.ClearHistory;
3121+var
3122+ i : Integer;
30283123 begin
3029- FHistoryList.DeleteHistory( threadItem, TreeView, TreeType );
3124+ //FHistoryList.Clear;
3125+
3126+ try
3127+ for i := FHistoryList.Count - 1 downto 0 do begin
3128+ if TObject(FHistoryList[ i ]) is TFavoriteThreadItem then
3129+ TFavoriteThreadItem(FHistoryList[ i ]).Free
3130+ else if TObject(FHistoryList[ i ]) is TFavoriteBoardItem then
3131+ TFavoriteBoardItem(FHistoryList[ i ]).Free;
3132+
3133+ //FHistoryList.Delete(i);
3134+ end;
3135+ except
3136+ end;
3137+
3138+ FHistoryList.Clear;
3139+ FHistoryList.Capacity := FHistoryList.Count;
3140+
3141+end;
3142+
3143+procedure TGikoForm.SaveHistory;
3144+var
3145+ i, bound : Integer;
3146+ saveList : TstringList;
3147+begin
3148+
3149+ saveList := TStringList.Create;
3150+ try
3151+ FHistoryList.Pack;
3152+ FHistoryList.Capacity := FHistoryList.Count;
3153+ saveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
3154+ saveList.Add('<address>');
3155+ bound := FHistoryList.Count - 1;
3156+ for i := bound downto 0 do begin
3157+ // title は今のところ使っていない
3158+ saveList.Add(
3159+ '<history url="' + HtmlEncode( TFavoriteThreadItem( FHistoryList[ i ] ).URL ) + '"' +
3160+ ' title="' + HtmlEncode( MojuUtils.Sanitize(TFavoriteThreadItem( FHistoryList[ i ] ).Title )) + '"/>');
3161+ end;
3162+ saveList.Add('</address>');
3163+ saveList.SaveToFile( GikoSys.GetConfigDir + 'History.xml' );
3164+ finally
3165+ saveList.Free;
3166+ end;
3167+
3168+end;
3169+
3170+procedure TGikoForm.LoadHistory;
3171+var
3172+ i, bound : Integer;
3173+ fileName : string;
3174+ XMLDoc : IXMLDocument;
3175+ XMLNode : IXMLNode;
3176+ HistoryNode : IXMLNode;
3177+ s : string;
3178+ favItem : TFavoriteThreadItem;
3179+{$IFDEF DEBUG}
3180+ st, rt : Cardinal;
3181+{$ENDIF}
3182+begin
3183+{$IFDEF DEBUG}
3184+ st := GetTickCount;
3185+{$ENDIF}
3186+
3187+ fileName := GikoSys.GetConfigDir + 'History.xml';
3188+
3189+ if FileExists( fileName ) then begin
3190+ try
3191+ XMLDoc := IXMLDocument.Create;
3192+ //XMLDoc := LoadXMLDocument(FileName);
3193+ LoadXMLDocument(FileName, XMLDoc);
3194+ try
3195+ XMLNode := XMLDoc.DocumentElement;
3196+
3197+ if XMLNode.NodeName = 'address' then begin
3198+ bound := XMLNode.ChildNodes.Count - 1;
3199+ for i := 0 to bound do begin
3200+ HistoryNode := XMLNode.ChildNodes[i];
3201+ if HistoryNode.NodeName = 'history' then begin
3202+ //if FReadCount >= sl.Count then begin
3203+ s := Trim(HistoryNode.Attributes['url']);
3204+ if s <> '' then begin
3205+ favItem := TFavoriteThreadItem.Create(
3206+ s, MojuUtils.UnSanitize(HistoryNode.Attributes[ 'title' ]) );
3207+ if not AddHistory( favItem ) then
3208+ favItem.Free;
3209+ end;
3210+ //end;
3211+ end;
3212+ end;
3213+ end;
3214+ finally
3215+ XMLDoc.Free;
3216+ end;
3217+ except
3218+ end;
3219+ end;
3220+{$IFDEF DEBUG}
3221+ rt := GetTickCount - st;
3222+ Writeln('Runtime(Load Histroy) : ' + IntToStr(rt) + ' ms');
3223+{$ENDIF}
3224+
30303225 end;
30313226
30323227 procedure TGikoForm.ShowBBSTreeOld(
@@ -3188,11 +3383,43 @@ begin
31883383 FTreeType := gttHistory;
31893384 HistoryToolBar.Show;
31903385 FavoriteToolBar.Hide;
3191- FHistoryList.SetTreeNode( TreeView );
3386+ SetHistoryTreeNode;
31923387 CabinetSelectToolButton.Caption := '履歴リスト';
31933388 end;
31943389 end;
31953390
3391+procedure TGikoForm.SetHistoryTreeNode;
3392+var
3393+ i: Integer;
3394+ Node: TTreeNode;
3395+ Item: TFavoriteThreadItem;
3396+begin
3397+ TreeView.Items.BeginUpdate;
3398+ try
3399+ TreeView.Items.Clear;
3400+ for i := 0 to FHistoryList.Count - 1 do begin
3401+ Item := TFavoriteThreadItem(FHistoryList[i]);
3402+ Node := TreeView.Items.Add(nil, Item.Title);
3403+ {
3404+ if Item.Item.NewArrival then begin
3405+ Node.ImageIndex := ITEM_ICON_THREADNEW1;
3406+ Node.SelectedIndex := ITEM_ICON_THREADNEW2;
3407+ end else begin
3408+ Node.ImageIndex := ITEM_ICON_THREADLOG1;
3409+ Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3410+ end;
3411+ }
3412+ // 負荷をかけたくないので NewArrival のチェックを行わない
3413+ // ※Item.Item プロパティは dat の読み込みを必要とする
3414+ Node.ImageIndex := ITEM_ICON_THREADLOG1;
3415+ Node.SelectedIndex := ITEM_ICON_THREADLOG2;
3416+ Node.Data := Item;
3417+ end;
3418+ finally
3419+ TreeView.Items.EndUpdate;
3420+ end;
3421+end;
3422+
31963423 procedure TGikoForm.SelectTreeNode(Item: TObject; CallEvent: Boolean);
31973424 var
31983425 ChangeEvent: TTVChangedEvent;
@@ -3943,7 +4170,6 @@ procedure TGikoForm.BrowserTabDragDrop(Sender, Source: TObject; X,
39434170 var
39444171 idx: Integer;
39454172 begin
3946- FDragWFirst := False;
39474173 idx := BrowserTab.IndexOfTabAt(X, Y);
39484174 if idx <> -1 then
39494175 BrowserTab.Tabs.Move(BrowserTab.TabIndex, idx);
@@ -3958,11 +4184,14 @@ begin
39584184
39594185 TabIdx := BrowserTab.IndexOfTabAt(x, y);
39604186
3961- if ( ssLeft in Shift ) then begin
3962- if (FDragWFirst) then begin
4187+ if ( ssLeft in Shift ) and ( BrowserTab.Style = tsTabs ) then begin
4188+ if FDragWFirst = false then begin
4189+ FDragWFirst := true;
4190+ end else begin
39634191 BrowserTab.EndDrag(false);
39644192 BrowserTab.BeginDrag(false, DandD_THRESHOLD);
3965- end;
4193+ FDragWFirst := false;
4194+ end;
39664195 end else begin
39674196 BrowserTab.EndDrag(false);
39684197 FDragWFirst := false;
@@ -4844,6 +5073,7 @@ begin
48445073 if (GetKeyState( VK_SHIFT ) and $80000000) = 0 then
48455074 if MsgBox(Handle, DEL_MSG, DEL_TITLE, MB_YESNO or MB_ICONWARNING or MB_DEFBUTTON2) <> ID_YES then
48465075 Exit;
5076+ ClearHistory;
48475077 FHistoryList.Clear;
48485078 TreeView.Items.Clear;
48495079 end;
@@ -6054,18 +6284,24 @@ end;
60546284 procedure TGikoForm.BrowserTabMouseUp(Sender: TObject;
60556285 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
60566286 begin
6057- if FDragWFirst = true then
6287+ if FDragWFirst <> true then begin
60586288 FDragWFirst := false;
6059-
6060- if GikoSys.Setting.ListOrientation = gloHorizontal then begin
6061- if GikoSys.Setting.ListWidthState = glsMin then begin
6062- GikoDM.BrowserMaxAndFocusAction.Execute;
6063- end;
6064- end else begin
6065- if GikoSys.Setting.ListHeightState = glsMin then begin
6066- GikoDM.BrowserMaxAndFocusAction.Execute;
6067- end;
6068- end;
6289+{
6290+ end else if (abs( X - FMouseDownPos.X ) < Mouse.DragThreshold)
6291+ and (abs( Y - FMouseDownPos.Y ) < Mouse.DragThreshold) then begin
6292+(*}
6293+ end else begin
6294+//*)
6295+ if GikoSys.Setting.ListOrientation = gloHorizontal then begin
6296+ if GikoSys.Setting.ListWidthState = glsMin then begin
6297+ GikoDM.BrowserMaxAndFocusAction.Execute;
6298+ end;
6299+ end else begin
6300+ if GikoSys.Setting.ListHeightState = glsMin then begin
6301+ GikoDM.BrowserMaxAndFocusAction.Execute;
6302+ end;
6303+ end;
6304+ end;
60696305 end;
60706306
60716307 procedure TGikoForm.LinkToolBarDragOver(Sender, Source: TObject; X,
@@ -6790,7 +7026,6 @@ var
67907026 Action: TAction;
67917027 begin
67927028 s := MouseGesture.GetGestureStr;
6793- MouseGesture.Clear;
67947029 Action := GikoSys.Setting.Gestures.GetGestureAction(s);
67957030 if Action <> nil then
67967031 Action.Execute;
--- a/GikoDataModule.dfm
+++ b/GikoDataModule.dfm
@@ -1305,12 +1305,6 @@ object GikoDM: TGikoDM
13051305 Hint = #12450#12489#12524#12473#12496#12540#12395#12501#12457#12540#12459#12473#12434#24403#12390#12427
13061306 OnExecute = SetForcusForAddresBarActionExecute
13071307 end
1308- object NewBoardSearchAction: TAction
1309- Category = #12501#12449#12452#12523
1310- Caption = #31227#36578#26495#26908#32034
1311- Hint = #31227#36578#12375#12390#12356#12427#26495#12398'URL'#12434#26908#32034#12377#12427
1312- OnExecute = NewBoardSearchActionExecute
1313- end
13141308 end
13151309 object ToobarImageList: TImageList
13161310 Left = 44
--- a/GikoDataModule.pas
+++ b/GikoDataModule.pas
@@ -12,7 +12,7 @@ uses
1212 MSHTML_TLB,
1313 {$IFEND}
1414 ComCtrls, BrowserRecord, Graphics, Messages, Setting, Dialogs,
15- ActiveX, MoveHistoryItem, HistoryList;
15+ ActiveX, MoveHistoryItem;
1616
1717 const
1818 CAPTION_NAME: string = 'ギコナビ';
@@ -230,7 +230,6 @@ type
230230 AllImageLinkToClipbordAction: TAction;
231231 NewImageLinkToClipBoardAction: TAction;
232232 SetForcusForAddresBarAction: TAction;
233- NewBoardSearchAction: TAction;
234233 procedure EditNGActionExecute(Sender: TObject);
235234 procedure ReloadActionExecute(Sender: TObject);
236235 procedure GoFowardActionExecute(Sender: TObject);
@@ -433,7 +432,6 @@ type
433432 procedure NewImageLinkToClipBoardActionExecute(Sender: TObject);
434433 procedure AllImageLinkToClipbordActionExecute(Sender: TObject);
435434 procedure SetForcusForAddresBarActionExecute(Sender: TObject);
436- procedure NewBoardSearchActionExecute(Sender: TObject);
437435 private
438436 { Private 宣言 }
439437 procedure ClearResFilter;
@@ -486,7 +484,7 @@ uses
486484 GikoBayesian, About, ShellAPI,
487485 RoundName, RoundData, Menus, ListViewUtils,
488486 ThreadControl, GikoMessage, InputAssist,
489- DefaultFileManager, Forms, NewBoardURL;
487+ DefaultFileManager, Forms;
490488
491489 const
492490 MSG_ERROR : string = 'エラー';
@@ -4315,26 +4313,6 @@ begin
43154313 GikoForm.AddressComboBox.SetFocus;
43164314 end
43174315 end;
4318-{
4319-\brief 移転した板のURLを取得するダイアグラムを表示する
4320-}
4321-procedure TGikoDM.NewBoardSearchActionExecute(Sender: TObject);
4322-var
4323- form : TNewBoardURLForm;
4324- Msg: string;
4325-begin
4326- if (EditorFormExists) then begin
4327- Msg := 'レスエディタを全て閉じてください';
4328- MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
4329- Exit;
4330- end;
4331- form := TNewBoardURLForm.Create(Self);
4332- try
4333- form.ShowModal;
4334- finally
4335- form.Release;
4336- end;
4337-end;
43384316
43394317 end.
43404318
--- a/HistoryList.pas
+++ /dev/null
@@ -1,261 +0,0 @@
1-unit HistoryList;
2-
3-interface
4-
5-uses
6- Windows, Messages, SysUtils, Classes, Graphics, Controls,
7- BoardGroup, Favorite, ComCtrls, GikoXMLDoc;
8-
9-type
10- TGikoTreeType = (gttNone, gtt2ch, gttHistory, gttFavorite);
11-
12- THistoryList = class(TList)
13- public
14- function AddHistory( favItem : TFavoriteThreadItem; TreeView : TTreeView;
15- TreeType: TGikoTreeType): Boolean;
16- procedure DeleteHistory( threadItem: TThreadItem; TreeView : TTreeView;
17- TreeType: TGikoTreeType );
18- procedure Clear; override;
19- procedure SaveToFile(const FileName: String);
20- procedure LoadFromFile(const FileName: String;
21- TreeView : TTreeView; TreeType: TGikoTreeType);
22- procedure SetTreeNode( TreeView : TTreeView );
23-
24- end;
25-
26-
27-implementation
28-
29-uses
30- Giko, GikoSystem, Setting, YofUtils, MojuUtils;
31-
32-const
33- ITEM_ICON_THREADLOG1 = 6; //スレアイコン(ログあり)
34- ITEM_ICON_THREADLOG2 = 7; //スレアイコン(ログあり)
35-
36-
37-function THistoryList.AddHistory(
38- favItem : TFavoriteThreadItem; TreeView : TTreeView;
39- TreeType: TGikoTreeType ): Boolean;
40-var
41- i: Integer;
42- Item: TFavoriteThreadItem;
43- Node: TTreeNode;
44-begin
45- Result := True;
46- if TreeType = gttHistory then
47- TreeView.Selected := nil;
48-
49- for i := 0 to Self.Count - 1 do begin
50- if TObject(Self[i]) is TFavoriteThreadItem then begin
51- Item := TFavoriteThreadItem(Self[i]);
52- if Item.URL = favItem.URL then begin
53- Self.Move(i, 0);
54- if TreeType = gttHistory then
55- if TreeView.Items.GetFirstNode <> TreeView.Items[ i ] then
56- TreeView.Items[ i ].MoveTo( TreeView.Items.GetFirstNode, naInsert );
57- Result := false;
58- Exit;
59- end;
60- end;
61- end;
62-
63- if Self.Count > 0 then
64- Self.Insert( 0, favItem )
65- else
66- Self.Add( favItem );
67-
68- while GikoSys.Setting.MaxRecordCount < Self.Count do begin
69- i := Self.Count - 1;
70- TObject( Self.Items[ i ] ).Free;
71- Self.Delete( i );
72- end;
73-
74- if TreeType = gttHistory then begin
75- Node := TreeView.Items.Add( nil, favItem.Title );
76- Node.MoveTo( TreeView.Items.GetFirstNode, naInsert );
77- {
78- if favItem.NewArrival then begin
79- Node.ImageIndex := ITEM_ICON_THREADNEW1;
80- Node.SelectedIndex := ITEM_ICON_THREADNEW2;
81- end else begin
82- Node.ImageIndex := ITEM_ICON_THREADLOG1;
83- Node.SelectedIndex := ITEM_ICON_THREADLOG2;
84- end;
85- }
86- // 負荷をかけたくないので NewArrival のチェックを行わない
87- // ※favItem.Item プロパティは dat の読み込みを必要とする
88- Node.ImageIndex := ITEM_ICON_THREADLOG1;
89- Node.SelectedIndex := ITEM_ICON_THREADLOG2;
90- Node.Data := favItem;
91- //while GikoSys.Setting.AddressHistoryCount < TreeView.Items.Count do begin
92- while GikoSys.Setting.MaxRecordCount < TreeView.Items.Count do begin
93- i := TreeView.Items.Count - 1;
94- TreeView.Items.Item[ i ].Delete;
95- end;
96- end;
97-end;
98-
99-procedure THistoryList.DeleteHistory( threadItem: TThreadItem;
100- TreeView : TTreeView; TreeType: TGikoTreeType );
101-var
102- i: Integer;
103- node: TTreeNode;
104-begin
105- // キャビネットに履歴が表示されていたら、
106- // キャビネット内のアイテムも削除する。
107- if (TreeType = gttHistory) then begin
108- node := TreeView.Items.GetFirstNode;
109- while (node <> nil) do begin
110- if ( TFavoriteThreadItem(node.Data).Item = threadItem ) then begin
111- TreeView.Items.Delete(node);
112- TreeView.Refresh;
113- node := nil;
114- end else begin
115- node := node.GetNext;
116- end;
117- end;
118- end;
119- for i := 0 to Self.Count - 1 do begin
120- if threadItem = TFavoriteThreadItem( Self.Items[i] ).Item then begin
121- TFavoriteThreadItem( Self.Items[ i ] ).Free;
122- Self.Delete(i);
123- Self.Capacity := Self.Count;
124- Break;
125- end;
126- end;
127-end;
128-
129-procedure THistoryList.Clear;
130-var
131- i : Integer;
132-begin
133- try
134- for i := Self.Count - 1 downto 0 do begin
135- if TObject(Self[ i ]) is TFavoriteThreadItem then
136- TFavoriteThreadItem(Self[ i ]).Free
137- else if TObject(Self[ i ]) is TFavoriteBoardItem then
138- TFavoriteBoardItem(Self[ i ]).Free;
139- end;
140- except
141- end;
142-
143- inherited Clear;
144- Self.Capacity := Self.Count;
145-
146-end;
147-
148-procedure THistoryList.SaveToFile(const FileName: String);
149-var
150- i, bound : Integer;
151- saveList : TstringList;
152-begin
153-
154- saveList := TStringList.Create;
155- try
156- Self.Pack;
157- Self.Capacity := Self.Count;
158- saveList.Add('<?xml version="1.0" encoding="Shift_JIS" standalone="yes"?>');
159- saveList.Add('<address>');
160- bound := Self.Count - 1;
161- for i := bound downto 0 do begin
162- // title は今のところ使っていない
163- saveList.Add(
164- '<history url="' + HtmlEncode( TFavoriteThreadItem( Self[ i ] ).URL ) + '"' +
165- ' title="' + HtmlEncode( MojuUtils.Sanitize(TFavoriteThreadItem( Self[ i ] ).Title )) + '"/>');
166- end;
167- saveList.Add('</address>');
168- saveList.SaveToFile( FileName );
169- finally
170- saveList.Free;
171- end;
172-
173-end;
174-
175-procedure THistoryList.LoadFromFile(const FileName: String;
176- TreeView : TTreeView; TreeType: TGikoTreeType);
177-var
178- i, bound : Integer;
179- XMLDoc : IXMLDocument;
180- XMLNode : IXMLNode;
181- HistoryNode : IXMLNode;
182- s : string;
183- favItem : TFavoriteThreadItem;
184-{$IFDEF DEBUG}
185- st, rt : Cardinal;
186-{$ENDIF}
187-begin
188-{$IFDEF DEBUG}
189- st := GetTickCount;
190-{$ENDIF}
191- if FileExists( FileName ) then begin
192- try
193- XMLDoc := IXMLDocument.Create;
194- //XMLDoc := LoadXMLDocument(FileName);
195- LoadXMLDocument(FileName, XMLDoc);
196- try
197- XMLNode := XMLDoc.DocumentElement;
198-
199- if XMLNode.NodeName = 'address' then begin
200- bound := XMLNode.ChildNodes.Count - 1;
201- for i := 0 to bound do begin
202- HistoryNode := XMLNode.ChildNodes[i];
203- if HistoryNode.NodeName = 'history' then begin
204- //if FReadCount >= sl.Count then begin
205- s := Trim(HistoryNode.Attributes['url']);
206- if s <> '' then begin
207- favItem := TFavoriteThreadItem.Create(
208- s, MojuUtils.UnSanitize(HistoryNode.Attributes[ 'title' ]) );
209- if not AddHistory( favItem, TreeView, TreeType ) then
210- favItem.Free;
211- end;
212- //end;
213- end;
214- end;
215- end;
216- finally
217- XMLDoc.Free;
218- end;
219- except
220- end;
221- end;
222-{$IFDEF DEBUG}
223- rt := GetTickCount - st;
224- Writeln('Runtime(Load Histroy) : ' + IntToStr(rt) + ' ms');
225-{$ENDIF}
226-
227-end;
228-procedure THistoryList.SetTreeNode(
229- TreeView : TTreeView );
230-var
231- i: Integer;
232- Node: TTreeNode;
233- Item: TFavoriteThreadItem;
234-begin
235- TreeView.Items.BeginUpdate;
236- try
237- TreeView.Items.Clear;
238- for i := 0 to Self.Count - 1 do begin
239- Item := TFavoriteThreadItem(Self[i]);
240- Node := TreeView.Items.Add(nil, Item.Title);
241- {
242- if Item.Item.NewArrival then begin
243- Node.ImageIndex := ITEM_ICON_THREADNEW1;
244- Node.SelectedIndex := ITEM_ICON_THREADNEW2;
245- end else begin
246- Node.ImageIndex := ITEM_ICON_THREADLOG1;
247- Node.SelectedIndex := ITEM_ICON_THREADLOG2;
248- end;
249- }
250- // 負荷をかけたくないので NewArrival のチェックを行わない
251- // ※Item.Item プロパティは dat の読み込みを必要とする
252- Node.ImageIndex := ITEM_ICON_THREADLOG1;
253- Node.SelectedIndex := ITEM_ICON_THREADLOG2;
254- Node.Data := Item;
255- end;
256- finally
257- TreeView.Items.EndUpdate;
258- end;
259-end;
260-
261-end.
--- a/KeySetting.pas
+++ b/KeySetting.pas
@@ -358,7 +358,6 @@ end;
358358 procedure TKeySettingForm.OnGestureEnd(Sender: TObject);
359359 begin
360360 GestureEdit.Text := MouseGesture.GetGestureStr;
361- MouseGesture.Clear;
362361 end;
363362
364363 procedure TKeySettingForm.GestureCheckBoxClick(Sender: TObject);
--- a/NewBoard.dfm
+++ b/NewBoard.dfm
@@ -1,6 +1,6 @@
11 object NewBoardDialog: TNewBoardDialog
2- Left = 337
3- Top = 197
2+ Left = 276
3+ Top = 325
44 BorderStyle = bsDialog
55 Caption = #26495#19968#35239#26356#26032
66 ClientHeight = 329
--- a/NewBoard.pas
+++ b/NewBoard.pas
@@ -44,7 +44,6 @@ type
4444 procedure UpdateIgnoreList(Sender: TObject);
4545 public
4646 { Public 宣言 }
47- class procedure InitHTTPClient(client : TIdHTTP);
4847 end;
4948
5049 var
@@ -120,8 +119,32 @@ var
120119 s: string;
121120 i: Integer;
122121 begin
123- InitHTTPClient( Indy );
124-
122+ Indy.Request.Clear;
123+ Indy.RecvBufferSize := Gikosys.Setting.RecvBufferSize;
124+ Indy.ProxyParams.BasicAuthentication := False;
125+ if GikoSys.Setting.ReadProxy then begin
126+ if GikoSys.Setting.ProxyProtocol then
127+ Indy.ProtocolVersion := pv1_1
128+ else
129+ Indy.ProtocolVersion := pv1_0;
130+ Indy.ProxyParams.ProxyServer := GikoSys.Setting.ReadProxyAddress;
131+ Indy.ProxyParams.ProxyPort := GikoSys.Setting.ReadProxyPort;
132+ Indy.ProxyParams.ProxyUsername := GikoSys.Setting.ReadProxyUserID;
133+ Indy.ProxyParams.ProxyPassword := GikoSys.Setting.ReadProxyPassword;
134+ if GikoSys.Setting.ReadProxyUserID <> '' then
135+ Indy.ProxyParams.BasicAuthentication := True;
136+ end else begin
137+ if GikoSys.Setting.Protocol then
138+ Indy.ProtocolVersion := pv1_1
139+ else
140+ Indy.ProtocolVersion := pv1_0;
141+ Indy.ProxyParams.ProxyServer := '';
142+ Indy.ProxyParams.ProxyPort := 80;
143+ Indy.ProxyParams.ProxyUsername := '';
144+ Indy.ProxyParams.ProxyPassword := '';
145+ end;
146+ //URL := GikoSys.Setting.BoardURL2ch;
147+ //URL := BoardURLComboBox.Text;
125148 Indy.Request.UserAgent := GikoSys.GetUserAgent;
126149 Indy.Request.Referer := '';
127150 Indy.Request.AcceptEncoding := 'gzip';
@@ -410,33 +433,4 @@ begin
410433 end;
411434 end;
412435 end;
413-
414-class procedure TNewBoardDialog.InitHTTPClient(client : TIdHTTP);
415-begin
416- client.Request.Clear;
417- client.Request.CustomHeaders.Clear;
418- client.RecvBufferSize := Gikosys.Setting.RecvBufferSize;
419- client.ProxyParams.BasicAuthentication := False;
420- if GikoSys.Setting.ReadProxy then begin
421- if GikoSys.Setting.ProxyProtocol then
422- client.ProtocolVersion := pv1_1
423- else
424- client.ProtocolVersion := pv1_0;
425- client.ProxyParams.ProxyServer := GikoSys.Setting.ReadProxyAddress;
426- client.ProxyParams.ProxyPort := GikoSys.Setting.ReadProxyPort;
427- client.ProxyParams.ProxyUsername := GikoSys.Setting.ReadProxyUserID;
428- client.ProxyParams.ProxyPassword := GikoSys.Setting.ReadProxyPassword;
429- if GikoSys.Setting.ReadProxyUserID <> '' then
430- client.ProxyParams.BasicAuthentication := True;
431- end else begin
432- if GikoSys.Setting.Protocol then
433- client.ProtocolVersion := pv1_1
434- else
435- client.ProtocolVersion := pv1_0;
436- client.ProxyParams.ProxyServer := '';
437- client.ProxyParams.ProxyPort := 80;
438- client.ProxyParams.ProxyUsername := '';
439- client.ProxyParams.ProxyPassword := '';
440- end;
441-end;
442436 end.
--- a/NewBoardURL.dfm
+++ /dev/null
@@ -1,84 +0,0 @@
1-object NewBoardURLForm: TNewBoardURLForm
2- Left = 380
3- Top = 187
4- Width = 495
5- Height = 313
6- Caption = #26495#31227#36578#20808#26908#32034
7- Color = clBtnFace
8- Font.Charset = SHIFTJIS_CHARSET
9- Font.Color = clWindowText
10- Font.Height = -12
11- Font.Name = #65325#65331' '#65328#12468#12471#12483#12463
12- Font.Style = []
13- FormStyle = fsStayOnTop
14- OldCreateOrder = False
15- OnCreate = FormCreate
16- PixelsPerInch = 96
17- TextHeight = 12
18- object CategoryLabel: TLabel
19- Left = 24
20- Top = 16
21- Width = 53
22- Height = 12
23- Caption = #12459#12486#12468#12522#21517
24- end
25- object CategoryComboBox: TComboBox
26- Left = 88
27- Top = 13
28- Width = 145
29- Height = 20
30- ItemHeight = 12
31- TabOrder = 0
32- Text = 'CategoryComboBox'
33- end
34- object SearchButton: TButton
35- Left = 256
36- Top = 8
37- Width = 75
38- Height = 25
39- Caption = #26908#32034'(&s)'
40- TabOrder = 1
41- OnClick = SearchButtonClick
42- end
43- object ResultMemo: TMemo
44- Left = 24
45- Top = 48
46- Width = 457
47- Height = 225
48- Lines.Strings = (
49- 'ResultMemo')
50- ScrollBars = ssVertical
51- TabOrder = 2
52- end
53- object CloseButton: TButton
54- Left = 352
55- Top = 8
56- Width = 75
57- Height = 25
58- Caption = #38281#12376#12427
59- ModalResult = 1
60- TabOrder = 3
61- end
62- object IdHTTP: TIdHTTP
63- MaxLineAction = maException
64- AllowCookies = True
65- HandleRedirects = True
66- ProxyParams.BasicAuthentication = False
67- ProxyParams.ProxyPort = 0
68- Request.ContentLength = -1
69- Request.ContentRangeEnd = 0
70- Request.ContentRangeStart = 0
71- Request.Accept = 'text/html, */*'
72- Request.BasicAuthentication = False
73- Request.UserAgent = 'Mozilla/3.0 (compatible; Indy Library)'
74- HTTPOptions = [hoForceEncodeParams]
75- OnRedirect = IdHTTPRedirect
76- Left = 408
77- Top = 16
78- end
79- object IdAntiFreeze: TIdAntiFreeze
80- Active = False
81- Left = 448
82- Top = 16
83- end
84-end
--- a/NewBoardURL.pas
+++ /dev/null
@@ -1,226 +0,0 @@
1-unit NewBoardURL;
2-
3-interface
4-
5-uses
6- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7- Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,
8- IdTCPConnection, IdTCPClient, IdHTTP, StdCtrls,
9- BoardGroup;
10-
11-type
12- TNewBoardURLForm = class(TForm)
13- CategoryComboBox: TComboBox;
14- CategoryLabel: TLabel;
15- IdHTTP: TIdHTTP;
16- IdAntiFreeze: TIdAntiFreeze;
17- SearchButton: TButton;
18- ResultMemo: TMemo;
19- CloseButton: TButton;
20- procedure FormCreate(Sender: TObject);
21- procedure SearchButtonClick(Sender: TObject);
22- procedure IdHTTPRedirect(Sender: TObject; var dest: String;
23- var NumRedirect: Integer; var Handled: Boolean;
24- var VMethod: TIdHTTPMethod);
25- private
26- { Private 宣言 }
27- function GetRedirectURL(const html: string): string;
28- procedure GetBoardURLs(urls : TStringList);
29- procedure ReplaceURLs(oldurls, newurls: TStringList);
30- public
31- { Public 宣言 }
32- end;
33-
34-var
35- NewBoardURLForm: TNewBoardURLForm;
36-
37-implementation
38-
39-uses
40- GikoSystem, NewBoard, Giko, IniFiles, MojuUtils, GikoDataModule;
41-{$R *.dfm}
42-//! コンストラクタ
43-procedure TNewBoardURLForm.FormCreate(Sender: TObject);
44-var
45- i : Integer;
46- ini : TMemIniFile;
47- sec : TStringList;
48-begin
49- sec := TStringList.Create;
50- ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
51- ini.ReadSections(sec);
52-
53- CategoryComboBox.Clear;
54- CategoryComboBox.Items.BeginUpdate;
55- for i := 0 to sec.Count - 1 do begin
56- CategoryComboBox.Items.Add(sec[i]);
57- end;
58- CategoryComboBox.Items.EndUpdate;
59- CategoryComboBox.ItemIndex := 0;
60-
61- ResultMemo.Lines.Clear;
62-end;
63-
64-procedure TNewBoardURLForm.SearchButtonClick(Sender: TObject);
65-var
66- i : Integer;
67- value : string;
68- ResStream: TMemoryStream;
69- URLs : TStringList;
70- oldURLs : TStringList;
71- newURLs : TStringList;
72- oldURL, newURL : string;
73- TabURLs : TStringList;
74-begin
75- ResultMemo.Lines.Clear;
76- URLs := TStringList.Create;
77- Screen.Cursor := crHourGlass;
78- SearchButton.Enabled := False;
79- try
80- GetBoardURLs( URLs );
81- if URLs.Count > 0 then begin
82- ResStream := TMemoryStream.Create;
83- oldURLs := TStringList.Create;
84- newURLs := TStringList.Create;
85-
86- try
87- TNewBoardDialog.InitHTTPClient(IdHTTP);
88- IdHTTP.Request.Referer := '';
89- IdHTTP.Request.AcceptEncoding := 'gzip';
90-
91- IdHTTP.Request.CacheControl := 'no-cache';
92- IdHTTP.Request.CustomHeaders.Add('Pragma: no-cache');
93- IdHTTP.HandleRedirects := false;
94- for i := 0 to URLs.Count - 1 do begin
95- IdAntiFreeze.Active := true;
96- try
97- ResStream.Clear;
98- IdHTTP.Get(URLs[i], ResStream);
99- value := GikoSys.GzipDecompress(ResStream,
100- IdHTTP.Response.ContentEncoding);
101- newURL := GetRedirectURL(value);
102- if (newURL = '') then begin
103- newURL := IdHTTP.Response.Location;
104- end;
105- if (newURL <> '') then begin
106- oldURL := URLs[i];
107- ResultMemo.Lines.Add('URL:' + oldURL + ' -> ' + newURL);
108- if (newURL <> '') then begin
109- oldURLs.Add( oldURL );
110- newURLs.Add( newURL );
111- end;
112- end;
113- except
114- on E: Exception do begin
115- {$IFDEF DEBUG}
116- Writeln(IdHTTP.ResponseText);
117- {$ENDIF}
118- end;
119- end;
120- IdAntiFreeze.Active := false;
121- end;
122-
123- if (newURLs.Count > 0) and (oldURLs.Count > 0) then begin
124- ReplaceURLs(oldURLs, newURLs);
125- GikoForm.FavoritesURLReplace(oldURLs, newURLs);
126- GikoForm.RoundListURLReplace(oldURLs, newURLs);
127- GikoForm.TabFileURLReplace(oldURLs, newURLs);
128- ResultMemo.Lines.Add('板移転先検索が完了しました');
129-
130- TabURLs := TStringList.Create;
131- try
132- GikoDM.GetTabURLs(TabURLs);
133- GikoForm.ReloadBBS;
134- GikoDM.OpenURLs(TabURLs);
135- finally
136- TabURLs.Free;
137- end;
138-
139- end else begin
140- ResultMemo.Lines.Add('移転している板は ありませんでした');
141- end;
142- finally
143- ResStream.Clear;
144- ResStream.Free;
145- newURLs.Free;
146- oldURLs.Free;
147- end;
148- end;
149- finally
150- URLs.Free;
151- SearchButton.Enabled := True;
152- Screen.Cursor := crDefault;
153- end;
154-end;
155-function TNewBoardURLForm.GetRedirectURL(const html: string): string;
156-const
157- HEADS = '<head>';
158- HEADE = '</head>';
159- SCRIPT = 'window.location.href="';
160-begin
161- Result := Copy(html, 1,
162- AnsiPos(HEADE, AnsiLowerCase(html)));
163- Result := Copy(Result,
164- AnsiPos(HEADS, AnsiLowerCase(Result)),
165- Length(Result));
166- if AnsiPos(SCRIPT, Result) > 0 then begin
167- Result := Copy(Result, AnsiPos(SCRIPT, Result) + Length(SCRIPT),
168- Length(Result));
169- Result := Copy(Result, 1, AnsiPos('"', Result) - 1);
170- end else begin
171- Result := '';
172- end;
173-
174-end;
175-procedure TNewBoardURLForm.GetBoardURLs(urls : TStringList);
176-var
177- ini : TMemIniFile;
178- sec : string;
179- keys : TStringList;
180- i : Integer;
181-begin
182- urls.Clear;
183- urls.BeginUpdate;
184- if CategoryComboBox.ItemIndex <> -1 then begin
185- sec := CategoryComboBox.Items[CategoryComboBox.itemIndex];
186- keys := TStringList.Create;
187- try
188- ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
189- ini.ReadSection(sec, keys);
190- for i := 0 to keys.Count - 1 do begin
191- urls.Add(ini.ReadString(sec, keys[i], ''));
192- end;
193- finally
194- keys.Free;
195- end;
196- end;
197-end;
198-procedure TNewBoardURLForm.ReplaceURLs(oldurls, newurls: TStringList);
199-var
200- txt : TStringList;
201- i : Integer;
202-begin
203- if oldurls.Count > 0 then begin
204- txt := TStringList.Create;
205- txt.LoadFromFile( GikoSys.GetBoardFileName );
206- try
207- for i := 0 to oldurls.Count - 1 do begin
208- MojuUtils.CustomStringReplace(txt, oldurls[i], newurls[i]);
209- end;
210- txt.SaveToFile( GikoSys.GetBoardFileName );
211- finally
212- txt.Free;
213- end;
214- end;
215-end;
216-
217-procedure TNewBoardURLForm.IdHTTPRedirect(Sender: TObject;
218- var dest: String; var NumRedirect: Integer; var Handled: Boolean;
219- var VMethod: TIdHTTPMethod);
220-begin
221- {$IFDEF DEBUG}
222- ShowMessage(dest);
223- {$ENDIF}
224-end;
225-
226-end.
--- a/gikoNavi.dpr
+++ b/gikoNavi.dpr
@@ -74,9 +74,7 @@ uses
7474 InputAssistDataModule in 'InputAssistDataModule.pas' {InputAssistDM: TDataModule},
7575 DefaultFileManager in 'DefaultFileManager.pas',
7676 MoveHistoryItem in 'MoveHistoryItem.pas',
77- SambaTimer in 'SambaTimer.pas',
78- HistoryList in 'HistoryList.pas',
79- NewBoardURL in 'NewBoardURL.pas' {NewBoardURLForm};
77+ SambaTimer in 'SambaTimer.pas';
8078
8179 {$R *.RES}
8280 {$R gikoResource.res}
Binary files a/gikoNavi.res and b/gikoNavi.res differ
--- a/readme/readme.txt
+++ b/readme/readme.txt
@@ -107,7 +107,7 @@ LICENSE
107107 ------------------------------
108108 履歴
109109 ------------------------------
110-2007/01/28
110+2006/12/XX
111111 Version バタ54
112112  スレッド内でのリンクで移動したときの履歴を辿れる機能を追加
113113  タスクトレイに格納する機能を追加(オプションで最小化時も)
Show on old repository browser