Skip to content

Commit bed99ea

Browse files
DockManager configFlags functions are now static because the configuration flags are global, added support for QToolButton as tab close button
1 parent dae677e commit bed99ea

File tree

6 files changed

+18
-11
lines changed

6 files changed

+18
-11
lines changed

demo/MainWindow.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,10 @@ CMainWindow::CMainWindow(QWidget *parent) :
299299
d->ui.setupUi(this);
300300
d->createActions();
301301

302+
// uncomment the following line if the tab close button should be
303+
// a QToolButton instead of a QPushButton
304+
//CDockManager::setConfigFlags(CDockManager::configFlags() | CDockManager::TabCloseButtonIsToolButton);
305+
302306
// Now create the dock manager and its content
303307
d->DockManager = new CDockManager(this);
304308

src/DockAreaTitleBar.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ struct DockAreaTitleBarPrivate
9595
*/
9696
bool testConfigFlag(CDockManager::eConfigFlag Flag) const
9797
{
98-
return DockArea->dockManager()->configFlags().testFlag(Flag);
98+
return CDockManager::configFlags().testFlag(Flag);
9999
}
100100

101101
/**

src/DockContainerWidget.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ class DockContainerWidgetPrivate
269269
CDockSplitter* newSplitter(Qt::Orientation orientation, QWidget* parent = nullptr)
270270
{
271271
CDockSplitter* s = new CDockSplitter(orientation, parent);
272-
s->setOpaqueResize(DockManager->configFlags().testFlag(CDockManager::OpaqueSplitterResize));
272+
s->setOpaqueResize(CDockManager::configFlags().testFlag(CDockManager::OpaqueSplitterResize));
273273
s->setChildrenCollapsible(false);
274274
return s;
275275
}

src/DockManager.cpp

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@
5656

5757
namespace ads
5858
{
59+
static CDockManager::ConfigFlags StaticConfigFlags = CDockManager::DefaultConfig;
60+
5961
/**
6062
* Private data class of CDockManager class (pimpl)
6163
*/
@@ -72,7 +74,6 @@ struct DockManagerPrivate
7274
QMenu* ViewMenu;
7375
CDockManager::eViewMenuInsertionOrder MenuInsertionOrder = CDockManager::MenuAlphabeticallySorted;
7476
bool RestoringState = false;
75-
CDockManager::ConfigFlags ConfigFlags = CDockManager::DefaultConfig;
7677

7778
/**
7879
* Private data constructor
@@ -498,7 +499,8 @@ QByteArray CDockManager::saveState(int version) const
498499
{
499500
QByteArray xmldata;
500501
QXmlStreamWriter s(&xmldata);
501-
s.setAutoFormatting(d->ConfigFlags.testFlag(XmlAutoFormattingEnabled));
502+
auto ConfigFlags = CDockManager::configFlags();
503+
s.setAutoFormatting(ConfigFlags.testFlag(XmlAutoFormattingEnabled));
502504
s.writeStartDocument();
503505
s.writeStartElement("QtAdvancedDockingSystem");
504506
s.writeAttribute("Version", QString::number(version));
@@ -511,7 +513,8 @@ QByteArray CDockManager::saveState(int version) const
511513
s.writeEndElement();
512514
s.writeEndDocument();
513515

514-
return d->ConfigFlags.testFlag(XmlCompressionEnabled) ? qCompress(xmldata, 9) : xmldata;
516+
return ConfigFlags.testFlag(XmlCompressionEnabled)
517+
? qCompress(xmldata, 9) : xmldata;
515518
}
516519

517520

@@ -762,16 +765,16 @@ int CDockManager::startDragDistance()
762765

763766

764767
//===========================================================================
765-
CDockManager::ConfigFlags CDockManager::configFlags() const
768+
CDockManager::ConfigFlags CDockManager::configFlags()
766769
{
767-
return d->ConfigFlags;
770+
return StaticConfigFlags;
768771
}
769772

770773

771774
//===========================================================================
772775
void CDockManager::setConfigFlags(const ConfigFlags Flags)
773776
{
774-
d->ConfigFlags = Flags;
777+
StaticConfigFlags = Flags;
775778
}
776779

777780

src/DockManager.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,13 +151,13 @@ class ADS_EXPORT CDockManager : public CDockContainerWidget
151151
/**
152152
* This function returns the global configuration flags
153153
*/
154-
ConfigFlags configFlags() const;
154+
static ConfigFlags configFlags();
155155

156156
/**
157157
* Sets the global configuration flags for the whole docking system.
158158
* Call this function before you create your first dock widget.
159159
*/
160-
void setConfigFlags(const ConfigFlags Flags);
160+
static void setConfigFlags(const ConfigFlags Flags);
161161

162162
/**
163163
* Adds dockwidget into the given area.

src/DockWidgetTab.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ struct DockWidgetTabPrivate
119119
*/
120120
bool testConfigFlag(CDockManager::eConfigFlag Flag) const
121121
{
122-
return DockArea->dockManager()->configFlags().testFlag(Flag);
122+
return CDockManager::configFlags().testFlag(Flag);
123123
}
124124

125125
/**

0 commit comments

Comments
 (0)