From dca80c3006877be2b9218cceff16df7161402894 Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Wed, 25 Jun 2008 20:02:38 +0000 Subject: [PATCH] - Moved all_tab to parent class - Fixed memory leak for all_tab --- src/SearchTab.cpp | 2 -- src/SearchTab.h | 1 - src/searchEngine.cpp | 12 +++++++----- src/searchEngine.h | 1 + 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/SearchTab.cpp b/src/SearchTab.cpp index ef56555d8..1321bb229 100644 --- a/src/SearchTab.cpp +++ b/src/SearchTab.cpp @@ -36,7 +36,6 @@ #define SEARCH_LEECHERS 3 #define SEARCH_ENGINE 4 -QList* SearchTab::all_tab = new QList(); SearchTab::SearchTab(SearchEngine *parent) : QWidget() { box=new QVBoxLayout(); @@ -68,7 +67,6 @@ SearchTab::SearchTab(SearchEngine *parent) : QWidget() if(!loadColWidthSearchList()){ resultsBrowser->header()->resizeSection(0, 275); } - all_tab->append(this); } SearchTab::~SearchTab() diff --git a/src/SearchTab.h b/src/SearchTab.h index fa6619701..ddbe3a8ce 100644 --- a/src/SearchTab.h +++ b/src/SearchTab.h @@ -40,7 +40,6 @@ class SearchTab : public QWidget, public Ui::search_engine QStandardItemModel *SearchListModel; SearchListDelegate *SearchDelegate; public: - static QList *all_tab; // To store all tabs SearchTab(SearchEngine *parent); ~SearchTab(); bool loadColWidthSearchList(); diff --git a/src/searchEngine.cpp b/src/searchEngine.cpp index 3a65f18a8..5669d0f8e 100644 --- a/src/searchEngine.cpp +++ b/src/searchEngine.cpp @@ -43,7 +43,7 @@ SearchEngine::SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration) : QWidget(), BTSession(BTSession), myTrayIcon(myTrayIcon), systrayIntegration(systrayIntegration){ setupUi(this); downloader = new downloadThread(this); - + all_tab = new QList(); // new qCompleter to the search pattern startSearchHistory(); searchCompleter = new QCompleter(searchHistory, this); @@ -76,6 +76,7 @@ SearchEngine::~SearchEngine(){ delete searchProcess; delete searchCompleter; delete downloader; + delete all_tab; } void SearchEngine::on_enginesButton_clicked() { @@ -136,6 +137,7 @@ void SearchEngine::on_search_button_clicked(){ // Tab Addition tab_search=new SearchTab(this); tabWidget->addTab(tab_search, pattern); + all_tab->append(tab_search); closeTab_button->setEnabled(true); // if the pattern is not in the pattern if(searchHistory.indexOf(pattern) == -1){ @@ -185,11 +187,11 @@ void SearchEngine::searchStarted(){ void SearchEngine::downloadSelectedItem(const QModelIndex& index){ int row = index.row(); // Get Item url - QString url = searchResultsUrls.value(SearchTab::all_tab->at(tabWidget->currentIndex())->getCurrentSearchListModel()->data(SearchTab::all_tab->at(tabWidget->currentIndex())->getCurrentSearchListModel()->index(row, NAME)).toString()); + QString url = searchResultsUrls.value(all_tab->at(tabWidget->currentIndex())->getCurrentSearchListModel()->data(all_tab->at(tabWidget->currentIndex())->getCurrentSearchListModel()->index(row, NAME)).toString()); // Download from url BTSession->downloadFromUrl(url); // Set item color to RED - SearchTab::all_tab->at(tabWidget->currentIndex())->setRowColor(row, "red"); + all_tab->at(tabWidget->currentIndex())->setRowColor(row, "red"); } // search Qprocess return output as soon as it gets new @@ -365,14 +367,14 @@ void SearchEngine::on_clearPatternButton_clicked() { // Download selected items in search results list void SearchEngine::on_download_button_clicked(){ //QModelIndexList selectedIndexes = tab_search->getCurrentTreeView()->selectionModel()->selectedIndexes(); - QModelIndexList selectedIndexes = SearchTab::all_tab->at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); + QModelIndexList selectedIndexes = all_tab->at(tabWidget->currentIndex())->getCurrentTreeView()->selectionModel()->selectedIndexes(); QModelIndex index; foreach(index, selectedIndexes){ if(index.column() == NAME){ // Get Item url QString url = searchResultsUrls.value(index.data().toString()); BTSession->downloadFromUrl(url); - SearchTab::all_tab->at(tabWidget->currentIndex())->setRowColor(index.row(), "red"); + all_tab->at(tabWidget->currentIndex())->setRowColor(index.row(), "red"); } } } diff --git a/src/searchEngine.h b/src/searchEngine.h index 34cf84dec..7fe73abfc 100644 --- a/src/searchEngine.h +++ b/src/searchEngine.h @@ -56,6 +56,7 @@ class SearchEngine : public QWidget, public Ui::search_engine{ QStringList enabled_engines; QTimer *searchTimeout; SearchTab *tab_search; + QList *all_tab; // To store all tabs public: SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration); ~SearchEngine();