Пример #1
0
    def _update_available_project_menu(self):
        """
        Discover all projects and generate an action for each one.
        Then connect this action to _on_open_project_triggered
        """
        self.menu_available_projects.clear()
        self.action_available_project.clear()

        all_projects = {}  # dict parent dir -> list of Project objects
        for project in projects():
            all_projects.setdefault(project.projectdir, []).append(project)

        home = path(get_default_home_dir())
        for projectdir, _projects in all_projects.iteritems():
            relpath = home.relpathto(projectdir)
            label = unicode(relpath)
            menu = QtGui.QMenu(label, self.menu_available_projects)
            for project in sorted(_projects, key=lambda project: project.label):
                icon = obj_icon(project, default=DEFAULT_PROJECT_ICON, paths=[project.path])
                action = QtGui.QAction(icon, project.label, self.menu_available_projects)
                action.triggered.connect(self._on_open_project_triggered)
                menu.addAction(action)
                self.action_available_project[action] = project
            self.menu_available_projects.addMenu(menu)
        return self.menu_available_projects
Пример #2
0
    def _update_available_project_menu(self):
        """
        Discover all projects and generate an action for each one.
        Then connect this action to _on_open_project_triggered
        """
        self.menu_available_projects.clear()
        self.action_available_project.clear()

        all_projects = {}  # dict parent dir -> list of Project objects
        for project in projects():
            all_projects.setdefault(project.projectdir, []).append(project)

        home = path(get_default_home_dir())
        for projectdir, _projects in all_projects.iteritems():
            relpath = home.relpathto(projectdir)
            label = unicode(relpath)
            menu = QtGui.QMenu(label, self.menu_available_projects)
            for project in sorted(_projects,
                                  key=lambda project: project.label):
                icon = obj_icon(project,
                                default=DEFAULT_PROJECT_ICON,
                                paths=[project.path])
                action = QtGui.QAction(icon, project.label,
                                       self.menu_available_projects)
                action.triggered.connect(self._on_open_project_triggered)
                menu.addAction(action)
                self.action_available_project[action] = project
            self.menu_available_projects.addMenu(menu)
        return self.menu_available_projects
Пример #3
0
    def __init__(self):
        super(GenericFileBrowser, self).__init__()
        self.model = QtGui.QFileSystemModel()
        self.tree = QtGui.QTreeView()
        self.tree.setModel(self.model)
        self.tree.header().setResizeMode(QtGui.QHeaderView.ResizeToContents)
        self._home_dir = settings.get_default_home_dir()
        self._cwd = Path(".").abspath()
        self.model.setRootPath(self._home_dir)
        self.tree.setRootIndex(self.model.index(self._home_dir))

        layout = QtGui.QGridLayout(self)
        layout.addWidget(self.tree)

        self._create_actions()
        self._create_connections()
Пример #4
0
    def __init__(self):
        super(GenericFileBrowser, self).__init__()
        self.model = QtGui.QFileSystemModel()
        self.tree = QtGui.QTreeView()
        self.tree.setModel(self.model)
        self.tree.header().setResizeMode(QtGui.QHeaderView.ResizeToContents)
        self._home_dir = settings.get_default_home_dir()
        self._cwd = Path(".").abspath()
        self.model.setRootPath(self._home_dir)
        self.tree.setRootIndex(self.model.index(self._home_dir))

        layout = QtGui.QGridLayout(self)
        layout.addWidget(self.tree)

        self._create_actions()
        self._create_connections()
Пример #5
0
    def groupby(self, **kwds):
        filter_name = kwds.get("filter_name", None)
        if filter_name == 'path':
            root = Path(get_default_home_dir())

            def parent_path(project):
                return str(root.relpathto(project.path.parent))

            self.groupby(function=parent_path)
        elif filter_name == 'authors':
            def label(criterion):
                if isinstance(criterion, list):
                    return ', '.join(criterion)
                else:
                    return str(criterion)
            self.groupby(criteria=filter_name, label=label)
        elif filter_name:
            self.groupby(criteria=filter_name)
        else:
            self._explorer.groupby(**kwds)
Пример #6
0
    def groupby(self, **kwds):
        filter_name = kwds.get("filter_name", None)
        if filter_name == 'path':
            root = Path(get_default_home_dir())

            def parent_path(project):
                return str(root.relpathto(project.path.parent))

            self.groupby(function=parent_path)
        elif filter_name == 'authors':

            def label(criterion):
                if isinstance(criterion, list):
                    return ', '.join(criterion)
                else:
                    return str(criterion)

            self.groupby(criteria=filter_name, label=label)
        elif filter_name:
            self.groupby(criteria=filter_name)
        else:
            self._explorer.groupby(**kwds)