53
53
#include < QRubberBand>
54
54
#include < QPlainTextEdit>
55
55
#include < QTableWidget>
56
+ #include < QScreen>
57
+ #include < QStyle>
56
58
#include < QMessageBox>
57
59
60
+ #ifdef Q_OS_WIN
61
+ #include < QAxWidget>
62
+ #endif
63
+
58
64
#include < QMap>
59
65
#include < QElapsedTimer>
60
66
@@ -202,6 +208,20 @@ static ads::CDockWidget* createTableWidget(QMenu* ViewMenu)
202
208
}
203
209
204
210
211
+ #ifdef Q_OS_WIN
212
+ // ============================================================================
213
+ static ads::CDockWidget* createActiveXWidget (QMenu* ViewMenu, QWidget* parent = nullptr )
214
+ {
215
+ static int ActiveXCount = 0 ;
216
+ QAxWidget* w = new QAxWidget (" {6bf52a52-394a-11d3-b153-00c04f79faa6}" , parent);
217
+ ads::CDockWidget* DockWidget = new ads::CDockWidget (QString (" Active X %1" ).arg (ActiveXCount++));
218
+ DockWidget->setWidget (w);
219
+ ViewMenu->addAction (DockWidget->toggleViewAction ());
220
+ return DockWidget;
221
+ }
222
+ #endif
223
+
224
+
205
225
// ============================================================================
206
226
/* *
207
227
* Private data class pimpl
@@ -281,12 +301,19 @@ void MainWindowPrivate::createContent()
281
301
auto RighDockArea = DockManager->addDockWidget (ads::RightDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), TopDockArea);
282
302
DockManager->addDockWidget (ads::TopDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), RighDockArea);
283
303
auto BottomDockArea = DockManager->addDockWidget (ads::BottomDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), RighDockArea);
284
- DockManager->addDockWidget (ads::RightDockWidgetArea , createLongTextLabelDockWidget (ViewMenu), RighDockArea);
304
+ DockManager->addDockWidget (ads::CenterDockWidgetArea , createLongTextLabelDockWidget (ViewMenu), RighDockArea);
285
305
DockManager->addDockWidget (ads::CenterDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), BottomDockArea);
286
306
287
307
auto Action = ui.menuView ->addAction (QString (" Set %1 floating" ).arg (DockWidget->windowTitle ()));
288
308
DockWidget->connect (Action, SIGNAL (triggered ()), SLOT (setFloating ()));
289
309
310
+ #ifdef Q_OS_WIN
311
+ if (!DockManager->configFlags ().testFlag (ads::CDockManager::OpaqueUndocking))
312
+ {
313
+ DockManager->addDockWidget (ads::CenterDockWidgetArea, createActiveXWidget (ViewMenu), RighDockArea);
314
+ }
315
+ #endif
316
+
290
317
for (auto DockWidget : DockManager->dockWidgetsMap ())
291
318
{
292
319
_this->connect (DockWidget, SIGNAL (viewToggled (bool )), SLOT (onViewToggled (bool )));
@@ -384,9 +411,9 @@ CMainWindow::CMainWindow(QWidget *parent) :
384
411
// not change if the visibility of the close button changes
385
412
// CDockManager::setConfigFlag(CDockManager::RetainTabSizeWhenCloseButtonHidden, true);
386
413
387
- // uncomment the following line if you want to use non opaque undocking and splitter
388
- // movements
389
- // CDockManager::setConfigFlags(CDockManager::DefaultNonOpaqueConfig);
414
+ // comment the following line if you want to use opaque undocking and
415
+ // opaque splitter resizing
416
+ CDockManager::setConfigFlags (CDockManager::DefaultNonOpaqueConfig);
390
417
391
418
// Now create the dock manager and its content
392
419
d->DockManager = new CDockManager (this );
@@ -399,8 +426,12 @@ CMainWindow::CMainWindow(QWidget *parent) :
399
426
d->DockManager , SLOT (openPerspective (const QString&)));
400
427
401
428
d->createContent ();
402
- // Default window geometry
429
+ // Default window geometry - center on screen
403
430
resize (1280 , 720 );
431
+ setGeometry (QStyle::alignedRect (
432
+ Qt::LeftToRight, Qt::AlignCenter, frameSize (),
433
+ QGuiApplication::primaryScreen ()->availableGeometry ()
434
+ ));
404
435
405
436
// d->restoreState();
406
437
d->restorePerspectives ();
0 commit comments