Commit 7199223a authored by con's avatar con
Browse files

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
parents 7f7e9d86 e28968bf
......@@ -34,6 +34,8 @@ Debugging
* CDB: Fixed disassembler for 64 bit addresses
* Fixed finding the file for build issues when mingw32-make is used
* 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
* Don't switch to Help mode if help side bar is already visible
......
......@@ -493,11 +493,10 @@ Bookmark *BookmarkManager::bookmarkForIndex(QModelIndex index)
bool BookmarkManager::gotoBookmark(Bookmark* bookmark)
{
if (!TextEditor::BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber())) {
// Could not open editor
return false;
}
return true;
using namespace TextEditor;
if (ITextEditor *editor = BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber()))
return (editor->currentLine() == bookmark->lineNumber());
return false;
}
void BookmarkManager::nextInDocument()
......
......@@ -1515,10 +1515,17 @@ void CppCodeCompletion::completions(QList<TextEditor::CompletionItem> *completio
}
const QRegExp regExp(keyRegExp);
const bool hasKey = !key.isEmpty();
foreach (TextEditor::CompletionItem item, m_completions) {
if (regExp.indexIn(item.text) == 0) {
item.relevance = (key.length() > 0 &&
item.text.startsWith(key, Qt::CaseInsensitive)) ? 1 : 0;
if (hasKey) {
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;
}
}
......
......@@ -106,7 +106,7 @@ void MemoryViewAgent::init(quint64 addr)
m_manager->showMessageBox(QMessageBox::Warning,
tr("No memory viewer available"),
tr("The memory contents cannot be shown as no viewer plugin "
"for binary data has been loaded."));
"for binary data has been loaded."));
deleteLater();
}
}
......
......@@ -833,7 +833,6 @@ int GdbEngine::commandTimeoutTime() const
void GdbEngine::commandTimeout()
{
qDebug("TIMEOUT");
QList<int> keys = m_cookieForToken.keys();
qSort(keys);
bool killIt = false;
......@@ -851,10 +850,10 @@ void GdbEngine::commandTimeout()
debugMessage(_("TIMED OUT WAITING FOR GDB REPLY. COMMANDS STILL IN PROGRESS:"));
int timeOut = m_commandTimer->interval();
//m_commandTimer->stop();
QString msg = tr("The gdb process has not produced any response "
"to a command within %1 seconds. This may been it is stuck "
const QString msg = tr("The gdb process has not responded "
"to a command within %1 seconds. This could mean it is stuck "
"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);
QMessageBox *mb = showMessageBox(QMessageBox::Critical,
tr("Gdb not responding"), msg,
......@@ -3453,6 +3452,17 @@ void GdbEngine::handleDebuggingHelperValue2(const GdbResponse &response)
WatchData data = response.cookie.value<WatchData>();
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() << "FOR DATA:" << data.toString() << response.resultClass;
if (response.resultClass != GdbResultDone) {
......
......@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>397</width>
<height>322</height>
<width>480</width>
<height>371</height>
</rect>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
......@@ -37,7 +37,7 @@
</widget>
</item>
<item row="0" column="1">
<widget class="Utils::PathChooser" name="gdbLocationChooser" native="true"/>
<widget class="Utils::PathChooser" name="gdbLocationChooser"/>
</item>
<item row="1" column="0">
<widget class="QLabel" name="labelEnvironment">
......@@ -63,7 +63,7 @@
</widget>
</item>
<item row="2" column="1">
<widget class="Utils::PathChooser" name="scriptFileChooser" native="true"/>
<widget class="Utils::PathChooser" name="scriptFileChooser"/>
</item>
<item row="3" column="0" colspan="2">
<widget class="QCheckBox" name="checkBoxUsePreciseBreakpoints">
......@@ -88,11 +88,11 @@ name in different directories.</string>
<item row="4" column="1">
<widget class="QSpinBox" name="spinBoxGdbWatchdogTimeout">
<property name="toolTip">
<string>This is the number of second Qt Creator will wait before
it terminates non-reacting gdb process. The default value of 20 seconds
<string>This is the number of seconds Qt Creator will wait before
it terminates non-responsive gdb process. The default value of 20 seconds
should be sufficient for most applications, but there are situations when
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 name="layoutDirection">
<enum>Qt::LeftToRight</enum>
......
......@@ -3634,11 +3634,11 @@ QString BaseTextEditor::autoComplete(QTextCursor &cursor, const QString &textToI
const QString brackets = QLatin1String("[]");
if (parentheses.contains(character) || brackets.contains(character)) {
QTextCursor tmp= cursor;
TextEditor::TextBlockUserData::findPreviousBlockOpenParenthesis(&tmp);
int blockStart = tmp.isNull() ? 0 : tmp.position();
bool foundBlockStart = TextEditor::TextBlockUserData::findPreviousBlockOpenParenthesis(&tmp);
int blockStart = foundBlockStart ? tmp.position() : 0;
tmp = cursor;
TextEditor::TextBlockUserData::findNextBlockClosingParenthesis(&tmp);
int blockEnd = tmp.isNull() ? (cursor.document()->characterCount()-1) : tmp.position();
bool foundBlockEnd = TextEditor::TextBlockUserData::findNextBlockClosingParenthesis(&tmp);
int blockEnd = foundBlockEnd ? tmp.position() : (cursor.document()->characterCount() - 1);
const QChar openChar = 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
m_markableInterface = textEditor->markableInterface();
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;
}
}
}
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment