//static KexiTemplateInfoList KexiTemplateLoader::loadListInfo() { KexiTemplateInfoList list; //! @todo KEXI3 KAboutData::applicationData().componentName() OK? const QString subdir = KAboutData::applicationData().componentName() + "/templates"; const QLocale locale; QString lang(QLocale::languageToString(locale.language())); QStringList dirs(QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, subdir)); while (true) { foreach(const QString &dirname, dirs) { QDir dir(dirname + lang); if (!dir.exists()) continue; if (!dir.isReadable()) { qWarning() << "\"" << dir.absolutePath() << "\" not readable!"; continue; } const QStringList templateDirs(dir.entryList(QDir::Dirs, QDir::Name)); const QString absDirPath(dir.absolutePath() + '/'); foreach(const QString &templateDir, templateDirs) { if (templateDir == "." || templateDir == "..") continue; KexiTemplateInfo info = KexiTemplateLoader::loadInfo(absDirPath + templateDir); if (!info.name.isEmpty()) list.append(info); } } if (lang != "en" && list.isEmpty()) //not found for current locale, try "en" lang = "en"; else break; }
//static KexiTemplateInfoList KexiTemplateLoader::loadListInfo() { KexiTemplateInfoList list; // const QString subdir = QString(kapp->instanceName()) + "/templates"; #ifdef __GNUC #ifdef __GNUC__ #warning KexiTemplateLoader::loadListInfo() -- OK? KGlobal::mainComponent().componentName() #else #pragma WARNING( KexiTemplateLoader::loadListInfo() -- OK? KGlobal::mainComponent().componentName() ) #endif #endif const QString subdir = KGlobal::mainComponent().componentName() + "/templates"; QString lang(KGlobal::locale()->language()); QStringList dirs(KGlobal::dirs()->findDirs("data", subdir)); while (true) { foreach(const QString &dirname, dirs) { QDir dir(dirname + lang); if (!dir.exists()) continue; if (!dir.isReadable()) { kWarning() << "\"" << dir.absolutePath() << "\" not readable!"; continue; } const QStringList templateDirs(dir.entryList(QDir::Dirs, QDir::Name)); const QString absDirPath(dir.absolutePath() + '/'); foreach(const QString &templateDir, templateDirs) { if (templateDir == "." || templateDir == "..") continue; KexiTemplateInfo info = KexiTemplateLoader::loadInfo(absDirPath + templateDir); if (!info.name.isEmpty()) list.append(info); } } if (lang != "en" && list.isEmpty()) //not found for current locale, try "en" lang = "en"; else break; }