Change width of columns in search tab. Closes #764

This commit is contained in:
ngosang 2015-02-12 17:23:24 +01:00
parent e788445fe2
commit b18138bad0
3 changed files with 14 additions and 36 deletions

View file

@ -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; i<nbColumns; ++i) {
if (treeview->columnWidth(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; i<nbColumns; ++i) {
if (treeview->columnWidth(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) {

View file

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

View file

@ -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<listSize; ++i) {