diff options
Diffstat (limited to 'src/bibletime.cpp')
-rw-r--r-- | src/bibletime.cpp | 77 |
1 files changed, 48 insertions, 29 deletions
diff --git a/src/bibletime.cpp b/src/bibletime.cpp index 72cb4cd..95461e5 100644 --- a/src/bibletime.cpp +++ b/src/bibletime.cpp @@ -2,7 +2,7 @@ * * This file is part of BibleTime's source code, http://www.bibletime.info/. * -* Copyright 1999-2011 by the BibleTime developers. +* Copyright 1999-2014 by the BibleTime developers. * The BibleTime source code is licensed under the GNU General Public License version 2.0. * **********/ @@ -16,10 +16,9 @@ #include <QDebug> #include <QInputDialog> #include <QMdiSubWindow> -#include <QMessageBox> #include <QSplashScreen> #include <QSplitter> -#include "backend/config/cbtconfig.h" +#include "backend/config/btconfig.h" #include "backend/drivers/cswordbiblemoduleinfo.h" #include "backend/drivers/cswordbookmoduleinfo.h" #include "backend/drivers/cswordcommentarymoduleinfo.h" @@ -27,21 +26,22 @@ #include "backend/drivers/cswordmoduleinfo.h" #include "backend/keys/cswordldkey.h" #include "backend/keys/cswordversekey.h" +#include "bibletimeapp.h" #include "frontend/btaboutmoduledialog.h" #include "frontend/cmdiarea.h" +#include "frontend/display/btfindwidget.h" #include "frontend/displaywindow/btactioncollection.h" #include "frontend/displaywindow/cdisplaywindow.h" #include "frontend/displaywindow/cdisplaywindowfactory.h" #include "frontend/displaywindow/creadwindow.h" -#include "frontend/displaywindow/cwritewindow.h" #include "frontend/keychooser/ckeychooser.h" +#include "frontend/messagedialog.h" #include "frontend/searchdialog/csearchdialog.h" #include "util/cresmgr.h" #include "util/directory.h" +#include "util/geticon.h" -using namespace Profile; - BibleTime *BibleTime::m_instance = 0; BibleTime::BibleTime(QWidget *parent, Qt::WindowFlags flags) @@ -55,14 +55,15 @@ BibleTime::BibleTime(QWidget *parent, Qt::WindowFlags flags) QSplashScreen *splash = 0; QString splashHtml; - if (CBTConfig::get(CBTConfig::logo)) { + if (btConfig().value<bool>("GUI/showSplashScreen", true)) { splashHtml = "<div style='background:transparent;color:white;font-weight:bold'>%1" "</div>"; + static const char splash1[] = "startuplogo.png"; + static const char splash2[] = "startuplogo_christmas.png"; + static const char splash3[] = "startuplogo_easter.jpg"; static const char * const splashes[3] = { - "startuplogo.png", - "startuplogo_christmas.png", - "startuplogo_easter.jpg" + splash1, splash2, splash3 }; QString splashImage = DU::getPicsDir().canonicalPath().append("/") .append(splashes[rand() % 3]); @@ -98,7 +99,7 @@ BibleTime::BibleTime(QWidget *parent, Qt::WindowFlags flags) initConnections(); setWindowTitle("BibleTime " BT_VERSION); - setWindowIcon(DU::getIcon(CResMgr::mainWindow::icon)); + setWindowIcon(util::getIcon(CResMgr::mainWindow::icon)); retranslateUi(); } @@ -108,10 +109,7 @@ BibleTime::~BibleTime() { #ifdef BT_DEBUG deleteDebugWindow(); #endif - CProfile* p = m_profileMgr.startupProfile(); - if (p) { - saveProfile(p); - } + saveProfile(); } /** Creates a new presenter in the MDI area according to the type of the module. */ @@ -144,7 +142,7 @@ CDisplayWindow* BibleTime::createReadDisplayWindow(CSwordModuleInfo* module, con return createReadDisplayWindow(list, key); } -CDisplayWindow* BibleTime::createWriteDisplayWindow(CSwordModuleInfo* module, const QString& key, const CWriteWindow::WriteWindowType& type) { +CDisplayWindow * BibleTime::createWriteDisplayWindow(CSwordModuleInfo * module, const QString & key, CPlainWriteWindow::WriteWindowType type) { qApp->setOverrideCursor( QCursor(Qt::WaitCursor) ); QList<CSwordModuleInfo*> modules; @@ -169,14 +167,14 @@ CDisplayWindow* BibleTime::moduleEditPlain(CSwordModuleInfo *module) { /// \todo Refactor this. return createWriteDisplayWindow(module, QString::null, - CWriteWindow::PlainTextWindow); + CPlainWriteWindow::PlainTextWindow); } CDisplayWindow* BibleTime::moduleEditHtml(CSwordModuleInfo *module) { /// \todo Refactor this. return createWriteDisplayWindow(module, QString::null, - CWriteWindow::HTMLWindow); + CPlainWriteWindow::HTMLWindow); } @@ -213,7 +211,7 @@ bool BibleTime::moduleUnlock(CSwordModuleInfo *module, QWidget *parent) { } if (!module->isLocked()) break; - QMessageBox::warning(parent, tr("Warning: Invalid unlock key!"), + message::showWarning(parent, tr("Warning: Invalid unlock key!"), tr("The unlock key you provided did not properly unlock this " "module. Please try again.")); } @@ -242,7 +240,7 @@ void BibleTime::refreshDisplayWindows() const { /** Refresh main window accelerators */ void BibleTime::refreshBibleTimeAccel() { - CBTConfig::setupAccelSettings(CBTConfig::application, m_actionCollection); + m_actionCollection->readShortcuts("Application shortcuts"); } void BibleTime::closeEvent(QCloseEvent *event) { @@ -263,29 +261,26 @@ void BibleTime::closeEvent(QCloseEvent *event) { } void BibleTime::processCommandline(bool ignoreSession, const QString &bibleKey) { - if (CBTConfig::get(CBTConfig::crashedTwoTimes)) { + if (btConfig().value<bool>("state/crashedTwoTimes", false)) { return; } // Restore workspace if not not ignoring session data: - if (!ignoreSession) { - CProfile * p = m_profileMgr.startupProfile(); - if (p) - loadProfile(p); - } + if (!ignoreSession) + reloadProfile(); - if (CBTConfig::get(CBTConfig::crashedLastTime)) { + if (btConfig().value<bool>("state/crashedLastTime", false)) { return; } if (!bibleKey.isNull()) { - CSwordModuleInfo* bible = CBTConfig::get(CBTConfig::standardBible); + CSwordModuleInfo* bible = btConfig().getDefaultSwordModuleByType("standardBible"); if (bibleKey == "random") { CSwordVerseKey vk(0); const int maxIndex = 31100; int newIndex = rand() % maxIndex; vk.setPosition(sword::TOP); - vk.Index(newIndex); + vk.setIndex(newIndex); createReadDisplayWindow(bible, vk.key()); } else { createReadDisplayWindow(bible, bibleKey); @@ -297,6 +292,14 @@ void BibleTime::processCommandline(bool ignoreSession, const QString &bibleKey) */ m_mdi->myTileVertical(); } + + if (btConfig().value<bool>("state/crashedLastTime", false)) { + btConfig().setValue("state/crashedTwoTimes", true); + } + else { + btConfig().setValue("state/crashedLastTime", true); + } + btConfig().sync(); } bool BibleTime::event(QEvent* event) { @@ -304,3 +307,19 @@ bool BibleTime::event(QEvent* event) { Search::CSearchDialog::closeDialog(); return QMainWindow::event(event); } + +const CSwordModuleInfo* BibleTime::getCurrentModule() { + QMdiSubWindow* activeSubWindow = m_mdi->activeSubWindow(); + if (!activeSubWindow) + return 0; + CDisplayWindow* w = dynamic_cast<CDisplayWindow*>(activeSubWindow->widget()); + if (!w) + return 0; + return w->modules().first(); +} + +void BibleTime::openFindWidget() +{ + m_findWidget->setVisible(true); + m_findWidget->showAndSelect(); +} |