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
8b2ecc3c
Commit
8b2ecc3c
authored
Apr 09, 2010
by
Thomas Hartmann
Browse files
QmlDesigner.propertyEditor: add editing of alpha channels for colors
parent
193c7019
Changes
3
Hide whitespace changes
Inline
Side-by-side
share/qtcreator/qmldesigner/propertyeditor/Qt/ColorGroupBox.qml
View file @
8b2ecc3c
...
...
@@ -65,20 +65,24 @@ QExtGroupBox {
valueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedBaseColor
);
hueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedBaseColor
);
saturationSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedBaseColor
);
alphaSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedBaseColor
);
}
else
{
valueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
hueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
saturationSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
alphaSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
}
}
else
{
if
(
backendColor
.
isInSubState
)
{
valueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedStateColor
);
hueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedStateColor
);
saturationSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedStateColor
);
alphaSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
changedStateColor
);
}
else
{
valueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
hueSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
saturationSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
alphaSpinBox
.
setStyleSheet
(
"
color:
"
+
scheme
.
defaultColor
);
}
}
}
...
...
@@ -133,7 +137,6 @@ QExtGroupBox {
}
layout
:
VerticalLayout
{
topMargin
:
36
...
...
@@ -199,6 +202,7 @@ QExtGroupBox {
}
}
QWidget
{
layout
:
HorizontalLayout
{
Label
{
...
...
@@ -214,6 +218,23 @@ QExtGroupBox {
}
}
}
QWidget
{
layout
:
HorizontalLayout
{
topMargin
:
12
Label
{
text
:
"
A
"
fixedWidth
:
15
}
QSpinBox
{
id
:
alphaSpinBox
maximum
:
255
value
:
colorControl
.
alpha
;
onValueChanged
:
if
(
Math
.
floor
(
colorControl
.
alpha
)
!=
value
)
colorControl
.
alpha
=
value
;
}
}
}
}
}
...
...
src/plugins/qmldesigner/components/propertyeditor/colorwidget.cpp
View file @
8b2ecc3c
...
...
@@ -87,7 +87,9 @@ namespace QmlDesigner {
{
if
(
y
<
0
)
y
=
0
;
if
(
y
>
120
)
y
=
120
;
int
oldAlpha
=
m_color
.
alpha
();
m_color
.
setHsv
((
y
*
359
)
/
120
,
m_color
.
hsvSaturation
(),
m_color
.
value
());
m_color
.
setAlpha
(
oldAlpha
);
update
();
// redraw pointer
emit
hueChanged
();
}
...
...
@@ -139,7 +141,9 @@ namespace QmlDesigner {
if
(
x
>
120
)
x
=
120
;
if
(
y
<
0
)
y
=
0
;
if
(
y
>
120
)
y
=
120
;
int
oldAlpha
=
m_color
.
alpha
();
newColor
.
setHsv
(
hue
(),
(
x
*
255
)
/
120
,
255
-
(
y
*
255
)
/
120
);
newColor
.
setAlpha
(
oldAlpha
);
setColor
(
newColor
);
}
...
...
src/plugins/qmldesigner/components/propertyeditor/colorwidget.h
View file @
8b2ecc3c
...
...
@@ -82,14 +82,46 @@ private:
QString
m_colorString
;
};
inline
QString
properName
(
const
QColor
&
color
)
{
QString
s
;
if
(
color
.
alpha
()
==
255
)
s
.
sprintf
(
"#%02x%02x%02x"
,
color
.
red
(),
color
.
green
(),
color
.
blue
());
else
s
.
sprintf
(
"#%02x%02x%02x%02x"
,
color
.
alpha
(),
color
.
red
(),
color
.
green
(),
color
.
blue
());
return
s
;
}
inline
QColor
properColor
(
const
QString
&
str
)
{
int
lalpha
=
255
;
QString
lcolorStr
=
str
;
if
(
lcolorStr
.
at
(
0
)
==
'#'
&&
lcolorStr
.
length
()
==
9
)
{
QString
alphaStr
=
lcolorStr
;
alphaStr
.
truncate
(
3
);
lcolorStr
.
remove
(
0
,
3
);
lcolorStr
=
"#"
+
lcolorStr
;
alphaStr
.
remove
(
0
,
1
);
bool
v
;
lalpha
=
alphaStr
.
toInt
(
&
v
,
16
);
if
(
!
v
)
lalpha
=
255
;
}
QColor
lcolor
(
lcolorStr
);
lcolor
.
setAlpha
(
lalpha
);
return
lcolor
;
}
class
ColorBox
:
public
QWidget
{
Q_OBJECT
Q_PROPERTY
(
QString
color
READ
color
WRITE
setColor
NOTIFY
colorChanged
)
Q_PROPERTY
(
QString
strColor
READ
strColor
WRITE
setStrColor
NOTIFY
colorChanged
)
Q_PROPERTY
(
QColor
color
READ
color
WRITE
setColor
NOTIFY
colorChanged
)
Q_PROPERTY
(
int
hue
READ
hue
WRITE
setHue
NOTIFY
hueChanged
)
Q_PROPERTY
(
int
saturation
READ
saturation
WRITE
setSaturation
NOTIFY
saturationChanged
)
Q_PROPERTY
(
int
value
READ
value
WRITE
setValue
NOTIFY
valueChanged
)
Q_PROPERTY
(
int
alpha
READ
alpha
WRITE
setAlpha
NOTIFY
alphaChanged
)
public:
...
...
@@ -104,7 +136,9 @@ void setHue(int newHue)
if
(
m_color
.
hsvHue
()
==
newHue
)
return
;
int
oldAlpha
=
m_color
.
alpha
();
m_color
.
setHsv
(
newHue
,
m_color
.
hsvSaturation
(),
m_color
.
value
());
m_color
.
setAlpha
(
oldAlpha
);
update
();
emit
hueChanged
();
emit
colorChanged
();
...
...
@@ -118,12 +152,28 @@ int hue() const
return
retval
;
}
void
setColor
(
const
QString
&
colorStr
)
void
setAlpha
(
int
newAlpha
)
{
if
(
m_color
.
alpha
()
==
newAlpha
)
return
;
m_color
.
setAlpha
(
newAlpha
);
update
();
emit
alphaChanged
();
emit
colorChanged
();
}
int
alpha
()
const
{
if
(
m_color
.
name
()
==
colorStr
)
return
m_color
.
alpha
();
}
void
setStrColor
(
const
QString
&
colorStr
)
{
if
(
properName
(
m_color
)
==
colorStr
)
return
;
setColor
(
Q
Color
(
colorStr
));
setColor
(
proper
Color
(
colorStr
));
}
void
setColor
(
const
QColor
&
color
)
...
...
@@ -134,19 +184,25 @@ void setColor(const QColor &color)
int
oldsaturation
=
m_color
.
hsvSaturation
();
int
oldvalue
=
m_color
.
value
();
int
oldhue
=
m_color
.
hsvHue
();
int
oldAlpha
=
m_color
.
alpha
();
m_color
=
color
;
update
();
if
(
oldhue
!=
m_color
.
hsvHue
())
emit
hueChanged
();
if
(
oldsaturation
!=
saturation
())
emit
saturationChanged
();
if
(
oldvalue
!=
value
())
emit
valueChanged
();
if
(
oldAlpha
!=
alpha
())
emit
alphaChanged
();
emit
colorChanged
();
}
QString
c
olor
()
const
QString
strC
olor
()
const
{
return
m_color
.
name
(
);
return
properName
(
m_color
);
}
QColor
color
()
const
{
return
m_color
;
}
int
saturation
()
const
{
...
...
@@ -156,7 +212,9 @@ int saturation() const
void
setSaturation
(
int
newsaturation
)
{
if
(
m_color
.
hsvSaturation
()
==
newsaturation
)
return
;
int
oldAlpha
=
m_color
.
alpha
();
m_color
.
setHsv
(
m_color
.
hsvHue
(),
newsaturation
,
m_color
.
value
());
m_color
.
setAlpha
(
oldAlpha
);
update
();
emit
saturationChanged
();
emit
colorChanged
();
...
...
@@ -170,7 +228,9 @@ int value() const
void
setValue
(
int
newvalue
)
{
if
(
m_color
.
value
()
==
newvalue
)
return
;
int
oldAlpha
=
m_color
.
alpha
();
m_color
.
setHsv
(
m_color
.
hsvHue
(),
m_color
.
hsvSaturation
(),
newvalue
);
m_color
.
setAlpha
(
oldAlpha
);
update
();
emit
valueChanged
();
emit
colorChanged
();
...
...
@@ -181,6 +241,7 @@ signals:
void
hueChanged
();
void
saturationChanged
();
void
valueChanged
();
void
alphaChanged
();
protected:
void
paintEvent
(
QPaintEvent
*
event
);
...
...
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