1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
/***************************************************************************
* Copyright (C) 2003 by Roberto Raggi *
* roberto@kdevelop.org *
* *
* Copyright (C) 2006 by Jens Dagerbo *
* jens.dagerbo@swipnet.se *
* *
* 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 <qdir.h>
#include <klistbox.h>
#include <kcombobox.h>
#include <kurlrequester.h>
#include <kdeversion.h>
#include <klocale.h>
#include <kmessagebox.h>
#include <klineedit.h>
#include <keditlistbox.h>
// should be included after possible KEditListBox redefinition
#include "settingsdialog.h"
#include <qfile.h>
#include <qregexp.h>
#include <qlayout.h>
#include <qcheckbox.h>
#include <cstdlib>
SettingsDialog::SettingsDialog( QWidget* parent, const char* name, WFlags fl )
: SettingsDialogBase( parent, name, fl )
{
KURLRequester * req = new KURLRequester( this );
req->setMode( KFile::Directory );
KEditListBox::CustomEditor pCustomEditor;
pCustomEditor = req->customEditor();
elb = new KEditListBox( i18n( "Directories to Parse" ), pCustomEditor, this );
grid->addMultiCellWidget( elb, 3, 3, 0, grid->numCols() );
// connect( dbName_edit, SIGNAL( textChanged( const QString& ) ), this, SLOT( validate() ) );
connect( elb->addButton(), SIGNAL( clicked() ), this, SLOT( validate() ) );
connect( elb->removeButton(), SIGNAL( clicked() ), this, SLOT( validate() ) );
connect( elb, SIGNAL( added( const QString& ) ), this, SLOT( validateDirectory( const QString& ) ) );
}
SettingsDialog::~SettingsDialog()
{}
QString SettingsDialog::dbName( ) const
{
return QString();
// return dbName_edit->text();
}
QStringList SettingsDialog::dirs( ) const
{
return elb->items();
}
QString SettingsDialog::filePattern( ) const
{
return pattern_edit->text();
}
bool SettingsDialog::recursive( ) const
{
return recursive_box->isChecked();
}
void SettingsDialog::validate()
{
// emit enabled( !dbName_edit->text().isEmpty() && elb->listBox() ->count() > 0 );
emit enabled( elb->listBox()->count() > 0 );
}
void SettingsDialog::validateDirectory( const QString & dir )
{
QDir d( dir, QString::null, QDir::DefaultSort, QDir::Dirs );
if ( !d.exists() )
{
elb->lineEdit() ->setText( dir );
if ( QListBoxItem * item = elb->listBox() ->findItem( dir, Qt::ExactMatch ) )
{
elb->listBox() ->removeItem( elb->listBox() ->index( item ) );
}
QString errormsg = QString( "<qt><b>%1</b> is not a directory</qt>" ).arg( dir );
KMessageBox::error( 0, errormsg, "Couldn't find directory" );
}
emit enabled( elb->listBox()->count() > 0 );
}
#include "settingsdialog.moc"
//kate: indent-mode csands; tab-width 4; space-indent off;
|