From: <jfu...@us...> - 2009-03-10 00:04:43
|
Revision: 12230 http://jvcl.svn.sourceforge.net/jvcl/?rev=12230&view=rev Author: jfudickar Date: 2009-03-10 00:04:39 +0000 (Tue, 10 Mar 2009) Log Message: ----------- New Help Unit JvJclUnitVersioningBrowser to show the JCL Unit Versioning Informations Added Paths: ----------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Added: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas (rev 0) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:04:39 UTC (rev 12230) @@ -0,0 +1,303 @@ +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvJCLUtils.pas, released on 2002-07-04. + +The Initial Developers of the Original Code are: Andrei Prygounkov <a dott prygounkov att gmx dott de> +Copyright (c) 1999, 2002 Andrei Prygounkov +All Rights Reserved. + +Contributor(s): + Andreas Hausladen + Ralf Kaiser + Vladimir Gaitanoff + Dejoy den + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: + +-----------------------------------------------------------------------------} +// $Id: JvJCLUtils.pas 11963 2008-10-16 09:12:52Z obones $ + +unit JvJclUnitVersioningBrowser; + +{$I jvcl.inc} +{$I crossplatform.inc} + +interface + +uses + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + Classes, ComCtrls, Controls, Forms, JvDynControlEngine; + +type + TJvJclUnitVersioningBrowser = class(TPersistent) + private + RCSFilePanel, RevisionPanel, DatePanel, ExtraPanel, PathPanel, LabelControl, + RCSFileEdit, RevisionEdit, DateEdit, ExtraEdit, PathEdit: TWinControl; + { Private-Deklarationen } + UnitVersionForm: TCustomForm; + procedure CloseButtonOnClick(Sender: TObject); + procedure TreeViewOnChange(Sender: TObject; Node: TTreeNode); + public + procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); + end; + +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL: https://jvcl.svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvDSADialogs.pas $'; + Revision: '$Revision: 12216 $'; + Date: '$Date: 2009-02-19 22:33:09 +0100 (Do, 19 Feb 2009) $'; + LogPath: 'JVCL\run' + ); +{$ENDIF UNITVERSIONING} + +implementation + +uses + StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, + JclFileUtils; + +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); +var + JvJclUnitVersioningBrowser : TJvJclUnitVersioningBrowser; +begin + JvJclUnitVersioningBrowser := TJvJclUnitVersioningBrowser.Create; + try + JvJclUnitVersioningBrowser.ShowUnitVersioning(aDynControlEngine); + finally + FreeAndNil(JvJclUnitVersioningBrowser); + end; +end; + +procedure TJvJclUnitVersioningBrowser.CloseButtonOnClick(Sender: TObject); +begin + if Assigned(UnitVersionForm) then + UnitVersionForm.ModalResult := mrOk; +end; + +procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const + aDynControlEngine: tJvDynControlEngine); +var + DynEngine: TJvDynControlEngine; + MainPanel, ButtonPanel: TWinControl; + TopBox, BottomBox: TWinControl; + Button: TButton; + TreeView: TWinControl; + IJvReadOnly: IJvDynControlReadOnly; + IJvTreeView: IJvDynControlTreeView; + I: Integer; + MainNode: TTreeNode; + Nodes: TTreeNodes; + + function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): tTreeNode; + var + Part1, Part2: string; + I: Integer; + begin + Result := nil; + Part2 := iPath; + Part1 := ''; + while (Part1 = '') and (Part2 <> '') do + begin + Part1 := trim(StrBefore('\', Part2)); + Part2 := trim(StrAfter('\', Part2)); + end; + if Part1 <> '' then + begin + for I := 0 to iNode.Count - 1 do + begin + if iNode.Item[I].Text = Part1 then + begin + Result := FindMasterNode(iNodes, iNode.Item[I], Part2); + break; + end; + end; + if Result = nil then + begin + Result := iNodes.AddChild(iNode, Part1); + Result := FindMasterNode(iNodes, Result, Part2); + end; + end + else + Result := iNode; + end; + +begin + if Assigned(aDynControlEngine) then + DynEngine := aDynControlEngine + else + DynEngine := DefaultDynControlEngine; + UnitVersionForm := DynEngine.CreateForm('Unit Versioning', ''); + try + if UnitVersionForm is TForm then + TForm(UnitVersionForm).Position := poScreenCenter; + UnitVersionForm.Width := 500; + UnitVersionForm.Height := 500; + ButtonPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'ButtonPanel', '', alBottom); + MainPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'MainPanel', '', alClient); + if MainPanel is TPanel then + TPanel(MainPanel).borderWidth := 3; + Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'CloseBtn', 'Close', '', CloseButtonOnClick, True, + True); + Button.Left := Round((UnitVersionForm.Width - Button.Width) / 2); + ButtonPanel.Height := Button.Height + 6; + Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); + BottomBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'BottomBox', 'Details'); + BottomBox.Align := alBottom; + TopBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'TopBox', 'Unit Versions'); + TopBox.Align := alClient; + TreeView := DynEngine.CreateTreeViewControl(UnitVersionForm, TopBox, 'TreeView'); + TreeView.Align := alClient; + RCSFilePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RCSFilePanel', '', alTop); + RCSFilePanel.Align := alTop; + RCSFileEdit := DynEngine.CreateEditControl(UnitVersionForm, RCSFilePanel, 'RCSFileEdit'); + RCSFileEdit.Width := 380; + if Supports(RCSFileEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RCSFilePanel, 'RCSFileLabel', 'RCS File', + RCSFileEdit, False, 80); + RCSFilePanel.Height := RCSFileEdit.Height + 1; + RevisionPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RevisionPanel', '', alTop); + RevisionPanel.Align := alTop; + RevisionEdit := DynEngine.CreateEditControl(UnitVersionForm, RevisionPanel, 'RevisionEdit'); + RevisionEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RevisionPanel, 'RevisionLabel', 'Revision', + RevisionEdit, False, 80); + if Supports(RevisionEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + RevisionPanel.Height := RevisionEdit.Height + 1; + DatePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'DatePanel', '', alTop); + DatePanel.Align := alTop; + DateEdit := DynEngine.CreateEditControl(UnitVersionForm, DatePanel, 'DateEdit'); + DateEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, DatePanel, 'DateLabel', 'Date', DateEdit, False, + 80); + if Supports(DateEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + DatePanel.Height := DateEdit.Height + 1; + PathPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'PathPanel', '', alTop); + PathPanel.Align := alTop; + PathEdit := DynEngine.CreateEditControl(UnitVersionForm, PathPanel, 'PathEdit'); + PathEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, PathPanel, 'PathLabel', 'Path', PathEdit, False, + 80); + if Supports(PathEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + PathPanel.Height := PathEdit.Height + 1; + ExtraPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'ExtraPanel', '', alTop); + ExtraPanel.Align := alTop; + ExtraEdit := DynEngine.CreateMemoControl(UnitVersionForm, ExtraPanel, 'ExtraEdit'); +// if Supports(ExtraEdit, IJvDynControlReadOnly, IJvReadOnly) then +// IJvReadOnly.ControlSetReadOnly(True); + ExtraEdit.Width := 400; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, ExtraPanel, 'ExtraLabel', 'Extra', ExtraEdit, + True, 80); + LabelControl.Width := 80 + PathEdit.Width; + ExtraPanel.Height := LabelControl.Height; + + BottomBox.Height := DatePanel.Height * 4 + 10 + ExtraPanel.Height; + + if Supports(TreeView, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + + if Supports(TreeView, IJvDynControlTreeView, IJvTreeView) then + begin + Nodes := IJvTreeView.ControlGetItems; + Nodes.Clear; + IJvTreeView.ControlSetOnChange(TreeViewOnChange); + MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); + with GetUnitVersioning do + for I := 0 to Count - 1 do + Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Items[I].LogPath), + StrRestOf(Items[I].RCSfile, StrLastPos('/', Items[I].RCSfile)+1) + ' - ' + Items[I].Revision, Items[I]); + IJvTreeView.ControlSetSortType(stText); + if TreeView is TTreeView then + TTreeView(TreeView).FullExpand; + MainNode.Selected := True; + end; + TreeViewOnChange(nil, nil); + UnitVersionForm.ShowModal; + finally + UnitVersionForm.Release; // keep the form created till all used interfaces are cleared + end; +end; + +procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: + TTreeNode); +var + IJvData: IJvDynControlData; +begin + if Assigned(Node) and Assigned(Node.Data) and + (TObject(Node.Data) is TUnitVersion) then + begin + if Supports(RCSFileEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).RCSFile; + RCSFilePanel.Visible := True; + end + else + RCSFilePanel.Visible := False; + if Supports(RevisionEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Revision; + RevisionPanel.Visible := True; + end + else + RevisionPanel.Visible := False; + if Supports(DateEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Date; + DatePanel.Visible := True; + end + else + DatePanel.Visible := False; + if Supports(ExtraEdit, IJvDynControlData, IJvData) and + (TUnitVersion(Node.Data).Extra <> '') then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Extra; + ExtraPanel.Visible := True; + end + else + ExtraPanel.Visible := False; + if Supports(PathEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).LogPath; + PathPanel.Visible := True; + end + else + PathPanel.Visible := False; + end + else + begin + RCSFilePanel.Visible := False; + RevisionPanel.Visible := False; + DatePanel.Visible := False; + ExtraPanel.Visible := False; + PathPanel.Visible := False; + end; +end; + +initialization + {$IFDEF UNITVERSIONING} + RegisterUnitVersion(HInstance, UnitVersioning); + {$ENDIF UNITVERSIONING} +finalization + {$IFDEF UNITVERSIONING} + UnregisterUnitVersion(HInstance); + {$ENDIF UNITVERSIONING} +end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-03-10 00:06:19
|
Revision: 12231 http://jvcl.svn.sourceforge.net/jvcl/?rev=12231&view=rev Author: jfudickar Date: 2009-03-10 00:06:11 +0000 (Tue, 10 Mar 2009) Log Message: ----------- svn Properties added Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Property Changed: ---------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:04:39 UTC (rev 12230) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:06:11 UTC (rev 12231) @@ -1,303 +1,303 @@ -{----------------------------------------------------------------------------- -The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at -http://www.mozilla.org/MPL/MPL-1.1.html - -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for -the specific language governing rights and limitations under the License. - -The Original Code is: JvJCLUtils.pas, released on 2002-07-04. - -The Initial Developers of the Original Code are: Andrei Prygounkov <a dott prygounkov att gmx dott de> -Copyright (c) 1999, 2002 Andrei Prygounkov -All Rights Reserved. - -Contributor(s): - Andreas Hausladen - Ralf Kaiser - Vladimir Gaitanoff - Dejoy den - -You may retrieve the latest version of this file at the Project JEDI's JVCL home page, -located at http://jvcl.sourceforge.net - -Known Issues: - ------------------------------------------------------------------------------} -// $Id: JvJCLUtils.pas 11963 2008-10-16 09:12:52Z obones $ - -unit JvJclUnitVersioningBrowser; - -{$I jvcl.inc} -{$I crossplatform.inc} - -interface - -uses - {$IFDEF UNITVERSIONING} - JclUnitVersioning, - {$ENDIF UNITVERSIONING} - Classes, ComCtrls, Controls, Forms, JvDynControlEngine; - -type - TJvJclUnitVersioningBrowser = class(TPersistent) - private - RCSFilePanel, RevisionPanel, DatePanel, ExtraPanel, PathPanel, LabelControl, - RCSFileEdit, RevisionEdit, DateEdit, ExtraEdit, PathEdit: TWinControl; - { Private-Deklarationen } - UnitVersionForm: TCustomForm; - procedure CloseButtonOnClick(Sender: TObject); - procedure TreeViewOnChange(Sender: TObject; Node: TTreeNode); - public - procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); - end; - -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); - -{$IFDEF UNITVERSIONING} -const - UnitVersioning: TUnitVersionInfo = ( - RCSfile: '$URL: https://jvcl.svn.sourceforge.net:443/svnroot/jvcl/trunk/jvcl/run/JvDSADialogs.pas $'; - Revision: '$Revision: 12216 $'; - Date: '$Date: 2009-02-19 22:33:09 +0100 (Do, 19 Feb 2009) $'; - LogPath: 'JVCL\run' - ); -{$ENDIF UNITVERSIONING} - -implementation - -uses - StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, - JclFileUtils; - -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); -var - JvJclUnitVersioningBrowser : TJvJclUnitVersioningBrowser; -begin - JvJclUnitVersioningBrowser := TJvJclUnitVersioningBrowser.Create; - try - JvJclUnitVersioningBrowser.ShowUnitVersioning(aDynControlEngine); - finally - FreeAndNil(JvJclUnitVersioningBrowser); - end; -end; - -procedure TJvJclUnitVersioningBrowser.CloseButtonOnClick(Sender: TObject); -begin - if Assigned(UnitVersionForm) then - UnitVersionForm.ModalResult := mrOk; -end; - -procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const - aDynControlEngine: tJvDynControlEngine); -var - DynEngine: TJvDynControlEngine; - MainPanel, ButtonPanel: TWinControl; - TopBox, BottomBox: TWinControl; - Button: TButton; - TreeView: TWinControl; - IJvReadOnly: IJvDynControlReadOnly; - IJvTreeView: IJvDynControlTreeView; - I: Integer; - MainNode: TTreeNode; - Nodes: TTreeNodes; - - function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): tTreeNode; - var - Part1, Part2: string; - I: Integer; - begin - Result := nil; - Part2 := iPath; - Part1 := ''; - while (Part1 = '') and (Part2 <> '') do - begin - Part1 := trim(StrBefore('\', Part2)); - Part2 := trim(StrAfter('\', Part2)); - end; - if Part1 <> '' then - begin - for I := 0 to iNode.Count - 1 do - begin - if iNode.Item[I].Text = Part1 then - begin - Result := FindMasterNode(iNodes, iNode.Item[I], Part2); - break; - end; - end; - if Result = nil then - begin - Result := iNodes.AddChild(iNode, Part1); - Result := FindMasterNode(iNodes, Result, Part2); - end; - end - else - Result := iNode; - end; - -begin - if Assigned(aDynControlEngine) then - DynEngine := aDynControlEngine - else - DynEngine := DefaultDynControlEngine; - UnitVersionForm := DynEngine.CreateForm('Unit Versioning', ''); - try - if UnitVersionForm is TForm then - TForm(UnitVersionForm).Position := poScreenCenter; - UnitVersionForm.Width := 500; - UnitVersionForm.Height := 500; - ButtonPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'ButtonPanel', '', alBottom); - MainPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'MainPanel', '', alClient); - if MainPanel is TPanel then - TPanel(MainPanel).borderWidth := 3; - Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'CloseBtn', 'Close', '', CloseButtonOnClick, True, - True); - Button.Left := Round((UnitVersionForm.Width - Button.Width) / 2); - ButtonPanel.Height := Button.Height + 6; - Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); - BottomBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'BottomBox', 'Details'); - BottomBox.Align := alBottom; - TopBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'TopBox', 'Unit Versions'); - TopBox.Align := alClient; - TreeView := DynEngine.CreateTreeViewControl(UnitVersionForm, TopBox, 'TreeView'); - TreeView.Align := alClient; - RCSFilePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RCSFilePanel', '', alTop); - RCSFilePanel.Align := alTop; - RCSFileEdit := DynEngine.CreateEditControl(UnitVersionForm, RCSFilePanel, 'RCSFileEdit'); - RCSFileEdit.Width := 380; - if Supports(RCSFileEdit, IJvDynControlReadOnly, IJvReadOnly) then - IJvReadOnly.ControlSetReadOnly(True); - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RCSFilePanel, 'RCSFileLabel', 'RCS File', - RCSFileEdit, False, 80); - RCSFilePanel.Height := RCSFileEdit.Height + 1; - RevisionPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RevisionPanel', '', alTop); - RevisionPanel.Align := alTop; - RevisionEdit := DynEngine.CreateEditControl(UnitVersionForm, RevisionPanel, 'RevisionEdit'); - RevisionEdit.Width := 380; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RevisionPanel, 'RevisionLabel', 'Revision', - RevisionEdit, False, 80); - if Supports(RevisionEdit, IJvDynControlReadOnly, IJvReadOnly) then - IJvReadOnly.ControlSetReadOnly(True); - RevisionPanel.Height := RevisionEdit.Height + 1; - DatePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'DatePanel', '', alTop); - DatePanel.Align := alTop; - DateEdit := DynEngine.CreateEditControl(UnitVersionForm, DatePanel, 'DateEdit'); - DateEdit.Width := 380; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, DatePanel, 'DateLabel', 'Date', DateEdit, False, - 80); - if Supports(DateEdit, IJvDynControlReadOnly, IJvReadOnly) then - IJvReadOnly.ControlSetReadOnly(True); - DatePanel.Height := DateEdit.Height + 1; - PathPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'PathPanel', '', alTop); - PathPanel.Align := alTop; - PathEdit := DynEngine.CreateEditControl(UnitVersionForm, PathPanel, 'PathEdit'); - PathEdit.Width := 380; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, PathPanel, 'PathLabel', 'Path', PathEdit, False, - 80); - if Supports(PathEdit, IJvDynControlReadOnly, IJvReadOnly) then - IJvReadOnly.ControlSetReadOnly(True); - PathPanel.Height := PathEdit.Height + 1; - ExtraPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'ExtraPanel', '', alTop); - ExtraPanel.Align := alTop; - ExtraEdit := DynEngine.CreateMemoControl(UnitVersionForm, ExtraPanel, 'ExtraEdit'); -// if Supports(ExtraEdit, IJvDynControlReadOnly, IJvReadOnly) then -// IJvReadOnly.ControlSetReadOnly(True); - ExtraEdit.Width := 400; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, ExtraPanel, 'ExtraLabel', 'Extra', ExtraEdit, - True, 80); - LabelControl.Width := 80 + PathEdit.Width; - ExtraPanel.Height := LabelControl.Height; - - BottomBox.Height := DatePanel.Height * 4 + 10 + ExtraPanel.Height; - - if Supports(TreeView, IJvDynControlReadOnly, IJvReadOnly) then - IJvReadOnly.ControlSetReadOnly(True); - - if Supports(TreeView, IJvDynControlTreeView, IJvTreeView) then - begin - Nodes := IJvTreeView.ControlGetItems; - Nodes.Clear; - IJvTreeView.ControlSetOnChange(TreeViewOnChange); - MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); - with GetUnitVersioning do - for I := 0 to Count - 1 do - Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Items[I].LogPath), - StrRestOf(Items[I].RCSfile, StrLastPos('/', Items[I].RCSfile)+1) + ' - ' + Items[I].Revision, Items[I]); - IJvTreeView.ControlSetSortType(stText); - if TreeView is TTreeView then - TTreeView(TreeView).FullExpand; - MainNode.Selected := True; - end; - TreeViewOnChange(nil, nil); - UnitVersionForm.ShowModal; - finally - UnitVersionForm.Release; // keep the form created till all used interfaces are cleared - end; -end; - -procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: - TTreeNode); -var - IJvData: IJvDynControlData; -begin - if Assigned(Node) and Assigned(Node.Data) and - (TObject(Node.Data) is TUnitVersion) then - begin - if Supports(RCSFileEdit, IJvDynControlData, IJvData) then - begin - IJvData.ControlValue := TUnitVersion(Node.Data).RCSFile; - RCSFilePanel.Visible := True; - end - else - RCSFilePanel.Visible := False; - if Supports(RevisionEdit, IJvDynControlData, IJvData) then - begin - IJvData.ControlValue := TUnitVersion(Node.Data).Revision; - RevisionPanel.Visible := True; - end - else - RevisionPanel.Visible := False; - if Supports(DateEdit, IJvDynControlData, IJvData) then - begin - IJvData.ControlValue := TUnitVersion(Node.Data).Date; - DatePanel.Visible := True; - end - else - DatePanel.Visible := False; - if Supports(ExtraEdit, IJvDynControlData, IJvData) and - (TUnitVersion(Node.Data).Extra <> '') then - begin - IJvData.ControlValue := TUnitVersion(Node.Data).Extra; - ExtraPanel.Visible := True; - end - else - ExtraPanel.Visible := False; - if Supports(PathEdit, IJvDynControlData, IJvData) then - begin - IJvData.ControlValue := TUnitVersion(Node.Data).LogPath; - PathPanel.Visible := True; - end - else - PathPanel.Visible := False; - end - else - begin - RCSFilePanel.Visible := False; - RevisionPanel.Visible := False; - DatePanel.Visible := False; - ExtraPanel.Visible := False; - PathPanel.Visible := False; - end; -end; - -initialization - {$IFDEF UNITVERSIONING} - RegisterUnitVersion(HInstance, UnitVersioning); - {$ENDIF UNITVERSIONING} -finalization - {$IFDEF UNITVERSIONING} - UnregisterUnitVersion(HInstance); - {$ENDIF UNITVERSIONING} -end. +{----------------------------------------------------------------------------- +The contents of this file are subject to the Mozilla Public License +Version 1.1 (the "License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/MPL-1.1.html + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for +the specific language governing rights and limitations under the License. + +The Original Code is: JvJCLUtils.pas, released on 2002-07-04. + +The Initial Developers of the Original Code are: Andrei Prygounkov <a dott prygounkov att gmx dott de> +Copyright (c) 1999, 2002 Andrei Prygounkov +All Rights Reserved. + +Contributor(s): + Andreas Hausladen + Ralf Kaiser + Vladimir Gaitanoff + Dejoy den + +You may retrieve the latest version of this file at the Project JEDI's JVCL home page, +located at http://jvcl.sourceforge.net + +Known Issues: + +-----------------------------------------------------------------------------} +// $Id$ + +unit JvJclUnitVersioningBrowser; + +{$I jvcl.inc} +{$I crossplatform.inc} + +interface + +uses + {$IFDEF UNITVERSIONING} + JclUnitVersioning, + {$ENDIF UNITVERSIONING} + Classes, ComCtrls, Controls, Forms, JvDynControlEngine; + +type + TJvJclUnitVersioningBrowser = class(TPersistent) + private + RCSFilePanel, RevisionPanel, DatePanel, ExtraPanel, PathPanel, LabelControl, + RCSFileEdit, RevisionEdit, DateEdit, ExtraEdit, PathEdit: TWinControl; + { Private-Deklarationen } + UnitVersionForm: TCustomForm; + procedure CloseButtonOnClick(Sender: TObject); + procedure TreeViewOnChange(Sender: TObject; Node: TTreeNode); + public + procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); + end; + +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); + +{$IFDEF UNITVERSIONING} +const + UnitVersioning: TUnitVersionInfo = ( + RCSfile: '$URL$'; + Revision: '$Revision$'; + Date: '$Date$'; + LogPath: 'JVCL\run' + ); +{$ENDIF UNITVERSIONING} + +implementation + +uses + StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, + JclFileUtils; + +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); +var + JvJclUnitVersioningBrowser : TJvJclUnitVersioningBrowser; +begin + JvJclUnitVersioningBrowser := TJvJclUnitVersioningBrowser.Create; + try + JvJclUnitVersioningBrowser.ShowUnitVersioning(aDynControlEngine); + finally + FreeAndNil(JvJclUnitVersioningBrowser); + end; +end; + +procedure TJvJclUnitVersioningBrowser.CloseButtonOnClick(Sender: TObject); +begin + if Assigned(UnitVersionForm) then + UnitVersionForm.ModalResult := mrOk; +end; + +procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const + aDynControlEngine: tJvDynControlEngine); +var + DynEngine: TJvDynControlEngine; + MainPanel, ButtonPanel: TWinControl; + TopBox, BottomBox: TWinControl; + Button: TButton; + TreeView: TWinControl; + IJvReadOnly: IJvDynControlReadOnly; + IJvTreeView: IJvDynControlTreeView; + I: Integer; + MainNode: TTreeNode; + Nodes: TTreeNodes; + + function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): tTreeNode; + var + Part1, Part2: string; + I: Integer; + begin + Result := nil; + Part2 := iPath; + Part1 := ''; + while (Part1 = '') and (Part2 <> '') do + begin + Part1 := trim(StrBefore('\', Part2)); + Part2 := trim(StrAfter('\', Part2)); + end; + if Part1 <> '' then + begin + for I := 0 to iNode.Count - 1 do + begin + if iNode.Item[I].Text = Part1 then + begin + Result := FindMasterNode(iNodes, iNode.Item[I], Part2); + break; + end; + end; + if Result = nil then + begin + Result := iNodes.AddChild(iNode, Part1); + Result := FindMasterNode(iNodes, Result, Part2); + end; + end + else + Result := iNode; + end; + +begin + if Assigned(aDynControlEngine) then + DynEngine := aDynControlEngine + else + DynEngine := DefaultDynControlEngine; + UnitVersionForm := DynEngine.CreateForm('Unit Versioning', ''); + try + if UnitVersionForm is TForm then + TForm(UnitVersionForm).Position := poScreenCenter; + UnitVersionForm.Width := 500; + UnitVersionForm.Height := 500; + ButtonPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'ButtonPanel', '', alBottom); + MainPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'MainPanel', '', alClient); + if MainPanel is TPanel then + TPanel(MainPanel).borderWidth := 3; + Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'CloseBtn', 'Close', '', CloseButtonOnClick, True, + True); + Button.Left := Round((UnitVersionForm.Width - Button.Width) / 2); + ButtonPanel.Height := Button.Height + 6; + Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); + BottomBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'BottomBox', 'Details'); + BottomBox.Align := alBottom; + TopBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'TopBox', 'Unit Versions'); + TopBox.Align := alClient; + TreeView := DynEngine.CreateTreeViewControl(UnitVersionForm, TopBox, 'TreeView'); + TreeView.Align := alClient; + RCSFilePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RCSFilePanel', '', alTop); + RCSFilePanel.Align := alTop; + RCSFileEdit := DynEngine.CreateEditControl(UnitVersionForm, RCSFilePanel, 'RCSFileEdit'); + RCSFileEdit.Width := 380; + if Supports(RCSFileEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RCSFilePanel, 'RCSFileLabel', 'RCS File', + RCSFileEdit, False, 80); + RCSFilePanel.Height := RCSFileEdit.Height + 1; + RevisionPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'RevisionPanel', '', alTop); + RevisionPanel.Align := alTop; + RevisionEdit := DynEngine.CreateEditControl(UnitVersionForm, RevisionPanel, 'RevisionEdit'); + RevisionEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, RevisionPanel, 'RevisionLabel', 'Revision', + RevisionEdit, False, 80); + if Supports(RevisionEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + RevisionPanel.Height := RevisionEdit.Height + 1; + DatePanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'DatePanel', '', alTop); + DatePanel.Align := alTop; + DateEdit := DynEngine.CreateEditControl(UnitVersionForm, DatePanel, 'DateEdit'); + DateEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, DatePanel, 'DateLabel', 'Date', DateEdit, False, + 80); + if Supports(DateEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + DatePanel.Height := DateEdit.Height + 1; + PathPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'PathPanel', '', alTop); + PathPanel.Align := alTop; + PathEdit := DynEngine.CreateEditControl(UnitVersionForm, PathPanel, 'PathEdit'); + PathEdit.Width := 380; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, PathPanel, 'PathLabel', 'Path', PathEdit, False, + 80); + if Supports(PathEdit, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + PathPanel.Height := PathEdit.Height + 1; + ExtraPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'ExtraPanel', '', alTop); + ExtraPanel.Align := alTop; + ExtraEdit := DynEngine.CreateMemoControl(UnitVersionForm, ExtraPanel, 'ExtraEdit'); +// if Supports(ExtraEdit, IJvDynControlReadOnly, IJvReadOnly) then +// IJvReadOnly.ControlSetReadOnly(True); + ExtraEdit.Width := 400; + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, ExtraPanel, 'ExtraLabel', 'Extra', ExtraEdit, + True, 80); + LabelControl.Width := 80 + PathEdit.Width; + ExtraPanel.Height := LabelControl.Height; + + BottomBox.Height := DatePanel.Height * 4 + 10 + ExtraPanel.Height; + + if Supports(TreeView, IJvDynControlReadOnly, IJvReadOnly) then + IJvReadOnly.ControlSetReadOnly(True); + + if Supports(TreeView, IJvDynControlTreeView, IJvTreeView) then + begin + Nodes := IJvTreeView.ControlGetItems; + Nodes.Clear; + IJvTreeView.ControlSetOnChange(TreeViewOnChange); + MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); + with GetUnitVersioning do + for I := 0 to Count - 1 do + Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Items[I].LogPath), + StrRestOf(Items[I].RCSfile, StrLastPos('/', Items[I].RCSfile)+1) + ' - ' + Items[I].Revision, Items[I]); + IJvTreeView.ControlSetSortType(stText); + if TreeView is TTreeView then + TTreeView(TreeView).FullExpand; + MainNode.Selected := True; + end; + TreeViewOnChange(nil, nil); + UnitVersionForm.ShowModal; + finally + UnitVersionForm.Release; // keep the form created till all used interfaces are cleared + end; +end; + +procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: + TTreeNode); +var + IJvData: IJvDynControlData; +begin + if Assigned(Node) and Assigned(Node.Data) and + (TObject(Node.Data) is TUnitVersion) then + begin + if Supports(RCSFileEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).RCSFile; + RCSFilePanel.Visible := True; + end + else + RCSFilePanel.Visible := False; + if Supports(RevisionEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Revision; + RevisionPanel.Visible := True; + end + else + RevisionPanel.Visible := False; + if Supports(DateEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Date; + DatePanel.Visible := True; + end + else + DatePanel.Visible := False; + if Supports(ExtraEdit, IJvDynControlData, IJvData) and + (TUnitVersion(Node.Data).Extra <> '') then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).Extra; + ExtraPanel.Visible := True; + end + else + ExtraPanel.Visible := False; + if Supports(PathEdit, IJvDynControlData, IJvData) then + begin + IJvData.ControlValue := TUnitVersion(Node.Data).LogPath; + PathPanel.Visible := True; + end + else + PathPanel.Visible := False; + end + else + begin + RCSFilePanel.Visible := False; + RevisionPanel.Visible := False; + DatePanel.Visible := False; + ExtraPanel.Visible := False; + PathPanel.Visible := False; + end; +end; + +initialization + {$IFDEF UNITVERSIONING} + RegisterUnitVersion(HInstance, UnitVersioning); + {$ENDIF UNITVERSIONING} +finalization + {$IFDEF UNITVERSIONING} + UnregisterUnitVersion(HInstance); + {$ENDIF UNITVERSIONING} +end. Property changes on: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas ___________________________________________________________________ Added: svn:keywords + URL HeadURL Author LastChangedBy Date LastChangedDate Rev Revision LastChangedRevision Id Added: svn:eol-style + native This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-03-10 00:08:57
|
Revision: 12233 http://jvcl.svn.sourceforge.net/jvcl/?rev=12233&view=rev Author: jfudickar Date: 2009-03-10 00:08:45 +0000 (Tue, 10 Mar 2009) Log Message: ----------- Changed Comment Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:07:11 UTC (rev 12232) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:08:45 UTC (rev 12233) @@ -8,17 +8,13 @@ WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. -The Original Code is: JvJCLUtils.pas, released on 2002-07-04. +The Original Code is: JvJclUnitVersioningBrowser.pas, released on 2009-03-09. -The Initial Developers of the Original Code are: Andrei Prygounkov <a dott prygounkov att gmx dott de> -Copyright (c) 1999, 2002 Andrei Prygounkov +The Initial Developers of the Original Code is: Jens Fudickar All Rights Reserved. Contributor(s): - Andreas Hausladen - Ralf Kaiser - Vladimir Gaitanoff - Dejoy den + Jens Fudickar You may retrieve the latest version of this file at the Project JEDI's JVCL home page, located at http://jvcl.sourceforge.net This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2009-03-10 00:20:49
|
Revision: 12234 http://jvcl.svn.sourceforge.net/jvcl/?rev=12234&view=rev Author: jfudickar Date: 2009-03-10 00:20:35 +0000 (Tue, 10 Mar 2009) Log Message: ----------- ShowUnitVersioning changed Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:08:45 UTC (rev 12233) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2009-03-10 00:20:35 UTC (rev 12234) @@ -50,7 +50,8 @@ procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); end; -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = + nil); {$IFDEF UNITVERSIONING} const @@ -68,7 +69,8 @@ StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, JclFileUtils; -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = + nil); var JvJclUnitVersioningBrowser : TJvJclUnitVersioningBrowser; begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2010-12-29 10:42:36
|
Revision: 12954 http://jvcl.svn.sourceforge.net/jvcl/?rev=12954&view=rev Author: jfudickar Date: 2010-12-29 10:42:30 +0000 (Wed, 29 Dec 2010) Log Message: ----------- Fixed Compiler Failure when UNITVERSIONING is not defined (Mantis #0005430) Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2010-12-29 10:33:07 UTC (rev 12953) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2010-12-29 10:42:30 UTC (rev 12954) @@ -101,6 +101,9 @@ I: Integer; MainNode: TTreeNode; Nodes: TTreeNodes; + {$IFDEF UNITVERSIONING} + Item : TUnitVersion; + {$ENDIF UNITVERSIONING} function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): tTreeNode; var @@ -219,10 +222,14 @@ Nodes.Clear; IJvTreeView.ControlSetOnChange(TreeViewOnChange); MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); - with GetUnitVersioning do - for I := 0 to Count - 1 do - Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Items[I].LogPath), - StrRestOf(Items[I].RCSfile, StrLastPos('/', Items[I].RCSfile)+1) + ' - ' + Items[I].Revision, Items[I]); + {$IFDEF UNITVERSIONING} + for I := 0 to GetUnitVersioning.Count - 1 do + begin + Item := GetUnitVersioning.Items[I]; + Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Item.LogPath), + StrRestOf(Item.RCSfile, StrLastPos('/', Item.RCSfile)+1) + ' - ' + Item.Revision, Item); + end; + {$ENDIF UNITVERSIONING} IJvTreeView.ControlSetSortType(stText); if TreeView is TTreeView then TTreeView(TreeView).FullExpand; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2011-07-05 21:41:32
|
Revision: 13078 http://jvcl.svn.sourceforge.net/jvcl/?rev=13078&view=rev Author: jfudickar Date: 2011-07-05 21:41:24 +0000 (Tue, 05 Jul 2011) Log Message: ----------- Export button added to VersionBrowserDialog Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-07-03 20:28:40 UTC (rev 13077) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-07-05 21:41:24 UTC (rev 13078) @@ -1,27 +1,27 @@ -{----------------------------------------------------------------------------- -The contents of this file are subject to the Mozilla Public License -Version 1.1 (the "License"); you may not use this file except in compliance -with the License. You may obtain a copy of the License at -http://www.mozilla.org/MPL/MPL-1.1.html +{ ----------------------------------------------------------------------------- + The contents of this file are subject to the Mozilla Public License + Version 1.1 (the "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + http://www.mozilla.org/MPL/MPL-1.1.html -Software distributed under the License is distributed on an "AS IS" basis, -WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for -the specific language governing rights and limitations under the License. + Software distributed under the License is distributed on an "AS IS" basis, + WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for + the specific language governing rights and limitations under the License. -The Original Code is: JvJclUnitVersioningBrowser.pas, released on 2009-03-09. + The Original Code is: JvJclUnitVersioningBrowser.pas, released on 2009-03-09. -The Initial Developers of the Original Code is: Jens Fudickar -All Rights Reserved. + The Initial Developers of the Original Code is: Jens Fudickar + All Rights Reserved. -Contributor(s): + Contributor(s): Jens Fudickar -You may retrieve the latest version of this file at the Project JEDI's JVCL home page, -located at http://jvcl.delphi-jedi.org + You may retrieve the latest version of this file at the Project JEDI's JVCL home page, + located at http://jvcl.delphi-jedi.org -Known Issues: + Known Issues: ------------------------------------------------------------------------------} + ----------------------------------------------------------------------------- } // $Id$ unit JvJclUnitVersioningBrowser; @@ -32,26 +32,26 @@ interface uses - {$IFDEF UNITVERSIONING} +{$IFDEF UNITVERSIONING} JclUnitVersioning, - {$ENDIF UNITVERSIONING} +{$ENDIF UNITVERSIONING} Classes, ComCtrls, Controls, Forms, JvDynControlEngine; type TJvJclUnitVersioningBrowser = class(TPersistent) private RCSFilePanel, RevisionPanel, DatePanel, ExtraPanel, PathPanel, LabelControl, - RCSFileEdit, RevisionEdit, DateEdit, ExtraEdit, PathEdit: TWinControl; + RCSFileEdit, RevisionEdit, DateEdit, ExtraEdit, PathEdit: TWinControl; { Private-Deklarationen } UnitVersionForm: TCustomForm; procedure CloseButtonOnClick(Sender: TObject); + procedure ExportButtonOnClick(Sender: TObject); procedure TreeViewOnChange(Sender: TObject; Node: TTreeNode); public procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); end; -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = - nil); +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = nil); {$IFDEF UNITVERSIONING} const @@ -60,19 +60,18 @@ Revision: '$Revision$'; Date: '$Date$'; LogPath: 'JVCL\run' - ); + ); {$ENDIF UNITVERSIONING} implementation uses StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, - JclFileUtils; + JclFileUtils, Dialogs; -procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = - nil); +procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = nil); var - JvJclUnitVersioningBrowser : TJvJclUnitVersioningBrowser; + JvJclUnitVersioningBrowser: TJvJclUnitVersioningBrowser; begin JvJclUnitVersioningBrowser := TJvJclUnitVersioningBrowser.Create; try @@ -88,10 +87,25 @@ UnitVersionForm.ModalResult := mrOk; end; -procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const - aDynControlEngine: tJvDynControlEngine); +procedure TJvJclUnitVersioningBrowser.ExportButtonOnClick(Sender: TObject); var - DynEngine: TJvDynControlEngine; + SaveDialog: TSaveDialog; +begin + SaveDialog := TSaveDialog.Create(nil); + try + SaveDialog.DefaultExt := 'lst'; + SaveDialog.Filter := '*.lst|Versionlist (*.lst)'; + SaveDialog.Options := [ofHideReadOnly, ofPathMustExist, ofNoReadOnlyReturn, ofEnableSizing]; + if SaveDialog.Execute then + ExportUnitVersioningToFile(SaveDialog.FileName); + finally + SaveDialog.Free; + end; +end; + +procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); +var + DynEngine: tJvDynControlEngine; MainPanel, ButtonPanel: TWinControl; TopBox, BottomBox: TWinControl; Button: TButton; @@ -101,11 +115,10 @@ I: Integer; MainNode: TTreeNode; Nodes: TTreeNodes; - {$IFDEF UNITVERSIONING} - Item : TUnitVersion; - {$ENDIF UNITVERSIONING} - - function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): tTreeNode; +{$IFDEF UNITVERSIONING} + Item: TUnitVersion; +{$ENDIF UNITVERSIONING} + function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): TTreeNode; var Part1, Part2: string; I: Integer; @@ -153,11 +166,13 @@ MainPanel := DynEngine.CreatePanelControl(UnitVersionForm, UnitVersionForm, 'MainPanel', '', alClient); if MainPanel is TPanel then TPanel(MainPanel).borderWidth := 3; - Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'CloseBtn', 'Close', '', CloseButtonOnClick, True, - True); + Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'CloseBtn', 'Close', '', CloseButtonOnClick, True, True); Button.Left := Round((UnitVersionForm.Width - Button.Width) / 2); ButtonPanel.Height := Button.Height + 6; Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); + Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'ExportBtn', 'Export', '', ExportButtonOnClick, True, True); + Button.Left := 10; + Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); BottomBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'BottomBox', 'Details'); BottomBox.Align := alBottom; TopBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'TopBox', 'Unit Versions'); @@ -195,19 +210,17 @@ PathPanel.Align := alTop; PathEdit := DynEngine.CreateEditControl(UnitVersionForm, PathPanel, 'PathEdit'); PathEdit.Width := 380; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, PathPanel, 'PathLabel', 'Path', PathEdit, False, - 80); + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, PathPanel, 'PathLabel', 'Path', PathEdit, False, 80); if Supports(PathEdit, IJvDynControlReadOnly, IJvReadOnly) then IJvReadOnly.ControlSetReadOnly(True); PathPanel.Height := PathEdit.Height + 1; ExtraPanel := DynEngine.CreatePanelControl(UnitVersionForm, BottomBox, 'ExtraPanel', '', alTop); ExtraPanel.Align := alTop; ExtraEdit := DynEngine.CreateMemoControl(UnitVersionForm, ExtraPanel, 'ExtraEdit'); -// if Supports(ExtraEdit, IJvDynControlReadOnly, IJvReadOnly) then -// IJvReadOnly.ControlSetReadOnly(True); + // if Supports(ExtraEdit, IJvDynControlReadOnly, IJvReadOnly) then + // IJvReadOnly.ControlSetReadOnly(True); ExtraEdit.Width := 400; - LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, ExtraPanel, 'ExtraLabel', 'Extra', ExtraEdit, - True, 80); + LabelControl := DynEngine.CreateLabelControlPanel(UnitVersionForm, ExtraPanel, 'ExtraLabel', 'Extra', ExtraEdit, True, 80); LabelControl.Width := 80 + PathEdit.Width; ExtraPanel.Height := LabelControl.Height; @@ -222,14 +235,14 @@ Nodes.Clear; IJvTreeView.ControlSetOnChange(TreeViewOnChange); MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); - {$IFDEF UNITVERSIONING} +{$IFDEF UNITVERSIONING} for I := 0 to GetUnitVersioning.Count - 1 do begin Item := GetUnitVersioning.Items[I]; Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Item.LogPath), - StrRestOf(Item.RCSfile, StrLastPos('/', Item.RCSfile)+1) + ' - ' + Item.Revision, Item); + StrRestOf(Item.RCSfile, StrLastPos('/', Item.RCSfile) + 1) + ' - ' + Item.Revision, Item); end; - {$ENDIF UNITVERSIONING} +{$ENDIF UNITVERSIONING} IJvTreeView.ControlSetSortType(stText); if TreeView is TTreeView then TTreeView(TreeView).FullExpand; @@ -243,7 +256,7 @@ end; procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: - TTreeNode); + TTreeNode); var IJvData: IJvDynControlData; begin @@ -252,7 +265,7 @@ begin if Supports(RCSFileEdit, IJvDynControlData, IJvData) then begin - IJvData.ControlValue := TUnitVersion(Node.Data).RCSFile; + IJvData.ControlValue := TUnitVersion(Node.Data).RCSfile; RCSFilePanel.Visible := True; end else @@ -298,11 +311,15 @@ end; initialization - {$IFDEF UNITVERSIONING} + +{$IFDEF UNITVERSIONING} RegisterUnitVersion(HInstance, UnitVersioning); - {$ENDIF UNITVERSIONING} +{$ENDIF UNITVERSIONING} + finalization - {$IFDEF UNITVERSIONING} + +{$IFDEF UNITVERSIONING} UnregisterUnitVersion(HInstance); - {$ENDIF UNITVERSIONING} -end. \ No newline at end of file +{$ENDIF UNITVERSIONING} + +end. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2011-07-06 22:16:14
|
Revision: 13081 http://jvcl.svn.sourceforge.net/jvcl/?rev=13081&view=rev Author: jfudickar Date: 2011-07-06 22:16:08 +0000 (Wed, 06 Jul 2011) Log Message: ----------- Removed the {$IFDEF UNITVERSIONING} checks inside the unit (now only for registering). Now the dialog could be used without the need that UNITVERSIONING is activated inside JVCL. Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-07-06 07:44:58 UTC (rev 13080) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-07-06 22:16:08 UTC (rev 13081) @@ -32,9 +32,7 @@ interface uses -{$IFDEF UNITVERSIONING} JclUnitVersioning, -{$ENDIF UNITVERSIONING} Classes, ComCtrls, Controls, Forms, JvDynControlEngine; type @@ -115,9 +113,7 @@ I: Integer; MainNode: TTreeNode; Nodes: TTreeNodes; -{$IFDEF UNITVERSIONING} Item: TUnitVersion; -{$ENDIF UNITVERSIONING} function FindMasterNode(iNodes: TTreeNodes; iNode: TTreeNode; const iPath: string): TTreeNode; var Part1, Part2: string; @@ -235,14 +231,12 @@ Nodes.Clear; IJvTreeView.ControlSetOnChange(TreeViewOnChange); MainNode := Nodes.AddChild(nil, ExtractFileName(ParamStr(0)) + ' ' + VersionFixedFileInfoString(ParamStr(0))); -{$IFDEF UNITVERSIONING} for I := 0 to GetUnitVersioning.Count - 1 do begin Item := GetUnitVersioning.Items[I]; Nodes.AddChildObject(FindMasterNode(Nodes, MainNode, Item.LogPath), StrRestOf(Item.RCSfile, StrLastPos('/', Item.RCSfile) + 1) + ' - ' + Item.Revision, Item); end; -{$ENDIF UNITVERSIONING} IJvTreeView.ControlSetSortType(stText); if TreeView is TTreeView then TTreeView(TreeView).FullExpand; @@ -255,8 +249,7 @@ end; end; -procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: - TTreeNode); +procedure TJvJclUnitVersioningBrowser.TreeViewOnChange(Sender: TObject; Node: TTreeNode); var IJvData: IJvDynControlData; begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2011-11-23 21:48:50
|
Revision: 13183 http://jvcl.svn.sourceforge.net/jvcl/?rev=13183&view=rev Author: jfudickar Date: 2011-11-23 21:48:44 +0000 (Wed, 23 Nov 2011) Log Message: ----------- Fixed Duplicate Unit Usage Modified Paths: -------------- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas Modified: trunk/jvcl/run/JvJclUnitVersioningBrowser.pas =================================================================== --- trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-11-22 15:59:53 UTC (rev 13182) +++ trunk/jvcl/run/JvJclUnitVersioningBrowser.pas 2011-11-23 21:48:44 UTC (rev 13183) @@ -45,7 +45,9 @@ { Private-Deklarationen } UnitVersionForm: TCustomForm; procedure CloseButtonOnClick(Sender: TObject); + {$IFDEF UNITVERSIONING} procedure ExportButtonOnClick(Sender: TObject); + {$ENDIF UNITVERSIONING} procedure TreeViewOnChange(Sender: TObject; Node: TTreeNode); public procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); @@ -67,7 +69,7 @@ uses StdCtrls, SysUtils, JclStrings, JvDynControlEngineIntf, ExtCtrls, - JclFileUtils, Dialogs, JclUnitVersioning; + JclFileUtils, Dialogs; procedure ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine = nil); var @@ -87,6 +89,7 @@ UnitVersionForm.ModalResult := mrOk; end; +{$IFDEF UNITVERSIONING} procedure TJvJclUnitVersioningBrowser.ExportButtonOnClick(Sender: TObject); var SaveDialog: TSaveDialog; @@ -102,6 +105,7 @@ SaveDialog.Free; end; end; +{$ENDIF UNITVERSIONING} procedure TJvJclUnitVersioningBrowser.ShowUnitVersioning(const aDynControlEngine: tJvDynControlEngine); @@ -171,9 +175,11 @@ Button.Left := Round((UnitVersionForm.Width - Button.Width) / 2); ButtonPanel.Height := Button.Height + 6; Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); + {$IFDEF UNITVERSIONING} Button := DynEngine.CreateButton(UnitVersionForm, ButtonPanel, 'ExportBtn', 'Export', '', ExportButtonOnClick, True, True); Button.Left := 10; Button.Top := Round((ButtonPanel.Height - Button.Height) / 2); + {$ENDIF UNITVERSIONING} BottomBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'BottomBox', 'Details'); BottomBox.Align := alBottom; TopBox := DynEngine.CreateGroupBoxControl(UnitVersionForm, MainPanel, 'TopBox', 'Unit Versions'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |