From 94ddae34ade78f6568bd75ed01e28137bfb4e35e Mon Sep 17 00:00:00 2001 From: Basile Burg Date: Mon, 28 Jul 2014 07:54:21 +0200 Subject: [PATCH] r26 --- RevisionLog.txt | 4 +++ lazproj/PluginApi/DTemplate/CoeditPlug.coedit | 3 ++ lazproj/PluginApi/DTemplate/CoeditPlug.d | 7 ++--- lazproj/coedit.lpi | 1 + lazproj/coedit.lpr | 6 +--- src/ce_common.pas | 3 +- src/ce_libman.pas | 2 +- src/ce_libmaneditor.pas | 28 +++++++++++-------- src/ce_miniexplorer.pas | 20 +------------ src/ce_plugin.pas | 6 ++-- 10 files changed, 34 insertions(+), 46 deletions(-) diff --git a/RevisionLog.txt b/RevisionLog.txt index 91952211..7117025f 100644 --- a/RevisionLog.txt +++ b/RevisionLog.txt @@ -1,6 +1,10 @@ Revision log. (single changes can be tracked with the GH commit messages) +r26: +- ce_libmaneditor: added support for folder of library (e.g derelict). +- ce_main: run project, fix, projects couldn't be executed when not saved. + r25: - ce_plugin: added a plug-in API. D example. final goal is to use it to wrap D Completion Daemon and other D libs. - ce_libman: library manager: additional sources and -I are automatically added to the options. diff --git a/lazproj/PluginApi/DTemplate/CoeditPlug.coedit b/lazproj/PluginApi/DTemplate/CoeditPlug.coedit index 4a01f61a..60a82d04 100644 --- a/lazproj/PluginApi/DTemplate/CoeditPlug.coedit +++ b/lazproj/PluginApi/DTemplate/CoeditPlug.coedit @@ -36,4 +36,7 @@ object CurrentProject: TCEProject 'CoeditPlug.d' ) ConfigurationIndex = 1 + LibraryAliases.Strings = ( + 'iz' + ) end diff --git a/lazproj/PluginApi/DTemplate/CoeditPlug.d b/lazproj/PluginApi/DTemplate/CoeditPlug.d index fb60e7c2..41e1bc42 100644 --- a/lazproj/PluginApi/DTemplate/CoeditPlug.d +++ b/lazproj/PluginApi/DTemplate/CoeditPlug.d @@ -18,6 +18,7 @@ it just instanciates fine. import std.stdio, std.string, std.conv; import CoeditPlugApi; +import iz.types; version(Posix) { @@ -28,17 +29,15 @@ else import core.sys.windows.dll; } - import iz.types; - pragma( lib, "iz"); coeditPlug plugin; -class coeditPlug :izObject +class coeditPlug: izObject { protected { plugDispatchToHostProc fDispatcher; - Plugin_t asPlugin_t(){return cast(Plugin_t)this;} + Plugin_t asPlugin_t(){return cast(Plugin_t)&this;} } public { diff --git a/lazproj/coedit.lpi b/lazproj/coedit.lpi index 45c93bb5..97aab566 100644 --- a/lazproj/coedit.lpi +++ b/lazproj/coedit.lpi @@ -112,6 +112,7 @@ + diff --git a/lazproj/coedit.lpr b/lazproj/coedit.lpr index 91797ab3..04e1fe75 100644 --- a/lazproj/coedit.lpr +++ b/lazproj/coedit.lpr @@ -7,11 +7,7 @@ uses cthreads, {$ENDIF}{$ENDIF} Interfaces, Forms, lazcontrols, runtimetypeinfocontrols, anchordockpkg, - AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, - ce_widget, ce_dmdwrap, ce_common, ce_synmemo, ce_main, ce_messages, ce_editor, - ce_projinspect, ce_projconf, jsonparser, ce_project, ce_widgettypes, - ce_staticexplorer, ce_search, ce_dlang, ce_dlangutils, ce_miniexplorer, - ce_plugin, ce_libman, ce_libmaneditor; + AnchorDocking, AnchorDockStorage, AnchorDockOptionsDlg, ce_main; {$R *.res} diff --git a/src/ce_common.pas b/src/ce_common.pas index c0011121..113a2050 100644 --- a/src/ce_common.pas +++ b/src/ce_common.pas @@ -12,7 +12,6 @@ uses ActnList, dialogs, forms, process; const - DdiagFilter = 'D source|*.d|D interface|*.di|All files|*.*'; var @@ -580,7 +579,7 @@ begin {$ENDIF} {$IFDEF LINUX} // aList.LoadFromFile('/etc/fstab'); // to be parsed - aList.Add('/home/'); + aList.Add('/home/'); //TODO-cbugfix: AV when scanning non-users folder (e.g replace '/home/'' with '/') {$ENDIF} end; diff --git a/src/ce_libman.pas b/src/ce_libman.pas index 17a0c33b..cceae002 100644 --- a/src/ce_libman.pas +++ b/src/ce_libman.pas @@ -106,7 +106,7 @@ begin if someAliases.IndexOf(itmt.libAlias) = -1 then continue; // if aList.IndexOf(itmt.libFile) <> -1 then continue; - aList.Add('-I'+ itmt.libFile); + aList.Add('-I' + itmt.libFile); end; end; diff --git a/src/ce_libmaneditor.pas b/src/ce_libmaneditor.pas index ef6a2f82..c5648a2d 100644 --- a/src/ce_libmaneditor.pas +++ b/src/ce_libmaneditor.pas @@ -10,8 +10,6 @@ uses type - { TCELibManEditorWidget } - TCELibManEditorWidget = class(TCEWidget) btnSelFile: TBitBtn; btnAddLib: TBitBtn; @@ -42,7 +40,7 @@ uses procedure TCELibManEditorWidget.ListEdited(Sender: TObject; Item: TListItem; var AValue: string); begin - GridToData; + gridToData; end; procedure TCELibManEditorWidget.btnAddLibClick(Sender: TObject); @@ -65,7 +63,7 @@ begin al := List.Selected.Caption; if inputQuery('library alias', '', al) then List.Selected.Caption := al; - GridToData; + gridToData; end; procedure TCELibManEditorWidget.btnRemLibClick(Sender: TObject); @@ -91,11 +89,17 @@ begin try filename := ini; if execute then - List.Selected.SubItems[0] := filename; + begin + //TODO-cwiki: 'a folder containing many .lib can be added with an invalid fname' + if not fileExists(filename) then + List.Selected.SubItems[0] := extractFilePath(filename) + else + List.Selected.SubItems[0] := filename; + end; finally Free; end; - GridToData; + gridToData; end; procedure TCELibManEditorWidget.btnSelRootClick(Sender: TObject); @@ -113,7 +117,7 @@ begin end; if selectDirectory('sources root', dir, outdir, true, 0) then List.Selected.SubItems[1] := outdir; - GridToData; + gridToData; end; procedure TCELibManEditorWidget.DoShow; @@ -145,7 +149,7 @@ end; procedure TCELibManEditorWidget.gridToData; var - itmt: TLibraryItem; + itm: TLibraryItem; row: TListItem; begin with CEMainForm do @@ -154,10 +158,10 @@ begin LibraryManager.libraries.Clear; for row in List.Items do begin - itmt := TLibraryItem(LibraryManager.libraries.Add); - itmt.libAlias := row.Caption; - itmt.libFile := row.SubItems.Strings[0]; - itmt.libSourcePath := row.SubItems.Strings[1]; + itm := TLibraryItem(LibraryManager.libraries.Add); + itm.libAlias := row.Caption; + itm.libFile := row.SubItems.Strings[0]; + itm.libSourcePath := row.SubItems.Strings[1]; end; end; end; diff --git a/src/ce_miniexplorer.pas b/src/ce_miniexplorer.pas index 9a89958f..c48d73a7 100644 --- a/src/ce_miniexplorer.pas +++ b/src/ce_miniexplorer.pas @@ -41,9 +41,6 @@ type procedure treeScanSubFolders(aRoot: TTreeNode); procedure treeClick(sender: TObject); procedure treeChanged(Sender: TObject; Node: TTreeNode); - procedure treeCollapsed(Sender: TObject; Node: TTreeNode); - procedure treeExpanded(Sender: TObject; Node: TTreeNode); - procedure treeCollapsing(Sender: TObject; Node: TTreeNode; var allow: boolean); procedure treeExpanding(Sender: TObject; Node: TTreeNode; var allow: boolean); procedure treeDeletion(Sender: TObject; Item: TTreeNode); procedure treeSelectionChanged(sender: TObject); @@ -74,14 +71,11 @@ begin lstFiles.OnDeletion := @lstDeletion; lstFav.OnDeletion := @lstDeletion; lstFav.OnSelectItem := @lstFavSelect; - + // Tree.OnClick := @treeClick; Tree.OnChange := @treeChanged; Tree.OnDeletion := @treeDeletion; Tree.OnSelectionChanged := @treeSelectionChanged; - Tree.OnExpanded := @treeExpanded; - Tree.OnCollapsed := @treeCollapsed; - Tree.OnCollapsing := @treeCollapsing; Tree.OnExpanding := @treeExpanding; // treeSetRoots; @@ -323,10 +317,6 @@ begin end; end; -procedure TCEMiniExplorerWidget.treeCollapsing(Sender: TObject; Node: TTreeNode; var allow: boolean); -begin -end; - procedure TCEMiniExplorerWidget.treeExpanding(Sender: TObject; Node: TTreeNode; var allow: boolean); begin if Node <> nil then @@ -334,14 +324,6 @@ begin allow := true; end; -procedure TCEMiniExplorerWidget.treeCollapsed(Sender: TObject; Node: TTreeNode); -begin -end; - -procedure TCEMiniExplorerWidget.treeExpanded(Sender: TObject; Node: TTreeNode); -begin -end; - procedure TCEMiniExplorerWidget.treeChanged(Sender: TObject; Node: TTreeNode); begin if Node = nil then exit; diff --git a/src/ce_plugin.pas b/src/ce_plugin.pas index 864cec0a..31a0b470 100644 --- a/src/ce_plugin.pas +++ b/src/ce_plugin.pas @@ -50,8 +50,8 @@ const EV_CHANGED = $00000001; /// something's just been selected. EV_FOCUSED = $00000002; - /// something's just been closed. - EV_CLOSED = $00000003; + /// something will be closed. + EV_CLOSE = $00000003; /// something's just been created. EV_NEW = $00000004; /// something gonna be compiled. @@ -130,7 +130,7 @@ type * Coedit events and data are passed here. data1 and data2 can be casted according to opCode. * In the plugin implementation, it must be named 'dispatchToPlug'. *) - THostDispatchToPlug = procedure(aTarget: TCEPlugin; data0: Integer; opCode: LongWord; data1, data2: Pointer); cdecl; + THostDispatchToPlug = procedure(aTarget: TCEPlugin; opCode: LongWord; data0: Integer; data1, data2: Pointer); cdecl;