Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Marco Bubke
flatpak-qt-creator
Commits
65d48ce4
Commit
65d48ce4
authored
Dec 11, 2008
by
hjk
Browse files
Merge branch '0.9.1-beta' of git@scm.dev.nokia.troll.no:creator/mainline into 0.9.1-beta
Conflicts: src/plugins/debugger/gdbtypemacros.ui
parents
a556ddad
8b6575a0
Changes
30
Hide whitespace changes
Inline
Side-by-side
doc/qtcreator.qdoc
View file @
65d48ce4
...
...
@@ -23,6 +23,8 @@
\o \inlineimage qtcreator.png
\o Qt Creator includes a wide range of useful features. Among them are:
\list 1
\o \bold{Smart Code Editor}: The code editor provides syntax
highlighting as well as code completion.
\o \bold{Qt4 Project Generating Wizard}: This wizard allows the user
to generate a project for a console application, a GUI application,
or a C++ library.
...
...
@@ -48,7 +50,7 @@
\o \l{Creating a Project in Qt Creator}
\o \l{Build Settings}
\o \l{Writing a Simple Program with Qt Creator}
\o \l{
Quick
Navigati
o
n}
\o \l{Navigatin
g Quickly Around Your Code
}
\o \l{Debugging with Qt Creator}
\o \l{Tips and Tricks}
\o \l{Glossary}
...
...
@@ -64,86 +66,85 @@
\title A Quick Tour Around Qt Creator
The labeled screenshot below shows some of the components of Qt Creator,
in
\gui Edit mode.
The labeled screenshot below shows some of the components of Qt Creator,
in
\gui Edit mode.
\image qtcreator-breakdown.png
\section1 The Mode Selectors
When working in Qt Creator, you can be in one of
five
modes: \bold
Project
,
\bold Edit, \bold Debug, \bold Help, and \bold Output.
When working in Qt Creator, you can be in one of
six
modes: \bold
Welcome
,
\bold Edit, \bold Debug, \bold
Projects, \bold
Help, and \bold Output.
Mode selectors allow you to quickly switch between tasks: Editing,
browsing the Qt
manual, setting up the build environment, etc. You can
Mode selectors allow you to quickly switch between tasks: Editing,
browsing
the Qt Creator
manual, setting up the build environment, etc. You can
activate a mode by either clicking on its mode selector, or using the
\l{keyboard-shortcuts}{corresponding shortcut}. Certain actions also
trigger a mode change, e.g., \gui{Debug}/\gui{Start Debugging} will switch
to the \gui Debug mode.
\list
\o \gui{Welcome Mode} - Displays a welcome screen allowing you to quickly
load recent sessions or individual projects. This is the
first mod
e
displayed
if Qt Creator is run without command line switches.
load recent sessions or individual projects. This is the
mode you will se
e
if Qt Creator is run without command line switches.
\o \gui{Edit Mode} - You can edit both project and source files here. An
optional sidebar on the left provides different views to navigate between
files.
\o \gui{Edit Mode} - Lets you edit both project and source files. A sidebar
on the left provides different views to navigate between files.
\o \gui{Debug Mode} - Provides various ways to inspect the state of the
program while debugging. See \l{qtcreator-debugging}{Debugging With Qt
Creator} for a hands-on description of
the
mode.
Creator} for a hands-on description of
how to use this
mode.
\o \gui{
Build & Run
Mode} - Lets you configure how projects can be built
and
executed. Under the list of projects, there are tabs to configure the
build
and run
settings.
\o \gui{
Projects
Mode} - Lets you configure how projects can be built
and
executed. Under the list of projects, there are tabs to configure the
build
, run, and editor
settings.
\o \gui{Help Mode} - Shows any documentation registered by Qt Assistant,
such as the Qt library and Qt Creator documentation.
\o \gui{Output Mode} - Lets you examine various
logs
in detail, for example
the task list, the
compile
r
and application output.
Some of these logs ca
n
also
be viewed
in the output panes.
\o \gui{Output Mode} - Lets you examine various
data
in detail, for example
build issues as well as
compile and application output.
This informatio
n
is
also
available
in the output panes.
\endlist
\section1 The Output Panes
The task pane in Qt Creator can display one
out
of four different panes:
Task List,
Search Results, Application Output, and
Compile Output. These
panes are available in all modes.
The task pane in Qt Creator can display one of four different panes:
\gui{Build Issues}, \gui{
Search Results
}
,
\gui{
Application Output
}
, and
\gui{Compile}. These
panes are available in all modes.
\section2
Task List
\section2
Build Issues
The
Task List
provides a list of i
mportant tasks such as
error messages
that need to be fixed. It filters out irrelevant output from the
compiler
and collects them in
the form of tasks
.
The
{Build Issues} pane
provides a list of i
ssues, e.g.,
error messages
or
warnings
that need to be fixed. It filters out irrelevant output from the
compiler
and collects them in
an organized way
.
\image qtcreator-
task-list
.png
\image qtcreator-
build-issues
.png
\section2 Search Results
The Search Results pane displays the results for global searches such
as
searching within a current document, files on disk, or all projects.
In
the screenshot below, we searched for all occurrences of \c{textfinder}
within the "/TextFinder" folder.
The
\gui{
Search Results
}
pane displays the results for global searches such
as
searching within a current document, files on disk, or all projects.
In
the screenshot below, we searched for all occurrences of \c{textfinder}
within the
\c{
"/TextFinder"
}
folder.
\image qtcreator-search-pane.png
\section2 Application Output
Th
is
pane displays the status of the program when
it is executed, as
well as
debug output,
for example
, output from qDebug().
Th
e \gui{Application Output}
pane displays the status of the program when
it is executed and
debug output,
e.g.
, output from qDebug().
\image qtcreator-application-output.png
\section2 Compile
Output
\section2 Compile
The Compile Output provides all the output from the compiler. In other
words, it is a more verbose version of the Task List.
The \gui{Compile} pane provides all the output from the compiler. In other
words, it is a more verbose version of information displayed in the
\gui{Build Issues}
\image qtcreator-compile-pane.png
...
...
@@ -521,7 +522,7 @@
\page creator-navigation.html
\nextpage creator-debugging.html
\title
Quick
Navigati
o
n
\title Navigatin
g Quickly Around Your Code
With Qt Creator, navigating to different locations in your project or on
your disk, such as files, classes and methods, is trivial using the input
...
...
src/app/main.cpp
View file @
65d48ce4
...
...
@@ -69,7 +69,7 @@ static const char *HELP_OPTION4 = "--help";
static
const
char
*
VERSION_OPTION
=
"-version"
;
static
const
char
*
CLIENT_OPTION
=
"-client"
;
typedef
Q
Se
t
<
ExtensionSystem
::
PluginSpec
*>
PluginSpecSet
;
typedef
Q
Lis
t
<
ExtensionSystem
::
PluginSpec
*>
PluginSpecSet
;
// Helpers for displaying messages. Note that there is no console on Windows.
#ifdef Q_WS_WIN
...
...
src/libs/cplusplus/CppDocument.cpp
View file @
65d48ce4
...
...
@@ -131,12 +131,16 @@ QString Document::fileName() const
QStringList
Document
::
includedFiles
()
const
{
return
_includedFiles
;
QStringList
files
;
foreach
(
const
Include
&
i
,
_includes
)
files
.
append
(
i
.
fileName
());
files
.
removeDuplicates
();
return
files
;
}
void
Document
::
addIncludeFile
(
const
QString
&
fileName
)
void
Document
::
addIncludeFile
(
const
QString
&
fileName
,
unsigned
line
)
{
_include
dFile
s
.
append
(
fileName
);
_includes
.
append
(
Include
(
fileName
,
line
)
);
}
void
Document
::
appendMacro
(
const
Macro
&
macro
)
...
...
src/libs/cplusplus/CppDocument.h
View file @
65d48ce4
...
...
@@ -65,7 +65,7 @@ public:
QString
fileName
()
const
;
QStringList
includedFiles
()
const
;
void
addIncludeFile
(
const
QString
&
fileName
);
void
addIncludeFile
(
const
QString
&
fileName
,
unsigned
line
);
void
appendMacro
(
const
Macro
&
macro
);
void
addMacroUse
(
const
Macro
&
macro
,
unsigned
offset
,
unsigned
length
);
...
...
@@ -181,6 +181,22 @@ public:
{
return
pos
>=
_begin
&&
pos
<
_end
;
}
};
class
Include
{
QString
_fileName
;
unsigned
_line
;
public:
Include
(
const
QString
&
fileName
,
unsigned
line
)
:
_fileName
(
fileName
),
_line
(
line
)
{
}
QString
fileName
()
const
{
return
_fileName
;
}
unsigned
line
()
const
{
return
_line
;
}
};
class
MacroUse
:
public
Block
{
Macro
_macro
;
...
...
@@ -196,6 +212,9 @@ public:
{
return
_macro
;
}
};
QList
<
Include
>
includes
()
const
{
return
_includes
;
}
QList
<
Block
>
skippedBlocks
()
const
{
return
_skippedBlocks
;
}
...
...
@@ -207,11 +226,11 @@ private:
private:
QString
_fileName
;
QStringList
_includedFiles
;
Control
*
_control
;
TranslationUnit
*
_translationUnit
;
Namespace
*
_globalNamespace
;
QList
<
DiagnosticMessage
>
_diagnosticMessages
;
QList
<
Include
>
_includes
;
QList
<
Macro
>
_definedMacros
;
QList
<
Block
>
_skippedBlocks
;
QList
<
MacroUse
>
_macroUses
;
...
...
src/libs/cplusplus/TypeOfExpression.cpp
View file @
65d48ce4
...
...
@@ -37,6 +37,7 @@
#include <TranslationUnit.h>
#include <cplusplus/LookupContext.h>
#include <cplusplus/ResolveExpression.h>
#include <cplusplus/pp.h>
using
namespace
CPlusPlus
;
...
...
@@ -53,9 +54,13 @@ void TypeOfExpression::setDocuments(const QMap<QString, Document::Ptr> &document
QList
<
TypeOfExpression
::
Result
>
TypeOfExpression
::
operator
()(
const
QString
&
expression
,
Document
::
Ptr
document
,
Symbol
*
lastVisibleSymbol
)
Symbol
*
lastVisibleSymbol
,
PreprocessMode
mode
)
{
Document
::
Ptr
expressionDoc
=
documentForExpression
(
expression
);
QString
code
=
expression
;
if
(
mode
==
Preprocess
)
code
=
preprocessedExpression
(
expression
,
m_documents
,
document
);
Document
::
Ptr
expressionDoc
=
documentForExpression
(
code
);
m_ast
=
extractExpressionAST
(
expressionDoc
);
m_lookupContext
=
LookupContext
(
lastVisibleSymbol
,
expressionDoc
,
...
...
@@ -97,3 +102,34 @@ Document::Ptr TypeOfExpression::documentForExpression(const QString &expression)
doc
->
parse
(
Document
::
ParseExpression
);
return
doc
;
}
void
TypeOfExpression
::
processEnvironment
(
QMap
<
QString
,
Document
::
Ptr
>
documents
,
Document
::
Ptr
doc
,
Environment
*
env
,
QSet
<
QString
>
*
processed
)
const
{
if
(
processed
->
contains
(
doc
->
fileName
()))
return
;
processed
->
insert
(
doc
->
fileName
());
foreach
(
const
Document
::
Include
&
incl
,
doc
->
includes
())
{
processEnvironment
(
documents
,
documents
.
value
(
incl
.
fileName
()),
env
,
processed
);
}
foreach
(
const
Macro
&
macro
,
doc
->
definedMacros
())
env
->
bind
(
macro
);
}
QString
TypeOfExpression
::
preprocessedExpression
(
const
QString
&
expression
,
QMap
<
QString
,
Document
::
Ptr
>
documents
,
Document
::
Ptr
thisDocument
)
const
{
Environment
env
;
QSet
<
QString
>
processed
;
processEnvironment
(
documents
,
thisDocument
,
&
env
,
&
processed
);
const
QByteArray
code
=
expression
.
toUtf8
();
pp
preproc
(
0
,
env
);
QByteArray
preprocessedCode
;
preproc
(
"<expression>"
,
code
,
&
preprocessedCode
);
return
QString
::
fromUtf8
(
preprocessedCode
);
}
src/libs/cplusplus/TypeOfExpression.h
View file @
65d48ce4
...
...
@@ -43,6 +43,9 @@
namespace
CPlusPlus
{
class
Environment
;
class
Macro
;
class
CPLUSPLUS_EXPORT
TypeOfExpression
{
public:
...
...
@@ -60,6 +63,11 @@ public:
*/
void
setDocuments
(
const
QMap
<
QString
,
Document
::
Ptr
>
&
documents
);
enum
PreprocessMode
{
NoPreprocess
,
Preprocess
};
/**
* Returns a list of possible fully specified types associated with the
* given expression.
...
...
@@ -73,7 +81,8 @@ public:
* @param lastVisibleSymbol The last visible symbol in the document.
*/
QList
<
Result
>
operator
()(
const
QString
&
expression
,
Document
::
Ptr
document
,
Symbol
*
lastVisibleSymbol
);
Symbol
*
lastVisibleSymbol
,
PreprocessMode
mode
=
NoPreprocess
);
/**
* Returns the AST of the last evaluated expression.
...
...
@@ -91,6 +100,14 @@ private:
ExpressionAST
*
extractExpressionAST
(
Document
::
Ptr
doc
)
const
;
Document
::
Ptr
documentForExpression
(
const
QString
&
expression
)
const
;
void
processEnvironment
(
QMap
<
QString
,
CPlusPlus
::
Document
::
Ptr
>
documents
,
CPlusPlus
::
Document
::
Ptr
doc
,
CPlusPlus
::
Environment
*
env
,
QSet
<
QString
>
*
processed
)
const
;
QString
preprocessedExpression
(
const
QString
&
expression
,
QMap
<
QString
,
CPlusPlus
::
Document
::
Ptr
>
documents
,
CPlusPlus
::
Document
::
Ptr
thisDocument
)
const
;
QMap
<
QString
,
Document
::
Ptr
>
m_documents
;
ExpressionAST
*
m_ast
;
LookupContext
m_lookupContext
;
...
...
src/libs/cplusplus/pp-client.h
View file @
65d48ce4
...
...
@@ -63,7 +63,8 @@ public:
{
}
virtual
void
macroAdded
(
const
Macro
&
macro
)
=
0
;
virtual
void
sourceNeeded
(
QString
&
fileName
,
IncludeType
mode
)
=
0
;
// ### FIX the signature.
virtual
void
sourceNeeded
(
QString
&
fileName
,
IncludeType
mode
,
unsigned
line
)
=
0
;
// ### FIX the signature.
virtual
void
startExpandingMacro
(
unsigned
offset
,
const
Macro
&
macro
,
...
...
src/libs/cplusplus/pp-engine.cpp
View file @
65d48ce4
...
...
@@ -818,7 +818,7 @@ void pp::processInclude(bool skipCurentPath,
QString
fn
=
QString
::
fromUtf8
(
path
.
constData
(),
path
.
length
());
if
(
client
)
client
->
sourceNeeded
(
fn
,
Client
::
IncludeGlobal
);
client
->
sourceNeeded
(
fn
,
Client
::
IncludeGlobal
,
firstToken
->
lineno
);
}
else
if
(
tk
->
is
(
T_ANGLE_STRING_LITERAL
)
||
tk
->
is
(
T_STRING_LITERAL
))
{
const
QByteArray
spell
=
tokenSpell
(
*
tk
);
const
char
*
beginOfPath
=
spell
.
constBegin
();
...
...
@@ -831,7 +831,7 @@ void pp::processInclude(bool skipCurentPath,
QString
fn
=
QString
::
fromUtf8
(
path
.
constData
(),
path
.
length
());
if
(
client
)
client
->
sourceNeeded
(
fn
,
Client
::
IncludeLocal
);
client
->
sourceNeeded
(
fn
,
Client
::
IncludeLocal
,
firstToken
->
lineno
);
}
}
}
...
...
src/libs/extensionsystem/optionsparser.cpp
View file @
65d48ce4
...
...
@@ -129,7 +129,7 @@ bool OptionsParser::checkForNoLoadOption()
"The plugin '%1' does not exist."
).
arg
(
m_currentArg
);
m_hasError
=
true
;
}
else
{
m_pmPrivate
->
pluginSpecs
.
remove
(
spec
);
m_pmPrivate
->
pluginSpecs
.
remove
All
(
spec
);
delete
spec
;
m_isDependencyRefreshNeeded
=
true
;
}
...
...
src/libs/extensionsystem/pluginmanager.cpp
View file @
65d48ce4
...
...
@@ -48,7 +48,7 @@
#include <QTest>
#endif
typedef
Q
Se
t
<
ExtensionSystem
::
PluginSpec
*>
PluginSpecSet
;
typedef
Q
Lis
t
<
ExtensionSystem
::
PluginSpec
*>
PluginSpecSet
;
enum
{
debugLeaks
=
0
};
...
...
@@ -162,6 +162,11 @@ enum { debugLeaks = 0 };
using
namespace
ExtensionSystem
;
using
namespace
ExtensionSystem
::
Internal
;
static
bool
lessThanByPluginName
(
const
PluginSpec
*
one
,
const
PluginSpec
*
two
)
{
return
one
->
name
()
<
two
->
name
();
}
PluginManager
*
PluginManager
::
m_instance
=
0
;
/*!
...
...
@@ -306,7 +311,7 @@ QStringList PluginManager::arguments() const
}
/*!
\fn Q
Se
t<PluginSpec *> PluginManager::plugins() const
\fn Q
Lis
t<PluginSpec *> PluginManager::plugins() const
List of all plugin specifications that have been found in the plugin search paths.
This list is valid directly after the setPluginPaths() call.
The plugin specifications contain the information from the plugins' xml description files
...
...
@@ -315,7 +320,7 @@ QStringList PluginManager::arguments() const
\sa setPluginPaths()
*/
Q
Se
t
<
PluginSpec
*>
PluginManager
::
plugins
()
const
Q
Lis
t
<
PluginSpec
*>
PluginManager
::
plugins
()
const
{
return
d
->
pluginSpecs
;
}
...
...
@@ -703,9 +708,11 @@ void PluginManagerPrivate::readPluginPaths()
foreach
(
const
QString
&
specFile
,
specFiles
)
{
PluginSpec
*
spec
=
new
PluginSpec
;
spec
->
d
->
read
(
specFile
);
pluginSpecs
.
insert
(
spec
);
pluginSpecs
.
append
(
spec
);
}
resolveDependencies
();
// ensure deterministic plugin load order by sorting
qSort
(
pluginSpecs
.
begin
(),
pluginSpecs
.
end
(),
lessThanByPluginName
);
emit
q
->
pluginsChanged
();
}
...
...
src/libs/extensionsystem/pluginmanager.h
View file @
65d48ce4
...
...
@@ -101,7 +101,7 @@ public:
void
loadPlugins
();
QStringList
pluginPaths
()
const
;
void
setPluginPaths
(
const
QStringList
&
paths
);
Q
Se
t
<
PluginSpec
*>
plugins
()
const
;
Q
Lis
t
<
PluginSpec
*>
plugins
()
const
;
void
setFileExtension
(
const
QString
&
extension
);
QString
fileExtension
()
const
;
...
...
src/libs/extensionsystem/pluginmanager_p.h
View file @
65d48ce4
...
...
@@ -66,7 +66,7 @@ public:
void
loadPlugin
(
PluginSpec
*
spec
,
PluginSpec
::
State
destState
);
void
resolveDependencies
();
Q
Se
t
<
PluginSpec
*>
pluginSpecs
;
Q
Lis
t
<
PluginSpec
*>
pluginSpecs
;
QList
<
PluginSpec
*>
testSpecs
;
QStringList
pluginPaths
;
QString
extension
;
...
...
src/libs/extensionsystem/pluginspec.cpp
View file @
65d48ce4
...
...
@@ -693,10 +693,10 @@ int PluginSpecPrivate::versionCompare(const QString &version1, const QString &ve
}
/*!
\fn bool PluginSpecPrivate::resolveDependencies(const Q
Se
t<PluginSpec *> &specs)
\fn bool PluginSpecPrivate::resolveDependencies(const Q
Lis
t<PluginSpec *> &specs)
\internal
*/
bool
PluginSpecPrivate
::
resolveDependencies
(
const
Q
Se
t
<
PluginSpec
*>
&
specs
)
bool
PluginSpecPrivate
::
resolveDependencies
(
const
Q
Lis
t
<
PluginSpec
*>
&
specs
)
{
if
(
hasError
)
return
false
;
...
...
src/libs/extensionsystem/pluginspec_p.h
View file @
65d48ce4
...
...
@@ -56,7 +56,7 @@ public:
bool
read
(
const
QString
&
fileName
);
bool
provides
(
const
QString
&
pluginName
,
const
QString
&
version
)
const
;
bool
resolveDependencies
(
const
Q
Se
t
<
PluginSpec
*>
&
specs
);
bool
resolveDependencies
(
const
Q
Lis
t
<
PluginSpec
*>
&
specs
);
bool
loadLibrary
();
bool
initializePlugin
();
bool
initializeExtensions
();
...
...
src/plugins/coreplugin/mainwindow.cpp
View file @
65d48ce4
...
...
@@ -186,6 +186,15 @@ MainWindow::MainWindow() :
QCoreApplication
::
setOrganizationName
(
QLatin1String
(
"Nokia"
));
QSettings
::
setDefaultFormat
(
QSettings
::
IniFormat
);
QString
baseName
=
qApp
->
style
()
->
objectName
();
if
(
baseName
==
"windows"
)
{
// Sometimes we get the standard windows 95 style as a fallback
// e.g. if we are running on a KDE4 desktop
QByteArray
desktopEnvironment
=
qgetenv
(
"DESKTOP_SESSION"
);
if
(
desktopEnvironment
==
"kde"
)
baseName
=
"plastique"
;
else
baseName
=
"cleanlooks"
;
}
qApp
->
setStyle
(
new
ManhattanStyle
(
baseName
));
statusBar
()
->
setProperty
(
"p_styled"
,
true
);
}
...
...
src/plugins/cppeditor/cppeditor.cpp
View file @
65d48ce4
...
...
@@ -480,13 +480,23 @@ void CPPEditor::jumpToDefinition()
Document
::
Ptr
doc
=
m_modelManager
->
document
(
file
()
->
fileName
());
if
(
!
doc
)
return
;
QTextCursor
tc
=
textCursor
();
unsigned
lineno
=
tc
.
blockNumber
()
+
1
;
foreach
(
const
Document
::
Include
&
incl
,
doc
->
includes
())
{
if
(
incl
.
line
()
==
lineno
)
{
if
(
openCppEditorAt
(
incl
.
fileName
(),
0
,
0
))
return
;
// done
break
;
}
}
Symbol
*
lastSymbol
=
doc
->
findSymbolAt
(
line
,
column
);
if
(
!
lastSymbol
)
return
;
// Get the expression under the cursor
const
int
endOfName
=
endOfNameUnderCursor
();
QTextCursor
tc
=
textCursor
();
tc
.
setPosition
(
endOfName
);
ExpressionUnderCursor
expressionUnderCursor
;
const
QString
expression
=
expressionUnderCursor
(
tc
);
...
...
@@ -515,7 +525,7 @@ void CPPEditor::jumpToDefinition()
QList<Symbol *> candidates = context.resolve(namedType->name());
if (!candidates.isEmpty()) {
Symbol *s = candidates.takeFirst();
openEditorAt(s->fileName(), s->line(), s->column());
open
Cpp
EditorAt(s->fileName(), s->line(), s->column());
}
#endif
}
...
...
@@ -524,7 +534,7 @@ void CPPEditor::jumpToDefinition()
if
(
use
.
contains
(
endOfName
-
1
))
{
const
Macro
&
macro
=
use
.
macro
();
const
QString
fileName
=
QString
::
fromUtf8
(
macro
.
fileName
);
if
(
TextEditor
::
BaseTextEditor
::
openEditorAt
(
fileName
,
macro
.
line
,
0
))
if
(
open
Cpp
EditorAt
(
fileName
,
macro
.
line
,
0
))
return
;
// done
}
}
...
...
@@ -826,8 +836,15 @@ int CPPEditor::endOfNameUnderCursor()
return
pos
;
}
TextEditor
::
ITextEditor
*
CPPEditor
::
openCppEditorAt
(
const
QString
&
fileName
,
int
line
,
int
column
)
{
return
TextEditor
::
BaseTextEditor
::
openEditorAt
(
fileName
,
line
,
column
,
Constants
::
C_CPPEDITOR
);
}
bool
CPPEditor
::
openEditorAt
(
Symbol
*
s
)
{
const
QString
fileName
=
QString
::
fromUtf8
(
s
->
fileName
(),
s
->
fileNameLength
());
return
TextEditor
::
BaseTextEditor
::
openEditorAt
(
fileName
,
s
->
line
(),
s
->
column
());
return
open
Cpp
EditorAt
(
fileName
,
s
->
line
(),
s
->
column
());
}
src/plugins/cppeditor/cppeditor.h
View file @
65d48ce4
...
...
@@ -123,6 +123,9 @@ private:
CPlusPlus
::
Symbol
*
findDefinition
(
CPlusPlus
::
Symbol
*
symbol
);
virtual
void
indentBlock
(
QTextDocument
*
doc
,
QTextBlock
block
,
QChar
typedChar
);
TextEditor
::
ITextEditor
*
openCppEditorAt
(
const
QString
&
fileName
,
int
line
,
int
column
=
0
);
int
previousBlockState
(
QTextBlock
block
)
const
;
QTextCursor
moveToPreviousToken
(
QTextCursor
::
MoveMode
mode
)
const
;
QTextCursor
moveToNextToken
(
QTextCursor
::
MoveMode
mode
)
const
;
...
...
src/plugins/cpptools/cppcodecompletion.cpp
View file @
65d48ce4
...
...
@@ -439,7 +439,8 @@ int CppCodeCompletion::startCompletion(TextEditor::ITextEditable *editor)
typeOfExpression
.
setDocuments
(
m_manager
->
documents
());
QList
<
TypeOfExpression
::
Result
>
resolvedTypes
=
typeOfExpression
(
expression
,
thisDocument
,
symbol
);
QList
<
TypeOfExpression
::
Result
>
resolvedTypes
=
typeOfExpression
(
expression
,
thisDocument
,
symbol
,
TypeOfExpression
::
Preprocess
);
LookupContext
context
=
typeOfExpression
.
lookupContext
();
if
(
!
typeOfExpression
.
expressionAST
()
&&
(
!
m_completionOperator
||
...
...
src/plugins/cpptools/cpphoverhandler.cpp
View file @
65d48ce4
...
...
@@ -177,6 +177,16 @@ void CppHoverHandler::updateHelpIdAndTooltip(TextEditor::ITextEditor *editor, in
}
}
if
(
m_toolTip
.
isEmpty
())
{
unsigned
lineno
=
tc
.
blockNumber
()
+
1
;
foreach
(
const
Document
::
Include
&
incl
,
doc
->
includes
())
{
if
(
lineno
==
incl
.
line
())
{
m_toolTip
=
incl
.
fileName
();
break
;
}
}
}
if
(
m_toolTip
.
isEmpty
())
{
// Move to the end of a qualified name
bool
stop
=
false
;
...
...
src/plugins/cpptools/cppmodelmanager.cpp
View file @
65d48ce4
...
...
@@ -138,7 +138,8 @@ protected:
virtual
void
stopExpandingMacro
(
unsigned
offset
,
const
Macro
&
macro
);
virtual
void
startSkippingBlocks
(
unsigned
offset
);
virtual
void
stopSkippingBlocks
(
unsigned
offset
);
virtual
void
sourceNeeded
(
QString
&
fileName
,
IncludeType
type
);
virtual
void
sourceNeeded
(
QString
&
fileName
,
IncludeType
type
,
unsigned
line
);
private:
QPointer
<
CppModelManager
>
m_modelManager
;
...
...
@@ -176,7 +177,7 @@ void CppPreprocessor::setProjectFiles(const QStringList &files)
{
m_projectFiles
=
files
;
}
void
CppPreprocessor
::
run
(
QString
&
fileName
)
{
sourceNeeded
(
fileName
,
IncludeGlobal
);
}
{
sourceNeeded
(
fileName
,
IncludeGlobal
,
/*line = */
0
);
}
void
CppPreprocessor
::
operator
()(
QString
&
fileName
)
{
run
(
fileName
);
}
...
...
@@ -361,7 +362,8 @@ void CppPreprocessor::stopSkippingBlocks(unsigned offset)
m_currentDoc
->
stopSkippingBlocks
(
offset
);
}