- Tray status

The tray status can be applied in real time if the KSystemTrayIcon status is 
known

This state needs to be known from:
1. the CaptureDialog class if the user wants to start a "New Capture" session
   and he/she starts to play with the "Advanced Option" settings;

or

2. the OptionDialog class if he/she accesses directly to the settings (in this
   case this information needs to be sent to the GuiOptionTab class too).

In both cases the creation of the OptionDialog or the CaptureDialog class happen 
in the MainWindow so the reference to the KSystemTrayIcon starts from there 
and it's sent to the wanted classes using their constructor method:

1. MainWindow --> CaptureDialog --> OptionDialog --> GuiOptionTab
2. MainWindow --> OptionDialog --> GuiOptionTab

But, what happen if the user clicks on the check box and then clicks on the Cancel 
button? Well, in this case you need to restart the original "view setting" for the 
tray, so from the OptionDialog class you can execute a restore SLOT when you capture
the SIGNAL cancelClicked() from OptionDialog class. That's why you have the slot:

void OptionDialog::slotCancel()
{
  // you need to restore the original tray state bacause the user
  // don't want to accept the changed settings
  m_guiOptionTab->restoreTray();
}

and the connection:

connect( this, SIGNAL( cancelClicked()), this, SLOT(slotCancel()) );

into OptionDialog::OptionDialog() and:

void GuiOptionTab::restoreTray()
{
  ui.m_trayBar->setCheckState( m_trayState );
}

Of course you store the m_trayState in GuiOptionTab after you read the settings. 
In fact the last step into

void GuiOptionTab::readSettings()

is:

m_trayState = ui.m_trayBar->checkState();
