┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/selectiontoggle.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2008-02-12 01:04:03 +0000
committerPeter Penz <[email protected]>2008-02-12 01:04:03 +0000
commitbad99f25fee78ccf36971da00e3ef18d493c22fe (patch)
tree44c8b663ef224c35fa2562e42cabd0a277d6d574 /src/selectiontoggle.cpp
parentbcb1c6b2328ff5dadf16cb4a0355ad2101780939 (diff)
use different icons dependent on the checked state of the toggle
svn path=/trunk/KDE/kdebase/apps/; revision=773902
Diffstat (limited to 'src/selectiontoggle.cpp')
-rw-r--r--src/selectiontoggle.cpp34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/selectiontoggle.cpp b/src/selectiontoggle.cpp
index 16d3c5979..eb02edcb2 100644
--- a/src/selectiontoggle.cpp
+++ b/src/selectiontoggle.cpp
@@ -38,9 +38,9 @@ SelectionToggle::SelectionToggle(QWidget* parent) :
{
parent->installEventFilter(this);
resize(sizeHint());
- m_icon = KIconLoader::global()->loadIcon("dialog-ok",
- KIconLoader::NoGroup,
- KIconLoader::SizeSmall);
+ setIconOverlay(isChecked());
+ connect(this, SIGNAL(toggled(bool)),
+ this, SLOT(setIconOverlay(bool)));
}
SelectionToggle::~SelectionToggle()
@@ -115,7 +115,24 @@ void SelectionToggle::paintEvent(QPaintEvent* event)
{
QPainter painter(this);
painter.setClipRect(event->rect());
+ painter.setRenderHint(QPainter::Antialiasing);
+
+ // draw an alpha blended circle as background
+ const QPalette& palette = parentWidget()->palette();
+
+ const QBrush& backgroundBrush = palette.brush(QPalette::Normal, QPalette::Window);
+ QColor background = backgroundBrush.color();
+ background.setAlpha(m_fadingValue / 2);
+ painter.setBrush(background);
+
+ const QBrush& foregroundBrush = palette.brush(QPalette::Normal, QPalette::WindowText);
+ QColor foreground = foregroundBrush.color();
+ foreground.setAlpha(m_fadingValue / 4);
+ painter.setPen(foreground);
+
+ painter.drawEllipse(0, 0, width(), height());
+ // draw the icon overlay
if (m_isHovered) {
KIconEffect iconEffect;
QPixmap activeIcon = iconEffect.apply(m_icon, KIconLoader::Desktop, KIconLoader::ActiveState);
@@ -146,11 +163,20 @@ void SelectionToggle::setFadingValue(int value)
update();
}
+void SelectionToggle::setIconOverlay(bool checked)
+{
+ const char* icon = checked ? "list-remove" : "list-add";
+ m_icon = KIconLoader::global()->loadIcon(icon,
+ KIconLoader::NoGroup,
+ KIconLoader::SizeSmall);
+ update();
+}
+
void SelectionToggle::startFading()
{
Q_ASSERT(m_fadingTimeLine == 0);
- m_fadingTimeLine = new QTimeLine(2000, this);
+ m_fadingTimeLine = new QTimeLine(1500, this);
connect(m_fadingTimeLine, SIGNAL(frameChanged(int)),
this, SLOT(setFadingValue(int)));
m_fadingTimeLine->setFrameRange(0, 255);