author | harlekin <harlekin> | 2004-06-20 13:19:19 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2004-06-20 13:19:19 (UTC) |
commit | 9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd (patch) (unidiff) | |
tree | e5e0e4eb966be59ef350ac92710682857b006e15 | |
parent | 3d49080501c6619f9bb323be9935d28f4458530f (diff) | |
download | opie-9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd.zip opie-9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd.tar.gz opie-9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd.tar.bz2 |
BUGFIX: 0001325 - no double dialog start in odict, when using QDialog::exec don't use it together with QPEApplication::execDialog() but with QPEApplication::showDialog(), also fixed another bug where shadow entries where created after deletion of entries
-rw-r--r-- | noncore/apps/odict/configdlg.cpp | 15 | ||||
-rw-r--r-- | noncore/apps/odict/searchmethoddlg.cpp | 4 |
2 files changed, 11 insertions, 8 deletions
diff --git a/noncore/apps/odict/configdlg.cpp b/noncore/apps/odict/configdlg.cpp index 7fa6008..3d98f63 100644 --- a/noncore/apps/odict/configdlg.cpp +++ b/noncore/apps/odict/configdlg.cpp | |||
@@ -1,104 +1,107 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : ODict | 2 | application: : ODict |
3 | 3 | ||
4 | begin : December 2002 | 4 | begin : December 2002 |
5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus | 5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | #include "configdlg.h" | 17 | #include "configdlg.h" |
18 | #include "searchmethoddlg.h" | 18 | #include "searchmethoddlg.h" |
19 | 19 | ||
20 | #include <qpe/qpeapplication.h> | 20 | #include <qpe/qpeapplication.h> |
21 | #include <qpe/config.h> | 21 | #include <qpe/config.h> |
22 | 22 | ||
23 | #include <qlayout.h> | 23 | #include <qlayout.h> |
24 | #include <qvbox.h> | 24 | #include <qvbox.h> |
25 | #include <qlistview.h> | 25 | #include <qlistview.h> |
26 | #include <qpushbutton.h> | 26 | #include <qpushbutton.h> |
27 | #include <qlineedit.h> | 27 | #include <qlineedit.h> |
28 | 28 | ||
29 | ConfigDlg::ConfigDlg(QWidget *parent, const char *name, bool modal) : QDialog(parent, name, modal) | 29 | ConfigDlg::ConfigDlg(QWidget *parent, const char *name, bool modal) : QDialog(parent, name, modal) |
30 | { | 30 | { |
31 | setCaption( tr( "Options" ) ); | 31 | setCaption( tr( "Options" ) ); |
32 | QVBoxLayout *vbox_layout = new QVBoxLayout( this ); | 32 | QVBoxLayout *vbox_layout = new QVBoxLayout( this ); |
33 | search_tab = new QWidget( this , "search_tab" ); | 33 | search_tab = new QWidget( this , "search_tab" ); |
34 | QVBoxLayout *vbox_layout_searchtab = new QVBoxLayout( search_tab, 4 , 4 ,"blah" ); | 34 | QVBoxLayout *vbox_layout_searchtab = new QVBoxLayout( search_tab, 4 , 4 ,"blah" ); |
35 | 35 | ||
36 | QHBox *hbox = new QHBox( search_tab ); | 36 | QHBox *hbox = new QHBox( search_tab ); |
37 | list = new QListView( hbox ); | 37 | list = new QListView( hbox ); |
38 | list->addColumn( tr( "Searchmethod" ) ); | 38 | list->addColumn( tr( "Searchmethod" ) ); |
39 | loadSearchMethodNames(); | 39 | loadSearchMethodNames(); |
40 | 40 | ||
41 | QVBox *vbox = new QVBox( hbox ); | 41 | QVBox *vbox = new QVBox( hbox ); |
42 | new_button = new QPushButton( tr( "New" ) , vbox ); | 42 | new_button = new QPushButton( tr( "New" ) , vbox ); |
43 | change_button = new QPushButton( tr( "Change" ) , vbox ); | 43 | change_button = new QPushButton( tr( "Change" ) , vbox ); |
44 | delete_button = new QPushButton( tr( "Delete" ) , vbox ); | 44 | delete_button = new QPushButton( tr( "Delete" ) , vbox ); |
45 | connect( new_button, SIGNAL( clicked() ), this, SLOT( slotNewMethod() ) ); | 45 | connect( new_button, SIGNAL( clicked() ), this, SLOT( slotNewMethod() ) ); |
46 | connect( change_button, SIGNAL( clicked() ), this, SLOT( slotChangeMethod() )); | 46 | connect( change_button, SIGNAL( clicked() ), this, SLOT( slotChangeMethod() )); |
47 | connect( delete_button, SIGNAL( clicked() ), this, SLOT( slotDeleteMethod() )); | 47 | connect( delete_button, SIGNAL( clicked() ), this, SLOT( slotDeleteMethod() )); |
48 | 48 | ||
49 | vbox_layout_searchtab->addWidget( hbox ); | 49 | vbox_layout_searchtab->addWidget( hbox ); |
50 | 50 | ||
51 | vbox_layout->addWidget( search_tab ); | 51 | vbox_layout->addWidget( search_tab ); |
52 | 52 | ||
53 | QPEApplication::execDialog( this ); | 53 | QPEApplication::showDialog( this ); |
54 | } | 54 | } |
55 | 55 | ||
56 | void ConfigDlg::slotNewMethod() | 56 | void ConfigDlg::slotNewMethod() |
57 | { | 57 | { |
58 | SearchMethodDlg dlg( this, "SearchMethodDlg", true ); | 58 | SearchMethodDlg dlg( this, "SearchMethodDlg", true ); |
59 | if ( dlg.exec() == QDialog::Accepted ) | 59 | if ( dlg.exec() == QDialog::Accepted ) |
60 | { | 60 | { |
61 | dlg.saveItem(); | 61 | dlg.saveItem(); |
62 | QListViewItem *item = new QListViewItem( list ); | 62 | QListViewItem *item = new QListViewItem( list ); |
63 | item->setText( 0 , dlg.nameLE->text() ); | 63 | item->setText( 0 , dlg.nameLE->text() ); |
64 | } | 64 | } |
65 | } | 65 | } |
66 | 66 | ||
67 | void ConfigDlg::slotChangeMethod() | 67 | void ConfigDlg::slotChangeMethod() |
68 | { | 68 | { |
69 | if ( list->selectedItem() ) | 69 | if ( list->selectedItem() ) |
70 | { | 70 | { |
71 | SearchMethodDlg dlg( this, "SearchMethodDlg", true, list->selectedItem()->text( 0 ) ); | 71 | SearchMethodDlg dlg( this, "SearchMethodDlg", true, list->selectedItem()->text( 0 ) ); |
72 | if ( dlg.exec() == QDialog::Accepted ) | 72 | if ( dlg.exec() == QDialog::Accepted ) |
73 | { | 73 | { |
74 | dlg.saveItem(); | 74 | dlg.saveItem(); |
75 | QListViewItem *item = list->selectedItem(); | 75 | QListViewItem *item = list->selectedItem(); |
76 | item->setText( 0 , dlg.nameLE->text() ); | 76 | item->setText( 0 , dlg.nameLE->text() ); |
77 | } | 77 | } |
78 | } | 78 | } |
79 | } | 79 | } |
80 | 80 | ||
81 | void ConfigDlg::slotDeleteMethod() | 81 | void ConfigDlg::slotDeleteMethod() |
82 | { | 82 | { |
83 | if ( list->selectedItem() ) | 83 | if ( list->selectedItem() ) |
84 | { | 84 | { |
85 | Config cfg ( "odict" ); | 85 | Config cfg ( "odict" ); |
86 | cfg.setGroup( "Method_"+list->selectedItem()->text(0) ); | 86 | cfg.setGroup( "Method_"+list->selectedItem()->text(0) ); |
87 | cfg.clearGroup(); | 87 | cfg.clearGroup(); |
88 | //FIXME: this only removes the entries but not the group itself | 88 | //FIXME: this only removes the entries but not the group itself |
89 | 89 | ||
90 | list->takeItem( list->selectedItem() ); | 90 | list->takeItem( list->selectedItem() ); |
91 | } | 91 | } |
92 | } | 92 | } |
93 | 93 | ||
94 | void ConfigDlg::loadSearchMethodNames() | 94 | void ConfigDlg::loadSearchMethodNames() |
95 | { | 95 | { |
96 | Config cfg( "odict" ); | 96 | Config cfg( "odict" ); |
97 | QStringList groupListCfg = cfg.groupList().grep( "Method_" ); | 97 | QStringList groupListCfg = cfg.groupList().grep( "Method_" ); |
98 | for ( QStringList::Iterator it = groupListCfg.begin() ; it != groupListCfg.end() ; ++it ) | 98 | for ( QStringList::Iterator it = groupListCfg.begin() ; it != groupListCfg.end() ; ++it ) |
99 | { | 99 | { |
100 | QListViewItem *item = new QListViewItem( list ); | ||
101 | cfg.setGroup( *it ); | 100 | cfg.setGroup( *it ); |
102 | item->setText( 0 , cfg.readEntry( "Name" ) ); | 101 | QString name = cfg.readEntry( "Name" ); |
102 | if ( name != QString::null ) { | ||
103 | QListViewItem *item = new QListViewItem( list ); | ||
104 | item->setText( 0 , name ); | ||
105 | } | ||
103 | } | 106 | } |
104 | } | 107 | } |
diff --git a/noncore/apps/odict/searchmethoddlg.cpp b/noncore/apps/odict/searchmethoddlg.cpp index 34e8b16..0425657 100644 --- a/noncore/apps/odict/searchmethoddlg.cpp +++ b/noncore/apps/odict/searchmethoddlg.cpp | |||
@@ -1,108 +1,108 @@ | |||
1 | /*************************************************************************** | 1 | /*************************************************************************** |
2 | application: : ODict | 2 | application: : ODict |
3 | 3 | ||
4 | begin : December 2002 | 4 | begin : December 2002 |
5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus | 5 | copyright : ( C ) 2002, 2003 by Carsten Niehaus |
6 | email : cniehaus@handhelds.org | 6 | email : cniehaus@handhelds.org |
7 | **************************************************************************/ | 7 | **************************************************************************/ |
8 | 8 | ||
9 | /*************************************************************************** | 9 | /*************************************************************************** |
10 | * * | 10 | * * |
11 | * This program is free software; you can redistribute it and/or modify * | 11 | * This program is free software; you can redistribute it and/or modify * |
12 | * it under the terms of the GNU General Public License as published by * | 12 | * it under the terms of the GNU General Public License as published by * |
13 | * the Free Software Foundation; either version 2 of the License, or * | 13 | * the Free Software Foundation; either version 2 of the License, or * |
14 | * ( at your option ) any later version. * | 14 | * ( at your option ) any later version. * |
15 | * * | 15 | * * |
16 | **************************************************************************/ | 16 | **************************************************************************/ |
17 | #include "searchmethoddlg.h" | 17 | #include "searchmethoddlg.h" |
18 | 18 | ||
19 | #include <opie2/ofileselector.h> | 19 | #include <opie2/ofileselector.h> |
20 | #include <opie2/ofiledialog.h> | 20 | #include <opie2/ofiledialog.h> |
21 | 21 | ||
22 | #include <qpe/config.h> | 22 | #include <qpe/config.h> |
23 | #include <qpe/qpeapplication.h> | 23 | #include <qpe/qpeapplication.h> |
24 | 24 | ||
25 | #include <qlayout.h> | 25 | #include <qlayout.h> |
26 | #include <qvbox.h> | 26 | #include <qvbox.h> |
27 | #include <qlabel.h> | 27 | #include <qlabel.h> |
28 | #include <qpushbutton.h> | 28 | #include <qpushbutton.h> |
29 | #include <qlineedit.h> | 29 | #include <qlineedit.h> |
30 | #include <qdir.h> | 30 | #include <qdir.h> |
31 | 31 | ||
32 | using namespace Opie::Ui; | 32 | using namespace Opie::Ui; |
33 | 33 | ||
34 | SearchMethodDlg::SearchMethodDlg(QWidget *parent, const char *name, bool modal, QString itemname) : QDialog(parent, name, modal) | 34 | SearchMethodDlg::SearchMethodDlg(QWidget *parent, const char *name, bool modal, QString itemname) : QDialog(parent, name, modal) |
35 | { | 35 | { |
36 | 36 | ||
37 | QVBoxLayout *vbox_layout = new QVBoxLayout( this, 4,4,"vbox_layout" ); | 37 | QVBoxLayout *vbox_layout = new QVBoxLayout( this, 4,4,"vbox_layout" ); |
38 | QVBox *vbox = new QVBox( this ); | 38 | QVBox *vbox = new QVBox( this ); |
39 | 39 | ||
40 | QHBox *hbox1 = new QHBox( vbox ); | 40 | QHBox *hbox1 = new QHBox( vbox ); |
41 | QLabel *nameLabel = new QLabel( tr( "Name:" ) , hbox1 ); | 41 | QLabel *nameLabel = new QLabel( tr( "Name:" ) , hbox1 ); |
42 | nameLE = new QLineEdit( hbox1 ); | 42 | nameLE = new QLineEdit( hbox1 ); |
43 | 43 | ||
44 | QLabel *dictLabel = new QLabel( tr( "Dictionary file" ), vbox ); | 44 | QLabel *dictLabel = new QLabel( tr( "Dictionary file" ), vbox ); |
45 | QHBox *hbox2 = new QHBox( vbox ); | 45 | QHBox *hbox2 = new QHBox( vbox ); |
46 | dictFileLE = new QLineEdit( hbox2 ); | 46 | dictFileLE = new QLineEdit( hbox2 ); |
47 | QPushButton *browseButton = new QPushButton( tr( "Browse" ) , hbox2 ); | 47 | QPushButton *browseButton = new QPushButton( tr( "Browse" ) , hbox2 ); |
48 | connect( browseButton, SIGNAL( clicked() ), this, SLOT( slotBrowse() ) ); | 48 | connect( browseButton, SIGNAL( clicked() ), this, SLOT( slotBrowse() ) ); |
49 | 49 | ||
50 | QWidget *dummywidget = new QWidget( vbox ); | 50 | QWidget *dummywidget = new QWidget( vbox ); |
51 | QLabel *lag1 = new QLabel( tr( "Language 1" ),dummywidget); | 51 | QLabel *lag1 = new QLabel( tr( "Language 1" ),dummywidget); |
52 | QLabel *devider = new QLabel( tr( "Decollator" ),dummywidget); | 52 | QLabel *devider = new QLabel( tr( "Decollator" ),dummywidget); |
53 | QLabel *lag2 = new QLabel( tr( "Language 2" ),dummywidget); | 53 | QLabel *lag2 = new QLabel( tr( "Language 2" ),dummywidget); |
54 | lang1 = new QLineEdit( dummywidget ); | 54 | lang1 = new QLineEdit( dummywidget ); |
55 | lang2 = new QLineEdit( dummywidget ); | 55 | lang2 = new QLineEdit( dummywidget ); |
56 | trenner = new QLineEdit( dummywidget ); | 56 | trenner = new QLineEdit( dummywidget ); |
57 | trenner->setText( "::" ); | 57 | trenner->setText( "::" ); |
58 | 58 | ||
59 | QGridLayout *grid = new QGridLayout( dummywidget, 2,3 ); | 59 | QGridLayout *grid = new QGridLayout( dummywidget, 2,3 ); |
60 | grid->addWidget( lag1, 0,0 ); | 60 | grid->addWidget( lag1, 0,0 ); |
61 | grid->addWidget( devider, 0,1 ); | 61 | grid->addWidget( devider, 0,1 ); |
62 | grid->addWidget( lag2, 0,2 ); | 62 | grid->addWidget( lag2, 0,2 ); |
63 | grid->addWidget( lang1, 1,0 ); | 63 | grid->addWidget( lang1, 1,0 ); |
64 | grid->addWidget( trenner, 1,1 ); | 64 | grid->addWidget( trenner, 1,1 ); |
65 | grid->addWidget( lang2, 1,2 ); | 65 | grid->addWidget( lang2, 1,2 ); |
66 | 66 | ||
67 | vbox_layout->addWidget( vbox ); | 67 | vbox_layout->addWidget( vbox ); |
68 | 68 | ||
69 | QPEApplication::execDialog ( this ); | ||
70 | |||
71 | if( !itemname ) | 69 | if( !itemname ) |
72 | setCaption( tr( "New Searchmethod" ) ); | 70 | setCaption( tr( "New Searchmethod" ) ); |
73 | else | 71 | else |
74 | { | 72 | { |
75 | setCaption( tr( "Change Searchmethod" ) ); | 73 | setCaption( tr( "Change Searchmethod" ) ); |
76 | itemName = itemname; | 74 | itemName = itemname; |
77 | setupEntries(itemname); | 75 | setupEntries(itemname); |
78 | } | 76 | } |
77 | |||
78 | QPEApplication::showDialog ( this ); | ||
79 | } | 79 | } |
80 | 80 | ||
81 | void SearchMethodDlg::setupEntries( QString item ) | 81 | void SearchMethodDlg::setupEntries( QString item ) |
82 | { | 82 | { |
83 | Config cfg( "odict" ); | 83 | Config cfg( "odict" ); |
84 | cfg.setGroup( "Method_"+itemName ); | 84 | cfg.setGroup( "Method_"+itemName ); |
85 | trenner->setText( cfg.readEntry( "Seperator" ) ); | 85 | trenner->setText( cfg.readEntry( "Seperator" ) ); |
86 | lang1->setText( cfg.readEntry( "Lang1" ) ); | 86 | lang1->setText( cfg.readEntry( "Lang1" ) ); |
87 | lang2->setText( cfg.readEntry( "Lang2" ) ); | 87 | lang2->setText( cfg.readEntry( "Lang2" ) ); |
88 | nameLE->setText( itemName ); | 88 | nameLE->setText( itemName ); |
89 | dictFileLE->setText( cfg.readEntry( "file" ) ); | 89 | dictFileLE->setText( cfg.readEntry( "file" ) ); |
90 | } | 90 | } |
91 | 91 | ||
92 | void SearchMethodDlg::slotBrowse() | 92 | void SearchMethodDlg::slotBrowse() |
93 | { | 93 | { |
94 | itemName=OFileDialog::getOpenFileName( OFileSelector::EXTENDED,QDir::homeDirPath()); | 94 | itemName=OFileDialog::getOpenFileName( OFileSelector::EXTENDED,QDir::homeDirPath()); |
95 | dictFileLE->setText( itemName ); | 95 | dictFileLE->setText( itemName ); |
96 | } | 96 | } |
97 | 97 | ||
98 | void SearchMethodDlg::saveItem() | 98 | void SearchMethodDlg::saveItem() |
99 | { | 99 | { |
100 | QString name = nameLE->text(); | 100 | QString name = nameLE->text(); |
101 | Config cfg( "odict" ); | 101 | Config cfg( "odict" ); |
102 | cfg.setGroup( "Method_"+name ); | 102 | cfg.setGroup( "Method_"+name ); |
103 | cfg.writeEntry( "Name", name ); | 103 | cfg.writeEntry( "Name", name ); |
104 | cfg.writeEntry( "Seperator", trenner->text() ); | 104 | cfg.writeEntry( "Seperator", trenner->text() ); |
105 | cfg.writeEntry( "Lang1", lang1->text() ); | 105 | cfg.writeEntry( "Lang1", lang1->text() ); |
106 | cfg.writeEntry( "Lang2", lang2->text() ); | 106 | cfg.writeEntry( "Lang2", lang2->text() ); |
107 | cfg.writeEntry( "file", dictFileLE->text() ); | 107 | cfg.writeEntry( "file", dictFileLE->text() ); |
108 | } | 108 | } |