File indexing completed on 2024-05-19 04:29:10

0001 /*
0002  *  SPDX-FileCopyrightText: 2018 Jouni Pentikäinen <joupent@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #include <QHBoxLayout>
0008 
0009 #include "KisCanvasWindow.h"
0010 #include "KisMainWindow.h"
0011 
0012 struct KisCanvasWindow::Private {
0013     KisMainWindow *mainWindow;
0014 
0015     Private(KisMainWindow *mainWindow)
0016         : mainWindow(mainWindow)
0017     {}
0018 };
0019 
0020 KisCanvasWindow::KisCanvasWindow(KisMainWindow *mainWindow)
0021     : QWidget(mainWindow)
0022       , d(new Private(mainWindow))
0023 {
0024     setWindowFlags(Qt::Window);
0025     setLayout(new QHBoxLayout);
0026 }
0027 
0028 KisCanvasWindow::~KisCanvasWindow() = default;
0029 
0030 void KisCanvasWindow::closeEvent(QCloseEvent *event)
0031 {
0032     d->mainWindow->setCanvasDetached(false);
0033     QWidget::closeEvent(event);
0034 }
0035 
0036 QWidget * KisCanvasWindow::swapMainWidget(QWidget *newWidget)
0037 {
0038     QWidget *oldWidget = (layout()->count() > 0) ? (layout()->takeAt(0)->widget()) : nullptr;
0039     if (newWidget) {
0040         layout()->addWidget(newWidget);
0041     }
0042     return oldWidget;
0043 }