Diffstat (limited to 'noncore/apps/dagger/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/apps/dagger/mainwindow.cpp | 68 |
1 files changed, 32 insertions, 36 deletions
diff --git a/noncore/apps/dagger/mainwindow.cpp b/noncore/apps/dagger/mainwindow.cpp index 1f2d521..f61df68 100644 --- a/noncore/apps/dagger/mainwindow.cpp +++ b/noncore/apps/dagger/mainwindow.cpp | |||
@@ -316,24 +316,26 @@ void MainWindow::openModule( const QString &modulename, const QString &key ) | |||
316 | connect( this, SIGNAL(sigFontChanged(const QFont *)), tw, SLOT(slotFontChanged(const QFont *)) ); | 316 | connect( this, SIGNAL(sigFontChanged(const QFont *)), tw, SLOT(slotFontChanged(const QFont *)) ); |
317 | connect( this, SIGNAL(sigOptionChanged()), tw, SLOT(slotOptionChanged()) ); | 317 | connect( this, SIGNAL(sigOptionChanged()), tw, SLOT(slotOptionChanged()) ); |
318 | 318 | ||
319 | m_tabs.addTab( tw, icon, modulename ); | 319 | m_tabs.addTab( tw, icon, modulename ); |
320 | 320 | ||
321 | m_actionTextClose->setEnabled( true ); | 321 | m_actionTextClose->setEnabled( true ); |
322 | m_actionEditCopy->setEnabled( true ); | 322 | m_actionEditCopy->setEnabled( true ); |
323 | m_actionBookmarkAdd->setEnabled( true ); | 323 | m_actionBookmarkAdd->setEnabled( true ); |
324 | 324 | ||
325 | // Set key if one is present | 325 | // Set key if one is present |
326 | if ( !key.isNull() ) | 326 | if ( !key.isNull() ) |
327 | tw->setKey( key ); | 327 | tw->setKey( key ); |
328 | setCaption( QString( "%1 - Dagger" ).arg( tw->getFullKey() ) ); | ||
329 | m_navToolbar->setKey( tw->getAbbrevKey() ); | ||
328 | } | 330 | } |
329 | } | 331 | } |
330 | } | 332 | } |
331 | 333 | ||
332 | int MainWindow::findBookmark( const QString &bookmark ) | 334 | int MainWindow::findBookmark( const QString &bookmark ) |
333 | { | 335 | { |
334 | int index = 3; | 336 | int index = 3; |
335 | int id = m_bookmarkMenu->idAt( index ); | 337 | int id = m_bookmarkMenu->idAt( index ); |
336 | while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) ) | 338 | while ( ( id != -1 ) && ( m_bookmarkMenu->text( id ) != bookmark ) ) |
337 | { | 339 | { |
338 | ++index; | 340 | ++index; |
339 | id = m_bookmarkMenu->idAt( index ); | 341 | id = m_bookmarkMenu->idAt( index ); |
@@ -625,30 +627,31 @@ void MainWindow::slotNavPrevVerse() | |||
625 | { | 627 | { |
626 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); | 628 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); |
627 | if ( text ) | 629 | if ( text ) |
628 | { | 630 | { |
629 | text->prevVerse(); | 631 | text->prevVerse(); |
630 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); | 632 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); |
631 | m_navToolbar->setKey( text->getAbbrevKey() ); | 633 | m_navToolbar->setKey( text->getAbbrevKey() ); |
632 | } | 634 | } |
633 | } | 635 | } |
634 | 636 | ||
635 | void MainWindow::slotNavKeyChanged( const QString &newKey ) | 637 | void MainWindow::slotNavKeyChanged( const QString &newKey ) |
636 | { | 638 | { |
637 | QString key = newKey; | ||
638 | key.replace( QRegExp( "[-=.]" ), ":" ); | ||
639 | |||
640 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); | 639 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); |
641 | if ( text ) | 640 | if ( text ) |
642 | { | 641 | { |
642 | QString key = newKey; | ||
643 | if ( text->isBibleText() ) | ||
644 | key.replace( QRegExp( "[-=.]" ), ":" ); | ||
645 | |||
643 | text->setKey( key ); | 646 | text->setKey( key ); |
644 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); | 647 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); |
645 | } | 648 | } |
646 | } | 649 | } |
647 | 650 | ||
648 | void MainWindow::slotNavNextVerse() | 651 | void MainWindow::slotNavNextVerse() |
649 | { | 652 | { |
650 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); | 653 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); |
651 | if ( text ) | 654 | if ( text ) |
652 | { | 655 | { |
653 | text->nextVerse(); | 656 | text->nextVerse(); |
654 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); | 657 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); |
@@ -690,64 +693,57 @@ void MainWindow::slotSearchResultClicked( const QString &key ) | |||
690 | if ( text ) | 693 | if ( text ) |
691 | { | 694 | { |
692 | text->setKey( key ); | 695 | text->setKey( key ); |
693 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); | 696 | setCaption( QString( "%1 - Dagger" ).arg( text->getFullKey() ) ); |
694 | m_navToolbar->setKey( text->getAbbrevKey() ); | 697 | m_navToolbar->setKey( text->getAbbrevKey() ); |
695 | } | 698 | } |
696 | } | 699 | } |
697 | 700 | ||
698 | void MainWindow::slotTextRefClicked( const QString &ref ) | 701 | void MainWindow::slotTextRefClicked( const QString &ref ) |
699 | { | 702 | { |
700 | //printf( "Ref clicked: '%s'\n", ref.latin1() ); | 703 | //printf( "Ref clicked: '%s'\n", ref.latin1() ); |
701 | /* | 704 | /* |
702 | Ref clicked: 'type=Strongs value=G3482' | 705 | Ref clicked: 'passagestudy.jsp?action=showStrongs&type=Hebrew&value=07225' |
703 | Ref clicked: 'type=Strongs value=H07225' | 706 | Ref clicked: 'passagestudy.jsp?action=showStrongs&type=Greek&value=602' |
704 | Ref clicked: 'type=morph class=x-Robinson:N-PRI value=N-PRI' | 707 | Ref clicked: 'passagestudy.jsp?action=showMorph&type=x-Robinson%3AN-NSF&value=N-NSF' |
705 | Ref clicked: 'type=morph class=x-StrongsMorph:TH8804 value=TH8804' | 708 | Ref clicked: 'passagestudy.jsp?action=showNote&type=n&value=1&module=KJV&passage=Genesis+1%3A5' |
706 | */ | 709 | */ |
707 | //owarn << "Reference: " << ref << oendl; | 710 | //owarn << "Reference: " << ref << oendl; |
708 | if ( !ref.isNull() ) | 711 | if ( !ref.isNull() ) |
709 | { | 712 | { |
710 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); | 713 | TextWidget *text = reinterpret_cast<TextWidget *>(m_tabs.currentWidget()); |
711 | if ( text ) | 714 | if ( text ) |
712 | { | 715 | { |
716 | // Parse action | ||
717 | int pos = ref.find( '&', 28 ); | ||
718 | QString actionStr = ref.mid( 28, pos - 28 ); | ||
719 | |||
713 | // Parse type | 720 | // Parse type |
714 | int pos = ref.find( "type=", 0, false ) + 5; | 721 | pos = ref.find( "type=", pos, false ) + 5; |
715 | QString typeStr = ref.mid( pos, ref.find( ' ', pos ) - pos ); | 722 | QString typeStr = ref.mid( pos, ref.find( '&', pos ) - pos ); |
716 | 723 | ||
717 | // Parse class (for morph. only) | ||
718 | QString classStr; | ||
719 | if ( typeStr == "morph" ) | ||
720 | { | ||
721 | pos = ref.find( "class=", 0, false ) + 5; | ||
722 | QString classStr = ref.mid( pos, ref.find( ' ', pos ) - pos ); | ||
723 | |||
724 | // TODO - need to strip 'x-' from beginning and ':key' at end? | ||
725 | } | ||
726 | |||
727 | // Parse value | 724 | // Parse value |
728 | pos = ref.find( "value=", 0, false ) + 6; | 725 | pos = ref.find( "value=", 0, false ) + 6; |
729 | QString valueStr = ref.mid( pos, ref.find( ' ', pos ) - pos ); | 726 | QString valueStr = ref.mid( pos, ref.find( ' ', pos ) - pos ); |
730 | 727 | ||
731 | if ( typeStr == "Strongs" ) | 728 | if ( actionStr == "Strongs" ) |
729 | { | ||
730 | QString module = actionStr; | ||
731 | module.append( typeStr ); | ||
732 | |||
733 | // Open reference | ||
734 | openModule( module, valueStr ); | ||
735 | } | ||
736 | else if ( actionStr == "Morph" ) | ||
732 | { | 737 | { |
733 | //Determine if is a Hebrew or Greek reference | 738 | QString module = typeStr.mid( 2, typeStr.find( '%', 2 ) - 2 ); |
734 | QString module; | 739 | |
735 | if ( valueStr.at( 0 ) == 'H' ) | ||
736 | module = "StrongsHebrew"; | ||
737 | else | ||
738 | module = "StrongsGreek"; | ||
739 | |||
740 | // Get key | ||
741 | QString key( valueStr ); | ||
742 | key.remove( 0, 1 ); | ||
743 | // Open reference | 740 | // Open reference |
744 | openModule( module, key ); | 741 | openModule( module, valueStr ); |
745 | } | 742 | } |
746 | else if ( typeStr == "morph" ) | 743 | else if ( actionStr == "Note" ) |
747 | { | 744 | { |
748 | QMessageBox::information( this, tr( "Morphological Tags" ), | 745 | // TODO |
749 | tr( "Morphological tag cross-referencing not implemented yet." ) ); | ||
750 | } | 746 | } |
751 | } | 747 | } |
752 | } | 748 | } |
753 | } | 749 | } |