diff options
author | Roberto C. Sanchez <roberto@connexer.com> | 2014-10-21 22:48:35 -0400 |
---|---|---|
committer | Roberto C. Sanchez <roberto@connexer.com> | 2014-10-21 22:48:35 -0400 |
commit | df8f1d512c60a96f9041f9663b3fdc2db51cba33 (patch) | |
tree | 3d2bdbd4732d417aca73be022ae9044eac96b7d3 /src/frontend/keychooser/versekeychooser | |
parent | 4885bfcef4d89cf0cb391e00af617b9fd19c9cbb (diff) |
Imported Upstream version 2.8.1
Diffstat (limited to 'src/frontend/keychooser/versekeychooser')
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btbiblekeywidget.cpp (renamed from src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp) | 84 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btbiblekeywidget.h (renamed from src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h) | 28 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp | 14 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h | 16 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btversekeymenu.cpp | 2 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/btversekeymenu.h | 2 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp | 51 | ||||
-rw-r--r-- | src/frontend/keychooser/versekeychooser/cbiblekeychooser.h | 33 |
8 files changed, 126 insertions, 104 deletions
diff --git a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp b/src/frontend/keychooser/versekeychooser/btbiblekeywidget.cpp index e5cf4ff..b74752e 100644 --- a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp +++ b/src/frontend/keychooser/versekeychooser/btbiblekeywidget.cpp @@ -2,12 +2,12 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ -#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" +#include "frontend/keychooser/versekeychooser/btbiblekeywidget.h" #include <QApplication> #include <QDebug> @@ -24,6 +24,7 @@ #include "backend/keys/cswordversekey.h" #include "frontend/keychooser/cscrollerwidgetset.h" #include "frontend/keychooser/versekeychooser/btdropdownchooserbutton.h" +#include "util/btsignal.h" #include "util/cresmgr.h" #include "util/directory.h" @@ -45,12 +46,16 @@ class BtLineEdit : public QLineEdit { }; -CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVerseKey *key, QWidget *parent, const char* /*name*/) : - QWidget(parent), - m_key(key), - m_dropDownHoverTimer(this) { +BtBibleKeyWidget::BtBibleKeyWidget(const CSwordBibleModuleInfo *mod, + CSwordVerseKey *key, QWidget *parent, + const char *name) + : QWidget(parent), m_key(key), m_dropDownHoverTimer(this) +{ + Q_UNUSED(name); + namespace DU = util::directory; + updatelock = false; m_module = mod; @@ -68,9 +73,6 @@ CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVers setFocusProxy(m_textbox); m_textbox->setContentsMargins(0, 0, 0, 0); - setKey(key); // The order of these two functions is important. - setModule(); - m_chapterScroller = new CScrollerWidgetSet(this); m_verseScroller = new CScrollerWidgetSet(this); @@ -137,20 +139,25 @@ CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVers connect(m_verseScroller, SIGNAL(change(int)), SLOT(slotStepVerse(int))); connect(m_verseScroller, SIGNAL(scroller_pressed()), SLOT(slotUpdateLock())); connect(m_verseScroller, SIGNAL(scroller_released()), SLOT(slotUpdateUnlock())); + bool ok = connect(m_key->signaler(), SIGNAL(changed()), this, SLOT(updateText())); + Q_ASSERT(ok); + + setKey(key); // The order of these two functions is important. + setModule(); } -CKeyReferenceWidget::~CKeyReferenceWidget() { +BtBibleKeyWidget::~BtBibleKeyWidget() { delete m_dropDownButtons; } -void CKeyReferenceWidget::setModule(CSwordBibleModuleInfo *m) { +void BtBibleKeyWidget::setModule(const CSwordBibleModuleInfo *m) { if (m) { //can be null m_module = m; - m_key->module(m); + m_key->setModule(m); } } -bool CKeyReferenceWidget::eventFilter(QObject *o, QEvent *e) { +bool BtBibleKeyWidget::eventFilter(QObject *o, QEvent *e) { if (o != m_dropDownButtons) return false; switch (e->type()) { case QEvent::Enter: @@ -164,7 +171,7 @@ bool CKeyReferenceWidget::eventFilter(QObject *o, QEvent *e) { } } -void CKeyReferenceWidget::enterEvent(QEvent *) { +void BtBibleKeyWidget::enterEvent(QEvent *) { m_dropDownHoverTimer.stop(); resetDropDownButtons(); @@ -173,31 +180,32 @@ void CKeyReferenceWidget::enterEvent(QEvent *) { m_dropDownButtons->show(); } -void CKeyReferenceWidget::leaveEvent(QEvent *) { +void BtBibleKeyWidget::leaveEvent(QEvent *) { m_dropDownHoverTimer.start(); } -void CKeyReferenceWidget::resizeEvent(QResizeEvent *event) { +void BtBibleKeyWidget::resizeEvent(QResizeEvent *event) { if (m_dropDownButtons->isVisible()) { resetDropDownButtons(); } QWidget::resizeEvent(event); } -void CKeyReferenceWidget::resetDropDownButtons() { +void BtBibleKeyWidget::resetDropDownButtons() { m_dropDownButtons->setParent(window()); int h(m_dropDownButtons->layout()->minimumSize().height()); - QPoint topLeft(mapTo(window(), QPoint(m_textbox->x(), height()))); + QPoint topLeft(mapTo(window(), + QPoint(m_textbox->x(), m_textbox->y() + m_textbox->height()))); m_dropDownButtons->setGeometry(topLeft.x(), topLeft.y(), m_textbox->width(), h); } -void CKeyReferenceWidget::slotClearRef( ) { +void BtBibleKeyWidget::slotClearRef( ) { m_textbox->setText(""); m_textbox->setFocus(); } -void CKeyReferenceWidget::updateText() { +void BtBibleKeyWidget::updateText() { QString text(m_key->key()); m_textbox->setText(text); QFontMetrics fm(m_textbox->font()); @@ -208,89 +216,77 @@ void CKeyReferenceWidget::updateText() { } } -bool CKeyReferenceWidget::setKey(CSwordVerseKey *key) { +bool BtBibleKeyWidget::setKey(CSwordVerseKey *key) { if (!key) return false; - m_key->key(key->key()); - updateText(); + m_key->setKey(key->key()); return true; } -QLineEdit* CKeyReferenceWidget::textbox() { - return m_textbox; -} - -void CKeyReferenceWidget::slotReturnPressed() { - m_key->key(m_textbox->text()); - updateText(); +void BtBibleKeyWidget::slotReturnPressed() { + m_key->setKey(m_textbox->text()); emit changed(m_key); } /* Handlers for the various scroller widgetsets. Do we really want a verse scroller? */ -void CKeyReferenceWidget::slotUpdateLock() { +void BtBibleKeyWidget::slotUpdateLock() { updatelock = true; oldKey = m_key->key(); } -void CKeyReferenceWidget::slotUpdateUnlock() { +void BtBibleKeyWidget::slotUpdateUnlock() { updatelock = false; if (oldKey != m_key->key()) emit changed(m_key); } -void CKeyReferenceWidget::slotStepBook(int n) { +void BtBibleKeyWidget::slotStepBook(int n) { emit beforeChange(m_key); n > 0 ? m_key->next( CSwordVerseKey::UseBook ) : m_key->previous( CSwordVerseKey::UseBook ); if (!updatelock) emit changed(m_key); - updateText(); } -void CKeyReferenceWidget::slotStepChapter(int n) { +void BtBibleKeyWidget::slotStepChapter(int n) { emit beforeChange(m_key); n > 0 ? m_key->next( CSwordVerseKey::UseChapter ) : m_key->previous( CSwordVerseKey::UseChapter ); if (!updatelock) emit changed(m_key); - updateText(); } -void CKeyReferenceWidget::slotStepVerse(int n) { +void BtBibleKeyWidget::slotStepVerse(int n) { emit beforeChange(m_key); n > 0 ? m_key->next( CSwordVerseKey::UseVerse ) : m_key->previous( CSwordVerseKey::UseVerse ); if (!updatelock) emit changed(m_key); - updateText(); } -void CKeyReferenceWidget::slotChangeVerse(int n) { +void BtBibleKeyWidget::slotChangeVerse(int n) { if (m_key->Verse() != n) { emit beforeChange(m_key); m_key->Verse( n ); setKey( m_key ); } - updateText(); if (!updatelock) emit changed(m_key); } -void CKeyReferenceWidget::slotChangeChapter(int n) { +void BtBibleKeyWidget::slotChangeChapter(int n) { if (m_key->Chapter() != n) { emit beforeChange(m_key); m_key->Chapter( n ); setKey( m_key ); } - updateText(); if (!updatelock) emit changed(m_key); } -void CKeyReferenceWidget::slotChangeBook(QString bookname) { +void BtBibleKeyWidget::slotChangeBook(QString bookname) { if (m_key->book() != bookname) { emit beforeChange(m_key); m_key->book( bookname ); setKey( m_key ); } - updateText(); if (!updatelock) emit changed(m_key); } diff --git a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h b/src/frontend/keychooser/versekeychooser/btbiblekeywidget.h index df2c9d2..29633fd 100644 --- a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h +++ b/src/frontend/keychooser/versekeychooser/btbiblekeywidget.h @@ -2,13 +2,13 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ -#ifndef CKEYREFERENCEWIDGET_H -#define CKEYREFERENCEWIDGET_H +#ifndef BTBIBLEKEYWIDGET_H +#define BTBIBLEKEYWIDGET_H #include <QWidget> @@ -22,17 +22,17 @@ class CLexiconKeyChooser; class CSwordVerseKey; class QLineEdit; -class CKeyReferenceWidget : public QWidget { +class BtBibleKeyWidget : public QWidget { Q_OBJECT + public: - /** - * the constructor - */ - CKeyReferenceWidget(CSwordBibleModuleInfo *, CSwordVerseKey*, QWidget *parent = 0, const char *name = 0); - ~CKeyReferenceWidget(); + BtBibleKeyWidget(const CSwordBibleModuleInfo *module, + CSwordVerseKey *key, QWidget *parent = 0, + const char *name = 0); + + ~BtBibleKeyWidget(); bool setKey(CSwordVerseKey* key); - QLineEdit* textbox(); - void setModule(CSwordBibleModuleInfo *m = 0); + void setModule(const CSwordBibleModuleInfo *m = 0); bool eventFilter(QObject *o, QEvent *e); signals: @@ -44,7 +44,6 @@ class CKeyReferenceWidget : public QWidget { void leaveEvent(QEvent *event); void resizeEvent(QResizeEvent *event); void resetDropDownButtons(); - void updateText(); protected slots: // Protected slots /** @@ -63,6 +62,9 @@ class CKeyReferenceWidget : public QWidget { void slotChangeChapter(int chapter); void slotChangeVerse(int verse); + public slots: + void updateText(); + private: friend class CLexiconKeyChooser; friend class BtDropdownChooserButton; @@ -86,7 +88,7 @@ class CKeyReferenceWidget : public QWidget { bool updatelock; QString oldKey; - CSwordBibleModuleInfo *m_module; + const CSwordBibleModuleInfo *m_module; }; #endif diff --git a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp index 1e8c292..512a0f3 100644 --- a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp +++ b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -12,12 +12,12 @@ #include <QDebug> #include <QWheelEvent> #include "frontend/keychooser/versekeychooser/btversekeymenu.h" -#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" +#include "frontend/keychooser/versekeychooser/btbiblekeywidget.h" const unsigned int ARROW_HEIGHT = 15; -BtDropdownChooserButton::BtDropdownChooserButton(CKeyReferenceWidget* ref) +BtDropdownChooserButton::BtDropdownChooserButton(BtBibleKeyWidget* ref) : QToolButton(), m_ref(ref) { setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); @@ -30,7 +30,7 @@ BtDropdownChooserButton::BtDropdownChooserButton(CKeyReferenceWidget* ref) setStyleSheet("QToolButton{margin:0px;}QToolButton::menu-indicator{subcontrol-position: center center;}"); BtVerseKeyMenu* m = new BtVerseKeyMenu(this); -// KAcceleratorManager::setNoAccel(m); +// KAcceleratorManager::setNoAccel(m); setMenu(m); QObject::connect(m, SIGNAL(triggered(QAction*)), this, SLOT(slotMenuTriggered(QAction*))); } @@ -61,7 +61,7 @@ void BtDropdownChooserButton::wheelEvent(QWheelEvent* e) { //******************Book dropdown button*************************************/ -BtBookDropdownChooserButton::BtBookDropdownChooserButton(CKeyReferenceWidget* ref) +BtBookDropdownChooserButton::BtBookDropdownChooserButton(BtBibleKeyWidget* ref) : BtDropdownChooserButton(ref) { setToolTip(tr("Select book")); QObject::connect(this, SIGNAL(stepItem(int)), m_ref, SLOT(slotStepBook(int))); @@ -83,7 +83,7 @@ void BtBookDropdownChooserButton::slotMenuTriggered(QAction* action) { //****************** Chapter dropdown button *************************************/ -BtChapterDropdownChooserButton::BtChapterDropdownChooserButton(CKeyReferenceWidget* ref) +BtChapterDropdownChooserButton::BtChapterDropdownChooserButton(BtBibleKeyWidget* ref) : BtDropdownChooserButton(ref) { setToolTip(tr("Select chapter")); QObject::connect(this, SIGNAL(stepItem(int)), m_ref, SLOT(slotStepChapter(int))); @@ -104,7 +104,7 @@ void BtChapterDropdownChooserButton::slotMenuTriggered(QAction* action) { //****************** Verse dropdown button *************************************/ -BtVerseDropdownChooserButton::BtVerseDropdownChooserButton(CKeyReferenceWidget* ref) +BtVerseDropdownChooserButton::BtVerseDropdownChooserButton(BtBibleKeyWidget* ref) : BtDropdownChooserButton(ref) { setToolTip(tr("Select verse")); QObject::connect(this, SIGNAL(stepItem(int)), m_ref, SLOT(slotStepVerse(int))); diff --git a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h index e9dbdc2..04b7000 100644 --- a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h +++ b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -13,7 +13,7 @@ #include <QToolButton> -class CKeyReferenceWidget; +class BtBibleKeyWidget; /** * Base class for book/ch/v dropdown list chooser buttons. @@ -21,7 +21,7 @@ class CKeyReferenceWidget; class BtDropdownChooserButton : public QToolButton { Q_OBJECT public: - BtDropdownChooserButton(CKeyReferenceWidget* ref); + BtDropdownChooserButton(BtBibleKeyWidget* ref); virtual ~BtDropdownChooserButton() {} /** The item list is constructed here just before the menu is shown.*/ @@ -29,14 +29,14 @@ class BtDropdownChooserButton : public QToolButton { /** Recreates the menu list.*/ virtual void newList() = 0; /** Returns the verse reference widget which this button belongs to.*/ - CKeyReferenceWidget* ref() { + BtBibleKeyWidget* ref() { return m_ref; } public slots: /** When a menu item is selected the key will be changed.*/ virtual void slotMenuTriggered(QAction* action) = 0; protected: - CKeyReferenceWidget* m_ref; + BtBibleKeyWidget* m_ref; void wheelEvent(QWheelEvent* event); signals: void stepItem(int step); @@ -46,7 +46,7 @@ class BtDropdownChooserButton : public QToolButton { class BtBookDropdownChooserButton : public BtDropdownChooserButton { Q_OBJECT public: - BtBookDropdownChooserButton(CKeyReferenceWidget* ref); + BtBookDropdownChooserButton(BtBibleKeyWidget* ref); ~BtBookDropdownChooserButton() {} virtual void newList(); public slots: @@ -57,7 +57,7 @@ class BtBookDropdownChooserButton : public BtDropdownChooserButton { class BtChapterDropdownChooserButton : public BtDropdownChooserButton { Q_OBJECT public: - BtChapterDropdownChooserButton(CKeyReferenceWidget* ref); + BtChapterDropdownChooserButton(BtBibleKeyWidget* ref); ~BtChapterDropdownChooserButton() {} virtual void newList(); public slots: @@ -68,7 +68,7 @@ class BtChapterDropdownChooserButton : public BtDropdownChooserButton { class BtVerseDropdownChooserButton : public BtDropdownChooserButton { Q_OBJECT public: - BtVerseDropdownChooserButton(CKeyReferenceWidget* ref); + BtVerseDropdownChooserButton(BtBibleKeyWidget* ref); ~BtVerseDropdownChooserButton() {} virtual void newList(); public slots: diff --git a/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp b/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp index c06a18d..9c6e77f 100644 --- a/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp +++ b/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ diff --git a/src/frontend/keychooser/versekeychooser/btversekeymenu.h b/src/frontend/keychooser/versekeychooser/btversekeymenu.h index f47d0f5..7f5b333 100644 --- a/src/frontend/keychooser/versekeychooser/btversekeymenu.h +++ b/src/frontend/keychooser/versekeychooser/btversekeymenu.h @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ diff --git a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp index 2488668..6a16d8d 100644 --- a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp +++ b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -16,13 +16,18 @@ #include "backend/keys/cswordversekey.h" #include "frontend/keychooser/bthistory.h" #include "frontend/keychooser/cscrollbutton.h" -#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" +#include "frontend/keychooser/versekeychooser/btbiblekeywidget.h" #include "util/cresmgr.h" -CBibleKeyChooser::CBibleKeyChooser(QList<CSwordModuleInfo*> modules, CSwordKey *key, QWidget *parent) : - CKeyChooser(modules, key, parent), - m_key(dynamic_cast<CSwordVerseKey*>(key)) { +CBibleKeyChooser::CBibleKeyChooser( + const QList<const CSwordModuleInfo*> &modules, + BTHistory *historyPtr, CSwordKey *key, QWidget *parent) + : CKeyChooser(modules, historyPtr, key, parent), + m_key(dynamic_cast<CSwordVerseKey*>(key)) +{ + typedef CSwordBibleModuleInfo CSBMI; + w_ref = 0; setModules(modules, false); if (!m_modules.count()) { @@ -35,16 +40,19 @@ CBibleKeyChooser::CBibleKeyChooser(QList<CSwordModuleInfo*> modules, CSwordKey * layout->setContentsMargins(0, 0, 0, 0); layout->setDirection( QBoxLayout::LeftToRight ); - w_ref = new CKeyReferenceWidget(dynamic_cast<CSwordBibleModuleInfo*>(m_modules.first()), m_key, this); + w_ref = new BtBibleKeyWidget(dynamic_cast<const CSBMI*>(m_modules.first()), + m_key, this); setFocusProxy(w_ref); layout->addWidget(w_ref); - connect(w_ref, SIGNAL(beforeChange(CSwordVerseKey *)), SLOT(beforeRefChange(CSwordVerseKey *))); + bool ok = connect(w_ref, SIGNAL(beforeChange(CSwordVerseKey *)), SLOT(beforeRefChange(CSwordVerseKey *))); connect(w_ref, SIGNAL(changed(CSwordVerseKey *)), SLOT(refChanged(CSwordVerseKey *))); + Q_ASSERT(ok); setKey(m_key); //set the key without changing it, setKey(key()) would change it - connect(this, SIGNAL(keyChanged(CSwordKey*)), history(), SLOT(add(CSwordKey*)) ); + ok = connect(this, SIGNAL(keyChanged(CSwordKey*)), history(), SLOT(add(CSwordKey*)) ); + Q_ASSERT(ok); } CSwordKey* CBibleKeyChooser::key() { @@ -62,7 +70,7 @@ void CBibleKeyChooser::setKey(CSwordKey* key) { } void CBibleKeyChooser::beforeRefChange(CSwordVerseKey* key) { - Q_UNUSED(key); /// \todo Is this correct? + Q_UNUSED(key); Q_ASSERT(m_key); @@ -88,17 +96,26 @@ void CBibleKeyChooser::refChanged(CSwordVerseKey* key) { setUpdatesEnabled(true); } -void CBibleKeyChooser::setModules(const QList<CSwordModuleInfo*>& modules, const bool refresh) { +void CBibleKeyChooser::setModules(const QList<const CSwordModuleInfo*> &modules, + bool refresh) +{ + typedef CSwordBibleModuleInfo CSBMI; + m_modules.clear(); - foreach (CSwordModuleInfo* mod, modules) { - if (mod->type() == CSwordModuleInfo::Bible || mod->type() == CSwordModuleInfo::Commentary) { - if (CSwordBibleModuleInfo* bible = dynamic_cast<CSwordBibleModuleInfo*>(mod)) m_modules.append(bible); + Q_FOREACH (const CSwordModuleInfo *mod, modules) { + if (mod->type() == CSwordModuleInfo::Bible + || mod->type() == CSwordModuleInfo::Commentary) + { + const CSBMI* bible = dynamic_cast<const CSBMI*>(mod); + if (bible != 0) { + m_modules.append(bible); + } } } // First time this is called we havnt set up w_ref. - if (w_ref) w_ref->setModule(dynamic_cast<CSwordBibleModuleInfo*>(m_modules.first())); + if (w_ref) w_ref->setModule(dynamic_cast<const CSwordBibleModuleInfo*>(m_modules.first())); if (refresh) refreshContent(); } @@ -106,11 +123,13 @@ void CBibleKeyChooser::refreshContent() { setKey(m_key); } -void CBibleKeyChooser::updateKey(CSwordKey* /*key*/) {} +void CBibleKeyChooser::updateKey(CSwordKey* /*key*/) { + w_ref->updateText(); +} void CBibleKeyChooser::adjustFont() {} void CBibleKeyChooser::setKey(QString& newKey) { - m_key->key(newKey); + m_key->setKey(newKey); setKey(m_key); } diff --git a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h index 9501099..d2c5363 100644 --- a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h +++ b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2008 by the BibleTime developers. +* Copyright 1999-2011 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -18,7 +18,7 @@ class QWidget; -class CKeyReferenceWidget; +class BtBibleKeyWidget; class CSwordVerseKey; class CSwordBibleModuleInfo; @@ -26,7 +26,7 @@ class CSwordBibleModuleInfo; * * it inhertits @ref CKeyChooser * - * it uses a CKeyReferenceWidget 's to represent the bible keys + * it uses a BtBibleKeyWidget to represent the bible keys * * @author The BibleTime team */ @@ -35,25 +35,27 @@ class CBibleKeyChooser : public CKeyChooser { Q_OBJECT public: - /** - * the constructor - * you should not need to use this, use @ref CKeyChooser::createInstance instead - */ - CBibleKeyChooser(QList<CSwordModuleInfo*> modules, CSwordKey *key = 0, QWidget *parent = 0); + CBibleKeyChooser(const QList<const CSwordModuleInfo*> &modules, + BTHistory *history, CSwordKey *key = 0, + QWidget *parent = 0); public slots: /** - * see @ref CKeyChooser::getKey + Reimplemented from CKeyChooser::key(). */ CSwordKey* key(); + /** - * see @ref CKeyChooser::setKey + Reimplemented from CKeyChooser::setKey(). */ virtual void setKey(CSwordKey *key); + /** - * Sets the module + Reimplemented from CKeyChooser::setModules(). */ - virtual void setModules(const QList<CSwordModuleInfo*>& modules, const bool refresh = true); + virtual void setModules(const QList<const CSwordModuleInfo*> &modules, + bool refresh = true); + /** * used to do actions before key changes */ @@ -68,11 +70,14 @@ class CBibleKeyChooser : public CKeyChooser { void refreshContent(); protected slots: + /** + Reimplemented from CKeyChooser::setModules(). + */ virtual void setKey(QString& newKey); private: - CKeyReferenceWidget* w_ref; - QList<CSwordBibleModuleInfo*> m_modules; + BtBibleKeyWidget* w_ref; + QList<const CSwordBibleModuleInfo*> m_modules; CSwordVerseKey *m_key; }; |