mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2024-12-26 16:01:36 +08:00
Fixed CDockAreaWidget::nextOpenDockWidget() function to properly return a DockWidget with tab if this is possible
Added new emptydockarea example
This commit is contained in:
parent
ebde50b492
commit
a614e3cc3d
@ -4,3 +4,4 @@ add_subdirectory(simple)
|
|||||||
add_subdirectory(sidebar)
|
add_subdirectory(sidebar)
|
||||||
add_subdirectory(deleteonclose)
|
add_subdirectory(deleteonclose)
|
||||||
add_subdirectory(centralwidget)
|
add_subdirectory(centralwidget)
|
||||||
|
add_subdirectory(emptydockarea)
|
@ -38,36 +38,34 @@ CMainWindow::CMainWindow(QWidget *parent)
|
|||||||
DockManager = new CDockManager(this);
|
DockManager = new CDockManager(this);
|
||||||
|
|
||||||
// Set central widget
|
// Set central widget
|
||||||
//QPlainTextEdit* w = new QPlainTextEdit();
|
QPlainTextEdit* w = new QPlainTextEdit();
|
||||||
//w->setPlaceholderText("This is the central editor. Enter your text here.");
|
w->setPlaceholderText("This is the central editor. Enter your text here.");
|
||||||
CDockWidget* CentralDockWidget = new CDockWidget("CentralWidget");
|
CDockWidget* CentralDockWidget = new CDockWidget("CentralWidget");
|
||||||
//CentralDockWidget->setWidget(w);
|
CentralDockWidget->setWidget(w);
|
||||||
auto* CentralDockArea = DockManager->setCentralWidget(CentralDockWidget);
|
auto* CentralDockArea = DockManager->setCentralWidget(CentralDockWidget);
|
||||||
CentralDockWidget->setFeature(ads::CDockWidget::NoTab, true);
|
CentralDockArea->setAllowedAreas(DockWidgetArea::OuterDockAreas);
|
||||||
//CentralDockArea->setAllowedAreas(DockWidgetArea::OuterDockAreas);
|
|
||||||
|
|
||||||
// create other dock widgets
|
// create other dock widgets
|
||||||
QTreeView* fileTree = new QTreeView();
|
|
||||||
fileTree->setFrameShape(QFrame::NoFrame);
|
|
||||||
QFileSystemModel* fileModel = new QFileSystemModel(fileTree);
|
|
||||||
fileModel->setRootPath(QDir::currentPath());
|
|
||||||
fileTree->setModel(fileModel);
|
|
||||||
CDockWidget* DataDockWidget = new CDockWidget("File system");
|
|
||||||
DataDockWidget->setWidget(fileTree);
|
|
||||||
DataDockWidget->resize(150, 250);
|
|
||||||
DataDockWidget->setMinimumSize(100, 250);
|
|
||||||
auto* fileArea = DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, DataDockWidget, CentralDockArea);
|
|
||||||
ui->menuView->addAction(DataDockWidget->toggleViewAction());
|
|
||||||
|
|
||||||
QTableWidget* table = new QTableWidget();
|
QTableWidget* table = new QTableWidget();
|
||||||
table->setColumnCount(3);
|
table->setColumnCount(3);
|
||||||
table->setRowCount(10);
|
table->setRowCount(10);
|
||||||
CDockWidget* TableDockWidget = new CDockWidget("Table");
|
CDockWidget* TableDockWidget = new CDockWidget("Table 1");
|
||||||
TableDockWidget->setWidget(table);
|
TableDockWidget->setWidget(table);
|
||||||
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
TableDockWidget->resize(250, 150);
|
TableDockWidget->resize(250, 150);
|
||||||
TableDockWidget->setMinimumSize(200,150);
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, TableDockWidget, fileArea);
|
auto TableArea = DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, TableDockWidget);
|
||||||
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
|
table = new QTableWidget();
|
||||||
|
table->setColumnCount(5);
|
||||||
|
table->setRowCount(1020);
|
||||||
|
TableDockWidget = new CDockWidget("Table 2");
|
||||||
|
TableDockWidget->setWidget(table);
|
||||||
|
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
|
TableDockWidget->resize(250, 150);
|
||||||
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
|
DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, TableDockWidget, TableArea);
|
||||||
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
QTableWidget* propertiesTable = new QTableWidget();
|
QTableWidget* propertiesTable = new QTableWidget();
|
||||||
|
25
examples/emptydockarea/CMakeLists.txt
Normal file
25
examples/emptydockarea/CMakeLists.txt
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
cmake_minimum_required(VERSION 3.5)
|
||||||
|
project(ads_example_centralwidget VERSION ${VERSION_SHORT})
|
||||||
|
find_package(Qt5 5.5 COMPONENTS Core Gui Widgets REQUIRED)
|
||||||
|
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||||
|
add_executable(EmptyDockAreaExample WIN32
|
||||||
|
main.cpp
|
||||||
|
mainwindow.cpp
|
||||||
|
mainwindow.ui
|
||||||
|
)
|
||||||
|
target_include_directories(EmptyDockAreaExample PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/../../src")
|
||||||
|
target_link_libraries(EmptyDockAreaExample PRIVATE qtadvanceddocking)
|
||||||
|
target_link_libraries(EmptyDockAreaExample PUBLIC Qt5::Core Qt5::Gui Qt5::Widgets)
|
||||||
|
set_target_properties(EmptyDockAreaExample PROPERTIES
|
||||||
|
AUTOMOC ON
|
||||||
|
AUTORCC ON
|
||||||
|
AUTOUIC ON
|
||||||
|
CXX_STANDARD 14
|
||||||
|
CXX_STANDARD_REQUIRED ON
|
||||||
|
CXX_EXTENSIONS OFF
|
||||||
|
VERSION ${VERSION_SHORT}
|
||||||
|
EXPORT_NAME "Qt Advanced Docking System Empty Dock Area Example"
|
||||||
|
ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
||||||
|
LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/lib"
|
||||||
|
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${ads_PlatformDir}/bin"
|
||||||
|
)
|
34
examples/emptydockarea/emptydockarea.pro
Normal file
34
examples/emptydockarea/emptydockarea.pro
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
ADS_OUT_ROOT = $${OUT_PWD}/../..
|
||||||
|
|
||||||
|
QT += core gui widgets
|
||||||
|
|
||||||
|
TARGET = EmptyDockareaExample
|
||||||
|
DESTDIR = $${ADS_OUT_ROOT}/lib
|
||||||
|
TEMPLATE = app
|
||||||
|
CONFIG += c++14
|
||||||
|
CONFIG += debug_and_release
|
||||||
|
adsBuildStatic {
|
||||||
|
DEFINES += ADS_STATIC
|
||||||
|
}
|
||||||
|
|
||||||
|
# The following define makes your compiler emit warnings if you use
|
||||||
|
# any Qt feature that has been marked deprecated (the exact warnings
|
||||||
|
# depend on your compiler). Please consult the documentation of the
|
||||||
|
# deprecated API in order to know how to port your code away from it.
|
||||||
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
SOURCES += \
|
||||||
|
main.cpp \
|
||||||
|
mainwindow.cpp
|
||||||
|
|
||||||
|
HEADERS += \
|
||||||
|
mainwindow.h
|
||||||
|
|
||||||
|
FORMS += \
|
||||||
|
mainwindow.ui
|
||||||
|
|
||||||
|
LIBS += -L$${ADS_OUT_ROOT}/lib
|
||||||
|
include(../../ads.pri)
|
||||||
|
INCLUDEPATH += ../../src
|
||||||
|
DEPENDPATH += ../../src
|
||||||
|
|
10
examples/emptydockarea/main.cpp
Normal file
10
examples/emptydockarea/main.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
#include <mainwindow.h>
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
QApplication a(argc, argv);
|
||||||
|
CMainWindow w;
|
||||||
|
w.show();
|
||||||
|
return a.exec();
|
||||||
|
}
|
134
examples/emptydockarea/mainwindow.cpp
Normal file
134
examples/emptydockarea/mainwindow.cpp
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
#include "mainwindow.h"
|
||||||
|
|
||||||
|
#include "ui_mainwindow.h"
|
||||||
|
|
||||||
|
#include <QWidgetAction>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QCalendarWidget>
|
||||||
|
#include <QTreeView>
|
||||||
|
#include <QFileSystemModel>
|
||||||
|
#include <QTableWidget>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QRadioButton>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QInputDialog>
|
||||||
|
#include <QFileDialog>
|
||||||
|
#include <QSettings>
|
||||||
|
#include <QMessageBox>
|
||||||
|
#include <QPlainTextEdit>
|
||||||
|
#include <QToolBar>
|
||||||
|
|
||||||
|
#include "DockAreaWidget.h"
|
||||||
|
#include "DockAreaTitleBar.h"
|
||||||
|
#include "DockAreaTabBar.h"
|
||||||
|
#include "FloatingDockContainer.h"
|
||||||
|
#include "DockComponentsFactory.h"
|
||||||
|
|
||||||
|
using namespace ads;
|
||||||
|
|
||||||
|
|
||||||
|
CMainWindow::CMainWindow(QWidget *parent)
|
||||||
|
: QMainWindow(parent)
|
||||||
|
, ui(new Ui::CMainWindow)
|
||||||
|
{
|
||||||
|
ui->setupUi(this);
|
||||||
|
CDockManager::setConfigFlag(CDockManager::OpaqueSplitterResize, true);
|
||||||
|
CDockManager::setConfigFlag(CDockManager::XmlCompressionEnabled, false);
|
||||||
|
CDockManager::setConfigFlag(CDockManager::FocusHighlighting, true);
|
||||||
|
DockManager = new CDockManager(this);
|
||||||
|
|
||||||
|
// Set central widget
|
||||||
|
QLabel* label = new QLabel();
|
||||||
|
label->setText("This is a DockArea which is always visible, even if it does not contain any DockWidgets.");
|
||||||
|
label->setAlignment(Qt::AlignCenter);
|
||||||
|
CDockWidget* CentralDockWidget = new CDockWidget("CentralWidget");
|
||||||
|
CentralDockWidget->setWidget(label);
|
||||||
|
auto* CentralDockArea = DockManager->setCentralWidget(CentralDockWidget);
|
||||||
|
CentralDockWidget->setFeature(ads::CDockWidget::NoTab, true);
|
||||||
|
|
||||||
|
// create other dock widgets
|
||||||
|
QTableWidget* table = new QTableWidget();
|
||||||
|
table->setColumnCount(3);
|
||||||
|
table->setRowCount(10);
|
||||||
|
CDockWidget* TableDockWidget = new CDockWidget("Table 1");
|
||||||
|
TableDockWidget->setWidget(table);
|
||||||
|
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
|
TableDockWidget->resize(250, 150);
|
||||||
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
|
auto TableArea = DockManager->addDockWidget(DockWidgetArea::LeftDockWidgetArea, TableDockWidget);
|
||||||
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
|
table = new QTableWidget();
|
||||||
|
table->setColumnCount(5);
|
||||||
|
table->setRowCount(1020);
|
||||||
|
TableDockWidget = new CDockWidget("Table 2");
|
||||||
|
TableDockWidget->setWidget(table);
|
||||||
|
TableDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
|
TableDockWidget->resize(250, 150);
|
||||||
|
TableDockWidget->setMinimumSize(200,150);
|
||||||
|
DockManager->addDockWidget(DockWidgetArea::BottomDockWidgetArea, TableDockWidget, TableArea);
|
||||||
|
ui->menuView->addAction(TableDockWidget->toggleViewAction());
|
||||||
|
|
||||||
|
QTableWidget* propertiesTable = new QTableWidget();
|
||||||
|
propertiesTable->setColumnCount(3);
|
||||||
|
propertiesTable->setRowCount(10);
|
||||||
|
CDockWidget* PropertiesDockWidget = new CDockWidget("Properties");
|
||||||
|
PropertiesDockWidget->setWidget(propertiesTable);
|
||||||
|
PropertiesDockWidget->setMinimumSizeHintMode(CDockWidget::MinimumSizeHintFromDockWidget);
|
||||||
|
PropertiesDockWidget->resize(250, 150);
|
||||||
|
PropertiesDockWidget->setMinimumSize(200,150);
|
||||||
|
DockManager->addDockWidget(DockWidgetArea::RightDockWidgetArea, PropertiesDockWidget, CentralDockArea);
|
||||||
|
ui->menuView->addAction(PropertiesDockWidget->toggleViewAction());
|
||||||
|
|
||||||
|
createPerspectiveUi();
|
||||||
|
}
|
||||||
|
|
||||||
|
CMainWindow::~CMainWindow()
|
||||||
|
{
|
||||||
|
delete ui;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CMainWindow::createPerspectiveUi()
|
||||||
|
{
|
||||||
|
SavePerspectiveAction = new QAction("Create Perspective", this);
|
||||||
|
connect(SavePerspectiveAction, SIGNAL(triggered()), SLOT(savePerspective()));
|
||||||
|
PerspectiveListAction = new QWidgetAction(this);
|
||||||
|
PerspectiveComboBox = new QComboBox(this);
|
||||||
|
PerspectiveComboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
|
||||||
|
PerspectiveComboBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
|
||||||
|
connect(PerspectiveComboBox, SIGNAL(activated(const QString&)),
|
||||||
|
DockManager, SLOT(openPerspective(const QString&)));
|
||||||
|
PerspectiveListAction->setDefaultWidget(PerspectiveComboBox);
|
||||||
|
ui->toolBar->addSeparator();
|
||||||
|
ui->toolBar->addAction(PerspectiveListAction);
|
||||||
|
ui->toolBar->addAction(SavePerspectiveAction);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CMainWindow::savePerspective()
|
||||||
|
{
|
||||||
|
QString PerspectiveName = QInputDialog::getText(this, "Save Perspective", "Enter unique name:");
|
||||||
|
if (PerspectiveName.isEmpty())
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DockManager->addPerspective(PerspectiveName);
|
||||||
|
QSignalBlocker Blocker(PerspectiveComboBox);
|
||||||
|
PerspectiveComboBox->clear();
|
||||||
|
PerspectiveComboBox->addItems(DockManager->perspectiveNames());
|
||||||
|
PerspectiveComboBox->setCurrentText(PerspectiveName);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//============================================================================
|
||||||
|
void CMainWindow::closeEvent(QCloseEvent* event)
|
||||||
|
{
|
||||||
|
// Delete dock manager here to delete all floating widgets. This ensures
|
||||||
|
// that all top level windows of the dock manager are properly closed
|
||||||
|
DockManager->deleteLater();
|
||||||
|
QMainWindow::closeEvent(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
43
examples/emptydockarea/mainwindow.h
Normal file
43
examples/emptydockarea/mainwindow.h
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
#ifndef MAINWINDOW_H
|
||||||
|
#define MAINWINDOW_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
|
#include <QComboBox>
|
||||||
|
#include <QWidgetAction>
|
||||||
|
|
||||||
|
#include "DockManager.h"
|
||||||
|
#include "DockAreaWidget.h"
|
||||||
|
#include "DockWidget.h"
|
||||||
|
|
||||||
|
QT_BEGIN_NAMESPACE
|
||||||
|
namespace Ui { class CMainWindow; }
|
||||||
|
QT_END_NAMESPACE
|
||||||
|
|
||||||
|
class CMainWindow : public QMainWindow
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
CMainWindow(QWidget *parent = nullptr);
|
||||||
|
~CMainWindow();
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void closeEvent(QCloseEvent* event) override;
|
||||||
|
|
||||||
|
private:
|
||||||
|
QAction* SavePerspectiveAction = nullptr;
|
||||||
|
QWidgetAction* PerspectiveListAction = nullptr;
|
||||||
|
QComboBox* PerspectiveComboBox = nullptr;
|
||||||
|
|
||||||
|
Ui::CMainWindow *ui;
|
||||||
|
|
||||||
|
ads::CDockManager* DockManager;
|
||||||
|
ads::CDockAreaWidget* StatusDockArea;
|
||||||
|
ads::CDockWidget* TimelineDockWidget;
|
||||||
|
|
||||||
|
void createPerspectiveUi();
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void savePerspective();
|
||||||
|
};
|
||||||
|
#endif // MAINWINDOW_H
|
47
examples/emptydockarea/mainwindow.ui
Normal file
47
examples/emptydockarea/mainwindow.ui
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<ui version="4.0">
|
||||||
|
<class>CMainWindow</class>
|
||||||
|
<widget class="QMainWindow" name="CMainWindow">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>1284</width>
|
||||||
|
<height>757</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>MainWindow</string>
|
||||||
|
</property>
|
||||||
|
<widget class="QWidget" name="centralwidget"/>
|
||||||
|
<widget class="QMenuBar" name="menubar">
|
||||||
|
<property name="geometry">
|
||||||
|
<rect>
|
||||||
|
<x>0</x>
|
||||||
|
<y>0</y>
|
||||||
|
<width>1284</width>
|
||||||
|
<height>21</height>
|
||||||
|
</rect>
|
||||||
|
</property>
|
||||||
|
<widget class="QMenu" name="menuView">
|
||||||
|
<property name="title">
|
||||||
|
<string>View</string>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
<addaction name="menuView"/>
|
||||||
|
</widget>
|
||||||
|
<widget class="QToolBar" name="toolBar">
|
||||||
|
<property name="windowTitle">
|
||||||
|
<string>toolBar</string>
|
||||||
|
</property>
|
||||||
|
<attribute name="toolBarArea">
|
||||||
|
<enum>TopToolBarArea</enum>
|
||||||
|
</attribute>
|
||||||
|
<attribute name="toolBarBreak">
|
||||||
|
<bool>false</bool>
|
||||||
|
</attribute>
|
||||||
|
</widget>
|
||||||
|
</widget>
|
||||||
|
<resources/>
|
||||||
|
<connections/>
|
||||||
|
</ui>
|
@ -4,4 +4,5 @@ SUBDIRS = \
|
|||||||
centralwidget \
|
centralwidget \
|
||||||
simple \
|
simple \
|
||||||
sidebar \
|
sidebar \
|
||||||
deleteonclose
|
deleteonclose \
|
||||||
|
emptydockarea
|
||||||
|
@ -808,18 +808,49 @@ CDockWidget* CDockAreaWidget::nextOpenDockWidget(CDockWidget* DockWidget) const
|
|||||||
auto OpenDockWidgets = openedDockWidgets();
|
auto OpenDockWidgets = openedDockWidgets();
|
||||||
if (OpenDockWidgets.count() > 1 || (OpenDockWidgets.count() == 1 && OpenDockWidgets[0] != DockWidget))
|
if (OpenDockWidgets.count() > 1 || (OpenDockWidgets.count() == 1 && OpenDockWidgets[0] != DockWidget))
|
||||||
{
|
{
|
||||||
CDockWidget* NextDockWidget;
|
|
||||||
if (OpenDockWidgets.last() == DockWidget)
|
if (OpenDockWidgets.last() == DockWidget)
|
||||||
{
|
{
|
||||||
NextDockWidget = OpenDockWidgets[OpenDockWidgets.count() - 2];
|
CDockWidget* NextDockWidget = OpenDockWidgets[OpenDockWidgets.count() - 2];
|
||||||
|
// search backwards for widget with tab
|
||||||
|
for (int i = OpenDockWidgets.count() - 2; i >= 0; --i)
|
||||||
|
{
|
||||||
|
auto dw = OpenDockWidgets[i];
|
||||||
|
if (!dw->features().testFlag(CDockWidget::NoTab))
|
||||||
|
{
|
||||||
|
return dw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// return widget without tab
|
||||||
|
return NextDockWidget;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int NextIndex = OpenDockWidgets.indexOf(DockWidget) + 1;
|
int IndexOfDockWidget = OpenDockWidgets.indexOf(DockWidget);
|
||||||
NextDockWidget = OpenDockWidgets[NextIndex];
|
CDockWidget* NextDockWidget = OpenDockWidgets[IndexOfDockWidget + 1];
|
||||||
}
|
// search forwards for widget with tab
|
||||||
|
for (int i = IndexOfDockWidget + 1; i < OpenDockWidgets.count(); ++i)
|
||||||
|
{
|
||||||
|
auto dw = OpenDockWidgets[i];
|
||||||
|
if (!dw->features().testFlag(CDockWidget::NoTab))
|
||||||
|
{
|
||||||
|
return dw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return NextDockWidget;
|
// search backwards for widget with tab
|
||||||
|
for (int i = IndexOfDockWidget - 1; i >= 0; --i)
|
||||||
|
{
|
||||||
|
auto dw = OpenDockWidgets[i];
|
||||||
|
if (!dw->features().testFlag(CDockWidget::NoTab))
|
||||||
|
{
|
||||||
|
return dw;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// return widget without tab
|
||||||
|
return NextDockWidget;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user