Skip to content
GitLab
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
9cd08956
Commit
9cd08956
authored
Mar 26, 2009
by
Thorbjørn Lindeijer
Browse files
Improved function argument widget
Done with Roberto Raggi.
parent
f7c469f3
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/plugins/cpptools/cppcodecompletion.cpp
View file @
9cd08956
...
...
@@ -89,8 +89,7 @@ private slots:
void
previousPage
();
private:
void
update
();
void
close
();
void
updateArgumentHighlight
();
void
updateHintText
();
Function
*
currentFunction
()
const
...
...
@@ -103,6 +102,7 @@ private:
TextEditor
::
ITextEditor
*
m_editor
;
QWidget
*
m_pager
;
QLabel
*
m_numberLabel
;
QFrame
*
m_popupFrame
;
QList
<
Function
*>
m_items
;
LookupContext
m_context
;
...
...
@@ -225,11 +225,12 @@ FunctionArgumentWidget::FunctionArgumentWidget():
QHBoxLayout
*
hbox
=
new
QHBoxLayout
(
m_pager
);
hbox
->
setMargin
(
0
);
hbox
->
setSpacing
(
0
);
hbox
->
addSpacerItem
(
new
QSpacerItem
(
0
,
0
,
QSizePolicy
::
MinimumExpanding
,
QSizePolicy
::
Minimum
));
hbox
->
addWidget
(
leftArrow
);
m_numberLabel
=
new
QLabel
;
hbox
->
addWidget
(
m_numberLabel
);
hbox
->
addWidget
(
rightArrow
);
Q
V
BoxLayout
*
layout
=
new
Q
V
BoxLayout
;
Q
H
BoxLayout
*
layout
=
new
Q
H
BoxLayout
;
layout
->
setMargin
(
0
);
layout
->
setSpacing
(
0
);
layout
->
addWidget
(
m_pager
);
...
...
@@ -259,7 +260,7 @@ void FunctionArgumentWidget::showFunctionHint(QList<Function *> functionSymbols,
if
(
m_startpos
==
startPosition
)
return
;
m_p
opupFrame
->
hide
(
);
m_p
ager
->
setVisible
(
functionSymbols
.
size
()
>
1
);
m_items
=
functionSymbols
;
m_context
=
context
;
...
...
@@ -268,9 +269,7 @@ void FunctionArgumentWidget::showFunctionHint(QList<Function *> functionSymbols,
// update the text
m_currentarg
=
-
1
;
update
();
m_pager
->
setVisible
(
functionSymbols
.
size
()
>
1
);
updateArgumentHighlight
();
QPoint
pos
=
m_editor
->
cursorRect
(
m_startpos
).
topLeft
();
pos
.
setY
(
pos
.
y
()
-
m_popupFrame
->
sizeHint
().
height
()
-
1
);
...
...
@@ -294,11 +293,11 @@ void FunctionArgumentWidget::previousPage()
updateHintText
();
}
void
FunctionArgumentWidget
::
update
()
void
FunctionArgumentWidget
::
update
ArgumentHighlight
()
{
int
curpos
=
m_editor
->
position
();
if
(
curpos
<
m_startpos
)
{
close
();
m_popupFrame
->
close
();
return
;
}
...
...
@@ -323,28 +322,37 @@ void FunctionArgumentWidget::update()
}
if
(
parcount
<
0
)
close
();
m_popupFrame
->
close
();
}
bool
FunctionArgumentWidget
::
eventFilter
(
QObject
*
obj
,
QEvent
*
e
)
{
switch
(
e
->
type
())
{
case
QEvent
::
KeyRelease
:
{
if
(
static_cast
<
QKeyEvent
*>
(
e
)
->
key
()
==
Qt
::
Key_Escape
)
{
close
();
return
false
;
case
QEvent
::
KeyPress
:
if
(
m_items
.
size
()
>
1
)
{
QKeyEvent
*
ke
=
static_cast
<
QKeyEvent
*>
(
e
);
if
(
ke
->
key
()
==
Qt
::
Key_Up
)
{
previousPage
();
return
true
;
}
else
if
(
ke
->
key
()
==
Qt
::
Key_Down
)
{
nextPage
();
return
true
;
}
update
();
break
;
return
false
;
}
break
;
case
QEvent
::
KeyRelease
:
if
(
static_cast
<
QKeyEvent
*>
(
e
)
->
key
()
==
Qt
::
Key_Escape
)
{
m_popupFrame
->
close
();
return
false
;
}
updateArgumentHighlight
();
break
;
case
QEvent
::
WindowDeactivate
:
case
QEvent
::
FocusOut
:
{
if
(
obj
!=
m_editor
->
widget
())
break
;
}
close
();
if
(
obj
!=
m_editor
->
widget
())
break
;
m_popupFrame
->
close
();
break
;
case
QEvent
::
MouseButtonPress
:
case
QEvent
::
MouseButtonRelease
:
...
...
@@ -352,7 +360,7 @@ bool FunctionArgumentWidget::eventFilter(QObject *obj, QEvent *e)
case
QEvent
::
Wheel
:
{
QWidget
*
widget
=
qobject_cast
<
QWidget
*>
(
obj
);
if
(
!
(
widget
==
this
||
m_popupFrame
->
isAncestorOf
(
widget
)))
{
close
();
m_popupFrame
->
close
();
}
}
break
;
...
...
@@ -362,11 +370,6 @@ bool FunctionArgumentWidget::eventFilter(QObject *obj, QEvent *e)
return
false
;
}
void
FunctionArgumentWidget
::
close
()
{
m_popupFrame
->
close
();
}
void
FunctionArgumentWidget
::
updateHintText
()
{
Overview
overview
;
...
...
@@ -374,7 +377,11 @@ void FunctionArgumentWidget::updateHintText()
overview
.
setShowArgumentNames
(
true
);
overview
.
setMarkArgument
(
m_currentarg
+
1
);
Function
*
f
=
currentFunction
();
setText
(
overview
(
f
->
type
(),
f
->
name
()));
m_numberLabel
->
setText
(
tr
(
"%1 of %2"
).
arg
(
m_current
+
1
).
arg
(
m_items
.
size
()));
m_popupFrame
->
setFixedWidth
(
m_popupFrame
->
minimumSizeHint
().
width
());
}
CppCodeCompletion
::
CppCodeCompletion
(
CppModelManager
*
manager
)
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment