51
51
#include < QComboBox>
52
52
#include < QInputDialog>
53
53
#include < QRubberBand>
54
+ #include < QPlainTextEdit>
54
55
55
56
#include < QMap>
56
57
#include < QElapsedTimer>
@@ -115,6 +116,18 @@ static void appendFeaturStringToWindowTitle(ads::CDockWidget* DockWidget)
115
116
+ QString (" (%1)" ).arg (featuresString (DockWidget)));
116
117
}
117
118
119
+ /* *
120
+ * Helper function to create an SVG icon
121
+ */
122
+ static QIcon svgIcon (const QString& File)
123
+ {
124
+ // This is a workaround, because because in item views SVG icons are not
125
+ // properly scaled an look blurry or pixelate
126
+ QIcon SvgIcon (File);
127
+ SvgIcon.addPixmap (SvgIcon.pixmap (92 ));
128
+ return SvgIcon;
129
+ }
130
+
118
131
119
132
// ============================================================================
120
133
static ads::CDockWidget* createCalendarDockWidget (QMenu* ViewMenu)
@@ -124,6 +137,7 @@ static ads::CDockWidget* createCalendarDockWidget(QMenu* ViewMenu)
124
137
ads::CDockWidget* DockWidget = new ads::CDockWidget (QString (" Calendar %1" ).arg (CalendarCount++));
125
138
DockWidget->setWidget (w);
126
139
DockWidget->setToggleViewActionMode (ads::CDockWidget::ActionModeShow);
140
+ DockWidget->setIcon (svgIcon (" :/adsdemo/images/date_range.svg" ));
127
141
ViewMenu->addAction (DockWidget->toggleViewAction ());
128
142
return DockWidget;
129
143
}
@@ -199,7 +213,6 @@ void MainWindowPrivate::createContent()
199
213
// Test container docking
200
214
QMenu* ViewMenu = ui.menuView ;
201
215
auto DockWidget = createCalendarDockWidget (ViewMenu);
202
- DockWidget->setIcon (_this->style ()->standardIcon (QStyle::SP_DialogOpenButton));
203
216
DockWidget->setFeature (ads::CDockWidget::DockWidgetClosable, false );
204
217
DockManager->addDockWidget (ads::LeftDockWidgetArea, DockWidget);
205
218
DockManager->addDockWidget (ads::LeftDockWidgetArea, createLongTextLabelDockWidget (ViewMenu));
@@ -229,17 +242,9 @@ void MainWindowPrivate::createContent()
229
242
DockManager->addDockWidget (ads::RightDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), RighDockArea);
230
243
DockManager->addDockWidget (ads::CenterDockWidgetArea, createLongTextLabelDockWidget (ViewMenu), BottomDockArea);
231
244
232
- // Test creation of floating dock widgets
233
- DockWidget = createFileSystemTreeDockWidget (ViewMenu);
234
- auto FloatingWidget = DockManager->addDockWidgetFloating (DockWidget);
235
- FloatingWidget->move (QPoint (20 , 20 ));
236
- FloatingWidget = DockManager->addDockWidgetFloating (createLongTextLabelDockWidget (ViewMenu));
237
- FloatingWidget->move (QPoint (100 , 100 ));
238
-
239
245
auto Action = ui.menuView ->addAction (QString (" Set %1 floating" ).arg (DockWidget->windowTitle ()));
240
246
DockWidget->connect (Action, SIGNAL (triggered ()), SLOT (setFloating ()));
241
247
242
-
243
248
for (auto DockWidget : DockManager->dockWidgetsMap ())
244
249
{
245
250
_this->connect (DockWidget, SIGNAL (viewToggled (bool )), SLOT (onViewToggled (bool )));
@@ -251,11 +256,13 @@ void MainWindowPrivate::createContent()
251
256
void MainWindowPrivate::createActions ()
252
257
{
253
258
ui.toolBar ->addAction (ui.actionSaveState );
254
- ui.actionSaveState ->setIcon (_this->style ()->standardIcon (QStyle::SP_DialogSaveButton));
259
+ ui.toolBar ->setToolButtonStyle (Qt::ToolButtonTextUnderIcon);
260
+ ui.actionSaveState ->setIcon (svgIcon (" :/adsdemo/images/save.svg" ));
255
261
ui.toolBar ->addAction (ui.actionRestoreState );
256
- ui.actionRestoreState ->setIcon (_this-> style ()-> standardIcon (QStyle::SP_DialogOpenButton ));
262
+ ui.actionRestoreState ->setIcon (svgIcon ( " :/adsdemo/images/restore.svg " ));
257
263
258
- SavePerspectiveAction = new QAction (" Save Perspective" , _this);
264
+ SavePerspectiveAction = new QAction (" Create Perspective" , _this);
265
+ SavePerspectiveAction->setIcon (svgIcon (" :/adsdemo/images/picture_in_picture.svg" ));
259
266
_this->connect (SavePerspectiveAction, SIGNAL (triggered ()), SLOT (savePerspective ()));
260
267
PerspectiveListAction = new QWidgetAction (_this);
261
268
PerspectiveComboBox = new QComboBox (_this);
@@ -265,6 +272,11 @@ void MainWindowPrivate::createActions()
265
272
ui.toolBar ->addSeparator ();
266
273
ui.toolBar ->addAction (PerspectiveListAction);
267
274
ui.toolBar ->addAction (SavePerspectiveAction);
275
+
276
+ QAction* a = ui.toolBar ->addAction (" Create Editor" );
277
+ a->setToolTip (" Creates floating dynamic dockable editor windows that are deleted on close" );
278
+ a->setIcon (svgIcon (" :/adsdemo/images/note_add.svg" ));
279
+ _this->connect (a, SIGNAL (triggered ()), SLOT (createEditor ()));
268
280
}
269
281
270
282
@@ -410,3 +422,23 @@ void CMainWindow::onViewToggled(bool Open)
410
422
qDebug () << DockWidget->objectName () << " viewToggled(" << Open << " )" ;
411
423
}
412
424
425
+
426
+ // ============================================================================
427
+ void CMainWindow::createEditor ()
428
+ {
429
+ static int EditorCount = 0 ;
430
+ QPlainTextEdit* w = new QPlainTextEdit ();
431
+ w->setPlaceholderText (" This is an editor. If you close the editor, it will be "
432
+ " deleted. Enter your text here." );
433
+ w->setStyleSheet (" border: none" );
434
+ ads::CDockWidget* DockWidget = new ads::CDockWidget (QString (" Editor %1" ).arg (EditorCount++));
435
+ DockWidget->setWidget (w);
436
+ DockWidget->setToggleViewActionMode (ads::CDockWidget::ActionModeShow);
437
+ DockWidget->setIcon (svgIcon (" :/adsdemo/images/edit.svg" ));
438
+ DockWidget->setFeature (ads::CDockWidget::DockWidgetDeleteOnClose, true );
439
+ d->ui .menuView ->addAction (DockWidget->toggleViewAction ());
440
+
441
+ auto FloatingWidget = d->DockManager ->addDockWidgetFloating (DockWidget);
442
+ FloatingWidget->move (QPoint (20 , 20 ));
443
+ }
444
+
0 commit comments