summaryrefslogtreecommitdiff
path: root/src/bibletime.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/bibletime.cpp')
-rw-r--r--src/bibletime.cpp77
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();
+}