/** \brief Hinzufügen einer Datei zum File explorer.
    \param pFile Zeiger auf die hinzuzufügende Datei.

  Wenn die Datei bereits exisitiert wird die Datei neu geladen, ihr Tabsheet rausgesucht
  und zum aktiven Tabsheet gemacht.
*/
void FrmFileExplorer::addFile(IFile::ptr_type pFile)
{
    // rausfinden, ob es bereits ein File mit der gleichen Pfadangabe gibt, wenn
    // ja wird kein neuer reiter angelegt, sondern das "alte" file neu geladen.
    IFile *ptr = findFile(pFile->getPath());
    if (ptr)
    {
        ptr->load();
        ptr->activate();
    }
    else
    {
        FrmSourceEdit *pSrcEdit = new FrmSourceEdit(this, pFile);
        pSrcEdit->updateFromSettings();

        // Hinzufügen der File observer
        pFile->attachObserver(pSrcEdit);
        pFile->attachObserver(m_pWndMain->getProjectExplorer());
        pFile->attachObserver(this);

        int idx = ui->tcProject->addTab(pSrcEdit, pFile->getName());
        ui->tcProject->setTabToolTip(idx, pFile->getPath());
        ui->tcProject->setTabIcon(idx, QIcon(":/images/res/ok.ico"));

        // Sicher stellen, das der Tabsheet des neuen Files angezeigt wird
        pFile->activate();
    }
}