Exemple #1
0
 def create_file_manage_actions(self, fnames):
     """Return file management actions"""
     only_files = all([osp.isfile(_fn) for _fn in fnames])
     only_modules = all([osp.splitext(_fn)[1] in ('.py', '.pyw', '.ipy')
                         for _fn in fnames])
     only_notebooks = all([osp.splitext(_fn)[1] == '.ipynb'
                           for _fn in fnames])
     only_valid = all([encoding.is_text_file(_fn) for _fn in fnames])
     run_action = create_action(self, _("Run"), icon=ima.icon('run'),
                                triggered=self.run)
     edit_action = create_action(self, _("Edit"), icon=ima.icon('edit'),
                                 triggered=self.clicked)
     move_action = create_action(self, _("Move..."),
                                 icon="move.png",
                                 triggered=self.move)
     delete_action = create_action(self, _("Delete..."),
                                   icon=ima.icon('editdelete'),
                                   triggered=self.delete)
     rename_action = create_action(self, _("Rename..."),
                                   icon=ima.icon('rename'),
                                   triggered=self.rename)
     open_action = create_action(self, _("Open"), triggered=self.open)
     ipynb_convert_action = create_action(self, _("Convert to Python script"),
                                          icon=ima.icon('python'),
                                          triggered=self.convert_notebooks)
     
     actions = []
     if only_modules:
         actions.append(run_action)
     if only_valid and only_files:
         actions.append(edit_action)
     else:
         actions.append(open_action)
     actions += [delete_action, rename_action]
     basedir = fixpath(osp.dirname(fnames[0]))
     if all([fixpath(osp.dirname(_fn)) == basedir for _fn in fnames]):
         actions.append(move_action)
     actions += [None]
     if only_notebooks and nbexporter is not None:
         actions.append(ipynb_convert_action)
     
     # VCS support is quite limited for now, so we are enabling the VCS
     # related actions only when a single file/folder is selected:
     dirname = fnames[0] if osp.isdir(fnames[0]) else osp.dirname(fnames[0])
     if len(fnames) == 1 and vcs.is_vcs_repository(dirname):
         vcs_ci = create_action(self, _("Commit"),
                                icon=ima.icon('vcs_commit'),
                                triggered=lambda fnames=[dirname]:
                                self.vcs_command(fnames, 'commit'))
         vcs_log = create_action(self, _("Browse repository"),
                                 icon=ima.icon('vcs_browse'),
                                 triggered=lambda fnames=[dirname]:
                                 self.vcs_command(fnames, 'browse'))
         actions += [None, vcs_ci, vcs_log]
     
     return actions
Exemple #2
0
 def create_file_manage_actions(self, fnames):
     """Return file management actions"""
     only_files = all([osp.isfile(_fn) for _fn in fnames])
     only_modules = all([osp.splitext(_fn)[1] in ('.py', '.pyw', '.ipy')
                         for _fn in fnames])
     only_notebooks = all([osp.splitext(_fn)[1] == '.ipynb'
                           for _fn in fnames])
     only_valid = all([encoding.is_text_file(_fn) for _fn in fnames])
     run_action = create_action(self, _("Run"), icon="run_small.png",
                                triggered=self.run)
     edit_action = create_action(self, _("Edit"), icon="edit.png",
                                 triggered=self.clicked)
     move_action = create_action(self, _("Move..."),
                                 icon="move.png",
                                 triggered=self.move)
     delete_action = create_action(self, _("Delete..."),
                                   icon="delete.png",
                                   triggered=self.delete)
     rename_action = create_action(self, _("Rename..."),
                                   icon="rename.png",
                                   triggered=self.rename)
     open_action = create_action(self, _("Open"), triggered=self.open)
     ipynb_convert_action = create_action(self, _("Convert to Python script"),
                                          icon="python.png",
                                          triggered=self.convert)
     
     actions = []
     if only_modules:
         actions.append(run_action)
     if only_valid and only_files:
         actions.append(edit_action)
     else:
         actions.append(open_action)
     actions += [delete_action, rename_action]
     basedir = fixpath(osp.dirname(fnames[0]))
     if all([fixpath(osp.dirname(_fn)) == basedir for _fn in fnames]):
         actions.append(move_action)
     actions += [None]
     if only_notebooks and nbexporter is not None:
         actions.append(ipynb_convert_action)
     
     # VCS support is quite limited for now, so we are enabling the VCS
     # related actions only when a single file/folder is selected:
     dirname = fnames[0] if osp.isdir(fnames[0]) else osp.dirname(fnames[0])
     if len(fnames) == 1 and vcs.is_vcs_repository(dirname):
         vcs_ci = create_action(self, _("Commit"),
                                icon="vcs_commit.png",
                                triggered=lambda fnames=[dirname]:
                                self.vcs_command(fnames, 'commit'))
         vcs_log = create_action(self, _("Browse repository"),
                                 icon="vcs_browse.png",
                                 triggered=lambda fnames=[dirname]:
                                 self.vcs_command(fnames, 'browse'))
         actions += [None, vcs_ci, vcs_log]
     
     return actions