aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-17 16:43:57 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2016-06-17 16:43:57 +0000
commit912ee1ab6baed1ebf931c1a70bf58606f7a5f819 (patch)
treebb0256d089cb91b28cc77a9beb1698045b60dae0 /src
parent60c100abc0eccfd437a92f033fb8ef07c0d58714 (diff)
downloadqmmp-912ee1ab6baed1ebf931c1a70bf58606f7a5f819.tar.gz
qmmp-912ee1ab6baed1ebf931c1a70bf58606f7a5f819.tar.bz2
qmmp-912ee1ab6baed1ebf931c1a70bf58606f7a5f819.zip
skinned: added compiz support
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@6468 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src')
-rw-r--r--src/plugins/Ui/skinned/display.cpp4
-rw-r--r--src/plugins/Ui/skinned/eqwidget.cpp11
-rw-r--r--src/plugins/Ui/skinned/eqwidget.h2
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp4
-rw-r--r--src/plugins/Ui/skinned/mainwindow.h2
-rw-r--r--src/plugins/Ui/skinned/pixmapwidget.cpp9
-rw-r--r--src/plugins/Ui/skinned/pixmapwidget.h4
-rw-r--r--src/plugins/Ui/skinned/playlist.cpp113
-rw-r--r--src/plugins/Ui/skinned/playlist.h10
-rw-r--r--src/plugins/Ui/skinned/playlisttitlebar.cpp24
-rw-r--r--src/plugins/Ui/skinned/playlisttitlebar.h2
-rw-r--r--src/plugins/Ui/skinned/titlebar.cpp2
-rw-r--r--src/plugins/Ui/skinned/titlebar.h2
13 files changed, 132 insertions, 57 deletions
diff --git a/src/plugins/Ui/skinned/display.cpp b/src/plugins/Ui/skinned/display.cpp
index 5d575de02..2c2545b5c 100644
--- a/src/plugins/Ui/skinned/display.cpp
+++ b/src/plugins/Ui/skinned/display.cpp
@@ -229,9 +229,9 @@ void MainDisplay::setMinimalMode(bool b)
int r = m_skin->ratio();
if(m_shaded)
- m_mw->resize(r*275,r*14);
+ m_mw->setFixedSize(r*275,r*14);
else
- m_mw->resize(r*275,r*116);
+ m_mw->setFixedSize(r*275,r*116);
updateMask();
}
diff --git a/src/plugins/Ui/skinned/eqwidget.cpp b/src/plugins/Ui/skinned/eqwidget.cpp
index 2c595a7e4..f1985c893 100644
--- a/src/plugins/Ui/skinned/eqwidget.cpp
+++ b/src/plugins/Ui/skinned/eqwidget.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2015 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -45,7 +45,7 @@ EqWidget::EqWidget (QWidget *parent)
setWindowTitle(tr("Equalizer"));
m_shaded = false;
m_skin = Skin::instance();
- setPixmap (m_skin->getEqPart (Skin::EQ_MAIN));
+ setPixmap (m_skin->getEqPart (Skin::EQ_MAIN), true);
setCursor (m_skin->getCursor (Skin::CUR_EQNORMAL));
m_titleBar = new EqTitleBar (this);
m_titleBar->move (0,0);
@@ -121,7 +121,7 @@ void EqWidget::closeEvent (QCloseEvent* e)
void EqWidget::updateSkin()
{
m_titleBar->setActive (false);
- setPixmap (m_skin->getEqPart (Skin::EQ_MAIN));
+ setPixmap (m_skin->getEqPart (Skin::EQ_MAIN), true);
setCursor (m_skin->getCursor (Skin::CUR_EQNORMAL));
setMimimalMode(m_shaded);
updatePositions();
@@ -133,9 +133,10 @@ void EqWidget::setMimimalMode(bool b)
int r = m_skin->ratio();
if(m_shaded)
- resize(r*275,r*14);
+ setFixedSize(r*275,r*14);
else
- resize(r*275,r*116);
+ setFixedSize(r*275,r*116);
+
updateMask();
}
diff --git a/src/plugins/Ui/skinned/eqwidget.h b/src/plugins/Ui/skinned/eqwidget.h
index 28ce4fefc..ec618c6aa 100644
--- a/src/plugins/Ui/skinned/eqwidget.h
+++ b/src/plugins/Ui/skinned/eqwidget.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2015 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp
index 21679714a..d1e0569ec 100644
--- a/src/plugins/Ui/skinned/mainwindow.cpp
+++ b/src/plugins/Ui/skinned/mainwindow.cpp
@@ -60,6 +60,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
m_update = false;
setWindowFlags(Qt::Window | Qt::FramelessWindowHint |
Qt::WindowCloseButtonHint | Qt::WindowMinMaxButtonsHint | Qt::WindowSystemMenuHint);
+
setWindowTitle("Qmmp");
m_titleFormatter.setPattern("%if(%p,%p - %t,%t)");
@@ -74,7 +75,8 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
//user interface
m_skin = new Skin(this);
- resize(275 * m_skin->ratio(),116 * m_skin->ratio());
+ setFixedSize(275 * m_skin->ratio(),116 * m_skin->ratio());
+
Dock *dock = new Dock(this);
dock->setMainWidget(this);
m_display = new MainDisplay(this);
diff --git a/src/plugins/Ui/skinned/mainwindow.h b/src/plugins/Ui/skinned/mainwindow.h
index 0d18aa9bf..7ceb05bbb 100644
--- a/src/plugins/Ui/skinned/mainwindow.h
+++ b/src/plugins/Ui/skinned/mainwindow.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2015 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Ui/skinned/pixmapwidget.cpp b/src/plugins/Ui/skinned/pixmapwidget.cpp
index 0a4b9f8ae..7a8d8150b 100644
--- a/src/plugins/Ui/skinned/pixmapwidget.cpp
+++ b/src/plugins/Ui/skinned/pixmapwidget.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2012 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -31,10 +31,13 @@ PixmapWidget::PixmapWidget(QWidget *parent)
PixmapWidget::~PixmapWidget()
{}
-void PixmapWidget::setPixmap(const QPixmap pixmap)
+void PixmapWidget::setPixmap(const QPixmap pixmap, bool fixed_size)
{
m_pixmap = pixmap;
- resize(m_pixmap.size());
+ if(fixed_size)
+ setFixedSize(m_pixmap.size());
+ else
+ resize(m_pixmap.size());
update();
}
diff --git a/src/plugins/Ui/skinned/pixmapwidget.h b/src/plugins/Ui/skinned/pixmapwidget.h
index bfaa564d4..52e7871eb 100644
--- a/src/plugins/Ui/skinned/pixmapwidget.h
+++ b/src/plugins/Ui/skinned/pixmapwidget.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -35,7 +35,7 @@ public:
virtual ~PixmapWidget();
- virtual void setPixmap(const QPixmap);
+ virtual void setPixmap(const QPixmap, bool fixed_size = false);
protected:
void paintEvent ( QPaintEvent * event );
diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp
index c113d3472..801d0da8d 100644
--- a/src/plugins/Ui/skinned/playlist.cpp
+++ b/src/plugins/Ui/skinned/playlist.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2015 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -63,9 +63,28 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent)
m_pl_browser = 0;
m_pl_selector = 0;
- resize (275*m_ratio, 116*m_ratio);
- setSizeIncrement (25*m_ratio, 29*m_ratio);
- setMinimumSize(275*m_ratio, 116*m_ratio);
+#ifdef Q_WS_X11
+ QString wm_name = WindowSystem::netWindowManagerName();
+ m_compiz = wm_name.contains("compiz", Qt::CaseInsensitive);
+ if(wm_name.contains("metacity", Qt::CaseInsensitive) ||
+ wm_name.contains("openbox", Qt::CaseInsensitive))
+ setWindowFlags (Qt::Tool | Qt::FramelessWindowHint);
+ else
+#endif
+ setWindowFlags (Qt::Dialog | Qt::FramelessWindowHint);
+
+#ifdef Q_WS_X11
+ if(m_compiz)
+ {
+ setFixedSize(275*m_ratio, 116*m_ratio);
+ }
+ else
+#endif
+ {
+ resize (275*m_ratio, 116*m_ratio);
+ setSizeIncrement (25*m_ratio, 29*m_ratio);
+ setMinimumSize(275*m_ratio, 116*m_ratio);
+ }
m_listWidget = new ListWidget (this);
m_plslider = new PlayListSlider (this);
@@ -121,14 +140,6 @@ PlayList::PlayList (PlayListManager *manager, QWidget *parent)
setCursor(m_skin->getCursor(Skin::CUR_PNORMAL));
updatePositions();
-#ifdef Q_WS_X11
- QString wm_name = WindowSystem::netWindowManagerName();
- if(wm_name.contains("metacity", Qt::CaseInsensitive) ||
- wm_name.contains("openbox", Qt::CaseInsensitive))
- setWindowFlags (Qt::Tool | Qt::FramelessWindowHint);
- else
-#endif
- setWindowFlags (Qt::Dialog | Qt::FramelessWindowHint);
}
PlayList::~PlayList()
@@ -410,26 +421,37 @@ void PlayList::mouseMoveEvent (QMouseEvent *e)
{
if (m_resize)
{
+#ifdef Q_WS_X11
+ if(m_compiz)
+#endif
+ {
+ int dx = m_ratio * 25;
+ int dy = m_ratio * 29;
+
+ int sx = ((e->x() - 275 * m_ratio) + 14) / dx;
+ int sy = ((e->y() - 116 * m_ratio) + 14) / dy;
+
+ sx = qMax(sx, 0);
+ sy = qMax(sy, 0);
+
#ifdef Q_OS_WIN
- int sx = (width()-275) /25;
- int sy = (height()-116) /29;
- if(width() < e->x() - 14)
- sx++;
- else if(width() > e->x() + 14)
- sx--;
- if(height() < e->y() - 14)
- sy++;
- else if(height() > e->y() + 14)
- sy--;
- resize (275+25*sx,116+29*sy);
+ resize(275 * m_ratio + dx * sx, 116 * m_ratio + dy * sy);
#else
+ setFixedSize(275 * m_ratio + dx * sx, 116 * m_ratio + dy * sy);
+#endif
+ }
+#ifdef Q_WS_X11
+ else
+ resize (e->x() +25, e->y() +25);
+#endif
+
+
#ifdef Q_WS_X11
//avoid right corner moving during resize
if(layoutDirection() == Qt::RightToLeft)
WindowSystem::revertGravity(winId());
#endif
- resize (e->x() +25, e->y() +25);
-#endif
+
}
}
@@ -504,6 +526,13 @@ void PlayList::writeSettings()
settings.setValue ("Skinned/pl_pos", this->pos());
}
+#ifdef Q_WS_X11
+bool PlayList::useCompiz() const
+{
+ return m_compiz;
+}
+#endif
+
void PlayList::showAddMenu()
{
m_addMenu->exec (m_buttonAdd->mapToGlobal (QPoint (0,0)));
@@ -654,18 +683,36 @@ void PlayList::setMinimalMode(bool b)
if(!m_shaded)
m_height = height();
m_shaded = b;
- if(m_shaded)
+
+#ifdef Q_WS_X11
+ if(m_compiz)
{
- m_height = height();
- setSizeIncrement (25*m_ratio, 1);
- setMinimumSize (275*m_ratio, 14*m_ratio);
- resize(width(), 14*m_ratio);
+ if(m_shaded)
+ {
+ m_height = height();
+ setFixedSize(qMax(width(), 275 * m_ratio), 14*m_ratio);
+ }
+ else
+ {
+ setFixedSize(qMax(width(), 275 * m_ratio), qMax(m_height, 116*m_ratio));
+ }
}
else
+#endif
{
- setMinimumSize(275*m_ratio, 116*m_ratio);
- resize (width(), m_height);
- setSizeIncrement (25*m_ratio, 29*m_ratio);
+ if(m_shaded)
+ {
+ m_height = height();
+ setSizeIncrement (25*m_ratio, 1);
+ setMinimumSize (275*m_ratio, 14*m_ratio);
+ resize(width(), 14*m_ratio);
+ }
+ else
+ {
+ setMinimumSize(275*m_ratio, 116*m_ratio);
+ resize (width(), m_height);
+ setSizeIncrement (25*m_ratio, 29*m_ratio);
+ }
}
updatePositions();
update();
diff --git a/src/plugins/Ui/skinned/playlist.h b/src/plugins/Ui/skinned/playlist.h
index 1146711f2..e87e8c08d 100644
--- a/src/plugins/Ui/skinned/playlist.h
+++ b/src/plugins/Ui/skinned/playlist.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2015 by Ilya Kotov *
+ * Copyright (C) 2006-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -54,9 +54,12 @@ class PlayList : public QWidget
void readSettings();
void setMinimalMode(bool b = true);
-
void writeSettings();
+#ifdef Q_WS_X11
+ bool useCompiz() const;
+#endif
+
signals:
void play();
void next();
@@ -131,6 +134,9 @@ class PlayList : public QWidget
KeyboardManager* m_keyboardManager;
QPointer <PlayListBrowser> m_pl_browser;
PlayListSelector *m_pl_selector;
+#ifdef Q_WS_X11
+ bool m_compiz;
+#endif
};
#endif
diff --git a/src/plugins/Ui/skinned/playlisttitlebar.cpp b/src/plugins/Ui/skinned/playlisttitlebar.cpp
index 134e7ab6d..18332d90a 100644
--- a/src/plugins/Ui/skinned/playlisttitlebar.cpp
+++ b/src/plugins/Ui/skinned/playlisttitlebar.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2015 by Ilya Kotov *
+ * Copyright (C) 2007-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -59,7 +59,12 @@ PlayListTitleBar::PlayListTitleBar(QWidget *parent)
readSettings();
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- m_pl->resize (settings.value ("Skinned/pl_size", QSize (m_ratio*275, m_ratio*116)).toSize());
+#ifdef Q_WS_X11
+ if(m_pl->useCompiz())
+ m_pl->setFixedSize(settings.value ("Skinned/pl_size", QSize (m_ratio*275, m_ratio*116)).toSize());
+ else
+#endif
+ m_pl->resize (settings.value ("Skinned/pl_size", QSize (m_ratio*275, m_ratio*116)).toSize());
if (settings.value ("Skinned/pl_shaded", false).toBool())
shade();
resize(m_pl->width(),height());
@@ -189,8 +194,19 @@ void PlayListTitleBar::mouseMoveEvent(QMouseEvent* event)
if(layoutDirection() == Qt::RightToLeft)
WindowSystem::revertGravity(m_pl->winId());
#endif
- resize((event->x() + 25*m_ratio), height());
- m_pl->resize((event->x() + 25*m_ratio), m_pl->height());
+
+ int dx = 25 * m_ratio;
+ int sx = ((event->x() - 275 * m_ratio) + 14) / dx;
+ sx = qMax(sx, 0);
+ resize(275 * m_ratio + dx * sx, height());
+
+#ifdef Q_WS_X11
+ if(m_pl->useCompiz())
+
+ m_pl->setFixedSize(275 * m_ratio + dx * sx, m_pl->height());
+ else
+#endif
+ m_pl->resize(275 * m_ratio + dx * sx, m_pl->height());
}
else if (pos.x() < width() - 30*m_ratio)
Dock::instance()->move(m_pl, npos);
diff --git a/src/plugins/Ui/skinned/playlisttitlebar.h b/src/plugins/Ui/skinned/playlisttitlebar.h
index b7e65844d..a6e140166 100644
--- a/src/plugins/Ui/skinned/playlisttitlebar.h
+++ b/src/plugins/Ui/skinned/playlisttitlebar.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2015 by Ilya Kotov *
+ * Copyright (C) 2007-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Ui/skinned/titlebar.cpp b/src/plugins/Ui/skinned/titlebar.cpp
index 68f147dff..256a157cc 100644
--- a/src/plugins/Ui/skinned/titlebar.cpp
+++ b/src/plugins/Ui/skinned/titlebar.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2015 by Ilya Kotov *
+ * Copyright (C) 2007-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
diff --git a/src/plugins/Ui/skinned/titlebar.h b/src/plugins/Ui/skinned/titlebar.h
index 241ccc6bf..89b795489 100644
--- a/src/plugins/Ui/skinned/titlebar.h
+++ b/src/plugins/Ui/skinned/titlebar.h
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2007-2015 by Ilya Kotov *
+ * Copyright (C) 2007-2016 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *