summaryrefslogtreecommitdiff
path: root/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp')
-rw-r--r--src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp51
1 files changed, 35 insertions, 16 deletions
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);
}