diff options
| author | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-01 18:54:41 +0000 |
|---|---|---|
| committer | trialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38> | 2011-07-01 18:54:41 +0000 |
| commit | b8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0 (patch) | |
| tree | 1a63bd6647225ae445adf01dceb8271632723a83 /src/ui/display.cpp | |
| parent | bb31a704825263be94b5528a2e362898af109cf9 (diff) | |
| download | qmmp-b8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0.tar.gz qmmp-b8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0.tar.bz2 qmmp-b8b7804fcc229e9c34e18dc3ec6dfafd2e3485b0.zip | |
moved skinned ui to separate plugin
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@2252 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/ui/display.cpp')
| -rw-r--r-- | src/ui/display.cpp | 357 |
1 files changed, 0 insertions, 357 deletions
diff --git a/src/ui/display.cpp b/src/ui/display.cpp deleted file mode 100644 index 9b54306d2..000000000 --- a/src/ui/display.cpp +++ /dev/null @@ -1,357 +0,0 @@ -/*************************************************************************** - * Copyright (C) 2006-2011 by Ilya Kotov * - * forkotov02@hotmail.ru * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * - ***************************************************************************/ - -#include <QApplication> -#include <QSettings> -#include <QMenu> -#include <qmmp/soundcore.h> -#include <qmmpui/mediaplayer.h> -#include <qmmpui/playlistmanager.h> -#include "skin.h" -#include "mainvisual.h" -#include "button.h" -#include "titlebar.h" -#include "positionbar.h" -#include "number.h" -#include "togglebutton.h" -#include "symboldisplay.h" -#include "textscroller.h" -#include "monostereo.h" -#include "playstatus.h" -#include "volumebar.h" -#include "balancebar.h" -#include "mainwindow.h" -#include "timeindicator.h" -#include "actionmanager.h" -#include "display.h" - -MainDisplay::MainDisplay (QWidget *parent) - : PixmapWidget (parent) -{ - m_shaded = false; - m_skin = Skin::instance(); - setPixmap (m_skin->getMain()); - setCursor(m_skin->getCursor(Skin::CUR_NORMAL)); - m_mw = qobject_cast<MainWindow*>(parent); - m_titlebar = new TitleBar(this); - m_titlebar->move(0,0); - m_titlebar->setActive(true); - m_previous = new Button (this, Skin::BT_PREVIOUS_N, Skin::BT_PREVIOUS_P, Skin::CUR_NORMAL); - m_previous->setToolTip(tr("Previous")); - connect (m_previous, SIGNAL (clicked()), parent, SLOT (previous())); - - m_play = new Button (this, Skin::BT_PLAY_N, Skin::BT_PLAY_P, Skin::CUR_NORMAL); - m_play->setToolTip(tr("Play")); - connect (m_play, SIGNAL (clicked()),parent,SLOT (play())); - m_pause = new Button (this, Skin::BT_PAUSE_N,Skin::BT_PAUSE_P, Skin::CUR_NORMAL); - m_pause->setToolTip(tr("Pause")); - connect (m_pause,SIGNAL (clicked()),parent,SLOT (pause())); - m_stop = new Button (this, Skin::BT_STOP_N,Skin::BT_STOP_P, Skin::CUR_NORMAL); - m_stop->setToolTip(tr("Stop")); - connect (m_stop,SIGNAL (clicked()),parent,SLOT (stop())); - m_next = new Button (this, Skin::BT_NEXT_N,Skin::BT_NEXT_P, Skin::CUR_NORMAL); - m_next->setToolTip(tr("Next")); - connect (m_next,SIGNAL (clicked()),parent,SLOT (next())); - m_eject = new Button (this, Skin::BT_EJECT_N,Skin::BT_EJECT_P, Skin::CUR_NORMAL); - m_eject->setToolTip(tr("Add file")); - connect (m_eject,SIGNAL (clicked()),parent,SLOT (addFile())); - connect (m_skin, SIGNAL (skinChanged()), this, SLOT (updateSkin())); - m_vis = new MainVisual (this); - - m_eqButton = new ToggleButton (this,Skin::BT_EQ_ON_N,Skin::BT_EQ_ON_P, - Skin::BT_EQ_OFF_N,Skin::BT_EQ_OFF_P); - m_eqButton->setToolTip(tr("Equalizer")); - m_plButton = new ToggleButton (this,Skin::BT_PL_ON_N,Skin::BT_PL_ON_P, - Skin::BT_PL_OFF_N,Skin::BT_PL_OFF_P); - m_plButton->setToolTip(tr("Playlist")); - - m_repeatButton = new ToggleButton (this,Skin::REPEAT_ON_N,Skin::REPEAT_ON_P, - Skin::REPEAT_OFF_N,Skin::REPEAT_OFF_P); - connect(m_repeatButton,SIGNAL(clicked(bool)),this,SIGNAL(repeatableToggled(bool))); - m_repeatButton->setToolTip(tr("Repeat playlist")); - m_shuffleButton = new ToggleButton (this,Skin::SHUFFLE_ON_N,Skin::SHUFFLE_ON_P, - Skin::SHUFFLE_OFF_N,Skin::SHUFFLE_OFF_P); - m_shuffleButton->setToolTip(tr("Shuffle")); - connect(m_shuffleButton,SIGNAL(clicked(bool)),this,SIGNAL(shuffleToggled(bool))); - - m_kbps = new SymbolDisplay(this,3); - m_freq = new SymbolDisplay(this,2); - m_text = new TextScroller (this); - m_monoster = new MonoStereo (this); - m_playstatus = new PlayStatus(this); - - m_volumeBar = new VolumeBar(this); - m_volumeBar->setToolTip(tr("Volume")); - connect(m_volumeBar, SIGNAL(sliderMoved(int)),SLOT(updateVolume())); - connect(m_volumeBar, SIGNAL(sliderPressed()),SLOT(updateVolume())); - connect(m_volumeBar, SIGNAL(sliderReleased()),m_text,SLOT(clear())); - - m_balanceBar = new BalanceBar(this); - m_balanceBar->setToolTip(tr("Balance")); - connect(m_balanceBar, SIGNAL(sliderMoved(int)),SLOT(updateVolume())); - connect(m_balanceBar, SIGNAL(sliderPressed()),SLOT(updateVolume())); - connect(m_balanceBar, SIGNAL(sliderReleased()),m_text,SLOT(clear())); - - m_posbar = new PositionBar(this); - connect(m_posbar, SIGNAL(sliderPressed()),SLOT(showPosition())); - connect(m_posbar, SIGNAL(sliderMoved(qint64)),SLOT(showPosition())); - connect(m_posbar, SIGNAL(sliderReleased()),SLOT(updatePosition())); - - m_timeIndicator = new TimeIndicator(this); - m_aboutWidget = new QWidget(this); - m_core = SoundCore::instance(); - connect(m_core, SIGNAL(elapsedChanged(qint64)), SLOT(setTime(qint64))); - connect(m_core, SIGNAL(bitrateChanged(int)), m_kbps, SLOT(display(int))); - connect(m_core, SIGNAL(frequencyChanged(quint32)), SLOT(setSampleRate(quint32))); - connect(m_core, SIGNAL(channelsChanged(int)), m_monoster, SLOT(setChannels(int))); - connect(m_core, SIGNAL(stateChanged(Qmmp::State)), SLOT(setState(Qmmp::State))); - connect(m_core, SIGNAL(volumeChanged(int,int)), SLOT(setVolume(int, int))); - connect(m_core, SIGNAL(elapsedChanged(qint64)),m_titlebar, SLOT(setTime(qint64))); - PlayListManager *pl_manager = MediaPlayer::instance()->playListManager(); - connect(pl_manager, SIGNAL(repeatableListChanged(bool)), m_repeatButton, SLOT(setON(bool))); - connect(pl_manager, SIGNAL(shuffleChanged(bool)), m_shuffleButton, SLOT(setON(bool))); - updatePositions(); - updateMask(); -} - -MainDisplay::~MainDisplay() -{ - QSettings settings (Qmmp::configFile(), QSettings::IniFormat); - settings.setValue ("Playlist/visible",m_plButton->isChecked()); - settings.setValue ("Equalizer/visible",m_eqButton->isChecked()); -} - -void MainDisplay::updatePositions() -{ - int r = m_skin->ratio(); - m_previous->move (r*16, r*88); - m_play->move (r*39, r*88); - m_pause->move (r*62, r*88); - m_vis->move(r*24, r*43); - m_stop->move (r*85, r*88); - m_next->move (r*108, r*88); - m_eject->move (r*136, r*89); - m_posbar->move (r*16, r*72); - m_eqButton->move (r*219, r*58); - m_plButton->move (r*241, r*58); - m_repeatButton->move (r*210, r*89); - m_shuffleButton->move (r*164, r*89); - m_kbps->move (r*111, r*43); - m_freq->move (r*156, r*43); - m_text->resize (r*154, r*15); - m_text->move (r*109, r*23); - m_monoster->move (r*212, r*41); - m_playstatus->move(r*24, r*28); - m_volumeBar->move(r*107, r*57); - m_balanceBar->move(r*177, r*57); - m_timeIndicator->move(r*34, r*26); - m_aboutWidget->setGeometry(r*247,r*83,r*20,r*25); -} - -void MainDisplay::setTime (qint64 t) -{ - m_posbar->setValue (t); - m_timeIndicator->setTime(t/1000); -} -void MainDisplay::setDuration(qint64 t) -{ - m_posbar->setMaximum (t); - m_timeIndicator->setSongDuration(t/1000); -} - -void MainDisplay::setState(Qmmp::State state) -{ - switch ((int) state) - { - case Qmmp::Playing: - m_playstatus->setStatus(PlayStatus::PLAY); - m_timeIndicator->setNeedToShowTime(true); - setDuration(m_core->totalTime()); - break; - case Qmmp::Paused: - m_playstatus->setStatus(PlayStatus::PAUSE); - break; - case Qmmp::Stopped: - m_playstatus->setStatus(PlayStatus::STOP); - m_monoster->setChannels (0); - m_timeIndicator->setNeedToShowTime(false); - m_posbar->setValue (0); - m_posbar->setMaximum (0); - m_titlebar->setTime(-1); - } -} - -void MainDisplay::setVolume(int left, int right) -{ - int maxVol = qMax(left, right); - m_volumeBar->setValue(maxVol); - if (maxVol && !m_volumeBar->isPressed()) - m_balanceBar->setValue((right - left) * 100/maxVol); -} - -void MainDisplay::updateSkin() -{ - setPixmap (m_skin->getMain()); - m_mw->resize(size()); - setCursor(m_skin->getCursor(Skin::CUR_NORMAL)); - setMinimalMode(m_shaded); - updatePositions(); -} - -void MainDisplay::updateMask() -{ - m_mw->clearMask(); - m_mw->setMask(QRegion(0,0,m_mw->width(),m_mw->height())); - QRegion region = m_skin->getRegion(m_shaded? Skin::WINDOW_SHADE : Skin::NORMAL); - if (!region.isEmpty()) - m_mw->setMask(region); -} - -void MainDisplay::setMinimalMode(bool b) -{ - m_shaded = b; - int r = m_skin->ratio(); - - if(m_shaded) - m_mw->resize(r*275,r*14); - else - m_mw->resize(r*275,r*116); - updateMask(); -} - -void MainDisplay::setActive(bool b) -{ - m_titlebar->setActive(b); -} - -void MainDisplay::setSampleRate(quint32 rate) -{ - m_freq->display((int) rate/1000); -} -//TODO optimize this connections -void MainDisplay::setEQ (QWidget* w) -{ - m_equlizer = w; - m_eqButton->setON (m_equlizer->isVisible()); - ACTION(ActionManager::SHOW_EQUALIZER)->setChecked(m_equlizer->isVisible()); - - connect (ACTION(ActionManager::SHOW_EQUALIZER), SIGNAL(triggered(bool)), - m_equlizer, SLOT (setVisible (bool))); - connect (ACTION(ActionManager::SHOW_EQUALIZER), SIGNAL(triggered(bool)), - m_eqButton, SLOT (setON (bool))); - - connect (m_eqButton, SIGNAL(clicked(bool)), - ACTION(ActionManager::SHOW_EQUALIZER), SLOT(setChecked (bool))); - connect (m_eqButton, SIGNAL(clicked(bool)), m_equlizer, SLOT (setVisible (bool))); - connect (m_equlizer, SIGNAL(closed ()), m_eqButton, SLOT (click())); -} - -void MainDisplay::setPL (QWidget* w) -{ - m_playlist = w; - m_plButton->setON (m_playlist->isVisible()); - ACTION(ActionManager::SHOW_PLAYLIST)->setChecked(m_playlist->isVisible()); - - connect (ACTION(ActionManager::SHOW_PLAYLIST), SIGNAL(triggered(bool)), - m_playlist, SLOT (setVisible (bool))); - connect (ACTION(ActionManager::SHOW_PLAYLIST), SIGNAL(triggered(bool)), - m_plButton, SLOT (setON (bool))); - - connect (m_plButton, SIGNAL(clicked(bool)), - ACTION(ActionManager::SHOW_PLAYLIST), SLOT(setChecked (bool))); - connect (m_plButton, SIGNAL (clicked (bool)), m_playlist, SLOT (setVisible (bool))); - connect (m_playlist, SIGNAL (closed ()), m_plButton, SLOT (click())); -} - -bool MainDisplay::isPlaylistVisible() const -{ - return m_plButton->isChecked(); -} - -bool MainDisplay::isEqualizerVisible() const -{ - return m_eqButton->isChecked(); -} - -void MainDisplay::updateVolume() -{ - if(sender() == m_volumeBar) - m_text->setText(tr("Volume: %1%").arg(m_volumeBar->value())); - if(sender() == m_balanceBar) - { - if(m_balanceBar->value() > 0) - m_text->setText(tr("Balance: %1% right").arg(m_balanceBar->value())); - else if(m_balanceBar->value() < 0) - m_text->setText(tr("Balance: %1% left").arg(-m_balanceBar->value())); - else - m_text->setText(tr("Balance: center")); - } - m_mw->setVolume(m_volumeBar->value(), m_balanceBar->value()); -} - -void MainDisplay::showPosition() -{ - int sec = m_posbar->value() / 1000; - if(sec > 3600) - sec /= 60; - QString time = QString("%1:%2").arg(sec/60, 2, 10, QChar('0')).arg(sec%60, 2, 10, QChar('0')); - m_text->setText(tr("Seek to: %1").arg(time)); -} - -void MainDisplay::updatePosition() -{ - m_text->clear(); - m_core->seek(m_posbar->value()); -} - -void MainDisplay::wheelEvent (QWheelEvent *e) -{ - m_mw->setVolume(m_volumeBar->value()+e->delta()/10, m_balanceBar->value()); -} - -bool MainDisplay::isRepeatable() const -{ - return m_repeatButton->isChecked(); -} - -bool MainDisplay::isShuffle() const -{ - return m_shuffleButton->isChecked(); -} - -void MainDisplay::setIsRepeatable(bool yes) -{ - m_repeatButton->setON(yes); -} - -void MainDisplay::setIsShuffle(bool yes) -{ - m_shuffleButton->setON(yes); -} - -void MainDisplay::mousePressEvent(QMouseEvent *e) -{ - if (e->button() == Qt::RightButton) - m_mw->menu()->exec(e->globalPos()); - else if(e->button() == Qt::LeftButton && m_aboutWidget->underMouse()) - m_mw->about(); - PixmapWidget::mousePressEvent(e); -} - |
