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
|
|
|
|
* Use doxygen compatible comments on member functions (.h files)
|
|
|
|
* 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 )
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2009-11-06 17:21:21 +00:00
|
|
|
EESchema
|
|
|
|
--------
|
|
|
|
* Drag and drop between two EESchema windows.
|
|
|
|
|
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
|
|
|
|
2012-06-25 14:44:47 +00:00
|
|
|
*) Check that the new load visibility BOARD settings is properly setting the toolbar
|
2012-03-12 15:18:32 +00:00
|
|
|
buttons like show grid or ratsnest. Add PCB_EDIT_FRAME::SetVisibleElements() so
|
|
|
|
toolbar crap is not known to a BOARD.
|
|
|
|
|
2012-06-25 14:44:47 +00:00
|
|
|
*) Finish removing global access requirements from PLUGINs, so that:
|
2012-04-24 14:23:41 +00:00
|
|
|
*) a BOARD is a fully self contained document description.
|
|
|
|
*) plugin developers do not have to access globals, since a plugin could
|
2012-06-25 14:44:47 +00:00
|
|
|
very well be a dynamically loaded DLL/DSO in the future.
|
|
|
|
One final problem remains is the BASE_SCREEN's grid origin. An easy
|
|
|
|
solution is to move just that one field into the BOARD.
|
|
|
|
|
|
|
|
*) Add ::Footprint*() functions to EAGLE_PLUGIN, so that Eagle footprint libraries
|
|
|
|
can be used in situ.
|
|
|
|
|
|
|
|
*) Add a library table for Pcbnew like that in the sweet library and get rid of the
|
|
|
|
damn search path strategy. This will enable concurrent usage of various types
|
|
|
|
of PLUGIN::Footprint*() functions. At least LEGACY and KICAD are both needed
|
|
|
|
concurrently.
|
2012-02-20 15:21:42 +00:00
|
|
|
|
|
|
|
|
|
|
|
|