kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #08314
Re: Project templates (related to the modal dialog thread)
Hi Guys,
I've had a change to put a proposal of the functionality together
which I think covers most stuff. I've attached a txt file incase the
text below doesn't come out very well.
I think the functionality will be great for a lot of users of KiCad.
Let me know if I should convert this to a blueprint on Launchpad.
Proposal
--------
To add new project template functionality to KiCad to facilitate the easy
setup of projects which have common attributes such as pre-defined board
outlines, connector posisitions, schematic elements, design rules, etc.
Definitions
-----------
A template is a directory of files, which includes a directory of metadata.
The template system name (SYSNAME) is the directory name under which the
template files are stored. The metadata directory (METADIR) contains
pre-defined files which provide information about the template.
All files and directories in a template are copied to the new project path
when a project is created using a template, except METADIR.
All files and directories which start with SYSNAME will have SYSNAME
replaced by the new project filename, excluding the file extension.
Metadata
--------
A template's METADIR must contain the required files, and might optionally
contain any of the optional files
Required Files
~~~~~~~~~~~~~~
/info.html - Contains html formatted information about the template
which is used by the user to determine if the template is what
they are after. The <title> tag determines the actual name of
the template that is exposed to the user for template selection.
Using html to format this document means that images can be
inlined without having to invent a new scheme.
Only HTML supported by wxHTML can be used to format this
document.
Optional Files
~~~~~~~~~~~~~~
/icon.png - A 64 x 64px PNG icon file which is used as a clickable
icon in the template selection dialog.
Operation
---------
The KiCad File menu will be modified to change New from a menu item to a
pop-out menu item, in the same manor as Open Recent. There will be two
options on the pop-out menu:
Blank -> Will act exactly the same as the current new menu item so
that anyone
who wishes to create a blank project won't have their settings lost or feel
alienated.
From Template -> Will open the template selection dialog.
The template selection dialog will have a list of icons on the left, and a
wxHTML window to the right. A single click on a template's icon on the left
will load that templates info.html metadata file and display it in the
wxHTML window.
A double click on a template's icon will start the new project creation and
will open a new file dialog. If the user selects a valid location for the
new project, the template will be copied to the new project location
(excluding METADIR as mentioned earlier) and any files that match the string
replacement rules will be renamed to reflect the new project's name.
The list of available templates will be gathered from the following sources:
wxStandardPaths::GetExecutableDir()/../share/template/
wxStandardPaths::GetUserDataDir()/templates/
wxGetEnv(wxT("KICAD_TEMPLATES"))
Proposal
--------
To add new project template functionality to KiCad to facilitate the easy
setup of projects which have common attributes such as pre-defined board
outlines, connector posisitions, schematic elements, design rules, etc.
Definitions
-----------
A template is a directory of files, which includes a directory of metadata.
The template system name (SYSNAME) is the directory name under which the
template files are stored. The metadata directory (METADIR) contains
pre-defined files which provide information about the template.
All files and directories in a template are copied to the new project path
when a project is created using a template, except METADIR.
All files and directories which start with SYSNAME will have SYSNAME
replaced by the new project filename, excluding the file extension.
Metadata
--------
A template's METADIR must contain the required files, and might optionally
contain any of the optional files
Required Files
~~~~~~~~~~~~~~
/info.html - Contains html formatted information about the template
which is used by the user to determine if the template is what
they are after. The <title> tag determines the actual name of
the template that is exposed to the user for template selection.
Using html to format this document means that images can be
inlined without having to invent a new scheme.
Only HTML supported by wxHTML can be used to format this
document.
Optional Files
~~~~~~~~~~~~~~
/icon.png - A 64 x 64px PNG icon file which is used as a clickable
icon in the template selection dialog.
Operation
---------
The KiCad File menu will be modified to change New from a menu item to a
pop-out menu item, in the same manor as Open Recent. There will be two
options on the pop-out menu:
Blank -> Will act exactly the same as the current new menu item so that anyone
who wishes to create a blank project won't have their settings lost or feel
alienated.
From Template -> Will open the template selection dialog.
The template selection dialog will have a list of icons on the left, and a
wxHTML window to the right. A single click on a template's icon on the left
will load that templates info.html metadata file and display it in the
wxHTML window.
A double click on a template's icon will start the new project creation and
will open a new file dialog. If the user selects a valid location for the
new project, the template will be copied to the new project location
(excluding METADIR as mentioned earlier) and any files that match the string
replacement rules will be renamed to reflect the new project's name.
The list of available templates will be gathered from the following sources:
wxStandardPaths::GetExecutableDir()/../share/template/
wxStandardPaths::GetUserDataDir()/templates/
wxGetEnv(wxT("KICAD_TEMPLATES"))
Follow ups
References