diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-09-30 16:38:10 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2015-09-30 16:38:10 +0000 |
| commit | 97adebbb8689671e6045d09f84456f28566aa3ed (patch) | |
| tree | e4202f9e64512ceb82f7be8bac42076b1af22bbe /src/plugins/Ui/skinned/titlebar.cpp | |
| parent | e3da4a8739f801d83ee4386a559e9cd010398101 (diff) | |
| download | qmmp-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.cpp | 32 |
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())); + } } |
