aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-04-05 07:51:00 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-04-05 07:51:00 +0000
commit5d80ae02f902e0b7a77690a5c6e203341056cff8 (patch)
treec83386b0ea00e0cfd0e2730882495c3f8c9043aa
parent8548aed204e3f7418d639d8aae99103000995b06 (diff)
downloadqmmp-5d80ae02f902e0b7a77690a5c6e203341056cff8.tar.gz
qmmp-5d80ae02f902e0b7a77690a5c6e203341056cff8.tar.bz2
qmmp-5d80ae02f902e0b7a77690a5c6e203341056cff8.zip
qsui: added tooltip to seeking slider
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6229 90c681e8-e032-0410-971d-27865f9a5e38
-rw-r--r--src/plugins/Ui/qsui/positionslider.cpp23
-rw-r--r--src/plugins/Ui/qsui/positionslider.h6
2 files changed, 25 insertions, 4 deletions
diff --git a/src/plugins/Ui/qsui/positionslider.cpp b/src/plugins/Ui/qsui/positionslider.cpp
index a28a66b91..a2573a80a 100644
--- a/src/plugins/Ui/qsui/positionslider.cpp
+++ b/src/plugins/Ui/qsui/positionslider.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2011-2015 by Ilya Kotov *
+ * Copyright (C) 2011-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -22,10 +22,14 @@
#include <QWheelEvent>
#include <QStyleOptionSlider>
#include <QStyle>
+#include <QToolTip>
+#include <qmmpui/metadataformatter.h>
#include "positionslider.h"
PositionSlider::PositionSlider(QWidget *parent) : QSlider(Qt::Horizontal, parent)
-{}
+{
+ connect(this, SIGNAL(sliderMoved(int)), SLOT(onSliderMoved(int)));
+}
void PositionSlider::mousePressEvent (QMouseEvent *event)
{
@@ -45,9 +49,15 @@ void PositionSlider::mousePressEvent (QMouseEvent *event)
val = minimum() + ((maximum() - minimum()) * event->x()) / width();
if (invertedAppearance() == true)
+ {
setValue(maximum() - val);
+ onSliderMoved(maximum() - val);
+ }
else
+ {
setValue(val);
+ onSliderMoved(val);
+ }
setSliderDown (true);
event->accept();
@@ -66,3 +76,12 @@ void PositionSlider::wheelEvent(QWheelEvent *event)
setValue(value() + event->delta() / 20);
sliderReleased();
}
+
+void PositionSlider::onSliderMoved(int pos)
+{
+ QStyleOptionSlider opt;
+ initStyleOption(&opt);
+ QRect rect = style()->subControlRect(QStyle::CC_Slider, &opt, QStyle::SC_SliderHandle, this);
+ rect.moveTo(rect.x() - 10 , rect.y() - 45);
+ QToolTip::showText(mapToGlobal(rect.topLeft()), MetaDataFormatter::formatLength(pos), this, QRect());
+}
diff --git a/src/plugins/Ui/qsui/positionslider.h b/src/plugins/Ui/qsui/positionslider.h
index 00d66d7d3..d4e98416b 100644
--- a/src/plugins/Ui/qsui/positionslider.h
+++ b/src/plugins/Ui/qsui/positionslider.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2011-2014 by Ilya Kotov *
+ * Copyright (C) 2011-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -36,12 +36,14 @@ public:
explicit PositionSlider(QWidget *parent = 0);
virtual ~PositionSlider(){}
-
protected:
virtual void mousePressEvent (QMouseEvent *event);
virtual void mouseReleaseEvent (QMouseEvent *event);
virtual void wheelEvent(QWheelEvent *event);
+private slots:
+ void onSliderMoved(int pos);
+
};
#endif // POSITIONSLIDER_H