[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 89954] crashing with c++ parser (code compeletion wizard)
From:       kdevelop-bugs-admin () barney ! cs ! uni-potsdam ! de
Date:       2004-09-24 22:26:46
Message-ID: 20040924222646.25417.qmail () ktown ! kde ! org
[Download RAW message or body]

------- 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<QFileInfo> 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 <qdir.h>
 
 #include <klistbox.h>
 @ -16,13 +17,8  @
 #include <kdeversion.h>
 #include <klocale.h>
+#include <kmessagebox.h>
+#include <klineedit.h>
 
-// only for KDE < 3.1
-#if KDE_VERSION <= 305
-#include "../compat/kdeveditlistbox.h"
-//using namespace KDevCompat;
-#define KEditListBox KDevCompat::KEditListBox
-#else
 #include <keditlistbox.h>
-#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<KLineEdit*>(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("<qt><b>%1</b> is not a directory</qt>").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:


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic