[ check google moderator for new feature requests ]

- when pasting/typing in new cell, don't use average size or size above, prefer size to right or
  below.

- a way to set vertical spacing on fonts

- an auto-import/merge of an external file (e.g. a text file)
  The contents of a grid would automatically be replaced by whatever is in that text file,
  and maybe auto-exported when modified?
  This allows TreeSheets to be a "dashboard" for external files, generated/edited by external
  programs.

- A preview (particularly for images) of external (http & file) links, either on hover over, or
  even in-line. Makes for a nice alternative to inline images if there's a lot of them.

- bug: if you paste a size 0 cell into, say, a size -5 new parent, the cell that is being pasted
  is set to -5 but all its children stay at 0, making for weird rendering.

- bug: if you press "run", it can affect text size, and doesn't undo.
  - maybe should remove "run" from the toolbar.

- OSX: figure out how to do retina text rendering.
  https://forums.wxwidgets.org/viewtopic.php?f=23&t=42806&p=173880#p173880

- bug: reordering the tabs can disable editing (no selection)
  - similarly, closing a sheet can make others uneditable.

- bug: insert text in cell, then INS, then Ctrl-Z: undoes also text

- bug: F6 does not find all occurrences (see Evelien's example).

- Have a version of F6 that goes backwards?

- fix lack of change detection on OS X / Linux, since more people use it with DropBox now.
  - Check if wxWidgets file system monitoring works now, or emulate by polling.

- allow dropdowns to set their current value also on single click.

- allow key binding thru CTRL+menu item click? There's no way to test for ctrl in the event.

- wordcount feature, for all, and also shown for current cell

- make LEFT on the top dotted line go to parent (and maybe UP and leftmost dotted line).

- should save custom color to the cfg

- OSX: [github, Yang Xiaowei]: IME input doesn't work
  No events arrive at either OnChar or OnKeyDown with e.g. Japanese IME selected, and no idea why

- Test multi-monitor off-screen detection on Windows & mac.

- Windows: [Derell Licht]: unnecessary debug messages, especially in non-admin mode.

- "Wrap in Parent" doesn't respect the border color much like INS used to not do.

- Alt+scrollwheel doesn't seem to get recorded as undoable

- CTRL+g same as INS on other platforms

- promote/demote keys? Ctrl-Shift left and right?

- if it fails to load its icon files, it should check in the current directory - would simplify command line usage.

- non-windows platforms: wxIsalnum not returning true for certain unicode chars? xxxxxx xxxxxxxx xxxxxx F�retro xxxxx
- some people have locale settings that makes it break words in the middle.
  maybe do word splits based on ispunct etc instead?

- a fold/unfold all op.

- easy way to split a cell at the current cursor position, e.g. shift + enter?

- should be easy to add a simplistic drawing tool inside TreeSheets, since we already support bitmaps in cells

- it be very good to make the XML import/export closer to the native format, plenty of people would want to interoperate with TS that way

- we now skip PNGs that fail to load, but would be even better if they didn't fail at all.
  - could switch to using sbimage for PNG loading, probably more robust.

- spellchecker

- print options: scale/position control, and some form of pagination

- add a way to copy only the image from a cell

- when importing from text, make sure tab is also seen as indentation

- make g_cell_margin configurable?

- if we support OPML read/write, then we can edit on iOS using e.g. http://carbonfin.com/

- CI with Travis

- LINUX: undo log fix in local git

- LINUX: (64bit) typing faster loses characters?

- LINUX: Ctrl+I advances to next tab instead of italics

- LINUX: window resizing sometimes leads to a red blinking border and the program becoming unresponsive???
  -> also a problem since 2.9.4 according to http://trac.wxwidgets.org/ticket/14871

- LINUX? recent files list not updated after Save As?

- the bitmaps used for rounded lines show up using black for the alpha on some printers.
  draw them using actual lines when in printing mode.

- the fact that you can't just copy a X*Y selection and paste that into a similar selection is a bit weird, e.g. if you wanted to duplicate a spreadsheet row.

- shift+down/up while selecting text should also extend selection.

- ctrl+shift+tab for changing tabs backwards

- modifier+enter for going left rather than down upon exiting a cell? Hmm TAB does that, but doesn't go to the line in-between.

- a way to navigate to previous selections (like alt+arrow in browsers)

- shift+F3 find previous.

- when zooming out, for any parent(s) of the selected item that also fit on screen, make sure they are shown on screen

- When a subgrid has multiple columns "Flatten" should iterate over rows (and copy rowns in their entirety) rather than iterating over each cell.

- file system watch should really just poll on currently open doc filestamps, which would probably be more efficient than the currently broken implementation and work on all platforms.

- LINUX: apparently on some systems only every second keystroke arrives at the treesheets view? how to reproduce this?
- LINUX: check 12.04 for libgtk error

- VIDEO! on the site, showing how the basics work

- if you open a .cts file from explorer it gives a weird error about not being able to make a connection (on Iara's computer fresh install)

- export images in html
  see also html_rendering_bugs.png

- if we continue or change the internal programming language, one important thing would be to give it more database functionality, i.e. do something like a SQL query on a treesheet to get a sub-view.

- JSON export

- should retain image when folding.

- improve drag and drop with CTRL to use current selection

- text alignment per cell?

- what's wrong with font rendering when running from within visual studio?

- better fold icon, clicking on it should unfold?
  - make the folding icon more basic like notepad++
  - When I fold or unfold the cell, the embedded image disappears or is replaced with a 'plus' symbol. I'd like to the image remained in the cell.

- insert a date stamp / time stamp

- stephan: way to mark a grid as numbered, and have sub grids have sub-numbering etc. (2.3)

- bullet pointed list / numbered list instead of grid drawing?

- auto-save whenever window de-focused

- people would really like excel style formulas

- easy way to have external images, such that file/loading saveing doesn't take forever. preferably loaded on demand.

- option for auto export

- export should auto suggest a filename

- if your top level grid has just a single cell in it, changing formatting of that grid (i.e. layout mode) is unintuitive, as you first have to do ctrl+A...
  either make that more obvious in the docs, or provide a better operation for that
  This is generally a problem as some operations operate on a grid by means of its parent cell, and others by having the whole grid selected.
  May well be too hard to change this now.

- should "auto reload documents" be default on now that a lot more people use DropBox etc?

- keep track if an image was originally a JPG, and then save it as JPG?

- date & time functionality:
  - allow a range of consecutive cells be filled with dates from a picker
  - allow a cell to be set to a time, with an alarm attached if needed
    only works if it can find a date cell nearby, which is found by:
    - cells to the left
    - cells above
    - same for the parent

- load all files relative to exe path instead of cwd?

- the new sheet dialog confuses people into thinking that the initial size matters, e.g. http://treesheets.findmysoft.com/
  however, starting with a 1x1 would be confusing also

- calculation language sample use cases:
  - tag cells with a progress complete, and then have overal average progress complete figures in a hierarchical fashion

- treesheets suitable for code editing!
  - export + run + showing console output + jump to line
  - syntax highlighting.. might be fun even for non-programming languages

- could have a feature to upload to google docs
  http://code.google.com/apis/documents/docs/3.0/developers_guide_protocol.html#UploadingDocs
  http://code.google.com/p/gdata-cpp-util/
  wxHTTP

- the future for synced treesheets is to backup to an existing sharing service like google docs or simplenote
  you could simply:
  * convert current TS to an indented text file
  * upload to google docs
  * mark upload time in TS doc
  * when downloading:
    * any cells with newer dates than the last upload overwrite the google doc
    * any older cells may be overwritten by anything that is different in the google doc
    * keeps the formatting of the TS doc
  * should work even when the doc is shared!
  * can do this over google docs api, or even easier, by putting a separate file in gdrive
    except google docs doesn't let you edit text files online, and it doesn't sync its own files (just url)
    and the only way to access google docs thru c++ seems to be thru a huge library (includes libcurl and libxml)
    http://code.google.com/p/gdata-cpp-util/
    unless I parsed it myself using the wxwidgets html req etc. but there appear to be no docs on how to do it yourself?
    even if this works, the docs talk about uploading new docs.. what about overwriting existing *shared* docs?
    actually theres ways to overwrite, using a PUT request..
    http://www.codeproject.com/Articles/319435/Michael-Haephrati-A-Google-Docs-based-Backup-Appli
  * simplenote requires one http request per "note", so you'd have to put your entire todo in one note
    really need a sharing service that has text documents you can edit on the web / your phone
  * actually, there's text editors for dropbox. so we can do the above idea for dropbox.
    * would have to keep track of the last file time the file was imported or saved over
    * gets tricky with the real file, since if the text file gets modified, now all treesheets instances have
      a modified file they want to save
      and auto saving after an import could get you into a loop
      hmmm... with the text syncing the whole file syncing should really be turned off, since it complicates matters
      and text syncing is safer, because it merges changes, so can be done even if one user has unsaved changes (!)
      the merging algorithm needs to be somewhat smart, besides using dates, it needs to detect inserted and moved items
      hmm, should start with changing the existing changes detected algo such that it does a merge instead of asks the user
      this should make that process much more reliable.
      must also set an undo ONLY if there are any changes during a merge
      file then gets autosaved
      problem with dropbox is the .cts and .txt may be updated in an unreliable order.. ideally want to do the .cts first
  * a simpler idea for now: just allow a .txt file to be opened directly, and when saved also as .txt
    just shame about the lack of formatting, though who knows we can introduce more of that, like markdown

- 2 pane system: a left pane with a windows explorer style tree, and a right one that displays the regular TreeSheets workspace, zoomed in to whatever is selected on the left.
  That is simpler from a UI perspective, and familiar to many users. It would also allow a neat extra: for the left tree to show all open documents in tree form, not just the current one,
  for even quicker switching. The TreeSheets document would remember what nodes on the left are expanded or not.



- make a free-form opengl based representation?
- plugin programming: lua/squirrel/cubescript/lobster..
    - the current visual formulas
    - excel style formulas
    - formulas where the cell text is the formula, and the subgrid the result of evaluation
    - a macro system
    - a scripting language plugin (e.g. Lua)
    - generic plugins: export cell as XML, run external tool, load back in the result
- [james,Iara] spell checker
- figure out some kind of "template" feature for common structures, so people who don't know how to design their own treesheet can use it?
  - the 10x10 grid can be a confusing start for new users, because they don't realize they can shrink/grow, should do templates instead
- encryption? (truecrypt)
- [superboyac] custom keyboard assignments
- outliner/todo/powerpoint style hierarchy
  - [superboyac] easy moving up and down in hierarchy of items (like pp or outliners), not sure if these make sense:
    * indent means merge into the grid of sibling above
    * outdent means becoming a cell after current parent, and taking all following siblings with you as children
  - a way to linearly go to the next cell instead of hierarchically?
    * currently, pressing up or down for furthest selection in grid simply doesn't do anything, could make that mean go to parent... but ESC already does this
- BUG: the fix for seeing selection boxes at the wrong location after a forced resize now doesn't allow selections at all
- [james] is there a better way to choose the relative size when zoomed in such that resizing a sub grid does not have weird consequences?
- an additional way to exit fullscreen mode for people that forget F11. Maybe esc should deselect at top level, and then be able to esc fs?
- a way to hop from one view to the next for presentation mode?
- "Save Selection As" or "Save View As" - not frequently needed, and easy to do with copy/paste already
- ALT+mousewheel causes the menu to be selected, disabling further mousewheel actions
- [james] import for text delineated by double lf for paragraphs
- "filter on tag" -> can just type tag into search field and use filter on search, more flexible
- [karl] keyboard shortcut key for minimize to and maximize from tray
- [karl] portable version (for Windows)
- [karl] interface translation via external (text) file
- [d.lynch] the auto-refocussing in horizontal mode (or maybe any) should only care for the Text, not the sub grid
  no: seems to already do the correct thing : get as much as the cell showing, focussing on the top left
  he wanted to still see the parent if possible, but that is not something that can be done in general
- put grid color & width in XML/HTML export?
- tags, search, and code need to have configurable colors (as well as default colors for border/text/bg? gridlines?)
  Must be on a per sheet basis, because otherwise colors will clash with cell coloring from other people
- paste without style?
- replace treesheets toolbar optionally by custom panel on mac?
- directory browser inside treesheets?
- can add GC of images now easily
- "mental stack" feature for treesheets: some way to really quickly jot down what you need to do?
- ideas for features or presentation: http://www.omnigroup.com/applications/omnioutliner/
- convert examples from http://www.biggerplate.com/
- some way to allow to print on multiple pages. Maybe allow each cell of a grid to be on its own page? Figuring out how to split up a large treesheet automatically is not easy.
- do search with something other than red text, same with programming language -> maybe configurable? "set style of current cell as": "search result", "operator"
- mac: set a minimum for text size / note in docs that ctrl==cmd / mac specific shortcuts for new grid (Cmd-Option-I), merge (Cmd+Option+R)
  / enter on cell says not implemented / CMD+scroll may clash with zoom
  if we'd convert to doc/view, this may help the mac version, but that would mean losing tabs
- adam: add text size, bold and other features to the xml/html export
- wxIsAlnum returns true for chinese characters... so they can't get line-split
- add more formats supported by file drag & drop (treesheets merge, text/xml etc).
- figure out different way to do
  * hover drawing
  * unicode events
- wxOverlay based rendering (does it support blending??)
- alf: copy to all selected cells
- fix icon in installer?
- vic: bug: I have the mouse setting Smart Move set on ("causes the cursor to jump to the highlighted button of a new dialog box").  With all my other software, if there's a default button set, the cursor jumps to it.  But with TreeSheets, it jumps to Discard changes.
- selection extend with the mouse on current selection corners?
- leib: RTF export
- borders still not working properly when toolbar and statusbar turned off?
- Can we do better than the 1 size less printing hack?
- tim: unicode example is slow... must add partial refresh
- more icons in the toolbar | icons in the menu
- work on VPL - errors inside cells - a "comment" cell that gets skipped entirely
- ISSUE: arial unicode ms has rasterization bugs?
- BUG: rotates characters needlessly in unicode fonts?
- optimize typing speed when no re-layout is required
- shrink to selection using Paste()/CloneSel() - Grid inline/merge in parent?
- allow text size change independent of contained grid
- make ios/android versions?
- make undo bounded
- FIXMEs
- paste file
- cycle selection ctrl+alt+arrow?
- export using wxPdfDocument
- strategical zoom vs context rendering - overview vs treesheets - directory browser based on treesheets?

HARD TO DO / NOT WORTH THE EFFORT:
- remove tabs if there's only 1 -> appears difficult to do, swap out notebook for a single scrollerwindow

REQUIRES SPECIAL TEST:
- scrollbar issue in ubuntu
- aliased text problem only occurs in release mode?
- linux bug: Error: can't open file './examples/tutorial.tmp' (error 2: No such file or directory)
- outputs in debug: ..\..\src\msw\window.cpp(665): 'SetFocus' failed with error 0x00000057 (the parameter is incorrect.)
- test: left/right mousewheel doesn't work
- (not reproducable?) toolbar becomes white sometimes?

UNREPRODUCABLE:
- seems to do corrupt toolbar rendering on windows 7 -> maybe related to my use of dgipp / mactype?
- BUG: sometimes it can dimension a column much narrower than the text, resulting in overdraw
  it seemed to be related to a column width identical to a single URL (20), and text in a cell beneath
  * http://bsonspec.org/
  * none: messages constructed in code
- BUG: UNREPRODUCABLE: wide column layout? -> there really is a gigantic string there, no idea how it got created
- changing font from farago to arial unicode screwed up rendering
- F8 (Hierarchy Swap). This crashes on the swap of the top cell in  hierarchy or the swapped cell is dissapeared.
- clancy: files not loading on other computer?? -> likely a transfer problem

UNTESTABLE:
- BUG: untestable: crash with file updates when multiple file system watch events cause multiple popups

UNFIXABLE:
- improve scaled rendering: increase VIEWPORT_EXTENT in dc.cpp to get more accuracy? -> not fixed in 2.9.1
  -> tried changing this value to higher numbers with no difference

FIXED??
- wxStaticText hack not necessary anymore
    - the toolbar text rendering hack doesn't work if you shrink the window to make less of them visible.

===============================

FAQ: older versions of logitech mouseware may interfere with treesheets operation, make sure to have the latest installed

===============================
