def paste_clipboard(self): newname = os.path.join(self.path, os.path.basename(self._clipboard_file)) if newname == self._clipboard_file: self.svc.error_dlg(_('Cannot copy files to themselves.')) return if not os.path.exists(self._clipboard_file): self.svc.error_dlg(_('Source file has vanished.')) return if os.path.exists(newname): self.svc.error_dlg(_('Destination already exists.')) return task = AsyncTask(self._paste_clipboard, lambda: None) task.start()
def _python_fork(self, commandargs, env, cwd): self._term.connect('commit', self.on_commit_python) # TODO: Env broken env = dict(os.environ) env['TERM'] = 'xterm' (master, slave) = os.openpty() self.slave = slave self.master = master self._term.set_pty(master) p = subprocess.Popen(commandargs, stdin=slave, stdout=slave, preexec_fn=self._python_fork_preexec_fn, stderr=slave, env=env, cwd=cwd, close_fds=True) self._pid = p.pid self._last_cwd = cwd gobject.timeout_add(200, self._save_cwd) t = AsyncTask(self._python_fork_waiter, self._python_fork_complete) t.start(p)
def on_signin_btn__clicked(self, object): self.parent.statusLabel.set_text('Signing in...') data = { 'username': self.username.get_text(), 'password': hashlib.md5(self.password.get_text()).hexdigest() } self._disable_forms() AsyncTask(net.sign_in, self.sign_in_response).start(data)
def refresh_project(self): """ Updates the project cache database """ if not self._current: return if self._current in self._update_tasks: self.notify_user(_("Update already running"), title=_("Project")) return self.notify_user(_("Update started"), title=_("Project")) self._update_tasks[self._current] = AsyncTask( work_callback=self._update_job) self._update_tasks[self._current].start(self._current)
def __init__(self, parent): super(Content, self).__init__() self.parent = parent self.favorites_btn.set_name('favorites') self.settings_btn.set_name('settings') self.toggles = [self.favorites_btn, self.settings_btn] self.greeting_lbl.set_text('Hi, {0}'.format( self.parent.account_data.get('realname', ''))) self.server_message_lbl.set_text( self.parent.account_data.get('message', 'No new messages.')) # requesting categories AsyncTask(net.categories, self.categories_response).start()
def on_create_btn__clicked(self, object): self.error_lbl.set_label('') username = self.username.get_text() password1 = self.password.get_text() password2 = self.password2.get_text() realname = self.real_name.get_text() email = self.email.get_text() errors = self._validate_form() if len(errors): for x in errors: self.error_lbl.set_label(errors[x]) self._flash_error(x) else: # do the registration self.parent.statusLabel.set_text('Sending data...') data = { 'username': username, 'password': hashlib.md5(password1).hexdigest(), 'realname': realname, 'email': email } self._disable_forms() AsyncTask(net.new_user, self.register_response).start(data)
if data: urlargs = (req, urlencode(data)) else: urlargs = (req,) def _fetcher(): try: f = urlopen(*urlargs) content = f.read() url = f.url except Exception, e: content = str(e) url = None return url, content task = AsyncTask(_fetcher, content_callback) task.start() if __name__ == '__main__': def cc(url, data): print url, data gtk.main_quit() fetch_url('http://google.com/sdfsdfsdf', cc) import gtk gtk.threads_init() gtk.threads_enter() gtk.main() gtk.threads_leave()
def on_books_list__double_click(self, ol, item): self.contents_tree.clear() if item is not None: task = AsyncTask(self.load_book, self.book_loaded) task.start()
def remove_path(self, path): task = AsyncTask(self._remove_path, lambda: None) task.start(path)
def create_ancest_tree(self): task = AsyncTask(self._get_ancestors, self._show_ancestors) task.start(self.path)
def diff_path(self, path): self._log.append_action('Diffing', path, gtk.STOCK_COPY) task = AsyncTask(self._do_diff, self._done_diff) task.start(path)
def show_first_content(self): self._clear_content() self.statusLabel.set_text('Connecting...') AsyncTask(self.net.send_hello, self.ping_status).start() self.body_content = self.add_slave(FirstContent(self), 'mainContent')
def on_recovery_btn__clicked(self, object): self.parent.statusLabel.set_text('Please wait...') self._disable_forms() data = {'email': self.recovery_email.get_text()} self._disable_forms() AsyncTask(net.recover, self.recovery_response).start(data)