[haiku] Re: opentracker

  • From: "Luposian" <luposian@xxxxxxx>
  • To: <haiku@xxxxxxxxxxxxx>
  • Date: Wed, 13 Mar 2013 17:07:59 -0700

After reading about god objects, I found code references to ravioli... and lasagna... and even... spaghetti with meatballs! Man... if I were a programmer... this would start making me really hungry! Who wrote these wiki references... an Italian chef?!? Hasta la pasta! :-D


-----Original Message----- From: Ryan Leavengood
Sent: Wednesday, March 13, 2013 4:26 PM
To: Haiku ML
Subject: [haiku] Re: opentracker

On Wed, Mar 13, 2013 at 6:52 PM, Luposian <luposian@xxxxxxx> wrote:

Ok, I'm probably a tad behind on this (probably never really grasped it, to
begin with, even back in the BeOS days), but what is Tracker and what is
Deskbar? I'm assuming Deskbar is the stuff in the upper right corner of the
screen, correct?  It's like the Start menu in Windows, right?  Whereas,
Tracker is... ???  Is it like the MacOS Finder?  What does it incorporate,
functionally?

You are more or less correct. The Deskbar is the window in the upper
right (usually) which has an application menu and manages running
applications and their windows. It also handles the Ctrl-Tab
functionality (like the Windows Alt-Tab.)

Tracker manages the desktop and the files seen there and is generally
the thing you see when opening folders. It also holds the code for the
standard BeOS/Haiku open and save dialogs.

What is lacking in it?  What does it need to have improved?  Why does it
need to be rewritten?

I don't know if it necessarily needs to be rewritten, but there is
certainly room for improvement. Alexandre Deckner would have a better
idea since he has done a lot of improvements to it in his
tracker_layout branch on GitHub:

https://github.com/aldeck/haiku/tree/tracker_layout

Like any older code base it has various hacks and legacy code which at
this point Haiku no longer needs. Some aspects of its design make it
harder to change and improve. For example the code has a PoseView
class which is a God object (http://en.wikipedia.org/wiki/God_object)
that pretty much handles everything you could imagine when it comes to
the contents of tracker windows. Making changes to this class is
therefore very error prone since small changes can have unexpected
side effects.

--
Regards,
Ryan

Other related posts: