forked from qt-creator/qt-creator
Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta
This commit is contained in:
@@ -203,9 +203,7 @@ void CPPEditor::createToolBar(CPPEditorEditable *editable)
|
||||
m_methodCombo->setMaxVisibleItems(20);
|
||||
|
||||
m_overviewModel = new OverviewModel(this);
|
||||
m_noSymbolsModel = new QStringListModel(this);
|
||||
m_noSymbolsModel->setStringList(QStringList() << tr("<no symbols>"));
|
||||
m_methodCombo->setModel(m_noSymbolsModel);
|
||||
m_methodCombo->setModel(m_overviewModel);
|
||||
|
||||
connect(m_methodCombo, SIGNAL(activated(int)), this, SLOT(jumpToMethod(int)));
|
||||
connect(this, SIGNAL(cursorPositionChanged()), this, SLOT(updateMethodBoxIndex()));
|
||||
@@ -318,16 +316,9 @@ void CPPEditor::onDocumentUpdated(Document::Ptr doc)
|
||||
return;
|
||||
|
||||
m_overviewModel->rebuild(doc);
|
||||
if (m_overviewModel->rowCount() > 0) {
|
||||
if (m_methodCombo->model() != m_overviewModel)
|
||||
m_methodCombo->setModel(m_overviewModel);
|
||||
OverviewTreeView *treeView = static_cast<OverviewTreeView *>(m_methodCombo->view());
|
||||
treeView->sync();
|
||||
updateMethodBoxIndex();
|
||||
} else {
|
||||
if (m_methodCombo->model() != m_noSymbolsModel)
|
||||
m_methodCombo->setModel(m_noSymbolsModel);
|
||||
}
|
||||
OverviewTreeView *treeView = static_cast<OverviewTreeView *>(m_methodCombo->view());
|
||||
treeView->sync();
|
||||
updateMethodBoxIndex();
|
||||
}
|
||||
|
||||
void CPPEditor::updateFileName()
|
||||
@@ -335,8 +326,6 @@ void CPPEditor::updateFileName()
|
||||
|
||||
void CPPEditor::jumpToMethod(int)
|
||||
{
|
||||
if (m_methodCombo->model() != m_overviewModel)
|
||||
return;
|
||||
QModelIndex index = m_methodCombo->view()->currentIndex();
|
||||
Symbol *symbol = m_overviewModel->symbolFromIndex(index);
|
||||
if (! symbol)
|
||||
@@ -351,8 +340,6 @@ void CPPEditor::jumpToMethod(int)
|
||||
|
||||
void CPPEditor::updateMethodBoxIndex()
|
||||
{
|
||||
if (m_methodCombo->model() != m_overviewModel)
|
||||
return;
|
||||
int line = 0, column = 0;
|
||||
convertPosition(position(), &line, &column);
|
||||
|
||||
@@ -362,7 +349,7 @@ void CPPEditor::updateMethodBoxIndex()
|
||||
for (int row = 0; row < rc; ++row) {
|
||||
const QModelIndex index = m_overviewModel->index(row, 0, QModelIndex());
|
||||
Symbol *symbol = m_overviewModel->symbolFromIndex(index);
|
||||
if (symbol->line() > unsigned(line))
|
||||
if (symbol && symbol->line() > unsigned(line))
|
||||
break;
|
||||
lastIndex = index;
|
||||
}
|
||||
|
||||
@@ -139,7 +139,6 @@ private:
|
||||
QList<int> m_contexts;
|
||||
QComboBox *m_methodCombo;
|
||||
CPlusPlus::OverviewModel *m_overviewModel;
|
||||
QStringListModel *m_noSymbolsModel;
|
||||
};
|
||||
|
||||
} // namespace Internal
|
||||
|
||||
@@ -115,7 +115,6 @@ public:
|
||||
void setWorkingCopy(const QMap<QString, QByteArray> &workingCopy);
|
||||
void setIncludePaths(const QStringList &includePaths);
|
||||
void setFrameworkPaths(const QStringList &frameworkPaths);
|
||||
void addIncludePath(const QString &path);
|
||||
void setProjectFiles(const QStringList &files);
|
||||
void run(QString &fileName);
|
||||
void operator()(QString &fileName);
|
||||
@@ -170,9 +169,6 @@ void CppPreprocessor::setIncludePaths(const QStringList &includePaths)
|
||||
void CppPreprocessor::setFrameworkPaths(const QStringList &frameworkPaths)
|
||||
{ m_frameworkPaths = frameworkPaths; }
|
||||
|
||||
void CppPreprocessor::addIncludePath(const QString &path)
|
||||
{ m_includePaths.append(path); }
|
||||
|
||||
void CppPreprocessor::setProjectFiles(const QStringList &files)
|
||||
{ m_projectFiles = files; }
|
||||
|
||||
@@ -488,14 +484,14 @@ void CppModelManager::ensureUpdated()
|
||||
if (! m_dirty)
|
||||
return;
|
||||
|
||||
m_projectFiles = updateProjectFiles();
|
||||
m_includePaths = updateIncludePaths();
|
||||
m_frameworkPaths = updateFrameworkPaths();
|
||||
m_definedMacros = updateDefinedMacros();
|
||||
m_projectFiles = internalProjectFiles();
|
||||
m_includePaths = internalIncludePaths();
|
||||
m_frameworkPaths = internalFrameworkPaths();
|
||||
m_definedMacros = internalDefinedMacros();
|
||||
m_dirty = false;
|
||||
}
|
||||
|
||||
QStringList CppModelManager::updateProjectFiles() const
|
||||
QStringList CppModelManager::internalProjectFiles() const
|
||||
{
|
||||
QStringList files;
|
||||
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
|
||||
@@ -504,10 +500,11 @@ QStringList CppModelManager::updateProjectFiles() const
|
||||
ProjectInfo pinfo = it.value();
|
||||
files += pinfo.sourceFiles;
|
||||
}
|
||||
files.removeDuplicates();
|
||||
return files;
|
||||
}
|
||||
|
||||
QStringList CppModelManager::updateIncludePaths() const
|
||||
QStringList CppModelManager::internalIncludePaths() const
|
||||
{
|
||||
QStringList includePaths;
|
||||
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
|
||||
@@ -516,10 +513,11 @@ QStringList CppModelManager::updateIncludePaths() const
|
||||
ProjectInfo pinfo = it.value();
|
||||
includePaths += pinfo.includePaths;
|
||||
}
|
||||
includePaths.removeDuplicates();
|
||||
return includePaths;
|
||||
}
|
||||
|
||||
QStringList CppModelManager::updateFrameworkPaths() const
|
||||
QStringList CppModelManager::internalFrameworkPaths() const
|
||||
{
|
||||
QStringList frameworkPaths;
|
||||
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
|
||||
@@ -528,10 +526,11 @@ QStringList CppModelManager::updateFrameworkPaths() const
|
||||
ProjectInfo pinfo = it.value();
|
||||
frameworkPaths += pinfo.frameworkPaths;
|
||||
}
|
||||
frameworkPaths.removeDuplicates();
|
||||
return frameworkPaths;
|
||||
}
|
||||
|
||||
QByteArray CppModelManager::updateDefinedMacros() const
|
||||
QByteArray CppModelManager::internalDefinedMacros() const
|
||||
{
|
||||
QByteArray macros;
|
||||
QMapIterator<ProjectExplorer::Project *, ProjectInfo> it(m_projects);
|
||||
@@ -588,6 +587,7 @@ void CppModelManager::updateProjectInfo(const ProjectInfo &pinfo)
|
||||
return;
|
||||
|
||||
m_projects.insert(pinfo.project, pinfo);
|
||||
m_dirty = true;
|
||||
}
|
||||
|
||||
QFuture<void> CppModelManager::refreshSourceFiles(const QStringList &sourceFiles)
|
||||
|
||||
@@ -133,10 +133,10 @@ private:
|
||||
}
|
||||
|
||||
void ensureUpdated();
|
||||
QStringList updateProjectFiles() const;
|
||||
QStringList updateIncludePaths() const;
|
||||
QStringList updateFrameworkPaths() const;
|
||||
QByteArray updateDefinedMacros() const;
|
||||
QStringList internalProjectFiles() const;
|
||||
QStringList internalIncludePaths() const;
|
||||
QStringList internalFrameworkPaths() const;
|
||||
QByteArray internalDefinedMacros() const;
|
||||
|
||||
static void parse(QFutureInterface<void> &future,
|
||||
CppPreprocessor *preproc,
|
||||
|
||||
Reference in New Issue
Block a user