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

List:       kdevelop-devel
Subject:    gideon bugfixes
From:       Yann Hodique <Yann.Hodique () lifl ! fr>
Date:       2002-08-19 18:29:06
[Download RAW message or body]

Hi,

I've made some little bugfixes for "non-vital" features, but anyway it works better :-)

the first patch fixes the behavior for Qt/kdelibs (doxygen) documentation : 
- URL storage
- correct access (instead of current directory)

the second one fixes the file template management in cppsupport part :
- take into account user-defined templates
- really display the selected templates (implementation template wasn't visible)
- correct initialisation of "Project Options" -> "C++ specific" -> "File templates"
- add template item $FILENAME$ (for better compatibility with kdevelop project files)

Best regards.
Yann.
["doctree.diff" (application/octet-stream)]

Index: parts/doctreeview/doctreeglobalconfigwidget.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/doctreeview/doctreeglobalconfigwidget.cpp,v
retrieving revision 1.1
diff -u -r1.1 doctreeglobalconfigwidget.cpp
--- parts/doctreeview/doctreeglobalconfigwidget.cpp	20 Jun 2002 09:30:26 -0000	1.1
+++ parts/doctreeview/doctreeglobalconfigwidget.cpp	19 Aug 2002 17:52:54 -0000
@@ -15,7 +15,8 @@
 #include <qlineedit.h>
 #include <kconfig.h>
 #include <kprocess.h>
-
+//#include <kdebug.h>
+#include <iostream>
 #include "../../config.h"
 #include "domutil.h"
 #include "doctreeviewpart.h"
@@ -41,6 +42,7 @@
 
     config->setGroup("General");
     qtdocdirEdit->setText(config->readEntry("qtdocdir", QT_DOCDIR));
+
     kdelibsdoxydirEdit->setText(config->readEntry("kdelibsdocdir", KDELIBS_DOXYDIR));
     
     config->setGroup("Index");
@@ -58,7 +60,7 @@
 
     config->setGroup("General");
     config->writeEntry("qtdocdir", qtdocdirEdit->text());
-    config->readEntry("kdelibsdocdir", kdelibsdoxydirEdit->text());
+    config->writeEntry("kdelibsdocdir", kdelibsdoxydirEdit->text());
 
     config->setGroup("Index");
     config->writeEntry("IndexKDevelop", indexKDevelopBox->isChecked());

Index: parts/doctreeview/doctreeviewwidget.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/doctreeview/doctreeviewwidget.cpp,v
retrieving revision 1.24
diff -u -r1.24 doctreeviewwidget.cpp
--- parts/doctreeview/doctreeviewwidget.cpp	11 Aug 2002 17:17:43 -0000	1.24
+++ parts/doctreeview/doctreeviewwidget.cpp	19 Aug 2002 17:53:31 -0000
@@ -313,7 +313,7 @@
 
 DocTreeDoxygenBook::DocTreeDoxygenBook(DocTreeItem *parent, const QString &name,
                                        const QString &dirName, const QString &context)
-    : DocTreeItem(parent, Book, name, context),
+    : DocTreeItem(parent, Doc, name, context),
       dirname(dirName)
 {
     QString fileName = dirName + "/index.html";
@@ -383,9 +383,8 @@
     DocTreeItem::clear();
 
     KConfig *config = DocTreeViewFactory::instance()->config();
+    config->setGroup("General");
     QString docdir = config->readEntry("kdelibsdocdir", KDELIBS_DOXYDIR);
-//	kdDebug ( 9002 ) << "********************************** " << docdir << endl;
-//	docdir = "/usr/local/kde3/share/doc/HTML/en/kdelibs-apidocs";
     QDir d(docdir);
     QStringList fileList = d.entryList("*", QDir::Dirs);
 
Index: parts/doctreeview/kio_kdeapi.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/doctreeview/kio_kdeapi.cpp,v
retrieving revision 1.1
diff -u -r1.1 kio_kdeapi.cpp
--- parts/doctreeview/kio_kdeapi.cpp	20 Jun 2002 09:30:26 -0000	1.1
+++ parts/doctreeview/kio_kdeapi.cpp	19 Aug 2002 17:54:04 -0000
@@ -27,7 +27,7 @@
     config->setGroup("General");
     
     qtdocdir = config->readEntry("qtdocdir", QT_DOCDIR);
-    kdedocdir = config->readEntry("kdedocdir", KDELIBS_DOXYDIR);
+    kdedocdir = config->readEntry("kdelibsdocdir", KDELIBS_DOXYDIR);
 }
 
 

["templates.diff" (application/octet-stream)]

Index: lib/util/filetemplate.cpp
===================================================================
RCS file: /home/kde/kdevelop/lib/util/filetemplate.cpp,v
retrieving revision 1.5
diff -u -r1.5 filetemplate.cpp
--- lib/util/filetemplate.cpp	19 Apr 2002 13:56:49 -0000	1.5
+++ lib/util/filetemplate.cpp	19 Aug 2002 17:22:04 -0000
@@ -20,22 +20,22 @@
 #include "domutil.h"
 
 
-bool FileTemplate::exists(KDevPlugin *part, const QString &name)
+bool FileTemplate::exists(KDevPlugin *part, const QString &name, Policy p)
 {
     KDevProject *project = part->project();
-    QString fileName = project->projectDirectory() + "/templates/" + name;
+    QString fileName = (p == Default) ? (project->projectDirectory() + "/templates/" \
+ name) : name;  
     return QFile::exists(fileName);
 }
 
 
-QString FileTemplate::read(KDevPlugin *part, const QString &name)
+QString FileTemplate::read(KDevPlugin *part, const QString &name, Policy p)
 {
     KDevProject *project = part->project();
     QDomDocument &dom = *part->projectDom();
     
-    QString fileName = project->projectDirectory() + "/templates/" + name;
-
+    QString fileName = (p == Default) ? (project->projectDirectory() + "/templates/" \
+ name) : name; +    
     QFile f(fileName);
     if (!f.open(IO_ReadOnly))
         return QString::null;
@@ -59,9 +59,9 @@
 
 
 bool FileTemplate::copy(KDevPlugin *part, const QString &name,
-                        const QString &dest)
+                        const QString &dest, Policy p)
 {
-    QString text = read(part, name);
+    QString text = read(part, name, p);
 
     QFile f(dest);
     if (!f.open(IO_WriteOnly))

Index: lib/util/filetemplate.h
===================================================================
RCS file: /home/kde/kdevelop/lib/util/filetemplate.h,v
retrieving revision 1.5
diff -u -r1.5 filetemplate.h
--- lib/util/filetemplate.h	19 Apr 2002 13:56:49 -0000	1.5
+++ lib/util/filetemplate.h	19 Aug 2002 17:22:58 -0000
@@ -20,25 +20,27 @@
 class FileTemplate
 {
 public:
+    
+    typedef enum { Default, Custom } Policy;
     /**
      * Returns whether a template with the given name
      * exists in the current project. File templates
      * are stored in the "templates" subdirectory of a project.
      */
-    static bool exists(KDevPlugin *part, const QString &name);
+    static bool exists(KDevPlugin *part, const QString &name, Policy p = Default);
     /**
      * Reads a template with the given name (e.g. "cpp")
      * and makes variable substitutions (like $AUTHOR$ etc.)
      * in it. The resulting string is returned.
      */
-    static QString read(KDevPlugin *part, const QString &name);
+    static QString read(KDevPlugin *part, const QString &name, Policy p = Default);
     /**
      * Copies a file template with the given name to the
      * file with the name dest and - while copying -
      * performs variable substitutions.
      */
     static bool copy(KDevPlugin *part, const QString &name,
-                     const QString &dest);
+                     const QString &dest, Policy p = Default);
 };
 
 #endif

Index: parts/cppsupport/ccconfigwidget.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/cppsupport/ccconfigwidget.cpp,v
retrieving revision 1.14
diff -u -r1.14 ccconfigwidget.cpp
--- parts/cppsupport/ccconfigwidget.cpp	19 Jul 2002 15:28:04 -0000	1.14
+++ parts/cppsupport/ccconfigwidget.cpp	19 Aug 2002 17:23:41 -0000
@@ -292,9 +292,9 @@
         char *buf = new char[size];
         f.readBlock(&buf[0], size);
         QString text = QString::fromLocal8Bit(buf, size);
-        delete[] buf;
-        f.close();
-        interface_file->setText(buf);
+	f.close();
+        interface_file->setText(text);
+	delete[] buf;
     }
 }
 
@@ -306,9 +306,9 @@
         char *buf = new char[size];
         f.readBlock(&buf[0], size);
         QString text = QString::fromLocal8Bit(buf, size);
-        delete[] buf;
         f.close();
         implementation_file->setText(text);
+	delete[] buf;
     }
 }
 
@@ -409,6 +409,7 @@
 
 void CCConfigWidget::slotEnableChooseFiles(bool c)
 {
+    choose_files->setChecked(c);
     template_groups->setEnabled(!c);
     interface_url->setEnabled(c);
     implementation_url->setEnabled(c);

Index: parts/cppsupport/ccconfigwidgetbase.ui
===================================================================
RCS file: /home/kde/kdevelop/parts/cppsupport/ccconfigwidgetbase.ui,v
retrieving revision 1.12
diff -u -r1.12 ccconfigwidgetbase.ui
--- parts/cppsupport/ccconfigwidgetbase.ui	17 Aug 2002 01:45:40 -0000	1.12
+++ parts/cppsupport/ccconfigwidgetbase.ui	19 Aug 2002 17:24:25 -0000
@@ -1303,6 +1303,18 @@
         <slot>interfaceFile()</slot>
     </connection>
     <connection>
+        <sender>implementation_url</sender>
+        <signal>textChanged(const QString&amp;)</signal>
+        <receiver>CCConfigWidgetBase</receiver>
+        <slot>implementationFile()</slot>
+    </connection>
+    <connection>
+        <sender>implementation_url</sender>
+        <signal>urlSelected(const QString&amp;)</signal>
+        <receiver>CCConfigWidgetBase</receiver>
+        <slot>implementationFile()</slot>
+    </connection>
+    <connection>
         <sender>cbEnablePCS</sender>
         <signal>clicked()</signal>
         <receiver>CCConfigWidgetBase</receiver>

Index: parts/cppsupport/cppnewclassdlg.cpp
===================================================================
RCS file: /home/kde/kdevelop/parts/cppsupport/cppnewclassdlg.cpp,v
retrieving revision 1.7
diff -u -r1.7 cppnewclassdlg.cpp
--- parts/cppsupport/cppnewclassdlg.cpp	8 Aug 2002 10:33:15 -0000	1.7
+++ parts/cppsupport/cppnewclassdlg.cpp	19 Aug 2002 17:49:56 -0000
@@ -124,9 +124,13 @@
     QString doc = documentation_edit->text();
 
     QString istr;
-    if (filetemplate_box->isChecked())
-        istr = FileTemplate::read(m_part, "cpp");
-
+    if (filetemplate_box->isChecked()) {
+	QDomDocument dom = *m_part->projectDom();
+	if(DomUtil::readBoolEntry(dom,"/cppsupportpart/filetemplates/choosefiles",false))
+	    istr = FileTemplate::read(m_part, \
DomUtil::readEntry(dom,"/cppsupportpart/filetemplates/implementationURL",""), \
FileTemplate::Custom); +        else
+	    istr = FileTemplate::read(m_part, "cpp");
+    }
     if (objc) {
         istr += QString("\n"
                        "#include \"$HEADER$\"\n"
@@ -161,7 +165,8 @@
     istr.replace(QRegExp("\\$CLASSNAME\\$"), className);
     istr.replace(QRegExp("\\$BASECLASS\\$"), baseName);
     istr.replace(QRegExp("\\$ARGS\\$"), args);
-
+    istr.replace(QRegExp("\\$FILENAME\\$"), implementation);
+    
     QFile ifile(implementationPath);
     if (!ifile.open(IO_WriteOnly)) {
         KMessageBox::error(this, "Cannot write to implementation file");
@@ -172,9 +177,14 @@
     ifile.close();
     
     QString hstr;
-    if (filetemplate_box->isChecked())
-        hstr = FileTemplate::read(m_part, "templates/h");
-
+    if (filetemplate_box->isChecked()) {
+	QDomDocument dom = *m_part->projectDom();
+	if(DomUtil::readBoolEntry(dom,"/cppsupportpart/filetemplates/choosefiles",false))
+	    hstr = FileTemplate::read(m_part, \
DomUtil::readEntry(dom,"/cppsupportpart/filetemplates/interfaceURL",""), \
FileTemplate::Custom); +	else
+	    hstr = FileTemplate::read(m_part, "h");
+    }
+    
     if (objc) {
         hstr += QString("\n"
                         "#ifndef _$HEADERGUARD$_\n"
@@ -256,7 +266,8 @@
     hstr.replace(QRegExp("\\$INHERITANCE\\$"), inheritance);
     hstr.replace(QRegExp("\\$QOBJECT\\$"), qobject);
     hstr.replace(QRegExp("\\$ARGS\\$"), args);
-
+    hstr.replace(QRegExp("\\$FILENAME\\$"), header);
+    
     QFile hfile(headerPath);
     if (!hfile.open(IO_WriteOnly)) {
         KMessageBox::error(this, "Cannot write to header file");


_______________________________________________
Kdevelop-devel mailing list
Kdevelop-devel@barney.cs.uni-potsdam.de
http://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-devel

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

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