mirror of
https://github.com/githubuser0xFFFF/Qt-Advanced-Docking-System.git
synced 2025-01-26 14:29:02 +08:00
Various fixes after code review
Minimum required Qt lowered to 5.5.0 Added CI for Qt 5.5.1 build Increased C++ standard to C++14 Fixed use of spaces instead of tabs Removed duplicate constructors
This commit is contained in:
parent
ee616c2541
commit
e113790bbe
24
.travis.yml
24
.travis.yml
@ -8,6 +8,30 @@ git:
|
|||||||
matrix:
|
matrix:
|
||||||
fast_finish: true
|
fast_finish: true
|
||||||
include:
|
include:
|
||||||
|
- name: Ubuntu qmake Qt5.5.1
|
||||||
|
os: linux
|
||||||
|
dist: trusty
|
||||||
|
group: stable
|
||||||
|
addons:
|
||||||
|
apt:
|
||||||
|
sources:
|
||||||
|
- ubuntu-toolchain-r-test
|
||||||
|
- sourceline: 'ppa:beineri/opt-qt551-trusty'
|
||||||
|
update: true
|
||||||
|
packages:
|
||||||
|
- qt55base
|
||||||
|
- qt55tools
|
||||||
|
- gcc-6
|
||||||
|
- g++-6
|
||||||
|
- libc6-i386
|
||||||
|
script:
|
||||||
|
- PATH="/opt/qt55/bin:$PATH"
|
||||||
|
- CXX="g++-6"
|
||||||
|
- CC="gcc-6"
|
||||||
|
- qt55-env.sh
|
||||||
|
- qmake
|
||||||
|
- make
|
||||||
|
- make install
|
||||||
- name: Ubuntu qmake dll
|
- name: Ubuntu qmake dll
|
||||||
os: linux
|
os: linux
|
||||||
dist: xenial
|
dist: xenial
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.3)
|
cmake_minimum_required(VERSION 3.3)
|
||||||
set(ads_VERSION "2.3.2")
|
set(ads_VERSION "2.3.2")
|
||||||
set(CMAKE_CXX_STANDARD 11)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
@ -8,7 +8,7 @@ set(CMAKE_AUTORCC ON)
|
|||||||
project(QtAdvancedDockingSystem VERSION ${ads_VERSION})
|
project(QtAdvancedDockingSystem VERSION ${ads_VERSION})
|
||||||
option(BUILD_STATIC "Build the static library" OFF)
|
option(BUILD_STATIC "Build the static library" OFF)
|
||||||
option(BUILD_EXAMPLES "Build the examples" ON)
|
option(BUILD_EXAMPLES "Build the examples" ON)
|
||||||
set(REQUIRED_QT_VERSION 5.7.0)
|
set(REQUIRED_QT_VERSION 5.5.0)
|
||||||
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
cmake_minimum_required(VERSION 3.3)
|
cmake_minimum_required(VERSION 3.3)
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
project(ads_demo VERSION "1.0")
|
project(ads_demo VERSION "1.0")
|
||||||
set(REQUIRED_QT_VERSION 5.7.0)
|
set(REQUIRED_QT_VERSION 5.5.0)
|
||||||
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
|
@ -3,7 +3,7 @@ ADS_OUT_ROOT = $${OUT_PWD}/..
|
|||||||
TARGET = AdvancedDockingSystemDemo
|
TARGET = AdvancedDockingSystemDemo
|
||||||
DESTDIR = $${ADS_OUT_ROOT}/lib
|
DESTDIR = $${ADS_OUT_ROOT}/lib
|
||||||
QT += core gui widgets
|
QT += core gui widgets
|
||||||
CONFIG += c++11
|
CONFIG += c++14
|
||||||
CONFIG += debug_and_release
|
CONFIG += debug_and_release
|
||||||
DEFINES += QT_DEPRECATED_WARNINGS
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
cmake_minimum_required(VERSION 3.3)
|
cmake_minimum_required(VERSION 3.3)
|
||||||
set (CMAKE_CXX_STANDARD 11)
|
set (CMAKE_CXX_STANDARD 14)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
set(CMAKE_AUTOUIC ON)
|
set(CMAKE_AUTOUIC ON)
|
||||||
project(ads_example VERSION "1.0")
|
project(ads_example VERSION "1.0")
|
||||||
set(REQUIRED_QT_VERSION 5.7.0)
|
set(REQUIRED_QT_VERSION 5.5.0)
|
||||||
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Core ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED)
|
||||||
|
@ -5,7 +5,7 @@ QT += core gui widgets
|
|||||||
TARGET = Example1
|
TARGET = Example1
|
||||||
DESTDIR = $${ADS_OUT_ROOT}/lib
|
DESTDIR = $${ADS_OUT_ROOT}/lib
|
||||||
TEMPLATE = app
|
TEMPLATE = app
|
||||||
CONFIG += c++11
|
CONFIG += c++14
|
||||||
CONFIG += debug_and_release
|
CONFIG += debug_and_release
|
||||||
adsBuildStatic {
|
adsBuildStatic {
|
||||||
DEFINES += ADS_STATIC
|
DEFINES += ADS_STATIC
|
||||||
|
@ -98,7 +98,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
void insertWidget(int index, QWidget* Widget)
|
void insertWidget(int index, QWidget* Widget)
|
||||||
{
|
{
|
||||||
Widget->setParent(nullptr);
|
Widget->setParent(nullptr);
|
||||||
if (index < 0)
|
if (index < 0)
|
||||||
{
|
{
|
||||||
index = m_Widgets.count();
|
index = m_Widgets.count();
|
||||||
@ -127,7 +127,7 @@ public:
|
|||||||
auto LayoutItem = m_ParentLayout->takeAt(1);
|
auto LayoutItem = m_ParentLayout->takeAt(1);
|
||||||
if (LayoutItem)
|
if (LayoutItem)
|
||||||
{
|
{
|
||||||
LayoutItem->widget()->setParent(nullptr);
|
LayoutItem->widget()->setParent(nullptr);
|
||||||
}
|
}
|
||||||
m_CurrentWidget = nullptr;
|
m_CurrentWidget = nullptr;
|
||||||
m_CurrentIndex = -1;
|
m_CurrentIndex = -1;
|
||||||
@ -167,7 +167,7 @@ public:
|
|||||||
auto LayoutItem = m_ParentLayout->takeAt(1);
|
auto LayoutItem = m_ParentLayout->takeAt(1);
|
||||||
if (LayoutItem)
|
if (LayoutItem)
|
||||||
{
|
{
|
||||||
LayoutItem->widget()->setParent(nullptr);
|
LayoutItem->widget()->setParent(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
m_ParentLayout->addWidget(next);
|
m_ParentLayout->addWidget(next);
|
||||||
@ -315,9 +315,9 @@ void DockAreaWidgetPrivate::createTitleBar()
|
|||||||
{
|
{
|
||||||
TitleBar = new CDockAreaTitleBar(_this);
|
TitleBar = new CDockAreaTitleBar(_this);
|
||||||
Layout->addWidget(TitleBar);
|
Layout->addWidget(TitleBar);
|
||||||
QObject::connect(tabBar(), &CDockAreaTabBar::tabCloseRequested, _this, &CDockAreaWidget::onTabCloseRequested);
|
QObject::connect(tabBar(), &CDockAreaTabBar::tabCloseRequested, _this, &CDockAreaWidget::onTabCloseRequested);
|
||||||
QObject::connect(TitleBar, &CDockAreaTitleBar::tabBarClicked, _this, &CDockAreaWidget::setCurrentIndex);
|
QObject::connect(TitleBar, &CDockAreaTitleBar::tabBarClicked, _this, &CDockAreaWidget::setCurrentIndex);
|
||||||
QObject::connect(tabBar(), &CDockAreaTabBar::tabMoved, _this, &CDockAreaWidget::reorderDockWidget);
|
QObject::connect(tabBar(), &CDockAreaTabBar::tabMoved, _this, &CDockAreaWidget::reorderDockWidget);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -127,7 +127,7 @@ public:
|
|||||||
QGridLayout* Layout = nullptr;
|
QGridLayout* Layout = nullptr;
|
||||||
QSplitter* RootSplitter = nullptr;
|
QSplitter* RootSplitter = nullptr;
|
||||||
bool isFloating = false;
|
bool isFloating = false;
|
||||||
CDockAreaWidget* LastAddedAreaCache[5];
|
CDockAreaWidget* LastAddedAreaCache[5];
|
||||||
int VisibleDockAreaCount = -1;
|
int VisibleDockAreaCount = -1;
|
||||||
CDockAreaWidget* TopLevelDockArea = nullptr;
|
CDockAreaWidget* TopLevelDockArea = nullptr;
|
||||||
|
|
||||||
@ -266,7 +266,7 @@ public:
|
|||||||
/**
|
/**
|
||||||
* Helper function for creation of new splitter
|
* Helper function for creation of new splitter
|
||||||
*/
|
*/
|
||||||
CDockSplitter* newSplitter(Qt::Orientation orientation, QWidget* parent = nullptr)
|
CDockSplitter* newSplitter(Qt::Orientation orientation, QWidget* parent = nullptr)
|
||||||
{
|
{
|
||||||
CDockSplitter* s = new CDockSplitter(orientation, parent);
|
CDockSplitter* s = new CDockSplitter(orientation, parent);
|
||||||
s->setOpaqueResize(DockManager->configFlags().testFlag(CDockManager::OpaqueSplitterResize));
|
s->setOpaqueResize(DockManager->configFlags().testFlag(CDockManager::OpaqueSplitterResize));
|
||||||
@ -290,7 +290,7 @@ public:
|
|||||||
DockContainerWidgetPrivate::DockContainerWidgetPrivate(CDockContainerWidget* _public) :
|
DockContainerWidgetPrivate::DockContainerWidgetPrivate(CDockContainerWidget* _public) :
|
||||||
_this(_public)
|
_this(_public)
|
||||||
{
|
{
|
||||||
std::fill(std::begin(LastAddedAreaCache),std::end(LastAddedAreaCache), nullptr);
|
std::fill(std::begin(LastAddedAreaCache),std::end(LastAddedAreaCache), nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -540,10 +540,10 @@ void DockContainerWidgetPrivate::appendDockAreas(const QList<CDockAreaWidget*> N
|
|||||||
DockAreas.append(NewDockAreas);
|
DockAreas.append(NewDockAreas);
|
||||||
for (auto DockArea : NewDockAreas)
|
for (auto DockArea : NewDockAreas)
|
||||||
{
|
{
|
||||||
QObject::connect(DockArea,
|
QObject::connect(DockArea,
|
||||||
&CDockAreaWidget::viewToggled,
|
&CDockAreaWidget::viewToggled,
|
||||||
_this,
|
_this,
|
||||||
std::bind(&DockContainerWidgetPrivate::onDockAreaViewToggled, this, std::placeholders::_1));
|
std::bind(&DockContainerWidgetPrivate::onDockAreaViewToggled, this, std::placeholders::_1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -613,7 +613,7 @@ bool DockContainerWidgetPrivate::restoreSplitter(QXmlStreamReader& s,
|
|||||||
QSplitter* Splitter = nullptr;
|
QSplitter* Splitter = nullptr;
|
||||||
if (!Testing)
|
if (!Testing)
|
||||||
{
|
{
|
||||||
Splitter = newSplitter(static_cast<Qt::Orientation>(Orientation));
|
Splitter = newSplitter(static_cast<Qt::Orientation>(Orientation));
|
||||||
}
|
}
|
||||||
bool Visible = false;
|
bool Visible = false;
|
||||||
QList<int> Sizes;
|
QList<int> Sizes;
|
||||||
@ -1054,7 +1054,7 @@ void CDockContainerWidget::removeDockArea(CDockAreaWidget* area)
|
|||||||
|
|
||||||
// Remove are from parent splitter and recursively hide tree of parent
|
// Remove are from parent splitter and recursively hide tree of parent
|
||||||
// splitters if it has no visible content
|
// splitters if it has no visible content
|
||||||
area->setParent(nullptr);
|
area->setParent(nullptr);
|
||||||
internal::hideEmptyParentSplitters(Splitter);
|
internal::hideEmptyParentSplitters(Splitter);
|
||||||
|
|
||||||
// If splitter has more than 1 widgets, we are finished and can leave
|
// If splitter has more than 1 widgets, we are finished and can leave
|
||||||
@ -1085,7 +1085,7 @@ void CDockContainerWidget::removeDockArea(CDockAreaWidget* area)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// We replace the superfluous RootSplitter with the ChildSplitter
|
// We replace the superfluous RootSplitter with the ChildSplitter
|
||||||
ChildSplitter->setParent(nullptr);
|
ChildSplitter->setParent(nullptr);
|
||||||
QLayoutItem* li = d->Layout->replaceWidget(Splitter, ChildSplitter);
|
QLayoutItem* li = d->Layout->replaceWidget(Splitter, ChildSplitter);
|
||||||
d->RootSplitter = ChildSplitter;
|
d->RootSplitter = ChildSplitter;
|
||||||
delete li;
|
delete li;
|
||||||
@ -1126,14 +1126,14 @@ CDockAreaWidget* CDockContainerWidget::dockAreaAt(const QPoint& GlobalPos) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//============================================================================
|
//============================================================================
|
||||||
CDockAreaWidget* CDockContainerWidget::dockArea(int Index) const
|
CDockAreaWidget* CDockContainerWidget::dockArea(int Index) const
|
||||||
{
|
{
|
||||||
return (Index < dockAreaCount()) ? d->DockAreas[Index] : nullptr;
|
return (Index < dockAreaCount()) ? d->DockAreas[Index] : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -72,7 +72,7 @@ struct DockManagerPrivate
|
|||||||
QMenu* ViewMenu;
|
QMenu* ViewMenu;
|
||||||
CDockManager::eViewMenuInsertionOrder MenuInsertionOrder = CDockManager::MenuAlphabeticallySorted;
|
CDockManager::eViewMenuInsertionOrder MenuInsertionOrder = CDockManager::MenuAlphabeticallySorted;
|
||||||
bool RestoringState = false;
|
bool RestoringState = false;
|
||||||
CDockManager::ConfigFlags ConfigFlags = CDockManager::DefaultConfig;
|
CDockManager::ConfigFlags ConfigFlags = CDockManager::DefaultConfig;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Private data constructor
|
* Private data constructor
|
||||||
|
@ -44,7 +44,7 @@ namespace internal
|
|||||||
void replaceSplitterWidget(QSplitter* Splitter, QWidget* From, QWidget* To)
|
void replaceSplitterWidget(QSplitter* Splitter, QWidget* From, QWidget* To)
|
||||||
{
|
{
|
||||||
int index = Splitter->indexOf(From);
|
int index = Splitter->indexOf(From);
|
||||||
From->setParent(nullptr);
|
From->setParent(nullptr);
|
||||||
Splitter->insertWidget(index, To);
|
Splitter->insertWidget(index, To);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -90,18 +90,6 @@ void hideEmptyParentSplitters(CDockSplitter* Splitter)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
CDockInsertParam::CDockInsertParam(Qt::Orientation orient, bool bottomRight)
|
|
||||||
: QPair<Qt::Orientation, bool>(orient,bottomRight)
|
|
||||||
{}
|
|
||||||
|
|
||||||
CDockInsertParam::CDockInsertParam(const CDockInsertParam &p)
|
|
||||||
: QPair<Qt::Orientation, bool>(p)
|
|
||||||
{}
|
|
||||||
|
|
||||||
CDockInsertParam::CDockInsertParam(CDockInsertParam &&p)
|
|
||||||
: QPair<Qt::Orientation, bool>(std::move(p))
|
|
||||||
{}
|
|
||||||
|
|
||||||
} // namespace internal
|
} // namespace internal
|
||||||
} // namespace ads
|
} // namespace ads
|
||||||
|
|
||||||
|
@ -110,10 +110,7 @@ void hideEmptyParentSplitters(CDockSplitter* FirstParentSplitter);
|
|||||||
class CDockInsertParam : public QPair<Qt::Orientation, bool>
|
class CDockInsertParam : public QPair<Qt::Orientation, bool>
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
CDockInsertParam() = default;
|
using QPair::QPair;
|
||||||
CDockInsertParam(Qt::Orientation orient, bool append);
|
|
||||||
CDockInsertParam(const CDockInsertParam &p);
|
|
||||||
CDockInsertParam(CDockInsertParam &&p);
|
|
||||||
Qt::Orientation orientation() const {return this->first;}
|
Qt::Orientation orientation() const {return this->first;}
|
||||||
bool append() const {return this->second;}
|
bool append() const {return this->second;}
|
||||||
int insertOffset() const {return append() ? 1 : 0;}
|
int insertOffset() const {return append() ? 1 : 0;}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
ADS_OUT_ROOT = $${OUT_PWD}/..
|
ADS_OUT_ROOT = $${OUT_PWD}/..
|
||||||
CONFIG += c++11
|
CONFIG += c++14
|
||||||
CONFIG += debug_and_release
|
CONFIG += debug_and_release
|
||||||
TARGET = $$qtLibraryTarget(qtadvanceddocking)
|
TARGET = $$qtLibraryTarget(qtadvanceddocking)
|
||||||
DEFINES += QT_DEPRECATED_WARNINGS
|
DEFINES += QT_DEPRECATED_WARNINGS
|
||||||
|
Loading…
Reference in New Issue
Block a user