26 #include <QApplication> 28 #include <QLibraryInfo> 34 #include <KConfigGroup> 36 #include <KStandardDirs> 37 #include <knewstuff3/downloadmanager.h> 65 QString(
"misc/financequote.pl"));
79 connect(
m_manager, SIGNAL(searchResult(KNS3::Entry::List)),
this,
91 foreach (
const KNS3::Entry &entry, updates) {
92 qDebug() << entry.name();
99 qDebug() << entry.summary();
106 KConfig *kconfig = &config;
107 QStringList groups = kconfig->groupList();
109 QStringList::Iterator it;
110 QRegExp onlineQuoteSource(QString(
"^Online-Quote-Source-(.*)$"));
113 for (it = groups.begin(); it != groups.end(); it = groups.erase(it)) {
114 if (onlineQuoteSource.indexIn(*it) >= 0) {
116 it = groups.insert(it, onlineQuoteSource.cap(1));
125 QMap<QString, AlkOnlineQuoteSource>::iterator it_source = defaults.begin();
126 while (it_source != defaults.end()) {
127 if (!groups.contains((*it_source).name())) {
128 groups += (*it_source).name();
129 (*it_source).write();
145 QString(
"alkimia/misc/financequote.pl"));
150 qApp->processEvents();
167 foreach (
const QString &file,
168 KStandardDirs().findAllResources(
"data", relPath + QString::fromLatin1(
"/*.txt"))) {
170 QString file2 = f.completeBaseName();
173 qDebug() <<
"skipping" << file2;
176 if (!sources.contains(file2)) {
177 sources.push_back(file2);
186 QMap<QString, AlkOnlineQuoteSource> result;
197 "https://fx-rate.net/%1/%2",
199 "1[ a-zA-Z]+=</span><br */?> *(\\d+\\.\\d+)",
200 "updated\\s\\d+:\\d+:\\d+\\(\\w+\\)\\s+(\\d{1,2}/\\d{2}/\\d{4})",
205 result[source.
name()] = source;
206 #if defined(BUILD_WITH_WEBKIT) 208 result[source.
name()] = source;
224 return QLibraryInfo::location(QLibraryInfo::PrefixPath) +
"/share";
234 return QDir::homePath();
237 return qgetenv(
"APPDATA");
239 return QDir::homePath();
251 return QString(
"%1/.kde4/share/config").arg(
homeRootPath());
271 return QString(
"%1/.kde4/share/apps").arg(
homeRootPath());
283 const QString &ghnsConfigFile)
301 KConfigGroup group = ghnsFile.group(
"KNewStuff3");
319 QString configFile = KStandardDirs::locate(
"config",
d->
m_GHNSFile);
320 if (configFile.isEmpty()) {
321 configFile = QString(
"%1/%2").arg(KNSRC_DIR,
d->
m_GHNSFile);
330 QFileInfo f(path + fileName);
332 return f.absoluteFilePath();
423 #include "alkonlinequotesprofile.moc"
QString hotNewStuffWriteFilePath(const QString &fileName) const
void launch(const QString &scriptPath)
void entryStatusChanged(const KNS3::Entry &entry)
const QStringList quoteSourcesGHNS()
void setManager(AlkOnlineQuotesProfileManager *manager)
static QString m_financeQuoteScriptPath
~AlkOnlineQuotesProfile()
void slotUpdatesFound(const KNS3::Entry::List &updates)
void setName(const QString &name)
QString hotNewStuffReadFilePath(const QString &fileName) const
AlkOnlineQuotesProfileManager * m_profileManager
const QStringList quoteSourcesSkrooge()
QString dataRootPath()
return data root path
static QStringList m_financeQuoteSources
QString hotNewStuffWriteDir() const
QString hotNewStuffRelPath() const
AlkOnlineQuotesProfile * m_p
QString homeRootPath()
return home root path
KConfig * kConfig() const
const QStringList quoteSourcesFinanceQuote()
QString hotNewStuffConfigFile() const
Private(AlkOnlineQuotesProfile *p)
const QStringList quoteSourcesNative()
AlkOnlineQuotesProfileManager * manager()
AlkOnlineQuotesProfile(const QString &name="alkimia", Type type=Type::None, const QString &ghnsConfigFile=QString())
const AlkOnlineQuotesProfile::Map defaultQuoteSources()
KNS3::DownloadManager * m_manager
QString kConfigFile() const
QStringList hotNewStuffReadPath() const
QMap< QString, AlkOnlineQuoteSource > Map
const Map defaultQuoteSources()
const QStringList getSourceList() const
void setProfile(AlkOnlineQuotesProfile *profile)
const QStringList quoteSources()