summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/dagger/configuredlg.cpp21
-rw-r--r--noncore/apps/dagger/configuredlg.h1
2 files changed, 21 insertions, 1 deletions
diff --git a/noncore/apps/dagger/configuredlg.cpp b/noncore/apps/dagger/configuredlg.cpp
index 0a9317c..535659d 100644
--- a/noncore/apps/dagger/configuredlg.cpp
+++ b/noncore/apps/dagger/configuredlg.cpp
@@ -1,72 +1,83 @@
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 "configuredlg.h" 18#include "configuredlg.h"
19 19
20#include <opie2/ofiledialog.h>
21
22#include <qpe/resource.h>
23
20#include <qlabel.h> 24#include <qlabel.h>
21#include <qlayout.h> 25#include <qlayout.h>
26#include <qpushbutton.h>
22#include <qvbuttongroup.h> 27#include <qvbuttongroup.h>
23#include <qwhatsthis.h> 28#include <qwhatsthis.h>
24 29
25ConfigureDlg::ConfigureDlg( QWidget *parent, const QString &swordPath, bool alwaysOpenNew, int numVerses, 30ConfigureDlg::ConfigureDlg( QWidget *parent, const QString &swordPath, bool alwaysOpenNew, int numVerses,
26 bool disableBlanking, int copyFormat, const QFont *font ) 31 bool disableBlanking, int copyFormat, const QFont *font )
27 : QDialog( parent, QString::null, true, WStyle_ContextHelp ) 32 : QDialog( parent, QString::null, true, WStyle_ContextHelp )
28 , m_tabs( this ) 33 , m_tabs( this )
29{ 34{
30 setCaption( tr( "Configure Dagger" ) ); 35 setCaption( tr( "Configure Dagger" ) );
31 36
32 QVBoxLayout *layout = new QVBoxLayout( this ); 37 QVBoxLayout *layout = new QVBoxLayout( this );
33 layout->setMargin( 4 ); 38 layout->setMargin( 4 );
34 layout->addWidget( &m_tabs ); 39 layout->addWidget( &m_tabs );
35 40
36 // General tab 41 // General tab
37 QWidget *widget = new QWidget( this ); 42 QWidget *widget = new QWidget( this );
38 QGridLayout *grid = new QGridLayout( widget, 1, 2, 4, 2 ); 43 QGridLayout *grid = new QGridLayout( widget, 1, 2, 4, 2 );
39 grid->setRowStretch( 9, 5 ); 44 grid->setRowStretch( 9, 5 );
40 grid->setColStretch( 0, 2 ); 45 grid->setColStretch( 0, 2 );
41 46
42 QLabel *label = new QLabel( tr( "Path where Sword texts are located:" ), widget ); 47 QLabel *label = new QLabel( tr( "Path where Sword texts are located:" ), widget );
43 label->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak ); 48 label->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak );
44 QWhatsThis::add( label, tr( "Enter the path where the Sword modules (Bible texts, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) ); 49 QWhatsThis::add( label, tr( "Enter the path where the Sword modules (Bible texts, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) );
45 grid->addMultiCellWidget( label, 0, 0, 0, 1 ); 50 grid->addMultiCellWidget( label, 0, 0, 0, 1 );
46 m_swordPath = new QLineEdit( swordPath, widget ); 51 m_swordPath = new QLineEdit( swordPath, widget );
47 QWhatsThis::add( m_swordPath, tr( "Enter the path where the Sword texts (Bibles, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) ); 52 QWhatsThis::add( m_swordPath, tr( "Enter the path where the Sword texts (Bibles, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) );
48 grid->addMultiCellWidget( m_swordPath, 1, 1, 0, 1 ); 53 grid->addWidget( m_swordPath, 1, 0 );
54 QPushButton *btn = new QPushButton( Resource::loadPixmap( "folder" ), QString::null, widget );
55 btn->setMaximumWidth( btn->height() );
56 QWhatsThis::add( btn, tr( "Tap here to select the path where the Sword texts (Bibles, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) );
57 connect( btn, SIGNAL(clicked()), this, SLOT(slotSelectSwordPath()) );
58 grid->addWidget( btn, 1, 1 );
59
49 label = new QLabel( tr( "(Note: Dagger must be restarted for this option to take affect.)" ), widget ); 60 label = new QLabel( tr( "(Note: Dagger must be restarted for this option to take affect.)" ), widget );
50 label->setAlignment( Qt::AlignHCenter | Qt::AlignTop | Qt::WordBreak ); 61 label->setAlignment( Qt::AlignHCenter | Qt::AlignTop | Qt::WordBreak );
51 QWhatsThis::add( label, tr( "Enter the path where the Sword modules (Bible texts, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) ); 62 QWhatsThis::add( label, tr( "Enter the path where the Sword modules (Bible texts, commentaries, etc.) can be found. This path should contain either the 'mods.conf' file or 'mods.d' sub-directory." ) );
52 grid->addMultiCellWidget( label, 2, 2, 0, 1 ); 63 grid->addMultiCellWidget( label, 2, 2, 0, 1 );
53 64
54 grid->addRowSpacing( 3, 15 ); 65 grid->addRowSpacing( 3, 15 );
55 66
56 m_alwaysOpenNew = new QCheckBox( tr( "Always open texts in new window?" ), widget ); 67 m_alwaysOpenNew = new QCheckBox( tr( "Always open texts in new window?" ), widget );
57 m_alwaysOpenNew->setChecked( alwaysOpenNew ); 68 m_alwaysOpenNew->setChecked( alwaysOpenNew );
58 QWhatsThis::add( m_alwaysOpenNew, tr( "Tap here to always open texts in a new window. If this option is not selected, only one copy of a Sword text will be opened." ) ); 69 QWhatsThis::add( m_alwaysOpenNew, tr( "Tap here to always open texts in a new window. If this option is not selected, only one copy of a Sword text will be opened." ) );
59 grid->addMultiCellWidget( m_alwaysOpenNew, 4, 4, 0, 1 ); 70 grid->addMultiCellWidget( m_alwaysOpenNew, 4, 4, 0, 1 );
60 71
61 grid->addRowSpacing( 5, 15 ); 72 grid->addRowSpacing( 5, 15 );
62 73
63 label = new QLabel( tr( "Number of verses to display at a time:" ), widget ); 74 label = new QLabel( tr( "Number of verses to display at a time:" ), widget );
64 label->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak ); 75 label->setAlignment( Qt::AlignLeft | Qt::AlignTop | Qt::WordBreak );
65 QWhatsThis::add( label, tr( "Enter the number of verses to display at a time. This also affects how far the scroll to previous/next page buttons on the Navigation bar scroll." ) ); 76 QWhatsThis::add( label, tr( "Enter the number of verses to display at a time. This also affects how far the scroll to previous/next page buttons on the Navigation bar scroll." ) );
66 grid->addWidget( label, 6, 0 ); 77 grid->addWidget( label, 6, 0 );
67 m_numVerses = new QSpinBox( 1, 20, 1, widget ); 78 m_numVerses = new QSpinBox( 1, 20, 1, widget );
68 m_numVerses->setValue( numVerses ); 79 m_numVerses->setValue( numVerses );
69 QWhatsThis::add( m_numVerses, tr( "Enter the number of verses to display at a time. This also affects how far the scroll to previous/next page buttons on the Navigation bar scroll." ) ); 80 QWhatsThis::add( m_numVerses, tr( "Enter the number of verses to display at a time. This also affects how far the scroll to previous/next page buttons on the Navigation bar scroll." ) );
70 grid->addWidget( m_numVerses, 6, 1 ); 81 grid->addWidget( m_numVerses, 6, 1 );
71 82
72 grid->addRowSpacing( 7, 15 ); 83 grid->addRowSpacing( 7, 15 );
@@ -127,24 +138,32 @@ ConfigureDlg::ConfigureDlg( QWidget *parent, const QString &swordPath, bool alwa
127 QWhatsThis::add( m_font, tr( "Select the font, style and size used for displaying texts." ) ); 138 QWhatsThis::add( m_font, tr( "Select the font, style and size used for displaying texts." ) );
128 139
129 m_tabs.addTab( m_font, "font", tr( "Font" ) ); 140 m_tabs.addTab( m_font, "font", tr( "Font" ) );
130 141
131 m_tabs.setCurrentTab( tr( "General" ) ); 142 m_tabs.setCurrentTab( tr( "General" ) );
132} 143}
133 144
134void ConfigureDlg::slotCopyFormatSelected() 145void ConfigureDlg::slotCopyFormatSelected()
135{ 146{
136 const QObject *option = sender(); 147 const QObject *option = sender();
137 148
138 QString text = tr( "KJV" ); 149 QString text = tr( "KJV" );
139 QString verse = tr( "In the beginning God created the heaven and the earth." ); 150 QString verse = tr( "In the beginning God created the heaven and the earth." );
140 QString key = tr( "Gen 1:1" ); 151 QString key = tr( "Gen 1:1" );
141 152
142 if ( option == m_copyTextFull && m_copyTextFull->isChecked() ) 153 if ( option == m_copyTextFull && m_copyTextFull->isChecked() )
143 m_copyExample->setText( QString( "%1 (%2, %3)" ).arg( verse ).arg( key ).arg( text ) ); 154 m_copyExample->setText( QString( "%1 (%2, %3)" ).arg( verse ).arg( key ).arg( text ) );
144 else if ( option == m_copyFull && m_copyFull->isChecked() ) 155 else if ( option == m_copyFull && m_copyFull->isChecked() )
145 m_copyExample->setText( QString( "%1 (%2)" ).arg( verse ).arg( key ) ); 156 m_copyExample->setText( QString( "%1 (%2)" ).arg( verse ).arg( key ) );
146 else if ( option == m_copyVerse && m_copyVerse->isChecked() ) 157 else if ( option == m_copyVerse && m_copyVerse->isChecked() )
147 m_copyExample->setText( verse ); 158 m_copyExample->setText( verse );
148 else if ( option == m_copyKey && m_copyKey->isChecked() ) 159 else if ( option == m_copyKey && m_copyKey->isChecked() )
149 m_copyExample->setText( key ); 160 m_copyExample->setText( key );
150} 161}
162
163void ConfigureDlg::slotSelectSwordPath()
164{
165 QString path = Opie::Ui::OFileDialog::getDirectory( 0, m_swordPath->text() );
166 if ( path.at( path.length() - 1 ) == '/' )
167 path.truncate( path.length() - 1 );
168 m_swordPath->setText( path );
169}
diff --git a/noncore/apps/dagger/configuredlg.h b/noncore/apps/dagger/configuredlg.h
index a91da12..56a4d94 100644
--- a/noncore/apps/dagger/configuredlg.h
+++ b/noncore/apps/dagger/configuredlg.h
@@ -49,27 +49,28 @@ public:
49 return 3; 49 return 3;
50 else 50 else
51 return 0; } 51 return 0; }
52 QFont selectedFont() { return m_font->selectedFont(); } 52 QFont selectedFont() { return m_font->selectedFont(); }
53 53
54private: 54private:
55 Opie::Ui::OTabWidget m_tabs; // Main widget 55 Opie::Ui::OTabWidget m_tabs; // Main widget
56 Opie::Ui::OFontSelector *m_font; // Font selection widget 56 Opie::Ui::OFontSelector *m_font; // Font selection widget
57 57
58 // General tab's UI controls 58 // General tab's UI controls
59 QLineEdit *m_swordPath; // Contains path to Sword modules 59 QLineEdit *m_swordPath; // Contains path to Sword modules
60 QCheckBox *m_alwaysOpenNew; // Indicates whether to always open modules in a new tab 60 QCheckBox *m_alwaysOpenNew; // Indicates whether to always open modules in a new tab
61 QSpinBox *m_numVerses; // Contains number of verses to display for Bible modules 61 QSpinBox *m_numVerses; // Contains number of verses to display for Bible modules
62 QCheckBox *m_disableScreenBlank; // Indicates whether to disable automatic screen blanking 62 QCheckBox *m_disableScreenBlank; // Indicates whether to disable automatic screen blanking
63 63
64 // Copy tab's UI controls 64 // Copy tab's UI controls
65 QRadioButton *m_copyTextFull; // Verse (Text, Book cc:vv) 65 QRadioButton *m_copyTextFull; // Verse (Text, Book cc:vv)
66 QRadioButton *m_copyFull; // Verse (Book cc:vv) 66 QRadioButton *m_copyFull; // Verse (Book cc:vv)
67 QRadioButton *m_copyVerse; // Verse 67 QRadioButton *m_copyVerse; // Verse
68 QRadioButton *m_copyKey; // Book cc:vv 68 QRadioButton *m_copyKey; // Book cc:vv
69 QLabel *m_copyExample; // Text of copy format example 69 QLabel *m_copyExample; // Text of copy format example
70 70
71private slots: 71private slots:
72 void slotCopyFormatSelected(); 72 void slotCopyFormatSelected();
73 void slotSelectSwordPath();
73}; 74};
74 75
75#endif 76#endif