From da688a422ec94e342467f102c3361c0be3d7fd44 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 20 Mar 2017 18:44:46 +0100 Subject: Dockable DownloadsWidget --- src/mainwindow.cpp | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 5cf9590..eaf061e 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -41,6 +41,9 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) : { // set up UI ui->setupUi(this); + setDockOptions(dockOptions() | AllowTabbedDocks | ForceTabbedDocks); + setTabPosition(Qt::LeftDockWidgetArea, QTabWidget::North); + setTabPosition(Qt::RightDockWidgetArea, QTabWidget::North); QMenuBar *menuBar = new QMenuBar(this); menuBar->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); @@ -59,6 +62,7 @@ MainWindow::MainWindow(QUrl defaultUrl, QWidget *parent) : QMenu *toolsMenu = new QMenu(tr("Tools"), menuBar); menuBar->addMenu(toolsMenu); QAction *downloadsAction = toolsMenu->addAction(tr("Downloads"), Browser::instance()->downloads(), SLOT(show())); + downloadsAction->setParent(this); downloadsAction->setShortcut(QKeySequence::fromString(sSettings->value("downloads.dialogShortcut").toString())); QAction *bookmarksAction = toolsMenu->addAction(tr("Bookmarks"), Browser::instance()->bookmarks(), SLOT(show())); bookmarksAction->setParent(this); @@ -125,10 +129,27 @@ MainWindow::MainWindow(const QStringList urlList, QWidget *parent) : MainWindow::~MainWindow() { - qApp->bookmarks()->setParent(0); delete ui; } +void MainWindow::addTabbedDock(Qt::DockWidgetArea area, QDockWidget *widget) +{ + QList allDockWidgets = findChildren(); + QVector areaDockWidgets; + for(QDockWidget *w : allDockWidgets) { + if(dockWidgetArea(w) == area) { + areaDockWidgets.append(w); + } + } + + if(areaDockWidgets.empty()) { + // no other widgets + addDockWidget(area, widget); + } else { + tabifyDockWidget(areaDockWidgets.last(), widget); + } +} + void MainWindow::addNewTab(const QUrl &url) { if(!url.isEmpty()) { -- cgit v1.2.1