summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/dagger/ChangeLog7
-rw-r--r--noncore/apps/dagger/README2
-rw-r--r--noncore/apps/dagger/TODO6
-rw-r--r--noncore/apps/dagger/mainwindow.cpp17
-rw-r--r--noncore/apps/dagger/mainwindow.h4
-rw-r--r--noncore/apps/dagger/navbar.cpp16
-rw-r--r--noncore/apps/dagger/navbar.h8
-rw-r--r--noncore/apps/dagger/opie-dagger.control4
-rw-r--r--noncore/apps/dagger/searchbar.cpp8
-rw-r--r--noncore/apps/dagger/textwidget.cpp8
-rw-r--r--noncore/apps/dagger/textwidget.h4
11 files changed, 50 insertions, 34 deletions
diff --git a/noncore/apps/dagger/ChangeLog b/noncore/apps/dagger/ChangeLog
index feb9a19..108419e 100644
--- a/noncore/apps/dagger/ChangeLog
+++ b/noncore/apps/dagger/ChangeLog
@@ -1,4 +1,11 @@
12004-04-22 Dan Williams <drw@handhelds.org>
2
3 * Released version 0.9.1
4 * Fixed the disabling of screen blanking
5 * Implement previous/next page scrolling
6 * Animate search OWait
7
12004-04-06 Dan Williams <drw@handhelds.org> 82004-04-06 Dan Williams <drw@handhelds.org>
2 9
3 * Released version 0.9.0 10 * Released version 0.9.0
4 * Initial check-in of new application 11 * Initial check-in of new application
diff --git a/noncore/apps/dagger/README b/noncore/apps/dagger/README
index 4a4bb61..00e9eed 100644
--- a/noncore/apps/dagger/README
+++ b/noncore/apps/dagger/README
@@ -1,21 +1,21 @@
1/************************************************************************ 1/************************************************************************
2/* 2/*
3/* Opie - Dagger 3/* Opie - Dagger
4/* =============== 4/* ===============
5/* Version 0.9.0 5/* Version 0.9.1
6/* 6/*
7/* A Bible study/reader application 7/* A Bible study/reader application
8/* 8/*
9/************************************************************************ 9/************************************************************************
10 10
11--------------------------------------------- 11---------------------------------------------
12 Release Notes for Opie-Dagger - April, 2004 12 Release Notes for Opie-Dagger - April, 2004
13--------------------------------------------- 13---------------------------------------------
14 14
15====================== 15======================
16= To-do = 16= To-do =
17====================== 17======================
18 18
19- See $OPIEDIR/noncore/apps/dagger/TODO for more info. 19- See $OPIEDIR/noncore/apps/dagger/TODO for more info.
20 20
21====================== 21======================
diff --git a/noncore/apps/dagger/TODO b/noncore/apps/dagger/TODO
index 2548dd3..1530bd6 100644
--- a/noncore/apps/dagger/TODO
+++ b/noncore/apps/dagger/TODO
@@ -1,27 +1,25 @@
1/************************************************************************ 1/************************************************************************
2/* 2/*
3/* Opie - Dagger 3/* Opie - Dagger
4/* =============== 4/* ===============
5/* Version 0.9.0 5/* Version 0.9.1
6/* 6/*
7/* A Bible study/reader application 7/* A Bible study/reader application
8/* 8/*
9/************************************************************************ 9/************************************************************************
10 10
11------------------------------------ 11------------------------------------
12To-do for Opie-Dagger - April, 2004 12To-do for Opie-Dagger - April, 2004
13------------------------------------ 13------------------------------------
14 14
15====================== 15======================
16= Current release = 16= Current release =
17====================== 17======================
18 18
191. Implement search function callback to animate OWait dialog 191. Implement module installation
202. Implement previous/next page scrolling
213. Fix disablement of screen blanking
22 20
23====================== 21======================
24= Future releases = 22= Future releases =
25====================== 23======================
26 24
271. Margin notes \ No newline at end of file 251. Margin notes \ No newline at end of file
diff --git a/noncore/apps/dagger/mainwindow.cpp b/noncore/apps/dagger/mainwindow.cpp
index ace8f36..b2e00e8 100644
--- a/noncore/apps/dagger/mainwindow.cpp
+++ b/noncore/apps/dagger/mainwindow.cpp
@@ -60,32 +60,35 @@ MainWindow::MainWindow( QWidget *parent, const char *name, WFlags /*fl*/ )
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
77 QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable;
78
76 // Save Sword options 79 // Save Sword options
77 m_config.setGroup( "Sword" ); 80 m_config.setGroup( "Sword" );
78 m_config.writeEntry( "ModPath", m_modulePath ); 81 m_config.writeEntry( "ModPath", m_modulePath );
79 82
80 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) 83 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() )
81 m_config.writeEntry( a->text(), a->isOn() ); 84 m_config.writeEntry( a->text(), a->isOn() );
82 85
83 // Save configuration options 86 // Save configuration options
84 m_config.setGroup( "Config" ); 87 m_config.setGroup( "Config" );
85 m_config.writeEntry( "AlwaysOpenNew", m_alwaysOpenNew ); 88 m_config.writeEntry( "AlwaysOpenNew", m_alwaysOpenNew );
86 m_config.writeEntry( "AutoScroll", m_navToolbar->autoScrollRate() ); 89 m_config.writeEntry( "AutoScroll", m_navToolbar->autoScrollRate() );
87 m_config.writeEntry( "DisableScreenBlanking", m_disableScreenBlank ); 90 m_config.writeEntry( "DisableScreenBlanking", m_disableScreenBlank );
88 m_config.writeEntry( "CopyFormat", m_copyFormat ); 91 m_config.writeEntry( "CopyFormat", m_copyFormat );
89 m_config.writeEntry( "NavBar", m_actionViewNavToolbar->isOn() ); 92 m_config.writeEntry( "NavBar", m_actionViewNavToolbar->isOn() );
90 m_config.writeEntry( "NumVerses", m_numVerses ); 93 m_config.writeEntry( "NumVerses", m_numVerses );
91 m_config.writeEntry( "SearchBar", m_actionViewSearchToolbar->isOn() ); 94 m_config.writeEntry( "SearchBar", m_actionViewSearchToolbar->isOn() );
@@ -156,37 +159,37 @@ bool MainWindow::eventFilter( QObject *obj, QEvent *event )
156 159
157void MainWindow::initUI() 160void MainWindow::initUI()
158{ 161{
159 setCentralWidget( &m_tabs ); 162 setCentralWidget( &m_tabs );
160 m_tabs.installEventFilter( this ); 163 m_tabs.installEventFilter( this );
161 164
162 setToolBarsMovable( false ); 165 setToolBarsMovable( false );
163 m_barDock = new QToolBar( this ); 166 m_barDock = new QToolBar( this );
164 m_barDock->setHorizontalStretchable( true ); 167 m_barDock->setHorizontalStretchable( true );
165 168
166 m_menuBar = new QMenuBar( m_barDock ); 169 m_menuBar = new QMenuBar( m_barDock );
167 m_menuBar->setMargin( 0 ); 170 m_menuBar->setMargin( 0 );
168 171
169 // Allocate toolbars 172 // Allocate toolbars
170 m_navToolbar = new NavBar( this ); 173 m_navToolbar = new NavBar( this );
171 m_navToolbar->navBtnsEnable( false ); 174 m_navToolbar->navBtnsEnable( false );
172 connect( m_navToolbar, SIGNAL(prevChapter()), this, SLOT(slotNavPrevChapter()) ); 175 connect( m_navToolbar, SIGNAL(prevPage()), this, SLOT(slotNavPrevPage()) );
173 connect( m_navToolbar, SIGNAL(prevVerse()), this, SLOT(slotNavPrevVerse()) ); 176 connect( m_navToolbar, SIGNAL(prevVerse()), this, SLOT(slotNavPrevVerse()) );
174 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 &)) );
175 connect( m_navToolbar, SIGNAL(nextVerse()), this, SLOT(slotNavNextVerse()) ); 178 connect( m_navToolbar, SIGNAL(nextVerse()), this, SLOT(slotNavNextVerse()) );
176 connect( m_navToolbar, SIGNAL(nextChapter()), this, SLOT(slotNavNextChapter()) ); 179 connect( m_navToolbar, SIGNAL(nextPage()), this, SLOT(slotNavNextPage()) );
177 connect( m_navToolbar, SIGNAL(autoScroll(bool)), this, SLOT(slotNavAutoScroll(bool)) ); 180 connect( m_navToolbar, SIGNAL(autoScroll(bool)), this, SLOT(slotNavAutoScroll(bool)) );
178 connect( m_navToolbar, SIGNAL(scrollRateChanged(int)), this, SLOT(slotNavScrollRateChanged(int)) ); 181 connect( m_navToolbar, SIGNAL(scrollRateChanged(int)), this, SLOT(slotNavScrollRateChanged(int)) );
179 182
180 m_searchToolbar = new SearchBar( this ); 183 m_searchToolbar = new SearchBar( this );
181 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 &)) );
182 185
183 // Text menu 186 // Text menu
184 QPopupMenu *popup = new QPopupMenu( this ); 187 QPopupMenu *popup = new QPopupMenu( this );
185 188
186 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 );
187 connect( a, SIGNAL(activated()), this, SLOT(slotTextOpen()) ); 190 connect( a, SIGNAL(activated()), this, SLOT(slotTextOpen()) );
188 a->addTo( popup ); 191 a->addTo( popup );
189 192
190 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 );
191 connect( m_actionTextClose, SIGNAL(activated()), this, SLOT(slotTextClose()) ); 194 connect( m_actionTextClose, SIGNAL(activated()), this, SLOT(slotTextClose()) );
192 m_actionTextClose->addTo( popup ); 195 m_actionTextClose->addTo( popup );
@@ -319,33 +322,33 @@ void MainWindow::openModule( const QString &modulename, const QString &key )
319int MainWindow::findBookmark( const QString &bookmark ) 322int MainWindow::findBookmark( const QString &bookmark )
320{ 323{
321 int index = 3; 324 int index = 3;
322 int id = m_bookmarkMenu->idAt( index ); 325 int id = m_bookmarkMenu->idAt( index );
323 while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) ) 326 while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) )
324 { 327 {
325 ++index; 328 ++index;
326 id = m_bookmarkMenu->idAt( index ); 329 id = m_bookmarkMenu->idAt( index );
327 } 330 }
328 331
329 return id; 332 return id;
330} 333}
331 334
332void MainWindow::enableScreenBlanking( bool enable ) 335void MainWindow::enableScreenBlanking( bool enable )
333{ 336{
334 enable ? QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable 337 enable ? QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable
335 : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; 338 : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend;
336} 339}
337 340
338void MainWindow::initConfig() 341void MainWindow::initConfig()
339{ 342{
340 bool show; 343 bool show;
341 344
342 m_config.setGroup( "Sword" ); 345 m_config.setGroup( "Sword" );
343 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) 346 for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() )
344 { 347 {
345 show = m_config.readBoolEntry( a->text(), false ); 348 show = m_config.readBoolEntry( a->text(), false );
346 a->setOn( show ); 349 a->setOn( show );
347 m_swordMgr->setGlobalOption ( a->text(), show ? "On" : "Off" ); 350 m_swordMgr->setGlobalOption ( a->text(), show ? "On" : "Off" );
348 } 351 }
349 352
350 // Display/hide toolbars based on last run 353 // Display/hide toolbars based on last run
351 m_config.setGroup( "Config" ); 354 m_config.setGroup( "Config" );
@@ -584,38 +587,38 @@ void MainWindow::slotViewSwordOption( bool enabled )
584 587
585 emit sigOptionChanged(); 588 emit sigOptionChanged();
586} 589}
587 590
588void MainWindow::slotViewNavToolbar( bool enabled ) 591void MainWindow::slotViewNavToolbar( bool enabled )
589{ 592{
590 enabled ? m_navToolbar->show() 593 enabled ? m_navToolbar->show()
591 : m_navToolbar->hide(); 594 : m_navToolbar->hide();
592} 595}
593 596
594void MainWindow::slotViewSearchToolbar( bool enabled ) 597void MainWindow::slotViewSearchToolbar( bool enabled )
595{ 598{
596 enabled ? m_searchToolbar->show() 599 enabled ? m_searchToolbar->show()
597 : m_searchToolbar->hide(); 600 : m_searchToolbar->hide();
598} 601}
599 602
600void MainWindow::slotNavPrevChapter() 603void MainWindow::slotNavPrevPage()
601{ 604{
602 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); 605 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget());
603 if ( text ) 606 if ( text )
604 { 607 {
605 text->prevChapter(); 608 text->prevPage();
606 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 609 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
607 m_navToolbar->setKey( text->getAbbrevKey() ); 610 m_navToolbar->setKey( text->getAbbrevKey() );
608 } 611 }
609} 612}
610 613
611void MainWindow::slotNavPrevVerse() 614void MainWindow::slotNavPrevVerse()
612{ 615{
613 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); 616 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget());
614 if ( text ) 617 if ( text )
615 { 618 {
616 text->prevVerse(); 619 text->prevVerse();
617 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 620 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
618 m_navToolbar->setKey( text->getAbbrevKey() ); 621 m_navToolbar->setKey( text->getAbbrevKey() );
619 } 622 }
620} 623}
621 624
@@ -630,38 +633,38 @@ void MainWindow::slotNavKeyChanged( const QString &newKey )
630 text->setKey( key ); 633 text->setKey( key );
631 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 634 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
632 } 635 }
633} 636}
634 637
635void MainWindow::slotNavNextVerse() 638void MainWindow::slotNavNextVerse()
636{ 639{
637 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); 640 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget());
638 if ( text ) 641 if ( text )
639 { 642 {
640 text->nextVerse(); 643 text->nextVerse();
641 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 644 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
642 m_navToolbar->setKey( text->getAbbrevKey() ); 645 m_navToolbar->setKey( text->getAbbrevKey() );
643 } 646 }
644} 647}
645 648
646void MainWindow::slotNavNextChapter() 649void MainWindow::slotNavNextPage()
647{ 650{
648 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); 651 TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget());
649 if ( text ) 652 if ( text )
650 { 653 {
651 text->nextChapter(); 654 text->nextPage();
652 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); 655 setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) );
653 m_navToolbar->setKey( text->getAbbrevKey() ); 656 m_navToolbar->setKey( text->getAbbrevKey() );
654 } 657 }
655} 658}
656 659
657void MainWindow::slotNavAutoScroll( bool enabled ) 660void MainWindow::slotNavAutoScroll( bool enabled )
658{ 661{
659 m_autoScrollTimer.stop(); 662 m_autoScrollTimer.stop();
660 663
661 if ( enabled ) 664 if ( enabled )
662 m_autoScrollTimer.start( m_navToolbar->autoScrollRate() * 100 ); 665 m_autoScrollTimer.start( m_navToolbar->autoScrollRate() * 100 );
663} 666}
664 667
665void MainWindow::slotNavScrollRateChanged( int newRate ) 668void MainWindow::slotNavScrollRateChanged( int newRate )
666{ 669{
667 if ( m_autoScrollTimer.isActive() ) 670 if ( m_autoScrollTimer.isActive() )
diff --git a/noncore/apps/dagger/mainwindow.h b/noncore/apps/dagger/mainwindow.h
index 0c7f3c8..b114e33 100644
--- a/noncore/apps/dagger/mainwindow.h
+++ b/noncore/apps/dagger/mainwindow.h
@@ -98,37 +98,37 @@ private slots:
98 void slotTextDisplayed( QWidget *textWidget ); 98 void slotTextDisplayed( QWidget *textWidget );
99 99
100 // Menubar/toolbar action slots 100 // Menubar/toolbar action slots
101 void slotTextOpen(); 101 void slotTextOpen();
102 void slotTextClose(); 102 void slotTextClose();
103 void slotTextInstall(); 103 void slotTextInstall();
104 void slotEditCopy(); 104 void slotEditCopy();
105 void slotEditConfigure(); 105 void slotEditConfigure();
106 void slotBookmarkAdd(); 106 void slotBookmarkAdd();
107 void slotBookmarkRemove(); 107 void slotBookmarkRemove();
108 void slotBookmarkSelected(); 108 void slotBookmarkSelected();
109 void slotViewSwordOption( bool enabled ); 109 void slotViewSwordOption( bool enabled );
110 void slotViewNavToolbar( bool enabled ); 110 void slotViewNavToolbar( bool enabled );
111 void slotViewSearchToolbar( bool enabled ); 111 void slotViewSearchToolbar( bool enabled );
112 112
113 // Navigation toolbar slots 113 // Navigation toolbar slots
114 void slotNavPrevChapter(); 114 void slotNavPrevPage();
115 void slotNavPrevVerse(); 115 void slotNavPrevVerse();
116 void slotNavKeyChanged( const QString &newKey ); 116 void slotNavKeyChanged( const QString &newKey );
117 void slotNavNextVerse(); 117 void slotNavNextVerse();
118 void slotNavNextChapter(); 118 void slotNavNextPage();
119 void slotNavAutoScroll( bool enabled ); 119 void slotNavAutoScroll( bool enabled );
120 void slotNavScrollRateChanged( int newRate ); 120 void slotNavScrollRateChanged( int newRate );
121 121
122 // Search toolbar slots 122 // Search toolbar slots
123 void slotSearchResultClicked( const QString &key ); 123 void slotSearchResultClicked( const QString &key );
124 124
125 // Text widget slots 125 // Text widget slots
126 void slotTextRefClicked( const QString &ref ); 126 void slotTextRefClicked( const QString &ref );
127 127
128signals: 128signals:
129 void sigNumVersesChanged( int numVerses ); 129 void sigNumVersesChanged( int numVerses );
130 void sigFontChanged( const QFont *newFont ); 130 void sigFontChanged( const QFont *newFont );
131 void sigOptionChanged(); 131 void sigOptionChanged();
132}; 132};
133 133
134#endif 134#endif
diff --git a/noncore/apps/dagger/navbar.cpp b/noncore/apps/dagger/navbar.cpp
index 4781af0..212dc36 100644
--- a/noncore/apps/dagger/navbar.cpp
+++ b/noncore/apps/dagger/navbar.cpp
@@ -14,80 +14,80 @@ You should have received a copy of the GNU General Public License along with thi
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 "navbar.h" 18#include "navbar.h"
19 19
20#include <qpe/config.h> 20#include <qpe/config.h>
21#include <qpe/resource.h> 21#include <qpe/resource.h>
22 22
23#include <qaction.h> 23#include <qaction.h>
24#include <qlineedit.h> 24#include <qlineedit.h>
25 25
26NavBar::NavBar( QMainWindow *parent ) 26NavBar::NavBar( QMainWindow *parent )
27 : QToolBar( QString::null, parent, QMainWindow::Top, true ) 27 : QToolBar( QString::null, parent, QMainWindow::Top, true )
28{ 28{
29 // Initialize UI 29 // Initialize UI
30 m_actionPrevChapter = new QAction( tr( "Previous chapter" ), Resource::loadPixmap( "fastback" ), 30 m_actionPrevPage = new QAction( tr( "Previous page" ), Resource::loadPixmap( "fastback" ),
31 QString::null, 0, this, 0 ); 31 QString::null, 0, this, 0 );
32 m_actionPrevChapter->addTo( this ); 32 m_actionPrevPage->addTo( this );
33 connect( m_actionPrevChapter, SIGNAL(activated()), this, SIGNAL(prevChapter()) ); 33 connect( m_actionPrevPage, SIGNAL(activated()), this, SIGNAL(prevPage()) );
34 34
35 m_actionPrevVerse = new QAction( tr( "Previous verse" ), Resource::loadPixmap( "back" ), 35 m_actionPrevVerse = new QAction( tr( "Previous verse" ), Resource::loadPixmap( "back" ),
36 QString::null, 0, this, 0 ); 36 QString::null, 0, this, 0 );
37 m_actionPrevVerse->addTo( this ); 37 m_actionPrevVerse->addTo( this );
38 connect( m_actionPrevVerse, SIGNAL(activated()), this, SIGNAL(prevVerse()) ); 38 connect( m_actionPrevVerse, SIGNAL(activated()), this, SIGNAL(prevVerse()) );
39 39
40 m_key = new QLineEdit( this ); 40 m_key = new QLineEdit( this );
41 setStretchableWidget( m_key ); 41 setStretchableWidget( m_key );
42 connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) ); 42 connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) );
43 43
44 m_actionNextVerse = new QAction( tr( "Next verse" ), Resource::loadPixmap( "forward" ), 44 m_actionNextVerse = new QAction( tr( "Next verse" ), Resource::loadPixmap( "forward" ),
45 QString::null, 0, this, 0 ); 45 QString::null, 0, this, 0 );
46 m_actionNextVerse->addTo( this ); 46 m_actionNextVerse->addTo( this );
47 connect( m_actionNextVerse, SIGNAL(activated()), this, SIGNAL(nextVerse()) ); 47 connect( m_actionNextVerse, SIGNAL(activated()), this, SIGNAL(nextVerse()) );
48 48
49 m_actionNextChapter = new QAction( tr( "Next chapter" ), Resource::loadPixmap( "fastforward" ), 49 m_actionNextPage = new QAction( tr( "Next page" ), Resource::loadPixmap( "fastforward" ),
50 QString::null, 0, this, 0 ); 50 QString::null, 0, this, 0 );
51 m_actionNextChapter->addTo( this ); 51 m_actionNextPage->addTo( this );
52 connect( m_actionNextChapter, SIGNAL(activated()), this, SIGNAL(nextChapter()) ); 52 connect( m_actionNextPage, SIGNAL(activated()), this, SIGNAL(nextPage()) );
53 53
54 addSeparator(); 54 addSeparator();
55 55
56 m_scrollRate = new QSpinBox( 1, 100, 1, this ); 56 m_scrollRate = new QSpinBox( 1, 100, 1, this );
57 m_scrollRate->setMinimumWidth( 35 ); 57 m_scrollRate->setMinimumWidth( 35 );
58 connect( m_scrollRate, SIGNAL(valueChanged(int)), this, SIGNAL(scrollRateChanged(int)) ); 58 connect( m_scrollRate, SIGNAL(valueChanged(int)), this, SIGNAL(scrollRateChanged(int)) );
59 59
60 m_actionScroll = new QAction( tr( "Auto-scroll" ), Resource::loadPixmap( "dagger/autoscroll" ), 60 m_actionScroll = new QAction( tr( "Auto-scroll" ), Resource::loadPixmap( "dagger/autoscroll" ),
61 QString::null, 0, this, 0 ); 61 QString::null, 0, this, 0 );
62 m_actionScroll->setToggleAction( true ); 62 m_actionScroll->setToggleAction( true );
63 connect( m_actionScroll, SIGNAL(toggled(bool)), this, SIGNAL(autoScroll(bool)) ); 63 connect( m_actionScroll, SIGNAL(toggled(bool)), this, SIGNAL(autoScroll(bool)) );
64 m_actionScroll->addTo( this ); 64 m_actionScroll->addTo( this );
65 65
66 if ( parent ) 66 if ( parent )
67 { 67 {
68 installEventFilter( parent ); 68 installEventFilter( parent );
69 m_key->installEventFilter( parent ); 69 m_key->installEventFilter( parent );
70 } 70 }
71} 71}
72 72
73void NavBar::navBtnsEnable( bool enabled ) 73void NavBar::navBtnsEnable( bool enabled )
74{ 74{
75 m_actionPrevChapter->setEnabled( enabled ); 75 m_actionPrevPage->setEnabled( enabled );
76 m_actionPrevVerse->setEnabled( enabled ); 76 m_actionPrevVerse->setEnabled( enabled );
77 m_actionNextVerse->setEnabled( enabled ); 77 m_actionNextVerse->setEnabled( enabled );
78 m_actionNextChapter->setEnabled( enabled ); 78 m_actionNextPage->setEnabled( enabled );
79 m_scrollRate->setEnabled( enabled ); 79 m_scrollRate->setEnabled( enabled );
80 m_actionScroll->setEnabled( enabled ); 80 m_actionScroll->setEnabled( enabled );
81} 81}
82 82
83void NavBar::setKey( const QString &newKey ) 83void NavBar::setKey( const QString &newKey )
84{ 84{
85 disconnect( m_key, SIGNAL(textChanged(const QString &)), 0, 0 ); 85 disconnect( m_key, SIGNAL(textChanged(const QString &)), 0, 0 );
86 m_key->setText( newKey ); 86 m_key->setText( newKey );
87 connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) ); 87 connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) );
88} 88}
89 89
90void NavBar::setAutoScrollRate( int scrollRate ) 90void NavBar::setAutoScrollRate( int scrollRate )
91{ 91{
92 m_scrollRate->setValue( scrollRate ); 92 m_scrollRate->setValue( scrollRate );
93} 93}
diff --git a/noncore/apps/dagger/navbar.h b/noncore/apps/dagger/navbar.h
index a37d6ff..0df2bf0 100644
--- a/noncore/apps/dagger/navbar.h
+++ b/noncore/apps/dagger/navbar.h
@@ -24,35 +24,35 @@ file; see the file COPYING. If not, write to the Free Software Foundation, Inc.,
24class QAction; 24class QAction;
25class QLineEdit; 25class QLineEdit;
26 26
27class NavBar : public QToolBar 27class NavBar : public QToolBar
28{ 28{
29 Q_OBJECT 29 Q_OBJECT
30 30
31public: 31public:
32 NavBar( QMainWindow *parent = 0x0 ); 32 NavBar( QMainWindow *parent = 0x0 );
33 33
34 void navBtnsEnable( bool enabled ); 34 void navBtnsEnable( bool enabled );
35 void setKey( const QString &newKey ); 35 void setKey( const QString &newKey );
36 void setAutoScrollRate( int scrollRate ); 36 void setAutoScrollRate( int scrollRate );
37 const int autoScrollRate() { return m_scrollRate->value(); } 37 const int autoScrollRate() { return m_scrollRate->value(); }
38 38
39private: 39private:
40 QAction *m_actionPrevChapter; // Action for going back 1 chapter 40 QAction *m_actionPrevPage; // Action for going back 1 page
41 QAction *m_actionPrevVerse; // Action for going back 1 verse 41 QAction *m_actionPrevVerse; // Action for going back 1 verse
42 QLineEdit *m_key; // Edit box to enter key to goto 42 QLineEdit *m_key; // Edit box to enter key to goto
43 QAction *m_actionNextVerse; // Action for going forward 1 verse 43 QAction *m_actionNextVerse; // Action for going forward 1 verse
44 QAction *m_actionNextChapter; // Action for going forward 1 chapter 44 QAction *m_actionNextPage; // Action for going forward 1 page
45 QSpinBox *m_scrollRate; // Spin box to adjust rate of auto-scrolling 45 QSpinBox *m_scrollRate; // Spin box to adjust rate of auto-scrolling
46 QAction *m_actionScroll; // Action to start/stop auto-scrolling 46 QAction *m_actionScroll; // Action to start/stop auto-scrolling
47 47
48signals: 48signals:
49 void prevChapter(); 49 void prevPage();
50 void prevVerse(); 50 void prevVerse();
51 void keyChanged( const QString &newKey ); 51 void keyChanged( const QString &newKey );
52 void nextVerse(); 52 void nextVerse();
53 void nextChapter(); 53 void nextPage();
54 void autoScroll( bool enabled ); 54 void autoScroll( bool enabled );
55 void scrollRateChanged( int newRate ); 55 void scrollRateChanged( int newRate );
56}; 56};
57 57
58#endif 58#endif
diff --git a/noncore/apps/dagger/opie-dagger.control b/noncore/apps/dagger/opie-dagger.control
index c401f03..4ded1f2 100644
--- a/noncore/apps/dagger/opie-dagger.control
+++ b/noncore/apps/dagger/opie-dagger.control
@@ -1,11 +1,9 @@
1Package: opie-dagger 1Package: opie-dagger
2Files: plugins/application/libdagger.so* bin/dagger pics/dagger apps/Applications/dagger.desktop 2Files: plugins/application/libdagger.so* bin/dagger pics/dagger apps/Applications/dagger.desktop
3Priority: optional 3Priority: optional
4Section: opie/applications 4Section: opie/applications
5Depends: task-opie-minimal, libopiecore2, libopieui2 5Depends: task-opie-minimal, libopiecore2, libopieui2
6Replaces: dagger
7Architecture: arm 6Architecture: arm
8Source: http://draknor.net/dagger/
9Maintainer: Dan Williams (drw@handhelds.org) 7Maintainer: Dan Williams (drw@handhelds.org)
10Description: A Bible study program utilizing the Sword library. 8Description: A Bible study program utilizing the Sword library.
11Version: 0.9.0 9Version: 0.9.1$EXTRAVERSION
diff --git a/noncore/apps/dagger/searchbar.cpp b/noncore/apps/dagger/searchbar.cpp
index 747d696..ff434dd 100644
--- a/noncore/apps/dagger/searchbar.cpp
+++ b/noncore/apps/dagger/searchbar.cpp
@@ -18,32 +18,37 @@ file; see the file COPYING. If not, write to the Free Software Foundation, Inc.,
18#include "searchbar.h" 18#include "searchbar.h"
19#include "textwidget.h" 19#include "textwidget.h"
20 20
21#include <opie2/owait.h> 21#include <opie2/owait.h>
22 22
23#include <qpe/qpeapplication.h> 23#include <qpe/qpeapplication.h>
24#include <qpe/resource.h> 24#include <qpe/resource.h>
25 25
26#include <qaction.h> 26#include <qaction.h>
27#include <qcombobox.h> 27#include <qcombobox.h>
28#include <qlineedit.h> 28#include <qlineedit.h>
29 29
30#include <listkey.h> 30#include <listkey.h>
31#include <regex.h> 31#include <regex.h>
32#include <versekey.h> 32#include <versekey.h>
33 33
34void searchCallback( char /*percent*/, void */*userData*/ )
35{
36 qApp->processEvents();
37}
38
34SearchBar::SearchBar( QMainWindow *parent ) 39SearchBar::SearchBar( QMainWindow *parent )
35 : QToolBar( QString::null, parent, QMainWindow::Top, true ) 40 : QToolBar( QString::null, parent, QMainWindow::Top, true )
36 , m_currText( 0x0 ) 41 , m_currText( 0x0 )
37{ 42{
38 // Initialize UI 43 // Initialize UI
39 m_searchText = new QLineEdit( this ); 44 m_searchText = new QLineEdit( this );
40 setStretchableWidget( m_searchText ); 45 setStretchableWidget( m_searchText );
41 connect(m_searchText, SIGNAL(textChanged(const QString &)), 46 connect(m_searchText, SIGNAL(textChanged(const QString &)),
42 this, SLOT(slotTextChanged(const QString &)) ); 47 this, SLOT(slotTextChanged(const QString &)) );
43 48
44 m_actionFind = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 49 m_actionFind = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null,
45 0, this, 0 ); 50 0, this, 0 );
46 m_actionFind->setEnabled( false ); 51 m_actionFind->setEnabled( false );
47 m_actionFind->addTo( this ); 52 m_actionFind->addTo( this );
48 connect( m_actionFind, SIGNAL(activated()), this, SLOT(slotFind()) ); 53 connect( m_actionFind, SIGNAL(activated()), this, SLOT(slotFind()) );
49 54
@@ -95,33 +100,34 @@ void SearchBar::slotTextChanged( const QString &newText )
95 100
96void SearchBar::slotFind() 101void SearchBar::slotFind()
97{ 102{
98 m_resultList->clear(); 103 m_resultList->clear();
99 104
100 // Change application title and display Opie wait dialog to indicate search is beginning 105 // Change application title and display Opie wait dialog to indicate search is beginning
101 QWidget *pWidget = reinterpret_cast<QWidget *>(parent()); 106 QWidget *pWidget = reinterpret_cast<QWidget *>(parent());
102 QString caption = pWidget->caption(); 107 QString caption = pWidget->caption();
103 pWidget->setCaption( "Searching..." ); 108 pWidget->setCaption( "Searching..." );
104 109
105 Opie::Ui::OWait wait( pWidget ); 110 Opie::Ui::OWait wait( pWidget );
106 wait.show(); 111 wait.show();
107 qApp->processEvents(); 112 qApp->processEvents();
108 113
109 // Perform search 114 // Perform search
110 // TODO - implement search callback function to animate wait cursor 115 // TODO - implement search callback function to animate wait cursor
111 sword::ListKey results = m_currText->getModule()->Search( m_searchText->text().latin1(), REG_ICASE, 0 ); 116 sword::ListKey results = m_currText->getModule()->Search( m_searchText->text().latin1(), 0, REG_ICASE, 0, 0,
117 &searchCallback );
112 118
113 // Process results 119 // Process results
114 int count = results.Count(); 120 int count = results.Count();
115 bool found = count > 0; 121 bool found = count > 0;
116 if ( found ) 122 if ( found )
117 { 123 {
118 // Populate results combo box 124 // Populate results combo box
119 sword::VerseKey key; 125 sword::VerseKey key;
120 for ( int i = 0; i < count; i++ ) 126 for ( int i = 0; i < count; i++ )
121 { 127 {
122 key.setText( results.GetElement( i )->getText() ); 128 key.setText( results.GetElement( i )->getText() );
123 m_resultList->insertItem( key.getShortText() ); 129 m_resultList->insertItem( key.getShortText() );
124 } 130 }
125 131
126 // Goto first result in list 132 // Goto first result in list
127 m_resultList->setCurrentItem( 0 ); 133 m_resultList->setCurrentItem( 0 );
diff --git a/noncore/apps/dagger/textwidget.cpp b/noncore/apps/dagger/textwidget.cpp
index 8ff620d..9f7de66 100644
--- a/noncore/apps/dagger/textwidget.cpp
+++ b/noncore/apps/dagger/textwidget.cpp
@@ -65,56 +65,60 @@ TextWidget::TextWidget( QWidget *parent, sword::SWModule *module, int numVerses,
65 setText(); 65 setText();
66 } 66 }
67} 67}
68 68
69TextWidget::~TextWidget() 69TextWidget::~TextWidget()
70{ 70{
71 // TODO - why does this cause a SIGSEV??? 71 // TODO - why does this cause a SIGSEV???
72 //delete m_key; 72 //delete m_key;
73} 73}
74 74
75QString TextWidget::getCurrVerse() 75QString TextWidget::getCurrVerse()
76{ 76{
77 m_module->SetKey( m_key->getText() ); 77 m_module->SetKey( m_key->getText() );
78 return ( QString ) m_module->StripText(); 78 return ( QString ) m_module->StripText();
79} 79}
80 80
81void TextWidget::prevChapter() 81void TextWidget::prevPage()
82{ 82{
83 (*m_key) -= m_numVerses;
84 setText();
83} 85}
84 86
85void TextWidget::prevVerse() 87void TextWidget::prevVerse()
86{ 88{
87 (*m_key)--; 89 (*m_key)--;
88 setText(); 90 setText();
89} 91}
90 92
91void TextWidget::setKey( const QString &newKey ) 93void TextWidget::setKey( const QString &newKey )
92{ 94{
93 m_key->setText( newKey.latin1() ); 95 m_key->setText( newKey.latin1() );
94 setText(); 96 setText();
95} 97}
96 98
97void TextWidget::nextVerse() 99void TextWidget::nextVerse()
98{ 100{
99 (*m_key)++; 101 (*m_key)++;
100 setText(); 102 setText();
101} 103}
102 104
103void TextWidget::nextChapter() 105void TextWidget::nextPage()
104{ 106{
107 (*m_key) += m_numVerses;
108 setText();
105} 109}
106 110
107void TextWidget::slotNumVersesChanged( int numVerses ) 111void TextWidget::slotNumVersesChanged( int numVerses )
108{ 112{
109 m_numVerses = numVerses; 113 m_numVerses = numVerses;
110 setText(); 114 setText();
111} 115}
112 116
113void TextWidget::slotFontChanged( const QFont *newFont ) 117void TextWidget::slotFontChanged( const QFont *newFont )
114{ 118{
115 setFont( *newFont ); 119 setFont( *newFont );
116 // TODO - shouldn't have to reset text, but couldn't get repaint() to work 120 // TODO - shouldn't have to reset text, but couldn't get repaint() to work
117 setText(); 121 setText();
118} 122}
119 123
120void TextWidget::slotOptionChanged() 124void TextWidget::slotOptionChanged()
diff --git a/noncore/apps/dagger/textwidget.h b/noncore/apps/dagger/textwidget.h
index 647eae9..f78ef69 100644
--- a/noncore/apps/dagger/textwidget.h
+++ b/noncore/apps/dagger/textwidget.h
@@ -29,37 +29,37 @@ class TextWidget : public QWidget
29{ 29{
30 Q_OBJECT 30 Q_OBJECT
31 31
32public: 32public:
33 TextWidget( QWidget *parent = 0x0, sword::SWModule *module = 0x0, int numVerses = 5, 33 TextWidget( QWidget *parent = 0x0, sword::SWModule *module = 0x0, int numVerses = 5,
34 const QFont *font = 0x0 ); 34 const QFont *font = 0x0 );
35 ~TextWidget(); 35 ~TextWidget();
36 36
37 const QString &getFullKey() { return m_fullKey; } 37 const QString &getFullKey() { return m_fullKey; }
38 const QString &getAbbrevKey() { return m_abbrevKey; } 38 const QString &getAbbrevKey() { return m_abbrevKey; }
39 QString getModuleName() { return QString( m_module->Name() ); } 39 QString getModuleName() { return QString( m_module->Name() ); }
40 sword::SWModule *getModule() { return m_module; } 40 sword::SWModule *getModule() { return m_module; }
41 QString getCurrVerse(); 41 QString getCurrVerse();
42 42
43 bool isBibleText() const { return m_isBibleText; } 43 bool isBibleText() const { return m_isBibleText; }
44 44
45 void prevChapter(); 45 void prevPage();
46 void prevVerse(); 46 void prevVerse();
47 void setKey( const QString &newKey ); 47 void setKey( const QString &newKey );
48 void nextVerse(); 48 void nextVerse();
49 void nextChapter(); 49 void nextPage();
50 50
51public slots: 51public slots:
52 void slotNumVersesChanged( int numVerses ); 52 void slotNumVersesChanged( int numVerses );
53 void slotFontChanged( const QFont *newFont ); 53 void slotFontChanged( const QFont *newFont );
54 void slotOptionChanged(); 54 void slotOptionChanged();
55 55
56private: 56private:
57 sword::SWModule *m_module; // Sword module to display in this widget 57 sword::SWModule *m_module; // Sword module to display in this widget
58 sword::SWKey *m_key; // Current module key 58 sword::SWKey *m_key; // Current module key
59 bool m_isBibleText; // Indicates whether module is a Bible or not 59 bool m_isBibleText; // Indicates whether module is a Bible or not
60 60
61 QTextBrowser *m_textView; // Displays module's text 61 QTextBrowser *m_textView; // Displays module's text
62 QString m_fullKey; // Contains full key text in format 'key (module)' 62 QString m_fullKey; // Contains full key text in format 'key (module)'
63 QString m_abbrevKey; // Contains abbreviated key text 63 QString m_abbrevKey; // Contains abbreviated key text
64 64
65 int m_numVerses; // Number of verses to display at a time for Bible modules 65 int m_numVerses; // Number of verses to display at a time for Bible modules