Fix crash when exiting qbt with search plugin dialog open

Avoid emitting signal in destructor
This commit is contained in:
Chocobo1
2017-07-16 23:54:25 +08:00
parent 962e5a8f3d
commit 24a69a9fe7
5 changed files with 18 additions and 13 deletions

View File

@@ -103,7 +103,6 @@ PluginSelectDlg::PluginSelectDlg(SearchEngine *pluginManager, QWidget *parent)
PluginSelectDlg::~PluginSelectDlg()
{
emit pluginsChanged();
delete m_ui;
}
@@ -461,7 +460,6 @@ void PluginSelectDlg::pluginUpdated(const QString &name)
item->setText(PLUGIN_VERSION, version);
m_updatedPlugins.append(name);
finishPluginUpdate();
}
void PluginSelectDlg::pluginUpdateFailed(const QString &name, const QString &reason)

View File

@@ -56,9 +56,6 @@ public:
QList<QTreeWidgetItem*> findItemsWithUrl(QString url);
QTreeWidgetItem* findItemWithID(QString id);
signals:
void pluginsChanged();
protected:
void dropEvent(QDropEvent *event);
void dragEnterEvent(QDragEnterEvent *event);

View File

@@ -121,11 +121,19 @@ SearchWidget::SearchWidget(MainWindow *mainWindow)
connect(m_searchEngine, &SearchEngine::searchFailed, this, &SearchWidget::searchFailed);
connect(m_searchEngine, &SearchEngine::torrentFileDownloaded, this, &SearchWidget::addTorrentToSession);
// Fill in category combobox
fillCatCombobox();
fillPluginComboBox();
const auto onPluginChanged = [this]()
{
fillCatCombobox();
fillPluginComboBox();
selectActivePage();
};
connect(m_searchEngine, &SearchEngine::pluginInstalled, this, onPluginChanged);
connect(m_searchEngine, &SearchEngine::pluginUninstalled, this, onPluginChanged);
connect(m_searchEngine, &SearchEngine::pluginUpdated, this, onPluginChanged);
connect(m_searchEngine, &SearchEngine::pluginEnabled, this, onPluginChanged);
selectActivePage();
// Fill in category combobox
onPluginChanged();
connect(m_ui->m_searchPattern, &LineEdit::returnPressed, m_ui->searchButton, &QPushButton::click);
connect(m_ui->m_searchPattern, &LineEdit::textEdited, this, &SearchWidget::searchTextEdited);
@@ -248,10 +256,7 @@ void SearchWidget::addTorrentToSession(const QString &source)
void SearchWidget::on_pluginsButton_clicked()
{
PluginSelectDlg *dlg = new PluginSelectDlg(m_searchEngine, this);
connect(dlg, &PluginSelectDlg::pluginsChanged, this, &SearchWidget::fillCatCombobox);
connect(dlg, &PluginSelectDlg::pluginsChanged, this, &SearchWidget::fillPluginComboBox);
connect(dlg, &PluginSelectDlg::pluginsChanged, this, &SearchWidget::selectActivePage);
new PluginSelectDlg(m_searchEngine, this);
}
void SearchWidget::searchTextEdited(QString)