From be7ba8d1a2895b839bb4cf3daf032ed6efc25b82 Mon Sep 17 00:00:00 2001
From: Basile Burg <basile.burg@gmx.com>
Date: Sun, 20 Jul 2014 12:38:38 +0200
Subject: [PATCH] alpha_4

---
 src/ce_editor.pas         |  2 +-
 src/ce_main.pas           |  3 ++-
 src/ce_miniexplorer.pas   |  6 +++---
 src/ce_projconf.pas       |  2 +-
 src/ce_search.pas         |  2 ++
 src/ce_staticexplorer.pas |  8 ++++++--
 src/ce_synmemo.pas        | 13 +++++--------
 7 files changed, 20 insertions(+), 16 deletions(-)

diff --git a/src/ce_editor.pas b/src/ce_editor.pas
index 7bc7150c..5fd88c81 100644
--- a/src/ce_editor.pas
+++ b/src/ce_editor.pas
@@ -149,7 +149,7 @@ begin
   sheet := pageControl.AddTabSheet;
   memo  := TCESynMemo.Create(sheet);
   //
-  memo.Align:=alClient;
+  memo.Align := alClient;
   memo.Parent := sheet;
   //
   memo.OnKeyDown := @memoKeyDown;
diff --git a/src/ce_main.pas b/src/ce_main.pas
index 95b13ea9..d601308b 100644
--- a/src/ce_main.pas
+++ b/src/ce_main.pas
@@ -367,7 +367,7 @@ begin
     DockMaster.GetAnchorSite(fProjWidg), alBottom, fProjWidg);
   DockMaster.GetAnchorSite(fEditWidg).Header.HeaderPosition := adlhpTop;
 
-  //DockMaster.GetAnchorSite(fExplWidg).Close;
+  DockMaster.GetAnchorSite(fExplWidg).Close;
 end;
 
 procedure TCEMainForm.InitSettings;
@@ -1076,6 +1076,7 @@ begin
 
 
     fMesgWidg.addCeInf( 'compiling ' + aProject.fileName, msProject);
+    application.ProcessMessages;
 
     prjpath := extractFilePath(aProject.fileName);
     if directoryExists(prjpath) then chDir(prjpath);
diff --git a/src/ce_miniexplorer.pas b/src/ce_miniexplorer.pas
index 19de668c..a5c0c27a 100644
--- a/src/ce_miniexplorer.pas
+++ b/src/ce_miniexplorer.pas
@@ -67,8 +67,8 @@ implementation
 uses
   ce_main, ce_common;
 
-//TODO-cbugfix: click on the expander glyph, sometime the subdirs are not scanned but the
-//fake sub still displayed
+//TODO-cbugfix: click on the expander glyph, sometime the subdirs are not scanned but the fake sub item is still displayed
+//TODO-cfeature: the linux version doesnt work at all
 
 {$REGION Standard Comp/Obj------------------------------------------------------}
 constructor TCEMiniExplorerWidget.create(aIwner: TComponent);
@@ -321,7 +321,7 @@ begin
       itm.SelectedIndex := 1;
       //
       if hasFolder(fold) then
-        Tree.Items.AddChild(itm,''); //...created here to show the expander glyph
+        Tree.Items.AddChild(itm, ''); //...created here to show the expander glyph
     end;
   finally
     lst.Free;
diff --git a/src/ce_projconf.pas b/src/ce_projconf.pas
index 4951ad2f..a3552ab3 100644
--- a/src/ce_projconf.pas
+++ b/src/ce_projconf.pas
@@ -67,7 +67,7 @@ end;
 procedure TCEProjectConfigurationWidget.projClose(const aProject: TCEProject);
 begin
   Grid.TIObject := nil;
-  Grid.ItemIndex :=-1;
+  Grid.ItemIndex := -1;
   fProj := nil;
 end;
 
diff --git a/src/ce_search.pas b/src/ce_search.pas
index 457ef2e9..04b74955 100644
--- a/src/ce_search.pas
+++ b/src/ce_search.pas
@@ -275,6 +275,7 @@ begin
 end;
 {$ENDREGION}
 
+{$REGION Misc. -----------------------------------------------------------------}
 procedure TCESearchWidget.cbToFindChange(Sender: TObject);
 begin
   if Updating then exit;
@@ -306,6 +307,7 @@ begin
   cbToFind.Items.Assign(fSearchMru);
   cbReplaceWth.Items.Assign(fReplaceMru);
 end;
+{$ENDREGION}
 
 end.
 
diff --git a/src/ce_staticexplorer.pas b/src/ce_staticexplorer.pas
index ab28c26e..d0b5c2b0 100644
--- a/src/ce_staticexplorer.pas
+++ b/src/ce_staticexplorer.pas
@@ -76,6 +76,8 @@ type
 implementation
 {$R *.lfm}
 
+uses ce_main;
+
 {$REGION Standard Comp/Obj------------------------------------------------------}
 constructor TCEStaticExplorerWidget.create(aOwner: TComponent);
 begin
@@ -321,7 +323,7 @@ var
   jsf, scf: string;
   ndCat: TTreeNode;
   ln: PInt64;
-  nme: string;
+  nme, knd: string;
   i: NativeInt;
 
   // recursively display members, without master categories.
@@ -435,7 +437,8 @@ begin
       ln^ := memb.Items[i].GetPath('line').AsInt64;
       nme := memb.Items[i].GetPath('name').AsString;
 
-      case memb.Items[i].GetPath('kind').AsString of
+      knd := memb.Items[i].GetPath('kind').AsString;
+      case knd of
         'alias'     :ndCat := Tree.Items.AddChildObject(ndAlias, nme, ln);
         'class'     :ndCat := Tree.Items.AddChildObject(ndClass, nme, ln);
         'enum'      :ndCat := Tree.Items.AddChildObject(ndEnum, nme, ln);
@@ -447,6 +450,7 @@ begin
         'struct'    :ndCat := Tree.Items.AddChildObject(ndStruct, nme, ln);
         'template'  :ndCat := Tree.Items.AddChildObject(ndTmp, nme, ln);
         'variable'  :ndCat := Tree.Items.AddChildObject(ndVar, nme, ln);
+        else CEMainForm.MessageWidget.addCeWarn('static explorer does not handle this kind: ' + knd);
       end;
 
       if ndCat = nil then
diff --git a/src/ce_synmemo.pas b/src/ce_synmemo.pas
index f5d5049f..e5cbc1a8 100644
--- a/src/ce_synmemo.pas
+++ b/src/ce_synmemo.pas
@@ -14,7 +14,6 @@ type
   private
     fFilename: string;
     fModified: boolean;
-    fNoDateCheck: boolean;
     fFileDate: double;
     fAssocProject: TCEProject;
     fIsDSource: boolean;
@@ -52,7 +51,7 @@ var
 implementation
 
 uses
-  graphics, ce_main;
+  graphics, ce_main, forms, ExtendedNotebook, comctrls;
 
 constructor TCESynMemo.Create(aOwner: TComponent);
 begin
@@ -124,7 +123,6 @@ begin
   Lines.LoadFromFile(aFilename);
   fFilename := aFilename;
   FileAge(fFilename, fFileDate);
-  fNoDateCheck := false;
   fModified := false;
 end;
 
@@ -133,7 +131,6 @@ begin
   Lines.SaveToFile(aFilename);
   fFilename := aFilename;
   FileAge(fFilename, fFileDate);
-  fNoDateCheck := false;
   fModified := false;
 end;
 
@@ -141,7 +138,6 @@ procedure TCESynMemo.save;
 begin
   Lines.SaveToFile(fFilename);
   FileAge(fFilename, fFileDate);
-  fNoDateCheck := false;
   fModified := false;
 end;
 
@@ -158,8 +154,8 @@ begin
     begin
       Lines.LoadFromFile(fFilename);
       fModified := false;
-    end
-    else fNoDateCheck := true;
+    end;
+    //TODO-cbugfix: the cursor is incorrectly set to crDragSomething.
   end;
   fFileDate := newDate;
 end;
@@ -173,7 +169,8 @@ end;
 procedure TCESynMemo.MouseMove(Shift: TShiftState; X, Y: Integer);
 begin
   inherited;
-  identifierToD2Syn;
+  if ssLeft in Shift then
+    identifierToD2Syn;
 end;
 
 procedure TCESynMemo.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y:Integer);