diff options
Diffstat (limited to 'src/frontend/cprinter.cpp')
-rw-r--r-- | src/frontend/cprinter.cpp | 185 |
1 files changed, 85 insertions, 100 deletions
diff --git a/src/frontend/cprinter.cpp b/src/frontend/cprinter.cpp index 92699af..0a05a55 100644 --- a/src/frontend/cprinter.cpp +++ b/src/frontend/cprinter.cpp @@ -18,119 +18,104 @@ #include <QPrinter> #include <QPrintDialog> -namespace Printing -{ +namespace Printing { CPrinter::CPrinter(QObject*, CSwordBackend::DisplayOptions displayOptions, CSwordBackend::FilterOptions filterOptions) - : QObject(0), - CDisplayRendering(displayOptions, filterOptions), - m_htmlPage(new QWebPage()) -{ - m_htmlPage->setParent(this); - - //override the filteroptions set in the c-tor of CDisplayRendering - m_filterOptions.footnotes = false; - m_filterOptions.scriptureReferences = false; - m_filterOptions.strongNumbers = false; - m_filterOptions.morphTags = false; - m_filterOptions.headings = false; + : QObject(0), + CDisplayRendering(displayOptions, filterOptions), + m_htmlPage(new QWebPage()) { + m_htmlPage->setParent(this); + + //override the filteroptions set in the c-tor of CDisplayRendering + m_filterOptions.footnotes = false; + m_filterOptions.scriptureReferences = false; + m_filterOptions.strongNumbers = false; + m_filterOptions.morphTags = false; + m_filterOptions.headings = false; } -CPrinter::~CPrinter() -{ - delete m_htmlPage; - m_htmlPage = 0; +CPrinter::~CPrinter() { + delete m_htmlPage; + m_htmlPage = 0; } -void CPrinter::printKeyTree( KeyTree& tree ) -{ - m_htmlPage->mainFrame()->setHtml(renderKeyTree(tree)); +void CPrinter::printKeyTree( KeyTree& tree ) { + m_htmlPage->mainFrame()->setHtml(renderKeyTree(tree)); - QPrinter printer; - QPrintDialog printDialog(&printer); - if (printDialog.exec() == QDialog::Accepted) - { - m_htmlPage->mainFrame()->print(&printer); - } + QPrinter printer; + QPrintDialog printDialog(&printer); + if (printDialog.exec() == QDialog::Accepted) { + m_htmlPage->mainFrame()->print(&printer); + } } -const QString CPrinter::entryLink(const KeyTreeItem& item, CSwordModuleInfo* module) -{ - Q_ASSERT(module); - if (module->type() == CSwordModuleInfo::Bible) - { - CSwordVerseKey vk(module); - vk.key(item.key()); - switch (item.settings().keyRenderingFace) - { - case KeyTreeItem::Settings::CompleteShort: - return QString::fromUtf8(vk.getShortText()); - - case KeyTreeItem::Settings::CompleteLong: - return vk.key(); - - case KeyTreeItem::Settings::NoKey: - return QString::null; - - case KeyTreeItem::Settings::SimpleKey: //fall through - default: - return QString::number(vk.Verse()); - } - } - return item.key(); +const QString CPrinter::entryLink(const KeyTreeItem& item, CSwordModuleInfo* module) { + Q_ASSERT(module); + if (module->type() == CSwordModuleInfo::Bible) { + CSwordVerseKey vk(module); + vk.key(item.key()); + switch (item.settings().keyRenderingFace) { + case KeyTreeItem::Settings::CompleteShort: + return QString::fromUtf8(vk.getShortText()); + + case KeyTreeItem::Settings::CompleteLong: + return vk.key(); + + case KeyTreeItem::Settings::NoKey: + return QString::null; + + case KeyTreeItem::Settings::SimpleKey: //fall through + default: + return QString::number(vk.Verse()); + } + } + return item.key(); } -const QString CPrinter::renderEntry( const KeyTreeItem& i, CSwordKey* ) -{ - const CPrinter::KeyTreeItem* printItem = dynamic_cast<const CPrinter::KeyTreeItem*>(&i); - Q_ASSERT(printItem); - - if (printItem && printItem->hasAlternativeContent()) - { - QString ret = QString::fromLatin1("<div class=\"entry\"><div class=\"rangeheading\">%1</div>").arg(printItem->getAlternativeContent()); - - if (!i.childList()->isEmpty()) - { - KeyTree const * tree = i.childList(); - - foreach ( KeyTreeItem* c, (*tree)) - { - ret.append( CDisplayRendering::renderEntry( *c ) ); - } - } - - ret.append("</div>"); - return ret; - } - return CDisplayRendering::renderEntry(i); +const QString CPrinter::renderEntry( const KeyTreeItem& i, CSwordKey* ) { + const CPrinter::KeyTreeItem* printItem = dynamic_cast<const CPrinter::KeyTreeItem*>(&i); + Q_ASSERT(printItem); + + if (printItem && printItem->hasAlternativeContent()) { + QString ret = QString::fromLatin1("<div class=\"entry\"><div class=\"rangeheading\">%1</div>").arg(printItem->getAlternativeContent()); + + if (!i.childList()->isEmpty()) { + KeyTree const * tree = i.childList(); + + foreach ( KeyTreeItem* c, (*tree)) { + ret.append( CDisplayRendering::renderEntry( *c ) ); + } + } + + ret.append("</div>"); + return ret; + } + return CDisplayRendering::renderEntry(i); } -const QString CPrinter::finishText(const QString& text, KeyTree& tree) -{ - QList<CSwordModuleInfo*> modules = collectModules(&tree); - Q_ASSERT(modules.count() > 0); - - const CLanguageMgr::Language* const lang = modules.first()->language(); - Q_ASSERT(lang); - - CDisplayTemplateMgr::Settings settings; - //settings.modules = modules; - settings.pageCSS_ID = "printer"; - settings.langAbbrev = ( lang && (modules.count() == 1) && lang->isValid() ) ? lang->abbrev() : "unknown"; - - //the previous version gave compiler error for some strange reason - //(well, I don't like ?: anyway, let alone nested) - if (modules.count() != 1) - { - settings.pageDirection = QString::null; - } - else - { - settings.pageDirection = ( modules.first()->textDirection() == CSwordModuleInfo::LeftToRight ) ? "ltr" : "rtl"; - } - - CDisplayTemplateMgr* tMgr = CPointers::displayTemplateManager(); - return tMgr->fillTemplate(CBTConfig::get(CBTConfig::displayStyle), text, settings); +const QString CPrinter::finishText(const QString& text, KeyTree& tree) { + QList<CSwordModuleInfo*> modules = collectModules(&tree); + Q_ASSERT(modules.count() > 0); + + const CLanguageMgr::Language* const lang = modules.first()->language(); + Q_ASSERT(lang); + + CDisplayTemplateMgr::Settings settings; + //settings.modules = modules; + settings.pageCSS_ID = "printer"; + settings.langAbbrev = ( lang && (modules.count() == 1) && lang->isValid() ) ? lang->abbrev() : "unknown"; + + //the previous version gave compiler error for some strange reason + //(well, I don't like ?: anyway, let alone nested) + if (modules.count() != 1) { + settings.pageDirection = QString::null; + } + else { + settings.pageDirection = ( modules.first()->textDirection() == CSwordModuleInfo::LeftToRight ) ? "ltr" : "rtl"; + } + + CDisplayTemplateMgr* tMgr = CPointers::displayTemplateManager(); + return tMgr->fillTemplate(CBTConfig::get(CBTConfig::displayStyle), text, settings); } } //end of namespace |