forked from qt-creator/qt-creator
debugger: some cleanup after the model/view reorganization
This commit is contained in:
@@ -91,6 +91,8 @@
|
||||
#include <projectexplorer/target.h>
|
||||
#include <projectexplorer/toolchaintype.h>
|
||||
|
||||
#include <qt4projectmanager/qt4projectmanagerconstants.h>
|
||||
|
||||
#include <texteditor/basetexteditor.h>
|
||||
#include <texteditor/basetextmark.h>
|
||||
#include <texteditor/fontsettings.h>
|
||||
@@ -109,6 +111,9 @@
|
||||
#include <QtGui/QFileDialog>
|
||||
#include <QtGui/QMenu>
|
||||
#include <QtGui/QMessageBox>
|
||||
#include <QtGui/QPushButton>
|
||||
#include <QtGui/QTextBlock>
|
||||
#include <QtGui/QTextCursor>
|
||||
#include <QtGui/QToolButton>
|
||||
|
||||
#include <climits>
|
||||
@@ -1044,20 +1049,51 @@ public slots:
|
||||
{
|
||||
//removeTooltip();
|
||||
resetLocation();
|
||||
currentEngine()->executeJumpToLine(); // FIXME: move code from engine here.
|
||||
QString fileName;
|
||||
int lineNumber;
|
||||
if (currentTextEditorPosition(&fileName, &lineNumber))
|
||||
currentEngine()->executeJumpToLine(fileName, lineNumber);
|
||||
}
|
||||
|
||||
void handleExecRunToLine()
|
||||
{
|
||||
//removeTooltip();
|
||||
resetLocation();
|
||||
currentEngine()->executeRunToLine(); // FIXME: move code from engine here.
|
||||
QString fileName;
|
||||
int lineNumber;
|
||||
if (currentTextEditorPosition(&fileName, &lineNumber))
|
||||
currentEngine()->executeRunToLine(fileName, lineNumber);
|
||||
}
|
||||
|
||||
void handleExecRunToFunction()
|
||||
{
|
||||
resetLocation();
|
||||
currentEngine()->executeRunToFunction(); // FIXME: move code from engine here.
|
||||
ITextEditor *textEditor = currentTextEditor();
|
||||
QTC_ASSERT(textEditor, return);
|
||||
QPlainTextEdit *ed = qobject_cast<QPlainTextEdit*>(textEditor->widget());
|
||||
if (!ed)
|
||||
return;
|
||||
QTextCursor cursor = ed->textCursor();
|
||||
QString functionName = cursor.selectedText();
|
||||
if (functionName.isEmpty()) {
|
||||
const QTextBlock block = cursor.block();
|
||||
const QString line = block.text();
|
||||
foreach (const QString &str, line.trimmed().split('(')) {
|
||||
QString a;
|
||||
for (int i = str.size(); --i >= 0; ) {
|
||||
if (!str.at(i).isLetterOrNumber())
|
||||
break;
|
||||
a = str.at(i) + a;
|
||||
}
|
||||
if (!a.isEmpty()) {
|
||||
functionName = a;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!functionName.isEmpty())
|
||||
currentEngine()->executeRunToFunction(functionName);
|
||||
}
|
||||
|
||||
void slotEditBreakpoint()
|
||||
@@ -3129,6 +3165,37 @@ void DebuggerPlugin::remoteCommand(const QStringList &options, const QStringList
|
||||
qWarning("%s", qPrintable(errorMessage));
|
||||
}
|
||||
|
||||
void DebuggerPlugin::showQtDumperLibraryWarning(const QString &details)
|
||||
{
|
||||
QMessageBox dialog(mainWindow());
|
||||
QPushButton *qtPref = dialog.addButton(tr("Open Qt4 Options"),
|
||||
QMessageBox::ActionRole);
|
||||
QPushButton *helperOff = dialog.addButton(tr("Turn off Helper Usage"),
|
||||
QMessageBox::ActionRole);
|
||||
QPushButton *justContinue = dialog.addButton(tr("Continue Anyway"),
|
||||
QMessageBox::AcceptRole);
|
||||
dialog.setDefaultButton(justContinue);
|
||||
dialog.setWindowTitle(tr("Debugging Helper Missing"));
|
||||
dialog.setText(tr("The debugger could not load the debugging helper library."));
|
||||
dialog.setInformativeText(tr(
|
||||
"The debugging helper is used to nicely format the values of some Qt "
|
||||
"and Standard Library data types. "
|
||||
"It must be compiled for each used Qt version separately. "
|
||||
"On the Qt4 options page, select a Qt installation "
|
||||
"and click Rebuild."));
|
||||
if (!details.isEmpty())
|
||||
dialog.setDetailedText(details);
|
||||
dialog.exec();
|
||||
if (dialog.clickedButton() == qtPref) {
|
||||
Core::ICore::instance()->showOptionsDialog(
|
||||
_(Qt4ProjectManager::Constants::QT_SETTINGS_CATEGORY),
|
||||
_(Qt4ProjectManager::Constants::QTVERSION_SETTINGS_PAGE_ID));
|
||||
} else if (dialog.clickedButton() == helperOff) {
|
||||
theDebuggerAction(UseDebuggingHelpers)
|
||||
->setValue(qVariantFromValue(false), false);
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Testing
|
||||
|
||||
Reference in New Issue
Block a user