IDE Development

From Lazarus wiki
Revision as of 15:08, 7 April 2008 by Mattias2 (talk | contribs) (→‎ToDo)
Jump to navigationJump to search

This page contains notes for lazarus core developers about ongoing development.

Multi form properties / using DataModules from other forms in the designer

Short Description

This feature allows to use components of other designer forms. A common example is to use the TDataSource on a DataModule for the DataSource property of a db control.

Working

Manual referencing via source code works.

Some features are only enabled via -dEnableMultiFormProperties.

  • TPersistentPropertyEditor.GetValues - List all possible values. Check for class compatibility and if the target unit does not belong to a package that will conflict if used.
  • TPersistentPropertyEditor.GetValue - Show component path
  • TPersistentPropertyEditor.SetValue - search the component via the given path
  • When component is deleted, the property must be set to nil - This is not the job of the IDE, but should be achieved by the normal TComponent FreeNotification feature. Maybe eventually a check could be added, if this is implemented properly and force a nil on error.
  • When a component is renamed the property does not need to be updated, because the form is open and use the pointer not the name.

ToDo

  • Add unit name to uses section and package to dependencies.
  • When referenced component is deleted, the using units must be set modified.
  • When referenced component is renamed, the using units must be set modified.
  • When target form is saved, all referring forms should be saved too, to keep consistency.
  • When target form is closed, then all referring forms must be closed too. (Otherwise all properties will be set to nil, and the reference will be lost).
  • When reference form is opened, then target forms must be opened too.

Translations, i18n, lrt files, po files

Short Description

This feature automatically creates and updates .po files for packages and projects.

Working

  • Dialog options for project/package to enable i18n
  • Collect TTranslateStrings from RTTI while designer form writing and writing them to lrt file.
  • Copying new strings from rst and lrt files to a single .po file for each package/project
  • load the .po files

ToDo

  • Delete unused strings from the .po file of package/projects
  • Update translated .po files, similar to the updatepofiles tool.
  • Collect all .po files of project and all used packages into a directory. This directory can then be used by the project to load the strings at runtime. And installers can copy the content.
  • standarize filenames and path, so that loading the translations at runtime is possible without writing code.