Add experimental MDI support
This commit is contained in:
@@ -29,6 +29,11 @@
|
||||
#include <stdlib.h>
|
||||
#include <time.h>
|
||||
|
||||
#if defined(DOCKS_DEVELOPER_MODE)
|
||||
// Block just here for my own debugging
|
||||
# include "../../src/private/MDILayoutWidget_p.h"
|
||||
#endif
|
||||
|
||||
// clazy:excludeall=qstring-allocations,ctor-missing-parent-argument,detaching-member
|
||||
|
||||
static MyWidget *newMyWidget()
|
||||
@@ -134,6 +139,19 @@ void MyMainWindow::createDockWidgets()
|
||||
for (int i = 0; i < numDockWidgets; i++)
|
||||
m_dockwidgets << newDockWidget();
|
||||
|
||||
#if defined(DOCKS_DEVELOPER_MODE)
|
||||
// This block is just for my testing
|
||||
if (isMDI()) {
|
||||
auto mdiArea = qobject_cast<KDDockWidgets::MDILayoutWidget*>(layoutWidget());
|
||||
QPoint pt(10, 10);
|
||||
for (KDDockWidgets::DockWidgetBase *dw : qAsConst(m_dockwidgets)) {
|
||||
mdiArea->addDockWidget(dw, pt);
|
||||
pt += QPoint(40, 40);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
// MainWindow::addDockWidget() attaches a dock widget to the main window:
|
||||
addDockWidget(m_dockwidgets.at(0), KDDockWidgets::Location_OnTop);
|
||||
|
||||
@@ -126,11 +126,13 @@ int main(int argc, char **argv)
|
||||
QCommandLineOption noParentForFloating("no-parent-for-floating", QCoreApplication::translate("main", "(internal) FloatingWindows won't have a parent"));
|
||||
QCommandLineOption nativeTitleBar("native-title-bar", QCoreApplication::translate("main", "(internal) FloatingWindows a native title bar"));
|
||||
QCommandLineOption noDropIndicators("no-drop-indicators", QCoreApplication::translate("main", "(internal) Don't use any drop indicators"));
|
||||
QCommandLineOption mdiLayout("mdi-layout", QCoreApplication::translate("main", "Main Window will use an MDI layout instead")); // TODO: Expose once stable
|
||||
|
||||
parser.addOption(noQtTool);
|
||||
parser.addOption(noParentForFloating);
|
||||
parser.addOption(nativeTitleBar);
|
||||
parser.addOption(noDropIndicators);
|
||||
parser.addOption(mdiLayout);
|
||||
|
||||
# if defined(Q_OS_WIN)
|
||||
QCommandLineOption noAeroSnap("no-aero-snap", QCoreApplication::translate("main", "(internal) Disable AeroSnap"));
|
||||
@@ -160,6 +162,9 @@ int main(int argc, char **argv)
|
||||
options = parser.isSet(centralFrame) ? MainWindowOption_HasCentralFrame
|
||||
: MainWindowOption_None;
|
||||
|
||||
if (parser.isSet(mdiLayout))
|
||||
options |= MainWindowOption_MDI; // TODO: Move outside of developer mode once stable
|
||||
|
||||
if (parser.isSet(noQtTool))
|
||||
internalFlags |= KDDockWidgets::Config::InternalFlag_DontUseQtToolWindowsForFloatingWindows;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user