summaryrefslogtreecommitdiff
path: root/bibletime/frontend/displaywindow/cbiblereadwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'bibletime/frontend/displaywindow/cbiblereadwindow.cpp')
-rw-r--r--bibletime/frontend/displaywindow/cbiblereadwindow.cpp458
1 files changed, 0 insertions, 458 deletions
diff --git a/bibletime/frontend/displaywindow/cbiblereadwindow.cpp b/bibletime/frontend/displaywindow/cbiblereadwindow.cpp
deleted file mode 100644
index 0e80a35..0000000
--- a/bibletime/frontend/displaywindow/cbiblereadwindow.cpp
+++ /dev/null
@@ -1,458 +0,0 @@
-/*********
-*
-* This file is part of BibleTime's source code, http://www.bibletime.info/.
-*
-* Copyright 1999-2006 by the BibleTime developers.
-* The BibleTime source code is licensed under the GNU General Public License version 2.0.
-*
-**********/
-
-
-
-#include "cbiblereadwindow.h"
-#include "ccommentaryreadwindow.h"
-#include "cbuttons.h"
-
-#include "backend/cswordversekey.h"
-#include "backend/cswordbiblemoduleinfo.h"
-
-#include "frontend/cprofilewindow.h"
-#include "frontend/cexportmanager.h"
-#include "frontend/cbtconfig.h"
-#include "frontend/cmdiarea.h"
-#include "util/cresmgr.h"
-
-#include "frontend/display/creaddisplay.h"
-#include "frontend/keychooser/ckeychooser.h"
-
-#include "util/ctoolclass.h"
-
-#include <math.h>
-
-//Qt includes
-#include <qwidgetlist.h>
-#include <qtimer.h>
-
-//KDE includes
-#include <kaccel.h>
-#include <klocale.h>
-#include <kpopupmenu.h>
-
-using namespace Profile;
-
-CBibleReadWindow::CBibleReadWindow(ListCSwordModuleInfo moduleList, CMDIArea* parent, const char *name ) : CLexiconReadWindow(moduleList, parent,name) {
-}
-
-CBibleReadWindow::~CBibleReadWindow() {}
-
-void CBibleReadWindow::applyProfileSettings( CProfileWindow* const settings ) {
- CLexiconReadWindow::applyProfileSettings(settings);
-
- const int count = displaySettingsButton()->menuItemCount();
- int result = settings->windowSettings();
- for (int i = count-1; i>=1; i--) {
- if (result-(int)pow((double)2,i-1)>= 0) { //2^i was added before, so item with index i is set
- result -= (int)pow((double)2,i-1);
- displaySettingsButton()->setItemStatus(i,true);
- }
- else {
- displaySettingsButton()->setItemStatus(i,false);
- }
- }
- displaySettingsButton()->setChanged();
-};
-
-void CBibleReadWindow::storeProfileSettings( CProfileWindow* const settings ) {
- CLexiconReadWindow::storeProfileSettings(settings);
-
- const int count = displaySettingsButton()->menuItemCount();
- int result = 0;
- //now check every item
- for (int i = 1; i < count; i++) { //first item is a title
- if (displaySettingsButton()->itemStatus(i)) //item is checked
- result += (int)pow((double)2,i-1);//add 2^i (the i. digit in binary)
- }
- settings->setWindowSettings(result);
-};
-
-
-/** Reimplementation. */
-void CBibleReadWindow::insertKeyboardActions( KActionCollection* const a ) {
- new KAction(
- i18n("Next book"), CResMgr::displaywindows::bibleWindow::nextBook::accel,
- a, "nextBook"
- );
- new KAction(
- i18n("Previous book"), CResMgr::displaywindows::bibleWindow::previousBook::accel,
- a, "previousBook"
- );
- new KAction(
- i18n("Next chapter"), CResMgr::displaywindows::bibleWindow::nextChapter::accel,
- a, "nextChapter"
- );
- new KAction(
- i18n("Previous chapter"), CResMgr::displaywindows::bibleWindow::previousChapter::accel,
- a, "previousChapter"
- );
- new KAction(
- i18n("Next verse"), CResMgr::displaywindows::bibleWindow::nextVerse::accel,
- a, "nextVerse"
- );
- new KAction(
- i18n("Previous verse"), CResMgr::displaywindows::bibleWindow::previousVerse::accel,
- a, "previousVerse"
- );
-
- //popup menu items
- // new KAction(i18n("Select all"), KStdAccel::selectAll(), a, "selectAll");
-
- //copy menu items
- // new KAction(i18n("Copy reference only"), KShortcut(0), a, "copyReferenceOnly");
- // new KAction(i18n("Text of reference"), KShortcut(0), a, "copyTextOfReference");
- // new KAction(i18n("Reference with text"), KShortcut(0), a, "copyReferenceWithText");
- new KAction(i18n("Copy chapter"), KShortcut(0), a, "copyChapter");
- // new KAction(i18n("Copy selected text"), KStdAccel::copy(), a, "copySelectedText");
-
- //save menu
- // new KAction(i18n("Reference with text"), KShortcut(0), a, "saveReferenceWithText");
- new KAction(i18n("Save chapter as plain text"), KShortcut(0), a, "saveChapterAsPlainText");
- new KAction(i18n("Save chapter as HTML"), KShortcut(0), a, "saveChapterAsHTML");
- // new KAction(i18n("Reference with text"), KShortcut(0), a, "saveReferenceWithText");
-
- //print
- new KAction(i18n("Print chapter"), KStdAccel::print(), a, "printChapter");
-}
-
-void CBibleReadWindow::initActions() {
- CLexiconReadWindow::initActions(); //make sure the predefined actions are available
-
- //cleanup, not a clean oo-solution
- actionCollection()->action("nextEntry")->setEnabled(false);
- actionCollection()->action("previousEntry")->setEnabled(false);
-
- new KAction(
- i18n("Next book"),
- CResMgr::displaywindows::bibleWindow::nextBook::accel,
- this, SLOT(nextBook()),
- actionCollection(), "nextBook"
- );
- new KAction(
- i18n("Previous book"),
- CResMgr::displaywindows::bibleWindow::previousBook::accel,
- this, SLOT(previousBook()),
- actionCollection(), "previousBook"
- );
- new KAction(
- i18n("Next chapter"),
- CResMgr::displaywindows::bibleWindow::nextChapter::accel,
- this, SLOT(nextChapter()),
- actionCollection(), "nextChapter"
- );
- new KAction(
- i18n("Previous chapter"),
- CResMgr::displaywindows::bibleWindow::previousChapter::accel,
- this, SLOT(previousChapter()),
- actionCollection(), "previousChapter"
- );
- new KAction(
- i18n("Next verse"),
- CResMgr::displaywindows::bibleWindow::nextVerse::accel,
- this, SLOT(nextVerse()),
- actionCollection(), "nextVerse"
- );
- new KAction(
- i18n("Previous verse"),
- CResMgr::displaywindows::bibleWindow::previousVerse::accel,
- this, SLOT(previousVerse()),
- actionCollection(), "previousVerse"
- );
-
- m_actions.selectAll = actionCollection()->action("selectAll");
- Q_ASSERT(m_actions.selectAll);
-
- m_actions.findText = actionCollection()->action("findText");
- Q_ASSERT(m_actions.findText);
-
- m_actions.findStrongs = new KAction(
- i18n("Strong's Search"),
- CResMgr::displaywindows::general::findStrongs::icon,
- CResMgr::displaywindows::general::findStrongs::accel,
- this, SLOT(openSearchStrongsDialog()),
- actionCollection(),
- CResMgr::displaywindows::general::findStrongs::actionName);
-
-
- m_actions.copy.referenceOnly = new KAction(i18n("Reference only"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAnchorOnly()), actionCollection(), "copyReferenceOnly");
-
- m_actions.copy.referenceTextOnly = new KAction(i18n("Text of reference"), KShortcut(0),displayWidget()->connectionsProxy(), SLOT(copyAnchorTextOnly()), actionCollection(), "copyTextOfReference");
-
- m_actions.copy.referenceAndText = new KAction(i18n("Reference with text"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(copyAnchorWithText()), actionCollection(), "copyReferenceWithText");
-
- m_actions.copy.chapter = new KAction(i18n("Chapter"), KShortcut(0), this, SLOT(copyDisplayedText()), actionCollection(), "copyChapter");
-
- m_actions.copy.selectedText = actionCollection()->action("copySelectedText");
- Q_ASSERT(m_actions.copy.selectedText);
-
- m_actions.save.referenceAndText = new KAction(i18n("Reference with text"), KShortcut(0), displayWidget()->connectionsProxy(), SLOT(saveAnchorWithText()), actionCollection(), "saveReferenceWithText");
-
- m_actions.save.chapterAsPlain = new KAction(i18n("Chapter as plain text"), KShortcut(0), this, SLOT(saveChapterPlain()), actionCollection(), "saveChapterAsPlainText");
-
- m_actions.save.chapterAsHTML = new KAction(i18n("Chapter as HTML"), KShortcut(0), this, SLOT(saveChapterHTML()), actionCollection(), "saveChapterAsHTML");
-
- m_actions.print.reference = new KAction(i18n("Reference with text"), KShortcut(0), this, SLOT(printAnchorWithText()), actionCollection(), "saveReferenceWithText");
-
- m_actions.print.chapter = new KAction(i18n("Chapter"), KShortcut(0), this, SLOT(printAll()), actionCollection(), "printChapter");
-
- CBTConfig::setupAccelSettings(CBTConfig::bibleWindow, actionCollection());
-}
-
-void CBibleReadWindow::initConnections() {
- CLexiconReadWindow::initConnections();
-
- /* if (m_transliterationButton) { // Transliteration is not always available
- connect(m_transliterationButton, SIGNAL(sigChanged()), SLOT(lookup()));
- }*/
-}
-
-void CBibleReadWindow::initToolbars() {
- CLexiconReadWindow::initToolbars();
-}
-
-void CBibleReadWindow::initView() {
- CLexiconReadWindow::initView();
-
- parentWidget()->installEventFilter( this );
-}
-
-/** Reimplementation. */
-void CBibleReadWindow::setupPopupMenu() {
- popup()->insertTitle(CToolClass::getIconForModule(modules().first()), i18n("Bible window"));
-
- m_actions.findText->plug(popup());
- m_actions.findStrongs->plug(popup());
- m_actions.selectAll->plug(popup());
-
- (new KActionSeparator(this))->plug( popup() );
-
- m_actions.copyMenu = new KActionMenu(i18n("Copy..."), CResMgr::displaywindows::bibleWindow::copyMenu::icon, popup());
- m_actions.copyMenu->setDelayed( false );
- m_actions.copyMenu->insert(m_actions.copy.referenceOnly);
- m_actions.copyMenu->insert(m_actions.copy.referenceTextOnly);
- m_actions.copyMenu->insert(m_actions.copy.referenceAndText);
- m_actions.copyMenu->insert(m_actions.copy.chapter);
- m_actions.copyMenu->insert(new KActionSeparator(this));
- m_actions.copyMenu->insert(m_actions.copy.selectedText);
- m_actions.copyMenu->plug(popup());
-
- m_actions.saveMenu = new KActionMenu(i18n("Save..."),CResMgr::displaywindows::bibleWindow::saveMenu::icon, popup());
- m_actions.saveMenu->setDelayed( false );
- m_actions.saveMenu->insert(m_actions.save.referenceAndText);
- m_actions.saveMenu->insert(m_actions.save.chapterAsPlain);
- m_actions.saveMenu->insert(m_actions.save.chapterAsHTML);
- m_actions.saveMenu->plug(popup());
-
- m_actions.printMenu = new KActionMenu(i18n("Print..."),CResMgr::displaywindows::bibleWindow::printMenu::icon, popup());
- m_actions.printMenu->setDelayed(false);
- m_actions.printMenu->insert(m_actions.print.reference);
- m_actions.printMenu->insert(m_actions.print.chapter);
- m_actions.printMenu->plug(popup());
-}
-
-/** Reimplemented. */
-void CBibleReadWindow::updatePopupMenu() {
- qWarning("CBibleReadWindow::updatePopupMenu()");
-
- //enable the action depending on the supported module features
-// bool hasStrongs = false;
-// ListCSwordModuleInfo mods = modules();
-// for (ListCSwordModuleInfo::iterator it = mods.begin(); it != mods.end(); ++it) {
-// if ( (*it)->has( CSwordModuleInfo::strongNumbers ) ) {
-// hasStrongs = true;
-// break;
-// }
-// }
-//
-// m_actions.findStrongs->setEnabled( hasStrongs );
- m_actions.findStrongs->setEnabled( displayWidget()->getCurrentNodeInfo()[CDisplay::Lemma] != QString::null );
-
-
- m_actions.copy.referenceOnly->setEnabled( displayWidget()->hasActiveAnchor() );
- m_actions.copy.referenceTextOnly->setEnabled( displayWidget()->hasActiveAnchor() );
- m_actions.copy.referenceAndText->setEnabled( displayWidget()->hasActiveAnchor() );
- m_actions.copy.selectedText->setEnabled( displayWidget()->hasSelection() );
-
- m_actions.save.referenceAndText->setEnabled( displayWidget()->hasActiveAnchor() );
-
- m_actions.print.reference->setEnabled( displayWidget()->hasActiveAnchor() );
-}
-
-/** Moves to the next book. */
-void CBibleReadWindow::nextBook() {
- if (verseKey()->next(CSwordVerseKey::UseBook)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** Moves one book behind. */
-void CBibleReadWindow::previousBook() {
- if (verseKey()->previous(CSwordVerseKey::UseBook)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** Moves to the next book. */
-void CBibleReadWindow::nextChapter() {
- if (verseKey()->next(CSwordVerseKey::UseChapter)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** Moves one book behind. */
-void CBibleReadWindow::previousChapter() {
- if (verseKey()->previous(CSwordVerseKey::UseChapter)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** Moves to the next book. */
-void CBibleReadWindow::nextVerse() {
- if (verseKey()->next(CSwordVerseKey::UseVerse)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** Moves one book behind. */
-void CBibleReadWindow::previousVerse() {
- if (verseKey()->previous(CSwordVerseKey::UseVerse)) {
- keyChooser()->setKey(key());
- }
-}
-
-/** rapper around key() to return the right type of key. */
-CSwordVerseKey* CBibleReadWindow::verseKey() {
- CSwordVerseKey* k = dynamic_cast<CSwordVerseKey*>(CDisplayWindow::key());
- Q_ASSERT(k);
-
- return k;
-}
-
-/** Copies the current chapter into the clipboard. */
-void CBibleReadWindow::copyDisplayedText() {
- CSwordVerseKey dummy(*verseKey());
- dummy.Verse(1);
-
- CSwordVerseKey vk(*verseKey());
- vk.LowerBound(dummy);
-
- CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(modules().first());
- dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter()));
- vk.UpperBound(dummy);
-
- CExportManager mgr(i18n("Copy chapter to clipboard ..."), false, i18n("Copying"), filterOptions(), displayOptions());
- mgr.copyKey(&vk, CExportManager::Text, true);
-}
-
-/** Saves the chapter as valid HTML page. */
-void CBibleReadWindow::saveChapterHTML() {
- //saves the complete chapter to disk
- CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(modules().first());
- Q_ASSERT(bible);
- if (!bible) //shouldn't happen
- return;
-
- CSwordVerseKey dummy(*verseKey());
- dummy.Verse(1);
-
- CSwordVerseKey vk(*verseKey());
- vk.LowerBound(dummy);
-
- dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter()));
- vk.UpperBound(dummy);
-
- CExportManager mgr(i18n("Saving chapter ..."), true, i18n("Saving"), filterOptions(), displayOptions());
- mgr.saveKey(&vk, CExportManager::HTML, true);
-}
-
-/** Saves the chapter as valid HTML page. */
-void CBibleReadWindow::saveChapterPlain() {
- //saves the complete chapter to disk
-
- CSwordVerseKey vk(*verseKey());
- CSwordVerseKey dummy(*verseKey());
-
- dummy.Verse(1);
- vk.LowerBound(dummy);
-
- CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(modules().first());
- dummy.Verse(bible->verseCount(dummy.book(), dummy.Chapter()));
- vk.UpperBound(dummy);
-
- CExportManager mgr(i18n("Saving chapter ..."), true, i18n("Saving"), filterOptions(),displayOptions());
- mgr.saveKey(&vk, CExportManager::Text, true);
-}
-
-void CBibleReadWindow::reload() {
- CLexiconReadWindow::reload();
-
- if (m_modules.count() == 0) {
- close();
- return;
- }
-
- //refresh the book lists
-// qDebug("lang is %s",backend()->booknameLanguage().latin1());
- verseKey()->setLocale( backend()->booknameLanguage().latin1() );
- keyChooser()->refreshContent();
-
- CBTConfig::setupAccelSettings(CBTConfig::readWindow, actionCollection()); //setup the predefined actions
- CBTConfig::setupAccelSettings(CBTConfig::bibleWindow, actionCollection());
-}
-
-/** No descriptions */
-bool CBibleReadWindow::eventFilter( QObject* o, QEvent* e) {
- const bool ret = CLexiconReadWindow::eventFilter(o,e);
-
- // Q_ASSERT(o->inherits("CDisplayWindow"));
- // qWarning("class: %s", o->className());
- if (e && (e->type() == QEvent::FocusIn)) { //sync other windows to this active
-
- /* This is a hack to work around a KHTML problem (similair to the Drag&Drop problem we had):
- * If new HTML content is loaded from inside a kHTML event handler
- * the widget's state will be confused, i.e. it's scrolling without having
- * the mousebutton clicked.
- *
- * This is not really in a KHTML event handler but works anyway.
- * Sometime KDE/Qt is hard to use ...
- */
- QTimer::singleShot(0, this, SLOT(syncWindows()));
- }
-
- return ret;
-}
-
-void CBibleReadWindow::lookup( CSwordKey* newKey ) {
- CLexiconReadWindow::lookup(newKey);
-
- syncWindows();
-}
-
-void CBibleReadWindow::syncWindows() {
- // qWarning("syncing windows");
- QWidgetList windows = mdi()->windowList();
- // Q_ASSERT(windows.count());
- if (!windows.count()) {
- return;
- }
-
- for (windows.first(); windows.current(); windows.next()) {
- CDisplayWindow* w = dynamic_cast<CDisplayWindow*>(windows.current());
- // Q_ASSERT(w && w->syncAllowed());
-
- if (w && w->syncAllowed()) {
- w->lookup( key()->key() );
- }
- /* else {
- qWarning("class sync: %s", w->className());
- }*/
- }
-}