From a3d5c7fdcef630a902b62305c2b0c57121e24209 Mon Sep 17 00:00:00 2001
From: Ethan Trewhitt <ethan@trewhitt.org>
Date: Wed, 25 Oct 2017 13:36:33 -0400
Subject: Added parent (aka 'transient for') references to most (if not all)
 dialog boxes. First attempt at fixing #1494.

---
 grc/gui/PropsDialog.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'grc/gui/PropsDialog.py')

diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index cfea13e1a8..b299804b47 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -55,7 +55,7 @@ class PropsDialog(gtk.Dialog):
     A dialog to set block parameters, view errors, and view documentation.
     """
 
-    def __init__(self, block):
+    def __init__(self, block, parent):
         """
         Properties dialog constructor.
 
@@ -67,6 +67,7 @@ class PropsDialog(gtk.Dialog):
         gtk.Dialog.__init__(
             self,
             title='Properties: %s' % block.get_name(),
+            parent=parent,
             buttons=(gtk.STOCK_OK, gtk.RESPONSE_ACCEPT,
                      gtk.STOCK_CANCEL, gtk.RESPONSE_REJECT,
                      gtk.STOCK_APPLY, gtk.RESPONSE_APPLY)
@@ -76,6 +77,7 @@ class PropsDialog(gtk.Dialog):
             (MIN_DIALOG_WIDTH, MIN_DIALOG_HEIGHT)
         ))
         self._block = block
+        self._parent = parent
 
         vpaned = gtk.VPaned()
         self.vbox.pack_start(vpaned)
@@ -190,7 +192,7 @@ class PropsDialog(gtk.Dialog):
                     if param.get_hide() == 'all':
                         continue
                     box_all_valid = box_all_valid and param.is_valid()
-                    input_widget = param.get_input(self._handle_changed, self._activate_apply)
+                    input_widget = param.get_input(self, self._handle_changed, self._activate_apply)
                     vbox.pack_start(input_widget, input_widget.expand)
                 label.set_markup(Utils.parse_template(TAB_LABEL_MARKUP_TMPL, valid=box_all_valid, tab=tab))
                 # show params box with new params
-- 
cgit v1.2.3


From 3808e137e0719d4d92f9698a4d2d020667826afd Mon Sep 17 00:00:00 2001
From: Sebastian Koslowski <sebastian.koslowski@gmail.com>
Date: Wed, 25 Oct 2017 22:02:21 +0200
Subject: grc: make props dialog dark-theme friendly

---
 grc/gui/Colors.py      |  1 -
 grc/gui/Param.py       | 19 ++++++++-----------
 grc/gui/PropsDialog.py |  4 ++--
 3 files changed, 10 insertions(+), 14 deletions(-)

(limited to 'grc/gui/PropsDialog.py')

diff --git a/grc/gui/Colors.py b/grc/gui/Colors.py
index d322afa410..023a4e7038 100644
--- a/grc/gui/Colors.py
+++ b/grc/gui/Colors.py
@@ -30,7 +30,6 @@ try:
     MISSING_BLOCK_BACKGROUND_COLOR = get_color('#FFF2F2')
     MISSING_BLOCK_BORDER_COLOR = get_color('red')
     #param entry boxes
-    PARAM_ENTRY_TEXT_COLOR = get_color('black')
     ENTRYENUM_CUSTOM_COLOR = get_color('#EEEEEE')
     #flow graph color constants
     FLOWGRAPH_BACKGROUND_COLOR = get_color('#FFFFFF')
diff --git a/grc/gui/Param.py b/grc/gui/Param.py
index 71acffe743..7f90a7bea1 100644
--- a/grc/gui/Param.py
+++ b/grc/gui/Param.py
@@ -23,7 +23,7 @@ import pygtk
 pygtk.require('2.0')
 import gtk
 
-from . import Colors, Utils, Constants
+from . import Colors, Constants
 from .Element import Element
 from . import Utils
 
@@ -133,17 +133,18 @@ class EntryParam(InputParam):
     def set_color(self, color):
         need_status_color = self.label not in self.get_children()
         text_color = (
-            Colors.PARAM_ENTRY_TEXT_COLOR if not need_status_color else
+            None if not need_status_color else
             gtk.gdk.color_parse('blue') if self._have_pending_changes else
             gtk.gdk.color_parse('red') if not self.param.is_valid() else
-            Colors.PARAM_ENTRY_TEXT_COLOR)
+            None)
         base_color = (
             Colors.BLOCK_DISABLED_COLOR
             if need_status_color and not self.param.get_parent().get_enabled()
             else gtk.gdk.color_parse(color)
         )
         self._input.modify_base(gtk.STATE_NORMAL, base_color)
-        self._input.modify_text(gtk.STATE_NORMAL, text_color)
+        if text_color:
+            self._input.modify_text(gtk.STATE_NORMAL, text_color)
 
     def set_tooltip_text(self, text):
         try:
@@ -179,7 +180,6 @@ class MultiLineEntryParam(InputParam):
 
     def set_color(self, color):
         self._view.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
-        self._view.modify_text(gtk.STATE_NORMAL, Colors.PARAM_ENTRY_TEXT_COLOR)
 
     def set_tooltip_text(self, text):
         try:
@@ -243,8 +243,7 @@ class PythonEditorParam(InputParam):
         pass  # we never update the value from here
 
     def set_color(self, color):
-        # self._button.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
-        self._button.modify_text(gtk.STATE_NORMAL, Colors.PARAM_ENTRY_TEXT_COLOR)
+        pass
 
     def _apply_change(self, *args):
         pass
@@ -305,10 +304,8 @@ class EnumEntryParam(InputParam):
     def set_color(self, color):
         if self._input.get_active() == -1: #custom entry, use color
             self._input.get_child().modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse(color))
-            self._input.get_child().modify_text(gtk.STATE_NORMAL, Colors.PARAM_ENTRY_TEXT_COLOR)
         else: #from enum, make pale background
             self._input.get_child().modify_base(gtk.STATE_NORMAL, Colors.ENTRYENUM_CUSTOM_COLOR)
-            self._input.get_child().modify_text(gtk.STATE_NORMAL, Colors.PARAM_ENTRY_TEXT_COLOR)
 
 
 class FileParam(EntryParam):
@@ -365,9 +362,9 @@ PARAM_MARKUP_TMPL="""\
 <span foreground="$foreground" font_desc="$font"><b>$encode($param.get_name()): </b>$encode(repr($param).replace('\\n',' '))</span>"""
 
 PARAM_LABEL_MARKUP_TMPL="""\
-#set $foreground = $modified and 'blue' or $param.is_valid() and 'black' or 'red'
+#set $foreground = $modified and 'foreground="blue"' or not $param.is_valid() and 'foreground="red"' or ''
 #set $underline = $has_cb and 'low' or 'none'
-<span underline="$underline" foreground="$foreground" font_desc="Sans 9">$encode($param.get_name())</span>"""
+<span underline="$underline" $foreground font_desc="Sans 9">$encode($param.get_name())</span>"""
 
 TIP_MARKUP_TMPL="""\
 ########################################
diff --git a/grc/gui/PropsDialog.py b/grc/gui/PropsDialog.py
index b299804b47..36c792cbe7 100644
--- a/grc/gui/PropsDialog.py
+++ b/grc/gui/PropsDialog.py
@@ -28,8 +28,8 @@ import Utils
 import pango
 
 TAB_LABEL_MARKUP_TMPL="""\
-#set $foreground = $valid and 'black' or 'red'
-<span foreground="$foreground">$encode($tab)</span>"""
+#set $foreground = not $valid and 'foreground="red"' or ''
+<span $foreground>$encode($tab)</span>"""
 
 
 def get_title_label(title):
-- 
cgit v1.2.3