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()