diff options
Diffstat (limited to 'quanta/components/debugger/quantadebuggerinterface.cpp')
-rw-r--r-- | quanta/components/debugger/quantadebuggerinterface.cpp | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/quanta/components/debugger/quantadebuggerinterface.cpp b/quanta/components/debugger/quantadebuggerinterface.cpp new file mode 100644 index 00000000..bd9ba2e1 --- /dev/null +++ b/quanta/components/debugger/quantadebuggerinterface.cpp @@ -0,0 +1,176 @@ +/*************************************************************************** + debugmanager.cpp + ------------------ + begin : 2004-03-12 + copyright : (C) 2004 Linus McCabe <linus@mccabe.nu> + + ***************************************************************************/ + +/**************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include <ktexteditor/document.h> +#include <kdebug.h> +#include <klocale.h> +#include <kiconloader.h> +#include <kmessagebox.h> + +#include "debuggerinterface.h" +#include "quantadebuggerinterface.h" +#include "debuggermanager.h" +#include "debuggerui.h" +#include "pathmapper.h" +#include "project.h" +#include "viewmanager.h" +#include "document.h" + +class DebuggerBreakpoint; + +QuantaDebuggerInterface::QuantaDebuggerInterface (QObject *myparent, const char* name) + : DebuggerInterface(myparent, name) +{ + m_manager = static_cast<DebuggerManager*>(parent()); +} + +QuantaDebuggerInterface::~QuantaDebuggerInterface () +{} + +void QuantaDebuggerInterface::haveBreakpoint (const QString& file, int line) +{ + return m_manager->haveBreakpoint(file, line); +} + +void QuantaDebuggerInterface::havenoBreakpoint (const QString& file, int line) +{ + return m_manager->havenoBreakpoint(file, line); +} + +// Public help functions +bool QuantaDebuggerInterface::showStatus(const QString& message, bool log) +{ + return m_manager->showStatus(message, log); +} + +bool QuantaDebuggerInterface::setActiveLine(const QString& file, int line) +{ + return m_manager->setActiveLine(file, line); +} + +void QuantaDebuggerInterface::enableAction(const QString& action, bool enable) +{ + m_manager->enableAction(action, enable); +} + +void QuantaDebuggerInterface::fileOpened(const QString& file) +{ + m_manager->fileOpened(file); +} + +void QuantaDebuggerInterface::sendRequest(const KURL &url) +{ + m_manager->UI()->sendRequest(url); +} + +const QString QuantaDebuggerInterface::activeFileParts(const QString & str) +{ + QString newstr = str; + + // a/r = absolute/relative + // f/p/d = file/project/docroot + // n/d/p = name/dir/path + + // Filename, filedir and filepath + newstr.replace("%afn", ViewManager::ref()->activeDocument()->url().fileName()); + newstr.replace("%afd", ViewManager::ref()->activeDocument()->url().directory()); + newstr.replace("%afp", ViewManager::ref()->activeDocument()->url().path()); + + // filedir and filepath relative to project root + newstr.replace("%rfpp", KURL::relativePath(Project::ref()->projectBaseURL().path(), ViewManager::ref()->activeDocument()->url().path())); + newstr.replace("%rfpd", KURL::relativePath(Project::ref()->projectBaseURL().path(), ViewManager::ref()->activeDocument()->url().directory())); + + // filedir and filepath relative to document root + newstr.replace("%rfdp", KURL::relativePath(Project::ref()->documentFolderForURL(ViewManager::ref()->activeDocument()->url()).directory(), ViewManager::ref()->activeDocument()->url().path())); + newstr.replace("%rfdd", KURL::relativePath(Project::ref()->documentFolderForURL(ViewManager::ref()->activeDocument()->url()).directory(), ViewManager::ref()->activeDocument()->url().directory())); + + newstr.replace("%apd", Project::ref()->projectBaseURL().path()); + newstr.replace("%add", Project::ref()->documentFolderForURL(ViewManager::ref()->activeDocument()->url()).directory()); + + kdDebug(24002) << k_funcinfo << ", BaseURL " << Project::ref()->projectBaseURL().path() << ", active doc : " << ViewManager::ref()->activeDocument()->url().path() << ", documentFolderForURL" << Project::ref()->documentFolderForURL(ViewManager::ref()->activeDocument()->url()) << ", newstr" << newstr << endl; + + return newstr; +} + +void QuantaDebuggerInterface::showVariable(DebuggerVariable* var) +{ + m_manager->UI()->addVariable(var); +} + +DebuggerVariable *QuantaDebuggerInterface::newDebuggerVariable(const QString& name, const QString& value, int type) +{ + return new DebuggerVariable(name, value, type); +} + +DebuggerVariable *QuantaDebuggerInterface::newDebuggerVariable(const QString& name, const ValueList_t& values, int type) +{ + return new DebuggerVariable(name, values, type); +} + +void QuantaDebuggerInterface::showBreakpoint(const DebuggerBreakpoint &bp) +{ + m_manager->UI()->showBreakpoint(bp); +} + +void QuantaDebuggerInterface::refreshBreakpoints() +{ + m_manager->refreshBreakpoints(); +} + +DebuggerBreakpoint *QuantaDebuggerInterface::newDebuggerBreakpoint() +{ + return new DebuggerBreakpoint(); +} + +DebuggerBreakpoint *QuantaDebuggerInterface::findDebuggerBreakpoint(const QString& key) +{ + return m_manager->findDebuggerBreakpoint(key); +} + +/* +void QuantaDebuggerInterface::preWatchUpdate() +{ + m_manager->UI()->preWatchUpdate(); +} + +void QuantaDebuggerInterface::postWatchUpdate() +{ + m_manager->UI()->postWatchUpdate(); +}*/ + +// Path mapping +PathMapper* QuantaDebuggerInterface::Mapper() +{ + return m_manager->Mapper(); +} + +void QuantaDebuggerInterface::updateBreakpointKey( const DebuggerBreakpoint & bp, const QString & newkey ) +{ + m_manager->updateBreakpointKey(bp, newkey); +} + +void QuantaDebuggerInterface::backtraceClear( ) +{ + m_manager->UI()->backtraceClear(); +} + +void QuantaDebuggerInterface::backtraceShow( long level, BacktraceType type, const QString & filename, long line, const QString & func ) +{ + m_manager->UI()->backtraceShow(level, type, filename, line, func); +} + +#include "quantadebuggerinterface.moc" |