summaryrefslogtreecommitdiff
path: root/noncore/apps/dagger/mainwindow.cpp
Unidiff
Diffstat (limited to 'noncore/apps/dagger/mainwindow.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/dagger/mainwindow.cpp68
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
332int MainWindow::findBookmark( const QString &bookmark ) 334int 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
635void MainWindow::slotNavKeyChanged( const QString &newKey ) 637void 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
648void MainWindow::slotNavNextVerse() 651void 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
698void MainWindow::slotTextRefClicked( const QString &ref ) 701void 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/*
702Ref clicked: 'type=Strongs value=G3482' 705Ref clicked: 'passagestudy.jsp?action=showStrongs&type=Hebrew&value=07225'
703Ref clicked: 'type=Strongs value=H07225' 706Ref clicked: 'passagestudy.jsp?action=showStrongs&type=Greek&value=602'
704Ref clicked: 'type=morph class=x-Robinson:N-PRI value=N-PRI' 707Ref clicked: 'passagestudy.jsp?action=showMorph&type=x-Robinson%3AN-NSF&value=N-NSF'
705Ref clicked: 'type=morph class=x-StrongsMorph:TH8804 value=TH8804' 708Ref 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}