Diff of /TODO [c550c6] .. [48787d] Maximize Restore

  Switch to side-by-side view

--- a/TODO
+++ b/TODO
@@ -1,49 +1,67 @@
+See http://wiki.ktechlab.org/ - not entirely ready yet, but I plan on moving (at least some of) the stuff in this TODO file to this wiki. This allows for better categorization, discussion, etc of ideas than a plain-text file in subversion that only a few people have write access to.
+
 0.4 targets:
 * Replace QCanvas with own optimized implementation.
-* "Tutorial" tool (e.g. for learning about electronic circuits and PICs) tailored to education.
 * Only use IDs for items, etc, in ItemDocumentData - otherwise they lead to too many bugs.
 * More intelligent connector routing.
 * Variable time step in Simulation.
-* Improved ItemEditor (free scaling preview buttons, moved buttons around, toolbar needs work, etc).
-* Remove insert / duplicate functionality for ViewContainers, and replace it with concept of empty panes.
 * Fix subcircuits so that they are saved in an itemdocument.
-* Fully i18n'izable (e.g. see string lists bug below, some buttons too big with non-english text, etc).
-* Full complement of basic electronic devices (e.g. mosfet, jfet).
-* Debugging support for FlowCode.
 
-New components:
-* ALU components (shifters, multipliers)
-* Displays: double-digit LCD display
-* Audio: buzzers, speakers.
-* Different types of signals (e.g. square, triangular) for current and voltage signal components.
 
 Bugs:
 * At the moment, KTechlab auto-detects a point in the circuit to use as ground, according to a set of priorities (e.g. the Ground component has the highest priority, then voltage elements, etc etc). However, some circuits do not have any point which should be considered ground, e.g. "(+9V)-------(Battery)". Suggested solution: detect a point to have as a fixed voltage, that can be anything including 0V.
-* Some string lists for item properties are not i18n-safe. Scaling {Linear, Logarithmic}; Polarity {Row Cathode, Column Cathode } / {Common Cathode, Common Anode}; Edge {Rising, Falling}; Unary Operation {Rotate Left, Rotate Right, Increment, Decremement}
 * Microbe should give "noline" where applicable in show-source (such as in delay routines).
 
 Features:
 * Bookmarks in the oscilloscope.
-* Draw an outline of the component / flowpart / etc being dragged from the list on the left to show where it will be placed. This will probably involve adding static functions to all Item subclasses that will do the drawing, and returning a pointer to the function in the LibraryItem the subclass returns.
-* Allow inserting a component into a wire, so that the wire is broken in two with the component connecting at either end.
-* Some intelligent connect tool that will connect up pins between components - e.g. if the pins are dragged over each other, or horizontaly next to each other.
 * Work area text: allow clickable URIs, rich text editor.
-* Indicate the direction of current flow in a wire when hovering the mouse over.
-* Allow editing of embedded code in the FlowCode element in a TextView, instead of a popup dialog.
-* Be able to "shake" an item to get rid of attached connectors.
-* Allow creating a flowcontainer by dragging a rectangle.
-* Templates for different file types (making use of the microcontroller selected).
-* "Show All" zoom action (zooms in / out to a level that shows everything in the work area).
 
 General TODO:
-* Finish serial and parallel port components.
 * optimize microbe some more?
 
 Polishing:
-* Make sure that when context help refers to "advanced" variables (i.e. only editable from the Item Editor tab), it makes clear how to edit them.
 * Informational message when user attempts to paste flowcode into a circuit (can't do so; must save and load into pic).
 * On program startup, use "text blobs" pointing to sidebars to explain what they do.
 * Update register info even when PIC is paused.
-* Move the "merge" button to individual property entries.
 * replace "refresh rate" slider in settings dialog with standard one.
-* flicker of bottom horizontal scrollbar when initially moving a component downwards from having no vertical scrollbar to having one.
+
+
+[Being worked on or soon to be worked on]
+
+david:
+
+electronerd:
+* refactor the oscilloscope for better code reuse and so I can add a view that looks more like an oscilloscope's screen instead of a printed tape
+
+
+william:
+* In progress:
+
+- variable capacitor/trimmer - Done.
+- variable resistor - Done.
+- Voltage Regulator - On Hold.
+- bar graph display - Done.
+
+* Future Ideas: (leave me a note if anyone wants to do any of these so I know and can remove them)
+
+- crystal oscillator
+- 16 seg display
+- bridge rectifier
+- opto isolator 
+- Scmidt NAND
+- Schmidt Inverter
+- Thyristor
+- Zener Diode
+- Logic analyser (16 bit) and graph output
+- Variable Inductor
+- Solenoid ( requires animation )
+- Bar Graph Display Driver
+=======
+
+The following have been brainstormed with reference to other electronics software I have used. I have found these features useful and these are all wishes for the future that may or may not be relevant to the direction the software takes in the future. I will obviously consult before attempting any of them:
+
+- Model poperty framework for components to include things like wattage, frequency, resistance, etc... of components using specs of manufactured components, with the future goal of accurate simulation of component destruction. This will also allow a parts list to be created when a circuit is completed. Just an idea, up for discussion. 
+- Allow labeling of components in circuit, eg. R1, R2, C1, C2 etc.. Maybe a caption facility.
+- Right click properties for component model, values with separate value and multiplier selection to make it easier. This could be implemented in the Item editor too.
+-Circuit drawing on a black background to better visualise animated wires and logic levels through wires. Different view options: voltage levels, current flow, logic levels, normal(no wire animation of any sort). 
+- A means for users to create a circuit which is intended for use in a component, and to link the created circuit to a generic component that automatically creates the required in/out pins with reference to the created component circuit. On top of this, a means for users to submit new components they have created this way to allow the library of components to be built. So instead of a long list of IC's one generic one may be used with a library containing the circuits needed to simulate different types which can be chosen for example through the Item Editor.