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
Unmaintained
KDE Base Apps
Commits
24326d44
Commit
24326d44
authored
Mar 03, 2014
by
Emmanuel Pescosta
Browse files
Add a hover effect for the selection toggle.
FIXED-IN: 4.13.0 REVIEW: 116028 BUG: 299328
parent
7204392d
Changes
5
Hide whitespace changes
Inline
Side-by-side
dolphin/src/kitemviews/kitemlistcontroller.cpp
View file @
24326d44
...
...
@@ -951,8 +951,13 @@ bool KItemListController::hoverMoveEvent(QGraphicsSceneHoverEvent* event, const
if
(
newHoveredWidget
)
{
newHoveredWidget
->
setHovered
(
true
);
const
QPointF
mappedPos
=
newHoveredWidget
->
mapFromItem
(
m_view
,
pos
);
newHoveredWidget
->
setHoverPosition
(
mappedPos
);
emit
itemHovered
(
newHoveredWidget
->
index
());
}
}
else
if
(
oldHoveredWidget
)
{
const
QPointF
mappedPos
=
oldHoveredWidget
->
mapFromItem
(
m_view
,
pos
);
oldHoveredWidget
->
setHoverPosition
(
mappedPos
);
}
return
false
;
...
...
dolphin/src/kitemviews/kitemlistwidget.cpp
View file @
24326d44
...
...
@@ -279,6 +279,13 @@ bool KItemListWidget::isHovered() const
return
m_hovered
;
}
void
KItemListWidget
::
setHoverPosition
(
const
QPointF
&
pos
)
{
if
(
m_selectionToggle
)
{
m_selectionToggle
->
setHovered
(
m_selectionToggle
->
contains
(
pos
));
}
}
void
KItemListWidget
::
setAlternateBackground
(
bool
enable
)
{
if
(
m_alternateBackground
!=
enable
)
{
...
...
dolphin/src/kitemviews/kitemlistwidget.h
View file @
24326d44
...
...
@@ -108,6 +108,8 @@ public:
void
setHovered
(
bool
hovered
);
bool
isHovered
()
const
;
void
setHoverPosition
(
const
QPointF
&
pos
);
void
setAlternateBackground
(
bool
enable
);
bool
alternateBackground
()
const
;
...
...
dolphin/src/kitemviews/private/kitemlistselectiontoggle.cpp
View file @
24326d44
...
...
@@ -30,7 +30,6 @@ KItemListSelectionToggle::KItemListSelectionToggle(QGraphicsItem* parent) :
m_checked
(
false
),
m_hovered
(
false
)
{
setAcceptHoverEvents
(
true
);
}
KItemListSelectionToggle
::~
KItemListSelectionToggle
()
...
...
@@ -51,6 +50,15 @@ bool KItemListSelectionToggle::isChecked() const
return
m_checked
;
}
void
KItemListSelectionToggle
::
setHovered
(
bool
hovered
)
{
if
(
m_hovered
!=
hovered
)
{
m_hovered
=
hovered
;
m_pixmap
=
QPixmap
();
update
();
}
}
void
KItemListSelectionToggle
::
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
)
{
Q_UNUSED
(
option
);
...
...
@@ -65,20 +73,6 @@ void KItemListSelectionToggle::paint(QPainter* painter, const QStyleOptionGraphi
painter
->
drawPixmap
(
x
,
y
,
m_pixmap
);
}
void
KItemListSelectionToggle
::
hoverEnterEvent
(
QGraphicsSceneHoverEvent
*
event
)
{
QGraphicsWidget
::
hoverEnterEvent
(
event
);
m_hovered
=
true
;
m_pixmap
=
QPixmap
();
}
void
KItemListSelectionToggle
::
hoverLeaveEvent
(
QGraphicsSceneHoverEvent
*
event
)
{
QGraphicsWidget
::
hoverLeaveEvent
(
event
);
m_hovered
=
false
;
m_pixmap
=
QPixmap
();
}
void
KItemListSelectionToggle
::
resizeEvent
(
QGraphicsSceneResizeEvent
*
event
)
{
QGraphicsWidget
::
resizeEvent
(
event
);
...
...
@@ -97,12 +91,9 @@ void KItemListSelectionToggle::resizeEvent(QGraphicsSceneResizeEvent* event)
void
KItemListSelectionToggle
::
updatePixmap
()
{
const
char
*
icon
=
m_checked
?
"list-remove"
:
"list-add"
;
m_pixmap
=
KIconLoader
::
global
()
->
loadIcon
(
QLatin1String
(
icon
),
KIconLoader
::
NoGroup
,
iconSize
());
if
(
m_hovered
)
{
KIconLoader
::
global
()
->
iconEffect
()
->
apply
(
m_pixmap
,
KIconLoader
::
Desktop
,
KIconLoader
::
ActiveState
);
}
const
QString
icon
=
m_checked
?
"list-remove"
:
"list-add"
;
const
KIconLoader
::
States
state
=
m_hovered
?
KIconLoader
::
ActiveState
:
KIconLoader
::
DisabledState
;
m_pixmap
=
KIconLoader
::
global
()
->
loadIcon
(
icon
,
KIconLoader
::
Desktop
,
iconSize
(),
state
);
}
int
KItemListSelectionToggle
::
iconSize
()
const
...
...
dolphin/src/kitemviews/private/kitemlistselectiontoggle.h
View file @
24326d44
...
...
@@ -41,11 +41,11 @@ public:
void
setChecked
(
bool
checked
);
bool
isChecked
()
const
;
void
setHovered
(
bool
hovered
);
virtual
void
paint
(
QPainter
*
painter
,
const
QStyleOptionGraphicsItem
*
option
,
QWidget
*
widget
=
0
);
protected:
virtual
void
hoverEnterEvent
(
QGraphicsSceneHoverEvent
*
event
);
virtual
void
hoverLeaveEvent
(
QGraphicsSceneHoverEvent
*
event
);
virtual
void
resizeEvent
(
QGraphicsSceneResizeEvent
*
event
);
private:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a 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