summaryrefslogtreecommitdiff
path: root/src/frontend/keychooser/versekeychooser
diff options
context:
space:
mode:
authorRoberto C. Sanchez <roberto@connexer.com>2014-10-21 22:48:35 -0400
committerRoberto C. Sanchez <roberto@connexer.com>2014-10-21 22:48:35 -0400
commitdf8f1d512c60a96f9041f9663b3fdc2db51cba33 (patch)
tree3d2bdbd4732d417aca73be022ae9044eac96b7d3 /src/frontend/keychooser/versekeychooser
parent4885bfcef4d89cf0cb391e00af617b9fd19c9cbb (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.cpp14
-rw-r--r--src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h16
-rw-r--r--src/frontend/keychooser/versekeychooser/btversekeymenu.cpp2
-rw-r--r--src/frontend/keychooser/versekeychooser/btversekeymenu.h2
-rw-r--r--src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp51
-rw-r--r--src/frontend/keychooser/versekeychooser/cbiblekeychooser.h33
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;
};