src
color_button.cpp
Go to the documentation of this file.
1
// *****************************************************************************
2
//
3
// Copyright (c) 2015, Southwest Research Institute® (SwRI®)
4
// All rights reserved.
5
//
6
// Redistribution and use in source and binary forms, with or without
7
// modification, are permitted provided that the following conditions are met:
8
// * Redistributions of source code must retain the above copyright
9
// notice, this list of conditions and the following disclaimer.
10
// * Redistributions in binary form must reproduce the above copyright
11
// notice, this list of conditions and the following disclaimer in the
12
// documentation and/or other materials provided with the distribution.
13
// * Neither the name of Southwest Research Institute® (SwRI®) nor the
14
// names of its contributors may be used to endorse or promote products
15
// derived from this software without specific prior written permission.
16
//
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20
// ARE DISCLAIMED. IN NO EVENT SHALL Southwest Research Institute® BE LIABLE
21
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26
// OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
27
// DAMAGE.
28
//
29
// *****************************************************************************
30
#include <
mapviz/color_button.h
>
31
32
#include <QColorDialog>
33
34
namespace
mapviz
35
{
36
ColorButton::ColorButton
(QWidget *parent)
37
:
38
QPushButton(parent)
39
{
40
setColor
(Qt::black);
41
QObject::connect(
this
, SIGNAL(clicked(
bool
)),
42
this
, SLOT(
handleClicked
()));
43
}
44
45
void
ColorButton::setColor
(
const
QColor &color)
46
{
47
if
(!
color
.isValid() ||
color
==
color_
) {
48
return
;
49
}
50
51
color_
=
color
;
52
// This was a very strange bug. On initialization, the constructor
53
// would set the stylesheet to black, then the external owner would
54
// call setColor to change the color to something else. We would
55
// properly set the internal color_ and stylesheet, but it would
56
// continue to display black. If the user changed the color, it
57
// would change properly. Calling setStylesheet() twice fixes the
58
// behavior.
59
setStyleSheet(
"background: "
+
color_
.name());
60
setStyleSheet(
"background: "
+
color_
.name());
61
Q_EMIT
colorChanged
(
color_
);
62
}
63
64
void
ColorButton::handleClicked
()
65
{
66
// Note: We do not pass ourself as the parent or else the dialog
67
// will inherit our color as the background!
68
QColor new_color = QColorDialog::getColor(
color_
);
69
if
(!new_color.isValid() || new_color ==
color_
) {
70
return
;
71
}
72
setColor
(new_color);
73
Q_EMIT
colorEdited
(new_color);
74
}
75
}
// namespace mapviz
mapviz
Definition:
color_button.h:36
mapviz::ColorButton::setColor
void setColor(const QColor &color)
Definition:
color_button.cpp:45
mapviz::ColorButton::colorEdited
void colorEdited(const QColor &color)
color_button.h
mapviz::ColorButton::colorChanged
void colorChanged(const QColor &color)
mapviz::ColorButton::color
const QColor & color() const
Definition:
color_button.h:58
mapviz::ColorButton::ColorButton
ColorButton(QWidget *parent=0)
Definition:
color_button.cpp:36
mapviz::ColorButton::handleClicked
void handleClicked()
Definition:
color_button.cpp:64
mapviz::ColorButton::color_
QColor color_
Definition:
color_button.h:51
mapviz
Author(s): Marc Alban
autogenerated on Sun Sep 8 2024 02:27:09