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
Miguel Lopez
Krita
Commits
b86fdfa6
Commit
b86fdfa6
authored
May 02, 2014
by
Arjen Hiemstra
Browse files
sketch: Add tooltip functionality to Button
parent
74890c39
Changes
2
Hide whitespace changes
Inline
Side-by-side
krita/sketch/qml/components/Button.qml
View file @
b86fdfa6
...
...
@@ -45,6 +45,8 @@ Item {
property
bool
hasFocus
:
false
;
property
string
tooltip
:
""
;
width
:
Constants
.
GridWidth
;
height
:
Constants
.
GridHeight
;
...
...
@@ -124,6 +126,7 @@ Item {
MouseArea
{
id
:
mouse
;
anchors.fill
:
parent
;
hoverEnabled
:
true
;
onClicked
:
{
if
(
base
.
enabled
)
{
base
.
clicked
();
...
...
@@ -132,6 +135,37 @@ Item {
}
}
}
onPressAndHold
:
{
if
(
base
.
tooltip
!==
""
)
{
tooltip
.
show
(
base
.
width
/
2
,
0
);
}
}
onReleased
:
{
tooltip
.
hide
();
}
onEntered
:
{
hoverDelayTimer
.
start
();
}
onPositionChanged
:
{
if
(
hoverDelayTimer
.
running
)
{
hoverDelayTimer
.
restart
();
}
}
onExited
:
{
hoverDelayTimer
.
stop
();
tooltip
.
hide
();
}
}
Timer
{
id
:
hoverDelayTimer
;
interval
:
1000
;
onTriggered
:
tooltip
.
show
(
base
.
width
/
2
,
0
);
}
Tooltip
{
id
:
tooltip
;
text
:
base
.
tooltip
;
}
states
:
State
{
...
...
krita/sketch/qml/components/Tooltip.qml
0 → 100644
View file @
b86fdfa6
/* This file is part of the KDE project
* Copyright (C) 2014 Arjen Hiemstra <ahiemstra@heimr.nl>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
import
QtQuick
1.1
import
org
.
krita
.
sketch
1.0
Item
{
id
:
base
;
property
alias
text
:
label
.
text
;
Rectangle
{
id
:
body
;
width
:
label
.
width
+
Constants
.
DefaultMargin
*
2
;
height
:
label
.
height
+
Constants
.
DefaultMargin
*
2
;
radius
:
Constants
.
DefaultMargin
;
opacity
:
0
;
Behavior
on
opacity
{
NumberAnimation
{
duration
:
100
}
}
Label
{
id
:
label
;
x
:
Constants
.
DefaultMargin
;
y
:
Constants
.
DefaultMargin
;
}
Shadow
{
anchors.top
:
parent
.
bottom
;
anchors.horizontalCenter
:
parent
.
horizontalCenter
;
width
:
label
.
width
;
}
}
function
show
(
x
,
y
)
{
body
.
opacity
=
1
;
body
.
x
=
x
-
(
body
.
width
/
2
);
body
.
y
=
y
-
body
.
height
;
}
function
hide
()
{
hideTimer
.
start
();
}
Timer
{
id
:
hideTimer
;
interval
:
1000
;
onTriggered
:
body
.
opacity
=
0
;
}
}
Write
Preview
Markdown
is supported
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