aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/display.cpp67
-rw-r--r--src/dock.cpp6
-rw-r--r--src/dock.h2
-rw-r--r--src/eqtitlebar.cpp38
-rw-r--r--src/eqtitlebar.h4
-rw-r--r--src/eqwidget.h1
-rw-r--r--src/playlist.h1
-rw-r--r--src/playlisttitlebar.cpp12
-rw-r--r--src/playlisttitlebar.h2
-rw-r--r--src/skin.cpp9
-rw-r--r--src/skin.h13
-rw-r--r--src/titlebar.cpp68
-rw-r--r--src/titlebar.h18
-rw-r--r--src/togglebutton.cpp7
-rw-r--r--src/togglebutton.h3
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();