Implemented basic sorting and search function including replace, very basic but working, also the sorting close to the LibreOffice sorting, multi key sorting (up to 3 but in principle could make more, but is more than 3 really useful?) Together with the Format options this should be enough for a new LEU Version release Leu 0.08.
Download: LEU Download Page
Fixed a little bug in Leu regarding number format. If no number format was selected the output format was one char too long, resulting in very ugly rounding errors. Already long time before I started to implement a solution to set the number format for a cell. But it was very crude and not ready to release, so I deactivated it for Leu 0.07. But this bug got me back to work. 😉 I started to implement a format settings window, a little bit inspired by the LibreOffice one. Finally its working, not perfect but already usable.
Also fixed some small problems with the color blending on selection for RTG systems (for <15bit screens it will just use a fixed color for the selection) and new now the fixed col/row will show where the selected cell is. much easier to find, especially if it is out of scroll area.
Worked a little bit on Leu, a click on row/column title it selects the whole row/column as used in other spreadsheet applications. On RTG Screens with 15bit or more colors the selection now blends the background color instead just replacing it, that means you can still see different background colors when selected.
Multi-line is something people where asking me for, so I implemented that, if you are in a cell typing you can use Ctrl+Enter to go to next line, instead of finishing the editing. I got a question, if I plan to support different Font sizes and type, and I’m not sure about that until now. It would need a complicated replacement table from the Windows/Linux fonts to typical Amiga fonts and back. Especially on classic Amiga the Font sizes of Windows and Linux are WAY to big. We will see.
A while before I was working on the cell format (number format, date, time and so on) but this is rather complicated. It needs a bit more time it’s still not reliable but I want to finish it before release the next version. Some of these features (like the selection blending) are already present in the Leu version I gave Paolo Besser for the Icaros64 alpha WIP.
Paolo Besser works on a 64bit Version of Icaros (see also his website about it). I only try my AROS64 bit FreePascal stuff with my old linux hosted AROS 64 version, and there it worked fine. But the ABI of x64 AROS is not fixed yet, so still changes can happen. And there are some changes, Leu for example crashes on the Icaros64 alpha version, Paolo sent me. It crashes very early in the startup code. I started to debug that stuff but it’s very hard to debug at this point, that early in the startup. But my initial guess was more or less right, because the AROS devs tried to implement SMP they changed a lot of structures for additional locks and so on, so the Offsets of fields are moved. Usually an easy job just compare the the new C includes with my pascal counter parts. but it makes it much harder if defines and alignment comes to play, here also. The define was easy, there is a __AROSSYSTEM_SMP__ define which seems to be always enabled, even AROS is not compiled for SMP use (seems still too unstable) which includes and additional spinlock_t to MsgPort and Sempahore, so far so well. But it seems this spinlock_t is huge, by the definition I would say an Integer and a Pointer, but the size needed in the structure to cover up the missing offset shift is much more… something around 256 bytes. The structure is 128 aligned, this could be a key for that.
Usually that is not hard to find out, just make a small C program and test the sizes and offsets of the related structs, but… who have guessed it … on Icaros64 that is not that easy, because the gcc installed does not work, it just crashes. And btw. collect-aros, which we need fore linking in FreePascal also crashes, so for sure no compiling directly on the system.
But just by try and fail/crash and comparing the results of process and task structure to the output of Scout I got a somehow working version, it’s a very dirty hack, but for now it works, Leu works, FPC works (until collect-aros crashes when try to link, but without linking, everything is fine), FP-IDE is working (with the same problem like FPC of course).
There is some more work to really make that structures correct, but for that I will wait until the gcc is working again. The described way to compile stuff for 64bit in C on the icaros webpage using metamake is hilarious if you just want to compile a hello world it’s way overblown. I tried it, but it does not work, also compiling AROS64 from source does not work, I guess you need some pesky parameter when calling configure which, of course, are not described.
Next thing about Leu was the clipboard, originally I only planed to make a simple solution, where only the texts get copied. But when I thought about, the Amiga clipboard is perfect to use as multiformat clipboard, as windows has. The clipboard on Amiga systems is in principle just a IFF file and there you can put in everything you want. You can put in a Text (e.g. IFF-FTXT) or an Image (e.g. IFF-IILBM) or a sound (e.g. IFF_8SVX). And because IFF is tag based its also possible to put more then one format at the time into.
So I started to write a own clipboard routine for Leu, which takes the selected cells and put them to Clipboard as OpenOffice XML (like the ods file) and as standard text as tab separated list.
And this works rather nicely as you can see:
I also added a little requester to set the number of Cols and Rows
If you want to download the latest version go to the Leu Page
I tried Leu on a real A1200 with 68030/50 Mhz and a 32 color AGA screen. It worked but the idea to redraw everything if you type something in, was not very smart. (To show the changed calculation results)
I changed that to a function which checks which cells are changing because of this cell enter, in principle which formula depend on this cell. And it’s working quiet well. Time for a little video
I noticed the colors are still very buggy on big endian systems, I have to care about that again later, in the saved file the colors are swaped, I must debug that. Should be not too hard, I fixed that already once at the loading of files.
As it was the case with borders, I took the LibreOffice color requester as GUI blueprint for my Leu color chooser, Basically it’s the same as for the borders. The only difference, you need two of them, one for background one for text (in principle a one more for border color, but I left that out for now.)
Leu also got a own Page now where always the newest version can be found and some central information about it. For now I will not keep a history for it, because still changing too much things.
To get a little bit away from the converting business, which is a bit boring to be honest, I started with some basic formatting options in the GUI. Font and alignment are rather easy, just some buttons which set the property of the all selected cells. A little bit more complicated are the border settings, especially because there you need a special input element.
I tried with buttons but it took very much space and the names on them are not really useful. Like in usual spreadsheet applications it is better to just show the result with a little graphic. It’s the first time I used the TMUIBitmap object, very handy and easy to use.
Besides that I created a combobox like element, when you click onto the button a new borderless window open with the different border buttons inside and if you select one, or click somewhere else the window automatically close again. Not very difficult with the MUIClass-system.
Just a little video to show the status:
First, I want say thanks to all people send me texts or code snippets how to read TurboCalc TCD files some where very helpful. Sadly in none of them the functions are nicely explained so in the end it came to just straight forward try out with the Manual and write for every function a line in the file to check the result in Leu. But finally the most functions which are available in Leu can be converted from TurboCalc. I’m not sure if it makes sense to make a TurboCalc writer, because it’s a dead program, nice but dead. Writing is hard because you need to know everything about the file, and some of the comments in the text files suggest that TurboCalc is very picky when the tags are not in the correct order or somehow divert from the ideal format.
On a special wish I also implemented a possibility to inline edit the cells, without changing to the edit box. Until now you can only insert a new contents, and not use the mouse to set the cursor. When you can grab the mouse you can also set the cursor in the edit field.
What I’m not really getting, is why the people are excited about that program, it’s not like there is no spreadsheet program, there is TurboCalc, ok it’s old but fairly nice working and there is Ignition, I never used that but from screen shots it looks rather decent. At least much more advanced than this piece of crap 😛
Maybe the people are just happy, that someone codes something. Speaking of which here is the latest Version: 0.05 with edit feature, finally an Icon and TCD function loading.
Download: Leu Page
Notice it can also export the table as HTML or as Wikitable. (just use the endings “.html” or “.wikitable_pipes” .wikitable_wikimedia”). Ok that will be more useful, when I introduced stuff to change colors, borders and fonts.