author | harlekin <harlekin> | 2004-06-20 13:19:19 (UTC) |
---|---|---|
committer | harlekin <harlekin> | 2004-06-20 13:19:19 (UTC) |
commit | 9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd (patch) (side-by-side diff) | |
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 @@ /*************************************************************************** application: : ODict begin : December 2002 copyright : ( C ) 2002, 2003 by Carsten Niehaus email : cniehaus@handhelds.org **************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * ( at your option ) any later version. * * * **************************************************************************/ #include "configdlg.h" #include "searchmethoddlg.h" #include <qpe/qpeapplication.h> #include <qpe/config.h> #include <qlayout.h> #include <qvbox.h> #include <qlistview.h> #include <qpushbutton.h> #include <qlineedit.h> ConfigDlg::ConfigDlg(QWidget *parent, const char *name, bool modal) : QDialog(parent, name, modal) { setCaption( tr( "Options" ) ); QVBoxLayout *vbox_layout = new QVBoxLayout( this ); search_tab = new QWidget( this , "search_tab" ); QVBoxLayout *vbox_layout_searchtab = new QVBoxLayout( search_tab, 4 , 4 ,"blah" ); QHBox *hbox = new QHBox( search_tab ); list = new QListView( hbox ); list->addColumn( tr( "Searchmethod" ) ); loadSearchMethodNames(); - + QVBox *vbox = new QVBox( hbox ); new_button = new QPushButton( tr( "New" ) , vbox ); change_button = new QPushButton( tr( "Change" ) , vbox ); delete_button = new QPushButton( tr( "Delete" ) , vbox ); connect( new_button, SIGNAL( clicked() ), this, SLOT( slotNewMethod() ) ); connect( change_button, SIGNAL( clicked() ), this, SLOT( slotChangeMethod() )); connect( delete_button, SIGNAL( clicked() ), this, SLOT( slotDeleteMethod() )); - + vbox_layout_searchtab->addWidget( hbox ); vbox_layout->addWidget( search_tab ); - QPEApplication::execDialog( this ); + QPEApplication::showDialog( this ); } void ConfigDlg::slotNewMethod() { SearchMethodDlg dlg( this, "SearchMethodDlg", true ); if ( dlg.exec() == QDialog::Accepted ) { dlg.saveItem(); QListViewItem *item = new QListViewItem( list ); item->setText( 0 , dlg.nameLE->text() ); } } void ConfigDlg::slotChangeMethod() { if ( list->selectedItem() ) { SearchMethodDlg dlg( this, "SearchMethodDlg", true, list->selectedItem()->text( 0 ) ); if ( dlg.exec() == QDialog::Accepted ) { dlg.saveItem(); QListViewItem *item = list->selectedItem(); item->setText( 0 , dlg.nameLE->text() ); } } } void ConfigDlg::slotDeleteMethod() { if ( list->selectedItem() ) { Config cfg ( "odict" ); cfg.setGroup( "Method_"+list->selectedItem()->text(0) ); cfg.clearGroup(); //FIXME: this only removes the entries but not the group itself - + list->takeItem( list->selectedItem() ); } } void ConfigDlg::loadSearchMethodNames() { Config cfg( "odict" ); QStringList groupListCfg = cfg.groupList().grep( "Method_" ); for ( QStringList::Iterator it = groupListCfg.begin() ; it != groupListCfg.end() ; ++it ) { - QListViewItem *item = new QListViewItem( list ); cfg.setGroup( *it ); - item->setText( 0 , cfg.readEntry( "Name" ) ); + QString name = cfg.readEntry( "Name" ); + if ( name != QString::null ) { + QListViewItem *item = new QListViewItem( list ); + item->setText( 0 , name ); + } } } 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 @@ /*************************************************************************** application: : ODict begin : December 2002 copyright : ( C ) 2002, 2003 by Carsten Niehaus email : cniehaus@handhelds.org **************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * ( at your option ) any later version. * * * **************************************************************************/ #include "searchmethoddlg.h" #include <opie2/ofileselector.h> #include <opie2/ofiledialog.h> #include <qpe/config.h> #include <qpe/qpeapplication.h> #include <qlayout.h> #include <qvbox.h> #include <qlabel.h> #include <qpushbutton.h> #include <qlineedit.h> #include <qdir.h> using namespace Opie::Ui; SearchMethodDlg::SearchMethodDlg(QWidget *parent, const char *name, bool modal, QString itemname) : QDialog(parent, name, modal) { QVBoxLayout *vbox_layout = new QVBoxLayout( this, 4,4,"vbox_layout" ); QVBox *vbox = new QVBox( this ); QHBox *hbox1 = new QHBox( vbox ); QLabel *nameLabel = new QLabel( tr( "Name:" ) , hbox1 ); nameLE = new QLineEdit( hbox1 ); QLabel *dictLabel = new QLabel( tr( "Dictionary file" ), vbox ); QHBox *hbox2 = new QHBox( vbox ); dictFileLE = new QLineEdit( hbox2 ); QPushButton *browseButton = new QPushButton( tr( "Browse" ) , hbox2 ); connect( browseButton, SIGNAL( clicked() ), this, SLOT( slotBrowse() ) ); QWidget *dummywidget = new QWidget( vbox ); QLabel *lag1 = new QLabel( tr( "Language 1" ),dummywidget); QLabel *devider = new QLabel( tr( "Decollator" ),dummywidget); QLabel *lag2 = new QLabel( tr( "Language 2" ),dummywidget); lang1 = new QLineEdit( dummywidget ); lang2 = new QLineEdit( dummywidget ); trenner = new QLineEdit( dummywidget ); trenner->setText( "::" ); QGridLayout *grid = new QGridLayout( dummywidget, 2,3 ); grid->addWidget( lag1, 0,0 ); grid->addWidget( devider, 0,1 ); grid->addWidget( lag2, 0,2 ); grid->addWidget( lang1, 1,0 ); grid->addWidget( trenner, 1,1 ); grid->addWidget( lang2, 1,2 ); vbox_layout->addWidget( vbox ); - QPEApplication::execDialog ( this ); - if( !itemname ) setCaption( tr( "New Searchmethod" ) ); else { setCaption( tr( "Change Searchmethod" ) ); itemName = itemname; setupEntries(itemname); } + + QPEApplication::showDialog ( this ); } void SearchMethodDlg::setupEntries( QString item ) { Config cfg( "odict" ); cfg.setGroup( "Method_"+itemName ); trenner->setText( cfg.readEntry( "Seperator" ) ); lang1->setText( cfg.readEntry( "Lang1" ) ); lang2->setText( cfg.readEntry( "Lang2" ) ); nameLE->setText( itemName ); dictFileLE->setText( cfg.readEntry( "file" ) ); } void SearchMethodDlg::slotBrowse() { itemName=OFileDialog::getOpenFileName( OFileSelector::EXTENDED,QDir::homeDirPath()); dictFileLE->setText( itemName ); } void SearchMethodDlg::saveItem() { QString name = nameLE->text(); Config cfg( "odict" ); cfg.setGroup( "Method_"+name ); cfg.writeEntry( "Name", name ); cfg.writeEntry( "Seperator", trenner->text() ); cfg.writeEntry( "Lang1", lang1->text() ); cfg.writeEntry( "Lang2", lang2->text() ); cfg.writeEntry( "file", dictFileLE->text() ); } |