summaryrefslogtreecommitdiff
path: root/src/frontend/displaywindow/cdisplaywindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/frontend/displaywindow/cdisplaywindow.cpp')
-rw-r--r--src/frontend/displaywindow/cdisplaywindow.cpp205
1 files changed, 104 insertions, 101 deletions
diff --git a/src/frontend/displaywindow/cdisplaywindow.cpp b/src/frontend/displaywindow/cdisplaywindow.cpp
index 4ba567a..3900a92 100644
--- a/src/frontend/displaywindow/cdisplaywindow.cpp
+++ b/src/frontend/displaywindow/cdisplaywindow.cpp
@@ -21,8 +21,8 @@
#include "frontend/display/cdisplay.h"
#include "frontend/displaywindow/bttoolbarpopupaction.h"
#include "frontend/displaywindow/btactioncollection.h"
-#include "frontend/displaywindow/cmodulechooserbar.h"
-#include "frontend/displaywindow/cbuttons.h"
+#include "frontend/displaywindow/btmodulechooserbar.h"
+#include "frontend/displaywindow/btdisplaysettingsbutton.h"
#include "frontend/keychooser/ckeychooser.h"
#include "frontend/keychooser/bthistory.h"
#include "frontend/profile/cprofilewindow.h"
@@ -36,8 +36,6 @@ using namespace Profile;
CDisplayWindow::CDisplayWindow(QList<CSwordModuleInfo*> modules, CMDIArea *parent)
: QMainWindow(parent),
m_mdi(parent),
- m_filterOptions(),
- m_displayOptions(),
m_displaySettingsButton(0),
m_keyChooser(0),
m_swordKey(0),
@@ -53,7 +51,14 @@ CDisplayWindow::CDisplayWindow(QList<CSwordModuleInfo*> modules, CMDIArea *paren
setModules(modules);
// Connect this to the backend module list changes
- connect(CPointers::backend(), SIGNAL(sigSwordSetupChanged(CSwordBackend::SetupChangedReason)), SLOT(reload(CSwordBackend::SetupChangedReason)));
+ connect(CPointers::backend(),
+ SIGNAL(sigSwordSetupChanged(CSwordBackend::SetupChangedReason)),
+ SLOT(reload(CSwordBackend::SetupChangedReason)));
+ BibleTime* mainwindow = dynamic_cast<BibleTime*>(m_mdi->parent());
+ connect(mainwindow, SIGNAL(toggledTextWindowHeader(bool)), SLOT(slotShowHeader(bool)) );
+ connect(mainwindow, SIGNAL(toggledTextWindowNavigator(bool)), SLOT(slotShowNavigator(bool)) );
+ connect(mainwindow, SIGNAL(toggledTextWindowToolButtons(bool)), SLOT(slotShowToolButtons(bool)) );
+ connect(mainwindow, SIGNAL(toggledTextWindowModuleChooser(bool)), SLOT(slotShowModuleChooser(bool)) );
}
CDisplayWindow::~CDisplayWindow() {
@@ -61,10 +66,6 @@ CDisplayWindow::~CDisplayWindow() {
m_swordKey = 0;
}
-CMDIArea* CDisplayWindow::mdi() const {
- return m_mdi;
-}
-
/** Returns the right window caption. */
const QString CDisplayWindow::windowCaption() {
if (!m_modules.count()) {
@@ -74,18 +75,11 @@ const QString CDisplayWindow::windowCaption() {
return QString(key()->key()).append(" (").append(m_modules.join(" | ")).append(")");
}
-/** Returns the used modules as a QPtrList */
+/** Returns the used modules as a pointer list */
QList<CSwordModuleInfo*> CDisplayWindow::modules() {
- QList<CSwordModuleInfo*> mods;
+ //qDebug() << "CDisplayWindow::modules";
- for (QStringList::iterator it = m_modules.begin(); it != m_modules.end(); ++it) {
- Q_ASSERT(backend()->findModuleByName(*it));
- if (CSwordModuleInfo* m = backend()->findModuleByName(*it)) {
- mods.append(m);
- }
- }
-
- return mods;
+ return CPointers::backend()->getPointerList(m_modules);
}
void CDisplayWindow::insertKeyboardActions( BtActionCollection* a ) {
@@ -101,10 +95,6 @@ void CDisplayWindow::insertKeyboardActions( BtActionCollection* a ) {
actn->setShortcut(QKeySequence::ZoomOut);
a->addAction("zoomOut", actn);
- actn = new QAction(QIcon(), tr("Close"), a);
- actn->setShortcut(QKeySequence::Close);
- a->addAction("closeWindow", actn);
-
actn = new QAction(QIcon(), tr("Select all"), a);
actn->setShortcut(QKeySequence::SelectAll);
a->addAction("selectAll", actn);
@@ -167,10 +157,6 @@ void CDisplayWindow::initActions() {
QObject::connect(actn, SIGNAL(triggered()), conn, SLOT(zoomOut()));
addAction(actn);
- actn = ac->action("closeWindow");
- QObject::connect(actn, SIGNAL(triggered()), this, SLOT(close()));
- addAction(actn);
-
actn = ac->action("selectAll");
QObject::connect(actn, SIGNAL(triggered()), conn, SLOT(selectAll()));
addAction(actn);
@@ -198,6 +184,7 @@ void CDisplayWindow::initActions() {
/** Refresh the settings of this window. */
void CDisplayWindow::reload(CSwordBackend::SetupChangedReason) {
+ qDebug() << "CDisplayWindow::reload";
//first make sure all used Sword modules are still present
QMutableStringListIterator it(m_modules);
while (it.hasNext()) {
@@ -213,43 +200,51 @@ void CDisplayWindow::reload(CSwordBackend::SetupChangedReason) {
if (keyChooser()) keyChooser()->setModules( modules(), false );
- if (m_moduleChooserBar) { //necessary for edit windows which have now chooser bar
- m_moduleChooserBar->setModules(modules());
- }
- modulesChanged();
lookup();
CBTConfig::setupAccelSettings(CBTConfig::allWindows, actionCollection());
CBTConfig::setupAccelSettings(CBTConfig::readWindow, actionCollection());
+ qDebug() << "CDisplayWindow::reload emits sigModuleListSet...";
+ emit sigModuleListSet(m_modules);
+}
+
+void CDisplayWindow::slotAddModule(int index, QString module) {
+ qDebug() << "CDisplayWindow::slotAddModule";
+ m_modules.insert(index, module);
+ lookup();
+ modulesChanged();
+ emit sigModuleListChanged();
}
-/** Returns the filter options used by this window. */
-CSwordBackend::FilterOptions& CDisplayWindow::filterOptions() {
- return m_filterOptions;
+void CDisplayWindow::slotReplaceModule(int index, QString newModule) {
+ qDebug() << "CDisplayWindow::slotReplaceModule" << m_modules.at(index) << "with" << newModule;
+ m_modules.replace(index, newModule);
+ qDebug() << "window's new module list:" << m_modules;
+ lookup();
+ modulesChanged();
+ emit sigModuleListChanged();
}
-/** Returns the display options used by this display window. */
-CSwordBackend::DisplayOptions& CDisplayWindow::displayOptions() {
- return m_displayOptions;
+void CDisplayWindow::slotRemoveModule(int index) {
+ qDebug() << "CDisplayWindow::slotRemoveModule";
+ m_modules.removeAt(index);
+ lookup();
+ modulesChanged();
+ emit sigModuleListChanged();
}
/** Sets the new display options for this window. */
-void CDisplayWindow::setDisplayOptions( const CSwordBackend::DisplayOptions& displayOptions ) {
+void CDisplayWindow::setDisplayOptions(const CSwordBackend::DisplayOptions &displayOptions) {
m_displayOptions = displayOptions;
}
/** Sets the new filter options of this window. */
-void CDisplayWindow::setFilterOptions( CSwordBackend::FilterOptions& filterOptions ) {
+void CDisplayWindow::setFilterOptions(const CSwordBackend::FilterOptions &filterOptions) {
m_filterOptions = filterOptions;
}
-/** Returns true if the widget is ready for use. */
-bool CDisplayWindow::isReady() const {
- return m_isReady;
-}
-
/** Set the ready status */
-void CDisplayWindow::setReady( const bool& ready ) {
+void CDisplayWindow::setReady(bool ready) {
m_isReady = ready;
}
@@ -258,22 +253,11 @@ bool CDisplayWindow::queryClose() {
return true;
}
-/** Returns the keychooser widget of this display window. */
-CKeyChooser* CDisplayWindow::keyChooser() const {
- return m_keyChooser;
-}
-
/** Sets the keychooser widget for this display window. */
void CDisplayWindow::setKeyChooser( CKeyChooser* ck ) {
m_keyChooser = ck;
}
-/** Returns the key of this display window. */
-CSwordKey* CDisplayWindow::key() const {
- Q_ASSERT( m_swordKey );
- return m_swordKey;
-}
-
/** Sets the new sword key. */
void CDisplayWindow::setKey( CSwordKey* key ) {
Q_ASSERT( key );
@@ -281,16 +265,16 @@ void CDisplayWindow::setKey( CSwordKey* key ) {
}
void CDisplayWindow::modulesChanged() {
- if (moduleChooserBar()) { //necessary for write windows
- setModules( m_moduleChooserBar->getModuleList() );
- }
-
- if (!modules().count()) {
+ // this would only set the stringlist again
+ //if (moduleChooserBar()) { //necessary for write windows
+ //setModules( m_moduleChooserBar->getModuleList() );
+ //}
+ if (modules().isEmpty()) {
close();
}
else {
if (displaySettingsButton()) {
- displaySettingsButton()->reset(modules());
+ displaySettingsButton()->setModules(modules());
}
key()->module(modules().first());
@@ -298,24 +282,30 @@ void CDisplayWindow::modulesChanged() {
}
}
-/** Returns the module chooser bar. */
-CModuleChooserBar* CDisplayWindow::moduleChooserBar() const {
- return m_moduleChooserBar;
-}
-
/** Sets the module chooser bar. */
-void CDisplayWindow::setModuleChooserBar( CModuleChooserBar* bar ) {
+void CDisplayWindow::setModuleChooserBar( BtModuleChooserBar* bar ) {
+ qDebug() << "CDisplayWindow::setModuleChooserBar";
if (m_moduleChooserBar) {
- disconnect(m_moduleChooserBar, SIGNAL(sigChanged()), this, SLOT(modulesChanged()));
+ m_moduleChooserBar->deleteLater();
}
//if a new bar should be set!
if (bar) {
m_moduleChooserBar = bar;
- connect(bar, SIGNAL(sigChanged()), SLOT(modulesChanged()));
+ bar->setWindowTitle(tr("Work chooser buttons"));
+ bar->setLayoutDirection(Qt::LeftToRight);
+ bar->setVisible(CBTConfig::get(CBTConfig::showTextWindowModuleSelectorButtons));
}
}
+/** Sets the module header of text area. */
+void CDisplayWindow::setHeaderBar( QToolBar* header ) {
+ m_headerBar = header;
+ header->setMovable(false);
+ header->setWindowTitle(tr("Text area header"));
+ header->setVisible(CBTConfig::get(CBTConfig::showTextWindowHeaders));
+}
+
/** Sets the modules. */
void CDisplayWindow::setModules( const QList<CSwordModuleInfo*>& newModules ) {
qDebug() << "CDisplayWindow::setModules";
@@ -344,45 +334,67 @@ bool CDisplayWindow::init() {
m_filterOptions = CBTConfig::getFilterOptionDefaults();
m_displayOptions = CBTConfig::getDisplayOptionDefaults();
if (displaySettingsButton()) {
- displaySettingsButton()->reset(modules());
+ displaySettingsButton()->setFilterOptions(m_filterOptions, false);
+ displaySettingsButton()->setDisplayOptions(m_displayOptions, false);
+ displaySettingsButton()->setModules(modules());
}
setReady(true);
return true;
}
-/** Returns the main toolbar. */
-QToolBar* CDisplayWindow::mainToolBar() const {
- return m_mainToolBar;
-}
-
-/** Returns the main toolbar. */
-QToolBar* CDisplayWindow::buttonsToolBar() const {
- return m_buttonsToolBar;
-}
-
/** Sets the main toolbar. */
void CDisplayWindow::setMainToolBar( QToolBar* bar ) {
m_mainToolBar = bar;
+ bar->setAllowedAreas(Qt::TopToolBarArea);
+ bar->setFloatable(false);
+ bar->setWindowTitle(tr("Navigation"));
+ bar->setVisible(CBTConfig::get(CBTConfig::showTextWindowNavigator));
}
/** Sets the main toolbar. */
void CDisplayWindow::setButtonsToolBar( QToolBar* bar ) {
m_buttonsToolBar = bar;
-}
-
-/** Returns the display settings button */
-CDisplaySettingsButton* CDisplayWindow::displaySettingsButton() const {
- return m_displaySettingsButton;
+ bar->setAllowedAreas(Qt::TopToolBarArea);
+ bar->setFloatable(false);
+ bar->setWindowTitle(tr("Tools"));
+ bar->setVisible( CBTConfig::get(CBTConfig::showTextWindowToolButtons) );
}
/** Sets the display settings button. */
-void CDisplayWindow::setDisplaySettingsButton( CDisplaySettingsButton* button ) {
- if (m_displaySettingsButton)
- disconnect(m_displaySettingsButton, SIGNAL( sigChanged() ), this, SLOT(lookup() ));
+void CDisplayWindow::setDisplaySettingsButton( BtDisplaySettingsButton* button ) {
+ if (m_displaySettingsButton) {
+ m_displaySettingsButton->disconnect(this);
+ }
m_displaySettingsButton = button;
- connect(m_displaySettingsButton, SIGNAL(sigChanged()), this, SLOT(lookup()));
+
+ button->setDisplayOptions(displayOptions(), false);
+ button->setFilterOptions(filterOptions(), false);
+ button->setModules(modules());
+
+ connect(button, SIGNAL(sigFilterOptionsChanged(CSwordBackend::FilterOptions)),
+ this, SLOT(setFilterOptions(CSwordBackend::FilterOptions)));
+ connect(button, SIGNAL(sigDisplayOptionsChanged(CSwordBackend::DisplayOptions)),
+ this, SLOT(setDisplayOptions(CSwordBackend::DisplayOptions)));
+ connect(button, SIGNAL(sigChanged()),
+ this, SLOT(lookup()));
+}
+
+void CDisplayWindow::slotShowHeader(bool show) {
+ headerBar()->setVisible(show);
+}
+
+void CDisplayWindow::slotShowNavigator(bool show) {
+ mainToolBar()->setVisible(show);
+}
+
+void CDisplayWindow::slotShowToolButtons(bool show) {
+ buttonsToolBar()->setVisible(show);
+}
+
+void CDisplayWindow::slotShowModuleChooser(bool show) {
+ moduleChooserBar()->setVisible(show);
}
/** Lookup the current key. Used to refresh the display. */
@@ -423,12 +435,13 @@ void CDisplayWindow::lookupKey( const QString& keyName ) {
*/
Q_ASSERT(modules().first());
- //qDebug("CDisplayWindow::lookup: %s", keyName.latin1());
+ qDebug() << "CDisplayWindow::lookupKey: " << keyName;
lookupModKey(modules().first()->name(), keyName);
}
/** Update the status of the popup menu entries. */
void CDisplayWindow::updatePopupMenu() {
+ /// \todo Verify this should be empty and comment.
}
@@ -448,12 +461,6 @@ QMenu* CDisplayWindow::popup() {
return m_popupMenu;
}
-/** Returns the display widget used by this implementation of CDisplayWindow. */
-CDisplay* CDisplayWindow::displayWidget() const {
- Q_ASSERT(m_displayWidget);
- return m_displayWidget;
-}
-
/** Sets the display widget used by this display window. */
void CDisplayWindow::setDisplayWidget( CDisplay* newDisplay ) {
m_displayWidget = newDisplay;
@@ -480,10 +487,6 @@ void CDisplayWindow::printAnchorWithText() {
m_displayWidget->connectionsProxy()->printAnchorWithText( m_displayOptions, m_filterOptions);
}
-BtActionCollection* CDisplayWindow::actionCollection() {
- return m_actionCollection;
-}
-
void CDisplayWindow::setFocusKeyChooser() {
keyChooser()->setFocus();
}