-rw-r--r-- | noncore/apps/dagger/ChangeLog | 7 | ||||
-rw-r--r-- | noncore/apps/dagger/README | 2 | ||||
-rw-r--r-- | noncore/apps/dagger/TODO | 6 | ||||
-rw-r--r-- | noncore/apps/dagger/mainwindow.cpp | 17 | ||||
-rw-r--r-- | noncore/apps/dagger/mainwindow.h | 4 | ||||
-rw-r--r-- | noncore/apps/dagger/navbar.cpp | 16 | ||||
-rw-r--r-- | noncore/apps/dagger/navbar.h | 8 | ||||
-rw-r--r-- | noncore/apps/dagger/opie-dagger.control | 4 | ||||
-rw-r--r-- | noncore/apps/dagger/searchbar.cpp | 8 | ||||
-rw-r--r-- | noncore/apps/dagger/textwidget.cpp | 8 | ||||
-rw-r--r-- | noncore/apps/dagger/textwidget.h | 4 |
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 @@ +2004-04-22 Dan Williams <drw@handhelds.org> + + * Released version 0.9.1 + * Fixed the disabling of screen blanking + * Implement previous/next page scrolling + * Animate search OWait + 2004-04-06 Dan Williams <drw@handhelds.org> * Released version 0.9.0 * 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 @@ /************************************************************************ /* /* Opie - Dagger /* =============== -/* Version 0.9.0 +/* Version 0.9.1 /* /* A Bible study/reader application /* /************************************************************************ --------------------------------------------- Release Notes for Opie-Dagger - April, 2004 --------------------------------------------- ====================== = To-do = ====================== - See $OPIEDIR/noncore/apps/dagger/TODO for more info. ====================== 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 @@ /************************************************************************ /* /* Opie - Dagger /* =============== -/* Version 0.9.0 +/* Version 0.9.1 /* /* A Bible study/reader application /* /************************************************************************ ------------------------------------ To-do for Opie-Dagger - April, 2004 ------------------------------------ ====================== = Current release = ====================== -1. Implement search function callback to animate OWait dialog -2. Implement previous/next page scrolling -3. Fix disablement of screen blanking +1. Implement module installation ====================== = Future releases = ====================== 1. 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*/ ) setCaption( tr( "Dagger" ) ); initUI(); connect( &m_tabs, SIGNAL(currentChanged(QWidget *)), this, SLOT( slotTextDisplayed(QWidget *)) ); connect( &m_autoScrollTimer, SIGNAL(timeout()), this, SLOT(slotNavNextVerse()) ); m_bibleIcon = new QPixmap( Resource::loadPixmap( "dagger/bibletext" ) ); m_commentaryIcon = new QPixmap( Resource::loadPixmap( "dagger/commentary" ) ); m_lexiconIcon = new QPixmap( Resource::loadPixmap( "dagger/lexicon" ) ); // Load initial configuration QTimer::singleShot( 100, this, SLOT( initConfig() ) ); } MainWindow::~MainWindow() { + // Re-enable screen blanking if it was disabled + QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable; + // Save Sword options m_config.setGroup( "Sword" ); m_config.writeEntry( "ModPath", m_modulePath ); for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) m_config.writeEntry( a->text(), a->isOn() ); // Save configuration options m_config.setGroup( "Config" ); m_config.writeEntry( "AlwaysOpenNew", m_alwaysOpenNew ); m_config.writeEntry( "AutoScroll", m_navToolbar->autoScrollRate() ); m_config.writeEntry( "DisableScreenBlanking", m_disableScreenBlank ); m_config.writeEntry( "CopyFormat", m_copyFormat ); m_config.writeEntry( "NavBar", m_actionViewNavToolbar->isOn() ); m_config.writeEntry( "NumVerses", m_numVerses ); m_config.writeEntry( "SearchBar", m_actionViewSearchToolbar->isOn() ); @@ -156,37 +159,37 @@ bool MainWindow::eventFilter( QObject *obj, QEvent *event ) void MainWindow::initUI() { setCentralWidget( &m_tabs ); m_tabs.installEventFilter( this ); setToolBarsMovable( false ); m_barDock = new QToolBar( this ); m_barDock->setHorizontalStretchable( true ); m_menuBar = new QMenuBar( m_barDock ); m_menuBar->setMargin( 0 ); // Allocate toolbars m_navToolbar = new NavBar( this ); m_navToolbar->navBtnsEnable( false ); - connect( m_navToolbar, SIGNAL(prevChapter()), this, SLOT(slotNavPrevChapter()) ); + connect( m_navToolbar, SIGNAL(prevPage()), this, SLOT(slotNavPrevPage()) ); connect( m_navToolbar, SIGNAL(prevVerse()), this, SLOT(slotNavPrevVerse()) ); connect( m_navToolbar, SIGNAL(keyChanged(const QString &)), this, SLOT(slotNavKeyChanged(const QString &)) ); connect( m_navToolbar, SIGNAL(nextVerse()), this, SLOT(slotNavNextVerse()) ); - connect( m_navToolbar, SIGNAL(nextChapter()), this, SLOT(slotNavNextChapter()) ); + connect( m_navToolbar, SIGNAL(nextPage()), this, SLOT(slotNavNextPage()) ); connect( m_navToolbar, SIGNAL(autoScroll(bool)), this, SLOT(slotNavAutoScroll(bool)) ); connect( m_navToolbar, SIGNAL(scrollRateChanged(int)), this, SLOT(slotNavScrollRateChanged(int)) ); m_searchToolbar = new SearchBar( this ); connect( m_searchToolbar, SIGNAL(sigResultClicked(const QString &)), this, SLOT(slotSearchResultClicked(const QString &)) ); // Text menu QPopupMenu *popup = new QPopupMenu( this ); QAction *a = new QAction( tr( "Open..." ), Resource::loadPixmap( "fileopen" ), QString::null, 0, this, 0 ); connect( a, SIGNAL(activated()), this, SLOT(slotTextOpen()) ); a->addTo( popup ); m_actionTextClose = new QAction( tr( "Close" ), Resource::loadPixmap( "close" ), QString::null, 0, this, 0 ); connect( m_actionTextClose, SIGNAL(activated()), this, SLOT(slotTextClose()) ); m_actionTextClose->addTo( popup ); @@ -319,33 +322,33 @@ void MainWindow::openModule( const QString &modulename, const QString &key ) int MainWindow::findBookmark( const QString &bookmark ) { int index = 3; int id = m_bookmarkMenu->idAt( index ); while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) ) { ++index; id = m_bookmarkMenu->idAt( index ); } return id; } void MainWindow::enableScreenBlanking( bool enable ) { enable ? QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Enable - : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::Disable; + : QCopEnvelope( "QPE/System", "setScreenSaverMode(int)" ) << QPEApplication::DisableSuspend; } void MainWindow::initConfig() { bool show; m_config.setGroup( "Sword" ); for ( QAction *a = m_actionSwordOpts.first(); a; a = m_actionSwordOpts.next() ) { show = m_config.readBoolEntry( a->text(), false ); a->setOn( show ); m_swordMgr->setGlobalOption ( a->text(), show ? "On" : "Off" ); } // Display/hide toolbars based on last run m_config.setGroup( "Config" ); @@ -584,38 +587,38 @@ void MainWindow::slotViewSwordOption( bool enabled ) emit sigOptionChanged(); } void MainWindow::slotViewNavToolbar( bool enabled ) { enabled ? m_navToolbar->show() : m_navToolbar->hide(); } void MainWindow::slotViewSearchToolbar( bool enabled ) { enabled ? m_searchToolbar->show() : m_searchToolbar->hide(); } -void MainWindow::slotNavPrevChapter() +void MainWindow::slotNavPrevPage() { TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); if ( text ) { - text->prevChapter(); + text->prevPage(); setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); m_navToolbar->setKey( text->getAbbrevKey() ); } } void MainWindow::slotNavPrevVerse() { TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); if ( text ) { text->prevVerse(); setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); m_navToolbar->setKey( text->getAbbrevKey() ); } } @@ -630,38 +633,38 @@ void MainWindow::slotNavKeyChanged( const QString &newKey ) text->setKey( key ); setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); } } void MainWindow::slotNavNextVerse() { TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); if ( text ) { text->nextVerse(); setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); m_navToolbar->setKey( text->getAbbrevKey() ); } } -void MainWindow::slotNavNextChapter() +void MainWindow::slotNavNextPage() { TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); if ( text ) { - text->nextChapter(); + text->nextPage(); setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); m_navToolbar->setKey( text->getAbbrevKey() ); } } void MainWindow::slotNavAutoScroll( bool enabled ) { m_autoScrollTimer.stop(); if ( enabled ) m_autoScrollTimer.start( m_navToolbar->autoScrollRate() * 100 ); } void MainWindow::slotNavScrollRateChanged( int newRate ) { 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: void slotTextDisplayed( QWidget *textWidget ); // Menubar/toolbar action slots void slotTextOpen(); void slotTextClose(); void slotTextInstall(); void slotEditCopy(); void slotEditConfigure(); void slotBookmarkAdd(); void slotBookmarkRemove(); void slotBookmarkSelected(); void slotViewSwordOption( bool enabled ); void slotViewNavToolbar( bool enabled ); void slotViewSearchToolbar( bool enabled ); // Navigation toolbar slots - void slotNavPrevChapter(); + void slotNavPrevPage(); void slotNavPrevVerse(); void slotNavKeyChanged( const QString &newKey ); void slotNavNextVerse(); - void slotNavNextChapter(); + void slotNavNextPage(); void slotNavAutoScroll( bool enabled ); void slotNavScrollRateChanged( int newRate ); // Search toolbar slots void slotSearchResultClicked( const QString &key ); // Text widget slots void slotTextRefClicked( const QString &ref ); signals: void sigNumVersesChanged( int numVerses ); void sigFontChanged( const QFont *newFont ); void sigOptionChanged(); }; #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 file; see the file COPYING. If not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "navbar.h" #include <qpe/config.h> #include <qpe/resource.h> #include <qaction.h> #include <qlineedit.h> NavBar::NavBar( QMainWindow *parent ) : QToolBar( QString::null, parent, QMainWindow::Top, true ) { // Initialize UI - m_actionPrevChapter = new QAction( tr( "Previous chapter" ), Resource::loadPixmap( "fastback" ), + m_actionPrevPage = new QAction( tr( "Previous page" ), Resource::loadPixmap( "fastback" ), QString::null, 0, this, 0 ); - m_actionPrevChapter->addTo( this ); - connect( m_actionPrevChapter, SIGNAL(activated()), this, SIGNAL(prevChapter()) ); + m_actionPrevPage->addTo( this ); + connect( m_actionPrevPage, SIGNAL(activated()), this, SIGNAL(prevPage()) ); m_actionPrevVerse = new QAction( tr( "Previous verse" ), Resource::loadPixmap( "back" ), QString::null, 0, this, 0 ); m_actionPrevVerse->addTo( this ); connect( m_actionPrevVerse, SIGNAL(activated()), this, SIGNAL(prevVerse()) ); m_key = new QLineEdit( this ); setStretchableWidget( m_key ); connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) ); m_actionNextVerse = new QAction( tr( "Next verse" ), Resource::loadPixmap( "forward" ), QString::null, 0, this, 0 ); m_actionNextVerse->addTo( this ); connect( m_actionNextVerse, SIGNAL(activated()), this, SIGNAL(nextVerse()) ); - m_actionNextChapter = new QAction( tr( "Next chapter" ), Resource::loadPixmap( "fastforward" ), + m_actionNextPage = new QAction( tr( "Next page" ), Resource::loadPixmap( "fastforward" ), QString::null, 0, this, 0 ); - m_actionNextChapter->addTo( this ); - connect( m_actionNextChapter, SIGNAL(activated()), this, SIGNAL(nextChapter()) ); + m_actionNextPage->addTo( this ); + connect( m_actionNextPage, SIGNAL(activated()), this, SIGNAL(nextPage()) ); addSeparator(); m_scrollRate = new QSpinBox( 1, 100, 1, this ); m_scrollRate->setMinimumWidth( 35 ); connect( m_scrollRate, SIGNAL(valueChanged(int)), this, SIGNAL(scrollRateChanged(int)) ); m_actionScroll = new QAction( tr( "Auto-scroll" ), Resource::loadPixmap( "dagger/autoscroll" ), QString::null, 0, this, 0 ); m_actionScroll->setToggleAction( true ); connect( m_actionScroll, SIGNAL(toggled(bool)), this, SIGNAL(autoScroll(bool)) ); m_actionScroll->addTo( this ); if ( parent ) { installEventFilter( parent ); m_key->installEventFilter( parent ); } } void NavBar::navBtnsEnable( bool enabled ) { - m_actionPrevChapter->setEnabled( enabled ); + m_actionPrevPage->setEnabled( enabled ); m_actionPrevVerse->setEnabled( enabled ); m_actionNextVerse->setEnabled( enabled ); - m_actionNextChapter->setEnabled( enabled ); + m_actionNextPage->setEnabled( enabled ); m_scrollRate->setEnabled( enabled ); m_actionScroll->setEnabled( enabled ); } void NavBar::setKey( const QString &newKey ) { disconnect( m_key, SIGNAL(textChanged(const QString &)), 0, 0 ); m_key->setText( newKey ); connect(m_key, SIGNAL(textChanged(const QString &)), this, SIGNAL(keyChanged(const QString &)) ); } void NavBar::setAutoScrollRate( int scrollRate ) { m_scrollRate->setValue( scrollRate ); } 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., class QAction; class QLineEdit; class NavBar : public QToolBar { Q_OBJECT public: NavBar( QMainWindow *parent = 0x0 ); void navBtnsEnable( bool enabled ); void setKey( const QString &newKey ); void setAutoScrollRate( int scrollRate ); const int autoScrollRate() { return m_scrollRate->value(); } private: - QAction *m_actionPrevChapter; // Action for going back 1 chapter + QAction *m_actionPrevPage; // Action for going back 1 page QAction *m_actionPrevVerse; // Action for going back 1 verse QLineEdit *m_key; // Edit box to enter key to goto QAction *m_actionNextVerse; // Action for going forward 1 verse - QAction *m_actionNextChapter; // Action for going forward 1 chapter + QAction *m_actionNextPage; // Action for going forward 1 page QSpinBox *m_scrollRate; // Spin box to adjust rate of auto-scrolling QAction *m_actionScroll; // Action to start/stop auto-scrolling signals: - void prevChapter(); + void prevPage(); void prevVerse(); void keyChanged( const QString &newKey ); void nextVerse(); - void nextChapter(); + void nextPage(); void autoScroll( bool enabled ); void scrollRateChanged( int newRate ); }; #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 @@ Package: opie-dagger Files: plugins/application/libdagger.so* bin/dagger pics/dagger apps/Applications/dagger.desktop Priority: optional Section: opie/applications Depends: task-opie-minimal, libopiecore2, libopieui2 -Replaces: dagger Architecture: arm -Source: http://draknor.net/dagger/ Maintainer: Dan Williams (drw@handhelds.org) Description: A Bible study program utilizing the Sword library. -Version: 0.9.0 +Version: 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., #include "searchbar.h" #include "textwidget.h" #include <opie2/owait.h> #include <qpe/qpeapplication.h> #include <qpe/resource.h> #include <qaction.h> #include <qcombobox.h> #include <qlineedit.h> #include <listkey.h> #include <regex.h> #include <versekey.h> +void searchCallback( char /*percent*/, void */*userData*/ ) +{ + qApp->processEvents(); +} + SearchBar::SearchBar( QMainWindow *parent ) : QToolBar( QString::null, parent, QMainWindow::Top, true ) , m_currText( 0x0 ) { // Initialize UI m_searchText = new QLineEdit( this ); setStretchableWidget( m_searchText ); connect(m_searchText, SIGNAL(textChanged(const QString &)), this, SLOT(slotTextChanged(const QString &)) ); m_actionFind = new QAction( tr( "Find" ), Resource::loadPixmap( "find" ), QString::null, 0, this, 0 ); m_actionFind->setEnabled( false ); m_actionFind->addTo( this ); connect( m_actionFind, SIGNAL(activated()), this, SLOT(slotFind()) ); @@ -95,33 +100,34 @@ void SearchBar::slotTextChanged( const QString &newText ) void SearchBar::slotFind() { m_resultList->clear(); // Change application title and display Opie wait dialog to indicate search is beginning QWidget *pWidget = reinterpret_cast<QWidget *>(parent()); QString caption = pWidget->caption(); pWidget->setCaption( "Searching..." ); Opie::Ui::OWait wait( pWidget ); wait.show(); qApp->processEvents(); // Perform search // TODO - implement search callback function to animate wait cursor - sword::ListKey results = m_currText->getModule()->Search( m_searchText->text().latin1(), REG_ICASE, 0 ); + sword::ListKey results = m_currText->getModule()->Search( m_searchText->text().latin1(), 0, REG_ICASE, 0, 0, + &searchCallback ); // Process results int count = results.Count(); bool found = count > 0; if ( found ) { // Populate results combo box sword::VerseKey key; for ( int i = 0; i < count; i++ ) { key.setText( results.GetElement( i )->getText() ); m_resultList->insertItem( key.getShortText() ); } // Goto first result in list 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, setText(); } } TextWidget::~TextWidget() { // TODO - why does this cause a SIGSEV??? //delete m_key; } QString TextWidget::getCurrVerse() { m_module->SetKey( m_key->getText() ); return ( QString ) m_module->StripText(); } -void TextWidget::prevChapter() +void TextWidget::prevPage() { + (*m_key) -= m_numVerses; + setText(); } void TextWidget::prevVerse() { (*m_key)--; setText(); } void TextWidget::setKey( const QString &newKey ) { m_key->setText( newKey.latin1() ); setText(); } void TextWidget::nextVerse() { (*m_key)++; setText(); } -void TextWidget::nextChapter() +void TextWidget::nextPage() { + (*m_key) += m_numVerses; + setText(); } void TextWidget::slotNumVersesChanged( int numVerses ) { m_numVerses = numVerses; setText(); } void TextWidget::slotFontChanged( const QFont *newFont ) { setFont( *newFont ); // TODO - shouldn't have to reset text, but couldn't get repaint() to work setText(); } void 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 { Q_OBJECT public: TextWidget( QWidget *parent = 0x0, sword::SWModule *module = 0x0, int numVerses = 5, const QFont *font = 0x0 ); ~TextWidget(); const QString &getFullKey() { return m_fullKey; } const QString &getAbbrevKey() { return m_abbrevKey; } QString getModuleName() { return QString( m_module->Name() ); } sword::SWModule *getModule() { return m_module; } QString getCurrVerse(); bool isBibleText() const { return m_isBibleText; } - void prevChapter(); + void prevPage(); void prevVerse(); void setKey( const QString &newKey ); void nextVerse(); - void nextChapter(); + void nextPage(); public slots: void slotNumVersesChanged( int numVerses ); void slotFontChanged( const QFont *newFont ); void slotOptionChanged(); private: sword::SWModule *m_module; // Sword module to display in this widget sword::SWKey *m_key; // Current module key bool m_isBibleText; // Indicates whether module is a Bible or not QTextBrowser *m_textView; // Displays module's text QString m_fullKey; // Contains full key text in format 'key (module)' QString m_abbrevKey; // Contains abbreviated key text int m_numVerses; // Number of verses to display at a time for Bible modules |