0
0
mirror of https://github.com/fralx/LimeReport.git synced 2025-11-25 00:18:06 +03:00

Some translation functionality has been added

This commit is contained in:
Arin Alexander
2017-07-29 00:54:43 +03:00
parent 2338c9d8b7
commit 881089fd2f
16 changed files with 362 additions and 20 deletions

View File

@@ -90,6 +90,11 @@ ReportEnginePrivate::~ReportEnginePrivate()
}
foreach(PageDesignIntf* page,m_pages) delete page;
m_pages.clear();
foreach(ReportTranslation* translation, m_translations)
delete translation;
m_translations.clear();
if (m_ownedSettings&&m_settings) delete m_settings;
}
@@ -178,10 +183,14 @@ void ReportEnginePrivate::clearReport()
{
foreach(PageDesignIntf* page,m_pages) delete page;
m_pages.clear();
foreach(ReportTranslation* reportTranslation, m_translations)
delete reportTranslation;
m_translations.clear();
m_datasources->clear(DataSourceManager::Owned);
m_fileName="";
m_scriptEngineContext->clear();
m_reportSettings.setDefaultValues();
emit cleared();
}
@@ -379,7 +388,7 @@ bool ReportEnginePrivate::printToPDF(const QString &fileName)
void ReportEnginePrivate::previewReport(PreviewHints hints)
{
QTime start = QTime::currentTime();
// QTime start = QTime::currentTime();
try{
dataManager()->setDesignTime(false);
ReportPages pages = renderToPages();
@@ -733,11 +742,62 @@ QString ReportEnginePrivate::renderToString()
}else return QString();
}
PageDesignIntf* ReportEnginePrivate::getPageByName(const QString& pageName)
{
foreach(PageDesignIntf* page, m_pages){
if ( page->objectName().compare(pageName, Qt::CaseInsensitive) == 0)
return page;
}
return 0;
}
void ReportEnginePrivate::setPassPhrase(const QString &passPhrase)
{
m_passPhrase = passPhrase;
}
bool ReportEnginePrivate::addTranslationLanguage(QLocale::Language language)
{
if (!m_translations.keys().contains(language)){
ReportTranslation* translation = new ReportTranslation(language,m_pages);
m_translations.insert(language, translation);
return true;
} else {
m_lastError = tr("Language %1 already exists").arg(QLocale::languageToString(language));
return false;
}
}
bool ReportEnginePrivate::setReportLanguage(QLocale::Language language){
if (!m_translations.keys().contains(language)) return false;
ReportTranslation* translation = m_translations.value(language);
foreach(PageTranslation* pageTranslation, translation->pagesTranslation()){
PageDesignIntf* page = getPageByName(pageTranslation->pageName);
if (page){
foreach(ItemTranslation itemTranslation, pageTranslation->itemsTranslation){
BaseDesignIntf* item = page->pageItem()->childByName(itemTranslation.itemName);
if (item) {
foreach(PropertyTranslation propertyTranslation, itemTranslation.propertyesTranslation){
item->setProperty(propertyTranslation.propertyName.toLatin1(),propertyTranslation.value);
}
}
}
}
}
return true;
}
QList<QLocale::Language> ReportEnginePrivate::aviableLanguages()
{
return m_translations.keys();
}
ReportTranslation*ReportEnginePrivate::reportTranslation(QLocale::Language language)
{
return m_translations.value(language);
}
bool ReportEnginePrivate::resultIsEditable() const
{
return m_resultIsEditable;
@@ -934,6 +994,24 @@ void ReportEngine::setPassPharse(QString &passPharse)
d->setPassPhrase(passPharse);
}
QList<QLocale::Language> ReportEngine::aviableLanguages()
{
Q_D(ReportEngine);
return d->aviableLanguages();
}
bool ReportEngine::addTranslationLanguage(QLocale::Language language)
{
Q_D(ReportEngine);
return d->addTranslationLanguage(language);
}
bool ReportEngine::setReportLanguage(QLocale::Language language)
{
Q_D(ReportEngine);
return d->setReportLanguage(language);
}
void ReportEngine::setShowProgressDialog(bool value)
{
Q_D(ReportEngine);
@@ -1046,6 +1124,5 @@ ReportEngine::ReportEngine(ReportEnginePrivate &dd, QObject *parent)
connect(d, SIGNAL(renderFinished()), this, SIGNAL(renderFinished()));
}
}// namespace LimeReport
}