~ubuntu-branches/ubuntu/saucy/lazarus/saucy

« back to all changes in this revision

Viewing changes to packager/addfiletoapackagedlg.pas

  • Committer: Package Import Robot
  • Author(s): Paul Gevers, Abou Al Montacir, Bart Martens, Paul Gevers
  • Date: 2013-06-08 14:12:17 UTC
  • mfrom: (1.1.9)
  • Revision ID: package-import@ubuntu.com-20130608141217-7k0cy9id8ifcnutc
Tags: 1.0.8+dfsg-1
[ Abou Al Montacir ]
* New upstream major release and multiple maintenace release offering many
  fixes and new features marking a new milestone for the Lazarus development
  and its stability level.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_fixes_branch
* LCL changes:
  - LCL is now a normal package.
      + Platform independent parts of the LCL are now in the package LCLBase
      + LCL is automatically recompiled when switching the target platform,
        unless pre-compiled binaries for this target are already installed.
      + No impact on existing projects.
      + Linker options needed by LCL are no more added to projects that do
        not use the LCL package.
  - Minor changes in LCL basic classes behaviour
      + TCustomForm.Create raises an exception if a form resource is not
        found.
      + TNotebook and TPage: a new implementation of these classes was added.
      + TDBNavigator: It is now possible to have focusable buttons by setting
        Options = [navFocusableButtons] and TabStop = True, useful for
        accessibility and for devices with neither mouse nor touch screen.
      + Names of TControlBorderSpacing.GetSideSpace and GetSpace were swapped
        and are now consistent. GetSideSpace = Around + GetSpace.
      + TForm.WindowState=wsFullscreen was added
      + TCanvas.TextFitInfo was added to calculate how many characters will
        fit into a specified Width. Useful for word-wrapping calculations.
      + TControl.GetColorResolvingParent and
        TControl.GetRGBColorResolvingParent were added, simplifying the work
        to obtain the final color of the control while resolving clDefault
        and the ParentColor.
      + LCLIntf.GetTextExtentExPoint now has a good default implementation
        which works in any platform not providing a specific implementation.
        However, Widgetset specific implementation is better, when available.
      + TTabControl was reorganized. Now it has the correct class hierarchy
        and inherits from TCustomTabControl as it should.
  - New unit in the LCL:
      + lazdialogs.pas: adds non-native versions of various native dialogs,
        for example TLazOpenDialog, TLazSaveDialog, TLazSelectDirectoryDialog.
        It is used by widgetsets which either do not have a native dialog, or
        do not wish to use it because it is limited. These dialogs can also be
        used by user applications directly.
      + lazdeviceapis.pas: offers an interface to more hardware devices such
        as the accelerometer, GPS, etc. See LazDeviceAPIs
      + lazcanvas.pas: provides a TFPImageCanvas descendent implementing
        drawing in a LCL-compatible way, but 100% in Pascal.
      + lazregions.pas. LazRegions is a wholly Pascal implementation of
        regions for canvas clipping, event clipping, finding in which control
        of a region tree one an event should reach, for drawing polygons, etc.
      + customdrawncontrols.pas, customdrawndrawers.pas,
        customdrawn_common.pas, customdrawn_android.pas and
        customdrawn_winxp.pas: are the Lazarus Custom Drawn Controls -controls
        which imitate the standard LCL ones, but with the difference that they
        are non-native and support skinning.
  - New APIs added to the LCL to improve support of accessibility software
    such as screen readers.
* IDE changes:
  - Many improvments.
  - The detailed list of changes can be found here:
    http://wiki.lazarus.freepascal.org/New_IDE_features_since#v1.0_.282012-08-29.29
    http://wiki.lazarus.freepascal.org/Lazarus_1.0_release_notes#IDE_Changes
* Debugger / Editor changes:
  - Added pascal sources and breakpoints to the disassembler
  - Added threads dialog.
* Components changes:
  - TAChart: many fixes and new features
  - CodeTool: support Delphi style generics and new syntax extensions.
  - AggPas: removed to honor free licencing. (Closes: Bug#708695)
[Bart Martens]
* New debian/watch file fixing issues with upstream RC release.
[Abou Al Montacir]
* Avoid changing files in .pc hidden directory, these are used by quilt for
  internal purpose and could lead to surprises during build.
[Paul Gevers]
* Updated get-orig-source target and it compinion script orig-tar.sh so that they
  repack the source file, allowing bug 708695 to be fixed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
{  $Id: addfiletoapackagedlg.pas 26151 2010-06-16 11:53:34Z mattias $  }
 
1
{  $Id: addfiletoapackagedlg.pas 35486 2012-02-19 15:50:48Z juha $  }
2
2
{
3
3
 /***************************************************************************
4
4
                         addfiletoapackagedlg.pas
41
41
uses
42
42
  Classes, SysUtils, Forms, Controls, Buttons, ExtCtrls, StdCtrls,
43
43
  Dialogs, AVL_Tree, FileUtil, ButtonPanel,
44
 
  IDEWindowIntf, PackageIntf,
45
 
  LazarusIDEStrConsts, IDEProcs,
46
 
  ComponentReg, PackageDefs, PackageSystem, IDEContextHelpEdit;
 
44
  IDEWindowIntf, PackageIntf, IDEHelpIntf,
 
45
  IDEDefs, LazarusIDEStrConsts, IDEProcs,
 
46
  AddToPackageDlg, ComponentReg, PackageDefs, PackageSystem;
47
47
 
48
48
type
49
49
 
67
67
    procedure PackagesGroupBoxResize(Sender: TObject);
68
68
    procedure ShowAllCheckBoxClick(Sender: TObject);
69
69
  private
 
70
    FOnGetIDEFileInfo: TGetIDEFileStateEvent;
70
71
    fPackages: TAVLTree;// tree of TLazPackage
71
72
    function GetFileType: TPkgFileType;
72
73
    function GetFilename: string;
85
86
    property Unit_Name: string read GetUnitName write SetUnitName;
86
87
    property FileType: TPkgFileType read GetFileType write SetFileType;
87
88
    property HasRegisterProc: boolean read GetHasRegisterProc write SetHasRegisterProc;
 
89
    property OnGetIDEFileInfo: TGetIDEFileStateEvent read FOnGetIDEFileInfo write FOnGetIDEFileInfo;
88
90
  end;
89
91
 
90
92
 
91
93
function ShowAddFileToAPackageDlg(const Filename, AUnitName: string;
92
 
  HasRegisterProc: boolean): TModalResult;
 
94
  HasRegisterProc: boolean; OnGetIDEFileInfo: TGetIDEFileStateEvent): TModalResult;
93
95
 
94
96
 
95
97
implementation
97
99
{$R *.lfm}
98
100
 
99
101
function ShowAddFileToAPackageDlg(const Filename, AUnitName: string;
100
 
  HasRegisterProc: boolean): TModalResult;
 
102
  HasRegisterProc: boolean; OnGetIDEFileInfo: TGetIDEFileStateEvent): TModalResult;
101
103
var
102
104
  AddFileToAPackageDialog: TAddFileToAPackageDialog;
103
105
begin
105
107
  AddFileToAPackageDialog.Filename:=Filename;
106
108
  AddFileToAPackageDialog.Unit_Name:=AUnitName;
107
109
  AddFileToAPackageDialog.HasRegisterProc:=HasRegisterProc;
 
110
  AddFileToAPackageDialog.OnGetIDEFileInfo:=OnGetIDEFileInfo;
108
111
  AddFileToAPackageDialog.UpdateAvailablePackages;
109
112
  Result:=AddFileToAPackageDialog.ShowModal;
110
113
  AddFileToAPackageDialog.Free;
120
123
 
121
124
procedure TAddFileToAPackageDialog.HelpButtonClick(Sender: TObject);
122
125
begin
123
 
  ShowContextHelpForIDE(Self);
 
126
  LazarusHelp.ShowHelpForIDEControl(Self);
124
127
end;
125
128
 
126
129
procedure TAddFileToAPackageDialog.OkButtonClick(Sender: TObject);
129
132
  APackage: TLazPackage;
130
133
  PkgFile: TPkgFile;
131
134
  FileFlags: TPkgFileFlags;
 
135
  AddType: TAddToPkgType;
 
136
  aFilename: String;
132
137
begin
 
138
  aFilename:=Filename;
133
139
  PkgID:=TLazPackageID.Create;
134
140
  try
135
141
    // check package ID
157
163
    end;
158
164
 
159
165
    // check if file is already in the package
160
 
    PkgFile:=APackage.FindPkgFile(Filename,true,false);
 
166
    PkgFile:=APackage.FindPkgFile(aFilename,true,false);
161
167
    if PkgFile<>nil then begin
162
168
      MessageDlg(lisPkgMangFileIsAlreadyInPackage,
163
 
        Format(lisAF2PTheFileIsAlreadyInThePackage, ['"', Filename, '"', #13,
 
169
        Format(lisAF2PTheFileIsAlreadyInThePackage, ['"', aFilename, '"', #13,
164
170
          APackage.IDAsString]),
165
171
        mtError,[mbCancel],0);
166
172
      exit;
167
173
    end;
168
174
 
 
175
    // check filename
 
176
    if FilenameIsPascalSource(aFilename) then
 
177
      AddType:=d2ptUnit
 
178
    else
 
179
      AddType:=d2ptFile;
 
180
    if not CheckAddingUnitFilename(APackage,AddType,
 
181
      OnGetIDEFileInfo,aFilename) then exit;
 
182
 
169
183
    // ok -> add file to package
170
184
    APackage.BeginUpdate;
171
185
    FileFlags:=[];
173
187
      Include(FileFlags,pffAddToPkgUsesSection);
174
188
    if HasRegisterProc then
175
189
      Include(FileFlags,pffHasRegisterProc);
176
 
    APackage.AddFile(Filename,Unit_Name,FileType,FileFlags,cpNormal);
 
190
    APackage.AddFile(aFilename,Unit_Name,FileType,FileFlags,cpNormal);
177
191
    if APackage.Editor<>nil then APackage.Editor.UpdateAll(true);
178
192
    APackage.EndUpdate;
179
193
 
198
212
var
199
213
  pft: TPkgFileType;
200
214
begin
201
 
  FileGroupBox.Caption:=dlgFoldDiffFile;
 
215
  FileGroupBox.Caption:=lisFile;
202
216
  FileNameEdit.Text:='';
203
217
  UnitNameLabel.Caption:=lisAF2PUnitName;
204
218
  UnitNameEdit.Text:='';
205
219
  HasRegisterProcCheckBox.Caption:=lisAF2PHasRegisterProcedure;
206
220
  PackagesGroupBox.Caption:=lisAF2PDestinationPackage;
207
221
  ShowAllCheckBox.Caption:=lisAF2PShowAll;
208
 
  BtnPanel.OkButton.Caption:=lisLazBuildOk;
 
222
  BtnPanel.OkButton.Caption:=lisMenuOk;
209
223
  BtnPanel.OkButton.OnClick:=@OkButtonClick;
210
224
  BtnPanel.OkButton.ModalResult:=mrNone;
211
225
  BtnPanel.HelpButton.OnClick:=@HelpButtonClick;