------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. http://bugs.kde.org/show_bug.cgi?id=89954 jens.dagerbo swipnet se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution| |FIXED ------- Additional Comments From jens.dagerbo swipnet se 2004-09-25 00:26 ------- CVS commit by dagerbo: Reenabled the custom pcs importer plugin (desktop name conflict) and fixed a crash. CCMAIL: 89954-done bugs kde org A kdevpcscustomimporter.desktop 1.1 M +2 -1 Makefile.am 1.4 M +1 -1 kdevcustomimporter.cpp 1.4 M +21 -15 settingsdialog.cpp 1.6 M +1 -0 settingsdialog.h 1.3 R kdevcustomimporter.desktop 1.29 --- kdevelop/languages/cpp/pcsimporter/customimporter/Makefile.am #1.3:1.4 @ -3,7 +3,8 @ lib_LTLIBRARIES = libkdevcustomimporter.la -kde_services_DATA = kdevcustomimporter.desktop + noinst_HEADERS = kdevcustomimporter.h libkdevcustomimporter_la_SOURCES = kdevcustomimporter.cpp settingsdialog.cpp settingsdialogbase.ui libkdevcustomimporter_la_LIBADD = $(top_builddir)/lib/libkdevelop.la libkdevcustomimporter_la_LDFLAGS = -module $(all_libraries) $(KDE_PLUGIN) +kde_services_DATA = kdevpcscustomimporter.desktop --- kdevelop/languages/cpp/pcsimporter/customimporter/kdevcustomimporter.cpp #1.3:1.4 @ -94,5 +94,5 @ void KDevCustomImporter::processDir( con const QFileInfoList *dirEntries = dir.entryInfoList(); QPtrListIterator it(*dirEntries); - for (; it.current(); ++it) { + for (; dirEntries && it.current(); ++it) { QString fileName = it.current()->fileName(); if (fileName == "." || fileName == "..") --- kdevelop/languages/cpp/pcsimporter/customimporter/settingsdialog.cpp #1.5:1.6 @ -10,4 +10,5 @ ***************************************************************************/ +#include #include @ -16,13 +17,8 @ #include #include +#include +#include -// only for KDE < 3.1 -#if KDE_VERSION <= 305 -#include "../compat/kdeveditlistbox.h" -//using namespace KDevCompat; -#define KEditListBox KDevCompat::KEditListBox -#else #include -#endif // should be included after possible KEditListBox redefinition @ -43,13 +39,5 @ SettingsDialog::SettingsDialog(QWidget* req->setMode(KFile::Directory); KEditListBox::CustomEditor pCustomEditor; -#if KDE_VERSION > 305 pCustomEditor = req->customEditor(); -#else - QObjectList* pOL = req->queryList("KLineEdit"); // dirty hack :) - KLineEdit* pEdit = dynamic_cast(pOL->first()); - assert(pEdit); - KEditListBox::CustomEditor editor(req, pEdit); - pCustomEditor = editor; -#endif elb = new KEditListBox( i18n("Directories to Parse"), pCustomEditor, this ); @ -59,4 +47,5 @ SettingsDialog::SettingsDialog(QWidget* 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& )) ); } @ -85,4 +74,21 @ void SettingsDialog::validate() } +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("%1 is not a directory").arg( dir ); + KMessageBox::error( 0, errormsg, "Couldn't find directory" ); + } +} + #include "settingsdialog.moc" --- kdevelop/languages/cpp/pcsimporter/customimporter/settingsdialog.h #1.2:1.3 @ -36,4 +36,5 @ public: private slots: void validate(); + void validateDirectory( const QString & dir ); private: