From f0211e39588aacb6b73cb5a5ae188b3164101382 Mon Sep 17 00:00:00 2001 From: Thomas Frauendorfer Date: Fri, 16 May 2008 01:55:25 +0200 Subject: [PATCH] OTHER: Fixes to Skin handling Fixed grapicglitches in equalizer, and added close button to equalizer --- src/Skin.cpp | 41 +++++++++++++++++++++++-------- src/Skin.h | 7 +++++- src/TitleBar.cpp | 6 ++--- src/equalizer/equalizerwidget.cpp | 24 +++++++++++++++--- src/equalizer/equalizerwidget.h | 2 ++ 5 files changed, 62 insertions(+), 18 deletions(-) diff --git a/src/Skin.cpp b/src/Skin.cpp index 6edb5a7..7fa1938 100644 --- a/src/Skin.cpp +++ b/src/Skin.cpp @@ -55,14 +55,17 @@ Skin::setSizes () << QSize (23, 12) // BUTTON_MW_PLS << QSize (46, 15) // BUTTON_MW_SHUFFLE << QSize (28, 15) // BUTTON_MW_REPEAT - << QSize ( 9, 9) // BUTTON_MW_SHADED_SHADE - << QSize () // BUTTON_EQ_CLOSE - << QSize () // BUTTON_EQ_SHADE + << QSize ( 9, 9) // BUTTON_MW_SHADED_UNSHADE + << QSize ( 9, 9) // BUTTON_EQ_CLOSE + << QSize ( 9, 9) // BUTTON_EQ_SHADE << QSize (25, 12) // BUTTON_EQ_ACTIVE << QSize (33, 12) // BUTTON_EQ_AUTO << QSize (44, 12) // BUTTON_EQ_PRESET + << QSize () // BUTTON_EQ_SHADED_CLOSE + << QSize () // BUTTON_EQ_SHADED_UNSHADE << QSize ( 9, 9) // BUTTON_PLS_CLOSE << QSize ( 9, 9) // BUTTON_PLS_SHADE + << QSize () // BUTTON_PLS_SHADED_UNSHADE << QSize () // SLIDER_POSBAR << QSize (248, 10) // SLIDER_POSBAR_BGS << QSize (14, 11) // SLIDER_VOLUMEBAR @@ -92,14 +95,17 @@ Skin::setPositions () << QPoint (242, 58) // BUTTON_MW_PLS << QPoint (164, 89) // BUTTON_MW_SHUFFLE << QPoint (210, 89) // BUTTON_MW_REPEAT - << QPoint (254, 3) // BUTTON_MW_SHADED_SHADE - << QPoint () // BUTTON_EQ_CLOSE - << QPoint () // BUTTON_EQ_SHADE + << QPoint (254, 3) // BUTTON_MW_SHADED_UNSHADE + << QPoint (264, 3) // BUTTON_EQ_CLOSE + << QPoint (254 ,3) // BUTTON_EQ_SHADE << QPoint ( 14, 18) // BUTTON_EQ_ACTIVE << QPoint ( 39, 18) // BUTTON_EQ_AUTO << QPoint (217, 18) // BUTTON_EQ_PRESET + << QPoint () // BUTTON_EQ_SHADED_CLOSE + << QPoint () // BUTTON_EQ_SHADED_UNSHADE << QPoint () // BUTTON_PLS_CLOSE << QPoint () // BUTTON_PLS_SHADE + << QPoint () // BUTTON_PLS_SHADED_UNSHADE << QPoint () // SLIDER_POSBAR << QPoint ( 16, 72) // SLIDER_POSBAR_BGS << QPoint () // SLIDER_VOLUMEBAR @@ -115,12 +121,27 @@ void Skin::BuildEqualizer (void) { QPixmap *img = getPixmap ("eqmain"); - if (img) { + QPixmap *imgex = getPixmap ("eq_ex"); + if (img && imgex) { m_items[EQ_WIN_BG] = img->copy (0, 0, 275, 116); - m_items[EQ_WIN_GRAPH_BG] = img->copy (0, 294, 113, 19); + if (img->height () > 294) { + m_items[EQ_WIN_GRAPH_BG] = img->copy (0, 294, 113, qMin (19, img->height () - 294)); + } else { + m_items[EQ_WIN_GRAPH_BG] = QPixmap (); + } QIcon icon; + icon.addPixmap (img->copy ( 0, 116, 9, 9), QIcon::Normal, QIcon::Off); + icon.addPixmap (img->copy ( 0, 125, 9, 9), QIcon::Active, QIcon::Off); + m_icons[BUTTON_EQ_CLOSE] = icon; + + icon = QIcon (); + icon.addPixmap (img->copy (254, 3, 9, 9), QIcon::Normal, QIcon::Off); + icon.addPixmap (imgex->copy ( 1, 38, 9, 9), QIcon::Active, QIcon::Off); + m_icons[BUTTON_EQ_SHADE] = icon; + + icon = QIcon (); icon.addPixmap (img->copy ( 10, 119, 25, 12), QIcon::Normal, QIcon::Off); icon.addPixmap (img->copy (128, 119, 25, 12), QIcon::Active, QIcon::Off); icon.addPixmap (img->copy ( 69, 119, 25, 12), QIcon::Normal, QIcon::On); @@ -193,7 +214,7 @@ Skin::BuildPlaylist (void) m_playlist[PLS_CLOSE_BTN_0] = tmp.copy(14, 3, 9, 9); m_playlist[PLS_CLOSE_BTN_1] = img->copy(52, 42, 9, 9); - m_playlist[PLS_SHADE_BTN_0] = tmp.copy(14, 3, 9, 9); + m_playlist[PLS_SHADE_BTN_0] = tmp.copy(5, 3, 9, 9); m_playlist[PLS_SHADE_BTN_1] = img->copy(62, 42, 9, 9); m_playlist[PLS_MAX_BTN_0] = img->copy(150, 42, 9, 9); @@ -533,7 +554,7 @@ Skin::BuildTitleBar (void) icon = QIcon (); icon.addPixmap (img->copy (0, 27, 9, 9), QIcon::Normal, QIcon::Off); icon.addPixmap (img->copy (9, 27, 9, 9), QIcon::Active, QIcon::Off); - m_icons[BUTTON_MW_SHADED_SHADE] = icon; + m_icons[BUTTON_MW_SHADED_UNSHADE] = icon; m_items[TITLEBAR_0] = img->copy(27, 0, 275, 14); m_items[TITLEBAR_1] = img->copy(27, 15, 275, 14); diff --git a/src/Skin.h b/src/Skin.h index 4615547..4b6a10a 100644 --- a/src/Skin.h +++ b/src/Skin.h @@ -68,16 +68,21 @@ class Skin : public QObject BUTTON_MW_SHUFFLE, BUTTON_MW_REPEAT, /* Mainwindow buttons shaded */ - BUTTON_MW_SHADED_SHADE, + BUTTON_MW_SHADED_UNSHADE, /* Equalizer buttons */ BUTTON_EQ_CLOSE, BUTTON_EQ_SHADE, BUTTON_EQ_ACTIVE, BUTTON_EQ_AUTO, BUTTON_EQ_PRESET, + /* Equalizer buttons shaded */ + BUTTON_EQ_SHADED_CLOSE, + BUTTON_EQ_SHADED_UNSHADE, /* Playlist buttons */ BUTTON_PLS_CLOSE, BUTTON_PLS_SHADE, + /* Playlist buttons shaded */ + BUTTON_PLS_SHADED_UNSHADE, /* Sliders */ SLIDER_POSBAR, SLIDER_POSBAR_BGS, diff --git a/src/TitleBar.cpp b/src/TitleBar.cpp index d5c89dc..144f3ef 100644 --- a/src/TitleBar.cpp +++ b/src/TitleBar.cpp @@ -47,8 +47,8 @@ TitleBar::TitleBar (QWidget *parent, bool shaded) : PixWidget (parent) if (shaded) { m_shadebtn = new PixmapButton (this); - m_shadebtn->resize (skin->getSize (Skin::BUTTON_MW_SHADED_SHADE)); - m_shadebtn->move (skin->getPos (Skin::BUTTON_MW_SHADED_SHADE)); + m_shadebtn->resize (skin->getSize (Skin::BUTTON_MW_SHADED_UNSHADE)); + m_shadebtn->move (skin->getPos (Skin::BUTTON_MW_SHADED_UNSHADE)); } else { m_shadebtn = new PixmapButton (this); m_shadebtn->resize (skin->getSize (Skin::BUTTON_MW_SHADE)); @@ -152,7 +152,7 @@ TitleBar::setPixmaps (Skin *skin) m_menubtn->setIcon (skin->getIcon (Skin::BUTTON_MW_MENU)); m_minimize->setIcon (skin->getIcon (Skin::BUTTON_MW_MINIMIZE)); if (m_shaded) { - m_shadebtn->setIcon (skin->getIcon (Skin::BUTTON_MW_SHADED_SHADE)); + m_shadebtn->setIcon (skin->getIcon (Skin::BUTTON_MW_SHADED_UNSHADE)); } else { m_shadebtn->setIcon (skin->getIcon (Skin::BUTTON_MW_SHADE)); } diff --git a/src/equalizer/equalizerwidget.cpp b/src/equalizer/equalizerwidget.cpp index f1ae1b6..0176358 100644 --- a/src/equalizer/equalizerwidget.cpp +++ b/src/equalizer/equalizerwidget.cpp @@ -58,13 +58,24 @@ EqualizerWidget::EqualizerWidget (QWidget *parent) : QWidget (parent) connect (skin, SIGNAL(skinChanged(Skin *)), this, SLOT(setPixmaps(Skin *))); + m_closebtn = new PixmapButton (this); + m_closebtn->resize (skin->getSize (Skin::BUTTON_EQ_CLOSE)); + m_closebtn->move (skin->getPos (Skin::BUTTON_EQ_CLOSE)); + connect (m_closebtn, SIGNAL (clicked ()), parent, SLOT (hide ())); + + // TODO implement shade mode + m_shadebtn = new PixmapButton (this); + m_shadebtn->resize (skin->getSize (Skin::BUTTON_EQ_SHADE)); + m_shadebtn->move (skin->getPos (Skin::BUTTON_EQ_SHADE)); + m_shadebtn->setEnabled (false); + m_enable = new PixmapButton (this); m_enable->setCheckable (true); m_enable->resize (skin->getSize (Skin::BUTTON_EQ_ACTIVE)); m_enable->move (skin->getPos (Skin::BUTTON_EQ_ACTIVE)); // must use signal clicked here, as this button also becomes unchecked if // use_legacy is deactivated - connect(m_enable, SIGNAL (clicked (bool)), + connect (m_enable, SIGNAL (clicked (bool)), this, SLOT (setEqualizerEnabled (bool))); @@ -74,7 +85,7 @@ EqualizerWidget::EqualizerWidget (QWidget *parent) : QWidget (parent) m_auto->move (skin->getPos (Skin::BUTTON_EQ_AUTO)); m_auto->setEnabled(false); // FIXME: needs to be implemented - connect(m_auto, SIGNAL(clicked()), parent, SLOT(setEnabled())); + connect (m_auto, SIGNAL(clicked()), parent, SLOT(setEnabled())); m_preset = new PixmapButton (this); m_preset->resize (skin->getSize (Skin::BUTTON_EQ_PRESET)); @@ -137,6 +148,8 @@ EqualizerWidget::setPixmaps (Skin *skin) setMaximumSize (m_pixmap.size ()); /* Updade Buttons */ + m_closebtn->setIcon (skin->getIcon (Skin::BUTTON_EQ_CLOSE)); + m_shadebtn->setIcon (skin->getIcon (Skin::BUTTON_EQ_SHADE)); m_enable->setIcon (skin->getIcon (Skin::BUTTON_EQ_ACTIVE)); m_auto->setIcon (skin->getIcon (Skin::BUTTON_EQ_AUTO)); m_preset->setIcon (skin->getIcon (Skin::BUTTON_EQ_PRESET)); @@ -169,8 +182,11 @@ EqualizerWidget::paintEvent (QPaintEvent *event) paint.begin(this); paint.drawPixmap(rect(), m_pixmap, m_pixmap.rect()); - r.setRect(86, 17, 113, 19); - paint.drawPixmap(r, m_graph, m_graph.rect()); +// r.setRect(86, 17, 113, 19); + if (m_graph.height () > 0 ) { + r.setRect(86, 17, m_graph.width (), m_graph.height ()); + paint.drawPixmap(r, m_graph, m_graph.rect()); + } paint.end(); } diff --git a/src/equalizer/equalizerwidget.h b/src/equalizer/equalizerwidget.h index 2ca73ec..7e4a5da 100644 --- a/src/equalizer/equalizerwidget.h +++ b/src/equalizer/equalizerwidget.h @@ -68,6 +68,8 @@ class EqualizerWidget : public QWidget XConfig *m_xconfig; QPixmap m_pixmap; QPixmap m_graph; + PixmapButton *m_closebtn; + PixmapButton *m_shadebtn; PixmapButton *m_enable; PixmapButton *m_auto; PixmapButton *m_preset;