From b18138bad0b0196a292f17a1f83079227042594f Mon Sep 17 00:00:00 2001 From: ngosang Date: Thu, 12 Feb 2015 17:23:24 +0100 Subject: [PATCH] Change width of columns in search tab. Closes #764 --- src/searchengine/searchengine.cpp | 47 +++++++++---------------------- src/searchengine/searchengine.h | 1 - src/searchengine/searchtab.cpp | 2 +- 3 files changed, 14 insertions(+), 36 deletions(-) diff --git a/src/searchengine/searchengine.cpp b/src/searchengine/searchengine.cpp index 36eec7313..890941d7e 100644 --- a/src/searchengine/searchengine.cpp +++ b/src/searchengine/searchengine.cpp @@ -206,7 +206,7 @@ void SearchEngine::on_search_button_clicked() { } // Tab Addition currentSearchTab = new SearchTab(this); - connect(currentSearchTab->header(), SIGNAL(sectionResized(int, int, int)), this, SLOT(propagateSectionResized(int,int,int))); + connect(currentSearchTab->header(), SIGNAL(sectionResized(int, int, int)), this, SLOT(saveResultsColumnsWidth())); all_tab.append(currentSearchTab); QString tabName = pattern; tabName.replace(QRegExp("&{1}"), "&&"); @@ -235,41 +235,20 @@ void SearchEngine::on_search_button_clicked() { searchTimeout->start(180000); // 3min } -void SearchEngine::propagateSectionResized(int index, int , int newsize) { - foreach (SearchTab * tab, all_tab) { - tab->getCurrentTreeView()->setColumnWidth(index, newsize); - } - saveResultsColumnsWidth(); -} - void SearchEngine::saveResultsColumnsWidth() { - if (all_tab.size() > 0) { - QTreeView* treeview = all_tab.first()->getCurrentTreeView(); - Preferences* const pref = Preferences::instance(); - QStringList width_list; - QStringList new_width_list; - short nbColumns = all_tab.first()->getCurrentSearchListModel()->columnCount(); - - QString line = pref->getSearchColsWidth(); - if (!line.isEmpty()) { - width_list = line.split(' '); - } - - for (short i=0; icolumnWidth(i)<1 && width_list.size() == nbColumns && width_list.at(i).toInt()>=1) { - // load the former width - new_width_list << width_list.at(i); - } else if (treeview->columnWidth(i)>=1) { - // usual case, save the current width - new_width_list << QString::number(treeview->columnWidth(i)); - } else { - // default width - treeview->resizeColumnToContents(i); - new_width_list << QString::number(treeview->columnWidth(i)); - } - } - pref->setSearchColsWidth(new_width_list.join(" ")); + if (all_tab.isEmpty()) + return; + QTreeView* treeview = all_tab.first()->getCurrentTreeView(); + Preferences* const pref = Preferences::instance(); + QStringList new_width_list; + short nbColumns = all_tab.first()->getCurrentSearchListModel()->columnCount(); + for (short i=0; icolumnWidth(i) > 0) + new_width_list << QString::number(treeview->columnWidth(i)); } + // Don't save the width of the last column (auto column width) + new_width_list.removeLast(); + pref->setSearchColsWidth(new_width_list.join(" ")); } void SearchEngine::downloadTorrent(QString engine_url, QString torrent_url) { diff --git a/src/searchengine/searchengine.h b/src/searchengine/searchengine.h index a56e41ea5..d8803a101 100644 --- a/src/searchengine/searchengine.h +++ b/src/searchengine/searchengine.h @@ -101,7 +101,6 @@ protected slots: void updateNova(); void selectMultipleBox(const QString &text); void on_enginesButton_clicked(); - void propagateSectionResized(int index, int oldsize , int newsize); void saveResultsColumnsWidth(); void downloadFinished(int exitcode, QProcess::ExitStatus); void fillCatCombobox(); diff --git a/src/searchengine/searchtab.cpp b/src/searchengine/searchtab.cpp index cb37bebca..558ee03d6 100644 --- a/src/searchengine/searchtab.cpp +++ b/src/searchengine/searchtab.cpp @@ -110,7 +110,7 @@ bool SearchTab::loadColWidthResultsList() { if (line.isEmpty()) return false; QStringList width_list = line.split(' '); - if (width_list.size() < SearchListModel->columnCount()) + if (width_list.size() > SearchListModel->columnCount()) return false; unsigned int listSize = width_list.size(); for (unsigned int i=0; i