aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/Ui/skinned
diff options
context:
space:
mode:
authortrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2017-03-15 12:20:52 +0000
committertrialuser02 <trialuser02@90c681e8-e032-0410-971d-27865f9a5e38>2017-03-15 12:20:52 +0000
commit34926703d41859a1e225638fa6d3c62e66332e65 (patch)
treefada633346b9f51d6e423134fea70b2912cfe59b /src/plugins/Ui/skinned
parentd2f5650a291016b2894b93e85a16ade5a5a8f899 (diff)
downloadqmmp-34926703d41859a1e225638fa6d3c62e66332e65.tar.gz
qmmp-34926703d41859a1e225638fa6d3c62e66332e65.tar.bz2
qmmp-34926703d41859a1e225638fa6d3c62e66332e65.zip
skinned: prevent off-screen position (#898)
git-svn-id: http://svn.code.sf.net/p/qmmp-dev/code/trunk/qmmp@7094 90c681e8-e032-0410-971d-27865f9a5e38
Diffstat (limited to 'src/plugins/Ui/skinned')
-rw-r--r--src/plugins/Ui/skinned/eqwidget.cpp14
-rw-r--r--src/plugins/Ui/skinned/mainwindow.cpp14
-rw-r--r--src/plugins/Ui/skinned/playlist.cpp14
3 files changed, 36 insertions, 6 deletions
diff --git a/src/plugins/Ui/skinned/eqwidget.cpp b/src/plugins/Ui/skinned/eqwidget.cpp
index f1985c893..bc772995a 100644
--- a/src/plugins/Ui/skinned/eqwidget.cpp
+++ b/src/plugins/Ui/skinned/eqwidget.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2016 by Ilya Kotov *
+ * Copyright (C) 2006-2017 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -23,6 +23,7 @@
#include <QInputDialog>
#include <QCloseEvent>
#include <QFile>
+#include <QDesktopWidget>
#include <qmmpui/filedialog.h>
#include <qmmpui/playlistmanager.h>
#include <qmmp/soundcore.h>
@@ -143,7 +144,16 @@ void EqWidget::setMimimalMode(bool b)
void EqWidget::readSettings()
{
QSettings settings (Qmmp::configFile(), QSettings::IniFormat);
- move (settings.value ("Skinned/eq_pos", QPoint (100, 216)).toPoint()); //geometry
+ QDesktopWidget *desktop = qApp->desktop();
+ QPoint pos = settings.value("Skinned/eq_pos", QPoint(100, 216)).toPoint();
+ if(!desktop->availableGeometry().contains(pos))
+ {
+ QRect availableGeometry = desktop->availableGeometry();
+ int r = m_skin->ratio();
+ pos.setX(qBound(availableGeometry.left(), pos.x(), availableGeometry.right() - r*275));
+ pos.setY(qBound(availableGeometry.top(), pos.y(), availableGeometry.bottom() - r*116));
+ }
+ move (pos); //geometry
readEq();
//equalizer presets
QString preset_path = Qmmp::configDir() + "eq.preset";
diff --git a/src/plugins/Ui/skinned/mainwindow.cpp b/src/plugins/Ui/skinned/mainwindow.cpp
index 69ed7b5c6..5ffe3127f 100644
--- a/src/plugins/Ui/skinned/mainwindow.cpp
+++ b/src/plugins/Ui/skinned/mainwindow.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2016 by Ilya Kotov *
+ * Copyright (C) 2006-2017 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -21,6 +21,7 @@
#include <QDir>
#include <QAction>
#include <QMenu>
+#include <QDesktopWidget>
#include <math.h>
#include <qmmp/soundcore.h>
#include <qmmp/visual.h>
@@ -276,7 +277,16 @@ void MainWindow::readSettings()
}
else
{
- move(settings.value("mw_pos", QPoint(100, 100)).toPoint()); //geometry
+ QDesktopWidget *desktop = qApp->desktop();
+ QPoint pos = settings.value("mw_pos", QPoint(100, 100)).toPoint();
+ if(!desktop->availableGeometry().contains(pos))
+ {
+ QRect availableGeometry = desktop->availableGeometry();
+ int r = m_skin->ratio();
+ pos.setX(qBound(availableGeometry.left(), pos.x(), availableGeometry.right() - r*275));
+ pos.setY(qBound(availableGeometry.top(), pos.y(), availableGeometry.bottom() - r*116));
+ }
+ move(pos); //geometry
m_startHidden = settings.value("start_hidden", false).toBool();
if(settings.value("always_on_top", false).toBool())
{
diff --git a/src/plugins/Ui/skinned/playlist.cpp b/src/plugins/Ui/skinned/playlist.cpp
index 7a33b95b0..93b15e6ac 100644
--- a/src/plugins/Ui/skinned/playlist.cpp
+++ b/src/plugins/Ui/skinned/playlist.cpp
@@ -1,5 +1,5 @@
/***************************************************************************
- * Copyright (C) 2006-2016 by Ilya Kotov *
+ * Copyright (C) 2006-2017 by Ilya Kotov *
* forkotov02@hotmail.ru *
* *
* This program is free software; you can redistribute it and/or modify *
@@ -25,6 +25,7 @@
#include <QSignalMapper>
#include <QCloseEvent>
#include <QInputDialog>
+#include <QDesktopWidget>
#include <qmmpui/playlistitem.h>
#include <qmmpui/playlistmodel.h>
#include <qmmpui/playlistmanager.h>
@@ -502,7 +503,16 @@ void PlayList::readSettings()
}
else
{
- move (settings.value ("Skinned/pl_pos", QPoint (100, 332)).toPoint()); //position
+ QDesktopWidget *desktop = qApp->desktop();
+ QPoint pos = settings.value ("Skinned/pl_pos", QPoint (100, 332)).toPoint();
+ if(!desktop->availableGeometry().contains(pos))
+ {
+ QRect availableGeometry = desktop->availableGeometry();
+ m_ratio = m_skin->ratio();
+ pos.setX(qBound(availableGeometry.left(), pos.x(), availableGeometry.right() - m_ratio*275));
+ pos.setY(qBound(availableGeometry.top(), pos.y(), availableGeometry.bottom() - m_ratio*116));
+ }
+ move (pos); //position
m_update = true;
}
}