File tree Expand file tree Collapse file tree 4 files changed +53
-2
lines changed Expand file tree Collapse file tree 4 files changed +53
-2
lines changed Original file line number Diff line number Diff line change @@ -494,7 +494,8 @@ void CDockAreaWidget::onTabCloseRequested(int Index)
494
494
auto * DockWidget = dockWidget (Index);
495
495
if (DockWidget->features ().testFlag (CDockWidget::DockWidgetDeleteOnClose))
496
496
{
497
- DockWidget->deleteDockWidget ();
497
+ // DockWidget->deleteDockWidget();
498
+ DockWidget->closeDockWidget ();
498
499
}
499
500
else
500
501
{
Original file line number Diff line number Diff line change 31
31
#include " DockWidgetTab.h"
32
32
#include " DockWidget.h"
33
33
34
+ #include < iostream>
35
+
34
36
#include < QBoxLayout>
35
37
#include < QAction>
36
38
#include < QSplitter>
@@ -745,6 +747,42 @@ void CDockWidget::deleteDockWidget()
745
747
}
746
748
747
749
750
+ // ============================================================================
751
+ bool CDockWidget::handleCloseRequest ()
752
+ {
753
+ std::cout << " CDockWidget::handleCloseRequest()" << std::endl;
754
+ return true ;
755
+ }
756
+
757
+
758
+ // ============================================================================
759
+ void CDockWidget::closeDockWidget ()
760
+ {
761
+ closeDockWidgetInternal ();
762
+ }
763
+
764
+
765
+ // ============================================================================
766
+ bool CDockWidget::closeDockWidgetInternal ()
767
+ {
768
+ if (features ().testFlag (CDockWidget::DockWidgetDeleteOnClose))
769
+ {
770
+ if (handleCloseRequest ())
771
+ {
772
+ deleteDockWidget ();
773
+ return true ;
774
+ }
775
+ }
776
+ else
777
+ {
778
+ toggleView (false );
779
+ return true ;
780
+ }
781
+
782
+ return false ;
783
+ }
784
+
785
+
748
786
} // namespace ads
749
787
750
788
// ---------------------------------------------------------------------------
Original file line number Diff line number Diff line change @@ -135,6 +135,12 @@ private slots:
135
135
*/
136
136
void toggleViewInternal (bool Open);
137
137
138
+ /* *
139
+ * Internal close dock widget implementation.
140
+ * The function returns true if the dock widget has been closed or hidden
141
+ */
142
+ bool closeDockWidgetInternal ();
143
+
138
144
public:
139
145
using Super = QFrame;
140
146
@@ -426,6 +432,12 @@ public slots:
426
432
*/
427
433
void deleteDockWidget ();
428
434
435
+ /* *
436
+ * Closes the dock widget
437
+ */
438
+ void closeDockWidget ();
439
+
440
+
429
441
signals:
430
442
/* *
431
443
* This signal is emitted if the dock widget is opened or closed
Original file line number Diff line number Diff line change @@ -133,7 +133,7 @@ private slots:
133
133
void setText (const QString& title);
134
134
135
135
/* *
136
- * This function returns true if the assigned dock widget is closeable
136
+ * This function returns true if the assigned dock widget is closable
137
137
*/
138
138
bool isClosable () const ;
139
139
You can’t perform that action at this time.
0 commit comments