diff --git a/src/gui/aboutdialog.cpp b/src/gui/aboutdialog.cpp
index 9f1ca6b77..682dadc3d 100644
--- a/src/gui/aboutdialog.cpp
+++ b/src/gui/aboutdialog.cpp
@@ -47,7 +47,6 @@ AboutDialog::AboutDialog(QWidget *parent)
, m_storeDialogSize(SETTINGS_KEY(u"Size"_qs))
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
// Title
m_ui->labelName->setText(QStringLiteral("qBittorrent " QBT_VERSION " (%1-bit)
").arg(QT_POINTER_SIZE * 8));
@@ -114,7 +113,6 @@ AboutDialog::AboutDialog(QWidget *parent)
m_ui->labelDBIP->setText(DBIPText);
resize(m_storeDialogSize);
- show();
}
AboutDialog::~AboutDialog()
diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp
index 11de498dc..f29c2e0d7 100644
--- a/src/gui/addnewtorrentdialog.cpp
+++ b/src/gui/addnewtorrentdialog.cpp
@@ -183,7 +183,6 @@ AddNewTorrentDialog::AddNewTorrentDialog(const BitTorrent::AddTorrentParams &inP
{
// TODO: set dialog file properties using m_torrentParams.filePriorities
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
m_ui->lblMetaLoading->setVisible(false);
m_ui->progMetaLoading->setVisible(false);
@@ -352,6 +351,7 @@ void AddNewTorrentDialog::saveState()
void AddNewTorrentDialog::show(const QString &source, const BitTorrent::AddTorrentParams &inParams, QWidget *parent)
{
auto *dlg = new AddNewTorrentDialog(inParams, parent);
+ dlg->setAttribute(Qt::WA_DeleteOnClose);
if (Net::DownloadManager::hasSupportedScheme(source))
{
diff --git a/src/gui/downloadfromurldialog.cpp b/src/gui/downloadfromurldialog.cpp
index 7bb8bac56..34ba6bd06 100644
--- a/src/gui/downloadfromurldialog.cpp
+++ b/src/gui/downloadfromurldialog.cpp
@@ -64,8 +64,6 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent)
, m_storeDialogSize(SETTINGS_KEY(u"Size"_qs))
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
- setModal(true);
m_ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Download"));
connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &DownloadFromURLDialog::downloadButtonClicked);
@@ -95,7 +93,6 @@ DownloadFromURLDialog::DownloadFromURLDialog(QWidget *parent)
m_ui->textUrls->moveCursor(QTextCursor::End);
resize(m_storeDialogSize);
- show();
}
DownloadFromURLDialog::~DownloadFromURLDialog()
diff --git a/src/gui/mainwindow.cpp b/src/gui/mainwindow.cpp
index 7140a0692..a91b7eea7 100644
--- a/src/gui/mainwindow.cpp
+++ b/src/gui/mainwindow.cpp
@@ -1124,17 +1124,29 @@ void MainWindow::on_actionAbout_triggered()
{
// About dialog
if (m_aboutDlg)
+ {
m_aboutDlg->activateWindow();
+ }
else
+ {
m_aboutDlg = new AboutDialog(this);
+ m_aboutDlg->setAttribute(Qt::WA_DeleteOnClose);
+ m_aboutDlg->show();
+ }
}
void MainWindow::on_actionStatistics_triggered()
{
if (m_statsDlg)
+ {
m_statsDlg->activateWindow();
+ }
else
+ {
m_statsDlg = new StatsDialog(this);
+ m_statsDlg->setAttribute(Qt::WA_DeleteOnClose);
+ m_statsDlg->show();
+ }
}
void MainWindow::showEvent(QShowEvent *e)
@@ -1279,6 +1291,8 @@ void MainWindow::createTorrentTriggered(const Path &path)
else
{
m_createTorrentDlg = new TorrentCreatorDialog(this, path);
+ m_createTorrentDlg->setAttribute(Qt::WA_DeleteOnClose);
+ m_createTorrentDlg->show();
}
}
@@ -1814,9 +1828,15 @@ PropertiesWidget *MainWindow::propertiesWidget() const
void MainWindow::on_actionOptions_triggered()
{
if (m_options)
+ {
m_options->activateWindow();
+ }
else
+ {
m_options = new OptionsDialog(this);
+ m_options->setAttribute(Qt::WA_DeleteOnClose);
+ m_options->open();
+ }
}
void MainWindow::on_actionTopToolBar_triggered()
@@ -1923,7 +1943,9 @@ void MainWindow::on_actionDownloadFromURL_triggered()
if (!m_downloadFromURLDialog)
{
m_downloadFromURLDialog = new DownloadFromURLDialog(this);
+ m_downloadFromURLDialog->setAttribute(Qt::WA_DeleteOnClose);
connect(m_downloadFromURLDialog.data(), &DownloadFromURLDialog::urlsReadyToBeDownloaded, this, &MainWindow::downloadFromURLList);
+ m_downloadFromURLDialog->open();
}
}
diff --git a/src/gui/optionsdialog.cpp b/src/gui/optionsdialog.cpp
index 41eaaa2af..323ba6163 100644
--- a/src/gui/optionsdialog.cpp
+++ b/src/gui/optionsdialog.cpp
@@ -32,7 +32,6 @@
#include
#include
-#include
#include
#include
#include
@@ -185,8 +184,6 @@ OptionsDialog::OptionsDialog(QWidget *parent)
{
qDebug("-> Constructing Options");
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
- setModal(true);
#if (defined(Q_OS_UNIX))
setWindowTitle(tr("Preferences"));
@@ -576,7 +573,7 @@ OptionsDialog::OptionsDialog(QWidget *parent)
m_ui->tabSelection->setCurrentRow(m_storeLastViewedPage);
resize(m_storeDialogSize);
- show();
+
// Have to be called after show(), because splitter width needed
loadSplitterState();
}
@@ -1477,15 +1474,8 @@ void OptionsDialog::applySettings()
saveOptions();
}
-void OptionsDialog::closeEvent(QCloseEvent *e)
-{
- setAttribute(Qt::WA_DeleteOnClose);
- e->accept();
-}
-
void OptionsDialog::on_buttonBox_rejected()
{
- setAttribute(Qt::WA_DeleteOnClose);
reject();
}
@@ -1667,7 +1657,6 @@ void OptionsDialog::on_addWatchedFolderButton_clicked()
return;
auto dialog = new WatchedFolderOptionsDialog({}, this);
- dialog->setModal(true);
dialog->setAttribute(Qt::WA_DeleteOnClose);
connect(dialog, &QDialog::accepted, this, [this, dialog, dir, pref]()
{
@@ -1723,7 +1712,6 @@ void OptionsDialog::editWatchedFolderOptions(const QModelIndex &index)
auto watchedFoldersModel = static_cast(m_ui->scanFoldersView->model());
auto dialog = new WatchedFolderOptionsDialog(watchedFoldersModel->folderOptions(index.row()), this);
- dialog->setModal(true);
dialog->setAttribute(Qt::WA_DeleteOnClose);
connect(dialog, &QDialog::accepted, this, [this, dialog, index, watchedFoldersModel]()
{
diff --git a/src/gui/optionsdialog.h b/src/gui/optionsdialog.h
index c03287fa1..5454f0cf5 100644
--- a/src/gui/optionsdialog.h
+++ b/src/gui/optionsdialog.h
@@ -33,7 +33,6 @@
#include "base/pathfwd.h"
#include "base/settingvalue.h"
-class QCloseEvent;
class QListWidgetItem;
class AdvancedSettings;
@@ -94,7 +93,6 @@ public slots:
private slots:
void enableProxy(int index);
void on_buttonBox_accepted();
- void closeEvent(QCloseEvent *e) override;
void on_buttonBox_rejected();
void applySettings();
void enableApplyButton();
diff --git a/src/gui/search/pluginselectdialog.cpp b/src/gui/search/pluginselectdialog.cpp
index 0e9b39d50..d90819f98 100644
--- a/src/gui/search/pluginselectdialog.cpp
+++ b/src/gui/search/pluginselectdialog.cpp
@@ -66,7 +66,6 @@ PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidg
, m_pluginManager(pluginManager)
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
m_ui->pluginsTree->setRootIsDecorated(false);
m_ui->pluginsTree->hideColumn(PLUGIN_ID);
@@ -89,7 +88,6 @@ PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidg
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFailed, this, &PluginSelectDialog::checkForUpdatesFailed);
resize(m_storeDialogSize);
- show();
}
PluginSelectDialog::~PluginSelectDialog()
@@ -346,8 +344,10 @@ void PluginSelectDialog::finishPluginUpdate()
void PluginSelectDialog::on_installButton_clicked()
{
auto *dlg = new PluginSourceDialog(this);
+ dlg->setAttribute(Qt::WA_DeleteOnClose);
connect(dlg, &PluginSourceDialog::askForLocalFile, this, &PluginSelectDialog::askForLocalPlugin);
connect(dlg, &PluginSourceDialog::askForUrl, this, &PluginSelectDialog::askForPluginUrl);
+ dlg->show();
}
void PluginSelectDialog::askForPluginUrl()
diff --git a/src/gui/search/pluginsourcedialog.cpp b/src/gui/search/pluginsourcedialog.cpp
index c56cd0b3b..65694c21c 100644
--- a/src/gui/search/pluginsourcedialog.cpp
+++ b/src/gui/search/pluginsourcedialog.cpp
@@ -39,10 +39,8 @@ PluginSourceDialog::PluginSourceDialog(QWidget *parent)
, m_storeDialogSize(SETTINGS_KEY(u"Size"_qs))
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
resize(m_storeDialogSize);
- show();
}
PluginSourceDialog::~PluginSourceDialog()
diff --git a/src/gui/search/searchwidget.cpp b/src/gui/search/searchwidget.cpp
index 34fb88c91..49f21ad85 100644
--- a/src/gui/search/searchwidget.cpp
+++ b/src/gui/search/searchwidget.cpp
@@ -286,7 +286,9 @@ void SearchWidget::toggleFocusBetweenLineEdits()
void SearchWidget::on_pluginsButton_clicked()
{
- new PluginSelectDialog(SearchPluginManager::instance(), this);
+ auto *dlg = new PluginSelectDialog(SearchPluginManager::instance(), this);
+ dlg->setAttribute(Qt::WA_DeleteOnClose);
+ dlg->show();
}
void SearchWidget::searchTextEdited(const QString &)
diff --git a/src/gui/statsdialog.cpp b/src/gui/statsdialog.cpp
index 2533f98d6..3849240ad 100644
--- a/src/gui/statsdialog.cpp
+++ b/src/gui/statsdialog.cpp
@@ -48,7 +48,7 @@ StatsDialog::StatsDialog(QWidget *parent)
, m_storeDialogSize(SETTINGS_KEY(u"Size"_qs))
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
+
connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &StatsDialog::close);
update();
@@ -61,7 +61,6 @@ StatsDialog::StatsDialog(QWidget *parent)
#endif
resize(m_storeDialogSize);
- show();
}
StatsDialog::~StatsDialog()
diff --git a/src/gui/torrentcreatordialog.cpp b/src/gui/torrentcreatordialog.cpp
index 0f822a345..eed17ffdc 100644
--- a/src/gui/torrentcreatordialog.cpp
+++ b/src/gui/torrentcreatordialog.cpp
@@ -67,8 +67,6 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const Path &defaultP
, m_storeSource(SETTINGS_KEY(u"Source"_qs))
{
m_ui->setupUi(this);
- setAttribute(Qt::WA_DeleteOnClose);
- setModal(false);
m_ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Create Torrent"));
@@ -89,8 +87,6 @@ TorrentCreatorDialog::TorrentCreatorDialog(QWidget *parent, const Path &defaultP
#else
m_ui->widgetTorrentFormat->hide();
#endif
-
- show();
}
TorrentCreatorDialog::~TorrentCreatorDialog()