Browse Source

- Moved all_tab to parent class

- Fixed memory leak for all_tab
adaptive-webui-19844
Christophe Dumez 17 years ago
parent
commit
dca80c3006
  1. 2
      src/SearchTab.cpp
  2. 1
      src/SearchTab.h
  3. 12
      src/searchEngine.cpp
  4. 1
      src/searchEngine.h

2
src/SearchTab.cpp

@ -36,7 +36,6 @@
#define SEARCH_LEECHERS 3 #define SEARCH_LEECHERS 3
#define SEARCH_ENGINE 4 #define SEARCH_ENGINE 4
QList<SearchTab*>* SearchTab::all_tab = new QList<SearchTab*>();
SearchTab::SearchTab(SearchEngine *parent) : QWidget() SearchTab::SearchTab(SearchEngine *parent) : QWidget()
{ {
box=new QVBoxLayout(); box=new QVBoxLayout();
@ -68,7 +67,6 @@ SearchTab::SearchTab(SearchEngine *parent) : QWidget()
if(!loadColWidthSearchList()){ if(!loadColWidthSearchList()){
resultsBrowser->header()->resizeSection(0, 275); resultsBrowser->header()->resizeSection(0, 275);
} }
all_tab->append(this);
} }
SearchTab::~SearchTab() SearchTab::~SearchTab()

1
src/SearchTab.h

@ -40,7 +40,6 @@ class SearchTab : public QWidget, public Ui::search_engine
QStandardItemModel *SearchListModel; QStandardItemModel *SearchListModel;
SearchListDelegate *SearchDelegate; SearchListDelegate *SearchDelegate;
public: public:
static QList<SearchTab*> *all_tab; // To store all tabs
SearchTab(SearchEngine *parent); SearchTab(SearchEngine *parent);
~SearchTab(); ~SearchTab();
bool loadColWidthSearchList(); bool loadColWidthSearchList();

12
src/searchEngine.cpp

@ -43,7 +43,7 @@
SearchEngine::SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration) : QWidget(), BTSession(BTSession), myTrayIcon(myTrayIcon), systrayIntegration(systrayIntegration){ SearchEngine::SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration) : QWidget(), BTSession(BTSession), myTrayIcon(myTrayIcon), systrayIntegration(systrayIntegration){
setupUi(this); setupUi(this);
downloader = new downloadThread(this); downloader = new downloadThread(this);
all_tab = new QList<SearchTab*>();
// new qCompleter to the search pattern // new qCompleter to the search pattern
startSearchHistory(); startSearchHistory();
searchCompleter = new QCompleter(searchHistory, this); searchCompleter = new QCompleter(searchHistory, this);
@ -76,6 +76,7 @@ SearchEngine::~SearchEngine(){
delete searchProcess; delete searchProcess;
delete searchCompleter; delete searchCompleter;
delete downloader; delete downloader;
delete all_tab;
} }
void SearchEngine::on_enginesButton_clicked() { void SearchEngine::on_enginesButton_clicked() {
@ -136,6 +137,7 @@ void SearchEngine::on_search_button_clicked(){
// Tab Addition // Tab Addition
tab_search=new SearchTab(this); tab_search=new SearchTab(this);
tabWidget->addTab(tab_search, pattern); tabWidget->addTab(tab_search, pattern);
all_tab->append(tab_search);
closeTab_button->setEnabled(true); closeTab_button->setEnabled(true);
// if the pattern is not in the pattern // if the pattern is not in the pattern
if(searchHistory.indexOf(pattern) == -1){ if(searchHistory.indexOf(pattern) == -1){
@ -185,11 +187,11 @@ void SearchEngine::searchStarted(){
void SearchEngine::downloadSelectedItem(const QModelIndex& index){ void SearchEngine::downloadSelectedItem(const QModelIndex& index){
int row = index.row(); int row = index.row();
// Get Item url // 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 // Download from url
BTSession->downloadFromUrl(url); BTSession->downloadFromUrl(url);
// Set item color to RED // 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 // 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 // Download selected items in search results list
void SearchEngine::on_download_button_clicked(){ void SearchEngine::on_download_button_clicked(){
//QModelIndexList selectedIndexes = tab_search->getCurrentTreeView()->selectionModel()->selectedIndexes(); //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; QModelIndex index;
foreach(index, selectedIndexes){ foreach(index, selectedIndexes){
if(index.column() == NAME){ if(index.column() == NAME){
// Get Item url // Get Item url
QString url = searchResultsUrls.value(index.data().toString()); QString url = searchResultsUrls.value(index.data().toString());
BTSession->downloadFromUrl(url); BTSession->downloadFromUrl(url);
SearchTab::all_tab->at(tabWidget->currentIndex())->setRowColor(index.row(), "red"); all_tab->at(tabWidget->currentIndex())->setRowColor(index.row(), "red");
} }
} }
} }

1
src/searchEngine.h

@ -56,6 +56,7 @@ class SearchEngine : public QWidget, public Ui::search_engine{
QStringList enabled_engines; QStringList enabled_engines;
QTimer *searchTimeout; QTimer *searchTimeout;
SearchTab *tab_search; SearchTab *tab_search;
QList<SearchTab*> *all_tab; // To store all tabs
public: public:
SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration); SearchEngine(bittorrent *BTSession, QSystemTrayIcon *myTrayIcon, bool systrayIntegration);
~SearchEngine(); ~SearchEngine();

Loading…
Cancel
Save