OSDN Git Service

View log download progress
authornaru <bottle@mikage.to>
Sun, 5 Jan 2003 20:05:51 +0000 (20:05 +0000)
committernaru <bottle@mikage.to>
Sun, 5 Jan 2003 20:05:51 +0000 (20:05 +0000)
bottleclient/LogForm.pas
bottleclient/Logs.pas
bottleclient/MainForm.pas

index ae647a0..9a92e1b 100755 (executable)
@@ -121,6 +121,7 @@ type
     procedure AllBottleOpened;
     procedure LogLoaded(Sender: TObject);
     procedure LogLoadFailure(Sender: TObject; const Message: String);
+    procedure LogLoadWork(Sender: TObject);
     procedure UpdateTab;
     procedure UpdateWindow;
     procedure SelAndFocusMessage(const MID: String);
@@ -1121,4 +1122,9 @@ begin
   tabBottleLog.Tabs.EndUpdate;
 end;
 
+procedure TfrmLog.LogLoadWork(Sender: TObject);
+begin
+  if Sender = SelectedBottleLog then lvwLog.Invalidate;
+end;
+
 end.
index 0748fad..d637942 100755 (executable)
@@ -65,19 +65,23 @@ type
   private
     FOnLoaded: TNotifyEvent;
     FHttpThread: THTTPDownloadThread;
+    FLoadBytes: integer;
     FTitle: String;
     FOnLoadFailure: TBottleLogLoadFailureEvent;
     FOldSortColumn: TBottleLogSortType; // \83\8d\83O\91\8b
     FOldSortDesc: boolean;   // \83\8d\83O\91\8b
-    FSelectedIndex: integer; // \83\8d\83O\91\8b
+    FSelectedIndex: integer;
+    FOnLoadWork: TNotifyEvent; // \83\8d\83O\91\8b
 
     function GetBottles(Index: integer): TLogItem;
     procedure SetOnLoaded(const Value: TNotifyEvent);
     procedure HttpSuccess(Sender: TObject);
     procedure HttpFailure(Sender: TObject);
+    procedure HttpWork(Sender: TObject; LoadBytes: integer);
     procedure SetTitle(const Value: String);
     procedure SetOnLoadFailure(const Value: TBottleLogLoadFailureEvent);
     procedure SetSelectedIndex(const Value: integer);
+    procedure SetOnLoadWork(const Value: TNotifyEvent);
   public
     constructor Create(const Title: String);
     destructor Destroy; override;
@@ -88,6 +92,7 @@ type
     property Title: String read FTitle write SetTitle;
     procedure LoadFromStream(Stream: TStream);
     property OnLoaded: TNotifyEvent read FOnLoaded write SetOnLoaded;
+    property OnLoadWork: TNotifyEvent read FOnLoadWork write SetOnLoadWork;
     property OnLoadFailure: TBottleLogLoadFailureEvent read FOnLoadFailure write SetOnLoadFailure;
     property SelectedIndex: integer read FSelectedIndex write SetSelectedIndex;
     procedure AddScriptLog(const Script, Channel, MID, Ghost: String);
@@ -285,6 +290,13 @@ begin
   end;
 end;
 
+procedure TBottleLogList.HttpWork(Sender: TObject; LoadBytes: integer);
+begin
+  AddSystemLog(Format('\83_\83E\83\93\83\8d\81[\83h\92\86\82Å\82· - %4d KB', [LoadBytes div 1024]));
+  FLoadBytes := LoadBytes;
+  if Assigned(FOnLoadWork) then FOnLoadWork(self);
+end;
+
 procedure TBottleLogList.LoadFromStream(Stream: TStream);
 var i: integer;
     SourceStream: TStringStream;
@@ -341,7 +353,7 @@ procedure TBottleLogList.LoadFromWeb(const Cond: TBottleLogDownloadCondition);
 var Param: String;
 begin
   Self.Clear;
-  AddSystemLog('\83_\83E\83\93\83\8d\81[\83h\92\86\82Å\82·');
+  AddSystemLog('\83_\83E\83\93\83\8d\81[\83h\92\86\82Å\82· - \83T\81[\83o\82©\82ç\89\9e\93\9a\91Ò\82¿');
   with Cond do begin
     if Cond.IsRange then begin
       Param := Format('year_lo=%d&month_lo=%d&day_lo=%d&year_hi=%d&month_hi=%d&day_hi=%d&',
@@ -361,6 +373,9 @@ begin
   FHttpThread.FreeOnTerminate := true;
   FHttpThread.OnSuccess := HttpSuccess;
   FHttpThread.OnConnectionFailed := HttpFailure;
+  FHttpThread.OnHttpWork := HttpWork;
+
+  FLoadBytes := 0;
   FHttpThread.Resume;
 end;
 
@@ -507,6 +522,11 @@ begin
   FOnLoadFailure := Value;
 end;
 
+procedure TBottleLogList.SetOnLoadWork(const Value: TNotifyEvent);
+begin
+  FOnLoadWork := Value;
+end;
+
 procedure TBottleLogList.SetSelectedIndex(const Value: integer);
 begin
   FSelectedIndex := Value;
index 50c3ea0..76ae77d 100755 (executable)
@@ -2185,6 +2185,7 @@ begin
         BottleLog := TBottleLogList.Create(Title);
         BottleLog.OnLoaded := frmLog.LogLoaded;
         BottleLog.OnLoadFailure := frmLog.LogLoadFailure;
+        BottleLog.OnLoadWork := frmLog.LogLoadWork;
         with frmLogDownload do begin
           Cond.IsRange := IsRange;
           Cond.RecentCount := RecentCount;