OSDN Git Service

ポップアップメニューのカスタマイズ化への道第一歩。
[gikonavigoeson/gikonavi.git] / NewBoard.pas
index 187680a..90d9866 100644 (file)
@@ -42,6 +42,7 @@ type
                procedure SetIgnoreCategory(b: boolean);
                procedure EditIgnoreList(Sender: TObject);
                procedure UpdateIgnoreList(Sender: TObject);
+        function CheckDeleteItem(ini: TMemIniFile): Boolean;
        public
                { Public \90é\8c¾ }
         class procedure InitHTTPClient(client : TIdHTTP);
@@ -301,6 +302,10 @@ begin
                                        end;
                                end;
                        end;
+            // \83J\83e\83S\83\8a/\94Â\82ª\8c¸\82Á\82½\82¾\82¯\82¾\82ÆChange\83t\83\89\83O\82ª\82½\82½\82È\82¢\82Æ\82«\82Ì\91Î\8dô
+            if not Change then begin
+                Change := CheckDeleteItem(ini);
+            end;
                finally
                        if Change then
                                ini.UpdateFile;
@@ -321,7 +326,53 @@ begin
        end;
        Result := Change;
 end;
-
+//! \8dí\8f\9c\83J\83e\83S\83\8a/\94Â\83`\83F\83b\83N
+function TNewBoardDialog.CheckDeleteItem(ini: TMemIniFile): Boolean;
+var
+       URL: string;
+       Title: string;
+       orgini: TMemIniFile;
+    orgStrings, newStrings: TStringList;
+    i: Integer;
+begin
+    orgini := TMemIniFile.Create(GikoSys.GetBoardFileName);
+    orgStrings := TStringList.Create;
+    newStrings := TStringList.Create;
+    try
+        ini.ReadSections(newStrings);
+        orgini.ReadSections(orgStrings);
+        if (newStrings.Count <> orgStrings.Count) then begin
+            //\83J\83e\83S\83\8a\92Ç\89Á\82Í\81A\94Â\82ª\92Ç\89Á\82É\82È\82é\82Ì\82Å\83`\83F\83b\83N\82µ\82È\82­\82Ä\82à\82¢\82¢
+            //\83J\83e\83S\83\8a\82Ì\8dí\8f\9c\83`\83F\83b\83N
+            for i := 0 to orgStrings.Count - 1 do begin
+                if (newStrings.IndexOf(orgStrings[i]) = -1) then begin
+                    MessageMemo.Lines.Add('\83J\83e\83S\83\8a\8dí\8f\9c\81u' + orgStrings[i] + '\81v');
+                end;
+            end;
+            Result := True;
+        end else begin
+            // \94Â\82Ì\90\94\83`\83F\83b\83N
+            ini.GetStrings(newStrings);
+            orgini.GetStrings(orgStrings);
+            if (newStrings.Count <> orgStrings.Count) then begin
+                // \94Â\82Ì\8dí\8f\9c\83`\83F\83b\83N
+                for i := 0 to orgStrings.Count - 1 do begin
+                    if (newStrings.IndexOf(orgStrings[i]) = -1) then begin
+                        Title := Copy(orgStrings[i], 1 , AnsiPos('=',orgStrings[i]) - 1);
+                        URL := Copy(orgStrings[i],
+                            AnsiPos('=',orgStrings[i]) + 1, Length(orgStrings[i]));
+                        MessageMemo.Lines.Add('\94Â\8dí\8f\9c\81u' + Title + '(' + URL +')\81v');
+                    end;
+                end;
+                Result := True;
+            end;
+        end;
+    finally
+        orgStrings.Free;
+        newStrings.Free;
+        orgini.Free;
+    end;
+end;
 procedure TNewBoardDialog.FormCreate(Sender: TObject);
 begin
        StopButton.Enabled := False;
@@ -420,8 +471,11 @@ class procedure TNewBoardDialog.InitHTTPClient(client : TIdHTTP);
 begin
        client.Request.Clear;
     client.Request.CustomHeaders.Clear;
+       client.Request.UserAgent := GikoSys.GetUserAgent;
        client.RecvBufferSize := Gikosys.Setting.RecvBufferSize;
        client.ProxyParams.BasicAuthentication := False;
+       client.ReadTimeout := GikoSys.Setting.ReadTimeOut;
+
        if GikoSys.Setting.ReadProxy then begin
                if GikoSys.Setting.ProxyProtocol then
                        client.ProtocolVersion := pv1_1