diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/eqtitlebar.cpp | 14 | ||||
| -rw-r--r-- | src/ui/eqtitlebar.h | 3 | ||||
| -rw-r--r-- | src/ui/mainwindow.cpp | 24 | ||||
| -rw-r--r-- | src/ui/mainwindow.h | 1 | ||||
| -rw-r--r-- | src/ui/skin.cpp | 11 | ||||
| -rw-r--r-- | src/ui/skin.h | 19 | ||||
| -rw-r--r-- | src/ui/titlebar.cpp | 17 | ||||
| -rw-r--r-- | src/ui/titlebar.h | 3 |
8 files changed, 55 insertions, 37 deletions
diff --git a/src/ui/eqtitlebar.cpp b/src/ui/eqtitlebar.cpp index 076a81de1..a007a0763 100644 --- a/src/ui/eqtitlebar.cpp +++ b/src/ui/eqtitlebar.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Ilya Kotov * + * Copyright (C) 2007-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -51,8 +51,11 @@ EqTitleBar::EqTitleBar(QWidget *parent) QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); if (settings.value("Equalizer/shaded", FALSE).toBool()) shade(); + else + updateMask(); m_align = TRUE; setActive(FALSE); + connect(m_skin, SIGNAL(skinChanged()), SLOT(updateMask())); } @@ -173,6 +176,7 @@ void EqTitleBar::shade() } if (m_align) Dock::getPointer()->align(m_eq, m_shaded? -102: 102); + updateMask(); } void EqTitleBar::updateVolume() @@ -180,3 +184,11 @@ void EqTitleBar::updateVolume() m_mw->setVolume(m_volumeBar->value(), m_balanceBar->value()); } +void EqTitleBar::updateMask() +{ + m_eq->clearMask(); + m_eq->setMask(QRegion(0,0,m_eq->width(),m_eq->height())); + QRegion region = m_skin->getRegion(m_shaded? Skin::EQUALIZER_WS : Skin::EQUALIZER); + if (!region.isEmpty()) + m_eq->setMask(region); +} diff --git a/src/ui/eqtitlebar.h b/src/ui/eqtitlebar.h index d3e9a0452..4dd1d64d1 100644 --- a/src/ui/eqtitlebar.h +++ b/src/ui/eqtitlebar.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Ilya Kotov * + * Copyright (C) 2007-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -47,6 +47,7 @@ public: private slots: void shade(); void updateVolume(); + void updateMask(); private: Skin* m_skin; diff --git a/src/ui/mainwindow.cpp b/src/ui/mainwindow.cpp index 1c63dba54..cdb369040 100644 --- a/src/ui/mainwindow.cpp +++ b/src/ui/mainwindow.cpp @@ -138,12 +138,7 @@ MainWindow::MainWindow(const QStringList& args, BuiltinCommandLineOption* option connect(m_core, SIGNAL(bufferingProgress(int)), TextScroller::getPointer(), SLOT(setProgress(int))); - connect ( m_skin, SIGNAL ( skinChanged() ), this, SLOT ( updateSkin() ) ); updateEQ(); - updateSkin(); - - //FileDialog::registerBuiltinFactories(); - //FileDialog::registerExternalFactories(); m_generalHandler = new GeneralHandler(this); connect(m_generalHandler, SIGNAL(playCalled()), SLOT(play())); @@ -615,25 +610,6 @@ QMenu* MainWindow::menu() return m_mainMenu; } -void MainWindow::updateSkin() -{ - clearMask(); - m_equalizer->clearMask(); - /*qt bug workarround */ - setMask(QRegion(0,0,275,116)); - m_equalizer->setMask(QRegion(0,0,275,116)); - update(); - m_equalizer->update(); - - QRegion region = m_skin->getMWRegion(); - if (!region.isEmpty()) - setMask(region); - - region = m_skin->getPLRegion(); - if (!region.isEmpty()) - m_equalizer->setMask(region); -} - void MainWindow::newPlaylist() { m_playListModel->clear(); diff --git a/src/ui/mainwindow.h b/src/ui/mainwindow.h index db8eff765..b0d535b04 100644 --- a/src/ui/mainwindow.h +++ b/src/ui/mainwindow.h @@ -101,7 +101,6 @@ private slots: void endSeek(); void showSettings(); void updateEQ(); - void updateSkin(); void forward(); void backward(); //void trayActivated(QSystemTrayIcon::ActivationReason); diff --git a/src/ui/skin.cpp b/src/ui/skin.cpp index 269154d5b..91a09a2b9 100644 --- a/src/ui/skin.cpp +++ b/src/ui/skin.cpp @@ -647,8 +647,9 @@ void Skin::loadBalance() void Skin::loadRegion() { - m_mwRegion = QRegion(); - m_plRegion = QRegion(); + //m_mwRegion = QRegion(); + //m_plRegion = QRegion(); + m_regions.clear(); QString path = findFile("region.txt", m_skin_dir); if ( path.isNull () ) @@ -656,8 +657,10 @@ void Skin::loadRegion() qDebug ( "Skin: cannot find region.txt. Transparency disabled" ); return; } - m_mwRegion = createRegion(path, "Normal"); - m_plRegion = createRegion(path, "Equalizer"); + m_regions[NORMAL] = createRegion(path, "Normal"); + m_regions[EQUALIZER] = createRegion(path, "Equalizer"); + m_regions[WINDOW_SHADE] = createRegion(path, "WindowShade"); + m_regions[EQUALIZER_WS] = createRegion(path, "EqualizerWS"); } QRegion Skin::createRegion(const QString &path, const QString &key) diff --git a/src/ui/skin.h b/src/ui/skin.h index aed75eadd..0e82aefd6 100644 --- a/src/ui/skin.h +++ b/src/ui/skin.h @@ -116,13 +116,17 @@ public: { return m_vis_colors[n]; }; - const QRegion getMWRegion() const + /*const QRegion getMWRegion() const { return m_mwRegion; }; const QRegion getPLRegion() const { return m_plRegion; + };*/ + const QRegion getRegion(uint r) const + { + return m_regions[r]; }; enum Buttons @@ -278,6 +282,14 @@ public: PAUSE, STOP, }; + enum Regions + { + NORMAL = 0, + EQUALIZER, + WINDOW_SHADE, + EQUALIZER_WS, + }; + signals: void skinChanged(); @@ -303,6 +315,7 @@ private: QMap<uint, QPixmap> m_parts; QMap<QChar, QPixmap> m_letters; QMap<QByteArray, QByteArray> m_pledit_txt; + QMap<uint, QRegion> m_regions; QPixmap m_main; QPixmap posbar; QList<QPixmap> m_numbers; @@ -311,8 +324,8 @@ private: QList<QPixmap> m_volume; QList<QPixmap> m_balance; QList<QColor> m_vis_colors; - QRegion m_mwRegion; - QRegion m_plRegion; + //QRegion m_mwRegion; + //QRegion m_plRegion; void loadMain(); void loadButtons(); diff --git a/src/ui/titlebar.cpp b/src/ui/titlebar.cpp index df88539fd..4f22f7069 100644 --- a/src/ui/titlebar.cpp +++ b/src/ui/titlebar.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Ilya Kotov * + * Copyright (C) 2007-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -61,6 +61,8 @@ TitleBar::TitleBar(QWidget *parent) QSettings settings(QDir::homePath()+"/.qmmp/qmmprc", QSettings::IniFormat); if (settings.value("Display/shaded", FALSE).toBool()) shade(); + else + updateMask(); m_align = TRUE; } @@ -137,6 +139,7 @@ void TitleBar::setActive(bool a) void TitleBar::updateSkin() { setActive(FALSE); + updateMask(); } void TitleBar::showMainMenu() @@ -188,8 +191,9 @@ void TitleBar::shade() m_currentTime = 0; m_shade->show(); } - if(m_align) + if (m_align) Dock::getPointer()->align(m_mw, m_shaded? -102: 102); + updateMask(); } QString TitleBar::formatTime ( int sec ) @@ -224,3 +228,12 @@ void TitleBar::setInfo(const OutputState &st) } } } + +void TitleBar::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); +} diff --git a/src/ui/titlebar.h b/src/ui/titlebar.h index 4428a188c..4c15aeeff 100644 --- a/src/ui/titlebar.h +++ b/src/ui/titlebar.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2007 by Ilya Kotov * + * Copyright (C) 2007-2008 by Ilya Kotov * * forkotov02@hotmail.ru * * * * This program is free software; you can redistribute it and/or modify * @@ -70,6 +70,7 @@ private: bool m_align; TitleBarControl *m_control; ShadedVisual *m_visual; + void updateMask(); protected: void mousePressEvent(QMouseEvent*); |
