From kde-commits Fri Jul 21 19:46:35 2006 From: Matt Broadstone Date: Fri, 21 Jul 2006 19:46:35 +0000 To: kde-commits Subject: KDE/kdelibs/khtml Message-Id: <1153511195.944821.26763.nullmailer () svn ! kde ! org> X-MARC-Message: https://marc.info/?l=kde-commits&m=115351213426132 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 #include #include +#include +#include +#include +#include +#include + + #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(document)) + qobject_cast(document)->setModifiedOnDiskWarning(true); + + m_documentList.append(document); + m_view = qobject_cast(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 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 #include +#include +#include +#include + #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 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 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 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; }