Browse Source

CH: bug fixed for copy and cut (due to new clipboard ring)

Jean-Francois Goulet 20 years ago
parent
commit
5659b6af79
6 changed files with 63 additions and 21 deletions
  1. 1 1
      LuaEdit/Bin/Caller.lua
  2. BIN
      LuaEdit/Bin/LuaEdit.exe
  3. 2 2
      LuaEdit/LuaEdit.dof
  4. BIN
      LuaEdit/LuaEdit.res
  5. 0 1
      LuaEdit/Main.dfm
  6. 60 17
      LuaEdit/Main.pas

+ 1 - 1
LuaEdit/Bin/Caller.lua

@@ -1,4 +1,4 @@
-dofile(".\Function.lua")
+dofile(".\\Function.lua")
 local addition = 0
 
 function test(param1)

BIN
LuaEdit/Bin/LuaEdit.exe


+ 2 - 2
LuaEdit/LuaEdit.dof

@@ -115,7 +115,7 @@ AutoIncBuild=1
 MajorVer=2
 MinorVer=0
 Release=1
-Build=567
+Build=570
 Debug=0
 PreRelease=0
 Special=0
@@ -126,7 +126,7 @@ CodePage=1252
 [Version Info Keys]
 CompanyName=Open Source
 FileDescription=IDE for Lua 5.0.2
-FileVersion=2.0.1.567
+FileVersion=2.0.1.570
 InternalName=LuaEdit
 LegalCopyright=LuaEdit Copyright 2004-2005 ©
 LegalTrademarks=

BIN
LuaEdit/LuaEdit.res


+ 0 - 1
LuaEdit/Main.dfm

@@ -372,7 +372,6 @@ object frmMain: TfrmMain
         Left = 66
         Top = 0
         Action = actCut
-        DropdownMenu = mnuReopen
         ParentShowHint = False
         ShowHint = True
       end

+ 60 - 17
LuaEdit/Main.pas

@@ -29,9 +29,7 @@ const
   BKPT_ENABLED  = 1;
 
   JVPAGE_RING_FILES     = 0;
-  JVPAGE_RING_UNDO      = 1;
-  JVPAGE_RING_REDO      = 1;
-  JVPAGE_RING_CLIPBOARD = 3;
+  JVPAGE_RING_CLIPBOARD = 1;
 
   HOOK_MASK    = LUA_MASKCALL or LUA_MASKRET or LUA_MASKLINE;
   PRINT_SIZE   = 32;
@@ -2714,31 +2712,76 @@ end;
 procedure TfrmMain.actCutExecute(Sender: TObject);
 var
   jvOBBtn: TJvOutlookBarButton;
+  x: Integer;
+  pLuaUnit: TLuaUnit;
 begin
-  TLuaUnit(jvUnitBar.SelectedTab.Data).synUnit.CutToClipboard;
+  if Assigned(jvUnitBar.SelectedTab) then
+  begin
+    if Assigned(jvUnitBar.SelectedTab.Data) then
+    begin
+      pLuaUnit := TLuaUnit(jvUnitBar.SelectedTab.Data);
+  
+      if pLuaUnit.synUnit.SelText <> '' then
+      begin
+        pLuaUnit.synUnit.CutToClipboard;
 
-  // Remove last item if already 10 are listed
-  if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count = 10 then
-    frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Delete(9);
+        // Make sure we don't add content that was already there
+        for x := 0 to frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count - 1 do
+        begin
+          if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons[x].Caption = pLuaUnit.synUnit.SelText then
+          begin
+            frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons[x].Free;
+            Break;
+          end;
+        end;
 
-  jvOBBtn := frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Insert(0);
-  jvOBBtn.Caption := Clipboard.AsText;
-  jvOBBtn.OnClick := btnXClipboardClick;
+        // Remove last item if already 10 are listed
+        if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count = 10 then
+          frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Delete(9);
+
+        jvOBBtn := frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Insert(0);
+        jvOBBtn.Caption := Clipboard.AsText;
+        jvOBBtn.OnClick := btnXClipboardClick;
+      end;
+    end;
+  end;
 end;
 
 procedure TfrmMain.actCopyExecute(Sender: TObject);
 var
   jvOBBtn: TJvOutlookBarButton;
+  x: Integer;
+  pLuaUnit: TLuaUnit;
 begin
-  TLuaUnit(jvUnitBar.SelectedTab.Data).synUnit.CopyToClipboard;
+  if Assigned(jvUnitBar.SelectedTab) then
+  begin
+    if Assigned(jvUnitBar.SelectedTab.Data) then
+    begin
+      pLuaUnit := TLuaUnit(jvUnitBar.SelectedTab.Data);
+      if pLuaUnit.synUnit.SelText <> '' then
+      begin
+        pLuaUnit.synUnit.CopyToClipboard;
 
-  // Remove last item if already 10 are listed
-  if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count = 10 then
-    frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Delete(9);
+        // Make sure we don't add content that was already there
+        for x := 0 to frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count - 1 do
+        begin
+          if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons[x].Caption = pLuaUnit.synUnit.SelText then
+          begin
+            frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons[x].Free;
+            Break;
+          end;
+        end;
+
+        // Remove last item if already 10 are listed
+        if frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Count = 10 then
+          frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Delete(9);
 
-  jvOBBtn := frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Insert(0);
-  jvOBBtn.Caption := Clipboard.AsText;
-  jvOBBtn.OnClick := btnXClipboardClick;
+        jvOBBtn := frmRings.jvRings.Pages[JVPAGE_RING_CLIPBOARD].Buttons.Insert(0);
+        jvOBBtn.Caption := Clipboard.AsText;
+        jvOBBtn.OnClick := btnXClipboardClick;
+      end;
+    end;
+  end;
 end;
 
 procedure TfrmMain.actPasteExecute(Sender: TObject);