[pan2] another fix for group-pane fg-color, added default to prefs



commit df5cb469ab261b4a41b9c059a7dd665ff5dfa231
Author: Heinrich MÃller <henmull src gnome org>
Date:   Fri Jun 15 06:54:58 2012 +0200

    another fix for group-pane fg-color, added default to prefs

 pan/gui/group-pane.cc  |   19 ++++++++++++++++++-
 pan/gui/group-pane.h   |    1 +
 pan/gui/group-prefs.cc |    2 ++
 pan/gui/prefs-ui.cc    |    7 +++++++
 pan/gui/prefs.cc       |    2 +-
 pan/gui/prefs.h        |    3 ---
 pan/gui/tango-colors.h |    2 ++
 7 files changed, 31 insertions(+), 5 deletions(-)
---
diff --git a/pan/gui/group-pane.cc b/pan/gui/group-pane.cc
index 39ec3ff..bbb563f 100644
--- a/pan/gui/group-pane.cc
+++ b/pan/gui/group-pane.cc
@@ -708,9 +708,26 @@ namespace
       g_snprintf (buf, sizeof(buf), " (%lu)", unread);
       group_name += buf;
     }
+
+
+
+
+    std::string fg_col(pane->get_group_prefs().get_group_color_str(name));
+    if (fg_col.empty())
+      fg_col = pane->get_prefs().get_color_str_wo_fallback("group-pane-fg-color");
+
+    if (fg_col.empty())
+    {
+      GdkColor def_fg;
+      GtkStyle *style = gtk_rc_get_style(pane->root());
+      if(!gtk_style_lookup_color(style, "text_color", &def_fg))
+        gdk_color_parse("black", &def_fg);
+      fg_col = GroupPrefs::color_to_string(def_fg);
+    }
+
     g_object_set (renderer, "text", group_name.c_str(),
                             "weight", (!is_g || unread ? PANGO_WEIGHT_BOLD : PANGO_WEIGHT_NORMAL),
-                            "foreground", pane->get_group_prefs().get_group_color_str(name).c_str(),
+                            "foreground", fg_col.c_str(),
                             NULL);
   }
 }
diff --git a/pan/gui/group-pane.h b/pan/gui/group-pane.h
index b22b61e..cba539a 100644
--- a/pan/gui/group-pane.h
+++ b/pan/gui/group-pane.h
@@ -67,6 +67,7 @@ namespace pan
 
     public:
       GroupPrefs& get_group_prefs() { return _group_prefs; }
+      Prefs& get_prefs() { return _prefs; }
 
     private:
       GtkTreePath* find_next_subscribed_group (bool unread_only);
diff --git a/pan/gui/group-prefs.cc b/pan/gui/group-prefs.cc
index ee1327b..955ff6b 100644
--- a/pan/gui/group-prefs.cc
+++ b/pan/gui/group-prefs.cc
@@ -216,6 +216,8 @@ GroupPrefs :: color_to_string (const GdkColor& c)
 std::string
 GroupPrefs :: get_group_color_str (const Quark& group) const
 {
+  if (!_prefs[group].get_colors().count("group-color"))
+    return "";
   const GdkColor& col (_prefs[group].get_colors()["group-color"]);
   return color_to_string (col);
 }
diff --git a/pan/gui/prefs-ui.cc b/pan/gui/prefs-ui.cc
index 5a5da58..2328654 100644
--- a/pan/gui/prefs-ui.cc
+++ b/pan/gui/prefs-ui.cc
@@ -1185,6 +1185,13 @@ PrefsDialog :: PrefsDialog (Prefs& prefs, GtkWindow* parent):
     HIG :: workarea_add_row (t, &row, _("URL:"), new_color_button ("body-pane-color-url", TANGO_SKY_BLUE_DARK, prefs));
     HIG :: workarea_add_row (t, &row, _("Signature:"), new_color_button ("body-pane-color-signature", TANGO_SKY_BLUE_LIGHT, prefs));
   HIG :: workarea_finish (t, &row);
+
+  HIG :: workarea_add_section_divider (t, &row);
+  HIG :: workarea_add_section_title (t, &row, _("Body Pane"));
+    HIG :: workarea_add_section_spacer (t, row, 3);
+    HIG :: workarea_add_row (t, &row, _("Group Color Foreground:"), new_color_button ("group-pane-fg-color", TANGO_BLACK, prefs));
+  HIG :: workarea_finish (t, &row);
+
   gtk_notebook_append_page (GTK_NOTEBOOK(notebook), t, new_label_with_icon(_("_Colors"), _("Colors"), icon_prefs_colors, prefs));
 
   // Applications
diff --git a/pan/gui/prefs.cc b/pan/gui/prefs.cc
index 653e7c0..76eb5bf 100644
--- a/pan/gui/prefs.cc
+++ b/pan/gui/prefs.cc
@@ -376,7 +376,7 @@ std::string
 Prefs :: get_color_str_wo_fallback (const StringView& key) const
 {
   std::string res;
-  if (!_colors.count(key)) return res;
+  if (!_colors.count(key)) return "";
   const GdkColor& col(_colors[key]);
   return color_to_string (col);
 }
diff --git a/pan/gui/prefs.h b/pan/gui/prefs.h
index 302cad1..7be4f35 100644
--- a/pan/gui/prefs.h
+++ b/pan/gui/prefs.h
@@ -100,9 +100,6 @@ namespace pan
       GdkColor get_color (const StringView& key, const GdkColor& fallback) const;
       GdkColor get_color (const StringView& key, const StringView& fallback_str) const;
 
-//      void set_hotkey (const StringView& key, const StringView& value);
-//      std::string get_hotkey (const StringView& key) const;
-
       void set_window (const StringView& key, GtkWindow* window,
                        int default_x, int default_y,
                        int default_width, int default_height);
diff --git a/pan/gui/tango-colors.h b/pan/gui/tango-colors.h
index c2cb646..3389634 100644
--- a/pan/gui/tango-colors.h
+++ b/pan/gui/tango-colors.h
@@ -38,4 +38,6 @@
 #define TANGO_ALUMINUM_5         "#555753"
 #define TANGO_ALUMINUM_6         "#2e3436"
 
+#define TANGO_BLACK              "#000000"
+
 #endif



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]