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,183 +1,183 @@
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 );