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

Bug#404905: akregator: Patch for custom article list colors



Package: akregator
Version: 4:3.5.5.dfsg.1-4
Severity: wishlist
Tags: patch

Attached is a patch from Frank Osterfeld <frank.osterfeld@gmx.de> that lets 
the user choose custom colors for the article list widget.  This is very 
helpful when using a light-on-dark color scheme, because the default red and 
blue can be hard to read on a dark background.  I just built Akregator with 
the patch and it works great.  Frank said that KDE 3.5.6 is already frozen, 
but could Debian please add this patch to 3.5.6 when it's uploaded?  (It 
works fine with 3.5.5 also, but I know that Etch is frozen.)
Index: akregator.kcfg
===================================================================
--- akregator.kcfg	(revision 573936)
+++ akregator.kcfg	(working copy)
@@ -40,6 +40,16 @@
    <entry key="Fixed Font" type="String" />
    <entry key="Serif Font" type="String" />
    <entry key="Sans Serif Font" type="String" />
+   <entry key="UseCustomColors" type="Bool">
+        <default>false</default>
+   </entry>
+    <entry key="ColorUnreadArticles" type="Color">
+        <default>#0000FF</default>
+    </entry>
+    <entry key="ColorNewArticles" type="Color">
+        <default>#FF0000</default>
+    </entry>
+        
  </group>
  <group name="HTML Settings" >
   <entry key="Fonts" type="StringList" />
Index: articlelistview.cpp
===================================================================
--- articlelistview.cpp	(revision 573936)
+++ articlelistview.cpp	(working copy)
@@ -181,15 +181,20 @@
         QColorGroup cg2(cg);
     
         if (article().status() == Article::Unread)
-            cg2.setColor(QColorGroup::Text, Qt::blue);
+            cg2.setColor(QColorGroup::Text, Settings::useCustomColors() ? Settings::colorUnreadArticles() : Qt::blue);
         else // New
-            cg2.setColor(QColorGroup::Text, Qt::red);
+            cg2.setColor(QColorGroup::Text, Settings::useCustomColors() ? Settings::colorNewArticles() : Qt::red);
     
         KListViewItem::paintCell( p, cg2, column, width, align );
     }
 
 }
 
+void ArticleListView::slotPaletteOrFontChanged()
+{
+    triggerUpdate();
+}
+
 void ArticleListView::ArticleItem::updateItem(const Article& article)
 {
     m_article = article;
Index: articlelistview.h
===================================================================
--- articlelistview.h	(revision 573936)
+++ articlelistview.h	(working copy)
@@ -80,6 +80,8 @@
             /** selects next unread article in list view, first unread article if no article was selected */
             void slotNextUnreadArticle();
 
+            void slotPaletteOrFontChanged();
+            
         signals:
             void signalArticleChosen(const Article& article);
             void signalDoubleClicked(const Article&, const QPoint&, int);
Index: settings_appearance.ui
===================================================================
--- settings_appearance.ui	(revision 573936)
+++ settings_appearance.ui	(working copy)
@@ -10,20 +10,20 @@
             <x>0</x>
             <y>0</y>
             <width>418</width>
-            <height>377</height>
+            <height>566</height>
         </rect>
     </property>
     <property name="caption">
         <string>General</string>
     </property>
-    <vbox>
+    <grid>
         <property name="name">
             <cstring>unnamed</cstring>
         </property>
         <property name="margin">
             <number>0</number>
         </property>
-        <widget class="QGroupBox">
+        <widget class="QGroupBox" row="1" column="0">
             <property name="name">
                 <cstring>groupBox3</cstring>
             </property>
@@ -114,8 +114,25 @@
                 </widget>
             </grid>
         </widget>
-        <widget class="QGroupBox">
+        <spacer row="4" column="0">
             <property name="name">
+                <cstring>spacer1</cstring>
+            </property>
+            <property name="orientation">
+                <enum>Vertical</enum>
+            </property>
+            <property name="sizeType">
+                <enum>Expanding</enum>
+            </property>
+            <property name="sizeHint">
+                <size>
+                    <width>20</width>
+                    <height>41</height>
+                </size>
+            </property>
+        </spacer>
+        <widget class="QGroupBox" row="2" column="0">
+            <property name="name">
                 <cstring>FontsGroupBox</cstring>
             </property>
             <property name="title">
@@ -179,7 +196,7 @@
                 </widget>
             </grid>
         </widget>
-        <widget class="QCheckBox">
+        <widget class="QCheckBox" row="3" column="0">
             <property name="name">
                 <cstring>kcfg_UnderlineLinks</cstring>
             </property>
@@ -187,24 +204,99 @@
                 <string>&amp;Underline links</string>
             </property>
         </widget>
-        <spacer>
+        <widget class="QGroupBox" row="0" column="0">
             <property name="name">
-                <cstring>spacer1</cstring>
+                <cstring>groupBox3_2</cstring>
             </property>
-            <property name="orientation">
-                <enum>Vertical</enum>
+            <property name="title">
+                <string>Article List Colors</string>
             </property>
-            <property name="sizeType">
-                <enum>Expanding</enum>
-            </property>
-            <property name="sizeHint">
-                <size>
-                    <width>20</width>
-                    <height>41</height>
-                </size>
-            </property>
-        </spacer>
-    </vbox>
+            <grid>
+                <property name="name">
+                    <cstring>unnamed</cstring>
+                </property>
+                <widget class="QCheckBox" row="0" column="0" rowspan="1" colspan="2">
+                    <property name="name">
+                        <cstring>kcfg_UseCustomColors</cstring>
+                    </property>
+                    <property name="text">
+                        <string>Use custom colors</string>
+                    </property>
+                </widget>
+                <widget class="QLayoutWidget" row="1" column="0">
+                    <property name="name">
+                        <cstring>layout1</cstring>
+                    </property>
+                    <grid>
+                        <property name="name">
+                            <cstring>unnamed</cstring>
+                        </property>
+                        <widget class="QLabel" row="0" column="0">
+                            <property name="name">
+                                <cstring>lbl_unreadArticles</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>Unread articles</string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton" row="1" column="1">
+                            <property name="name">
+                                <cstring>kcfg_ColorNewArticles</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                        <widget class="KColorButton" row="0" column="1">
+                            <property name="name">
+                                <cstring>kcfg_ColorUnreadArticles</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string></string>
+                            </property>
+                        </widget>
+                        <widget class="QLabel" row="1" column="0">
+                            <property name="name">
+                                <cstring>lbl_newArticles</cstring>
+                            </property>
+                            <property name="enabled">
+                                <bool>false</bool>
+                            </property>
+                            <property name="text">
+                                <string>New articles</string>
+                            </property>
+                        </widget>
+                    </grid>
+                </widget>
+                <spacer row="1" column="1">
+                    <property name="name">
+                        <cstring>spacer2</cstring>
+                    </property>
+                    <property name="orientation">
+                        <enum>Horizontal</enum>
+                    </property>
+                    <property name="sizeType">
+                        <enum>Expanding</enum>
+                    </property>
+                    <property name="sizeHint">
+                        <size>
+                            <width>110</width>
+                            <height>20</height>
+                        </size>
+                    </property>
+                </spacer>
+            </grid>
+        </widget>
+    </grid>
 </widget>
 <customwidgets>
 </customwidgets>
@@ -233,18 +325,38 @@
         <receiver>kcfg_MinimumFontSize</receiver>
         <slot>setValue(int)</slot>
     </connection>
+    <connection>
+        <sender>kcfg_UseCustomColors</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>kcfg_ColorUnreadArticles</receiver>
+        <slot>setEnabled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>kcfg_UseCustomColors</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>kcfg_ColorNewArticles</receiver>
+        <slot>setEnabled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>kcfg_UseCustomColors</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>lbl_unreadArticles</receiver>
+        <slot>setEnabled(bool)</slot>
+    </connection>
+    <connection>
+        <sender>kcfg_UseCustomColors</sender>
+        <signal>toggled(bool)</signal>
+        <receiver>lbl_newArticles</receiver>
+        <slot>setEnabled(bool)</slot>
+    </connection>
 </connections>
 <layoutdefaults spacing="6" margin="11"/>
 <includehints>
-    <includehint>knuminput.h</includehint>
-    <includehint>knuminput.h</includehint>
     <includehint>kfontcombo.h</includehint>
-    <includehint>klineedit.h</includehint>
     <includehint>kfontcombo.h</includehint>
-    <includehint>klineedit.h</includehint>
     <includehint>kfontcombo.h</includehint>
-    <includehint>klineedit.h</includehint>
     <includehint>kfontcombo.h</includehint>
-    <includehint>klineedit.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
+    <includehint>kcolorbutton.h</includehint>
 </includehints>
 </UI>
Index: akregator_view.cpp
===================================================================
--- akregator_view.cpp	(revision 577072)
+++ akregator_view.cpp	(working copy)
@@ -297,6 +297,8 @@
     connect( m_articleList, SIGNAL(signalDoubleClicked(const Article&, const QPoint&, int)),
                 this, SLOT( slotOpenArticleExternal(const Article&, const QPoint&, int)) );
 
+    connect( m_part, SIGNAL(signalSettingsChanged()), m_articleList, SLOT(slotPaletteOrFontChanged()));
+    
     m_articleViewer = new ArticleViewer(m_articleSplitter, "article_viewer");
     m_articleViewer->setSafeMode();  // disable JS, Java, etc...
 

Attachment: pgptfrbQPZRTl.pgp
Description: PGP signature


Reply to: