Example #1
0
    def key_release(self, widget, event):
        buffer = self.text_view.get_buffer()

        insertIter = buffer.get_iter_at_mark(buffer.get_insert())
        if insertIter.backward_search("...", 0, None) != None:
            eFindIterStart = insertIter.backward_search("...", 0, None)[0]
            eFindIterStop = insertIter.backward_search("...", 0, None)[1]
            buffer.delete(eFindIterStart, eFindIterStop)
            buffer.insert(buffer.get_iter_at_mark(buffer.get_insert()), "…")

        insertIter = buffer.get_iter_at_mark(buffer.get_insert())
        if insertIter.backward_search('\"', 0, None) != None:
            qFindIter = insertIter.backward_search('\"', 0, None)[1] if insertIter.backward_search('\"', 0, None) != None else None
            qFindIterPrev = insertIter.backward_search('\"', 0, None)[0]
            qOpen = qFindIter.backward_search('«', 0, None)[1].get_offset() if qFindIter.backward_search('«', 0, None) != None else -1
            qClose = qFindIter.backward_search('»', 0, None)[1].get_offset() if qFindIter.backward_search('»', 0, None) != None else -1
            if (qOpen == -1 and qClose == -1) or (qOpen < qClose):
                buffer.delete(qFindIterPrev, qFindIter)
                buffer.insert(qFindIter, '«')
            else:
                buffer.delete(qFindIterPrev, qFindIter)
                buffer.insert(qFindIter, '»')

        if  (event.keyval in [Gdk.KEY_i, Gdk.KEY_I, 1993, 2025]) and event.state & Gdk.ModifierType.CONTROL_MASK:
            if buffer.get_has_selection():
                iter1 = buffer.get_selection_bounds()[0]
                buffer.insert(iter1, "<i>")
                iter2 = buffer.get_selection_bounds()[1]
                buffer.insert(iter2, "</i>")
                buffer.select_range(iter2,iter2)
            else:
                insertIter = buffer.get_iter_at_mark(buffer.get_insert())
                itStartIter = insertIter.backward_search("<i>", 0, None)
                if itStartIter != None:
                    itStopIter = itStartIter[1].forward_search("</i>", 0, None)
                else:
                    itStopIter = None
                isOpen = itStartIter != None and (itStopIter == None)
                if itStartIter == None:
                    buffer.insert(insertIter, "<i>")
                elif isOpen:
                    buffer.insert(insertIter, "</i>")
                elif not isOpen:
                    if insertIter.compare(itStopIter[1]) >= 0:
                        buffer.insert(insertIter, "<i>")

        if  event.keyval == Gdk.KEY_Return and event.state & Gdk.ModifierType.CONTROL_MASK:
            self.response(Gtk.ResponseType.OK)
            return True

        if  event.keyval in [Gdk.KEY_Z, Gdk.KEY_z, 2022, 1990] and event.state & Gdk.ModifierType.CONTROL_MASK:
            with GObject.signal_handler_block(self.text_view.get_buffer(), self.changed_handler):
                if event.state & Gdk.ModifierType.SHIFT_MASK:
                    self.history.redo()
                else:
                    self.history.undo()

        if (event.keyval in [Gdk.KEY_Y, Gdk.KEY_y, 2037, 2005]) and event.state & Gdk.ModifierType.CONTROL_MASK:
            with GObject.signal_handler_block(self.text_view.get_buffer(), self.changed_handler):
                self.history.redo()
Example #2
0
 def _block_setting_signals(klass, signal_name, block=True):
     shell_settings = klass.get_shell_settings()
     for handler in klass._settings_signal_handlers.get(signal_name, []):
         if block:
             GObject.signal_handler_block(shell_settings, handler)
         else:
             GObject.signal_handler_unblock(shell_settings, handler)
Example #3
0
 def _on_button_release(self, scale, event, player):
     GObject.signal_handler_block(self.scale, self.__id_value_changed)
     value = scale.get_value()
     if player.seekable and self.__pressed_lmb_scale_value != value:
         player.seek(value * 1000)
     GObject.signal_handler_unblock(self.scale, self.__id_change_value)
     self.__pressed_lmb = False
     GObject.signal_handler_unblock(
         self.scale, self.__id_button_press_event)
Example #4
0
 def update(self):
     for i, h in self.handlers_:
         GObject.signal_handler_block(i, h)
     s = self.camera_.get()
     for e, a, ie, ia in zip(self.ctrl_, self.auto_, s["vals"], s["auto"]):
         e.set_text("%d" % ie)
         if a:
             a.set_active(ia)
     for i, h in self.handlers_:
         GObject.signal_handler_unblock(i, h)
Example #5
0
 def show_search_box(self):
     if not self.search_revealer.get_reveal_child():
         GObject.signal_handler_block(self.search_revealer, self.search_revealer_show_cb_id)
         self.search_revealer.set_visible(True)
         self.search_revealer.set_reveal_child(True)
         GObject.signal_handler_unblock(self.search_revealer, self.search_revealer_show_cb_id)
         # XXX: Mestery line to avoid Gtk-CRITICAL stuff
         # (guake:22694): Gtk-CRITICAL **: 18:04:57.345:
         # gtk_widget_event: assertion 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed
         self.search_entry.realize()
         self.search_entry.grab_focus()
Example #6
0
 def show_search_box(self):
     if not self.search_revealer.get_reveal_child():
         self.search_revealer.set_reveal_child(True)
         # XXX: Mestery line to avoid Gtk-CRITICAL stuff
         # (guake:22694): Gtk-CRITICAL **: 18:04:57.345:
         # gtk_widget_event: assertion 'WIDGET_REALIZED_FOR_EVENT (widget, event)' failed
         self.search_entry.realize()
         self.search_entry.grab_focus()
         GObject.signal_handler_block(
             self.get_notebook(),
             self.get_notebook().notebook_on_button_press_id
         )
Example #7
0
    def on_audio_status(self, *volumes):
        volumes_json = "".join(volumes)
        volumes = json.loads(volumes_json)

        for source, volume in volumes.items():
            volume = 20.0 * math.log10(volume) if volume > 0 else -20.0
            slider, signal = self.volume_sliders[source]
            # Temporarily block the 'value-changed' signal,
            # so we don't (re)trigger it when receiving (our) changes
            GObject.signal_handler_block(slider, signal)
            slider.set_value(volume)
            GObject.signal_handler_unblock(slider, signal)
Example #8
0
 def resize_to_standard_width(self):
     if self.get_resizable():
         return  # only size to a specific em if we are a static size
     num_em = 33  # per SoftwareUpdates spec
     dpi = self.get_screen().get_resolution()
     if dpi <= 0:
         dpi = 96
     ctx = self.get_style_context()
     GObject.signal_handler_block(ctx, self.style_changed)
     size = ctx.get_property("font-size", Gtk.StateFlags.NORMAL)
     width = dpi / 72 * size * num_em
     self.set_size_request(width, -1)
     GObject.signal_handler_unblock(ctx, self.style_changed)
Example #9
0
def gobject_signal_blocked(gobject, signal_name):
	"""
	This is a context manager that can be used with the 'with' statement
	to execute a block of code while *signal_name* is blocked.

	:param gobject: The object to block the signal on.
	:type gobject: :py:class:`GObject.Object`
	:param str signal_name: The name of the signal to block.
	"""
	signal_id = GObject.signal_lookup(signal_name, gobject.__class__)
	handler_id = GObject.signal_handler_find(gobject, GObject.SignalMatchType.ID, signal_id, 0, None, 0, 0)
	GObject.signal_handler_block(gobject, handler_id)
	yield
	GObject.signal_handler_unblock(gobject, handler_id)
def gobject_signal_blocked(gobject, signal_name):
	"""
	This is a context manager that can be used with the 'with' statement
	to execute a block of code while *signal_name* is blocked.

	:param gobject: The object to block the signal on.
	:type gobject: :py:class:`GObject.Object`
	:param str signal_name: The name of the signal to block.
	"""
	signal_id = GObject.signal_lookup(signal_name, gobject.__class__)
	handler_id = GObject.signal_handler_find(gobject, GObject.SignalMatchType.ID, signal_id, 0, None, 0, 0)
	GObject.signal_handler_block(gobject, handler_id)
	yield
	GObject.signal_handler_unblock(gobject, handler_id)
Example #11
0
    def _toggle_all_selection(self, selected):
        """
        Selects or unselects all items without sending the notify::active
        signal for performance purposes.
        """
        for child in self.view.get_children():
            GObject.signal_handler_block(child.check, child.check_handler_id)

            # Set the checkbutton state without emiting the signal
            child.check.set_active(selected)

            GObject.signal_handler_unblock(child.check, child.check_handler_id)

        self.update_header_from_selection(len(self.albums_selected))
Example #12
0
    def _toggle_all_selection(self, selected):
        """
        Selects or unselects all items without sending the notify::active
        signal for performance purposes.
        """
        for child in self._view.get_children():
            GObject.signal_handler_block(child.check, child.check_handler_id)

            # Set the checkbutton state without emiting the signal
            child.check.set_active(selected)

            GObject.signal_handler_unblock(child.check, child.check_handler_id)

        self.update_header_from_selection(len(self.albums_selected))
Example #13
0
 def clear_tree(self):
     selection = self.get_selection()
     if self.conid is not None and selection.handler_is_connected(
             self.conid):
         with GObject.signal_handler_block(selection, self.conid):
             self.liststore.clear()
     else:
         self.liststore.clear()
Example #14
0
    def onInsertText(self, oWidget, strText, nLength, nPosition):

        strText = ''.join([s for s in strText if s not in '/\\'])
        nId, nDetail = GObject.signal_parse_name('insert-text', oWidget, True)

        if strText:

            nHandler = GObject.signal_handler_find(oWidget,
                                                   GObject.SignalMatchType.ID,
                                                   nId, nDetail, None, 0, 0)
            nPosition = oWidget.get_position()

            GObject.signal_handler_block(oWidget, nHandler)
            oWidget.insert_text(strText, nPosition)
            GObject.signal_handler_unblock(oWidget, nHandler)
            GObject.idle_add(oWidget.set_position, nPosition + len(strText))

        GObject.signal_stop_emission(oWidget, nId, nDetail)
Example #15
0
 def _reset_emoji_entry(self):
     """
     The emoji entry should stay clear in order to function properly.
     When something is being inserted, then it should be cleared after
     either starting editing a new tag, selected one, or otherwise changed.
     """
     with GObject.signal_handler_block(self._emoji_entry,
                                       self._emoji_entry_changed_id):
         self._emoji_entry.set_text('')
Example #16
0
    def on_entry_changed(self, *args):
        entry = self.srvgui.get_widget('gtk_entry_collection_new')
        filter = entry.get_text()
        selection = self.treeview.get_selection()


        def gui_iterate_over_data(model, path, itr):
            title = self.sorted_model.get(itr, 2)[0]
            if len(filter) > 0:
                if filter.upper() in title.upper():
                    self.treeview.scroll_to_cell(path, self.column_title, True, 0.0, 0.0)
                    self.treeview.set_cursor_on_cell(path, self.column_title, self.renderer_title, False)
                else:
                    return

        GObject.signal_handler_block(self.selection, self.trv_signal_changed)
        self.sorted_model.foreach(gui_iterate_over_data)
        GObject.signal_handler_unblock(self.selection, self.trv_signal_changed)
Example #17
0
    def on_refresh_ui(self, data):
        if self.state < Gst.State.PAUSED :
            return True

        if self.duration == Gst.CLOCK_TIME_NONE :
            ret, self.duration = self.player.query_duration(Gst.Format.TIME)
            if ret:
                self.slider.set_range(0, self.duration/Gst.SECOND)
            else:
                print("Could not query current duration.")

        ret, pos = self.player.query_position(Gst.Format.TIME)
        if ret:
            GObject.signal_handler_block(self.slider,
                                         self.slider_update_sig_id)
            self.slider.set_value(pos/Gst.SECOND)
            GObject.signal_handler_unblock(self.slider,
                                           self.slider_update_sig_id)

        return True
Example #18
0
    def on_refresh_ui(self, data):
        if self.state < Gst.State.PAUSED:
            return True

        if self.duration == Gst.CLOCK_TIME_NONE:
            ret, self.duration = self.player.query_duration(Gst.Format.TIME)
            if ret:
                self.slider.set_range(0, self.duration / Gst.SECOND)
            else:
                print("Could not query current duration.")

        ret, pos = self.player.query_position(Gst.Format.TIME)
        if ret:
            GObject.signal_handler_block(self.slider,
                                         self.slider_update_sig_id)
            self.slider.set_value(pos / Gst.SECOND)
            GObject.signal_handler_unblock(self.slider,
                                           self.slider_update_sig_id)

        return True
Example #19
0
    def load_games(self, direction=FIRST_PAGE):
        selection = self.get_selection()
        if selection is not None and self.preview_cid is not None and \
                selection.handler_is_connected(self.preview_cid):
            with GObject.signal_handler_block(selection, self.preview_cid):
                self.liststore.clear()
        else:
            self.liststore.clear()

        add = self.liststore.append

        self.records = []
        records, plys = self.persp.chessfile.get_records(direction)
        for i, rec in enumerate(records):
            game_id = rec["Id"]
            offs = rec["Offset"]
            wname = rec["White"]
            bname = rec["Black"]
            welo = rec["WhiteElo"]
            belo = rec["BlackElo"]
            result = rec["Result"]
            result = "½-½" if result == DRAW else reprResult[
                result] if result else "*"
            event = "" if rec["Event"] is None else rec["Event"].replace(
                "?", "")
            site = "" if rec["Site"] is None else rec["Site"].replace("?", "")
            round_ = "" if rec["Round"] is None else rec["Round"].replace(
                "?", "")
            date = "" if rec["Date"] is None else rec["Date"].replace(
                ".??", "").replace("????.", "")

            try:
                ply = rec["PlyCount"]
                length = str(int(ply) // 2) if ply else ""
            except ValueError:
                length = ""
            eco = rec["ECO"]
            tc = rec["TimeControl"]
            variant = rec["Variant"]
            variant = variants[variant].cecp_name.capitalize(
            ) if variant else ""
            fen = rec["FEN"]

            add([
                game_id, wname, welo, bname, belo, result, date, event, site,
                round_, length, eco, tc, variant, fen
            ])

            ply = plys.get(offs) if offs in plys else 0
            self.records.append((rec, ply))

        self.set_cursor(0)
Example #20
0
File: cols.py Project: t00m/Basico
    def on_entry_changed(self, *args):
        entry = self.srvgui.get_widget('gtk_entry_collection_new')
        filter = entry.get_text()
        selection = self.treeview.get_selection()

        # ~ self.visible_filter.refilter()

        def gui_iterate_over_data(model, path, itr):
            title = self.sorted_model.get(itr, 2)[0]
            if len(filter) > 0:
                if filter.upper() in title.upper():
                    self.treeview.scroll_to_cell(path, self.column_title, True,
                                                 0.0, 0.0)
                    self.treeview.set_cursor_on_cell(path, self.column_title,
                                                     self.renderer_title,
                                                     False)
                else:
                    return

        GObject.signal_handler_block(self.selection, self.trv_signal_changed)
        self.sorted_model.foreach(gui_iterate_over_data)
        GObject.signal_handler_unblock(self.selection, self.trv_signal_changed)
Example #21
0
    def load_games(self, direction=FIRST_PAGE):
        selection = self.get_selection()
        if selection is not None and self.preview_cid is not None and \
                selection.handler_is_connected(self.preview_cid):
            with GObject.signal_handler_block(selection, self.preview_cid):
                self.liststore.clear()
        else:
            self.liststore.clear()

        add = self.liststore.append

        self.records = []
        records, plys = self.persp.chessfile.get_records(direction)
        for i, rec in enumerate(records):
            game_id = rec["Id"]
            offs = rec["Offset"]
            wname = rec["White"]
            bname = rec["Black"]
            welo = rec["WhiteElo"]
            belo = rec["BlackElo"]
            result = rec["Result"]
            result = "½-½" if result == DRAW else reprResult[result] if result else "*"
            event = "" if rec["Event"] is None else rec["Event"].replace("?", "")
            site = "" if rec["Site"] is None else rec["Site"].replace("?", "")
            round_ = "" if rec["Round"] is None else rec["Round"].replace("?", "")
            date = "" if rec["Date"] is None else rec["Date"].replace(".??", "").replace("????.", "")

            try:
                ply = rec["PlyCount"]
                length = str(int(ply) // 2) if ply else ""
            except ValueError:
                length = ""
            eco = rec["ECO"]
            tc = rec["TimeControl"]
            variant = rec["Variant"]
            variant = variants[variant].cecp_name.capitalize() if variant else ""
            fen = rec["FEN"]

            add([game_id, wname, welo, bname, belo, result, date, event, site,
                 round_, length, eco, tc, variant, fen])

            ply = plys.get(offs) if offs in plys else 0
            self.records.append((rec, ply))

        self.set_cursor(0)
Example #22
0
    def load_games(self, forward=True):
        selection = self.get_selection()
        if selection is not None and self.preview_cid is not None and \
                selection.handler_is_connected(self.preview_cid):
            with GObject.signal_handler_block(selection, self.preview_cid):
                self.liststore.clear()
        else:
            self.liststore.clear()

        getTag = self.chessfile._getTag
        getResult = self.chessfile.get_result
        getPlayers = self.chessfile.get_player_names
        add = self.liststore.append

        records = self.chessfile.get_records(self.offset, self.LIMIT, forward)

        self.id_list = []
        for i in range(len(records)):
            game_id = self.chessfile.get_id(i)
            self.id_list.append(game_id)
            wname, bname = getPlayers(i)
            welo = getTag(i, "WhiteElo")
            belo = getTag(i, "BlackElo")
            result = getResult(i)
            result = "½-½" if result == DRAW else reprResult[result]
            event = getTag(i, 'Event')
            site = getTag(i, 'Site')
            round_ = getTag(i, "Round")
            date = getTag(i, "Date")
            ply = getTag(i, "PlyCount")
            length = str(int(ply) // 2) if ply else ""
            eco = getTag(i, "ECO")
            tc = getTag(i, "TimeControl")
            variant = getTag(i, "Variant")
            fen = getTag(i, "FEN")
            add([game_id, wname, welo, bname, belo, result, date, event, site,
                 round_, length, eco, tc, variant, fen])

        if isinstance(self.chessfile, Database) and len(self.id_list) > 0:
            # set offset to last/first seen game id depending on direction
            # it will be used in databese get_records() where clause
            self.offset = self.id_list[-1 if forward else 0]

        self.set_cursor(0)
        self.update_counter()
Example #23
0
    def set_emoji(self, widget):
        """Set emoji as icon (both in settings and button label)."""

        text = self.hidden_entry.get_text()

        if text:
            self.ti_bt_label.set_text(text)
            self.ti_bt_label.set_opacity(1)
            self.ti_bt_clear.set_sensitive(True)
        else:
            self.ti_bt_label.set_text('🏷️')
            self.ti_bt_label.set_opacity(0.4)
            self.ti_bt_clear.set_sensitive(False)

        with GObject.signal_handler_block(self.hidden_entry, self.emoji_id):
            self.hidden_entry.set_text('')

        self.tag.set_attribute('icon', text)
Example #24
0
    def add_checkbox(self, tid: int, start: Gtk.TextIter) -> None:
        """Add a checkbox for a subtask."""

        task = self.req.get_task(tid)
        checkbox = Gtk.CheckButton.new()

        if task and task.status != task.STA_ACTIVE:
            checkbox.set_active(True)

        checkbox.connect('toggled', lambda _: self.on_checkbox_toggle(tid))
        checkbox.set_can_focus(False)

        # Block the modified signal handler while we add the anchor
        # for the checkbox widget
        with GObject.signal_handler_block(self.buffer, self.id_modified):
            anchor = self.buffer.create_child_anchor(start)
            self.add_child_at_anchor(checkbox, anchor)
            end = start.copy()
            end.forward_char()
            self.buffer.apply_tag(self.checkbox_tag, start, end)

        self.buffer.set_modified(False)
        checkbox.show()
Example #25
0
 def block_notebook_on_button_press_id(self):
     GObject.signal_handler_block(
         self.get_notebook(),
         self.get_notebook().notebook_on_button_press_id)
Example #26
0
 def _on_button_press(self, scale, event, player):
     GObject.signal_handler_block(self.scale, self.__id_button_press_event)
     self.__pressed_lmb = True
     GObject.signal_handler_unblock(self.scale, self.__id_value_changed)
     GObject.signal_handler_block(self.scale, self.__id_change_value)
     self.__pressed_lmb_scale_value = scale.get_value()
Example #27
0
    def key_release(self, widget, event):
        buffer = self.text_view.get_buffer()

        insertIter = buffer.get_iter_at_mark(buffer.get_insert())
        if not(insertIter.backward_search("...", 0, None) is None):
            eFindIterStart = insertIter.backward_search("...", 0, None)[0]
            eFindIterStop = insertIter.backward_search("...", 0, None)[1]
            buffer.delete(eFindIterStart, eFindIterStop)
            buffer.insert(buffer.get_iter_at_mark(buffer.get_insert()), "…")

        insertIter = buffer.get_iter_at_mark(buffer.get_insert())
        if not(insertIter.backward_search('\"', 0, None) is None):
            qFindIter = insertIter.backward_search('\"', 0, None)[1] if not(insertIter.backward_search('\"', 0, None) is None) else None
            qFindIterPrev = insertIter.backward_search('\"', 0, None)[0]
            qOpen = qFindIter.backward_search('«', 0, None)[1].get_offset() if not(qFindIter.backward_search('«', 0, None) is None) else -1
            qClose = qFindIter.backward_search('»', 0, None)[1].get_offset() if not(qFindIter.backward_search('»', 0, None) is None) else -1
            if (qOpen == -1 and qClose == -1) or (qOpen < qClose):
                buffer.delete(qFindIterPrev, qFindIter)
                buffer.insert(qFindIter, '«')
            else:
                buffer.delete(qFindIterPrev, qFindIter)
                buffer.insert(qFindIter, '»')

        if  (event.keyval in [Gdk.KEY_i, Gdk.KEY_I, 1993, 2025]) and event.state & Gdk.ModifierType.CONTROL_MASK:
            if buffer.get_has_selection():
                iter1 = buffer.get_selection_bounds()[0]
                buffer.insert(iter1, "<i>")
                iter2 = buffer.get_selection_bounds()[1]
                buffer.insert(iter2, "</i>")
                buffer.select_range(iter2,iter2)
            else:
                insertIter = buffer.get_iter_at_mark(buffer.get_insert())
                itStartIter = insertIter.backward_search("<i>", 0, None)
                if not(itStartIter is None):
                    itStopIter = itStartIter[1].forward_search("</i>", 0, None)
                else:
                    itStopIter = None
                isOpen = not (itStartIter is None) and (itStopIter is None)
                if itStartIter is None:
                    buffer.insert(insertIter, "<i>")
                elif isOpen:
                    buffer.insert(insertIter, "</i>")
                elif not isOpen:
                    if insertIter.compare(itStopIter[1]) >= 0:
                        buffer.insert(insertIter, "<i>")

        if  (event.keyval in [Gdk.KEY_b, Gdk.KEY_B, 1986, 2018]) and event.state & Gdk.ModifierType.CONTROL_MASK:
            if buffer.get_has_selection():
                iter1 = buffer.get_selection_bounds()[0]
                buffer.insert(iter1, "<b>")
                iter2 = buffer.get_selection_bounds()[1]
                buffer.insert(iter2, "</b>")
                buffer.select_range(iter2,iter2)
            else:
                insertIter = buffer.get_iter_at_mark(buffer.get_insert())
                itStartIter = insertIter.backward_search("<b>", 0, None)
                if not(itStartIter is None):
                    itStopIter = itStartIter[1].forward_search("</b>", 0, None)
                else:
                    itStopIter = None
                isOpen = not(itStartIter is None) and (itStopIter is None)
                if itStartIter is None:
                    buffer.insert(insertIter, "<b>")
                elif isOpen:
                    buffer.insert(insertIter, "</b>")
                elif not isOpen:
                    if insertIter.compare(itStopIter[1]) >= 0:
                        buffer.insert(insertIter, "<b>")

        if  event.keyval == Gdk.KEY_Return and event.state & Gdk.ModifierType.CONTROL_MASK:
            self.response(Gtk.ResponseType.OK)
            return True

        if event.keyval in [Gdk.KEY_Left, Gdk.KEY_period] and event.state & Gdk.ModifierType.CONTROL_MASK and self.info_type == 'info':
            self.info_resp_button = 'prev'
            self.response(Gtk.ResponseType.OK)

        if event.keyval in [Gdk.KEY_Right, Gdk.KEY_comma] and event.state & Gdk.ModifierType.CONTROL_MASK and self.info_type == 'info':
            self.info_resp_button = 'next'
            self.response(Gtk.ResponseType.OK)

        if  event.keyval in [Gdk.KEY_Z, Gdk.KEY_z, 2022, 1990] and event.state & Gdk.ModifierType.CONTROL_MASK:
            with GObject.signal_handler_block(self.text_view.get_buffer(), self.changed_handler):
                if event.state & Gdk.ModifierType.SHIFT_MASK:
                    self.history.redo()
                else:
                    self.history.undo()

        if (event.keyval in [Gdk.KEY_Y, Gdk.KEY_y, 2037, 2005]) and event.state & Gdk.ModifierType.CONTROL_MASK:
            with GObject.signal_handler_block(self.text_view.get_buffer(), self.changed_handler):
                self.history.redo()
Example #28
0
 def set_active(active):
     GObject.signal_handler_block(self.visible_check, handler)
     self.visible_check.set_active(active)
     GObject.signal_handler_unblock(self.visible_check, handler)
def gobject_signal_blocked(gobject, signal_name):
	signal_id = GObject.signal_lookup(signal_name, gobject.__class__)
	handler_id = GObject.signal_handler_find(gobject, GObject.SignalMatchType.ID, signal_id, 0, None, 0, 0)
	GObject.signal_handler_block(gobject, handler_id)
	yield
	GObject.signal_handler_unblock(gobject, handler_id)
Example #30
0
    def change_color(self, rgb):
        """Refresh preview and set values of all fields.
        :param rgb: rgb color values
        :type rgb: tuple
        """

        rgba = Gdk.RGBA()
        rgba.parse("rgb({},{},{})".format(*rgb))
        self.square.override_background_color(Gtk.StateType.NORMAL, rgba)

        GObject.signal_handler_block(self.spinbutton_r, self.red_sb_id)
        self.spinbutton_r.set_value(rgb[0])
        GObject.signal_handler_unblock(self.spinbutton_r, self.red_sb_id)
        GObject.signal_handler_block(self.slider_r, self.red_s_id)
        self.slider_r.set_value(rgb[0])
        GObject.signal_handler_unblock(self.slider_r, self.red_s_id)

        GObject.signal_handler_block(self.spinbutton_g, self.green_sb_id)
        self.spinbutton_g.set_value(rgb[1])
        GObject.signal_handler_unblock(self.spinbutton_g, self.green_sb_id)
        GObject.signal_handler_block(self.slider_g, self.green_s_id)
        self.slider_g.set_value(rgb[1])
        GObject.signal_handler_unblock(self.slider_g, self.green_s_id)

        GObject.signal_handler_block(self.spinbutton_b, self.blue_sb_id)
        self.spinbutton_b.set_value(rgb[2])
        GObject.signal_handler_unblock(self.spinbutton_b, self.blue_sb_id)
        GObject.signal_handler_block(self.slider_b, self.blue_s_id)
        self.slider_b.set_value(rgb[2])
        GObject.signal_handler_unblock(self.slider_b, self.blue_s_id)

        GObject.signal_handler_block(self.output, self.output_id)
        self.output.set_text(rgb_to_hex(rgb))
        GObject.signal_handler_unblock(self.output, self.output_id)

        self.rgb_color = rgb
        self.change_output()
Example #31
0
    def __init__(self, player, library):
        Gtk.Box.__init__(self)
        self.elapsed_label = TimeLabel()
        self.elapsed_label.set_name('elapsed-label')
        self.remaining_label = TimeLabel()
        self.remaining_label.set_name('remaining-label')
        self.remaining_label.set_width_chars(6)
        self.scale = Gtk.Scale(orientation=Gtk.Orientation.HORIZONTAL)
        self.scale.set_name('seek-bar')
        self.scale.set_adjustment(Gtk.Adjustment.new(0, 0, 0, 30, 5, 0))
        self.scale.set_digits(3)
        self.scale.set_show_fill_level(False)
        self.scale.set_draw_value(False)
        self._timer_modes = ['both', 'elapsed', 'remaining']
        self.c_timer_mode = __name__ + '_timer_mode'

        self.__timer_mode = 'both'
        self.__pressed_lmb = False
        self.__source_id = None

        self.elapsed_button = Gtk.Button()

        self.box = Gtk.Box(spacing=3)
        self.elapsed_button.add(self.box)
        self.elapsed_button.set_relief(Gtk.ReliefStyle.NONE)

        self.pack_start(self.scale, True, True, 0)

        try:
            self.__timer_mode = config.get('plugins', self.c_timer_mode)
        except NoOptionError:
            config.set('plugins', self.c_timer_mode, 'both')
        else:
            if self.__timer_mode not in self._timer_modes:
                self.__timer_mode = 'both'

        self._set_timer_mode(self.__timer_mode)

        self.elapsed_label.show()
        self.remaining_label.show()
        self.box.show()
        self.elapsed_button.show()
        self.scale.show()

        self.elapsed_button.connect('clicked', self._on_timer_clicked)
        self.scale.connect('button-release-event',
                           self._on_button_release, player)
        self.__id_button_press_event = self.scale.connect(
            'button-press-event', self._on_button_press, player)
        self.__id_change_value = self.scale.connect(
            'change-value', self._on_scale_value_change_request, player)

        self.__id_value_changed = self.scale.connect(
            'value-changed', self._on_scale_value_changed, player)
        GObject.signal_handler_block(self.scale, self.__id_value_changed)

        self._tracker = SynchronizedTimeTracker(player)
        self._tracker.connect('tick', self._on_tick, player)

        connect_destroy(player, 'seek', self._on_seek)
        connect_destroy(player, 'song-started', self._on_song_start)
        connect_destroy(player, "notify::seekable", self._update)

        self.connect("destroy", self._on_destroy)

        self._update(player)
Example #32
0
 def _inhibit(self):
     with GObject.signal_handler_block(self._scale, self._id):
         yield
Example #33
0
 def _inhibit(self):
     with GObject.signal_handler_block(self._scale, self._id):
         yield
Example #34
0
File: boxes.py Project: Guake/guake
 def block_notebook_on_button_press_id(self):
     GObject.signal_handler_block(
         self.get_notebook(),
         self.get_notebook().notebook_on_button_press_id
     )
Example #35
0
 def set_active(active):
     GObject.signal_handler_block(self.visible_check, handler)
     self.visible_check.set_active(active)
     GObject.signal_handler_unblock(self.visible_check, handler)