diff options
Diffstat (limited to 'src/plugins/Ui')
| -rw-r--r-- | src/plugins/Ui/skinned/display.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/eqwidget.cpp | 11 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/eqwidget.h | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.cpp | 4 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/mainwindow.h | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/pixmapwidget.cpp | 9 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/pixmapwidget.h | 4 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.cpp | 113 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlist.h | 10 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlisttitlebar.cpp | 24 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/playlisttitlebar.h | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/titlebar.cpp | 2 | ||||
| -rw-r--r-- | src/plugins/Ui/skinned/titlebar.h | 2 |
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 * |
