aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-08-13 16:43:51 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2008-08-13 16:43:51 +0000
commit4ccbc35ad14eaf86c56322c4155de109735ca60d (patch)
treeaf6cf2a860bc129c6566b95156723385acf99203 /src
parentb5833f9423ecdc673f653dbb3f4bca6dacc918c1 (diff)
downloadqmmp-4ccbc35ad14eaf86c56322c4155de109735ca60d.tar.gz
qmmp-4ccbc35ad14eaf86c56322c4155de109735ca60d.tar.bz2
qmmp-4ccbc35ad14eaf86c56322c4155de109735ca60d.zip
fixed skin parsing
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@497 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/ui/eqtitlebar.cpp14
-rw-r--r--src/ui/eqtitlebar.h3
-rw-r--r--src/ui/mainwindow.cpp24
-rw-r--r--src/ui/mainwindow.h1
-rw-r--r--src/ui/skin.cpp11
-rw-r--r--src/ui/skin.h19
-rw-r--r--src/ui/titlebar.cpp17
-rw-r--r--src/ui/titlebar.h3
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*);