summaryrefslogtreecommitdiff
authorharlekin <harlekin>2004-06-20 13:19:19 (UTC)
committer harlekin <harlekin>2004-06-20 13:19:19 (UTC)
commit9f4c73fe369f2a8052323c2b1ae21f3ce133b9fd (patch) (side-by-side diff)
treee5e0e4eb966be59ef350ac92710682857b006e15
parent3d49080501c6619f9bb323be9935d28f4458530f (diff)
downloadopie-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
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/odict/configdlg.cpp15
-rw-r--r--noncore/apps/odict/searchmethoddlg.cpp4
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
@@ -16,89 +16,92 @@
**************************************************************************/
#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
@@ -45,58 +45,58 @@ SearchMethodDlg::SearchMethodDlg(QWidget *parent, const char *name, bool modal,
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 );