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

List:       kde-commits
Subject:    KDE/kdelibs/khtml
From:       Matt Broadstone <mbroadst () gmail ! com>
Date:       2006-07-21 19:46:35
Message-ID: 1153511195.944821.26763.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 564940 by mbroadst:

Switched from NumberedTextView to KTE stuff. Added ktexteditor as dependency for \
khtml in doing this.

 M  +1 -1      CMakeLists.txt  
 M  +50 -4     ecma/debugger/debugwindow.cpp  
 M  +13 -1     ecma/debugger/debugwindow.h  
 M  +5 -3      ecma/debugger/scriptsdock.cpp  
 M  +3 -0      ecma/debugger/scriptsdock.h  
 M  +3 -2      ecma/kjs_debugwin.cpp  


--- trunk/KDE/kdelibs/khtml/CMakeLists.txt #564939:564940
@@ -313,7 +313,7 @@
 
 kde4_add_library(khtml SHARED ${khtml_LIB_SRCS})
 
-target_link_libraries(khtml  ${KDE4_KDECORE_LIBS} kparts kdeprint kutils kde3support \
kwalletclient kjs ${JPEG_LIBRARIES} ${GIF_LIBRARIES} ${PNG_LIBRARIES} ) \
+target_link_libraries(khtml  ${KDE4_KDECORE_LIBS} ktexteditor kparts kdeprint kutils \
kde3support kwalletclient kjs ${JPEG_LIBRARIES} ${GIF_LIBRARIES} ${PNG_LIBRARIES} )  
 set_target_properties(khtml PROPERTIES VERSION 5.0.0 SOVERSION 5 )
 install(TARGETS khtml  DESTINATION ${LIB_INSTALL_DIR} )
--- trunk/KDE/kdelibs/khtml/ecma/debugger/debugwindow.cpp #564939:564940
@@ -38,7 +38,14 @@
 #include <kconfigbase.h>
 #include <kapplication.h>
 #include <kstringhandler.h>
+#include <kxmlguifactory.h>
 
+#include <ktexteditor/sessionconfiginterface.h>
+#include <ktexteditor/modificationinterface.h>
+#include <ktexteditor/editorchooser.h>
+#include <ktexteditor/cursor.h>
+
+
 #include "kjs_dom.h"
 #include "kjs_binding.h"
 #include "khtml_part.h"
@@ -108,7 +115,29 @@
     setCaption(i18n("JavaScript Debugger"));
     kDebug() << "creating DebugWindow" << endl;
 
+//  Testing KTextEditor stuff
     m_sourceEdit = new NumberedTextView;
+
+    m_editor = KTextEditor::EditorChooser::editor();
+
+    if ( !m_editor )
+    {
+        KMessageBox::error(this, i18n("A KDE text-editor component could not be \
found;\n" +                                      "please check your KDE \
installation.")); +        kapp->exit(1);
+    }
+
+    KTextEditor::Document *document = m_editor->createDocument(0);
+
+    // enable the modified on disk warning dialogs if any
+    if (qobject_cast<KTextEditor::ModificationInterface *>(document))
+        qobject_cast<KTextEditor::ModificationInterface \
*>(document)->setModifiedOnDiskWarning(true); +
+    m_documentList.append(document);
+    m_view = qobject_cast<KTextEditor::View*>(document->createView(this));
+    guiFactory()->addClient(m_view);
+//  End Testing
+
     m_watches = new WatchesDock;
     m_localVariables = new LocalVariablesDock;
     m_scripts = new ScriptsDock;
@@ -126,7 +155,8 @@
     QVBoxLayout *layout = new QVBoxLayout(mainFrame);
     layout->setSpacing(0);
     QSplitter *splitter = new QSplitter(Qt::Vertical);
-    splitter->addWidget(m_sourceEdit);
+//    splitter->addWidget(m_sourceEdit);
+    splitter->addWidget(m_view);
     splitter->addWidget(m_console);
     layout->addWidget(splitter);
 
@@ -137,6 +167,9 @@
     createMenus();
     createToolBars();
     createStatusBar();
+
+    connect(m_scripts, SIGNAL(displayScript(KJS::DebugDocument*)),
+            this, SLOT(displayScript(KJS::DebugDocument*)));
 }
 
 void DebugWindow::createActions()
@@ -209,7 +242,6 @@
 void DebugWindow::stopExecution()
 {
 //    KMessageBox::information(this, "Stop!");
-    m_localVariables->display(m_tempInterpreter);
 }
 
 void DebugWindow::continueExecution()
@@ -242,6 +274,7 @@
 {
     Q_UNUSED(exec);
 
+    kDebug() << "Testing..." << endl;
     kDebug() << "***************************** sourceParsed \
**************************************************" << endl  << "      sourceId: " << \
sourceId << endl  << "     sourceURL: " << sourceURL.qstring() << endl
@@ -264,9 +297,8 @@
 
             document = new DebugDocument(m_nextUrl, exec->dynamicInterpreter());
             m_documents[key] = document;
+   //         m_documents[key]->setFullSource(
 
-            m_tempInterpreter = exec->dynamicInterpreter();
-            // m_localVariables->display(exec->interpreter());
 //        }
     }
     else
@@ -343,3 +375,17 @@
     return true;
 }
 
+void DebugWindow::displayScript(KJS::DebugDocument *document)
+{
+    QList<SourceFragment> fragments = document->code();
+    foreach (SourceFragment fragment, fragments)
+    {
+        int line = fragment.baseLine;
+        int col = 0;
+
+        KTextEditor::Cursor cur = m_view->cursorPosition();
+        cur.setPosition(line, col);
+        m_view->insertText(fragment.source);
+    }
+}
+
--- trunk/KDE/kdelibs/khtml/ecma/debugger/debugwindow.h #564939:564940
@@ -32,10 +32,13 @@
 #include <kjs/value.h>
 #include <kjs_binding.h>
 
+#include <ktexteditor/document.h>
+#include <ktexteditor/view.h>
+#include <ktexteditor/editor.h>
+
 #include "khtml_pagecache.h"
 #include "khtml_part.h"
 #include "misc/decoder.h"
-
 #include "dom/dom_misc.h"
 
 class KActionCollection;
@@ -164,6 +167,9 @@
     bool eventFilter(QObject *obj, QEvent *evt);
 */
 
+private slots:
+    void displayScript(KJS::DebugDocument *document);
+
 private:
     void createActions();
     void createMenus();
@@ -180,6 +186,12 @@
     KAction *m_stepOutAct;
     KAction *m_stepOverAct;
 
+    // Text editing stuff
+    KTextEditor::Editor *m_editor;
+    KTextEditor::View *m_view;
+    QList<KTextEditor::Document*> m_documentList;
+
+
     NumberedTextView *m_sourceEdit;
     WatchesDock *m_watches;
     LocalVariablesDock *m_localVariables;
--- trunk/KDE/kdelibs/khtml/ecma/debugger/scriptsdock.cpp #564939:564940
@@ -44,6 +44,7 @@
             item = m_widget->topLevelItem(idx);
             item->setText(1, "multiple");
 
+/*
             item->takeChildren();
             QList<SourceFragment> fragments = document->code();
             foreach (SourceFragment fragment, fragments)
@@ -53,12 +54,14 @@
                 child->setText(1, fragment.source);
                 item->addChild(child);
             }
+        */
         }
         else
         {
             item = new QTreeWidgetItem;
             item->setText(0, document->url());
 
+/*
             QList<SourceFragment> fragments = document->code();
             foreach (SourceFragment fragment, fragments)
             {
@@ -67,7 +70,7 @@
                 child->setText(1, fragment.source);
                 item->addChild(child);
             }
-
+*/
             m_widget->addTopLevelItem(item);
             kDebug() << "added document for url: " << document->url() << endl;
         }
@@ -82,8 +85,7 @@
 void ScriptsDock::scriptSelected(QTreeWidgetItem *item, int column)
 {
     KJS::DebugDocument *doc = m_documents[item];
-    kDebug() << "   url: " << doc->url() << endl
-             << "source: " << doc->source() << endl;
+    emit displayScript(doc);
 }
 
 
--- trunk/KDE/kdelibs/khtml/ecma/debugger/scriptsdock.h #564939:564940
@@ -20,6 +20,9 @@
 
     void addDocument(KJS::DebugDocument *document);
 
+signals:
+    void displayScript(KJS::DebugDocument *document);
+
 private slots:
     void scriptSelected(QTreeWidgetItem *item, int column);
 
--- trunk/KDE/kdelibs/khtml/ecma/kjs_debugwin.cpp #564939:564940
@@ -147,6 +147,7 @@
   if (line.length()) {
     m_lines.append(line);
     int lineWidth = metrics.width(line);
+            m_documents[key]->setFullSource(
     if (lineWidth > width)
       width = lineWidth;
   }
@@ -261,9 +262,9 @@
       KHTMLPageCache::self()->saveData(part->cacheId(),&stream);
       QString str;
       if (data.size() == 0)
-	str = "";
+        str = "";
       else
-	str = decoder->decode(data.data(),data.size()) + decoder->flush();
+        str = decoder->decode(data.data(),data.size()) + decoder->flush();
       delete decoder;
       return str;
     }


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

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