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:
@@ -109,7 +109,8 @@ QList<Locator::FilterEntry> CppCurrentDocumentFilter::matchesFor(QFutureInterfac
|
||||
void CppCurrentDocumentFilter::accept(Locator::FilterEntry selection) const
|
||||
{
|
||||
ModelItemInfo info = qvariant_cast<CppTools::Internal::ModelItemInfo>(selection.internalData);
|
||||
TextEditor::BaseTextEditor::openEditorAt(info.fileName, info.line);
|
||||
TextEditor::BaseTextEditor::openEditorAt(info.fileName, info.line, info.column,
|
||||
QString(), Core::EditorManager::ModeSwitch);
|
||||
}
|
||||
|
||||
void CppCurrentDocumentFilter::refresh(QFutureInterface<void> &future)
|
||||
|
||||
@@ -127,7 +127,8 @@ QList<Locator::FilterEntry> CppLocatorFilter::matchesFor(QFutureInterface<Locato
|
||||
void CppLocatorFilter::accept(Locator::FilterEntry selection) const
|
||||
{
|
||||
ModelItemInfo info = qvariant_cast<CppTools::Internal::ModelItemInfo>(selection.internalData);
|
||||
TextEditor::BaseTextEditor::openEditorAt(info.fileName, info.line, info.column);
|
||||
TextEditor::BaseTextEditor::openEditorAt(info.fileName, info.line, info.column,
|
||||
QString(), Core::EditorManager::ModeSwitch);
|
||||
}
|
||||
|
||||
void CppLocatorFilter::reset()
|
||||
|
||||
@@ -104,7 +104,8 @@ CppRefactoringFile::CppRefactoringFile(TextEditor::BaseTextEditor *editor, CPlus
|
||||
|
||||
Document::Ptr CppRefactoringFile::cppDocument() const
|
||||
{
|
||||
if (!m_cppDocument) {
|
||||
if (!m_cppDocument || !m_cppDocument->translationUnit() ||
|
||||
!m_cppDocument->translationUnit()->ast()) {
|
||||
const QString source = document()->toPlainText();
|
||||
const QString name = fileName();
|
||||
const Snapshot &snapshot = refactoringChanges()->snapshot();
|
||||
|
||||
@@ -264,7 +264,6 @@ QString CppToolsPlugin::correspondingHeaderOrSourceI(const QString &fileName) co
|
||||
|
||||
const QString privateHeaderSuffix = QLatin1String("_p");
|
||||
const QChar dot = QLatin1Char('.');
|
||||
QStringList candidates;
|
||||
// Check base matches 'source.h'-> 'source.cpp' and vice versa
|
||||
const QStringList::const_iterator scend = suffixes.constEnd();
|
||||
for (QStringList::const_iterator it = suffixes.constBegin(); it != scend; ++it) {
|
||||
|
||||
@@ -35,6 +35,9 @@
|
||||
#include <ASTVisitor.h>
|
||||
#include <TranslationUnit.h>
|
||||
|
||||
#include <coreplugin/icore.h>
|
||||
#include <coreplugin/mimedatabase.h>
|
||||
|
||||
using namespace CPlusPlus;
|
||||
using namespace CppTools;
|
||||
|
||||
@@ -298,7 +301,21 @@ InsertionLocation InsertionPointLocator::methodDeclarationInClass(
|
||||
}
|
||||
}
|
||||
|
||||
static bool isSourceFile(const QString &fileName)
|
||||
{
|
||||
const Core::MimeDatabase *mimeDb = Core::ICore::instance()->mimeDatabase();
|
||||
Core::MimeType cSourceTy = mimeDb->findByType(QLatin1String("text/x-csrc"));
|
||||
Core::MimeType cppSourceTy = mimeDb->findByType(QLatin1String("text/x-c++src"));
|
||||
Core::MimeType mSourceTy = mimeDb->findByType(QLatin1String("text/x-objcsrc"));
|
||||
QStringList suffixes = cSourceTy.suffixes();
|
||||
suffixes += cppSourceTy.suffixes();
|
||||
suffixes += mSourceTy.suffixes();
|
||||
QFileInfo fileInfo(fileName);
|
||||
return suffixes.contains(fileInfo.suffix());
|
||||
}
|
||||
|
||||
/// Currently, we return the end of fileName.cpp
|
||||
/// \todo take the definitions of the surrounding declarations into account
|
||||
QList<InsertionLocation> InsertionPointLocator::methodDefinition(
|
||||
Declaration *declaration) const
|
||||
{
|
||||
@@ -306,14 +323,29 @@ QList<InsertionLocation> InsertionPointLocator::methodDefinition(
|
||||
if (!declaration)
|
||||
return result;
|
||||
|
||||
Internal::CppToolsPlugin *cpptools = Internal::CppToolsPlugin::instance();
|
||||
const QString declFileName = QString::fromUtf8(declaration->fileName(),
|
||||
declaration->fileNameLength());
|
||||
QString target = declFileName;
|
||||
if (!isSourceFile(declFileName)) {
|
||||
Internal::CppToolsPlugin *cpptools = Internal::CppToolsPlugin::instance();
|
||||
QString candidate = cpptools->correspondingHeaderOrSource(declFileName);
|
||||
if (!candidate.isEmpty())
|
||||
target = candidate;
|
||||
}
|
||||
|
||||
const QString declFileName = QLatin1String(declaration->fileName());
|
||||
QString target = cpptools->correspondingHeaderOrSource(declFileName);
|
||||
Document::Ptr doc = m_refactoringChanges->file(target).cppDocument();
|
||||
if (doc.isNull())
|
||||
return result;
|
||||
|
||||
Snapshot simplified = m_refactoringChanges->snapshot().simplified(doc);
|
||||
if (Symbol *s = simplified.findMatchingDefinition(declaration)) {
|
||||
if (Function *f = s->asFunction()) {
|
||||
if (f->isConst() == declaration->type().isConst()
|
||||
&& f->isVolatile() == declaration->type().isVolatile())
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
TranslationUnit *xUnit = doc->translationUnit();
|
||||
unsigned tokenCount = xUnit->tokenCount();
|
||||
if (tokenCount < 2) // no tokens available
|
||||
|
||||
@@ -278,10 +278,10 @@ SymbolsFindFilterConfigWidget::SymbolsFindFilterConfigWidget(SymbolsFindFilter *
|
||||
connect(m_typeEnums, SIGNAL(clicked(bool)), this, SLOT(setState()));
|
||||
connect(m_typeDeclarations, SIGNAL(clicked(bool)), this, SLOT(setState()));
|
||||
|
||||
m_searchProjectsOnly = new QRadioButton(tr("Projects Only"));
|
||||
m_searchProjectsOnly = new QRadioButton(tr("Projects only"));
|
||||
layout->addWidget(m_searchProjectsOnly, 2, 1);
|
||||
|
||||
m_searchGlobal = new QRadioButton(tr("Global"));
|
||||
m_searchGlobal = new QRadioButton(tr("All files"));
|
||||
layout->addWidget(m_searchGlobal, 2, 2);
|
||||
|
||||
m_searchGroup = new QButtonGroup(this);
|
||||
|
||||
Reference in New Issue
Block a user