forked from qt-creator/qt-creator
Merge remote branch 'origin/1.3'
Conflicts: doc/qtcreator.qdoc doc/qtcreator.qdocconf src/app/Info.plist src/plugins/bineditor/BinEditor.pluginspec src/plugins/bookmarks/Bookmarks.pluginspec src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec src/plugins/coreplugin/Core.pluginspec src/plugins/coreplugin/coreconstants.h src/plugins/cpaster/CodePaster.pluginspec src/plugins/cppeditor/CppEditor.pluginspec src/plugins/cppeditor/cppeditor.cpp src/plugins/cpptools/CppTools.pluginspec src/plugins/cvs/CVS.pluginspec src/plugins/debugger/Debugger.pluginspec src/plugins/debugger/debuggeragents.cpp src/plugins/debugger/gdb/gdbengine.cpp src/plugins/designer/Designer.pluginspec src/plugins/fakevim/FakeVim.pluginspec src/plugins/find/Find.pluginspec src/plugins/genericprojectmanager/GenericProjectManager.pluginspec src/plugins/git/ScmGit.pluginspec src/plugins/helloworld/HelloWorld.pluginspec src/plugins/help/Help.pluginspec src/plugins/locator/Locator.pluginspec src/plugins/perforce/Perforce.pluginspec src/plugins/projectexplorer/ProjectExplorer.pluginspec src/plugins/qmleditor/QmlEditor.pluginspec src/plugins/qmleditor/idcollector.cpp src/plugins/qmleditor/idcollector.h src/plugins/qmleditor/parser/qmljsglobal_p.h src/plugins/qmleditor/qmlcodecompletion.cpp src/plugins/qmleditor/qmlcodeformatter.cpp src/plugins/qmleditor/qmlcodeformatter.h src/plugins/qmleditor/qmlexpressionundercursor.cpp src/plugins/qmleditor/qmllookupcontext.cpp src/plugins/qmleditor/qmlresolveexpression.cpp src/plugins/qmleditor/qmlsymbol.cpp src/plugins/qmleditor/qmlsymbol.h src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec src/plugins/qtscripteditor/QtScriptEditor.pluginspec src/plugins/regexp/RegExp.pluginspec src/plugins/resourceeditor/ResourceEditor.pluginspec src/plugins/snippets/Snippets.pluginspec src/plugins/subversion/Subversion.pluginspec src/plugins/texteditor/TextEditor.pluginspec src/plugins/vcsbase/VCSBase.pluginspec src/plugins/welcome/Welcome.pluginspec src/shared/qml/parser/qmljsast.cpp src/shared/qml/parser/qmljsast_p.h src/shared/qml/parser/qmljsastfwd_p.h src/shared/qml/parser/qmljsastvisitor.cpp src/shared/qml/parser/qmljsastvisitor_p.h src/shared/qml/parser/qmljsengine_p.cpp src/shared/qml/parser/qmljsengine_p.h src/shared/qml/parser/qmljsgrammar.cpp src/shared/qml/parser/qmljsgrammar_p.h src/shared/qml/parser/qmljslexer.cpp src/shared/qml/parser/qmljslexer_p.h src/shared/qml/parser/qmljsmemorypool_p.h src/shared/qml/parser/qmljsnodepool_p.h src/shared/qml/parser/qmljsparser.cpp src/shared/qml/parser/qmljsparser_p.h
This commit is contained in:
2
dist/changes-1.3.1
vendored
2
dist/changes-1.3.1
vendored
@@ -34,6 +34,8 @@ Debugging
|
|||||||
* CDB: Fixed disassembler for 64 bit addresses
|
* CDB: Fixed disassembler for 64 bit addresses
|
||||||
* Fixed finding the file for build issues when mingw32-make is used
|
* Fixed finding the file for build issues when mingw32-make is used
|
||||||
* Ignore case of file name in breakpoint handling on Windows
|
* Ignore case of file name in breakpoint handling on Windows
|
||||||
|
* Fixed problems with gdb timing out and debugging sessions unexpectedly finishing
|
||||||
|
* Improved startup time of gdb sessions by not asking for all files known to gdb
|
||||||
|
|
||||||
Help
|
Help
|
||||||
* Don't switch to Help mode if help side bar is already visible
|
* Don't switch to Help mode if help side bar is already visible
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -493,12 +493,11 @@ Bookmark *BookmarkManager::bookmarkForIndex(QModelIndex index)
|
|||||||
|
|
||||||
bool BookmarkManager::gotoBookmark(Bookmark* bookmark)
|
bool BookmarkManager::gotoBookmark(Bookmark* bookmark)
|
||||||
{
|
{
|
||||||
if (!TextEditor::BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber())) {
|
using namespace TextEditor;
|
||||||
// Could not open editor
|
if (ITextEditor *editor = BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber()))
|
||||||
|
return (editor->currentLine() == bookmark->lineNumber());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
void BookmarkManager::nextInDocument()
|
void BookmarkManager::nextInDocument()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1515,10 +1515,17 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio
|
|||||||
}
|
}
|
||||||
const QRegExp regExp(keyRegExp);
|
const QRegExp regExp(keyRegExp);
|
||||||
|
|
||||||
|
const bool hasKey = !key.isEmpty();
|
||||||
foreach (TextEditor::CompletionItem item, m_completions) {
|
foreach (TextEditor::CompletionItem item, m_completions) {
|
||||||
if (regExp.indexIn(item.text) == 0) {
|
if (regExp.indexIn(item.text) == 0) {
|
||||||
item.relevance = (key.length() > 0 &&
|
if (hasKey) {
|
||||||
item.text.startsWith(key, Qt::CaseInsensitive)) ? 1 : 0;
|
if (item.text.startsWith(key, Qt::CaseSensitive)) {
|
||||||
|
item.relevance = 2;
|
||||||
|
} else if (m_caseSensitivity == Qt::CaseInsensitive
|
||||||
|
&& item.text.startsWith(key, Qt::CaseInsensitive)) {
|
||||||
|
item.relevance = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
(*completions) << item;
|
(*completions) << item;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -833,7 +833,6 @@ int GdbEngine::commandTimeoutTime() const
|
|||||||
|
|
||||||
void GdbEngine::commandTimeout()
|
void GdbEngine::commandTimeout()
|
||||||
{
|
{
|
||||||
qDebug("TIMEOUT");
|
|
||||||
QList<int> keys = m_cookieForToken.keys();
|
QList<int> keys = m_cookieForToken.keys();
|
||||||
qSort(keys);
|
qSort(keys);
|
||||||
bool killIt = false;
|
bool killIt = false;
|
||||||
@@ -851,10 +850,10 @@ void GdbEngine::commandTimeout()
|
|||||||
debugMessage(_("TIMED OUT WAITING FOR GDB REPLY. COMMANDS STILL IN PROGRESS:"));
|
debugMessage(_("TIMED OUT WAITING FOR GDB REPLY. COMMANDS STILL IN PROGRESS:"));
|
||||||
int timeOut = m_commandTimer->interval();
|
int timeOut = m_commandTimer->interval();
|
||||||
//m_commandTimer->stop();
|
//m_commandTimer->stop();
|
||||||
QString msg = tr("The gdb process has not produced any response "
|
const QString msg = tr("The gdb process has not responded "
|
||||||
"to a command within %1 seconds. This may been it is stuck "
|
"to a command within %1 seconds. This could mean it is stuck "
|
||||||
"in an endless loop or taking longer than expected to perform "
|
"in an endless loop or taking longer than expected to perform "
|
||||||
"the operation it was reqested.\nYou have a choice of waiting "
|
"the operation.\nYou can choose between waiting "
|
||||||
"longer or abort debugging.").arg(timeOut / 1000);
|
"longer or abort debugging.").arg(timeOut / 1000);
|
||||||
QMessageBox *mb = showMessageBox(QMessageBox::Critical,
|
QMessageBox *mb = showMessageBox(QMessageBox::Critical,
|
||||||
tr("Gdb not responding"), msg,
|
tr("Gdb not responding"), msg,
|
||||||
@@ -3453,6 +3452,17 @@ void GdbEngine::handleDebuggingHelperValue2(const GdbResponse &response)
|
|||||||
WatchData data = response.cookie.value<WatchData>();
|
WatchData data = response.cookie.value<WatchData>();
|
||||||
QTC_ASSERT(data.isValid(), return);
|
QTC_ASSERT(data.isValid(), return);
|
||||||
|
|
||||||
|
// The real dumper might have aborted without giving any answers.
|
||||||
|
// Remove traces of the question, too.
|
||||||
|
if (m_cookieForToken.contains(response.token - 1)) {
|
||||||
|
m_cookieForToken.remove(response.token - 1);
|
||||||
|
debugMessage(_("DETECTING LOST COMMAND %1").arg(response.token - 1));
|
||||||
|
--m_pendingRequests;
|
||||||
|
data.setError(WatchData::msgNotInScope());
|
||||||
|
insertData(data);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
//qDebug() << "CUSTOM VALUE RESULT:" << response.toString();
|
//qDebug() << "CUSTOM VALUE RESULT:" << response.toString();
|
||||||
//qDebug() << "FOR DATA:" << data.toString() << response.resultClass;
|
//qDebug() << "FOR DATA:" << data.toString() << response.resultClass;
|
||||||
if (response.resultClass != GdbResultDone) {
|
if (response.resultClass != GdbResultDone) {
|
||||||
|
|||||||
@@ -6,8 +6,8 @@
|
|||||||
<rect>
|
<rect>
|
||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>397</width>
|
<width>480</width>
|
||||||
<height>322</height>
|
<height>371</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QVBoxLayout" name="verticalLayout">
|
<layout class="QVBoxLayout" name="verticalLayout">
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="0" column="1">
|
<item row="0" column="1">
|
||||||
<widget class="Utils::PathChooser" name="gdbLocationChooser" native="true"/>
|
<widget class="Utils::PathChooser" name="gdbLocationChooser"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
<item row="1" column="0">
|
||||||
<widget class="QLabel" name="labelEnvironment">
|
<widget class="QLabel" name="labelEnvironment">
|
||||||
@@ -63,7 +63,7 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="2" column="1">
|
<item row="2" column="1">
|
||||||
<widget class="Utils::PathChooser" name="scriptFileChooser" native="true"/>
|
<widget class="Utils::PathChooser" name="scriptFileChooser"/>
|
||||||
</item>
|
</item>
|
||||||
<item row="3" column="0" colspan="2">
|
<item row="3" column="0" colspan="2">
|
||||||
<widget class="QCheckBox" name="checkBoxUsePreciseBreakpoints">
|
<widget class="QCheckBox" name="checkBoxUsePreciseBreakpoints">
|
||||||
@@ -88,11 +88,11 @@ name in different directories.</string>
|
|||||||
<item row="4" column="1">
|
<item row="4" column="1">
|
||||||
<widget class="QSpinBox" name="spinBoxGdbWatchdogTimeout">
|
<widget class="QSpinBox" name="spinBoxGdbWatchdogTimeout">
|
||||||
<property name="toolTip">
|
<property name="toolTip">
|
||||||
<string>This is the number of second Qt Creator will wait before
|
<string>This is the number of seconds Qt Creator will wait before
|
||||||
it terminates non-reacting gdb process. The default value of 20 seconds
|
it terminates non-responsive gdb process. The default value of 20 seconds
|
||||||
should be sufficient for most applications, but there are situations when
|
should be sufficient for most applications, but there are situations when
|
||||||
loading big libraries or listing source files takes much longer than that
|
loading big libraries or listing source files takes much longer than that
|
||||||
on slow machines. In this case the value should be increased.</string>
|
on slow machines. In this case, the value should be increased.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="layoutDirection">
|
<property name="layoutDirection">
|
||||||
<enum>Qt::LeftToRight</enum>
|
<enum>Qt::LeftToRight</enum>
|
||||||
|
|||||||
@@ -3634,11 +3634,11 @@ QString BaseTextEditor::autoComplete(QTextCursor &cursor, const QString &textToI
|
|||||||
const QString brackets = QLatin1String("[]");
|
const QString brackets = QLatin1String("[]");
|
||||||
if (parentheses.contains(character) || brackets.contains(character)) {
|
if (parentheses.contains(character) || brackets.contains(character)) {
|
||||||
QTextCursor tmp= cursor;
|
QTextCursor tmp= cursor;
|
||||||
TextEditor::TextBlockUserData::findPreviousBlockOpenParenthesis(&tmp);
|
bool foundBlockStart = TextEditor::TextBlockUserData::findPreviousBlockOpenParenthesis(&tmp);
|
||||||
int blockStart = tmp.isNull() ? 0 : tmp.position();
|
int blockStart = foundBlockStart ? tmp.position() : 0;
|
||||||
tmp = cursor;
|
tmp = cursor;
|
||||||
TextEditor::TextBlockUserData::findNextBlockClosingParenthesis(&tmp);
|
bool foundBlockEnd = TextEditor::TextBlockUserData::findNextBlockClosingParenthesis(&tmp);
|
||||||
int blockEnd = tmp.isNull() ? (cursor.document()->characterCount()-1) : tmp.position();
|
int blockEnd = foundBlockEnd ? tmp.position() : (cursor.document()->characterCount() - 1);
|
||||||
const QChar openChar = parentheses.contains(character) ? QLatin1Char('(') : QLatin1Char('[');
|
const QChar openChar = parentheses.contains(character) ? QLatin1Char('(') : QLatin1Char('[');
|
||||||
const QChar closeChar = parentheses.contains(character) ? QLatin1Char(')') : QLatin1Char(']');
|
const QChar closeChar = parentheses.contains(character) ? QLatin1Char(')') : QLatin1Char(']');
|
||||||
|
|
||||||
|
|||||||
@@ -72,7 +72,12 @@ void BaseTextMark::editorOpened(Core::IEditor *editor)
|
|||||||
if (m_markableInterface == 0) { // We aren't added to something
|
if (m_markableInterface == 0) { // We aren't added to something
|
||||||
m_markableInterface = textEditor->markableInterface();
|
m_markableInterface = textEditor->markableInterface();
|
||||||
m_internalMark = new InternalMark(this);
|
m_internalMark = new InternalMark(this);
|
||||||
m_markableInterface->addMark(m_internalMark, m_line);
|
|
||||||
|
if (!m_markableInterface->addMark(m_internalMark, m_line)) {
|
||||||
|
delete m_internalMark;
|
||||||
|
m_internalMark = 0;
|
||||||
|
m_markableInterface = 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user