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)
494494 auto * DockWidget = dockWidget (Index);
495495 if (DockWidget->features ().testFlag (CDockWidget::DockWidgetDeleteOnClose))
496496 {
497- DockWidget->deleteDockWidget ();
497+ // DockWidget->deleteDockWidget();
498+ DockWidget->closeDockWidget ();
498499 }
499500 else
500501 {
Original file line number Diff line number Diff line change 3131#include " DockWidgetTab.h"
3232#include " DockWidget.h"
3333
34+ #include < iostream>
35+
3436#include < QBoxLayout>
3537#include < QAction>
3638#include < QSplitter>
@@ -745,6 +747,42 @@ void CDockWidget::deleteDockWidget()
745747}
746748
747749
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+
748786} // namespace ads
749787
750788// ---------------------------------------------------------------------------
Original file line number Diff line number Diff line change @@ -135,6 +135,12 @@ private slots:
135135 */
136136 void toggleViewInternal (bool Open);
137137
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+
138144public:
139145 using Super = QFrame;
140146
@@ -426,6 +432,12 @@ public slots:
426432 */
427433 void deleteDockWidget ();
428434
435+ /* *
436+ * Closes the dock widget
437+ */
438+ void closeDockWidget ();
439+
440+
429441signals:
430442 /* *
431443 * 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:
133133 void setText (const QString& title);
134134
135135 /* *
136- * This function returns true if the assigned dock widget is closeable
136+ * This function returns true if the assigned dock widget is closable
137137 */
138138 bool isClosable () const ;
139139
You can’t perform that action at this time.
0 commit comments