Skip to content

Commit be86a77

Browse files
Implemented custom close handling for dynamically created image viewers
1 parent eda6104 commit be86a77

File tree

2 files changed

+17
-3
lines changed

2 files changed

+17
-3
lines changed

demo/MainWindow.cpp

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -873,6 +873,20 @@ void CMainWindow::onEditorCloseRequested()
873873
}
874874

875875

876+
//============================================================================
877+
void CMainWindow::onImageViewerCloseRequested()
878+
{
879+
auto DockWidget = qobject_cast<ads::CDockWidget*>(sender());
880+
int Result = QMessageBox::question(this, "Close Image Viewer", QString("%1 "
881+
"contains unsaved changes? Would you like to close it?")
882+
.arg(DockWidget->windowTitle()));
883+
if (QMessageBox::Yes == Result)
884+
{
885+
DockWidget->closeDockWidget();
886+
}
887+
}
888+
889+
876890
//============================================================================
877891
void CMainWindow::createTable()
878892
{
@@ -931,9 +945,8 @@ void CMainWindow::createImageViewer()
931945
DockWidget->setFeature(ads::CDockWidget::DockWidgetForceCloseWithArea, true);
932946
DockWidget->setFeature(ads::CDockWidget::CustomCloseHandling, true);
933947
DockWidget->resize(QSize(640, 480));
934-
connect(DockWidget, &ads::CDockWidget::closeRequested, [this](){
935-
qDebug() << "ImageViewer close requested";
936-
});
948+
connect(DockWidget, &ads::CDockWidget::closeRequested, this,
949+
&CMainWindow::onImageViewerCloseRequested);
937950

938951
if (a->text().startsWith("Floating"))
939952
{

demo/MainWindow.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ private slots:
6363
void createEditor();
6464
void createTable();
6565
void onEditorCloseRequested();
66+
void onImageViewerCloseRequested();
6667
void showStatusDialog();
6768
void toggleDockWidgetWindowTitle();
6869
void applyVsStyle();

0 commit comments

Comments
 (0)