summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/dagger/mainwindow.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/noncore/apps/dagger/mainwindow.cpp b/noncore/apps/dagger/mainwindow.cpp
index b2e00e8..e886bd8 100644
--- a/noncore/apps/dagger/mainwindow.cpp
+++ b/noncore/apps/dagger/mainwindow.cpp
@@ -1,439 +1,439 @@
1/* 1/*
2Dagger - A Bible study program utilizing the Sword library. 2Dagger - A Bible study program utilizing the Sword library.
3Copyright (c) 2004 Dan Williams <drw@handhelds.org> 3Copyright (c) 2004 Dan Williams <drw@handhelds.org>
4 4
5This file is free software; you can redistribute it and/or modify it under 5This file is free software; you can redistribute it and/or modify it under
6the terms of the GNU General Public License as published by the Free Software 6the terms of the GNU General Public License as published by the Free Software
7Foundation; either version 2 of the License, or (at your option) any later version. 7Foundation; either version 2 of the License, or (at your option) any later version.
8 8
9This file is distributed in the hope that it will be useful, but WITHOUT ANY 9This file is distributed in the hope that it will be useful, but WITHOUT ANY
10WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A 10WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11PARTICULAR PURPOSE. See the GNU General Public License for more details. 11PARTICULAR PURPOSE. See the GNU General Public License for more details.
12 12
13You should have received a copy of the GNU General Public License along with this 13You should have received a copy of the GNU General Public License along with this
14file; see the file COPYING. If not, write to the Free Software Foundation, Inc., 14file; see the file COPYING. If not, write to the Free Software Foundation, Inc.,
1559 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 1559 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16*/ 16*/
17 17
18#include "mainwindow.h" 18#include "mainwindow.h"
19#include "navbar.h" 19#include "navbar.h"
20#include "searchbar.h" 20#include "searchbar.h"
21#include "opentextdlg.h" 21#include "opentextdlg.h"
22#include "configuredlg.h" 22#include "configuredlg.h"
23#include "textwidget.h" 23#include "textwidget.h"
24 24
25#include <opie2/odebug.h> 25#include <opie2/odebug.h>
26 26
27#include <qpe/qcopenvelope_qws.h> 27#include <qpe/qcopenvelope_qws.h>
28#include <qpe/qpeapplication.h> 28#include <qpe/qpeapplication.h>
29#include <qpe/resource.h> 29#include <qpe/resource.h>
30 30
31#include <qaction.h> 31#include <qaction.h>
32#include <qclipboard.h> 32#include <qclipboard.h>
33#include <qmenubar.h> 33#include <qmenubar.h>
34#include <qobjectlist.h> 34#include <qobjectlist.h>
35#include <qpopupmenu.h> 35#include <qpopupmenu.h>
36#include <qtimer.h> 36#include <qtimer.h>
37#include <qtoolbar.h> 37#include <qtoolbar.h>
38 38
39#include <markupfiltmgr.h> 39#include <markupfiltmgr.h>
40 40
41MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ ) 41MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ )
42 : QMainWindow( parent, name, WStyle_ContextHelp ) 42 : QMainWindow( parent, name, WStyle_ContextHelp )
43 , m_config( "dagger" ) 43 , m_config( "dagger" )
44 , m_tabs( this ) 44 , m_tabs( this )
45 , m_autoScrollTimer( this ) 45 , m_autoScrollTimer( this )
46{ 46{
47 // Initialize sword library manager 47 // Initialize sword library manager
48 m_config.setGroup( "Sword" ); 48 m_config.setGroup( "Sword" );
49 m_modulePath = m_config.readEntry( "ModPath", "/usr/local/share/sword" ); 49 m_modulePath = m_config.readEntry( "ModPath", "/usr/local/share/sword" );
50 m_swordMgr = new sword::SWMgr( m_modulePath.latin1(), true, 50 m_swordMgr = new sword::SWMgr( m_modulePath.latin1(), true,
51 new sword::MarkupFilterMgr( sword::FMT_HTMLHREF ) ); 51 new sword::MarkupFilterMgr( sword::FMT_HTMLHREF ) );
52 52
53 // Retrieve list of available Sword module options (e.g. footnotes, Strong's numbers, etc.) 53 // Retrieve list of available Sword module options (e.g. footnotes, Strong's numbers, etc.)
54 sword::OptionsList swordOpts = m_swordMgr->getGlobalOptions(); 54 sword::StringList swordOpts = m_swordMgr->getGlobalOptions();
55 for ( sword::OptionsList::iterator it = swordOpts.begin(); it != swordOpts.end(); it++ ) 55 for ( sword::StringList::iterator it = swordOpts.begin(); it != swordOpts.end(); it++ )
56 m_actionSwordOpts.append( new QAction( (*it).c_str(), QString::null, 0, this, 0 ) ); 56 m_actionSwordOpts.append( new QAction( (*it).c_str(), QString::null, 0, this, 0 ) );
57 m_actionSwordOpts.sort(); 57 m_actionSwordOpts.sort();
58 58
59 // Initialize user interface 59 // Initialize user interface
60 setCaption( tr( "Dagger" ) ); 60 setCaption( tr( "Dagger" ) );
61 initUI(); 61 initUI();
62 62
63 connect( &m_tabs, SIGNAL(currentChanged(QWidget *)), this, SLOT( slotTextDisplayed(QWidget *)) ); 63 connect( &m_tabs, SIGNAL(currentChanged(QWidget *)), this, SLOT( slotTextDisplayed(QWidget *)) );
64 connect( &m_autoScrollTimer, SIGNAL(timeout()), this, SLOT(slotNavNextVerse()) ); 64 connect( &m_autoScrollTimer, SIGNAL(timeout()), this, SLOT(slotNavNextVerse()) );
65 65
66 m_bibleIcon = new QPixmap( Resource::loadPixmap( "dagger/bibletext" ) ); 66 m_bibleIcon = new QPixmap( Resource::loadPixmap( "dagger/bibletext" ) );
67 m_commentaryIcon = new QPixmap( Resource::loadPixmap( "dagger/commentary" ) ); 67 m_commentaryIcon = new QPixmap( Resource::loadPixmap( "dagger/commentary" ) );
68 m_lexiconIcon = new QPixmap( Resource::loadPixmap( "dagger/lexicon" ) ); 68 m_lexiconIcon = new QPixmap( Resource::loadPixmap( "dagger/lexicon" ) );
69 69
70 // Load initial configuration 70 // Load initial configuration
71 QTimer::singleShot( 100, this, SLOT( initConfig() ) ); 71 QTimer::singleShot( 100, this, SLOT( initConfig() ) );
72} 72}
73 73
74MainWindow::~MainWindow() 74MainWindow::~MainWindow()
75{ 75{
76 // Re-enable screen blanking if it was disabled 76 // Re-enable screen blanking if it was disabled
77 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; 77 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
78 78
79 // Save Sword options 79 // Save Sword options
80 m_config.setGroup( "Sword" ); 80 m_config.setGroup( "Sword" );
81 m_config.writeEntry( "ModPath", m_modulePath ); 81 m_config.writeEntry( "ModPath", m_modulePath );
82 82
83 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) 83 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() )
84 m_config.writeEntry( a->text(), a->isOn() ); 84 m_config.writeEntry( a->text(), a->isOn() );
85 85
86 // Save configuration options 86 // Save configuration options
87 m_config.setGroup( "Config" ); 87 m_config.setGroup( "Config" );
88 m_config.writeEntry( "AlwaysOpenNew", m_alwaysOpenNew ); 88 m_config.writeEntry( "AlwaysOpenNew", m_alwaysOpenNew );
89 m_config.writeEntry( "AutoScroll", m_navToolbar->autoScrollRate() ); 89 m_config.writeEntry( "AutoScroll", m_navToolbar->autoScrollRate() );
90 m_config.writeEntry( "DisableScreenBlanking", m_disableScreenBlank ); 90 m_config.writeEntry( "DisableScreenBlanking", m_disableScreenBlank );
91 m_config.writeEntry( "CopyFormat", m_copyFormat ); 91 m_config.writeEntry( "CopyFormat", m_copyFormat );
92 m_config.writeEntry( "NavBar", m_actionViewNavToolbar->isOn() ); 92 m_config.writeEntry( "NavBar", m_actionViewNavToolbar->isOn() );
93 m_config.writeEntry( "NumVerses", m_numVerses ); 93 m_config.writeEntry( "NumVerses", m_numVerses );
94 m_config.writeEntry( "SearchBar", m_actionViewSearchToolbar->isOn() ); 94 m_config.writeEntry( "SearchBar", m_actionViewSearchToolbar->isOn() );
95 95
96 // Save text font 96 // Save text font
97 m_config.setGroup( "Font"); 97 m_config.setGroup( "Font");
98 m_config.writeEntry( "Family", m_textFont.family() ); 98 m_config.writeEntry( "Family", m_textFont.family() );
99 m_config.writeEntry( "Italic", m_textFont.italic() ); 99 m_config.writeEntry( "Italic", m_textFont.italic() );
100 m_config.writeEntry( "Size", m_textFont.pointSize() ); 100 m_config.writeEntry( "Size", m_textFont.pointSize() );
101 m_config.writeEntry( "Weight", m_textFont.weight() ); 101 m_config.writeEntry( "Weight", m_textFont.weight() );
102 102
103 // Save bookmarks 103 // Save bookmarks
104 m_config.setGroup( "Bookmarks"); 104 m_config.setGroup( "Bookmarks");
105 m_config.clearGroup(); 105 m_config.clearGroup();
106 int index = 3; 106 int index = 3;
107 int id = m_bookmarkMenu->idAt( index ); 107 int id = m_bookmarkMenu->idAt( index );
108 while ( id != -1 ) 108 while ( id != -1 )
109 { 109 {
110 QString bookmark = m_bookmarkMenu->text( id ); 110 QString bookmark = m_bookmarkMenu->text( id );
111 int pos = bookmark.find( " (" ); 111 int pos = bookmark.find( " (" );
112 QString key = bookmark.left( pos ); 112 QString key = bookmark.left( pos );
113 pos += 2; 113 pos += 2;
114 QString module = bookmark.mid( pos, bookmark.find( ")", pos ) - pos ); 114 QString module = bookmark.mid( pos, bookmark.find( ")", pos ) - pos );
115 QString modkey; 115 QString modkey;
116 modkey.sprintf( "%s/%s", module.latin1(), key.latin1() ); 116 modkey.sprintf( "%s/%s", module.latin1(), key.latin1() );
117 m_config.writeEntry( QString::number( index - 2 ), modkey ); 117 m_config.writeEntry( QString::number( index - 2 ), modkey );
118 118
119 ++index; 119 ++index;
120 id = m_bookmarkMenu->idAt( index ); 120 id = m_bookmarkMenu->idAt( index );
121 } 121 }
122 122
123 // Save opened modules 123 // Save opened modules
124 m_config.setGroup( "Session"); 124 m_config.setGroup( "Session");
125 m_config.clearGroup(); 125 m_config.clearGroup();
126 QObjectList *childlist = queryList( "TextWidget" ); 126 QObjectList *childlist = queryList( "TextWidget" );
127 QObjectListIt it( *childlist ); 127 QObjectListIt it( *childlist );
128 TextWidget *module; 128 TextWidget *module;
129 int count = 1; 129 int count = 1;
130 while ( ( module = reinterpret_cast<TextWidget *>(it.current()) ) != 0 ) 130 while ( ( module = reinterpret_cast<TextWidget *>(it.current()) ) != 0 )
131 { 131 {
132 QString modkey; 132 QString modkey;
133 modkey.sprintf( "%s/%s", module->getModuleName().latin1(), module->getAbbrevKey().latin1() ); 133 modkey.sprintf( "%s/%s", module->getModuleName().latin1(), module->getAbbrevKey().latin1() );
134 m_config.writeEntry( QString::number( count ), modkey ); 134 m_config.writeEntry( QString::number( count ), modkey );
135 ++count; 135 ++count;
136 ++it; 136 ++it;
137 } 137 }
138} 138}
139 139
140bool MainWindow::eventFilter( QObject *obj, QEvent *event ) 140bool MainWindow::eventFilter( QObject *obj, QEvent *event )
141{ 141{
142 if ( event->type() == QEvent::KeyPress ) 142 if ( event->type() == QEvent::KeyPress )
143 { 143 {
144 QKeyEvent *keyev = reinterpret_cast<QKeyEvent *>(event); 144 QKeyEvent *keyev = reinterpret_cast<QKeyEvent *>(event);
145 if ( keyev->key() == Key_Up ) 145 if ( keyev->key() == Key_Up )
146 { 146 {
147 slotNavPrevVerse(); 147 slotNavPrevVerse();
148 return true; 148 return true;
149 } 149 }
150 else if ( keyev->key() == Key_Down ) 150 else if ( keyev->key() == Key_Down )
151 { 151 {
152 slotNavNextVerse(); 152 slotNavNextVerse();
153 return true; 153 return true;
154 } 154 }
155 } 155 }
156 156
157 return QWidget::eventFilter( obj, event ); 157 return QWidget::eventFilter( obj, event );
158} 158}
159 159
160void MainWindow::initUI() 160void MainWindow::initUI()
161{ 161{
162 setCentralWidget( &m_tabs ); 162 setCentralWidget( &m_tabs );
163 m_tabs.installEventFilter( this ); 163 m_tabs.installEventFilter( this );
164 164
165 setToolBarsMovable( false ); 165 setToolBarsMovable( false );
166 m_barDock = new QToolBar( this ); 166 m_barDock = new QToolBar( this );
167 m_barDock->setHorizontalStretchable( true ); 167 m_barDock->setHorizontalStretchable( true );
168 168
169 m_menuBar = new QMenuBar( m_barDock ); 169 m_menuBar = new QMenuBar( m_barDock );
170 m_menuBar->setMargin( 0 ); 170 m_menuBar->setMargin( 0 );
171 171
172 // Allocate toolbars 172 // Allocate toolbars
173 m_navToolbar = new NavBar( this ); 173 m_navToolbar = new NavBar( this );
174 m_navToolbar->navBtnsEnable( false ); 174 m_navToolbar->navBtnsEnable( false );
175 connect( m_navToolbar, SIGNAL(prevPage()), this, SLOT(slotNavPrevPage()) ); 175 connect( m_navToolbar, SIGNAL(prevPage()), this, SLOT(slotNavPrevPage()) );
176 connect( m_navToolbar, SIGNAL(prevVerse()), this, SLOT(slotNavPrevVerse()) ); 176 connect( m_navToolbar, SIGNAL(prevVerse()), this, SLOT(slotNavPrevVerse()) );
177 connect( m_navToolbar, SIGNAL(keyChanged(const QString &)), this, SLOT(slotNavKeyChanged(const QString &)) ); 177 connect( m_navToolbar, SIGNAL(keyChanged(const QString &)), this, SLOT(slotNavKeyChanged(const QString &)) );
178 connect( m_navToolbar, SIGNAL(nextVerse()), this, SLOT(slotNavNextVerse()) ); 178 connect( m_navToolbar, SIGNAL(nextVerse()), this, SLOT(slotNavNextVerse()) );
179 connect( m_navToolbar, SIGNAL(nextPage()), this, SLOT(slotNavNextPage()) ); 179 connect( m_navToolbar, SIGNAL(nextPage()), this, SLOT(slotNavNextPage()) );
180 connect( m_navToolbar, SIGNAL(autoScroll(bool)), this, SLOT(slotNavAutoScroll(bool)) ); 180 connect( m_navToolbar, SIGNAL(autoScroll(bool)), this, SLOT(slotNavAutoScroll(bool)) );
181 connect( m_navToolbar, SIGNAL(scrollRateChanged(int)), this, SLOT(slotNavScrollRateChanged(int)) ); 181 connect( m_navToolbar, SIGNAL(scrollRateChanged(int)), this, SLOT(slotNavScrollRateChanged(int)) );
182 182
183 m_searchToolbar = new SearchBar( this ); 183 m_searchToolbar = new SearchBar( this );
184 connect( m_searchToolbar, SIGNAL(sigResultClicked(const QString &)), this, SLOT(slotSearchResultClicked(const QString &)) ); 184 connect( m_searchToolbar, SIGNAL(sigResultClicked(const QString &)), this, SLOT(slotSearchResultClicked(const QString &)) );
185 185
186 // Text menu 186 // Text menu
187 QPopupMenu *popup = new QPopupMenu( this ); 187 QPopupMenu *popup = new QPopupMenu( this );
188 188
189 QAction *a = new QAction( tr( "Open..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); 189 QAction *a = new QAction( tr( "Open..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 );
190 connect( a, SIGNAL(activated()), this, SLOT(slotTextOpen()) ); 190 connect( a, SIGNAL(activated()), this, SLOT(slotTextOpen()) );
191 a->addTo( popup ); 191 a->addTo( popup );
192 192
193 m_actionTextClose = new QAction( tr( "Close" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); 193 m_actionTextClose = new QAction( tr( "Close" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 );
194 connect( m_actionTextClose, SIGNAL(activated()), this, SLOT(slotTextClose()) ); 194 connect( m_actionTextClose, SIGNAL(activated()), this, SLOT(slotTextClose()) );
195 m_actionTextClose->addTo( popup ); 195 m_actionTextClose->addTo( popup );
196 196
197 popup->insertSeparator(); 197 popup->insertSeparator();
198 198
199 // TODO - need to implent 199 // TODO - need to implent
200 a = new QAction( tr( "Install..." ), Resource::loadPixmap( "install" ), QString::null, 0, this, 0 ); 200 a = new QAction( tr( "Install..." ), Resource::loadPixmap( "install" ), QString::null, 0, this, 0 );
201 a->setEnabled( false ); 201 a->setEnabled( false );
202 connect( a, SIGNAL(activated()), this, SLOT(slotTextInstall()) ); 202 connect( a, SIGNAL(activated()), this, SLOT(slotTextInstall()) );
203 a->addTo( popup ); 203 a->addTo( popup );
204 204
205 m_menuBar->insertItem( tr( "Text" ), popup ); 205 m_menuBar->insertItem( tr( "Text" ), popup );
206 206
207 // Edit menu 207 // Edit menu
208 popup = new QPopupMenu( this ); 208 popup = new QPopupMenu( this );
209 209
210 m_actionEditCopy = new QAction( tr( "Copy" ), Resource::loadPixmap( "copy" ), QString::null, 0, this, 0 ); 210 m_actionEditCopy = new QAction( tr( "Copy" ), Resource::loadPixmap( "copy" ), QString::null, 0, this, 0 );
211 connect( m_actionEditCopy, SIGNAL(activated()), this, SLOT(slotEditCopy()) ); 211 connect( m_actionEditCopy, SIGNAL(activated()), this, SLOT(slotEditCopy()) );
212 m_actionEditCopy->addTo( popup ); 212 m_actionEditCopy->addTo( popup );
213 213
214 popup->insertSeparator(); 214 popup->insertSeparator();
215 215
216 a = new QAction( tr( "Configure..." ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 ); 216 a = new QAction( tr( "Configure..." ), Resource::loadPixmap( "SettingsIcon" ), QString::null, 0, this, 0 );
217 connect( a, SIGNAL(activated()), this, SLOT(slotEditConfigure()) ); 217 connect( a, SIGNAL(activated()), this, SLOT(slotEditConfigure()) );
218 a->addTo( popup ); 218 a->addTo( popup );
219 219
220 m_menuBar->insertItem( tr( "Edit" ), popup ); 220 m_menuBar->insertItem( tr( "Edit" ), popup );
221 221
222 // Bookmark menu 222 // Bookmark menu
223 m_bookmarkMenu = new QPopupMenu( this ); 223 m_bookmarkMenu = new QPopupMenu( this );
224 224
225 m_actionBookmarkAdd = new QAction( tr( "Add" ), Resource::loadPixmap( "dagger/bookmarkadd" ), QString::null, 0, this, 0 ); 225 m_actionBookmarkAdd = new QAction( tr( "Add" ), Resource::loadPixmap( "dagger/bookmarkadd" ), QString::null, 0, this, 0 );
226 connect( m_actionBookmarkAdd, SIGNAL(activated()), this, SLOT(slotBookmarkAdd()) ); 226 connect( m_actionBookmarkAdd, SIGNAL(activated()), this, SLOT(slotBookmarkAdd()) );
227 m_actionBookmarkAdd->addTo( m_bookmarkMenu ); 227 m_actionBookmarkAdd->addTo( m_bookmarkMenu );
228 228
229 m_actionBookmarkRemove = new QAction( tr( "Remove" ), Resource::loadPixmap( "dagger/bookmarkremove" ), QString::null, 0, this, 0 ); 229 m_actionBookmarkRemove = new QAction( tr( "Remove" ), Resource::loadPixmap( "dagger/bookmarkremove" ), QString::null, 0, this, 0 );
230 connect( m_actionBookmarkRemove, SIGNAL(activated()), this, SLOT(slotBookmarkRemove()) ); 230 connect( m_actionBookmarkRemove, SIGNAL(activated()), this, SLOT(slotBookmarkRemove()) );
231 m_actionBookmarkRemove->addTo( m_bookmarkMenu ); 231 m_actionBookmarkRemove->addTo( m_bookmarkMenu );
232 232
233 m_bookmarkMenu->insertSeparator(); 233 m_bookmarkMenu->insertSeparator();
234 234
235 m_menuBar->insertItem( tr( "Bookmark" ), m_bookmarkMenu ); 235 m_menuBar->insertItem( tr( "Bookmark" ), m_bookmarkMenu );
236 236
237 // View menu 237 // View menu
238 popup = new QPopupMenu( this ); 238 popup = new QPopupMenu( this );
239 239
240 // Retrieve list of available Sword module options (e.g. footnotes, Strong's numbers, etc.) 240 // Retrieve list of available Sword module options (e.g. footnotes, Strong's numbers, etc.)
241 for ( a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) 241 for ( a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() )
242 { 242 {
243 a->setToggleAction( true ); 243 a->setToggleAction( true );
244 connect( a, SIGNAL(toggled(bool)), this, SLOT(slotViewSwordOption(bool)) ); 244 connect( a, SIGNAL(toggled(bool)), this, SLOT(slotViewSwordOption(bool)) );
245 a->addTo( popup ); 245 a->addTo( popup );
246 } 246 }
247 247
248 popup->insertSeparator(); 248 popup->insertSeparator();
249 249
250 m_actionViewNavToolbar = new QAction( tr( "Navigation toolbar" ), QString::null, 0, this, 0 ); 250 m_actionViewNavToolbar = new QAction( tr( "Navigation toolbar" ), QString::null, 0, this, 0 );
251 m_actionViewNavToolbar->setToggleAction( true ); 251 m_actionViewNavToolbar->setToggleAction( true );
252 connect( m_actionViewNavToolbar, SIGNAL(toggled(bool)), this, SLOT(slotViewNavToolbar(bool)) ); 252 connect( m_actionViewNavToolbar, SIGNAL(toggled(bool)), this, SLOT(slotViewNavToolbar(bool)) );
253 m_actionViewNavToolbar->addTo( popup ); 253 m_actionViewNavToolbar->addTo( popup );
254 254
255 m_actionViewSearchToolbar = new QAction( tr( "Search toolbar" ), QString::null, 0, this, 0 ); 255 m_actionViewSearchToolbar = new QAction( tr( "Search toolbar" ), QString::null, 0, this, 0 );
256 m_actionViewSearchToolbar->setToggleAction( true ); 256 m_actionViewSearchToolbar->setToggleAction( true );
257 connect( m_actionViewSearchToolbar, SIGNAL(toggled(bool)), this, SLOT(slotViewSearchToolbar(bool)) ); 257 connect( m_actionViewSearchToolbar, SIGNAL(toggled(bool)), this, SLOT(slotViewSearchToolbar(bool)) );
258 m_actionViewSearchToolbar->addTo( popup ); 258 m_actionViewSearchToolbar->addTo( popup );
259 259
260 m_menuBar->insertItem( tr( "View" ), popup ); 260 m_menuBar->insertItem( tr( "View" ), popup );
261} 261}
262 262
263void MainWindow::openModule( const QString &modulename, const QString &key ) 263void MainWindow::openModule( const QString &modulename, const QString &key )
264{ 264{
265 sword::SWModule *module = m_swordMgr->Modules[ modulename.latin1() ]; 265 sword::SWModule *module = m_swordMgr->Modules[ modulename.latin1() ];
266 if ( module ) 266 if ( module )
267 { 267 {
268 TextWidget *tw = 0x0; 268 TextWidget *tw = 0x0;
269 269
270 if ( !m_alwaysOpenNew ) 270 if ( !m_alwaysOpenNew )
271 { 271 {
272 // Try to find if the module is already opened, if so will use that TextWidget 272 // Try to find if the module is already opened, if so will use that TextWidget
273 QObjectList *childlist = queryList( "TextWidget" ); 273 QObjectList *childlist = queryList( "TextWidget" );
274 QObjectListIt it( *childlist ); 274 QObjectListIt it( *childlist );
275 while ( ( tw = reinterpret_cast<TextWidget *>(it.current()) ) != 0 && 275 while ( ( tw = reinterpret_cast<TextWidget *>(it.current()) ) != 0 &&
276 tw->getModuleName() != modulename ) 276 tw->getModuleName() != modulename )
277 ++it; 277 ++it;
278 if ( tw && tw->getModuleName() == modulename ) 278 if ( tw && tw->getModuleName() == modulename )
279 { 279 {
280 // Set key if one is present 280 // Set key if one is present
281 if ( !key.isNull() ) 281 if ( !key.isNull() )
282 tw->setKey( key ); 282 tw->setKey( key );
283 283
284 // Raise tab 284 // Raise tab
285 m_tabs.setCurrentTab( tw ); 285 m_tabs.setCurrentTab( tw );
286 } 286 }
287 } 287 }
288 288
289 if ( m_alwaysOpenNew || !tw ) 289 if ( m_alwaysOpenNew || !tw )
290 { 290 {
291 // Open module in new tab 291 // Open module in new tab
292 QString icon; 292 QString icon;
293 QString type = module->Type(); 293 QString type = module->Type();
294 294
295 if ( type == "Biblical Texts" ) 295 if ( type == "Biblical Texts" )
296 icon = "dagger/bibletext"; 296 icon = "dagger/bibletext";
297 else if ( type == "Commentaries" ) 297 else if ( type == "Commentaries" )
298 icon = "dagger/commentary"; 298 icon = "dagger/commentary";
299 else if ( type == "Lexicons / Dictionaries" ) 299 else if ( type == "Lexicons / Dictionaries" )
300 icon = "dagger/lexicon"; 300 icon = "dagger/lexicon";
301 301
302 tw = new TextWidget( this, module, m_numVerses, &m_textFont ); 302 tw = new TextWidget( this, module, m_numVerses, &m_textFont );
303 connect( tw, SIGNAL(sigRefClicked(const QString &)), 303 connect( tw, SIGNAL(sigRefClicked(const QString &)),
304 this, SLOT(slotTextRefClicked(const QString &)) ); 304 this, SLOT(slotTextRefClicked(const QString &)) );
305 connect( this, SIGNAL(sigNumVersesChanged(int)), tw, SLOT(slotNumVersesChanged(int)) ); 305 connect( this, SIGNAL(sigNumVersesChanged(int)), tw, SLOT(slotNumVersesChanged(int)) );
306 connect( this, SIGNAL(sigFontChanged(const QFont *)), tw, SLOT(slotFontChanged(const QFont *)) ); 306 connect( this, SIGNAL(sigFontChanged(const QFont *)), tw, SLOT(slotFontChanged(const QFont *)) );
307 connect( this, SIGNAL(sigOptionChanged()), tw, SLOT(slotOptionChanged()) ); 307 connect( this, SIGNAL(sigOptionChanged()), tw, SLOT(slotOptionChanged()) );
308 308
309 m_tabs.addTab( tw, icon, modulename ); 309 m_tabs.addTab( tw, icon, modulename );
310 310
311 m_actionTextClose->setEnabled( true ); 311 m_actionTextClose->setEnabled( true );
312 m_actionEditCopy->setEnabled( true ); 312 m_actionEditCopy->setEnabled( true );
313 m_actionBookmarkAdd->setEnabled( true ); 313 m_actionBookmarkAdd->setEnabled( true );
314 314
315 // Set key if one is present 315 // Set key if one is present
316 if ( !key.isNull() ) 316 if ( !key.isNull() )
317 tw->setKey( key ); 317 tw->setKey( key );
318 } 318 }
319 } 319 }
320} 320}
321 321
322int MainWindow::findBookmark( const QString &bookmark ) 322int MainWindow::findBookmark( const QString &bookmark )
323{ 323{
324 int index = 3; 324 int index = 3;
325 int id = m_bookmarkMenu->idAt( index ); 325 int id = m_bookmarkMenu->idAt( index );
326 while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) ) 326 while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) )
327 { 327 {
328 ++index; 328 ++index;
329 id = m_bookmarkMenu->idAt( index ); 329 id = m_bookmarkMenu->idAt( index );
330 } 330 }
331 331
332 return id; 332 return id;
333} 333}
334 334
335void MainWindow::enableScreenBlanking( bool enable ) 335void MainWindow::enableScreenBlanking( bool enable )
336{ 336{
337 enable ? QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable 337 enable ? QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable
338 : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; 338 : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend;
339} 339}
340 340
341void MainWindow::initConfig() 341void MainWindow::initConfig()
342{ 342{
343 bool show; 343 bool show;
344 344
345 m_config.setGroup( "Sword" ); 345 m_config.setGroup( "Sword" );
346 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) 346 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() )
347 { 347 {
348 show = m_config.readBoolEntry( a->text(), false ); 348 show = m_config.readBoolEntry( a->text(), false );
349 a->setOn( show ); 349 a->setOn( show );
350 m_swordMgr->setGlobalOption ( a->text(), show ? "On" : "Off" ); 350 m_swordMgr->setGlobalOption ( a->text(), show ? "On" : "Off" );
351 } 351 }
352 352
353 // Display/hide toolbars based on last run 353 // Display/hide toolbars based on last run
354 m_config.setGroup( "Config" ); 354 m_config.setGroup( "Config" );
355 355
356 m_alwaysOpenNew = m_config.readBoolEntry( "AlwaysOpenNew", false ); 356 m_alwaysOpenNew = m_config.readBoolEntry( "AlwaysOpenNew", false );
357 m_navToolbar->setAutoScrollRate( m_config.readNumEntry( "AutoScroll", 50 ) ); 357 m_navToolbar->setAutoScrollRate( m_config.readNumEntry( "AutoScroll", 50 ) );
358 m_disableScreenBlank = m_config.readBoolEntry( "DisableScreenBlanking", false ); 358 m_disableScreenBlank = m_config.readBoolEntry( "DisableScreenBlanking", false );
359 enableScreenBlanking( !m_disableScreenBlank ); 359 enableScreenBlanking( !m_disableScreenBlank );
360 m_copyFormat = m_config.readNumEntry( "CopyFormat", 0 ); 360 m_copyFormat = m_config.readNumEntry( "CopyFormat", 0 );
361 361
362 show = m_config.readBoolEntry( "NavBar", false ); 362 show = m_config.readBoolEntry( "NavBar", false );
363 m_actionViewNavToolbar->setOn( show ); 363 m_actionViewNavToolbar->setOn( show );
364 slotViewNavToolbar( show ); 364 slotViewNavToolbar( show );
365 365
366 m_numVerses = m_config.readNumEntry( "NumVerses", 5 ); 366 m_numVerses = m_config.readNumEntry( "NumVerses", 5 );
367 367
368 show = m_config.readBoolEntry( "SearchBar", false ); 368 show = m_config.readBoolEntry( "SearchBar", false );
369 m_actionViewSearchToolbar->setOn( show ); 369 m_actionViewSearchToolbar->setOn( show );
370 slotViewSearchToolbar( show ); 370 slotViewSearchToolbar( show );
371 371
372 // Set text font 372 // Set text font
373 m_config.setGroup( "Font" ); 373 m_config.setGroup( "Font" );
374 QString fontFamily = m_config.readEntry( "Family", QString::null ); 374 QString fontFamily = m_config.readEntry( "Family", QString::null );
375 !fontFamily.isNull() ? m_textFont = QFont( fontFamily, 375 !fontFamily.isNull() ? m_textFont = QFont( fontFamily,
376 m_config.readNumEntry( "Size", -1 ), 376 m_config.readNumEntry( "Size", -1 ),
377 m_config.readNumEntry( "Weight", QFont::Normal ), 377 m_config.readNumEntry( "Weight", QFont::Normal ),
378 m_config.readBoolEntry( "Italic", false ) ) 378 m_config.readBoolEntry( "Italic", false ) )
379 : m_textFont = font(); // If font is not configured, set to default widget font 379 : m_textFont = font(); // If font is not configured, set to default widget font
380 380
381 // Load bookmarks 381 // Load bookmarks
382 m_config.setGroup( "Bookmarks"); 382 m_config.setGroup( "Bookmarks");
383 int count = 1; 383 int count = 1;
384 QString key = m_config.readEntry( QString::number( count ), QString::null ); 384 QString key = m_config.readEntry( QString::number( count ), QString::null );
385 while ( !key.isNull() ) 385 while ( !key.isNull() )
386 { 386 {
387 int pos = key.find( "/" ); 387 int pos = key.find( "/" );
388 if ( pos > -1 ) 388 if ( pos > -1 )
389 { 389 {
390 QString bookmark; 390 QString bookmark;
391 bookmark.sprintf( "%s (%s)", key.right( key.length() - ( pos + 1 ) ).latin1(), 391 bookmark.sprintf( "%s (%s)", key.right( key.length() - ( pos + 1 ) ).latin1(),
392 key.left( pos ).latin1() ); 392 key.left( pos ).latin1() );
393 QAction *a = new QAction( bookmark, QString::null, 0, this, 0 ); 393 QAction *a = new QAction( bookmark, QString::null, 0, this, 0 );
394 a->addTo( m_bookmarkMenu ); 394 a->addTo( m_bookmarkMenu );
395 connect( a, SIGNAL(activated()), this, SLOT(slotBookmarkSelected()) ); 395 connect( a, SIGNAL(activated()), this, SLOT(slotBookmarkSelected()) );
396 } 396 }
397 397
398 ++count; 398 ++count;
399 key = m_config.readEntry( QString::number( count ), QString::null ); 399 key = m_config.readEntry( QString::number( count ), QString::null );
400 } 400 }
401 m_actionBookmarkRemove->setEnabled( count > 1 ); 401 m_actionBookmarkRemove->setEnabled( count > 1 );
402 402
403 // Load opened modules 403 // Load opened modules
404 m_config.setGroup( "Session"); 404 m_config.setGroup( "Session");
405 QString first; 405 QString first;
406 count = 1; 406 count = 1;
407 key = m_config.readEntry( QString::number( count ), QString::null ); 407 key = m_config.readEntry( QString::number( count ), QString::null );
408 while ( !key.isNull() ) 408 while ( !key.isNull() )
409 { 409 {
410 int pos = key.find( "/" ); 410 int pos = key.find( "/" );
411 if ( pos > -1 ) 411 if ( pos > -1 )
412 { 412 {
413 if ( count == 1 ) 413 if ( count == 1 )
414 first = key.left( pos ); 414 first = key.left( pos );
415 openModule( key.left( pos ), key.right( key.length() - ( pos + 1 ) ) ); 415 openModule( key.left( pos ), key.right( key.length() - ( pos + 1 ) ) );
416 } 416 }
417 417
418 ++count; 418 ++count;
419 key = m_config.readEntry( QString::number( count ), QString::null ); 419 key = m_config.readEntry( QString::number( count ), QString::null );
420 } 420 }
421 m_tabs.setCurrentTab( first ); 421 m_tabs.setCurrentTab( first );
422 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); 422 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget());
423 if ( text ) 423 if ( text )
424 { 424 {
425 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 425 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
426 m_navToolbar->setKey( text->getAbbrevKey() ); 426 m_navToolbar->setKey( text->getAbbrevKey() );
427 } 427 }
428 m_actionTextClose->setEnabled( count > 1 ); 428 m_actionTextClose->setEnabled( count > 1 );
429 m_actionEditCopy->setEnabled( count > 1 ); 429 m_actionEditCopy->setEnabled( count > 1 );
430} 430}
431 431
432void MainWindow::slotTextDisplayed( QWidget *textWidget ) 432void MainWindow::slotTextDisplayed( QWidget *textWidget )
433{ 433{
434 TextWidget *text = reinterpret_cast<TextWidget *>(textWidget); 434 TextWidget *text = reinterpret_cast<TextWidget *>(textWidget);
435 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 435 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
436 436
437 m_navToolbar->setKey( text->getAbbrevKey() ); 437 m_navToolbar->setKey( text->getAbbrevKey() );
438 m_navToolbar->navBtnsEnable( text->isBibleText() ); 438 m_navToolbar->navBtnsEnable( text->isBibleText() );
439 439