Merge remote branch 'origin/2.1'

Conflicts:
	README
	doc/qt-html-templates.qdocconf
	doc/qtcreator.qdoc
	doc/qtcreator.qdocconf
	share/qtcreator/templates/wizards/qtcreatorplugin/MyPlugin.pluginspec
	src/app/Info.plist
	src/plugins/bineditor/BinEditor.pluginspec
	src/plugins/bookmarks/Bookmarks.pluginspec
	src/plugins/classview/ClassView.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/cpptools/CppTools.pluginspec
	src/plugins/cvs/CVS.pluginspec
	src/plugins/debugger/Debugger.pluginspec
	src/plugins/debugger/breakhandler.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/imageviewer/ImageViewer.pluginspec
	src/plugins/locator/Locator.pluginspec
	src/plugins/mercurial/Mercurial.pluginspec
	src/plugins/perforce/Perforce.pluginspec
	src/plugins/projectexplorer/ProjectExplorer.pluginspec
	src/plugins/qmldesigner/QmlDesigner.pluginspec
	src/plugins/qmljseditor/QmlJSEditor.pluginspec
	src/plugins/qmljsinspector/QmlJSInspector.pluginspec
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec
	src/plugins/qt4projectmanager/Qt4ProjectManager.pluginspec
	src/plugins/regexp/RegExp.pluginspec
	src/plugins/resourceeditor/ResourceEditor.pluginspec
	src/plugins/snippets/Snippets.pluginspec
	src/plugins/subversion/Subversion.pluginspec
	src/plugins/tasklist/TaskList.pluginspec
	src/plugins/texteditor/TextEditor.pluginspec
	src/plugins/vcsbase/VCSBase.pluginspec
	src/plugins/welcome/Welcome.pluginspec
	tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp
	tests/manual/fakevim/fakevim.pro
	tests/manual/ssh/errorhandling/main.cpp
This commit is contained in:
Christian Kamm
2010-10-11 14:16:33 +02:00
413 changed files with 5788 additions and 8076 deletions

View File

@@ -973,7 +973,7 @@ void QmlJSTextEditor::updateOutlineIndexNow()
}
}
static UiQualifiedId *qualifiedTypeNameId(UiObjectMember *m)
static UiQualifiedId *qualifiedTypeNameId(Node *m)
{
if (UiObjectDefinition *def = cast<UiObjectDefinition *>(m))
return def->qualifiedTypeNameId;
@@ -1489,10 +1489,22 @@ void QmlJSTextEditor::updateToolTipNow()
if (m_contextPane && m_semanticInfo.isValid()) {
Node *newNode = m_semanticInfo.declaringMemberNoProperties(m_toolTipPosition);
m_contextPane->apply(editableInterface(), m_semanticInfo.lookupContext(), newNode, false, true);
m_oldCursorPosition = m_toolTipPosition;
QList<TextEditor::Internal::RefactorMarker> markers;
setRefactorMarkers(markers);
if (m_contextPane->isAvailable(editableInterface(), m_semanticInfo.lookupContext(), newNode)) {
if (UiQualifiedId *q = qualifiedTypeNameId(newNode)) {
const int start = q->identifierToken.begin();
for (; q; q = q->next) {
if (! q->next) {
const int end = q->identifierToken.end();
if (m_toolTipPosition >= start && m_toolTipPosition <= end) {
m_contextPane->apply(editableInterface(), m_semanticInfo.lookupContext(), newNode, false, true);
m_oldCursorPosition = m_toolTipPosition;
QList<TextEditor::Internal::RefactorMarker> markers;
setRefactorMarkers(markers);
}
}
}
}
}
}
}
@@ -1578,7 +1590,7 @@ void QmlJSTextEditor::wheelEvent(QWheelEvent *event)
LookupContext::Ptr lookupContext;
if (m_semanticInfo.isValid())
lookupContext = m_semanticInfo.lookupContext();
m_contextPane->apply(editableInterface(), lookupContext, m_semanticInfo.declaringMemberNoProperties(position()), false, true);
m_contextPane->apply(editableInterface(), lookupContext, m_semanticInfo.declaringMemberNoProperties(m_oldCursorPosition), false, true);
}
}

View File

@@ -28,9 +28,6 @@ namespace Internal {
QmlOutlineItem::QmlOutlineItem(QmlOutlineModel *model) :
m_outlineModel(model)
{
Qt::ItemFlags defaultFlags = flags();
setFlags(Qt::ItemIsDragEnabled | Qt::ItemIsDropEnabled | defaultFlags);
setEditable(false);
}
QVariant QmlOutlineItem::data(int role) const
@@ -242,8 +239,9 @@ private:
int indent;
};
QmlOutlineModel::QmlOutlineModel(QObject *parent) :
QStandardItemModel(parent)
QmlOutlineModel::QmlOutlineModel(QmlJSTextEditor *editor) :
QStandardItemModel(editor),
m_textEditor(editor)
{
m_icons = Icons::instance();
const QString resourcePath = Core::ICore::instance()->resourcePath();
@@ -335,6 +333,25 @@ bool QmlOutlineModel::dropMimeData(const QMimeData *data, Qt::DropAction action,
return false;
}
Qt::ItemFlags QmlOutlineModel::flags(const QModelIndex &index) const
{
if (!index.isValid())
return QStandardItemModel::flags(index);
Qt::ItemFlags flags = Qt::ItemIsSelectable|Qt::ItemIsEnabled;
// only allow drag&drop if we're in sync
if (m_semanticInfo.isValid()
&& m_semanticInfo.revision() == m_textEditor->editorRevision()) {
if (index.parent().isValid())
flags |= Qt::ItemIsDragEnabled;
if (index.data(ItemTypeRole) != NonElementBindingType)
flags |= Qt::ItemIsDropEnabled;
}
return flags;
}
Document::Ptr QmlOutlineModel::document() const
{
return m_semanticInfo.document;

View File

@@ -55,12 +55,13 @@ public:
NonElementBindingType // can be filtered out
};
QmlOutlineModel(QObject *parent = 0);
QmlOutlineModel(QmlJSTextEditor *editor);
// QStandardItemModel
QStringList mimeTypes() const;
QMimeData *mimeData(const QModelIndexList &indexes) const;
bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent);
Qt::ItemFlags flags(const QModelIndex &index) const;
QmlJS::Document::Ptr document() const;
void update(const SemanticInfo &semanticInfo);
@@ -124,6 +125,7 @@ private:
QHash<QmlOutlineItem*,QIcon> m_itemToIcon;
QHash<QmlOutlineItem*,QmlJS::AST::Node*> m_itemToNode;
QHash<QmlOutlineItem*,QmlJS::AST::UiQualifiedId*> m_itemToIdNode;
QmlJSTextEditor *m_textEditor;
friend class QmlOutlineModelSync;