2009-10-15 18:44:06 +00:00
|
|
|
KiCad TODO List
|
|
|
|
===============
|
|
|
|
|
2010-01-18 19:33:45 +00:00
|
|
|
WXMAC Platform
|
|
|
|
--------------
|
|
|
|
* Fix hotkey list to match CMD key
|
|
|
|
* Fix AddHotkeyName to let wxWidgets handle Ctrl to CMD key
|
|
|
|
* Fix toolbar button tooltips.
|
2009-11-06 17:21:21 +00:00
|
|
|
|
|
|
|
Common
|
|
|
|
------
|
|
|
|
* Grep for @TODO or TODO for sourcecode tasks
|
2013-04-25 16:29:35 +00:00
|
|
|
* Use Doxygen compatible comments on member functions (.h files)
|
2009-11-06 17:21:21 +00:00
|
|
|
* Add tooltip text to all non-obvious controls in every dialog window.
|
2010-09-02 08:23:38 +00:00
|
|
|
Use wxFormBuilder.
|
2009-11-06 17:21:21 +00:00
|
|
|
* Component and module search displays in which library the
|
|
|
|
module or component lives.
|
|
|
|
* List auto up and down scrolling.
|
2010-05-17 20:35:46 +00:00
|
|
|
* Push file open semantics down to one of the base frame classes ( likely candidate is
|
|
|
|
WinEDA_BasicFrame ) so that file open behavior is consistent across all applications.
|
2010-03-08 19:43:29 +00:00
|
|
|
|
2011-10-20 15:49:07 +00:00
|
|
|
* Look over Brian's python BOM generation scripts, which are now in
|
2013-02-16 01:09:53 +00:00
|
|
|
scripts/python/ky and sort them out.
|
2011-10-20 15:49:07 +00:00
|
|
|
Code came from Brian in this posting's attachment, which is ky2.zip:
|
|
|
|
https://lists.launchpad.net/kicad-developers/msg06763.html
|
|
|
|
but is now in scripts/python/ky temporarily.
|
2010-03-08 16:17:58 +00:00
|
|
|
|
|
|
|
|
2013-02-16 01:09:53 +00:00
|
|
|
FP LIB TABLE
|
|
|
|
------------
|
|
|
|
|
|
|
|
Dialog:
|
|
|
|
- - - -
|
|
|
|
|
|
|
|
a) check for duplicate nicknames in a single table, complain, give the user a nice indication of the duplicate(s)
|
|
|
|
|
|
|
|
b) in the uri column give a small button popup a window(dialog?) which lets user choose a file or directory local to his system by pointing at it.
|
|
|
|
|
|
|
|
c) Active library table load and save functions. There are two tables active at any time, but
|
|
|
|
they look like one table. Identify a place to keep the access mechanism (pointer). Modify
|
|
|
|
the project specific portion of this RAM table when the board changes.
|
|
|
|
|
|
|
|
|
|
|
|
Other:
|
|
|
|
- - - -
|
|
|
|
|
|
|
|
a) develop a syntax for nickname:footprint combo, i.e. bring to life class FPID
|
|
|
|
with development and testing of parsing and formatting.
|
|
|
|
|
|
|
|
|
|
|
|
b) modify cvpcb to handle the nickname:footprint, i.e. textual form of FPID.
|
|
|
|
This means having a wider textfield for the FPID than was allocated for the footprint name alone.
|
|
|
|
Needed is the ability to pick a footprint from any active library.
|
|
|
|
|
|
|
|
|
|
|
|
c) modify the netlist format to handle nickname:footprint, save and load.
|
|
|
|
The nickname needs to be optional. I would say allowed in the grammar in the
|
|
|
|
footprint position are:
|
|
|
|
|
|
|
|
footprint | (fp_id FPID)
|
|
|
|
|
|
|
|
or just
|
|
|
|
|
|
|
|
FPID # if it can be parsed when nickname is missing.
|
|
|
|
|
|
|
|
|
|
|
|
d) write functions to lookup a footprint from
|
|
|
|
i) FPID
|
|
|
|
ii) footprint alone since most old netlists don't have nicknames in them.
|
|
|
|
|
2013-03-07 17:12:59 +00:00
|
|
|
e) Replace MODULE::m_LibRef which is a wxString with FPID. FPID supports
|
|
|
|
the footprint name only which is backwards compatible with the current
|
|
|
|
design.
|
|
|
|
|
|
|
|
f) On the first time an empty global footprint table is encountered, add
|
|
|
|
standard KiCad and user libraries not located in the project directory
|
|
|
|
or any of it's sub-directories to the global footprint library table.
|
|
|
|
|
|
|
|
g) When a project is opened and the project footprint library table is
|
|
|
|
empty, add any user library that is located in the project path or any
|
|
|
|
of it's sub-directories to the project footprint library table.
|
|
|
|
|
|
|
|
h) When populating the footprint library tables, use the library file name
|
|
|
|
without the extension as the FPID nickname. When duplicate names exist,
|
|
|
|
append an incremental integer to the nickname so that the second logic
|
|
|
|
libraries FPID nickname becomes logic1. Assign FPID library nicknames
|
|
|
|
to each MODULE based on the legacy library search order when loading an
|
|
|
|
existing board that does not have fully defined MODULE FPIDs.
|
|
|
|
|
|
|
|
i) Add check for KISYSMOD environment variable, on Pcbnew and CvPcb start up
|
|
|
|
and set it to the known directory of the default KiCad footprint libraries.
|
|
|
|
The code should look something like:
|
|
|
|
|
|
|
|
{
|
|
|
|
const char* envar;
|
|
|
|
|
|
|
|
envar = getenv( "KISYSMOD" );
|
|
|
|
|
|
|
|
if( !envar )
|
|
|
|
{
|
|
|
|
envvar = knownDirOfSysMods;
|
|
|
|
|
|
|
|
setenv( "KISYSMOD", envar );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
2013-02-16 01:09:53 +00:00
|
|
|
These i) and ii) merge into one if footprint alone is a valid FPID.
|
|
|
|
Incorporate any environment variable in the the uri expansion using:
|
|
|
|
const wxString FP_LIB_TABLE::ExpandSubtitutions( const wxString aString )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2013-04-25 16:29:35 +00:00
|
|
|
Eeschema
|
2009-11-06 17:21:21 +00:00
|
|
|
--------
|
2013-04-25 16:29:35 +00:00
|
|
|
* Drag and drop between two Eeschema windows.
|
2009-11-06 17:21:21 +00:00
|
|
|
|
2010-02-08 18:15:42 +00:00
|
|
|
Wayne:
|
2010-03-16 18:22:59 +00:00
|
|
|
E3) Hook up perform last library search hot key to replace search libraries for
|
|
|
|
component support removed from find dialog.
|
|
|
|
E4) Change add component dialog search text control to combobox and add component
|
|
|
|
search history save and restore capability. Also add session save and restore
|
|
|
|
to component history list control. Add advanced search capability similar to
|
|
|
|
new find dialog.
|
|
|
|
E6) Start initial work for changing component library file format to use Dick's
|
|
|
|
dsnlexer. See note C2 above. Come up with a workable library file format to
|
|
|
|
handle the wishes of the library implementation group. Add initial clipboard
|
|
|
|
support to the library editor.
|
2010-02-08 18:15:42 +00:00
|
|
|
|
|
|
|
|
2010-03-08 16:17:58 +00:00
|
|
|
|
2009-11-06 17:21:21 +00:00
|
|
|
PCBNew
|
|
|
|
------
|
2010-01-24 02:07:40 +00:00
|
|
|
|
2012-06-25 14:44:47 +00:00
|
|
|
*) Make the zone hit testing be done in screen coordinates, not internal units.
|
|
|
|
See the @todos in class_zone.cpp. A fixed distance in internal units becomes
|
|
|
|
a variable distance based on zoom factor, leading to inconsistent results at
|
|
|
|
various zoom factors. I believe that a fixed distance in pixels might make
|
|
|
|
for a friendlier UI.
|
++PCBNew
* Removed Pcb_Frame argument from BOARD() constructor, since it precludes
having a BOARD being edited by more than one editor, it was a bad design.
And this meant removing m_PcbFrame from BOARD.
* removed BOARD::SetWindowFrame(), and BOARD::m_PcbFrame
* Removed the global BOARD_DESIGN_SETTINGS which was in class_board.cpp
* added BOARD_DESIGN_SETTINGS to the BOARD class, a full instance
* a couple dialogs now only change BOARD_DESIGN_SETTINGS when OK is pressed,
such as dialog_mask_clearance, dialog_drc, etc.
* Removed common/pcbcommon.cpp's int g_CurrentVersionPCB = 1 and replaced it
with build_version.h's #define BOARD_FILE_VERSION, although there may be a
better place for this constant.
* Made the public functions in PARAM_CFG_ARRAY be type const.
void SaveParam(..) const and void ReadParam(..) const
* PARAM_CFG_BASE now has virtual destructor since we have various way of
destroying the derived class and boost::ptr_vector must be told about this.
* Pass const PARAM_CFG_ARRAY& instead of PARAM_CFG_ARRAY so that we can use
an automatic PARAM_CFG_ARRAY which is on the stack.\
* PCB_EDIT_FRAME::GetProjectFileParameters() may no longer cache the array,
since it has to access the current BOARD and the BOARD can change.
Remember BOARD_DESIGN_SETTINGS are now in the BOARD.
* Made the m_BoundingBox member private, this was a brutally hard task,
and indicative of the lack of commitment to accessors and object oriented
design on the part of KiCad developers. We must do better.
Added BOARD::GetBoundingBox, SetBoundingBox(), ComputeBoundingBox().
* Added PCB_BASE_FRAME::GetBoardBoundingBox() which calls BOARD::ComputeBoundingBox()
2011-12-05 06:15:33 +00:00
|
|
|
|
2013-04-25 16:29:35 +00:00
|
|
|
*) Add a hot key to toggle the 45 degree constraint on and off so that it can be
|
|
|
|
changed when drawing a trace.
|
2012-02-20 15:21:42 +00:00
|
|
|
|
2013-09-25 19:17:06 +00:00
|
|
|
|
|
|
|
Dick's Final TODO List:
|
|
|
|
======================
|
2013-10-14 16:54:00 +00:00
|
|
|
*) Rewrite
|
|
|
|
PCB_BASE_FRAME::Save_Module_In_Library
|
|
|
|
PCB_EDIT_FRAME::ArchiveModulesOnBoard
|
|
|
|
to use FP_LIB_TABLE mechanisms.
|
2013-09-25 19:17:06 +00:00
|
|
|
*) write options dialog for fp table dialog.
|
|
|
|
*) Apply Fabrizio and Alexander's linux desktop patches after unifying them.
|
|
|
|
*) Get licensing cleaned up.
|
|
|
|
*) Re-arrange the repo architecture.
|
2013-10-13 21:33:58 +00:00
|
|
|
*) DLL-ization of pcbnew & eeschema
|
|
|
|
http://www.eevblog.com/forum/open-source-kicad-geda/seriously-irritated-with-the-library-editor!/
|