[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-core-devel
Subject:    PATCH: KNewsTicker
From:       Frerich Raabe <frerichraabe () gmx ! de>
Date:       2001-06-12 11:34:34
[Download RAW message or body]

Hello,

the attached patch introduces a new "Language" property for KNewsTicker's 
news sources. This is necessary so that, when KNewsTicker is first started on 
a system, only those news feeds which are either english or the configured 
language are shown. I think this is actually a feature of KNewsTicker, but I 
didn't make it configurable yet, or introduced any other UI change (except 
that, depending on the configured language, a different list of news sources 
is selected), so I post it here for reviewal. Would be nice if I comment this 
one, so that David doesn't have to learn german... ;-)

- Frerich

["knewsticker-lang.diff" (text/x-c++)]

Index: configaccess.cpp
===================================================================
RCS file: /home/kde/kdenetwork/knewsticker/common/configaccess.cpp,v
retrieving revision 1.34
diff -u -3 -p -r1.34 configaccess.cpp
--- configaccess.cpp	2001/06/09 12:44:39	1.34
+++ configaccess.cpp	2001/06/12 11:31:18
@@ -13,6 +13,9 @@
 
 #include <qregexp3.h>
 
+#include <kdebug.h>
+#include <kglobal.h>
+
 static NewsSourceBase::Data NewsSourceDefault[DEFAULT_NEWSSOURCES] = {
 	// Business -----------
 		NewsSourceBase::Data(
@@ -45,7 +48,7 @@ static NewsSourceBase::Data NewsSourceDe
 		QString::fromLatin1("heise online news"),
 	  QString::fromLatin1("http://www.heise.de/newsticker/heise.rdf"),
 	  QString::fromLatin1("http://www.heise.de/favicon.ico"),
-	  NewsSourceBase::Computers, 10, true, false),
+	  NewsSourceBase::Computers, 10, true, false, QString::fromLatin1("de")),
 		NewsSourceBase::Data(
 		QString::fromLatin1("Kuro5hin"),
 	  QString::fromLatin1("http://kuro5hin.org/backend.rdf"),
@@ -55,18 +58,18 @@ static NewsSourceBase::Data NewsSourceDe
 		QString::fromLatin1("Prolinux"),
 	  QString::fromLatin1("http://www.pl-forum.de/backend/pro-linux.rdf"),
 	  QString::fromLatin1("http://www.prolinux.de/favicon.ico"),
-	  NewsSourceBase::Computers, 10, false, false),
+	  NewsSourceBase::Computers, 10, false, false, QString::fromLatin1("de")),
 		NewsSourceBase::Data(
 		QString::fromLatin1("Linuxde.org"),
 	  QString::fromLatin1("http://www.linuxde.org/backends/news.rdf"),
 	  QString::fromLatin1("http://www.linuxde.org/favicon.ico"),
-	  NewsSourceBase::Computers, 10, false, false),
+	  NewsSourceBase::Computers, 10, false, false, QString::fromLatin1("de")),
 	// Miscellaneous ------
 		NewsSourceBase::Data(
 		QString::fromLatin1("tagesschau.de"),
 	  QString::fromLatin1("http://www.tagesschau.de/newsticker.rdf"),
 	  QString::fromLatin1("http://www.tagesschau.de/favicon.ico"),
-	  NewsSourceBase::Misc, 10, true, false)
+	  NewsSourceBase::Misc, 10, true, false, QString::fromLatin1("de"))
 };
 
 ArticleFilter::ArticleFilter(const QString &action, const QString &newsSource,
@@ -308,12 +311,16 @@ NewsSourceBase *ConfigAccess::newsSource
 		nsd.icon = m_cfg->readEntry("Icon", QString::null);
 		nsd.maxArticles = m_cfg->readNumEntry("Max articles", 10);
 		nsd.enabled = m_cfg->readBoolEntry("Enabled", true);
+		nsd.language = m_cfg->readEntry("Language", QString::fromLatin1("C"));
 		m_cfg->setGroup("KNewsTicker");
 	}
 
 	for (unsigned int i = 0; i < DEFAULT_NEWSSOURCES; i++)
 		if (NewsSourceDefault[i].name == newsSource) {
 			nsd = NewsSourceDefault[i];
+			if (nsd.enabled)
+				nsd.enabled = (nsd.language == QString::fromLatin1("C") ||
+						KGlobal::locale()->languageList().contains(nsd.language));
 			break;
 		}
 	
@@ -352,6 +359,7 @@ void ConfigAccess::setNewsSource(const N
 	m_cfg->writeEntry("Subject", ns.subject);
 	m_cfg->writeEntry("Icon", ns.icon);
 	m_cfg->writeEntry("Enabled", ns.enabled);
+	m_cfg->writeEntry("Language", ns.language);
 	m_cfg->setGroup("KNewsTicker");
 	m_cfg->sync();
 }
Index: newsengine.h
===================================================================
RCS file: /home/kde/kdenetwork/knewsticker/common/newsengine.h,v
retrieving revision 1.49
diff -u -3 -p -r1.49 newsengine.h
--- newsengine.h	2001/06/09 12:15:18	1.49
+++ newsengine.h	2001/06/12 11:31:18
@@ -73,7 +73,8 @@ class NewsSourceBase : public XMLNewsSou
 					const QString &_icon = QString::null,
 					const Subject _subject = Computers,
 					const unsigned int _maxArticles = 10,
-					const bool _enabled = true, const bool _isProgram = false)
+					const bool _enabled = true, const bool _isProgram = false,
+					const QString &_language = QString::fromLatin1("C"))
 			{
 				name = _name;
 				sourceFile = _sourceFile;
@@ -82,6 +83,7 @@ class NewsSourceBase : public XMLNewsSou
 				subject = _subject;
 				enabled = _enabled;
 				isProgram = _isProgram;
+				language = _language;
 			}
 				
 			QString name;
@@ -91,6 +93,7 @@ class NewsSourceBase : public XMLNewsSou
 			unsigned int maxArticles;
 			bool enabled;
 			bool isProgram;
+			QString language;
 		};
 		typedef KSharedPtr<NewsSourceBase> Ptr;
 		typedef QValueList<Ptr> List;


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic