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:
con
2010-01-12 18:02:04 +01:00
9 changed files with 296 additions and 186 deletions

2
dist/changes-1.3.1 vendored
View File

@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -493,12 +493,11 @@ Bookmark *BookmarkManager::bookmarkForIndex(QModelIndex index)
bool BookmarkManager::gotoBookmark(Bookmark* bookmark)
{
if (!TextEditor::BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber())) {
// Could not open editor
using namespace TextEditor;
if (ITextEditor *editor = BaseTextEditor::openEditorAt(bookmark->filePath(), bookmark->lineNumber()))
return (editor->currentLine() == bookmark->lineNumber());
return false;
}
return true;
}
void BookmarkManager::nextInDocument()
{

View File

@@ -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;
}
}

View File

@@ -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) {

View File

@@ -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>

View File

@@ -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(']');

View File

@@ -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;
}
}
}
}