コード例 #1
0
    def on_installer_change(self, event):
        if event.state == DL_STATE_INFO:
            if event.msg is not None:
                self.pg.set_task(event.msg)
                self.pg.set_message("")
            if event.data != -1:
                self.pg.set_message("%d%%" % event.data)
                self.pg.set_progress(event.data)
            else:
                self.pg.pulse()

        elif event.state == DL_STATE_ERROR:
            gobject.idle_add(ghlp.show_error, self, event.msg)

        elif event.state == DL_STATE_DONE:
            dname, dtarget = libsl.filename_parse(event.data)
            self.list_inst.append_row(True, False, dname, dtarget)
            self.sync_used_dicts()

        if event.state in (DL_STATE_ERROR, DL_STATE_DONE, DL_STATE_CANCEL):
            self.pg.destroy()
            ghlp.change_cursor(None)

        while gtk.events_pending():
            gtk.main_iteration(False)
コード例 #2
0
    def on_btn_right_clicked(self, widget, selection):
        (model, l_iter) = selection.get_selected()
        if l_iter is None:
            return

        fname = model.get_filename(l_iter)

        #Check duplicate
        ff = os.path.join(self.conf.sl_dicts_dir, fname[:-4])
        if os.path.isfile(ff):
            ghlp.show_error(self, _("Dictionary already installed!"))
            return

        #Check permissions
        if not is_path_writable(self.conf.sl_dicts_dir):
            ghlp.show_error(self, _("You do not have permissions!"))
            return

        ghlp.change_cursor(gdk.Cursor(gdk.WATCH))

        event = threading.Event()
        installer = DictInstaller(fname, event)
        installer.connect(self.on_installer_change)

        self.pg = ghlp.ProgressDialog(self, "Installation...", "Connecting...")
        self.pg.connect("response", lambda x, y:
                        (y == -6 and installer.cancel()))
        self.pg.show_all()

        thread = threading.Thread(target=self.__wait_connection,
                                  args=(event, self.pg))
        thread.start()
        installer.start()
コード例 #3
0
ファイル: __init__.py プロジェクト: Arpaxad/lightlang
	def on_translate_clicked(self, widget, data=None):
		""" Обработчик собития нажатия на кнопку Translate
		"""
		curr = self.cmb_target.get_active()
		if curr == -1:
			print "Warning: Target not selected"
			return

		src = self.model[curr][1]
		dst = self.model[curr][2]
		
		textbuffer = self.textview.get_buffer()
		start, end = textbuffer.get_bounds()
		text = textbuffer.get_text(start, end)

		self.conf.google_target = curr

		if len(text) == 0:
			ghlp.show_error(None, _("Empty text"))
			return

		ghlp.change_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
		self.__fire_status_changed("Send request...")

		thread = threading.Thread(target = self.request_google, args = (src, dst, text))
		thread.start()
コード例 #4
0
ファイル: __init__.py プロジェクト: trailblazing/lightlang
    def on_translate_clicked(self, widget, data=None):
        """ Обработчик собития нажатия на кнопку Translate
		"""
        curr = self.cmb_target.get_active()
        if curr == -1:
            print "Warning: Target not selected"
            return

        src = self.model[curr][1]
        dst = self.model[curr][2]

        textbuffer = self.textview.get_buffer()
        start, end = textbuffer.get_bounds()
        text = textbuffer.get_text(start, end)

        self.conf.google_target = curr

        if len(text) == 0:
            ghlp.show_error(None, _("Empty text"))
            return

        ghlp.change_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
        self.__fire_status_changed("Send request...")

        thread = threading.Thread(target=self.request_google,
                                  args=(src, dst, text))
        thread.start()
コード例 #5
0
ファイル: DictsDialog.py プロジェクト: Arpaxad/lightlang
	def on_btn_right_clicked(self, widget, selection):
		(model, l_iter) = selection.get_selected()
		if l_iter is None:
			return

		fname = model.get_filename(l_iter)

		#Check duplicate
		ff = os.path.join(self.conf.sl_dicts_dir, fname[:-4])
		if os.path.isfile(ff):
			ghlp.show_error(self, _("Dictionary already installed!"))
			return

		#Check permissions
		if not is_path_writable(self.conf.sl_dicts_dir):
			ghlp.show_error(self, _("You do not have permissions!"))
			return

		ghlp.change_cursor(gdk.Cursor(gdk.WATCH))

		event = threading.Event()
		installer = DictInstaller(fname, event)
		installer.connect(self.on_installer_change)

		self.pg = ghlp.ProgressDialog(self, "Installation...", "Connecting...")
		self.pg.connect("response", lambda x, y: (y == -6 and installer.cancel()))
		self.pg.show_all()

		thread = threading.Thread(target = self.__wait_connection, args = (event, self.pg))
		thread.start()
		installer.start()
コード例 #6
0
ファイル: DictsDialog.py プロジェクト: Arpaxad/lightlang
	def on_installer_change(self, event):
		if event.state == DL_STATE_INFO:
			if event.msg is not None:
				self.pg.set_task(event.msg)
				self.pg.set_message("")
			if event.data != -1:
				self.pg.set_message("%d%%" % event.data)
				self.pg.set_progress(event.data)
			else:
				self.pg.pulse()

		elif event.state == DL_STATE_ERROR:
			gobject.idle_add(ghlp.show_error, self, event.msg)

		elif event.state == DL_STATE_DONE:
			dname, dtarget = libsl.filename_parse(event.data)
			self.list_inst.append_row(True, False, dname, dtarget)
			self.sync_used_dicts()

		if event.state in (DL_STATE_ERROR, DL_STATE_DONE, DL_STATE_CANCEL):
			self.pg.destroy()
			ghlp.change_cursor(None)

		while gtk.events_pending():
			gtk.main_iteration(False)
コード例 #7
0
ファイル: DictsDialog.py プロジェクト: Arpaxad/lightlang
	def refresh(self):
		ghlp.change_cursor(gdk.Cursor(gdk.WATCH))

		event = threading.Event()
		thread = threading.Thread(target = self.download_repo_file, args = (event,))
		thread.start()

		while not event.isSet():
			event.wait(0.1)
			while gtk.events_pending():
				gtk.main_iteration(False)

		self.__load()
		ghlp.change_cursor(None)
コード例 #8
0
    def refresh(self):
        ghlp.change_cursor(gdk.Cursor(gdk.WATCH))

        event = threading.Event()
        thread = threading.Thread(target=self.download_repo_file,
                                  args=(event, ))
        thread.start()

        while not event.isSet():
            event.wait(0.1)
            while gtk.events_pending():
                gtk.main_iteration(False)

        self.__load()
        ghlp.change_cursor(None)
コード例 #9
0
ファイル: __init__.py プロジェクト: trailblazing/lightlang
	def on_translate_clicked(self, widget, data=None):

		target = self.cmb_target.get_active()

		textbuffer = self.textview.get_buffer()
		start, end = textbuffer.get_bounds()
		text = textbuffer.get_text(start, end)

		if  len(text) == 0:
			ghlp.show_error(None, _("Empty text"))
			return

		#TODO: Move to on_combobox_changed()
		self.conf.google_target = self.cmb_target.get_active()

		ghlp.change_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
		self.__fire_status_changed("Send request...")

		thread = threading.Thread(target = self.request_google, args = (target, text))
		thread.start()
コード例 #10
0
ファイル: __init__.py プロジェクト: trailblazing/lightlang
			if needClear:
				gobject.timeout_add(5000, self.__fire_status_changed, "")

	# Thread function
	def request_google(self, target, text):
		try:
			translate = self.google.translate(target, text)
		except urllib2.URLError, err:
			msg = "Google error: %s" % err
			print msg
			self.__fire_status_changed(msg, True)
		else:
			self.__fire_translate_changed(translate)
			self.__fire_status_changed("Done", True)
		finally:
			ghlp.change_cursor(None)

	def on_translate_clicked(self, widget, data=None):

		target = self.cmb_target.get_active()

		textbuffer = self.textview.get_buffer()
		start, end = textbuffer.get_bounds()
		text = textbuffer.get_text(start, end)

		if  len(text) == 0:
			ghlp.show_error(None, _("Empty text"))
			return

		#TODO: Move to on_combobox_changed()
		self.conf.google_target = self.cmb_target.get_active()