diff options
Diffstat (limited to 'src/frontend/keychooser/versekeychooser')
8 files changed, 70 insertions, 60 deletions
diff --git a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp index 2d59bed..1e8c292 100644 --- a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp +++ b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.cpp @@ -7,12 +7,13 @@ * **********/ -#include "btdropdownchooserbutton.h" -#include "ckeyreferencewidget.h" -#include "btversekeymenu.h" +#include "frontend/keychooser/versekeychooser/btdropdownchooserbutton.h" -#include <QWheelEvent> #include <QDebug> +#include <QWheelEvent> +#include "frontend/keychooser/versekeychooser/btversekeymenu.h" +#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" + const unsigned int ARROW_HEIGHT = 15; @@ -36,7 +37,7 @@ BtDropdownChooserButton::BtDropdownChooserButton(CKeyReferenceWidget* ref) void BtDropdownChooserButton::mousePressEvent(QMouseEvent* e) { - //qDebug("BtDropdownChooserButton::mousePressEvent"); + //qDebug() << "BtDropdownChooserButton::mousePressEvent"; //recreate the menu menu()->clear(); this->newList(); diff --git a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h index 12f2f65..e9dbdc2 100644 --- a/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h +++ b/src/frontend/keychooser/versekeychooser/btdropdownchooserbutton.h @@ -10,9 +10,9 @@ #ifndef BTDROPDOWNCHOOSERBUTTON_H #define BTDROPDOWNCHOOSERBUTTON_H - #include <QToolButton> + class CKeyReferenceWidget; /** diff --git a/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp b/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp index 82a07b7..c06a18d 100644 --- a/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp +++ b/src/frontend/keychooser/versekeychooser/btversekeymenu.cpp @@ -7,19 +7,19 @@ * **********/ -#include "btversekeymenu.h" +#include "frontend/keychooser/versekeychooser/btversekeymenu.h" +#include <QDebug> #include <QMenu> -#include <QTimerEvent> #include <QMouseEvent> +#include <QTimerEvent> -#include <QDebug> BtVerseKeyMenu::BtVerseKeyMenu(QWidget* parent) : QMenu(parent), m_timerId(0), m_firstClickLock(true) { - qDebug("BtVerseKeyMenu::BtVerseKeyMenu"); + qDebug() << "BtVerseKeyMenu::BtVerseKeyMenu"; QObject::connect(this, SIGNAL(aboutToShow()), this, SLOT(startFirstClickDelayTimer())); } diff --git a/src/frontend/keychooser/versekeychooser/btversekeymenu.h b/src/frontend/keychooser/versekeychooser/btversekeymenu.h index 29c0736..f47d0f5 100644 --- a/src/frontend/keychooser/versekeychooser/btversekeymenu.h +++ b/src/frontend/keychooser/versekeychooser/btversekeymenu.h @@ -12,6 +12,7 @@ #include <QMenu> + class QMouseEvent; class QTimerEvent; diff --git a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp index 493d9c4..7bcfbe1 100644 --- a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp +++ b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.cpp @@ -7,21 +7,18 @@ * **********/ -#include "cbiblekeychooser.h" +#include "frontend/keychooser/versekeychooser/cbiblekeychooser.h" -#include "../bthistory.h" -#include "ckeyreferencewidget.h" -#include "../cscrollbutton.h" - -#include "backend/keys/cswordversekey.h" +#include <QDebug> +#include <QHBoxLayout> #include "backend/drivers/cswordbiblemoduleinfo.h" #include "backend/drivers/cswordmoduleinfo.h" - +#include "backend/keys/cswordversekey.h" +#include "frontend/keychooser/bthistory.h" +#include "frontend/keychooser/cscrollbutton.h" +#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" #include "util/cresmgr.h" -#include <QHBoxLayout> -#include <QDebug> - CBibleKeyChooser::CBibleKeyChooser(QList<CSwordModuleInfo*> modules, CSwordKey *key, QWidget *parent) : CKeyChooser(modules, key, parent), @@ -42,6 +39,7 @@ CBibleKeyChooser::CBibleKeyChooser(QList<CSwordModuleInfo*> modules, CSwordKey * setFocusProxy(w_ref); layout->addWidget(w_ref); + connect(w_ref, SIGNAL(beforeChange(CSwordVerseKey *)), SLOT(beforeRefChange(CSwordVerseKey *))); connect(w_ref, SIGNAL(changed(CSwordVerseKey *)), SLOT(refChanged(CSwordVerseKey *))); setKey(m_key); //set the key without changing it, setKey(key()) would change it @@ -63,14 +61,25 @@ void CBibleKeyChooser::setKey(CSwordKey* key) { emit keyChanged(m_key); } +void CBibleKeyChooser::beforeRefChange(CSwordVerseKey* key) { + Q_ASSERT(m_key); + + if (!updatesEnabled()) + return; + + if (m_key) + emit beforeKeyChange(m_key->key()); + +} + void CBibleKeyChooser::refChanged(CSwordVerseKey* key) { Q_ASSERT(m_key); Q_ASSERT(key); - if (!updatesEnabled()) return; + if (!updatesEnabled()) + return; setUpdatesEnabled(false); - if (m_key) emit beforeKeyChange(m_key->key()); m_key = key; emit keyChanged(m_key); diff --git a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h index e412e60..9501099 100644 --- a/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h +++ b/src/frontend/keychooser/versekeychooser/cbiblekeychooser.h @@ -7,16 +7,14 @@ * **********/ - - #ifndef CBIBLEKEYCHOOSER_H #define CBIBLEKEYCHOOSER_H +#include "frontend/keychooser/ckeychooser.h" -#include "../ckeychooser.h" +#include <QList> #include "backend/drivers/cswordbiblemoduleinfo.h" -#include <QList> class QWidget; @@ -57,8 +55,11 @@ class CBibleKeyChooser : public CKeyChooser { */ virtual void setModules(const QList<CSwordModuleInfo*>& modules, const bool refresh = true); /** - * used to react to changes - * @param index not used + * used to do actions before key changes + */ + void beforeRefChange(CSwordVerseKey *key); + /** + * used to do actions after key changes */ void refChanged(CSwordVerseKey *key); diff --git a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp b/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp index 7cedfc0..067b4db 100644 --- a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp +++ b/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.cpp @@ -7,31 +7,26 @@ * **********/ -//BibleTime includes -#include "ckeyreferencewidget.h" +#include "frontend/keychooser/versekeychooser/ckeyreferencewidget.h" -#include "../cscrollerwidgetset.h" -#include "btdropdownchooserbutton.h" - -#include "backend/config/cbtconfig.h" - -#include "backend/keys/cswordversekey.h" - -#include "util/cresmgr.h" -#include "util/directoryutil.h" - -//Qt includes #include <QApplication> #include <QDebug> +#include <QEvent> +#include <QFocusEvent> #include <QHBoxLayout> #include <QLineEdit> -#include <QEvent> #include <QMouseEvent> #include <QPixmap> #include <QString> #include <QStringList> #include <QToolButton> -#include <QFocusEvent> +#include "backend/config/cbtconfig.h" +#include "backend/keys/cswordversekey.h" +#include "frontend/keychooser/cscrollerwidgetset.h" +#include "frontend/keychooser/versekeychooser/btdropdownchooserbutton.h" +#include "util/cresmgr.h" +#include "util/directory.h" + class BtLineEdit : public QLineEdit { public: @@ -54,6 +49,7 @@ CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVers QWidget(parent), m_key(key), m_dropDownHoverTimer(this) { + namespace DU = util::directory; updatelock = false; m_module = mod; @@ -61,7 +57,7 @@ CKeyReferenceWidget::CKeyReferenceWidget( CSwordBibleModuleInfo *mod, CSwordVers setFocusPolicy(Qt::WheelFocus); QToolButton* clearRef = new QToolButton(this); - clearRef->setIcon(util::filesystem::DirectoryUtil::getIcon("edit_clear_locationbar")); + clearRef->setIcon(DU::getIcon("edit_clear_locationbar")); clearRef->setAutoRaise(true); clearRef->setStyleSheet("QToolButton{margin:0px;}"); connect(clearRef, SIGNAL(clicked()), SLOT(slotClearRef()) ); @@ -243,32 +239,33 @@ void CKeyReferenceWidget::slotUpdateUnlock() { } void CKeyReferenceWidget::slotStepBook(int n) { - CSwordVerseKey key = *m_key; - n > 0 ? key.next( CSwordVerseKey::UseBook ) : key.previous( CSwordVerseKey::UseBook ); + emit beforeChange(m_key); + n > 0 ? m_key->next( CSwordVerseKey::UseBook ) : m_key->previous( CSwordVerseKey::UseBook ); if (!updatelock) - emit changed(&key); // does *m_key = key + emit changed(m_key); updateText(); } void CKeyReferenceWidget::slotStepChapter(int n) { - CSwordVerseKey key = *m_key; - n > 0 ? key.next( CSwordVerseKey::UseChapter ) : key.previous( CSwordVerseKey::UseChapter ); + emit beforeChange(m_key); + n > 0 ? m_key->next( CSwordVerseKey::UseChapter ) : m_key->previous( CSwordVerseKey::UseChapter ); if (!updatelock) - emit changed(&key); // does *m_key = key + emit changed(m_key); updateText(); } void CKeyReferenceWidget::slotStepVerse(int n) { - CSwordVerseKey key = *m_key; - n > 0 ? key.next( CSwordVerseKey::UseVerse ) : key.previous( CSwordVerseKey::UseVerse ); + emit beforeChange(m_key); + n > 0 ? m_key->next( CSwordVerseKey::UseVerse ) : m_key->previous( CSwordVerseKey::UseVerse ); if (!updatelock) - emit changed(&key); // does *m_key = key + emit changed(m_key); updateText(); } void CKeyReferenceWidget::slotChangeVerse(int n) { if (m_key->Verse() != n) { + emit beforeChange(m_key); m_key->Verse( n ); setKey( m_key ); } @@ -278,6 +275,7 @@ void CKeyReferenceWidget::slotChangeVerse(int n) { void CKeyReferenceWidget::slotChangeChapter(int n) { if (m_key->Chapter() != n) { + emit beforeChange(m_key); m_key->Chapter( n ); setKey( m_key ); } @@ -288,6 +286,7 @@ void CKeyReferenceWidget::slotChangeChapter(int n) { void CKeyReferenceWidget::slotChangeBook(QString bookname) { if (m_key->book() != bookname) { + emit beforeChange(m_key); m_key->book( bookname ); setKey( m_key ); } diff --git a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h b/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h index 95a188e..637530a 100644 --- a/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h +++ b/src/frontend/keychooser/versekeychooser/ckeyreferencewidget.h @@ -10,20 +10,18 @@ #ifndef CKEYREFERENCEWIDGET_H #define CKEYREFERENCEWIDGET_H -#include "../cscrollerwidgetset.h" -#include "backend/drivers/cswordbiblemoduleinfo.h" - #include <QWidget> + #include <QTimer> +#include "backend/drivers/cswordbiblemoduleinfo.h" +#include "frontend/keychooser/cscrollerwidgetset.h" +class BtDropdownChooserButton; class CLexiconKeyChooser; class CSwordVerseKey; -class BtDropdownChooserButton; - class QLineEdit; - class CKeyReferenceWidget : public QWidget { Q_OBJECT public: @@ -37,7 +35,8 @@ class CKeyReferenceWidget : public QWidget { void setModule(CSwordBibleModuleInfo *m = 0); bool eventFilter(QObject *o, QEvent *e); - signals: +signals: + void beforeChange(CSwordVerseKey* key); void changed(CSwordVerseKey* key); protected: |