aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned/titlebar.cpp
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-09-30 16:38:10 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2015-09-30 16:38:10 +0000
commit97adebbb8689671e6045d09f84456f28566aa3ed (patch)
treee4202f9e64512ceb82f7be8bac42076b1af22bbe /src/plugins/Ui/skinned/titlebar.cpp
parente3da4a8739f801d83ee4386a559e9cd010398101 (diff)
downloadqmmp-97adebbb8689671e6045d09f84456f28566aa3ed.tar.gz
qmmp-97adebbb8689671e6045d09f84456f28566aa3ed.tar.bz2
qmmp-97adebbb8689671e6045d09f84456f28566aa3ed.zip
skinned: improved time indicator in shaded mode (Thomas Perl) (#811)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@5621 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned/titlebar.cpp')
-rw-r--r--src/plugins/Ui/skinned/titlebar.cpp32
1 files changed, 25 insertions, 7 deletions
diff --git a/src/plugins/Ui/skinned/titlebar.cpp b/src/plugins/Ui/skinned/titlebar.cpp
index 9bf3a6531..68f147dff 100644
--- a/src/plugins/Ui/skinned/titlebar.cpp
+++ b/src/plugins/Ui/skinned/titlebar.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2014 by Ilya Kotov *
+ * Copyright (C) 2007-2015 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -33,10 +33,12 @@
#include "display.h"
#include "titlebar.h"
#include "mainwindow.h"
+#include "timeindicator.h"
// TODO skin cursor with shade mode
-TitleBar::TitleBar(QWidget *parent)
+TitleBar::TitleBar(TimeIndicatorModel *model, QWidget *parent)
: PixmapWidget(parent)
+ , m_model(model)
{
m_align = false;
m_skin = Skin::instance();
@@ -65,6 +67,7 @@ TitleBar::TitleBar(QWidget *parent)
m_align = true;
setCursor(m_skin->getCursor(Skin::CUR_TITLEBAR));
updatePositions();
+ connect(m_model, SIGNAL(changed()), this, SLOT(onModelChanged()));
}
TitleBar::~TitleBar()
@@ -160,7 +163,7 @@ void TitleBar::shade()
m_shade2->show();
m_currentTime = new SymbolDisplay(this, 6);
m_currentTime->show();
- m_currentTime->display("--:--");
+ connect (m_currentTime, SIGNAL (mouseClicked()), m_model, SLOT (toggleElapsed()));
m_control = new TitleBarControl(this);
m_control->show();
connect (m_control, SIGNAL (nextClicked()), m_mw, SLOT (next()));
@@ -190,6 +193,7 @@ void TitleBar::shade()
qobject_cast<MainDisplay *> (parent())->setMinimalMode(m_shaded);
if (m_align)
Dock::instance()->align(m_mw, m_shaded? -r*102: r*102);
+ onModelChanged();
updatePositions();
}
@@ -200,6 +204,11 @@ void TitleBar::mouseDoubleClickEvent (QMouseEvent *)
QString TitleBar::formatTime (int sec)
{
+ bool sign = false;
+ if (sec < 0) {
+ sign = true;
+ sec = -sec;
+ }
int minutes = sec / 60;
int seconds = sec % 60;
@@ -209,15 +218,24 @@ QString TitleBar::formatTime (int sec)
if (minutes < 10) str_minutes.prepend ("0");
if (seconds < 10) str_seconds.prepend ("0");
- return str_minutes + ":" + str_seconds;
+ return (sign ? "-" : "") + str_minutes + ":" + str_seconds;
}
-void TitleBar::setTime(qint64 time)
+void TitleBar::onModelChanged()
{
if (!m_currentTime)
return;
- if (time < 0)
+
+ if (!m_model->visible())
+ {
+ m_currentTime->display(" : ");
+ }
+ else if (m_model->position() < 0)
+ {
m_currentTime->display("--:--");
+ }
else
- m_currentTime->display(formatTime(time/1000));
+ {
+ m_currentTime->display(formatTime(m_model->displayTime()));
+ }
}