lunedì 31 gennaio 2011

New week...

Last weekend i used 1.3.0 BETA9 and come up with this nice lists of things to change/fix:
- remove background from help icon
- make so that FTPushButton draws differently when its disabled
- LiveTrack does not reload title, description, color and size
- set green as first color for tracks (my preference...)
- Make status bar two lines think in portrait to have space
- when closing switch page, go to last used page
- move livetrack buttons from GPS to switch page for faster access

This is what i will be working on this week, tighether with finishing help texts and similar stuff...

venerdì 28 gennaio 2011

Getting ready for 1.3.0 BETA9

Hi all...
i finally fixed properly the new cool FTWidgetList, it works great also on the phone now.

I have moved the speed calculations under a flag in the configuration page, so you can disable it if you dont like it!

I will release a beta 9 today, with so many UI improvements you are not going to recognize FreeTrack at all!

Update: FreeTrack 1.3.0 BETA 9 just released! Go get it...

giovedì 27 gennaio 2011

The challenge..

... today, is implementing drag&drop swapping and deleting of items in the new FTWidgetList widget!

When you tap for longer than 0.5sec  a widget you will get into "moving" state... Then you can move the widget before or after another or move it to a "dutbin" icon to delete it...

This is the idea...

Update: ok people...  i got it working! Its still a bit "rugged", but it works! You can reorder the widgets with drag&drop, and you can drag the widget to delete! Still a lot to do to have it working "nice", but its all fine-tuning.

Tomorrow i will release a BETA 9 with all these new UI goodies...

mercoledì 26 gennaio 2011

New UI on the way

Yesterday's work has been good, i like the resulst but there is some tuning to fix.

Anyway, today i am replacing QLabel with an incredibly simpler FTLabel and i plan to work on a cool kinetik enabled widget list...

Update: i managed to create my own FTLabel which is light and neat... i really like it! Also, i am working on a more complex FTWidgetList, something that let you do kinetik scrolling and drag&drop reorder on a list of widgets... The most difficult stuff is sorted out and at least the scrolling and adding is now working...

martedì 25 gennaio 2011

Today...

I have been quite busy... but not inactive!

I am hard-working on the new user-interface. Today i have fixed the new cool "kinetik scrolling" text viewer which i am in the process of deployng all around FreeTrack...

Next steps will see a custom widget also for lists (with kinetik scroll too!) and more!

domenica 23 gennaio 2011

Some testing done during the weekend on the field made me ralize that there is a bug in the drawing code, still. I like to blame this bug again on Nokia and the bad Qt drawing bug on pen's < 1, but anyway, i need to fix it again.

This time i will try to change approach. TrackTable will calculate the required transformation (Scale+Translation) but after that, it will not be applyed to the painter. Instead, the matrix will be passed to the paintLayer functions and THEY will have to apply it to the points to be drawn. This in theory could lead to some more slowlyness, but afterall there shouldnt be more calculations than having the matrix applied to the painter... We will see.

Update: the new track drawing code seems to be working pretty nice... Why didnt i tought about this before? Well, now its done... And i am working on the map drawing code.

Update: done also for the map drawing... And tested on device: looks nice and its also faster!

Now i am adding support for UTM imports on IMP files.

Update: Everything works not so bad... I am going to release BETA 8 soon...

Update: FreeTrack 1.3.0 BETA8  has been released NOW! Go get it! It has the new great drawing code!

Stay tuned!

giovedì 20 gennaio 2011

Testing in progress...

I spent some time yesterday testing the latets code and i am quite happy with it.

So, besides minimal fixing and improvements (like bigger icon for the waypoints...) all i will now do is implement a new help interface. I want to develop a custom widget to substitute the incredibly AWFUL tab widget (QTabWidget) which really really sucks on Symbian (slow, difficult to use, unfit for the screen interface...)...

Update: i wrote my first custom widget! (not true really, but for this scope yes)! Its calle FTPushButton and (as now) just replaces a QPushButton displaying a QIcon. It works great, its very lightweight too! I am replacing it in FreeTrack to let you test in in Beta 7 which, i hope, i will be releasing shortly, for your enjoyment over the weekend!

Update: FreeTrack 1.3.0 BETA 7 has been just released! Go grab it and test over the weekend! Your feedback is as always very much appreciated.

After BETA6

AS you know beta6 is out.
Doing some testing i found out a couple of nasty situations where the WaitDialog will get into a loop reloading itself, which is NOT good. So today i rewrote some of that code, improving also a bit the speed, and added a couple of nice things that crossed my mind.

Like, now, you can import IMP (CompeGPS/TwoNav) calibration files for maps and loading a map will automatically import any MAP or IMP file already existing if they have the same filename as the image file. Cool, uh?

Now back on tracks, i will keep working on the missing graphical goodies.

Update: after a lot of work i finally found out hot to print the waypoint name on the tracking table. Its simple.. how stupid i was! You just need to get the correct point to write it in screen coordinates:

  QPointF orig_pos = position * painter.combinedTransform();

Then you reset the painter transformation:

    painter.setTransform( QTransform(), false );

And, last, just print the text:

    painter.drawText( orig_pos + QPointF( 6.0, 6.0), name );

Update:

After a long struggle i decided to get rid of WaitDialog and do everything within WorkerProcess.. I hope, in this way, to be able to send the dialog full screen, as it seems i am not able to send WaitDialog full screen on the phone...

mercoledì 19 gennaio 2011

One step closer to 1.3.0...

Yesterday work was good. PNG support is implemented and operative... Also, i fixed one more bug in the extra_zoom of libjpeg, which is not bad.

The new chunk management code is simpler and faster, and this is good too... But not as good as i hoped. This make me more strong in advocating the map management changes i want for 1.4.0, so stay tuned about that!

Anyway, today i am struggling with a workaround for the annoyng "dots drawn as lines and lines drawn as squares" bug that keep hitting, and that Nokia is still investigating. Since this bug is inside Qt code, i cannot do much besides a couple of workarounds.

1) Find the "precision" that causes the problem and "force" lines to be longer than that. This might not be very nice, but if it works its the fastest workaround.

2) Rewrite the drawing code: do not apply trasnformation to the painter but to the drawing points instead. This can be arranged, but its more work and i am bit reluctant to go this way

Lets see... Stay tuned!

Update: i have solved the main problem using a QPainterPath instead of a QVector of QLinesF... Dont ask why, but this way it works and the Qt bug is not triggered...

Update: FreeTrack 1.3.0 BETA 6 is out! Go get it with all these great improvements!

lunedì 17 gennaio 2011

Libpng...

Work is progressing in integrating libpng...

I come out with a better algorythm to draw the cached chunks. Right now it works, but when you zoom out/in to a different "zoom level" it will cause a reload of all the nine chunks, which is SLOW. I want to change so that at any time it load only a few chunks (the visible ones). This will cause more reloads while you pan, but it should be faster on average...

Update: i finished implementing the libpng reader, it works, but maybe some more testing can be useful.

Update: i rewrote the chunk management code in LayerMap, it seems to be faster, i am testing it right now!

domenica 16 gennaio 2011

New week, new news...

Hi all!
Still no news for the bug in Qt...

Anyway, i found out that to keep the screen always on you need the "ReadDeviceData" capability which cannot be acquired for "self signed" applications, so i cannot distribute this function from the web site. I added some #define to let it build only for the next OVI store release.

Update: i clean a bit some libjpeg files, which where unneeded. I am also working on fixing the fact that sometimes a map chunk is not properly displayed, like it is not loaded...

Update2: i am also thinking about adding libpng support... guess what, maybe its faster than libjpeg for chunks?

I am in the process of fixing the Image classes to add PNG support. Libpng does not seems to be that a bad boy, so i decided to waste my time on it. Also in the hope that it will be faster than libjpeg...

Anyway, i am adding a generic Image class with a ImageLoad static method. You call that and you get an Image* back which can be of any ImageJpeg o ImagePng class type...

giovedì 13 gennaio 2011

Found a bug in Qt for Symbian...

hi guys!
Yesterady an user reported a nasty bug... It seems that when i am drawing points and lines close to the limit of the (fairly limited) precision of Symbian's float, Qt get confused and paints lines instead of points and even worse insteads of lines.

So far, the only workaround seems to be: avoid tracks with points too close toghether!
(i will try Qt 4.7.1 later on to check if, maybe, that solves it...)

I opened a bug un Nokia (QTBUG-16632) but still no news from them.

Anyway, there is another bug affecting the current beta4 which is fairly hard to pinpoint... and leads to a crash. I will be checking on that today.

Oh, by the way, i added the "altitude correction" feature yesterday too.

Update: i am working on a strange bug which shows only on Symbian device and which causes BETA4 to crash sometimes when tracking. I had to implement a way to "inject" fake GPS points on the phone.

Meanwhile, i added the "quick autosave" feature. Now if you autosave the live track you will never loose a point.

Update: released 1.3.0 BETA 5 which adds all these new things and fix, i hope, the crash on track bug in BETA4!

A new beta by today...

... since of course beta 3 introduced a new bug: it crashes when starting to record a new track. It does not if you load a live track first, then start recording.

I fixed it today, and also added support for map zooms over 8, up to 256. So now you can actually load maps up to 64k x 64k pixels! (whether this is feasible with current computers its hard to say, since its a over 34GB image...)

Forther work for today, i hope, is adding the vertical correction feature (to add a fixed offset to the reported altitude)... and of course the save tracks as delta.

Stay tuned!

update: beta 4 is out it fixes that bug!

martedì 11 gennaio 2011

Planning for 1.4.0...

Yes, 1.3.0 is not yet out (and BETA 2 has a couple of nasty bugs) but i have added a small roadmap to 1.4.0.

1.4.0 will feature a centralized map storage... So you will "import" your maps into the storage and then you can simply see them on the tracking table when you move on them, without having to manually load them each time. This will improve loading times, make things easier, and open the road to implement "map layers" like OpenStreetMap of GoogleMaps...

Maybe 1.4.0 will also feature some UI changes, i hope so, we will see.

Stay tuned! I plan to release a BETA3 today to fix a couple of stupid bugs in BETA2 which affects track rendering.

Update: i spent some time with valgrind to debug the crashing libjpeg problem... I found a couple of issues in my code: the first was related to the use of new[] paired with delete operator instead of delete[]... The second was more tricky. I was using a QFile object, then passing it over to fdopen() for jpeglib, and i forgot to call fclose on the FILE* data... causing another small memory leak.... Now are fixed, lets see if this solves the crash...

Update: FreeTrack 1.3.0 beta 3 is out. Please go fetch it! It finally fixes the map loading crash bug and also the couple of minor regressions on beta 2!

Progress...

Yesterday i fixed the most serious bug in 1.3.0 BETA1, the autosave not working. I improved a bit how it works, now it will ask, on exit, to save the live track only if the autosave option is not selected.

I fixed some more things, including the speed of drawing thousands of points and the annoying "select button not enabled" in the save track file dialog.

I think i will release a BETA2 later on today.

Stay tuned...

Update: i have improved a lot the drawing speed of huge tracks! Now i store a separate list of QVector<QLineF> and draw it in one go with QPainter::drawLines()... This is MUCH faster than before using a for to paint a serie of drawLine( point, point)...

Update: FreeTrack 1.3.0 BETA 2 is out! Go fetch it from the google code page!

lunedì 10 gennaio 2011

New Year news...

Hi all!
First of all, a good news: FreeTrack has been published on OVI store, finally, just at the beginning of 2011. I would like to find a way to publish statistics, let see what i can do.

These past ten days have been very useful for FreeTrack. I did a lot of on-the-field testing and found out many bugs and improvements that i need to introduce into 1.3.0 to make it a very good next release. This means that its official release date will be pushed further, but also means that current BETA1 is quite good (yes, at least one major bug you must be aware of) if you need huge maps support, or you can stay with 1.2.0 otherwise.

Some things i will work on for 1.3.0:
  • Lat/Lon are inverted in the GPS data dialog (not big deal, its pretty obvious...)
  • Long tracks (>1000points) are VERY slow to draw, this needs to be fixed
  • There must be a vay to compensate for altitude offset (my is always 22 meters below)
  • serious bug: live track is NOT automatically saved... so ALWAYS ALWAYS save your tracks manually before closing FreeTrack 1.3.0 BETA1!
So, stay tuned, in the next days i will work on these issues.