Git commit 49eb5b047e96ff83dc4d0c2b0386290c90e867f5 by Ian Wadham. Committed on 28/02/2014 at 23:09. Pushed by ianw into branch 'master'. BUG: 331594 Fix holders and preview not to obscure messages and dialogs. The windows needed to have parents but not Qt::WindowStaysOnTopHint. M +2 -2 src/engine/gameplay.cpp M +3 -2 src/engine/puzzlepreview.cpp M +1 -1 src/engine/puzzlepreview.h M +5 -5 src/window/pieceholder.cpp M +2 -3 src/window/pieceholder.h http://commits.kde.org/palapeli/49eb5b047e96ff83dc4d0c2b0386290c90e867f5 diff --git a/src/engine/gameplay.cpp b/src/engine/gameplay.cpp index 8c3d798..ee6ae96 100644 --- a/src/engine/gameplay.cpp +++ b/src/engine/gameplay.cpp @@ -172,7 +172,7 @@ void Palapeli::GamePlay::playPuzzle(Palapeli::Puzzle* p= uzzle) m_canExportPuzzle =3D m_mainWindow->actionCollection()-> action("game_export")->isEnabled(); m_centralWidget->setCurrentWidget(m_puzzleTable); - m_puzzlePreview =3D new Palapeli::PuzzlePreview(); + m_puzzlePreview =3D new Palapeli::PuzzlePreview(m_mainWindow); = if (m_loadingPuzzle || (!puzzle) || (m_puzzle =3D=3D puzzle)) { if (m_puzzle =3D=3D puzzle) { @@ -364,7 +364,7 @@ void Palapeli::GamePlay::createHolder() void Palapeli::GamePlay::createHolder(const QString& name, bool sel) { Palapeli::PieceHolder* h =3D - new Palapeli::PieceHolder(m_pieceAreaSize, name); + new Palapeli::PieceHolder(m_mainWindow, m_pieceAreaSize, name); m_viewList << h; connect(h, SIGNAL(selected(PieceHolder*)), this, SLOT(changeSelectedHolder(PieceHolder*))); diff --git a/src/engine/puzzlepreview.cpp b/src/engine/puzzlepreview.cpp index 594470c..425d717 100644 --- a/src/engine/puzzlepreview.cpp +++ b/src/engine/puzzlepreview.cpp @@ -26,7 +26,7 @@ #include #include = -Palapeli::PuzzlePreview::PuzzlePreview() +Palapeli::PuzzlePreview::PuzzlePreview(QWidget* parent) { m_settingsSaveTimer =3D new QTimer(this); connect(m_settingsSaveTimer, SIGNAL(timeout()), this, SLOT(writeConfigIfG= eometryChanged())); @@ -37,8 +37,9 @@ Palapeli::PuzzlePreview::PuzzlePreview() m_mousePos =3D QPoint(); = setScene(new QGraphicsScene()); + setParent(parent); setWindowTitle(i18nc("Window title", "Preview of completed puzzle")); - setWindowFlags(Qt::Tool | Qt::WindowTitleHint | Qt::WindowStaysOnTopHint); + setWindowFlags(Qt::Tool | Qt::WindowTitleHint); setAttribute (Qt::WA_NoMousePropagation); // Accept all mouse events. setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); diff --git a/src/engine/puzzlepreview.h b/src/engine/puzzlepreview.h index 15a2ec3..59f77ac 100644 --- a/src/engine/puzzlepreview.h +++ b/src/engine/puzzlepreview.h @@ -30,7 +30,7 @@ namespace Palapeli { Q_OBJECT public: - PuzzlePreview(); + PuzzlePreview(QWidget* parent); = void setImage(const QImage &image); void loadImageFrom(const Palapeli::PuzzleMetadata& md); diff --git a/src/window/pieceholder.cpp b/src/window/pieceholder.cpp index 3c999ae..81eb439 100644 --- a/src/window/pieceholder.cpp +++ b/src/window/pieceholder.cpp @@ -27,17 +27,17 @@ const qreal minGrid =3D 2.0; // 2x2 pieces in close-up of minimum holder. const qreal maxGrid =3D 6.0; // 6x6 pieces in distant view of min holder. = -Palapeli::PieceHolder::PieceHolder(const QSizeF& pieceArea, const QString&= title) - : View() // A parentless QWidget =3D=3D a window. - , m_scene(scene()) +Palapeli::PieceHolder::PieceHolder(QWidget* parent, const QSizeF& pieceAre= a, + const QString& title) + : m_scene(scene()) { qDebug() << "CONSTRUCTING Palapeli::PieceHolder" << title; + setParent(parent); + setWindowFlags(Qt::Window | Qt::Tool | Qt::WindowTitleHint); // Allow space for (2 * 2) pieces in minimum view initially. m_scene->setPieceAreaSize(pieceArea); m_scene->initializeGrid(QPointF(0.0, 0.0)); m_scene->setSceneRect(m_scene->piecesBoundingRect(minGrid)); - setWindowFlags(Qt::Tool | Qt::WindowTitleHint - | Qt::WindowStaysOnTopHint); setWindowTitle(title); qreal s =3D calculateCloseUpScale(); QRectF r =3D m_scene->sceneRect(); diff --git a/src/window/pieceholder.h b/src/window/pieceholder.h index 1147613..97f4350 100644 --- a/src/window/pieceholder.h +++ b/src/window/pieceholder.h @@ -45,9 +45,8 @@ namespace Palapeli { Q_OBJECT public: - PieceHolder(const QSizeF& pieceArea, const QString& title); - // IDW TODO - void releasePieces(QList pieces); - // IDW TODO - void repackPieces(QRectF& rect); // Belongs in scene()? + PieceHolder(QWidget* parent, const QSizeF& pieceArea, + const QString& title); void initializeZooming(); void setSelected(bool onOff); QString name() { return windowTitle(); }