forked from qt-creator/qt-creator
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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user