pax_global_header 0000666 0000000 0000000 00000000064 12545114451 0014514 g ustar 00root root 0000000 0000000 52 comment=1c77449be2d55f0c5d8d8c3da9bbe77f11c76162
treesheets-20150702~git1c77449b/ 0000775 0000000 0000000 00000000000 12545114451 0016040 5 ustar 00root root 0000000 0000000 treesheets-20150702~git1c77449b/.gitignore 0000664 0000000 0000000 00000000271 12545114451 0020030 0 ustar 00root root 0000000 0000000 /treesheets/Release/
/treesheets/Debug/
/wxwidgets/
osx/TreeSheetsBeta/
osx/TreeSheets/TreeSheets.xcodeproj/project.xcworkspace/xcuserdata/
*.exe
*.zip
*.tar.gz
*.suo
*.ilk
*.pdb
*.bak
treesheets-20150702~git1c77449b/README.txt 0000775 0000000 0000000 00000010556 12545114451 0017550 0 ustar 00root root 0000000 0000000 Welcome to the source distribution of TreeSheets!
This contains all the files needed to build TreeSheets for various platforms.
If instead you just want to USE TreeSheets, you may be better off with the binaries available on http://treesheets.com/
TreeSheets has been licensed under the ZLIB license (see ZLIB_LICENSE.txt).
src contains all source code. The code is dense, terse, and with few comments, typical for a codebase that was never
intended to be used by more than one person (me). On the positive side, you'll find the code very small and simple,
with all functionality easy to find and only in one place (no copy pasting or over-engineering). Enjoy.
TS is the folder that contains all user-facing files, typically the build process results in an executable to be put
in the root of this folder, and distributing to users is then a matter of giving them this folder.
TODO.txt is the random notes I kept on ideas of myself and others on what future features could be added.
Building:
=========
Note that YOU are responsible to know how to use compilers and C++, the hints below are all the help I will give you:
All Platforms:
- TreeSheets requires wxWidgets 3.0.1 or better.
Preferrably the last public release, or bleeding edge from https://github.com/wxWidgets/wxWidgets.git if you're
adventurous.
Windows:
- Make sure your wxWidgets folder sits parallel to the src folder, that way the TreeSheets project will pick
it up without further modifications
- (if from git): copy include\wx\msw\setup0.h to include\wx\msw\setup.h
- Inside wxWidgets/build/msw, open wx_vc10.sln with Visual Studio 2010
- Select all projects in the solution explorer, and go to properties:
Set configuration to debug, and C/C++ -> Code Generation -> Runtime library
to Multithreaded Debug
Set configuration to release, and C/C++ -> Code Generation -> Runtime library
to Multithreaded
- build solution in both debug and release
(if fails, may have to build again)
- close the wxWidgets sln
- "treesheets" contains the Visual Studio 2010 files for treesheets, open the .sln.
If you've done the above correctly, TreeSheets will now compile and pick up
the wxWidgets libraries.
- to distribute, build an installer with TS_installer.nsi (requires nsis.sourceforge.net)
Linux:
- build wxWidgets as usual on linux, but use these arguments to configure:
--enable-unicode --enable-optimize=-O2 --disable-shared
- in the src folder "make" should now compile treesheets without errors,
and place the exe in the TS folder.
- "make dist-release" to tgz this folder (to the parent dir) to distribute.
OSX:
- build wxWidgets as follows:
- inside the wxWidgets dir:
- mkdir build_osx
- cd build_osx
- ../configure --enable-unicode --enable-optimize=-O2 --disable-shared --with-osx_cocoa CFLAGS="-arch i386" CXXFLAGS="-arch i386" CPPFLAGS="-arch i386" LDFLAGS="-arch i386" OBJCFLAGS="-arch i386" OBJCXXFLAGS="-arch i386" --with-macosx-sdk=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk --with-macosx-version-min=10.6
- make
- sudo make install
- use the xcode project in osx/TreeSheets to build treesheets. put the resulting
.app together with the files from the TS folder in osx/TreeSheetsBeta to distribute.
Note to use the "Archive" operation to create a release executable.
Contributing:
=============
I welcome contributions, especially in the form of neatly prepared pull requests. The main thing to keep in mind when
contributing is to keep as close as you can to both the format and the spirit of the existing code, even if it goes
against the grain of how you program normally. That means not only using the same formatting and naming conventions
(which should be easy), but the same non-redundant style of code (no under-engineering, e.g. copy pasting,
and no over engineering, e.g. needless abstractions).
Also be economic in terms of features: treesheets tries to accomplish a lot with few features, additional user
interface elements (even menu items) have a cost, and features that are only useful for very few people should
probably not be in the master branch. Needless to say, performance is important too. When in doubt, ask me :)
Try to keep your pull requests small (don't bundle unrelated changes) and make sure you've done extensive testing
before you submit, preferrably on multiple platforms.
treesheets-20150702~git1c77449b/TODO.txt 0000775 0000000 0000000 00000044110 12545114451 0017351 0 ustar 00root root 0000000 0000000 [ check google moderator for new feature requests ]
- wordcount feature
- 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
- get it in Ubuntu Software Center? failing that, get a .deb download?
- 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 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
- improve fswatch? can turn it on by default if improved?
* monitors folders recursively.. wtf not possible to monitor individual files...
* doesn't pick up changes on network drive
ReadDirectoryChangesW fails with ERROR_INVALID_PARAMETER when the buffer length is greater than 64 KB and the application is monitoring a directory over the network. This is due to a packet size limitation with the underlying file sharing protocols.
but: BUFFER_SIZE = 4096
* are these fixed?
- only partially writes - presumably Add() failed, is that still happening?
* must test on linux/osx before enabling there by default
* could also have an option to always save a html export also, which would help with iphone
- 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
===============================
treesheets-20150702~git1c77449b/TS/ 0000775 0000000 0000000 00000000000 12545114451 0016366 5 ustar 00root root 0000000 0000000 treesheets-20150702~git1c77449b/TS/docs/ 0000775 0000000 0000000 00000000000 12545114451 0017316 5 ustar 00root root 0000000 0000000 treesheets-20150702~git1c77449b/TS/docs/donations.html 0000775 0000000 0000000 00000015547 12545114451 0022221 0 ustar 00root root 0000000 0000000
TreeSheets Donations & Sponsors

Donations
The following people have donated to TreeSheets:
205$ |
Pierre van Male de Ghorain |
150$ |
David Lynch |
100$ |
Alexander Deliyannis |
100$ |
Hunter Elofson |
75$ |
James McGuire |
74$ |
Michael Wicher |
70$ |
NameAction Chile S. A. |
66$ |
Dietmar Bellersheim |
63$ |
Infolution B.V. |
50$ |
Xavier Masson |
50$ |
dotpeople |
50$ |
Matthew Probst |
50$ |
Francisco Gracia |
50$ |
Roland Breuer |
40$ |
(anonymous) |
40$ |
(anonymous) |
40$ |
Jeffrey Goatcher |
40$ |
Eric Raible |
40$ |
Gќnter Marangoni |
35$ |
Zdenek Krejci (Czech rep.) |
32$ |
Daniel Kimblad |
32$ |
(anonymous) |
30$ |
Carsten Heitmann |
30$ |
Robert Mischke |
30$ |
Nasul Magallanes |
25$ |
Tab Hockamier |
25$ |
(anonymous) |
25$ |
More Addin |
23$ |
Alistair McGhee |
23$ |
Thorsten Schwesig |
20$ |
QuantumFlux42 |
20$ |
Frank Salinas |
20$ |
Tobias Skarman |
16$ |
iliis |
15$ |
Adam Glowalla |
15$ |
One Man Talking |
12$ |
Amy Young |
12$ |
Ulrich Benzing |
10$ |
anonymous |
10$ |
Alberto Egidi |
5$ |
Matthias Knoefel |
3$ |
Howard |
2$ |
Asish Kar-Roy |
How to donate:
- PayPal: Transfer your preferred amount to paypal account aardappel AT gmail DOT com. If you wish to remain anonymous, please let me know.
treesheets-20150702~git1c77449b/TS/docs/file_format_spec.txt 0000775 0000000 0000000 00000003477 12545114451 0023376 0 ustar 00root root 0000000 0000000 File format spec for TreeSheets .cts files, version 16. This should be enough for a programmer to write an importer/exporter
struct File // not really a struct, i.e. no alignment, read an element at a time
{
char magic[4] = "TSFF";
char version = 16;
Image images[0 or more];
char ident = 'D'; // marks start of document, and end of list of images
// the remainder of the file from here is written as a zlib compressed stream
Cell root;
String tagnames[1 or more, terminated by empty string];
}
struct Image
{
char ident = 'I'; // marks start of image
char png_data[len]; // whatever format wxImage::LoadFile uses
// to know len, you need to parse the png chunks
// sadly this means there's no way to read the Cells without doing so
}
struct Cell
{
uchar celltype; // enum { CT_DATA = 0, CT_CODE, CT_VARD, CT_VIEWH, CT_VARU, CT_VIEWV };
uint cellcolor;
uint textcolor;
uchar drawstyle; // enum { DS_GRID, DS_BLOBSHIER, DS_BLOBLINE };
uchar cellcontents; // enum { TS_TEXT = 0, TS_GRID, TS_BOTH, TS_NEITHER };
if (TS_TEXT or TS_BOTH)
{
String text;
uint relativesize;
uint imageindex; // or 0xFFFFFFFF for no image
uint stylebits; // enum { STYLE_BOLD = 1, STYLE_ITALIC = 2, STYLE_FIXED = 4, STYLE_UNDERLINE = 8, STYLE_STRIKETHRU = 16 };
uint64 lastedit; // internal representation of wxDateTime
}
if (TS_GRID or TS_BOTH)
{
uint xs, ys;
uint bordercolor;
uint user_grid_outer_spacing;
uchar verticaltextandgrid;
uchar folded;
uint columnwidths[xs];
Cell cells[xs * ys]; // row major
}
}
struct String // as wxDataOutputStream::WriteString writes it, apparently UTF-8 prefixed by length
treesheets-20150702~git1c77449b/TS/docs/history.txt 0000775 0000000 0000000 00000054050 12545114451 0021567 0 ustar 00root root 0000000 0000000 since development moved to GitHub, the list of changes here may not be up to date.
The most accurate list of changes will be GitHub commit history:
https://github.com/aardappel/treesheets/commits/master
2013-06-02:
- TreeSheets is now open source! https://github.com/aardappel/treesheets
- you can now set the background color on a per document basis
- you can now turn off cursor key navigation of in between cell locations
- integrated new wxWidgets 2.9.4, which probably fixed a lot of problems, particularly on OS X (which has now graduated from Alpha to Beta :).
- you can now pick a default font size when you pick a default font. This is a per user setting, not per document, other users will open your documents at their preferred size.
- Edit -> Copy As Continuous Text puts a single line of text merged from any selection into the clipboard. Useful for merging the text of multiple small cells,
or making a paragraph out of many cells for use in another application.
- home/end now move within a line, whereas ctrl+home/end move within the entire text of the cell
- improved rendering of line rendering style and background color picking
- added additional space to cell margins
- hover over wasn't updated during mousewheel scroll
- optimized drag & drop of external files to not scroll/select while dragging
- fixed ALT+F etc. not popping up the File menu
- improved editing of search/replace boxes supporting shift+cursor/home/end etc.
- on Linux, the Fold operation is now SHIFT+F10 instead of F10 to not clash with Ubuntu pre-defined keys.
2012-04-07:
- fixed bug caused by right-clicking on a modified selection
- possibly fixed problem related to "automatically reload files" popping up multiple dialogs at once
2011-08-25:
- fixed missing UTF-8 charset header in HTML export
- fixed fold not being preserved on copy/past and undo
- Now detects when a file that is loaded has been modified on disk by another program / computer,
and reloads the file automatically (if it hasn't been changed) or asks (if it has).
This allows multiple computers to seamlessly work with 1 treesheets file over services like DropBox.
This functionality is by default turned OFF (see Options -> Auto reload documents) because it is
potentially expensive if the treesheets file is in a folder with lots of subfolders.
Also not working on network drives at the moment.
- HOME & END now change selection in a grid
- INS on a cell that already has a grid now selects the last line of that grid, ready for inserting an item
- fixed INS not unfolding a folded cell
- fix for broken OSX clipboard functionality
- added menu keyboard navigation accellerators
- fixed bug in CTRL+x on empty text selection
- fixed bug in CTRL+up/down in text edit mode
2011-04-30:
- fixed bug in horizontal cell layout text selection
- clear status message when switching tabs or entering search
- fixed bug in shift+cursor selection
- fixed semi-colon CSV import
- fixed loading a tmp file not marking the document as modified
2011-04-19:
- folding of grids: Edit -> Toggle Fold (F10) on cell(s) hides the grids they contain.
Folded cells will be marked with a '+' symbol in front of them
If you zoom into them, you will see the full grid, without having to fold/unfold.
A nice alternative to shrinking text if your sheet gets too big.
- Redo (CTRL+y) now works.
- an image drop down menu provides a convenient set of images you can quickly add to selected cells
- there's now a strikethrough style (useful for todo/task lists!) using the CTRL+t shortcut (previously transpose)
- added alternative (black & white) toolbar icon set (see options menu)
- "Sort" now sorts on subsequent columns if data in the current column is equal
- "Sort" can now be either ascending or descending
- outputs statistics on file when loading
- added commands to reset text sizes, styles, colors and column widths within the current selection (see Edit menu)
- [making a lot of edits to a single cell will now set multiple undo points rather than just a single one] -> removed in favor of Redo
- added shift+del, shift+insert and ctrl+insert as alternatives for ctrl+x, ctrl+v, ctrl+c
- double clicking grid boundaries now selects that entire grid, not the parent cell
- option: render document centered or not
- option: minimize on close
- option: single click maximize from tray
- images in front of text rendered centered
- improved toolbar dropdown rendering & size
- images don't resize anymore when changing the text size of a cell,
instead there's now a function to change the size of an image (Edit -> Images -> Scale)
- cells shrunks to tiny size don't show images
- documents always show a small gutter, regardless of size
- CTRL+f now selects any previous text in the search box, CTRL+a selects all, and HOME/END work too
- made the interactive tutorial the default help (F1), both it and the old html tutorial available from the menu
- selects the parent if you cut or delete all children & doesn't allow deleting of all children of the root of the current view
- fixed filtering making everything tiny if cell text of grid was filtered, now doesn't minimize cells with grids, just greys them out
- fixed text selection not showing correctly with image in front
- fixed failing autosave popping up endless dialog boxes
- fixed undo causing file to be marked as not modified
- fixed horizontal layout being reset by some operations
- fixed line style rendering sometimes having wrong background color
- fixed style settings on "Wrap in new parent"
- fixed statusbar items not showing fully on some systems
- fixed bug with badly formatted indented text not being pasted/imported properly
- fixed selection being off in scaled presentation mode
- fixed bug with international characters in filenames
2010-11-14:
- fixed selection box being rendered in the wrong location after switching resolutions
- fixed it repeatedly trying to save temp files when temp file saving fails
2010-10-15:
- fixed crash in "Hierarchy Swap" operation on leaf cells
- "escape" did not exit edit mode, as it used to
- new cells sometimes would not get applied the correct rendering style (from siblings or parent)
- changing fonts could leave other open documents with incorrect rendering
- transpose now keeps a selection
2010-10-10:
- fixed bug where text background would not be set correctly, mostly resulting in incorrect printouts
2010-09-28:
- fixed bug that would stop certain operations work on single cell grids (such as browse)
2010-09-20:
- Added new rendering options for grids, see tutorial.cts for examples, or todo_calendar.cts
- on multi line text, cursor up & down now moves line by line before moving to the next cell
- new tabs that have individual close buttons, can be reordered, and by default are at the bottom (use option to move them to the top)
CTRL+TAB cycles thru all tabs
- CTRL+mouse drag moves a cell to a destination (like Cut + Paste)
ALT+mouse drag copies a cell to a destination (like Copy + Paste)
- minimum size of sizing cells is now relative to the current view rather than the root of the document, allowing you to make extremely
hierarchical documents (important for presentations).
- Some operations that work on grids and required you to select the parent cell to operate now also work if you simply select all cells of the grid.
This is more intuitive to some people, and also allows these actions on the root grid, which didn't work before.
Affected operations sofar: transpose, flatten, hierarchify, and the cell rendering options
- when loading a file that is already open, instead of the "this file is already loaded" dialog it now simply switches to the open document
- Added option to swap mousewheel scrolling and zooming operations (make scrolling require CTRL instead of zooming)
- Made top toolbar more compact to fit on netbook screens better
- Ctrl+W (close) or closing last tab now simply quits TreeSheets. CTRL+q quits / closes all tabs.
- When clearing a cell with delete/backspace, it now keeps its colors/styling
- Statusbar now shows date of last edit of cell you hover over. The furthest these dates go back is cells edited since the 2010-03-10 release
of TreeSheets, since older versions didn't record this information.
- Fixed pasting of NxN grid selections into grids, it behaves much more logical now
- Fixed potential crash bug in closing tabs
- On paste, cursor is at the end of the pasted string
- New grids take default column width from their parent
- Added column sizing method that does not size any sub grids
- Improved line-splitting for ( and )
- Added remove image operation
- Added seperators to the menus for clarity, and moved some lesser used editing operations into submenus.
The roundness setting now shows its current value.
- Fixed rendering of editing in presentation view
- Status bar updates even if mouse pointer doesn't move
- Fixed refresh error in Hierarchy Swap operation, and one related to scrolling
- Fixed filename being reset on a cancelled Save As
- Single instance check file under linux is now hidden
- Rewrote some of the column width related code to make it more robust, fixed several bugs in it
2010-03-22:
- "Paste Style Only" pastes only the color/style/image from the copied cell into the destination cells, not the text
- dragging middle mouse button (mousewheel down) now pans
- Scrolling smoother on "continous" mousewheels
- Fixed undo resetting column width to default
- Fixed zoomed in views sometimes not rendering correct background color
2010-03-10:
- Grid borders can now be rendered with round corners. The "roundness" can be set in the options menu.
- Added "tags". Tags make cell texts that are used repeatedly easier to assign, recognize, and keep consistent. See menu edit/tags.
- Added "Toggle Grid Below/Next to Text" (F7) for yet more flexible layout possibilities
- Added "Hierarchify" and "Flatten" operations that simplify data portability between TreeSheets and spreadsheets
- Added export to "CSV" format.
- Added "Hierarchy Swap" (F8) operation (see tutorial)
- Added "Wrap in new parent" (F9) operation to easily create new hierarchy (works on any selection)
- Added "filters" (see View menu). A filter forces all cells not included to be shown as 1 pixel characters in lighter grey,
so its easy to focus visually on whats important in really large TreeSheets files. Currently, there's filters for the search
results, and for a % percent of last edited cells. This feature works because TreeSheets now records the last edit time for
each cell. Since older TreeSheets files do not have this information, it may take a while of editing before this feature becomes useful.
- Completely reworked how columns are sized. Now every column in a grid simply has a character width which can be resized by
SHIFT+mousewheel as before, instead of the clumsy per cell linecount. Column width is shown in the statusbar.
Resizing affects the column(s) spanning the current selection, and any grids inside of it. Layout is quicker and more
predictable. Default column width is 80 characters, so you may have to resize some old treesheets files.
- When zooming in, now shows you the "context" of what you're looking at in light grey text (the text of all the parent cells)
- Added "Open File" (F4), which loads a filename in the associated application (paths relative to where the .cts is stored).
- Improved the UI to be more like other applications and more consistent. Primarily, the mousewheel and PgUp/PgDn now
always work the same, without modifiers they scroll, with CTRL they zoom, with SHIFT they change text size, and with
ALT they change column size.
- Support for mousewheel scrolling horizontally (on mice that support it) has been added (NOT TESTED).
- fixed bug where "replace" could loop indefinitely if the replacement string contained an occurrence of the search string :)
- Tabs are shown on the left by default (change in options)
- small improvements to the builtin programming language
- Option for faster line rendering (useful if you have very complex sheets, or lots of 1 pixel text)
- text rendering is lots faster on windows now
- Fixed bug in CVS import where it wouldn't parse linefeeds inside "" correctly
- Fixed bug where closing some but not all documents could make TreeSheets confused as to which document it is looking at
- Fixed bug where it could display the wrong filename on tabs/window title due to autosave
- Linux bug related to unicode keystrokes workaround
- Linux now has wxwidgets 2.9 statically linked, so doesn't require that to be installed anymore
2009-11-05:
- You can now change both the color and width of grid borders
- Added fullscreen toggle (F11), and scaling toggle (F12): useful for presentations.
TreeSheets can do better presentations than powerpoint this way, as you can structure your presentation
around hierarchical zooming, which is much more coherent than a sequential set of slides
- HTML export now sets colors & styles
- HTML/XML/TXT export now always export the current view instead of the entire document (much like image export)
- Now remembers all open files when you re-start TreeSheets
- Added option to show file tabs on the left instead of on top (to save vertical space)
- The "Open link in browser" and "Go to matching cell" functions now also work on text selections rather than just whole cells
- Added SHIFT + Home/End operations for text editing (extends selection)
- improved grid rendering to have a tiny margin
- improved the way it scrolls the selected cell into view if it is partially out of view
- find next (F3) zoom in automatically if cell is too small to read
- Extend Selection to Full Rows/Columns of current selection
- fixed: deleting the top level grid on a zoomed in view would crash
- fixed: cancelling new file dialog would crash treesheets
- fixed: icon did not show in the window frame
- fixed: filenames could get confused when switching tabs
- fixed: text editing in both search controls
- fixed: possible hang in rendering with truely huge treesheets files
- made the automatic text sizing at zoom a bit more reliable
- removed the "remove grid" (CTRL+r), "replace parent" and "merge with parent" (CTRL+m) operations,
as simply using copy/paste/delete on the cells instead is much more intuitive
- window now de-minimizes from tray if app is launched again or a treesheets file is launched from explorer
- shows filename on "discard changes?" dialog
- updated the tutorial with some recent features, and the spreadsheet language
- shows on new tabs
- linux fixes
2009-06-30:
- Prevents multiple instances being opened, instead files launched will open in the existing instance
- Will notify you if you accidentally try to open the same file
- empty cells are now at least square in size
- shows a "+" instead of a "*" when a file has been modified but has been autosaved
- fixed ENTER stopped working (caused by tabs)
- fixed bug that could cause characters to be missing on a multiline rendering
2009-06-25:
- Multiple documents can now be open in a single TreeSheets instance.
- Tabs allow you to switch between them.
- copy/paste between seperate files within the same instance of TreeSheets now retain layout and images faithfully.
- Search functionality:
- CTRL+F focuses on search box
- press F3 to cycle through all search results
- Replace box, type text in here, and then use:
- Replace All to replace all occurrences of the current search
- Replace in Current Selection: either work in combination with F3 to selectively replace search results,
or you can even select a hierarchical subset of all search results and then replace all in that.
- autosave: saves files that have unsaved modifications to a .tmp whenever the file hasn't been saved for 5 minutes,
you go idle for 1 minute, you minimize or deactivate the window, whichever comes first. This file gets removed if you do an explicit save,
and you can restore it should your machine crash (TreeSheets will ask you). Does not activate for "new" files that have never been saved before.
- made multi-cell Paste (and Merge with Parent) not insert unnecessary cells when blank cells are available at the target location
- added "Minimize to Tray" option
- added Sort operation: make a 1xN to indicate what column to sort on, and what rows to affect
- drag & drop of files now works, currently only image files supported (anything else appears as the filename). May support other formats in the future.
- added seperate XML with attributes import mode (for formats that store their data there, like OPML)
- CTRL+SHIFT+cursor left & right now select words at a time in edit mode (much like any text editor)
- automatically increases the number of lines in a cell if text insertions cause it to go over N characters average, configurable from the menu.
- fixed status bar not updating when changing text size on a cell
- you can now undo past the point of your last save, all the way to how you loaded it
- added menu option to disable writing of .bak files on save
- "Set Print Scale" allows simplistic scaling of print output. No multi-page output yet.
- fixed image export not clearing background correctly
- fixed tutorial file not being added to the file history correctly
2009-04-26:
- fixed thin selections not centering on zoom
- fixed cursor keys & tab on linux
2009-04-25:
- can now copy/paste and drag&drop images and text directly from other apps into a treesheet (e.g. web browser, photoshop, etc).
- you can now select a custom color, and assign it to cells from the color menu
- improved color/style picking for new rows/columns inserted
- automatically scrolls & zooms out to bring the current selection in view for most operations (keyboard movement, etc).
- optimized the screen refreshing
- when copying a single cell, now properly remembers number of lines, color/style
- ENTER on grid line selections now inserts a cell
- SHIFT+leftmouse now enlarges the selection, same as if you had dragged to that location.
- Export current view as PNG file
- fixed bug in printer scaling
- made mousewheel accumulative, to hopefully make zooming work better on continuous mousewheels.
2009-04-19:
- Added "Go To Matching Cell" (F6) function: will select whatever cell has the same text. If multiple other cells are
available, will prefer to go to a cell that has different formatting (color/style) than the current cell (this is
to allow this feature to be used as specially marked "links" to a reference cell).
- as a temporary solution, added a "simple rendering mode" that does not make use of XOR to show selections, and
thus renders correctly on on MaxOSX and Linux. It is slower to refresh and does not give hovering feedback, but at
least it works. More advanced rendering on these platforms will have to wait until wxWidgets supports wxOverlay's
with blending.
- fixed several issues where the linux version of the wxWidgets behaves differently
- Made some improvements to make the UI more compliant on the Mac (about/exit menus, drag & drop, some shortcuts)
- fixed crash bug related to right-clicking outside the treesheet
- added a "traditional mousewheel" option that swaps the zoom & scroll functions
- removed the floating grey cursor (it was confusing)
- the text cursor is now a blinking black line (as in Excel)
2009-04-02:
- XML export now writes text size/color/style information
- XML import now recognizes its own XML code (grid sizes, text size/color/style), thus can reconstruct a treesheets file 1:1
- rewrote the line splitting algorithm to allow more characters to be the splitting point
- rewrote the column resizing algorithm to work more accurately
- Added semi-colon CSV format as an alternative to comma CSV import
- ESC now selects the parent cell of the current selection if not in text edit mode, and SHIFT+ENTER selects the first child
- added underlined style
- no longer creates a new selection if you right-click inside an existing selection
- added keyboard shortcuts for text size and line count (CTRL/SHIFT + PGUP/PGDN)
- double clicking the current color assigns it directly to the selection, as intended
- fixed line rendering bug when using colored grids
2009-03-20:
- every cell can now have its own background and text color
- shows an edit mouse cursor in text edit mode
- made ctrl+p mean print rather than replace parent
- created work-around for cursor left/right & delete not working in the search box
- fixed bug in Undo coalescing that could cause crash
2009-02-27:
- automated column resizing! SHIFT+mousewheel now finds the widest (or thinnest) cell in a column instead of just resizing the current cell.
Even works on multiple columns at once or hierarchically.
- added CSV (comma seperated values, for use with Excel), tab delimited text and indented text as import options
- added outline html export, which loads into Word as an hierarchical set of headers
- Search box in the toolbar: shows all text that matches the search in red. May add more featureful search & replace in the future
- ALT + cursor keys or mousewheel scrolls the view
- Undo undoes all edits in a single cell all at once, and ESC is the same as Undo + leave text mode, when in text mode (just like Excel)
- Select all (CTRL+a) expands the current selection to the entire grid it is in
- shift+tab goes to previous cell
- added "launch in browser" for cells with urls in them (F5)
- added F2 (rename in my many apps) as an alternative to ENTER to enter text edit mode
- fixed bug where backspace wouldn't delete entire cell selection
- fixed unusued special keys (such as F1) showing up as random characters
2009-02-24:
- doubleclick to select a word (when already in text edit mode), and doubleclick+drag to select a range of words
- TAB now advanced to the next cell (to the right, or down, or back again to the top) and also selects its contents in text mode.
- Any cell can now have a "style", sofar available: bold/italic/typewriter
- increased maximum font size
- fixed XML export doctype
2009-02-20:
- initial "polished" release (history below this point deleted)
2009-01-25:
- initial public release
2009-01-19:
- closed beta release
treesheets-20150702~git1c77449b/TS/docs/images/ 0000775 0000000 0000000 00000000000 12545114451 0020563 5 ustar 00root root 0000000 0000000 treesheets-20150702~git1c77449b/TS/docs/images/check.png 0000775 0000000 0000000 00000003115 12545114451 0022351 0 ustar 00root root 0000000 0000000 PNG
IHDR ФДl; pHYs БЁ БЁЭЇt џIDAT8mџoдwЧязчЫнЕwэвік^KПУ*kСИнpИЬАИ бcФdЭВ0 s!nКд
;cчXfДй,PНбквfлЛћмч>_пя?Д&њњЏgђЪыљЬхQЌ ArzvЂіЯћvxxдяЬvCFBf[c-У[я?љMпьK5Ь(V &Aj%С U,b/yКїіsI+Љ'ЂlPDP>8,ЫbZPЂЊPнГzчб=ѕѓвИЃ"ЂEИ`f(%HScSћњЊ3]ѕ5Ъs(
P>щIшЮua-RgЧѓDq*GЙѓвoї§n{kcЧи2ЋEшФHлЃo=2xЅѕfW}К1аAuЉ!ІЉСе=tGзWя:N?I=ЅхvQQS3GКЖн68z#гFЄЉХфS(ФіП§DпLГ^Љ|щ""%) tЁDDяCКНћюлуя&Оml*щ
2БйєЎwі9Ж#"E №ќћПxц|if}EД"№CпB ,U@РДЌУ*яР<д45aЯ{№гgз?И^ИНўgo<ї адЬxњ7њ$WT!p}ppРPЎђ_њИGnDУЪfфm
М
љrЁъЦvtP^LсєКy=кRлsЊ0ИНЄ4!&"/ХeЙИDI г1БЯиц5Ш[6ЂЂэТs\ЙpЧnМ(ЦhZZйBЂЪg4ѓ^уЙщШBЉ
LАbАdPР.юЮЏСд.pЬD!Wm;p§WЎтБ0Єeѓ#№УPYЧЄбьxЇ!Lx'*ЯcЎИrвU`qOјDуId,XЂыcіqИі*ЮEў
hCah&2ЗЦ:)чYZЈУvmБЃьЎ=z/
ЂыB8ч!ЏBwl2@>kЁшКЦ_ЎР@ьc*Ј1!яZ$Єэё9ЌСЃЋЖЃћ.єDїE@z
ОЂлюDeЂЙ,lЧAnvя^юЧщи РР!C (.JчЄ#бSП[ксФжіё5ї~ф\q+ѕД> фryц-|tё4NFоCШ
ТT Р,DY$>GцaпіёсЬYО6ѓ@хq