Browse Source

Try to center AutoExpandableDialog on the same screen as main window

If main window is unavailable use the screen, where the mouse cursor is.
adaptive-webui-19844
Nick Tiskov 11 years ago
parent
commit
cc04ebd45f
  1. 19
      src/autoexpandabledialog.cpp

19
src/autoexpandabledialog.cpp

@ -30,6 +30,7 @@ @@ -30,6 +30,7 @@
#include <QDesktopWidget>
#include "mainwindow.h"
#include "autoexpandabledialog.h"
#include "ui_autoexpandabledialog.h"
@ -100,9 +101,21 @@ void AutoExpandableDialog::showEvent(QShowEvent *e) { @@ -100,9 +101,21 @@ void AutoExpandableDialog::showEvent(QShowEvent *e) {
setFixedHeight(height());
// Update geometry: center on screen
int sx = QApplication::desktop()->width();
int sy = QApplication::desktop()->height();
QDesktopWidget *desk = QApplication::desktop();
MainWindow *wnd = qobject_cast<MainWindow*>(QApplication::activeWindow());
QPoint p = QCursor::pos();
int screenNum = 0;
if (wnd == 0)
screenNum = desk->screenNumber(p);
else if (!wnd->isHidden())
screenNum = desk->screenNumber(wnd);
else
screenNum = desk->screenNumber(p);
QRect screenRes = desk->screenGeometry(screenNum);
QRect geom = geometry();
geom.moveCenter(QPoint(sx / 2, sy / 2));
geom.moveCenter(QPoint(screenRes.width() / 2, screenRes.height() / 2));
setGeometry(geom);
}

Loading…
Cancel
Save