Przeglądaj źródła

修改异步发送消息的bug

lqq 9 lat temu
rodzic
commit
c4a1de4e07

+ 8 - 3
Client/FileTransimt/UploaderTask.pas

@@ -147,8 +147,14 @@ var
   FileStream: TIdMultiPartFormDataStream;
   i: Integer;
 begin
+  if FFiles.Count = 0 then
+  begin
+    Result := False;
+    Exit;
+  end;
   try
     FIdHTTP := TIdHTTP.Create(nil);
+    FileStream := TIdMultiPartFormDataStream.Create;
     FIdHTTP.Request.ContentType := 'multipart/form-data';
     Result := True;       
     for I := 0 to FFiles.Count - 1 do
@@ -156,7 +162,7 @@ begin
       begin
         if FThread.Terminated then
           Exit;                     
-        FileStream := TIdMultiPartFormDataStream.Create;
+
         FileStream.AddFile('file1', FFiles[i], '');
         FIdHTTP.Post(FRemote, FileStream);
         FreeAndNil(FileStream);
@@ -174,8 +180,7 @@ begin
       Error(E.Message, 'TUploaderTask.Run');
     end;
   end;
-  if Assigned(FileStream) then
-    FileStream.Free;
+  FileStream.Free;
   FIdHTTP.Free;
 end;
 

Plik diff jest za duży
+ 1 - 1
Client/Lxtalk.dproj


BIN
Client/Lxtalk.res


+ 9 - 9
Client/MainFrm.dfm

@@ -11050,7 +11050,7 @@ object MainForm: TMainForm
     Left = 463
     Top = 441
     Bitmap = {
-      494C010108000900100320002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101080009001C0320002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       00000000000036000000280000008000000060000000010020000000000000C0
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -13627,7 +13627,7 @@ object MainForm: TMainForm
     Left = 367
     Top = 440
     Bitmap = {
-      494C010106000900100310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101060009001C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000002000000001002000000000000020
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000010185A0018299C002139
@@ -14027,7 +14027,7 @@ object MainForm: TMainForm
     Left = 400
     Top = 440
     Bitmap = {
-      494C010101000400100310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101010004001C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000001000000001002000000000000010
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -14201,7 +14201,7 @@ object MainForm: TMainForm
     Left = 496
     Top = 442
     Bitmap = {
-      494C010102000400100310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101020004001C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000001000000001002000000000000010
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -14585,7 +14585,7 @@ object MainForm: TMainForm
     Left = 366
     Top = 472
     Bitmap = {
-      494C010102000400100310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101020004001C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000001000000001002000000000000010
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -14728,7 +14728,7 @@ object MainForm: TMainForm
     Left = 399
     Top = 473
     Bitmap = {
-      494C010103000400100310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101030004001C0310001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000400000001000000001002000000000000010
       0000000000000000000000000000000000000000000000000000000000000000
       0000949494009494940094949400949494009494940094949400949494009494
@@ -14873,7 +14873,7 @@ object MainForm: TMainForm
     Left = 335
     Top = 440
     Bitmap = {
-      494C010105000900100318001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101050009001C0318001800FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       0000000000003600000028000000600000003000000001002000000000000048
       0000000000000000000000000000000000000000000000000000000000000000
       0000000000000000000000000000000000000000000000000000000000000000
@@ -15761,7 +15761,7 @@ object MainForm: TMainForm
     Left = 280
     Top = 72
     Bitmap = {
-      494C01010600090010030B000B00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101060009001C030B000B00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       00000000000036000000280000002C000000160000000100200000000000200F
       00000000000000000000000000000000000000000000000000008CA5C6001852
       B5001839C6001831BD001839C6001852B5008CA5C60000000000000000000000
@@ -15900,7 +15900,7 @@ object MainForm: TMainForm
     Left = 312
     Top = 72
     Bitmap = {
-      494C010106000900100309000900FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
+      494C0101060009001C0309000900FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600
       000000000000360000002800000024000000120000000100200000000000200A
       00000000000000000000000000000000000000000000F7F7F7002163B5001842
       C6002139C6001842C6002163B500F7F7F7000000000000000000F7F7F7002984

+ 3 - 4
Client/MainFrm.pas

@@ -10829,7 +10829,6 @@ begin
     FDBHistory.SaveMessage('-1', RealICQMessage.Sender, RealICQMessage.Receiver, RealICQMessage.SendDateTime, RealICQMessage.FontStr, RealICQMessage.MessageStr, RealICQMessage.IsEncryMessage);
     if RealICQMessage.IsEncryMessage then
       RealICQMessage.ID := FDBHistory.GetMaxMessageId;
-
   except
   end;
 
@@ -11519,9 +11518,9 @@ var
   RealICQUser: TRealICQUser;
   ALoginName: string;
 begin
-
   ShowRealICQMessage(RealICQMessage, False, Sender as TRealICQClient);
-  
+
+
   {$region '更新“最近联系人列表”中的数据'}
   if Sender = RealICQClient then
   begin
@@ -11529,7 +11528,6 @@ begin
       ALoginName := RealICQMessage.Sender
     else
       ALoginName := RealICQMessage.Receiver;
-
     RealICQUser := TUsersService.GetUsersService.GetOrRequestUser(ALoginName);
     if RealICQUser <> nil then
     begin
@@ -11543,6 +11541,7 @@ begin
     end;
   end;
   {$endregion}
+
 end;
 
 //------------------------------------------------------------------------------

+ 23 - 5
Controls/RealICQClient/RealICQClient.pas

@@ -15659,7 +15659,7 @@ begin
     Exit;
   end;
   with msg do
-  begin   
+  begin
     MessageID := GetTickCount;
     while SendedMessages.IndexOf(IntToStr(MessageID)) >= 0 do
     begin
@@ -15681,11 +15681,29 @@ begin
   try
     RealICQMessage := TRealICQMessage.Create(FRealICQClient.LoginName, FLoginName, AFontStr, AMessageStr, IsEncry);
     RealICQMessage.SendDateTime := Now;
-    ATask := TFacesUploaderTask.Create(TGroupConfig.GetConfig.ImageHost, AFaces, AThreadPool.AcquireYarn);
-    ATask.Data := RealICQMessage;
-    ATask.OnCompleted := OnFacesUploaded;
-    AThreadPool.StartYarn(ATask.Yarn, ATask);
     FRealICQClient.DoSendedMessage(RealICQMessage);
+    if AFaces.Count > 0 then
+    begin
+      ATask := TFacesUploaderTask.Create(TGroupConfig.GetConfig.ImageHost, AFaces, AThreadPool.AcquireYarn);
+      ATask.Data := RealICQMessage;
+      ATask.OnCompleted := OnFacesUploaded;
+      AThreadPool.StartYarn(ATask.Yarn, ATask);
+    end
+    else
+    begin
+      
+      with RealICQMessage do
+      begin
+        MessageID := GetTickCount;
+        while SendedMessages.IndexOf(IntToStr(MessageID)) >= 0 do
+        begin
+          Sleep(100);
+          MessageID := GetTickCount;
+        end;
+        SendedMessages.InsertObject(0, IntToStr(MessageID), RealICQMessage);
+        SendMessageMessage(IsEncryMessage, FontStr, MessageStr, MessageID, SendDateTime);
+      end;
+    end;                  
   finally
     TRealICQUtility.FreeStringList(AFaces as TStringList);
   end;

Plik diff jest za duży
+ 1 - 1
Controls/RealICQComponents.dproj


BIN
Controls/RealICQComponents.res


+ 2 - 0
Controls/RealICQUI/RealICQContacterListView.pas

@@ -1815,6 +1815,8 @@ begin
           ACaption := ListItem.DisplayName + '£¨'+ListItem.Branch+'£©'
         else
           ACaption := ListItem.DisplayName;
+        if ACaption = '' then
+          ACaption := ListItem.LoginName;
 
         ACanvas.Brush.Style := bsClear;
         ACanvas.Font := FListView.Font;

+ 1 - 1
ZWT/Config/customer.config

@@ -1 +1 @@
-{"showGuideView":true}
+{"showGuideView":false}

Plik diff jest za duży
+ 2 - 2
ZWT/XML/ClientConfig.xml


+ 4 - 4
ZWT/XML/DefaultConfig.xml

@@ -2,12 +2,12 @@
 <DefaultConfig>
 	<SkinName Value="VStyle"/>
 	<UIMainColor Value="15392442"/>
-	<MainFormLeft Value="1695"/>
+	<MainFormLeft Value="1108"/>
 	<MainFormTop Value="370"/>
-	<MainFormWidth Value="-300"/>
+	<MainFormWidth Value="258"/>
 	<MainFormHeight Value="734"/>
-	<TalkingFormLeft Value="1308"/>
-	<TalkingFormTop Value="340"/>
+	<TalkingFormLeft Value="420"/>
+	<TalkingFormTop Value="97"/>
 	<TalkingFormWidth Value="663"/>
 	<TalkingFormHeight Value="507"/>
 	<ShowMainFormOnStart Value="True"/>