diff options
| -rw-r--r-- | src/display.cpp | 67 | ||||
| -rw-r--r-- | src/dock.cpp | 6 | ||||
| -rw-r--r-- | src/dock.h | 2 | ||||
| -rw-r--r-- | src/eqtitlebar.cpp | 38 | ||||
| -rw-r--r-- | src/eqtitlebar.h | 4 | ||||
| -rw-r--r-- | src/eqwidget.h | 1 | ||||
| -rw-r--r-- | src/playlist.h | 1 | ||||
| -rw-r--r-- | src/playlisttitlebar.cpp | 12 | ||||
| -rw-r--r-- | src/playlisttitlebar.h | 2 | ||||
| -rw-r--r-- | src/skin.cpp | 9 | ||||
| -rw-r--r-- | src/skin.h | 13 | ||||
| -rw-r--r-- | src/titlebar.cpp | 68 | ||||
| -rw-r--r-- | src/titlebar.h | 18 | ||||
| -rw-r--r-- | src/togglebutton.cpp | 7 | ||||
| -rw-r--r-- | src/togglebutton.h | 3 |
15 files changed, 151 insertions, 100 deletions
diff --git a/src/display.cpp b/src/display.cpp index 512599736..d2cce8165 100644 --- a/src/display.cpp +++ b/src/display.cpp @@ -168,14 +168,16 @@ void MainDisplay::setEQ ( QWidget* w ) { m_equlizer = w; m_eqButton->setON ( m_equlizer->isVisible() ); - connect ( m_eqButton, SIGNAL ( clicked ( bool ) ), m_equlizer, SLOT ( setVisible ( 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() ); - connect ( m_plButton, SIGNAL ( clicked ( bool ) ), m_playlist, SLOT ( setVisible ( bool ) ) ); + connect (m_plButton, SIGNAL (clicked (bool)), m_playlist, SLOT (setVisible (bool))); + connect (m_playlist, SIGNAL (closed ()), m_plButton, SLOT (click())); } void MainDisplay::setInfo(const OutputState &st) @@ -185,39 +187,39 @@ void MainDisplay::setInfo(const OutputState &st) switch ( ( int ) st.type() ) { case OutputState::Info: - { - //if ( seeking ) - // break; - setTime ( st.elapsedSeconds() ); - m_kbps->display ( st.bitrate() ); - m_freq->display ( st.frequency() /1000 ); - m_monoster->setChannels ( st.channels() ); - update(); - break; - } + { + //if ( seeking ) + // break; + setTime ( st.elapsedSeconds() ); + m_kbps->display ( st.bitrate() ); + m_freq->display ( st.frequency() /1000 ); + m_monoster->setChannels ( st.channels() ); + update(); + break; + } case OutputState::Playing: - { - m_playstatus->setStatus(PlayStatus::PLAY); - m_timeIndicator->setNeedToShowTime(true); - break; - } + { + m_playstatus->setStatus(PlayStatus::PLAY); + m_timeIndicator->setNeedToShowTime(true); + break; + } case OutputState::Buffering: - { - //ui.label->setText("Buffering"); - break; - } + { + //ui.label->setText("Buffering"); + break; + } case OutputState::Paused: - { - m_playstatus->setStatus(PlayStatus::PAUSE); - break; - } + { + m_playstatus->setStatus(PlayStatus::PAUSE); + break; + } case OutputState::Stopped: - { - m_playstatus->setStatus(PlayStatus::STOP); - m_monoster->setChannels (0); - //m_timeIndicator->setNeedToShowTime(false); - break; - } + { + m_playstatus->setStatus(PlayStatus::STOP); + m_monoster->setChannels (0); + //m_timeIndicator->setNeedToShowTime(false); + break; + } case OutputState::Volume: //qDebug("volume %d, %d", st.rightVolume(), st.leftVolume()); int maxVol = qMax(st.leftVolume(),st.rightVolume()); @@ -276,10 +278,9 @@ void MainDisplay::hideTimeDisplay() } - void MainDisplay::mousePressEvent(QMouseEvent *e) { - if( e->button() == Qt::RightButton) + if ( e->button() == Qt::RightButton) { m_mw->menu()->exec(e->globalPos()); } diff --git a/src/dock.cpp b/src/dock.cpp index 17edc44bf..2dc064639 100644 --- a/src/dock.cpp +++ b/src/dock.cpp @@ -237,3 +237,9 @@ void Dock::addActions ( QList<QAction *> actions ) m_widgetList.at ( i )->addActions ( actions ); } +bool Dock::isUnder(QWidget* upper, QWidget* nether) +{ + if (!isDocked(upper, nether)) + return FALSE; + return abs (upper->y() + upper->height() - nether->y()) < 2; +} diff --git a/src/dock.h b/src/dock.h index 5622de675..95c0e3433 100644 --- a/src/dock.h +++ b/src/dock.h @@ -44,12 +44,12 @@ public: void updateDock(); QPoint snap(QPoint, QWidget*, QWidget*); void addActions(QList<QAction *> actions); - ~Dock(); private: bool isDocked(QWidget*, QWidget*); + bool isUnder(QWidget*, QWidget*); static Dock *pointer; QWidget *m_mainWidget; QList <QWidget *> m_widgetList; diff --git a/src/eqtitlebar.cpp b/src/eqtitlebar.cpp index af4547bd7..5eab95f0c 100644 --- a/src/eqtitlebar.cpp +++ b/src/eqtitlebar.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2007 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -23,6 +23,7 @@ #include "skin.h" #include "dock.h" #include "mainwindow.h" +#include "button.h" #include "eqtitlebar.h" @@ -30,9 +31,12 @@ EqTitleBar::EqTitleBar(QWidget *parent) : PixmapWidget(parent) { m_skin = Skin::getPointer(); - setActive(FALSE); m_eq = parentWidget(); m_mw = qobject_cast<MainWindow*>(m_eq->parent()); + m_close = new Button(this, Skin::EQ_BT_CLOSE_N, Skin::EQ_BT_CLOSE_P); + connect(m_close, SIGNAL(clicked()),m_eq, SIGNAL(closed())); + m_close->move(264,3); + setActive(FALSE); } @@ -42,24 +46,30 @@ EqTitleBar::~EqTitleBar() void EqTitleBar::setActive(bool active) { if (active) - setPixmap(m_skin->getEqPart(Skin::EQ_TITLEBAR_A)); + { + setPixmap(m_skin->getEqPart(Skin::EQ_TITLEBAR_A)); + m_close->show(); + } else - setPixmap(m_skin->getEqPart(Skin::EQ_TITLEBAR_I)); + { + setPixmap(m_skin->getEqPart(Skin::EQ_TITLEBAR_I)); + m_close->hide(); + } } void EqTitleBar::mousePressEvent(QMouseEvent* event) { - switch((int) event->button ()) + switch ((int) event->button ()) + { + case Qt::LeftButton: { - case Qt::LeftButton: - { - m_pos = event->pos(); - break; - } - case Qt::RightButton: - { - m_mw->menu()->exec(event->globalPos()); - } + m_pos = event->pos(); + break; + } + case Qt::RightButton: + { + m_mw->menu()->exec(event->globalPos()); + } } } diff --git a/src/eqtitlebar.h b/src/eqtitlebar.h index 840577272..52ac12fff 100644 --- a/src/eqtitlebar.h +++ b/src/eqtitlebar.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2007 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -30,6 +30,7 @@ class QMouseEvent; class Skin; class MainWindow; +class Button; class EqTitleBar : public PixmapWidget { @@ -47,6 +48,7 @@ private: QPoint m_pos; QWidget* m_eq; MainWindow* m_mw; + Button* m_close; protected: void mousePressEvent(QMouseEvent*); diff --git a/src/eqwidget.h b/src/eqwidget.h index 095935fe3..0190a3e48 100644 --- a/src/eqwidget.h +++ b/src/eqwidget.h @@ -54,6 +54,7 @@ public: signals: void valueChanged(); + void closed(); private slots: void updateSkin(); diff --git a/src/playlist.h b/src/playlist.h index d8b4fba2c..4e8bdc1f8 100644 --- a/src/playlist.h +++ b/src/playlist.h @@ -67,6 +67,7 @@ class PlayList : public QWidget void loadPlaylist(); void savePlaylist(); void newPlaylist(); + void closed(); private slots: void showAddMenu(); diff --git a/src/playlisttitlebar.cpp b/src/playlisttitlebar.cpp index 9aaed74ca..777a4b6b8 100644 --- a/src/playlisttitlebar.cpp +++ b/src/playlisttitlebar.cpp @@ -22,6 +22,7 @@ #include <QMenu> #include "dock.h" +#include "button.h" #include "playlisttitlebar.h" #include "skin.h" @@ -30,11 +31,17 @@ PlayListTitleBar::PlayListTitleBar(QWidget *parent) { m_active = FALSE; m_skin = Skin::getPointer(); - resize(275,20); + setSizeIncrement(25,1); connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin())); m_pl = qobject_cast<PlayList*>(parent); m_mw = qobject_cast<MainWindow*>(m_pl->parent()); + + m_close = new Button(this,Skin::PL_BT_CLOSE_N, Skin::PL_BT_CLOSE_P); + connect (m_close, SIGNAL(clicked()), m_pl, SIGNAL(closed())); + m_close->move(264,3); + resize(275,20); + //setActive(FALSE); } @@ -42,6 +49,7 @@ PlayListTitleBar::~PlayListTitleBar() {} void PlayListTitleBar::drawPixmap(int sx) { + m_close->move(264+sx*25,3); QPixmap pixmap(275+sx*25,20); pixmap.fill("black"); QPainter paint; @@ -55,6 +63,7 @@ void PlayListTitleBar::drawPixmap(int sx) } paint.drawPixmap(100-12+12*sx,0,m_skin->getPlPart(Skin::PL_TITLEBAR_A)); paint.drawPixmap(250+sx*25,0,m_skin->getPlPart(Skin::PL_CORNER_UR_A)); + m_close->show(); } else { @@ -65,6 +74,7 @@ void PlayListTitleBar::drawPixmap(int sx) } paint.drawPixmap(100-12+12*sx,0,m_skin->getPlPart(Skin::PL_TITLEBAR_I)); paint.drawPixmap(250+sx*25,0,m_skin->getPlPart(Skin::PL_CORNER_UR_I)); + m_close->hide(); } paint.end(); setPixmap(pixmap); diff --git a/src/playlisttitlebar.h b/src/playlisttitlebar.h index bea68c946..d70202946 100644 --- a/src/playlisttitlebar.h +++ b/src/playlisttitlebar.h @@ -29,6 +29,7 @@ */ class Skin; class MainWindow; +class Button; class PlayListTitleBar : public PixmapWidget { @@ -50,6 +51,7 @@ private: bool m_active; PlayList* m_pl; MainWindow* m_mw; + Button* m_close; protected: void resizeEvent(QResizeEvent*); diff --git a/src/skin.cpp b/src/skin.cpp index 96957ce2f..135fa9372 100644 --- a/src/skin.cpp +++ b/src/skin.cpp @@ -264,6 +264,9 @@ void Skin::loadPlayList() buttons[PL_BT_SCROLL_N] = pixmap->copy ( 52,53,8,18 ); buttons[PL_BT_SCROLL_P] = pixmap->copy ( 61,53,8,18 ); + buttons[PL_BT_CLOSE_N] = pixmap->copy (167,3,9,9); + buttons[PL_BT_CLOSE_P] = pixmap->copy (52,42,9,9); + } QPixmap *Skin::getPixmap ( const QString& name ) @@ -360,6 +363,9 @@ void Skin::loadEqMain() buttons[ EQ_BT_AUTO_0_N ] = pixmap->copy ( 35, 119,33,12 ); buttons[ EQ_BT_AUTO_0_P ] = pixmap->copy ( 212,119,33,12 ); + buttons[ EQ_BT_CLOSE_N ] = pixmap->copy ( 0,116,9,9 ); + buttons[ EQ_BT_CLOSE_P ] = pixmap->copy ( 0,125,9,9 ); + for ( int i = 0; i < 19; ++i ) { m_eq_spline << pixmap->copy ( 115, 294+i, 1, 1 ); @@ -445,6 +451,9 @@ void Skin::loadShufRep() buttons[ BT_PL_OFF_N ] = pixmap->copy ( 23,61,23,12 ); buttons[ BT_PL_OFF_P ] = pixmap->copy ( 69,61,23,12 ); + //buttons[ BT_PL_CLOSE_N ] = pixmap->copy (); + //buttons[ BT_PL_CLOSE_P ] = pixmap->copy (); + buttons[REPEAT_ON_N] = pixmap->copy ( 0,30, 28, 15 ); buttons[REPEAT_ON_P] = pixmap->copy ( 0,45, 28, 15 ); diff --git a/src/skin.h b/src/skin.h index 6f8dd192e..4d5416cb9 100644 --- a/src/skin.h +++ b/src/skin.h @@ -164,6 +164,8 @@ public: PL_BT_LST, PL_BT_SCROLL_N, PL_BT_SCROLL_P, + PL_BT_CLOSE_N, + PL_BT_CLOSE_P, /* eqmain.* */ EQ_BT_BAR_N, EQ_BT_BAR_P, @@ -177,6 +179,8 @@ public: EQ_BT_AUTO_1_P, EQ_BT_AUTO_0_N, EQ_BT_AUTO_0_P, + EQ_BT_CLOSE_N, + EQ_BT_CLOSE_P, /* shufrep.* */ BT_EQ_ON_N, BT_EQ_ON_P, @@ -186,6 +190,8 @@ public: BT_PL_ON_P, BT_PL_OFF_N, BT_PL_OFF_P, + BT_PL_CLOSE_N, + BT_PL_CLOSE_P, REPEAT_ON_N, REPEAT_ON_P, REPEAT_OFF_N, @@ -200,13 +206,6 @@ public: /* balance.* */ BT_BAL_N, BT_BAL_P, - // Playlist play/stop buttons - /*BT_PL_PLAY, - BT_PL_STOP, - BT_PL_PAUSE, - BT_PL_NEXT, - BT_PL_PREV, - BT_PL_EJECT*/ }; enum TitleBar { diff --git a/src/titlebar.cpp b/src/titlebar.cpp index dad38a54c..189105f06 100644 --- a/src/titlebar.cpp +++ b/src/titlebar.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * + * Copyright (C) 2007 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -31,23 +31,23 @@ TitleBar::TitleBar(QWidget *parent) : PixmapWidget(parent) { - skin = Skin::getPointer(); - setPixmap(skin->getTitleBar(Skin::TITLEBAR_A)); - mw = qobject_cast<MainWindow*>(parent); + m_skin = Skin::getPointer(); + setPixmap(m_skin->getTitleBar(Skin::TITLEBAR_A)); + m_mw = qobject_cast<MainWindow*>(parent); //buttons - menu = new Button(this,Skin::BT_MENU_N,Skin::BT_MENU_P); - connect(menu,SIGNAL(clicked()),this,SLOT(showMainMenu())); - menu->move(6,3); - minimize = new Button(this,Skin::BT_MINIMIZE_N,Skin::BT_MINIMIZE_P); - minimize->move(244,3); - connect(minimize, SIGNAL(clicked()), mw, SLOT(showMinimized())); - shade = new Button(this,Skin::BT_SHADE1_N,Skin::BT_SHADE1_P); - shade->move(254,3); - close = new Button(this,Skin::BT_CLOSE_N,Skin::BT_CLOSE_P); - close->move(264,3); - connect(close, SIGNAL(clicked()), mw, SLOT(handleCloseRequest())); + m_menu = new Button(this,Skin::BT_MENU_N,Skin::BT_MENU_P); + connect(m_menu,SIGNAL(clicked()),this,SLOT(showMainMenu())); + m_menu->move(6,3); + m_minimize = new Button(this,Skin::BT_MINIMIZE_N,Skin::BT_MINIMIZE_P); + m_minimize->move(244,3); + connect(m_minimize, SIGNAL(clicked()), m_mw, SLOT(showMinimized())); + m_shade = new Button(this,Skin::BT_SHADE1_N,Skin::BT_SHADE1_P); + m_shade->move(254,3); + m_close = new Button(this,Skin::BT_CLOSE_N,Skin::BT_CLOSE_P); + m_close->move(264,3); + connect(m_close, SIGNAL(clicked()), m_mw, SLOT(handleCloseRequest())); setActive(FALSE); - connect(skin, SIGNAL(skinChanged()), this, SLOT(updateSkin())); + connect(m_skin, SIGNAL(skinChanged()), this, SLOT(updateSkin())); } @@ -62,16 +62,16 @@ void TitleBar::mousePressEvent(QMouseEvent* event) { case Qt::LeftButton: { - pos = event->pos(); - PlayList *pl = mw->getPLPointer(); + m_pos = event->pos(); + PlayList *pl = m_mw->getPLPointer(); Dock::getPointer()->calculateDistances(); - x_diff = - mw->x() + pl->x(); - y_diff = - mw->y() + pl->y(); + x_diff = - m_mw->x() + pl->x(); + y_diff = - m_mw->y() + pl->y(); break; } case Qt::RightButton: { - mw->menu()->exec(event->globalPos()); + m_mw->menu()->exec(event->globalPos()); } } } @@ -82,27 +82,27 @@ void TitleBar::mouseReleaseEvent(QMouseEvent*) } void TitleBar::mouseMoveEvent(QMouseEvent* event) { - QPoint npos = (event->globalPos()-pos); - Dock::getPointer()->move(mw, npos); + QPoint npos = (event->globalPos()-m_pos); + Dock::getPointer()->move(m_mw, npos); } void TitleBar::setActive(bool a) { if(a) { - setPixmap(skin->getTitleBar(Skin::TITLEBAR_A)); - menu->show(); - minimize->show(); - shade->show(); - close->show(); + setPixmap(m_skin->getTitleBar(Skin::TITLEBAR_A)); + m_menu->show(); + m_minimize->show(); + m_shade->show(); + m_close->show(); } else { - setPixmap(skin->getTitleBar(Skin::TITLEBAR_I)); - menu->hide(); - minimize->hide(); - shade->hide(); - close->hide(); + setPixmap(m_skin->getTitleBar(Skin::TITLEBAR_I)); + m_menu->hide(); + m_minimize->hide(); + m_shade->hide(); + m_close->hide(); } } @@ -113,5 +113,5 @@ void TitleBar::updateSkin() void TitleBar::showMainMenu() { - mw->menu()->exec(menu->mapToGlobal(menu->pos())); + m_mw->menu()->exec(m_menu->mapToGlobal(m_menu->pos())); } diff --git a/src/titlebar.h b/src/titlebar.h index 44c1e51f0..1589effc0 100644 --- a/src/titlebar.h +++ b/src/titlebar.h @@ -1,6 +1,6 @@ /*************************************************************************** - * Copyright (C) 2006 by Ilya Kotov * - * forkotov02@hotmail.ru * + * Copyright (C) 2007 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 * @@ -51,13 +51,13 @@ private slots: void showMainMenu(); private: - Skin *skin; - QPoint pos; - MainWindow *mw; - Button *menu; - Button *minimize; - Button *shade; - Button *close; + Skin *m_skin; + QPoint m_pos; + MainWindow *m_mw; + Button *m_menu; + Button *m_minimize; + Button *m_shade; + Button *m_close; int x_diff, y_diff; diff --git a/src/togglebutton.cpp b/src/togglebutton.cpp index 0405ab344..86b809ef2 100644 --- a/src/togglebutton.cpp +++ b/src/togglebutton.cpp @@ -50,6 +50,13 @@ void ToggleButton::updateSkin() setON ( m_on ); } +void ToggleButton::click() +{ + m_on = !m_on; + setON (m_on); + emit clicked(m_on); +} + void ToggleButton::setON ( bool on ) { m_on = on; diff --git a/src/togglebutton.h b/src/togglebutton.h index 07a7ec452..a15d7476f 100644 --- a/src/togglebutton.h +++ b/src/togglebutton.h @@ -41,6 +41,9 @@ public: signals: void clicked(bool); +public slots: + void click(); + private slots: void updateSkin(); |
