[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [palapeli] src: BUG: 331594 Fix holders and preview not to obscure messages and dialogs.
From:       Ian Wadham <iandw.au () gmail ! com>
Date:       2014-02-28 23:19:40
Message-ID: E1WJWiS-0007ea-Ib () scm ! kde ! org
[Download RAW message or body]

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* puzzle)
 	m_canExportPuzzle = m_mainWindow->actionCollection()->
 				action("game_export")->isEnabled();
 	m_centralWidget->setCurrentWidget(m_puzzleTable);
-	m_puzzlePreview = new Palapeli::PuzzlePreview();
+	m_puzzlePreview = new Palapeli::PuzzlePreview(m_mainWindow);
 
 	if (m_loadingPuzzle || (!puzzle) || (m_puzzle == puzzle)) {
 		if (m_puzzle == puzzle) {
@@ -364,7 +364,7 @@ void Palapeli::GamePlay::createHolder()
 void Palapeli::GamePlay::createHolder(const QString& name, bool sel)
 {
 	Palapeli::PieceHolder* h =
-			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 <QPainter>
 #include <KLocalizedString>
 
-Palapeli::PuzzlePreview::PuzzlePreview()
+Palapeli::PuzzlePreview::PuzzlePreview(QWidget* parent)
 {
 	m_settingsSaveTimer = new QTimer(this);
 	connect(m_settingsSaveTimer, SIGNAL(timeout()), this, SLOT(writeConfigIfGeometryChanged()));
@@ -37,8 +37,9 @@ Palapeli::PuzzlePreview::PuzzlePreview()
 	m_mousePos = 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 = 2.0;	// 2x2 pieces in close-up of minimum holder.
 const qreal maxGrid = 6.0;	// 6x6 pieces in distant view of min holder.
 
-Palapeli::PieceHolder::PieceHolder(const QSizeF& pieceArea, const QString& title)
-	: View()		// A parentless QWidget == a window.
-	, m_scene(scene())
+Palapeli::PieceHolder::PieceHolder(QWidget* parent, const QSizeF& pieceArea,
+					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 = calculateCloseUpScale();
 	QRectF r = 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<Piece*> 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(); }
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic