def __showProjectProperties(self):
     """
     Private method to show the data of a project entry.
     """
     itm = self.currentItem()
     if itm is not None:
         filename = unicode(itm.data(Qt.UserRole).toString())
         if filename:
             project = self.multiProject.getProject(filename)
             if project is not None:
                 dlg = AddProjectDialog(self, project = project)
                 if dlg.exec_() == QDialog.Accepted:
                     name, filename, isMaster, description = dlg.getData()
                     project = {
                         'name' : name, 
                         'file' : filename, 
                         'master' : isMaster, 
                         'description' : description, 
                     }
                     self.multiProject.changeProjectProperties(project)
 def addProject(self, startdir = None):
     """
     Public slot used to add files to the project.
     
     @param startdir start directory for the selection dialog
     """
     if startdir is None:
         startdir = self.ppath
     dlg = AddProjectDialog(self.ui, startdir=startdir)
     if dlg.exec_() == QDialog.Accepted:
         name, filename, isMaster, description = dlg.getData()
         
         # step 1: check, if project was already added
         for project in self.projects:
             if project['file'] == filename:
                 return
         
         # step 2: check, if master should be changed
         if isMaster:
             for project in self.projects:
                 if project['master']:
                     project['master'] = False
                     self.emit(SIGNAL("projectDataChanged"), project)
                     self.setDirty(True)
                     break
         
         # step 3: add the project entry
         project = {
             'name'        : name, 
             'file'        : filename, 
             'master'      : isMaster, 
             'description' : description, 
         }
         self.projects.append(project)
         self.emit(SIGNAL("projectAdded"), project)
         self.setDirty(True)