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
7e6aee9b
Commit
7e6aee9b
authored
Jan 28, 2009
by
Olli Werwolff
Browse files
Merge branch 'master' of git@scm.dev.nokia.troll.no:creator/mainline
parents
500f2e5d
89fc9886
Changes
11
Hide whitespace changes
Inline
Side-by-side
share/qtcreator/gdbmacros/gdbmacros.cpp
View file @
7e6aee9b
...
...
@@ -216,7 +216,7 @@ QT_END_NAMESPACE
// comma-separated integer list
static
char
qDumpInBuffer
[
10000
];
static
char
qDumpOutBuffer
[
100000
];
static
char
qDumpSize
[
20
];
//
static char qDumpSize[20];
namespace
{
...
...
@@ -311,7 +311,16 @@ static bool isSimpleType(const char *type)
static
bool
isShortKey
(
const
char
*
type
)
{
return
isSimpleType
(
type
)
||
isEqual
(
type
,
"QString"
);
return
isSimpleType
(
type
)
||
isEqual
(
type
,
NS
"QString"
);
}
static
bool
isStringType
(
const
char
*
type
)
{
return
isEqual
(
type
,
NS
"QString"
)
||
isEqual
(
type
,
NS
"QByteArray"
)
||
isEqual
(
type
,
"std::string"
)
||
isEqual
(
type
,
"std::wstring"
)
||
isEqual
(
type
,
"wstring"
);
}
static
bool
isMovableType
(
const
char
*
type
)
...
...
@@ -704,44 +713,45 @@ static void qDumpUnknown(QDumper &d)
}
static
void
qDumpInnerValueHelper
(
QDumper
&
d
,
const
char
*
type
,
const
void
*
addr
,
const
char
*
key
=
"value"
)
const
char
*
field
=
"value"
)
{
type
=
stripNamespace
(
type
);
switch
(
type
[
1
])
{
case
'l'
:
if
(
isEqual
(
type
,
"float"
))
P
(
d
,
key
,
*
(
float
*
)
addr
);
P
(
d
,
field
,
*
(
float
*
)
addr
);
return
;
case
'n'
:
if
(
isEqual
(
type
,
"int"
))
P
(
d
,
key
,
*
(
int
*
)
addr
);
P
(
d
,
field
,
*
(
int
*
)
addr
);
else
if
(
isEqual
(
type
,
"unsigned"
))
P
(
d
,
key
,
*
(
unsigned
int
*
)
addr
);
P
(
d
,
field
,
*
(
unsigned
int
*
)
addr
);
else
if
(
isEqual
(
type
,
"unsigned int"
))
P
(
d
,
key
,
*
(
unsigned
int
*
)
addr
);
P
(
d
,
field
,
*
(
unsigned
int
*
)
addr
);
else
if
(
isEqual
(
type
,
"unsigned long"
))
P
(
d
,
key
,
*
(
unsigned
long
*
)
addr
);
P
(
d
,
field
,
*
(
unsigned
long
*
)
addr
);
else
if
(
isEqual
(
type
,
"unsigned long long"
))
P
(
d
,
key
,
*
(
qulonglong
*
)
addr
);
P
(
d
,
field
,
*
(
qulonglong
*
)
addr
);
return
;
case
'o'
:
if
(
isEqual
(
type
,
"bool"
))
switch
(
*
(
bool
*
)
addr
)
{
case
0
:
P
(
d
,
key
,
"false"
);
break
;
case
1
:
P
(
d
,
key
,
"true"
);
break
;
default:
P
(
d
,
key
,
*
(
bool
*
)
addr
);
break
;
case
0
:
P
(
d
,
field
,
"false"
);
break
;
case
1
:
P
(
d
,
field
,
"true"
);
break
;
default:
P
(
d
,
field
,
*
(
bool
*
)
addr
);
break
;
}
else
if
(
isEqual
(
type
,
"double"
))
P
(
d
,
key
,
*
(
double
*
)
addr
);
P
(
d
,
field
,
*
(
double
*
)
addr
);
else
if
(
isEqual
(
type
,
"long"
))
P
(
d
,
key
,
*
(
long
*
)
addr
);
P
(
d
,
field
,
*
(
long
*
)
addr
);
else
if
(
isEqual
(
type
,
"long long"
))
P
(
d
,
key
,
*
(
qulonglong
*
)
addr
);
P
(
d
,
field
,
*
(
qulonglong
*
)
addr
);
return
;
case
'B'
:
if
(
isEqual
(
type
,
"QByteArray"
))
{
d
<<
key
<<
"encoded=
\"
1
\"
,"
;
P
(
d
,
key
,
*
(
QByteArray
*
)
addr
);
d
.
addCommaIfNeeded
();
d
<<
field
<<
"encoded=
\"
1
\"
,"
;
P
(
d
,
field
,
*
(
QByteArray
*
)
addr
);
}
return
;
case
'L'
:
...
...
@@ -769,8 +779,9 @@ static void qDumpInnerValueHelper(QDumper &d, const char *type, const void *addr
return
;
case
'S'
:
if
(
isEqual
(
type
,
"QString"
))
{
d
<<
key
<<
"encoded=
\"
1
\"
,"
;
P
(
d
,
key
,
*
(
QString
*
)
addr
);
d
.
addCommaIfNeeded
();
d
<<
field
<<
"encoded=
\"
1
\"
,"
;
P
(
d
,
field
,
*
(
QString
*
)
addr
);
}
return
;
default:
...
...
@@ -1086,13 +1097,17 @@ static void qDumpQHash(QDumper &d)
if
(
d
.
dumpChildren
)
{
if
(
n
>
1000
)
n
=
1000
;
bool
simpleKey
=
isShortKey
(
keyType
);
bool
simpleValue
=
isShortKey
(
valueType
);
bool
isSimpleKey
=
isSimpleType
(
keyType
);
bool
isStringKey
=
isStringType
(
keyType
);
bool
isSimpleValue
=
isSimpleType
(
valueType
);
bool
opt
=
isOptimizedIntKey
(
keyType
);
int
keyOffset
=
hashOffset
(
opt
,
true
,
keySize
,
valueSize
);
int
valueOffset
=
hashOffset
(
opt
,
false
,
keySize
,
valueSize
);
P
(
d
,
"extra"
,
"simplekey: "
<<
simpleKey
<<
" simpleValue: "
<<
simpleValue
P
(
d
,
"extra"
,
"isSimpleKey: "
<<
isSimpleKey
<<
" isStringKey: "
<<
isStringKey
<<
" isSimpleValue: "
<<
isSimpleValue
<<
" valueType: '"
<<
valueType
<<
"'"
<<
" keySize: "
<<
keyOffset
<<
" valueOffset: "
<<
valueOffset
<<
" opt: "
<<
opt
);
...
...
@@ -1103,18 +1118,17 @@ static void qDumpQHash(QDumper &d)
d
<<
",children=["
;
while
(
node
!=
end
)
{
d
.
beginHash
();
if
(
simpleKey
)
{
P
(
d
,
"name"
,
i
);
qDumpInnerValueHelper
(
d
,
keyType
,
addOffset
(
node
,
keyOffset
),
"key"
);
if
(
simpleValue
)
qDumpInnerValueHelper
(
d
,
valueType
,
addOffset
(
node
,
valueOffset
));
P
(
d
,
"name"
,
i
);
qDumpInnerValueHelper
(
d
,
keyType
,
addOffset
(
node
,
keyOffset
),
"key"
);
qDumpInnerValueHelper
(
d
,
valueType
,
addOffset
(
node
,
valueOffset
));
if
(
isSimpleKey
&&
isSimpleValue
)
{
P
(
d
,
"type"
,
valueType
);
P
(
d
,
"addr"
,
addOffset
(
node
,
valueOffset
));
}
else
{
P
(
d
,
"
name"
,
i
);
//P(d, "exp", "*(char
*)" << node);
P
(
d
,
"
exp
"
,
"
*(
'"
NS
"QHashNode<"
<<
keyType
<<
","
<<
valueType
<<
" >'*)"
<<
node
);
P
(
d
,
"type"
,
"'"
NS
"QHashNode<"
<<
keyType
<<
","
<<
valueType
<<
" >'"
);
P
(
d
,
"
exp"
,
"*('"
NS
"QHashNode<"
<<
keyType
<<
","
<<
valueType
<<
" >'
*)"
<<
node
);
P
(
d
,
"
type
"
,
"'"
NS
"QHashNode<"
<<
keyType
<<
","
<<
valueType
<<
" >'"
);
}
d
.
endHash
();
++
i
;
...
...
@@ -1262,8 +1276,8 @@ static void qDumpQLinkedList(QDumper &d)
P
(
d
,
"numchild"
,
n
);
P
(
d
,
"childtype"
,
d
.
innertype
);
if
(
d
.
dumpChildren
)
{
unsigned
innerSize
=
d
.
extraInt
[
0
];
bool
innerTypeIsPointer
=
isPointerType
(
d
.
innertype
);
//
unsigned innerSize = d.extraInt[0];
//
bool innerTypeIsPointer = isPointerType(d.innertype);
QByteArray
strippedInnerType
=
stripPointerType
(
d
.
innertype
);
const
char
*
stripped
=
isPointerType
(
d
.
innertype
)
?
strippedInnerType
.
data
()
:
0
;
...
...
@@ -1397,13 +1411,13 @@ static void qDumpQMap(QDumper &d)
unsigned
mapnodesize
=
d
.
extraInt
[
2
];
unsigned
valueOff
=
d
.
extraInt
[
3
];
bool
s
impleKey
=
isShortKey
(
keyType
);
bool
s
impleValue
=
isShortKey
(
valueType
);
bool
isS
impleKey
=
isShortKey
(
keyType
);
bool
isS
impleValue
=
isShortKey
(
valueType
);
// both negative:
int
keyOffset
=
2
*
sizeof
(
void
*
)
-
int
(
mapnodesize
);
int
valueOffset
=
2
*
sizeof
(
void
*
)
-
int
(
mapnodesize
)
+
valueOff
;
P
(
d
,
"extra"
,
"simplekey: "
<<
s
impleKey
<<
"
s
impleValue: "
<<
s
impleValue
P
(
d
,
"extra"
,
"simplekey: "
<<
isS
impleKey
<<
"
isS
impleValue: "
<<
isS
impleValue
<<
" keyOffset: "
<<
keyOffset
<<
" valueOffset: "
<<
valueOffset
<<
" mapnodesize: "
<<
mapnodesize
);
d
<<
",children=["
;
...
...
@@ -1415,10 +1429,10 @@ static void qDumpQMap(QDumper &d)
while
(
node
!=
end
)
{
d
.
beginHash
();
P
(
d
,
"name"
,
i
);
if
(
s
impleKey
)
{
if
(
isS
impleKey
)
{
P
(
d
,
"type"
,
valueType
);
qDumpInnerValueHelper
(
d
,
keyType
,
addOffset
(
node
,
keyOffset
),
"key"
);
if
(
s
impleValue
)
if
(
isS
impleValue
)
qDumpInnerValueHelper
(
d
,
valueType
,
addOffset
(
node
,
valueOffset
));
P
(
d
,
"type"
,
valueType
);
...
...
@@ -2199,26 +2213,30 @@ static void qDumpStdMap(QDumper &d)
P
(
d
,
"pairtype"
,
pairType
);
if
(
d
.
dumpChildren
)
{
bool
simpleKey
=
isSimpleType
(
keyType
);
bool
simpleValue
=
isShortKey
(
valueType
);
bool
isSimpleKey
=
isSimpleType
(
keyType
);
bool
isStringKey
=
isStringType
(
keyType
);
bool
isSimpleValue
=
isShortKey
(
valueType
);
int
valueOffset
=
d
.
extraInt
[
2
];
d
<<
",children=["
;
it
=
map
.
begin
();
for
(
int
i
=
0
;
i
<
1000
&&
it
!=
map
.
end
();
++
i
,
++
it
)
{
const
void
*
node
=
it
.
operator
->
();
if
(
s
impleKey
)
{
if
(
isS
impleKey
)
{
d
.
beginHash
();
P
(
d
,
"type"
,
valueType
);
qDumpInnerValueHelper
(
d
,
keyType
,
node
,
"name"
);
P
(
d
,
"name"
,
i
);
qDumpInnerValueHelper
(
d
,
keyType
,
node
,
"key"
);
P
(
d
,
"nameisindex"
,
"1"
);
if
(
s
impleValue
)
if
(
isS
impleValue
)
qDumpInnerValueHelper
(
d
,
valueType
,
addOffset
(
node
,
valueOffset
));
P
(
d
,
"addr"
,
addOffset
(
node
,
valueOffset
));
d
.
endHash
();
}
else
{
d
.
beginHash
();
P
(
d
,
"name"
,
i
);
if
(
isStringKey
)
qDumpInnerValueHelper
(
d
,
keyType
,
node
,
"key"
);
P
(
d
,
"addr"
,
it
.
operator
->
());
P
(
d
,
"type"
,
pairType
);
d
.
endHash
();
...
...
share/share.pri
View file @
7e6aee9b
...
...
@@ -17,7 +17,7 @@ macx {
QMAKE_INFO_PLIST = $$PWD/qtcreator/Info.plist
}
win32 {
win32
|linux-*
{
# make sure the resources are in place
!exists($$OUT_PWD/app.pro) {
unix:SEPARATOR = ;
...
...
@@ -28,10 +28,11 @@ win32 {
designer \
schemes \
gdbmacros
COPYDEST = $${OUT_PWD}/../../
bin
COPYDEST = $${OUT_PWD}/../../
share/qtcreator
win32:COPYDEST ~= s|/+|\|
QMAKE_POST_LINK += $${QMAKE_MKDIR} $$COPYDEST $$SEPARATOR
for(tmp,COPYSRC) {
REALSRC = $$PWD/$$tmp
REALSRC = $$PWD/
qtcreator/
$$tmp
REALDEST = $$COPYDEST/$$tmp
win32:tmp ~= s|/+|\|
win32:REALSRC ~= s|/+|\|
...
...
src/plugins/coreplugin/progressmanager/progressview.cpp
View file @
7e6aee9b
...
...
@@ -99,6 +99,7 @@ void ProgressView::deleteTask(FutureProgress *progress)
m_type
.
remove
(
progress
);
m_keep
.
remove
(
progress
);
layout
()
->
removeWidget
(
progress
);
progress
->
hide
();
progress
->
deleteLater
();
}
...
...
src/plugins/debugger/gdbengine.cpp
View file @
7e6aee9b
...
...
@@ -2761,14 +2761,17 @@ static void setWatchDataValue(WatchData &data, const GdbMi &mi,
break
;
case
1
:
// base64 encoded 8 bit data
ba
=
QByteArray
::
fromBase64
(
mi
.
data
());
ba
=
'"'
+
ba
+
'"'
;
break
;
case
2
:
// base64 encoded 16 bit data
ba
=
QByteArray
::
fromBase64
(
mi
.
data
());
ba
=
QString
::
fromUtf16
((
ushort
*
)
ba
.
data
(),
ba
.
size
()
/
2
).
toUtf8
();
ba
=
'"'
+
ba
+
'"'
;
break
;
case
3
:
// base64 encoded 32 bit data
ba
=
QByteArray
::
fromBase64
(
mi
.
data
());
ba
=
QString
::
fromUcs4
((
uint
*
)
ba
.
data
(),
ba
.
size
()
/
4
).
toUtf8
();
ba
=
'"'
+
ba
+
'"'
;
break
;
}
data
.
setValue
(
ba
);
...
...
@@ -2830,9 +2833,12 @@ static bool extractTemplate(const QString &type, QString *tmplate, QString *inne
// 'tmplate' and "Inner1@Inner2@..." etc in 'inner'. Result indicates
// whether parsing was successful
int
level
=
0
;
bool
skipSpace
=
false
;
for
(
int
i
=
0
;
i
!=
type
.
size
();
++
i
)
{
QChar
c
=
type
[
i
];
if
(
c
==
'<'
)
{
if
(
c
==
' '
&&
skipSpace
)
{
skipSpace
=
false
;
}
else
if
(
c
==
'<'
)
{
*
(
level
==
0
?
tmplate
:
inner
)
+=
c
;
++
level
;
}
else
if
(
c
==
'>'
)
{
...
...
@@ -2840,6 +2846,7 @@ static bool extractTemplate(const QString &type, QString *tmplate, QString *inne
*
(
level
==
0
?
tmplate
:
inner
)
+=
c
;
}
else
if
(
c
==
','
)
{
*
inner
+=
(
level
==
1
)
?
'@'
:
','
;
skipSpace
=
true
;
}
else
{
*
(
level
==
0
?
tmplate
:
inner
)
+=
c
;
}
...
...
@@ -3550,13 +3557,18 @@ void GdbEngine::handleDumpCustomValue2(const GdbResultRecord &record,
data1
.
iname
=
data
.
iname
+
"."
+
data1
.
name
;
if
(
!
data1
.
name
.
isEmpty
()
&&
data1
.
name
.
at
(
0
).
isDigit
())
data1
.
name
=
'['
+
data1
.
name
+
']'
;
//qDebug() << "NAMEENCODED: " << item.findChild("nameencoded").data()
// << item.findChild("nameencoded").data()[1];
if
(
item
.
findChild
(
"nameencoded"
).
data
()[
0
]
==
'1'
)
data1
.
name
=
QByteArray
::
fromBase64
(
data1
.
name
.
toUtf8
());
QString
key
=
item
.
findChild
(
"key"
).
data
();
if
(
!
key
.
isEmpty
())
data1
.
name
+=
" ("
+
key
+
")"
;
if
(
!
key
.
isEmpty
())
{
if
(
item
.
findChild
(
"keyencoded"
).
data
()[
0
]
==
'1'
)
{
key
=
'"'
+
QByteArray
::
fromBase64
(
key
.
toUtf8
())
+
'"'
;
if
(
key
.
size
()
>
13
)
{
key
=
key
.
left
(
12
);
key
+=
"..."
;
}
}
//data1.name += " (" + key + ")";
data1
.
name
=
key
;
}
setWatchDataType
(
data1
,
item
.
findChild
(
"type"
));
setWatchDataExpression
(
data1
,
item
.
findChild
(
"exp"
));
setWatchDataChildCount
(
data1
,
item
.
findChild
(
"numchild"
));
...
...
src/plugins/help/centralwidget.cpp
View file @
7e6aee9b
...
...
@@ -61,6 +61,8 @@
#include <QtHelp/QHelpEngine>
#include <coreplugin/coreconstants.h>
using
namespace
Help
::
Internal
;
namespace
{
...
...
@@ -228,20 +230,23 @@ void CentralWidget::setSource(const QUrl &url)
void
CentralWidget
::
setLastShownPages
()
{
const
QStringList
lastShownPageList
=
helpEngine
->
customValue
(
QLatin1String
(
"LastShownPages"
)).
toString
().
split
(
QLatin1Char
(
'|'
),
QString
::
SkipEmptyParts
);
const
QStringList
lastShownPageList
=
helpEngine
->
customValue
(
QLatin1String
(
"LastShownPages"
)).
toString
().
split
(
QLatin1Char
(
'|'
),
QString
::
SkipEmptyParts
);
if
(
!
lastShownPageList
.
isEmpty
())
{
foreach
(
const
QString
page
,
lastShownPageList
)
foreach
(
const
QString
&
page
,
lastShownPageList
)
setSourceInNewTab
(
page
);
tabWidget
->
setCurrentIndex
(
helpEngine
->
customValue
(
QLatin1String
(
"LastTabPage"
),
0
).
toInt
());
tabWidget
->
setCurrentIndex
(
helpEngine
->
customValue
(
QLatin1String
(
"LastTabPage"
),
0
).
toInt
());
}
else
{
QUrl
url
=
helpEngine
->
findFile
(
QUrl
(
"qthelp://com.trolltech.qt.440/qdoc/index.html"
));
if
(
url
.
isValid
())
setSource
(
url
);
else
setSource
(
QUrl
(
"qthelp://com.trolltech.qt.440/qdoc/index.html"
));
QUrl
url
(
helpEngine
->
findFile
(
QUrl
(
"qthelp://com.trolltech.qt.440/qdoc/index.html"
)));
if
(
!
url
.
isValid
())
{
url
.
setUrl
(
QString
(
"qthelp://com.nokia.qtcreator.%1%2/doc/index.html"
).
arg
(
IDE_VERSION_MAJOR
).
arg
(
IDE_VERSION_MINOR
));
}
setSource
(
url
);
}
updateBrowserFont
();
...
...
@@ -392,19 +397,33 @@ void CentralWidget::setGlobalActions(const QList<QAction*> &actions)
{
globalActionList
=
actions
;
}
void
CentralWidget
::
setSourceInNewTab
(
const
QUrl
&
url
)
{
HelpViewer
*
viewer
=
new
HelpViewer
(
helpEngine
,
this
);
viewer
->
installEventFilter
(
this
);
viewer
->
setSource
(
url
);
viewer
->
setFocus
(
Qt
::
OtherFocusReason
);
tabWidget
->
setCurrentIndex
(
tabWidget
->
addTab
(
viewer
,
viewer
->
documentTitle
()));
tabWidget
->
setCurrentIndex
(
tabWidget
->
addTab
(
viewer
,
quoteTabTitle
(
viewer
->
documentTitle
())));
#if defined(QT_NO_WEBIT)
QFont
font
=
qApp
->
font
();
if
(
helpEngine
->
customValue
(
QLatin1String
(
"useBrowserFont"
)).
toBool
())
font
=
qVariantValue
<
QFont
>
(
helpEngine
->
customValue
(
QLatin1String
(
"browserFont"
)));
viewer
->
setFont
(
font
);
#else
QWebView
*
view
=
qobject_cast
<
QWebView
*>
(
viewer
);
if
(
view
)
{
QWebSettings
*
settings
=
QWebSettings
::
globalSettings
();
int
fontSize
=
settings
->
fontSize
(
QWebSettings
::
DefaultFontSize
);
QString
fontFamily
=
settings
->
fontFamily
(
QWebSettings
::
StandardFont
);
settings
=
view
->
settings
();
settings
->
setFontSize
(
QWebSettings
::
DefaultFontSize
,
fontSize
);
settings
->
setFontFamily
(
QWebSettings
::
StandardFont
,
fontFamily
);
}
#endif
connectSignals
();
}
...
...
@@ -492,7 +511,7 @@ void CentralWidget::currentPageChanged(int index)
bool
enabled
=
false
;
if
(
viewer
)
enabled
=
tabWidget
->
count
()
>
1
;
tabWidget
->
setTabsClosable
(
enabled
);
tabWidget
->
cornerWidget
(
Qt
::
TopLeftCorner
)
->
setEnabled
(
true
);
...
...
@@ -595,6 +614,7 @@ bool CentralWidget::eventFilter(QObject *object, QEvent *e)
void
CentralWidget
::
updateBrowserFont
()
{
#if defined(QT_NO_WEBKIT)
QFont
font
=
qApp
->
font
();
if
(
helpEngine
->
customValue
(
QLatin1String
(
"useBrowserFont"
)).
toBool
())
font
=
qVariantValue
<
QFont
>
(
helpEngine
->
customValue
(
QLatin1String
(
"browserFont"
)));
...
...
@@ -605,9 +625,25 @@ void CentralWidget::updateBrowserFont()
if
(
widget
->
font
()
!=
font
)
widget
->
setFont
(
font
);
}
#else
QWebSettings
*
settings
=
QWebSettings
::
globalSettings
();
int
fontSize
=
settings
->
fontSize
(
QWebSettings
::
DefaultFontSize
);
QString
fontFamily
=
settings
->
fontFamily
(
QWebSettings
::
StandardFont
);
QWebView
*
widget
=
0
;
for
(
int
i
=
0
;
i
<
tabWidget
->
count
();
++
i
)
{
widget
=
qobject_cast
<
QWebView
*>
(
tabWidget
->
widget
(
i
));
if
(
widget
)
{
settings
=
widget
->
settings
();
settings
->
setFontSize
(
QWebSettings
::
DefaultFontSize
,
fontSize
);
settings
->
setFontFamily
(
QWebSettings
::
StandardFont
,
fontFamily
);
}
}
#endif
}
bool
CentralWidget
::
find
(
const
QString
&
txt
,
QTextDocument
::
FindFlags
findFlags
,
bool
incremental
)
bool
CentralWidget
::
find
(
const
QString
&
txt
,
QTextDocument
::
FindFlags
findFlags
,
bool
incremental
)
{
HelpViewer
*
viewer
=
currentHelpViewer
();
...
...
@@ -666,7 +702,7 @@ bool CentralWidget::find(const QString &txt, QTextDocument::FindFlags findFlags,
}
void
CentralWidget
::
showTopicChooser
(
const
QMap
<
QString
,
QUrl
>
&
links
,
const
QString
&
keyword
)
const
QString
&
keyword
)
{
TopicChooser
tc
(
this
,
keyword
,
links
);
if
(
tc
.
exec
()
==
QDialog
::
Accepted
)
...
...
src/plugins/projectexplorer/projectexplorer.cpp
View file @
7e6aee9b
...
...
@@ -518,10 +518,6 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
cmd
->
setDefaultKeySequence
(
QKeySequence
(
tr
(
"Ctrl+R"
)));
mbuild
->
addAction
(
cmd
,
Constants
::
G_BUILD_RUN
);
m_runActionContextMenu
=
new
QAction
(
runIcon
,
tr
(
"Run"
),
this
);
cmd
=
am
->
registerAction
(
m_runActionContextMenu
,
Constants
::
RUNCONTEXTMENU
,
globalcontext
);
mproject
->
addAction
(
cmd
,
Constants
::
G_PROJECT_RUN
);
Core
::
ActionContainer
*
mrc
=
am
->
createMenu
(
Constants
::
RUNCONFIGURATIONMENU
);
m_runConfigurationMenu
=
mrc
->
menu
();
m_runConfigurationMenu
->
setTitle
(
tr
(
"Set Run Configuration"
));
...
...
@@ -535,6 +531,10 @@ bool ProjectExplorerPlugin::initialize(const QStringList &arguments, QString *er
modeManager
->
addAction
(
cmd
,
Constants
::
P_ACTION_RUN
,
m_runConfigurationMenu
);
m_runActionContextMenu
=
new
QAction
(
runIcon
,
tr
(
"Run"
),
this
);
cmd
=
am
->
registerAction
(
m_runActionContextMenu
,
Constants
::
RUNCONTEXTMENU
,
globalcontext
);
mproject
->
addAction
(
cmd
,
Constants
::
G_PROJECT_RUN
);
// jump to next task
m_taskAction
=
new
QAction
(
tr
(
"Go to Task Window"
),
this
);
m_taskAction
->
setIcon
(
QIcon
(
Core
::
Constants
::
ICON_NEXT
));
...
...
src/plugins/qt4projectmanager/qmakestep.cpp
View file @
7e6aee9b
...
...
@@ -104,6 +104,7 @@ bool QMakeStep::init(const QString &name)
m_buildConfiguration
=
name
;
const
QtVersion
*
qtVersion
=
m_pro
->
qtVersion
(
name
);
if
(
!
qtVersion
->
isValid
())
{
#if defined(Q_OS_MAC)
emit
addToOutputWindow
(
tr
(
"
\n
<font color=
\"
#ff0000
\"
><b>No valid Qt version set. Set one in Preferences </b></font>
\n
"
));
...
...
src/plugins/qt4projectmanager/qt4runconfiguration.cpp
View file @
7e6aee9b
...
...
@@ -46,6 +46,7 @@
#include <QtGui/QFormLayout>
#include <QtGui/QInputDialog>
#include <QtGui/QLabel>
using
namespace
Qt4ProjectManager
::
Internal
;
using
namespace
Qt4ProjectManager
;
...
...
@@ -54,17 +55,27 @@ using ProjectExplorer::PersistentSettingsReader;
using
ProjectExplorer
::
PersistentSettingsWriter
;
Qt4RunConfiguration
::
Qt4RunConfiguration
(
Qt4Project
*
pro
,
QString
proFilePath
)
:
ApplicationRunConfiguration
(
pro
),
m_proFilePath
(
proFilePath
),
m_userSetName
(
false
)
:
ApplicationRunConfiguration
(
pro
),
m_proFilePath
(
proFilePath
),
m_userSetName
(
false
),
m_configWidget
(
0
),
m_executableLabel
(
0
),
m_workingDirectoryLabel
(
0
)
{
setName
(
tr
(
"Qt4RunConfiguration"
));
if
(
!
m_proFilePath
.
isEmpty
())
{
updateCachedValues
();
setName
(
QFileInfo
(
m_proFilePath
).
baseName
());
}
connect
(
pro
,
SIGNAL
(
activeBuildConfigurationChanged
()),
this
,
SIGNAL
(
effectiveExecutableChanged
()));
connect
(
pro
,
SIGNAL
(
activeBuildConfigurationChanged
()),
this
,
SIGNAL
(
effectiveWorkingDirectoryChanged
()));
}
Qt4RunConfiguration
::~
Qt4RunConfiguration
()
{
}
QString
Qt4RunConfiguration
::
type
()
const
...
...
@@ -72,37 +83,92 @@ QString Qt4RunConfiguration::type() const
return
"Qt4ProjectManager.Qt4RunConfiguration"
;
}
QWidget
*
Qt4RunConfiguration
::
configurationWidget
()
//////
/// Qt4RunConfigurationWidget
/////
Qt4RunConfigurationWidget
::
Qt4RunConfigurationWidget
(
Qt4RunConfiguration
*
qt4RunConfiguration
,
QWidget
*
parent
)
:
QWidget
(
parent
),
m_qt4RunConfiguration
(
qt4RunConfiguration
),
m_ignoreChange
(
false
)
{
QWidget
*
configWidget
=
new
QWidget
;
QFormLayout
*
toplayout
=
new
QFormLayout
(
configWidget
);
QFormLayout
*
toplayout
=
new
QFormLayout
(
this
);
toplayout
->
setMargin
(
0
);
QLabel
*
nameLabel
=
new
QLabel
(
tr
(
"Name:"
));
QLineEdit
*
nameLineEdit
=
new
QLineEdit
(
name
());
nameLabel
->
setBuddy
(
nameLineEdit
);
toplayout
->
addRow
(
nameLabel
,
nameLineEdit
);
m_
nameLineEdit
=
new
QLineEdit
(
m_qt4RunConfiguration
->
name
());
nameLabel
->
setBuddy
(
m_
nameLineEdit
);
toplayout
->
addRow
(
nameLabel
,
m_
nameLineEdit
);
QLabel
*
executableLabel
=
new
QLabel
(
tr
(
"Executable:"
));
QLabel
*
executableLabel2
=
new
QLabel
(
executable
());
toplayout
->
addRow
(
executableLabel
,
executableLabel2
);
m_executableLabel
=
new
QLabel
(
m_qt4RunConfiguration
->
executable
());
toplayout
->
addRow
(
tr
(
"Executable:"
),
m_executableLabel
);
QLabel
*
workingDirectoryLabel
=
new
QLabel
(
tr
(
"Working Directory:"
));
QLabel
*
workingDirectoryLabel2
=
new
QLabel
(
workingDirectory
());
toplayout
->
addRow
(
workingDirectoryLabel
,
workingDirectoryLabel2
);
m_workingDirectoryLabel
=
new
QLabel
(
m_qt4RunConfiguration
->
workingDirectory
());
toplayout
->
addRow
(
tr
(
"Working Directory:"
),
m_workingDirectoryLabel
);
QLabel
*
argumentsLabel
=
new
QLabel
(
tr
(
"&Arguments:"
));
QLineEdit
*
argumentsLineEdit
=
new
QLineEdit
(
ProjectExplorer
::
Environment
::
joinArgumentList
(
commandLineArguments
()));
argumentsLabel
->
setBuddy
(
argumentsLineEdit
);
toplayout
->
addRow
(
argumentsLabel
,
argumentsLineEdit
);
m_
argumentsLineEdit
=
new
QLineEdit
(
ProjectExplorer
::
Environment
::
joinArgumentList
(
qt4RunConfiguration
->
commandLineArguments
()));
argumentsLabel
->
setBuddy
(
m_
argumentsLineEdit
);
toplayout
->
addRow
(
argumentsLabel
,
m_
argumentsLineEdit
);
connect
(
argumentsLineEdit
,
SIGNAL
(
textEdited
(
const
QString
&
)),
connect
(
m_
argumentsLineEdit
,
SIGNAL
(
textEdited
(
const
QString
&
)),
this
,
SLOT
(
setCommandLineArguments
(
const
QString
&
)));
connect
(
nameLineEdit
,
SIGNAL
(
textEdited
(
const
QString
&
)),
connect
(
m_
nameLineEdit
,
SIGNAL
(
textEdited
(
const
QString
&
)),
this
,
SLOT
(
nameEdited
(
const
QString
&
)));
return
configWidget
;
connect
(
qt4RunConfiguration
,
SIGNAL
(
commandLineArgumentsChanged
(
QString
)),
this
,
SLOT
(
commandLineArgumentsChanged
(
QString
)));
connect
(
qt4RunConfiguration
,
SIGNAL
(
nameChanged
(
QString
)),
this
,
SLOT
(
nameChanged
(
QString
)));
connect
(
qt4RunConfiguration
,
SIGNAL
(
effectiveExecutableChanged
()),
this
,
SLOT
(
effectiveExecutableChanged
()));
connect
(
qt4RunConfiguration
,
SIGNAL
(
effectiveWorkingDirectoryChanged
()),
this
,
SLOT
(
effectiveWorkingDirectoryChanged
()));
}
void
Qt4RunConfigurationWidget
::
setCommandLineArguments
(
const
QString
&
args
)
{
m_ignoreChange
=
true
;