changeset 6390c8999218 in tryton:default
details: https://hg.tryton.org/tryton?cmd=changeset;node=6390c8999218
description:
        Replace ColorSelectionDialog by ColorChooserDialog

        The former is deprecated and use Gtk.Color while we need Gdk.RGBA.

        issue8231
        review259261002
diffstat:

 CHANGELOG                                                |   1 +
 tryton/common/htmltextbuffer.py                          |   2 +-
 tryton/gui/window/view_form/view/form_gtk/richtextbox.py |  23 +++++++++------
 3 files changed, 15 insertions(+), 11 deletions(-)

diffs (75 lines):

diff -r 16db4360489e -r 6390c8999218 CHANGELOG
--- a/CHANGELOG Tue Apr 02 17:53:05 2019 +0200
+++ b/CHANGELOG Tue Apr 02 17:57:05 2019 +0200
@@ -1,3 +1,4 @@
+* Replace ColorSelectionDialog by ColorChooserDialog
 * Support HTML widget
 * Use locale format for data import and export
 * Add day view on calendar
diff -r 16db4360489e -r 6390c8999218 tryton/common/htmltextbuffer.py
--- a/tryton/common/htmltextbuffer.py   Tue Apr 02 17:53:05 2019 +0200
+++ b/tryton/common/htmltextbuffer.py   Tue Apr 02 17:57:05 2019 +0200
@@ -313,7 +313,7 @@
 
 
 def register_foreground(text_buffer, color):
-    name = 'foreground %s' % color
+    name = 'foreground %s' % color.to_string()
     tag_table = text_buffer.get_tag_table()
     tag = tag_table.lookup(name)
     if not tag:
diff -r 16db4360489e -r 6390c8999218 
tryton/gui/window/view_form/view/form_gtk/richtextbox.py
--- a/tryton/gui/window/view_form/view/form_gtk/richtextbox.py  Tue Apr 02 
17:53:05 2019 +0200
+++ b/tryton/gui/window/view_form/view/form_gtk/richtextbox.py  Tue Apr 02 
17:57:05 2019 +0200
@@ -3,7 +3,7 @@
 from gettext import gettext as _
 from weakref import WeakKeyDictionary
 
-from gi.repository import Gtk
+from gi.repository import Gtk, Gdk
 
 from .textbox import TextBox
 from tryton.common import get_toplevel_window, IconFactory
@@ -207,6 +207,7 @@
 
         bolds, italics, underlines = set(), set(), set()
         families, sizes, justifications = set(), set(), set()
+        self.colors['foreground'] = 'black'
 
         iter_ = start.copy()
         while True:
@@ -232,6 +233,8 @@
                     size = SIZES.index(size)
                 elif tag.props.name.startswith('justification'):
                     _, justification = tag.props.name.split()
+                elif tag.props.name.startswith('foreground'):
+                    _, self.colors['foreground'] = tag.props.name.split()
             bolds.add(bold)
             italics.add(italic)
             underlines.add(underline)
@@ -324,16 +327,16 @@
             start = start.get_offset()
             end = end.get_offset()
 
-        dialog = Gtk.ColorSelectionDialog(_('Select a color'))
-        dialog.set_transient_for(get_toplevel_window())
-        colorsel = dialog.get_color_selection()
-        colorsel.set_has_palette(True)
-        color = self.colors.get(name)
-        if color:
-            colorsel.set_current_color(color)
+        dialog = Gtk.ColorChooserDialog(
+            title=_('Select a color'),
+            transient_for=get_toplevel_window(),
+            use_alpha=False)
+        color = Gdk.RGBA()
+        if name in self.colors:
+            color.parse(self.colors[name])
+            dialog.set_rgba(color)
         if dialog.run() == Gtk.ResponseType.OK:
-            color = colorsel.get_current_color()
-            self.colors[name] = color
+            color = dialog.get_rgba()
             if start is not None and end is not None:
                 start = text_buffer.get_iter_at_offset(start)
                 end = text_buffer.get_iter_at_offset(end)

Reply via email to