[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: [lokalize/frameworks] src: kde5port gettextheader parsing + speedup langlist model
From: Nick Shaforostoff <shafff () ukr ! net>
Date: 2014-11-30 20:17:58
Message-ID: E1XvAwQ-0002HL-2W () scm ! kde ! org
[Download RAW message or body]
Git commit 7b868e4f0cfca7ba0ad63e110c1ba7ce7d2dee17 by Nick Shaforostoff.
Committed on 30/11/2014 at 22:17.
Pushed by shaforo into branch 'frameworks'.
kde5port gettextheader parsing + speedup langlist model
M +17 -31 src/catalog/gettextheader.cpp
M +8 -8 src/common/languagelistmodel.cpp
M +0 -1 src/lokalizemainwindow.cpp
M +1 -1 src/tm/tmtab.cpp
http://commits.kde.org/lokalize/7b868e4f0cfca7ba0ad63e110c1ba7ce7d2dee17
diff --git a/src/catalog/gettextheader.cpp b/src/catalog/gettextheader.cpp
index 2701b36..9f03bf4 100644
--- a/src/catalog/gettextheader.cpp
+++ b/src/catalog/gettextheader.cpp
@@ -1,7 +1,7 @@
/* ****************************************************************************
This file is part of Lokalize
- Copyright (C) 2008-2009 by Nick Shaforostoff <shafff@ukr.net>
+ Copyright (C) 2008-2014 by Nick Shaforostoff <shafff@ukr.net>
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License as
@@ -309,38 +309,27 @@ void updateHeader(QString& header,
QString language; //initialized with preexisting value or later
QString mailingList; //initialized with preexisting value or later
- static KConfig* allLanguagesConfig=0;
- if (!allLanguagesConfig)
- {
-#if 0 //KDE5PORT
- allLanguagesConfig = new KConfig("all_languages", KConfig::NoGlobals, \
"locale");
- allLanguagesConfig->setLocale(QString());
-#endif
- }
- QRegExp langTeamRegExp("^ *Language-Team:.*");
+ static QMap<QString,QLocale::Language> langEnums;
+ if (!langEnums.size())
+ for (int l=QLocale::Abkhazian; l<=QLocale::Akoose; ++l)
+ langEnums[QLocale::languageToString((QLocale::Language)l)]=(QLocale::Language)l;
+
+ static QRegExp langTeamRegExp(QStringLiteral("^ *Language-Team:.*"));
for ( it = headerList.begin(),found=false; it != headerList.end() && !found; \
++it ) {
found=it->contains(langTeamRegExp);
if (found)
{
//really parse header
- QMap<QString,QString> map;
- foreach (const QString &runningLangCode, \
KGlobal::locale()->allLanguagesList())
- {
- ///// KDE5PORT KConfigGroup cg(allLanguagesConfig, runningLangCode);
- //////map[cg.readEntry("Name")]=runningLangCode;
- }
- if (map.size()<16) //may be just "en_US" and ""
- kWarning()<<"seems that all_languages file is missing (usually \
located under /usr/share/locale)";
-
- QRegExp re("^ *Language-Team: *(.*) *<([^>]*)>");
+ QRegExp re(QStringLiteral("^ *Language-Team: *(.*) *<([^>]*)>"));
if (re.indexIn(*it) != -1 )
{
- if (map.contains( re.cap(1).trimmed() ))
+ if (langEnums.contains( re.cap(1).trimmed() ))
{
language=re.cap(1).trimmed();
mailingList=re.cap(2).trimmed();
- langCode=map.value(language);
+ QList<QLocale> locales = \
QLocale::matchingLocales(langEnums.value(language), QLocale::AnyScript, \
QLocale::AnyCountry); + if (locales.size()) \
langCode=locales.first().name().left(2); }
}
@@ -350,10 +339,7 @@ void updateHeader(QString& header,
if (language.isEmpty())
{
- //language=locale.languageCodeToName(d->_langCode);
- ////KDE5PORT
- //////KConfigGroup cg(allLanguagesConfig, langCode);
- /////language=cg.readEntry("Name");
+ language=QLocale::languageToString(QLocale(langCode).language());
if (language.isEmpty())
language=langCode;
}
@@ -368,14 +354,13 @@ void updateHeader(QString& header,
- temp="Language-Team: "%language%" <"%mailingList%'>';
- temp+="\\n";
+ temp="Language-Team: "%language%" <"%mailingList%'>' % "\\n";
if (KDE_ISLIKELY( found ))
(*ait) = temp;
else
headerList.append(temp);
- QRegExp langCodeRegExp("^ *Language: *([^ \\\\]*)");
+ static QRegExp langCodeRegExp(QStringLiteral("^ *Language: *([^ \\\\]*)"));
temp="Language: "%langCode%"\\n";
for ( it = headerList.begin(),found=false; it != headerList.end() && !found; \
++it ) {
@@ -388,9 +373,10 @@ void updateHeader(QString& header,
headerList.append(temp);
temp="Content-Type: text/plain; charset="%codec->name()%"\\n";
+ static QRegExp ctRe("^ *Content-Type:.*");
for ( it = headerList.begin(),found=false; it != headerList.end() && !found; \
++it ) {
- found=it->contains(QRegExp("^ *Content-Type:.*"));
+ found=it->contains(ctRe);
if (found) *it=temp;
}
if (KDE_ISUNLIKELY( !found ))
@@ -437,7 +423,7 @@ void updateHeader(QString& header,
//kWarning()<<"generated: " << t;
if ( !t.isEmpty() )
{
- QRegExp pf("^ *Plural-Forms:\\s*nplurals.*\\\\n");
+ static QRegExp pf(QStringLiteral("^ \
*Plural-Forms:\\s*nplurals.*\\\\n")); pf.setMinimal(true);
temp=QString("Plural-Forms: %1\\n").arg(t);
it->replace(pf,temp);
diff --git a/src/common/languagelistmodel.cpp b/src/common/languagelistmodel.cpp
index 71da2dc..2e22204 100644
--- a/src/common/languagelistmodel.cpp
+++ b/src/common/languagelistmodel.cpp
@@ -85,13 +85,7 @@ QVariant LanguageListModel::data(const QModelIndex& index, int \
role) const if (!iconCache.contains(langCode))
{
// NOTE workaround for QTBUG-9370 - it will be removed later
- QString code;
- if(langCode == "mn")
- code = "mn_MN";
- else if(langCode == "ne")
- code = "ne_NP";
- else
- code=QLocale(langCode).name();
+ QString code=QLocale(langCode).name();
QString path;
if (code.contains('_')) code=QString::fromRawData(code.unicode()+3, \
2).toLower(); if (code!="C")
@@ -108,7 +102,13 @@ QVariant LanguageListModel::data(const QModelIndex& index, int \
role) const const QString& code=stringList().at(index.row());
if (code.isEmpty()) return code;
//kDebug()<<"languageCodeToName"<<code;
- return QVariant::fromValue<QString>(KGlobal::locale()->languageCodeToName(code)%" \
("%code%")"); + static QVector<QString> displayNames(stringList().size());
+ if (displayNames.at(index.row()).length())
+ return displayNames.at(index.row());
+// QLocale l(code);
+// if (l.language()==QLocale::C && code!="C")
+ return QVariant::fromValue<QString>(displayNames[index.row()]=KGlobal::locale()->languageCodeToName(code)%" \
("%code%")"); +// return \
QVariant::fromValue<QString>(displayNames[index.row()]=QLocale::languageToString(l.language())%" \
("%code%")"); }
return QStringListModel::data(index, role);
}
diff --git a/src/lokalizemainwindow.cpp b/src/lokalizemainwindow.cpp
index 9e6a8c5..3f64d00 100644
--- a/src/lokalizemainwindow.cpp
+++ b/src/lokalizemainwindow.cpp
@@ -105,7 +105,6 @@ LokalizeMainWindow::LokalizeMainWindow()
connect(Project::instance(), SIGNAL(configChanged()), this, \
SLOT(projectSettingsChanged())); showProjectOverview();
- showTranslationMemory(); //temp HACK to workaround non-responding project tab
for (int i=ID_STATUS_CURRENT;i<=ID_STATUS_ISFUZZY;i++)
{
diff --git a/src/tm/tmtab.cpp b/src/tm/tmtab.cpp
index 38732d1..1bfc950 100644
--- a/src/tm/tmtab.cpp
+++ b/src/tm/tmtab.cpp
@@ -568,7 +568,7 @@ void TMTab::handleResults()
}
if(!filemask.isEmpty() && !filemask.contains('*'))
{
- ui_queryOptions->filemask->setText('*'+filemask+'*');
+ ui_queryOptions->filemask->setText('*'%filemask%'*');
return performQuery();
}
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic