1 MoveLayers - undo of deleting a layer with stuff on it.
4 -------------------- HID Validation Stuff --------------------
8 [user controlled menus for gtk]
10 - Why doesn't the Tab key work??? I get complaints that the keysym
11 is undefined. Maybe it is the old version of gtk I'm using? Looking
12 in more recent sources seems to indicate that Tab should be Just Fine
15 - sometimes after using the command window, the hotkeys all seem to
18 - Test all menu actions (again)
20 - Compare all hotkeys from the hard coded system to the new resource file
21 controlled system. We're looking for no/minimal user visible change
22 when the usermenu branch is merged
24 - Make sure loading a new board updates all the displayed menu checkmarks
26 - play around with the route style buttons and menus to see if it gets
29 - make sure settings are always saved
31 - make sure that we're compatible with the lesstif hid as far as being able to
32 load the same menu resource file if we want
34 - compare performace before and after over a slow link or on a slow computer.
36 - make the ui append code more printf()-like. It will simplify the code
37 and make it nicer to read.
39 - look for code duplication in hid/gtk/gui-top-window.c, especially related to
40 layers and tools. Don't duplicate code if at all possible.
44 - Mouse section in the resource file is ignored. I need to learn about how the mouse buttons are handled in the gtk HID currently so I can hook up that section.
46 - A fair amount of now obsolete code still exists in gui-top-window.c. I need to do some major house keeping.
49 [existing before user controlled menus]
51 Do something with LayerGroupsChanged action.
54 Verify all config items are saved/loaded properly.
56 Review for additions to make to the Preferences window.
58 Clean up popup: populate with common actions and remove select tool part.
59 Evaluate its value given tearoff menus?
62 -------------------- Lesstif Enhancements --------------------
64 Pan(x, y, zoomfactor) - pans screen, zooms, sets crosshairs on coordinate.
68 Layer/Group master control dialog
70 Remember configuration and restore on startup?
73 -------------------- HID Enhancements --------------------
75 PNG: get clears right.
76 PNG: add options for gif and jpeg. Maybe this HID needs
78 PNG: add option to specify output image max dimension
80 Add direct-to-pdf exporter?
85 -------------------- Core Issues/Enhancements ---------------
87 SearchObjectByLocation() needs to search front side silk, elements,
88 etc, before back side ones.
91 -------------------- Action Enhancements --------------------
93 Default functions for ":"
96 Generic "set hid attribute" action.
99 -------------------- Long Term Projects --------------------
101 Switch to topological autorouter.
103 Global "puller" optimizer.
105 Constrain all objects to have the same fields first in their data
106 structures; convert most internal functions to use this AnyObject type
107 instead of N functions for N object types. (Prelude to C++ objects?)
109 Win32 and MacOS HIDs.
111 -------------------- Punch list from sdb --------------------
114 I played around with an existing design: the two-sided optical proximity
115 sensor board I wrote about in Circuit Cellar. A tarball of this project is
116 available on my website. Here are some notes
118 * Grab a single track and move it around. Sometimes, PCB prevents me from
119 moving it beyond a point above and to the left of the track's original
120 starting point. This happens regularly if I do this:
121 1. Click on teh track. It lights up.
122 2. Grab the track with the left mouse button. Then drag it with left
123 mouse button down. The track won't move above or to the left of its
125 Maybe this has something to do with preventing motion to negative
126 coordinates, and PCB is looking at component-relative coordinates instead
127 of absolute board coords?
129 dm: there in 20070208
131 * Bug or feature? I run the DRC checker. The DRCs are written out to the
132 pcb.log file. However, the pcb.log window does not rise to the top.
133 Rather, it remains hidden behind my main PCB window.
135 dm: there in 20070208
137 * "File -> revert" removes all my silk refdes text, and replaces it with the
138 component description from the element file. It looks like this action
139 tries to put text(3) on the baord, when it should put text(2).
141 dm: can't reproduce on my board. Need to investigate. Looks like no change.
143 * "File -> revert" also changes many of my SMT pads from rectangular to round
149 * "Edit -> cut/copy/paste selection to buffer". Is there any reason the key
150 bindings for these are not the standard bindings:
154 Yes, it may be in a .gtkrc file now, but IMO these should be the default.
156 dm: will switch after usermenu merge.
158 * We have "edit -> select/unselect all", and we have "select ->
159 select/unselect all objects". Do we need two menu items doing the same
160 thing? Or if they do different things, can we make the text reflect what
163 dm: They are identical. I have mixed feelings. It is wierd to have 2. Yet, it seems like they go under select but most programs have edit->select all.... I'll make a note, but this is the same as in the trunk right now.
165 * "Edit -> move selected to current layer" doesn't seem to do anything.
167 dm: existing bug. confirmed.
169 * "View -> open pinout menu" does nothing. No spew appears on console.
171 dm: need to select something or have crosshair over an element.
173 * "View -> pin/via show name/number" does nothing. No spew appears on
177 * If I do "view -> current layer -> delete current layer", the layer is
178 deleted. However, the remaining layers are re-colored. It looks like the
179 current layer is deleted from a list, but the colors are based upon list
180 position, so the remaining layers are re-colored if they live after teh
183 Anyway, the layers shouldn't be recolored when I delete a layer.
185 dm: existing bug in gtk HID only (lesstif works right)
187 actually.... lesstif doesn't recolor until you restart pcb and then it
188 is recolored. It is because we don't store the color with the layer
191 * Again, "view -> current layer -> move current layer up/down" re-colors my
192 layers. I'd rather have the color follow the layer so that e.g. my GND
197 * "Settings -> orthogonal moves" doesn't work correctly. If I start a track,
198 it will only go in an orthogonal direction, but then if I plant the track
199 by clicking once and try to veer off in an orthogonal direction, then the
200 track won't go orthogonal relative to my planted point. Rather, it still
201 wants to move in an orthogonal relative to my start point.
203 * "Settings -> all directions lines" and "settings -> orthogonal moves" can
204 both be selected at once. These are incompatible settings. I suggest these
205 drawing settings should be in an menu section with radio buttons which
206 prohibit checking more than one box at a time.
210 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
212 * WHile fiddling with a different setting,
213 I just noticed that trying to optimize rats only highlights pads now. I
214 suspect this has to do with when I removed a layer. The code which used to
215 tell the rats to light up is now telling the pads to light up, probably
216 because it is pointing to the wrong element in the layer list.
218 * "Select -> move selected elements to other side" doesn't move a selected
219 element to the other side. Rather, it asks you to click on the objects you
220 want to move. That is, it is "verb noun" rather than "noun verb". Bug or
221 feature? These days, most UIs use the "noun verb" convention for one-step
224 * "Select -> remove selected objects" is "noun verb". This is good.
225 However, it's the same as selecting an object and hitting <delete>, right?
226 Why should it appear here. Isn't this action under "edit" in most modern
229 * On the same topic: As you pointed out, hitting the <delete> key deletes
230 the object under the cursor. This is not the expected behavior nowadays.
231 What should happen is that all selected objects (i.e. those which are lit
232 up) should be deleted.
234 * A general observation: If I use the "lock" tool to lock down a component,
235 then I can't select it. That's OK. However, it would be nice if a dialog
236 box would pop up and tell me that the component is locked. Right now it
237 can be very confusing if I locked a component and then forgot it was
238 locked. I can't figure out why I can't select it......
240 * This is weird. "Select -> convert selection to element" asks me to select
241 the mark. I click in the middle of a component. THen, depending upon luck
242 or perhaps history, PCB lights up a component *next to* the one I just
243 clicked. And it also lights up a piece of etch in the vicinity of the
244 component I just clicked. ???
246 * "Select -> optimize selected rats" -- what does this do? Is it the same as
247 "Connects -> optimize rats nest?". If so, then it should be removed form
250 * A general comment: Lots of things in the "select" pull-down don't belong
251 under the heading of "select". Rather, I'd call this menu "actions", or
252 possibly "tools". THen, lots of the nice actions only available via the
253 command line widget can be grouped under this menu title. As for a name, I
254 prefer "actions" 'cause that's what they are.
256 * "Select -> auto route" and "select -> rip up autorouted tracks" also
257 appear under "connections". They don't need to be under the "select" menu.
261 * General comment: the way the buffer works has alwyas bugged me. When you
262 copy or cut somthing to the buffer, you get a ghost image of hte
263 footprint. This is OK. However, the ghost follows the cursor around while
264 you go to the menu to select the next action. This is a PITA since the
265 view field of the design moves when you get to the top of the window while
266 reaching for the menu. (Yes, I realize we all use
267 the hotkeys to trigger actions, but newbies don't know to do this yet.)
269 * "Buffer -> #1/#2/etc" What do they do? OK, I realize they allow you to
270 select one of five buffers to operate on. Maybe this should be renamed
271 "Buffer -> operate on buf 1", "Buffer -> operate on buf2", etc.
273 * "Connects -> apply vendor drill mapping" doesn't report success of
274 failure. In my case, I have no vendor drill file, but when I do "connects
275 -> apply vendor drill mapping" nothing happens. I'd expect a pop-up box to
276 tell me about my error (no file).
278 * "Connects -> report found pins/pads" throws up box saying "the following
279 pins/pads are FOUND:" with nothing after that.
282 * On the upper right, teh box whihc holds the cursor's coordinates resizes as
283 you move the cursor around and the
284 coordinate numbers grow and shrink. This
285 makes the text to the left of the box jump around. It would look better if
286 the coordinate box was a fixed size, holding space for e.g. 8 digits each
289 * Next to the cursor coordinate box is another box which looks like it should
290 hold some coordinates. However, it holds nothing. What is it for?
291 Unimplemented feature?
293 * An annoyance: Eariler, I tested the "disperse elements" menu item. It
294 placed some components below the white drawing area, in the grey no-go
295 area. Now I can't grab them because the cursor is prevented from moving
298 IMO, the cursor should be permitted to move into the grey area. Also you
299 should be permitted to drag components, etch, or anything else into the
300 grey area. Yes, the grey area is outside the bounds of the board, but the
301 only things that should do is clip any graphic objects to the edge of the
302 white area when you generate Gerbers. From teh standpoint of drawing, you
303 should have full access to the grey area.
305 One strong reason in favor of this is that it's quite common to put
306 unplaced components outside the board during placement stage. You can sort
307 and segregate them out there. Then, as
308 you place the components, you can grab them from outside the board and
309 place them where you want. Right now, that's more of a PITA since the
310 components are initially imported all on top of one anther. Then, if you
311 disperse them, they cover the board area where you want to eventually place
314 * Finally, a general comment. I've never been 100% happy with the top-level
315 menus in PCB. In my opinion, I'd make them as follows:
321 -- Actions (currently is selections, but should hold items related to acting
322 on things you have selected.)
323 -- Footprints -- currently is buffer. Should permit manipulations related to
324 editing, creating, saving, rotating, mirroring, etc. of footprints.
325 Might add other menu items related to dealing with footprints.
326 -- Routing -- currently is connects, but should be renamed to reflect that its
327 primary purpose is related to things related to laying down physical
329 dealing with the autorouter. Could also include anything related to
330 changing track size or other etch manipulations.
331 -- Nets -- Deals with highlighting connections, maybe toggling rats, opening
332 the nets dialog, etc. Also, anything
333 else related to the abstract connections between circuit
334 elements. -- Info -- Window
336 The idea is to make the menus reflect the physical things on teh board which
337 the user is concerned with. Right now the menus are more a reflection of
338 PCB's internals (i.e. connections, buffer, etc.)
340 Once the top level menus are re-named, then I'd do some re-factoring/shuffling
341 of functionality into the new menus.