diff options
author | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-10-10 19:25:44 +0200 |
---|---|---|
committer | Aqua-sama <aqua@iserlohn-fortress.net> | 2017-10-10 19:25:44 +0200 |
commit | 442ba9f09a8ee18609361f3971b5da7f40eb5c35 (patch) | |
tree | fd612714e7df77ff3523a6773b6e9c3e60084809 /src/widgets/dockingwidget.cpp | |
parent | Cleaned up WebViewTabBar (diff) | |
download | smolbote-442ba9f09a8ee18609361f3971b5da7f40eb5c35.tar.xz |
Split off DownloadsWidget into library
Fixed bug with BookmarksWidget crashing the program on exit
Diffstat (limited to 'src/widgets/dockingwidget.cpp')
-rw-r--r-- | src/widgets/dockingwidget.cpp | 82 |
1 files changed, 0 insertions, 82 deletions
diff --git a/src/widgets/dockingwidget.cpp b/src/widgets/dockingwidget.cpp deleted file mode 100644 index e501f16..0000000 --- a/src/widgets/dockingwidget.cpp +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - ** - ** smolbote: yet another qute browser - ** Copyright (C) 2017 Xian Nox - ** - ** This program is free software: you can redistribute it and/or modify - ** it under the terms of the GNU General Public License as published by - ** the Free Software Foundation, either version 3 of the License, or - ** (at your option) any later version. - ** - ** This program is distributed in the hope that it will be useful, - ** but WITHOUT ANY WARRANTY; without even the implied warranty of - ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - ** GNU General Public License for more details. - ** - ** You should have received a copy of the GNU General Public License - ** along with this program. If not, see <http://www.gnu.org/licenses/>. - ** - ******************************************************************************/ - -#include "dockingwidget.h" -#include "mainwindow.h" - -#include <QApplication> - -DockWidget::DockWidget(const QString &title, QWidget *parent, Qt::WindowFlags flags) : - QDockWidget(title, parent, flags) -{ -} - -void DockWidget::closeEvent(QCloseEvent *event) -{ - setParent(0); - event->ignore(); -} - -DockingWidget::DockingWidget(const QString &title, QWidget *parent) : - QWidget(parent) -{ - window = nullptr; - dock = new DockWidget(title, 0); - dock->setWidget(this); - dock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - - connect(qApp, &QApplication::aboutToQuit, [this]() { - this->setParent(0); - }); -} - -DockingWidget::~DockingWidget() -{ - // If the dock has a parent, it will take care of it - // calling delete later here if the dock has a parent causes a crash - if(!dock->parent()) { - dock->deleteLater(); - } -} - -void DockingWidget::show() -{ - MainWindow *caller = qobject_cast<MainWindow *>(sender()->parent()); - // if already shown and on the same window - hide the widget - if(isVisible() && window == caller) { - dock->setParent(0); - return; - } - - // show() gets called by a QAction in MainWindow - window = caller; - if(window) { - - // dockable widgets - dock->setParent(window); - //window->addDockWidget(Qt::RightDockWidgetArea, dock); - window->addTabbedDock(Qt::RightDockWidgetArea, dock); - - } else { - qWarning("DockingWidget not called by MainWindow"); - } - - QWidget::show(); -} |