def showDetails(self): sender = self.sender() self.current_preview = Preview(project=sender.project) self.current_preview.show()
def showDetails(self): sender = self.sender() self.current_preview = Preview(project=sender.project) self.current_preview.show()
class ProjectSelector(QtGui.QWidget): def __init__(self, projects, parent=None): super(ProjectSelector, self).__init__(parent) self.projects = projects self.layout = QtGui.QGridLayout(self) self.init() def init(self): button_size = 180 self.current_preview = None # Auto select number of lines and columns to display # Here number of lines <= number of columns # <=4 -> 2x2 or 2x1, <=9 -> 3x3 or 3x2, <=16 -> 4x4 or 4x3, ... nb_proj = len(self.projects) # maxcolumn = int(sqrt(nb_proj)) # Pb: we want the size of QScrollArea and not self actual_width = self.size().width() maxcolumn = int(actual_width / nb_proj) if maxcolumn > 5: maxcolumn = 5 refresh_widget = QtGui.QPushButton("Refresh") refresh_widget.clicked.connect(self.refresh_project_list) add_widget = QtGui.QPushButton("Search Projects") add_widget.clicked.connect(self.add_path_to_search_project) i, j = 1, -1 for project in self.projects: # Create widget preview_widget = ProjectPushButton(project, size=button_size) preview_widget.clicked.connect(self.showDetails) if j < maxcolumn - 1: j += 1 else: j = 0 i += 1 self.layout.addWidget(preview_widget, i, j) self.layout.addWidget(refresh_widget, 0, 0) self.layout.addWidget(add_widget, 0, 1) def showDetails(self): sender = self.sender() self.current_preview = Preview(project=sender.project) self.current_preview.show() def refresh_project_list(self): project_manager = ProjectManager() project_manager.discover() self.projects = project_manager.projects self.init() def add_path_to_search_project(self): fname = self.showOpenProjectDialog() if fname: pm = ProjectManager() pm.repositories.append(fname) pm.write_settings() self.refresh_project_list() def showOpenProjectDialog(self): fname = QtGui.QFileDialog.getExistingDirectory( self, 'Select Directory to search Projects', None) return fname
class ProjectSelector(QtGui.QWidget): def __init__(self, projects, parent=None): super(ProjectSelector, self).__init__(parent) self.projects = projects self.layout = QtGui.QGridLayout(self) self.init() def init(self): button_size = 180 self.current_preview = None # Auto select number of lines and columns to display # Here number of lines <= number of columns # <=4 -> 2x2 or 2x1, <=9 -> 3x3 or 3x2, <=16 -> 4x4 or 4x3, ... nb_proj = len(self.projects) # maxcolumn = int(sqrt(nb_proj)) # Pb: we want the size of QScrollArea and not self actual_width = self.size().width() maxcolumn = int(actual_width / nb_proj) if maxcolumn > 5: maxcolumn = 5 refresh_widget = QtGui.QPushButton("Refresh") refresh_widget.clicked.connect(self.refresh_project_list) add_widget = QtGui.QPushButton("Search Projects") add_widget.clicked.connect(self.add_path_to_search_project) i, j = 1, -1 for project in self.projects: # Create widget preview_widget = ProjectPushButton(project, size=button_size) preview_widget.clicked.connect(self.showDetails) if j < maxcolumn - 1: j += 1 else: j = 0 i += 1 self.layout.addWidget(preview_widget, i, j) self.layout.addWidget(refresh_widget, 0, 0) self.layout.addWidget(add_widget, 0, 1) def showDetails(self): sender = self.sender() self.current_preview = Preview(project=sender.project) self.current_preview.show() def refresh_project_list(self): project_manager = ProjectManager() project_manager.discover() self.projects = project_manager.projects self.init() def add_path_to_search_project(self): fname = self.showOpenProjectDialog() if fname: pm = ProjectManager() pm.repositories.append(fname) pm.write_settings() self.refresh_project_list() def showOpenProjectDialog(self): fname = QtGui.QFileDialog.getExistingDirectory(self, 'Select Directory to search Projects', None) return fname