mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-08-22 06:13:36 -07:00
Remember sorted column in download list on restart
This commit is contained in:
parent
0d8a22dcda
commit
fe4c1859a8
2 changed files with 38 additions and 10 deletions
42
src/GUI.cpp
42
src/GUI.cpp
|
@ -109,10 +109,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
|||
downloadList->setItemDelegate(DLDelegate);
|
||||
// Hide hash column
|
||||
downloadList->hideColumn(HASH);
|
||||
// Load last columns width for download list
|
||||
if(!loadColWidthDLList()){
|
||||
downloadList->header()->resizeSection(0, 200);
|
||||
}
|
||||
|
||||
nbTorrents = 0;
|
||||
tabs->setTabText(0, tr("Transfers") +" (0)");
|
||||
connect(&BTSession, SIGNAL(addedTorrent(const QString&, torrent_handle&, bool)), this, SLOT(torrentAdded(const QString&, torrent_handle&, bool)));
|
||||
|
@ -135,6 +132,10 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent){
|
|||
connect(&BTSession, SIGNAL(updateFileSize(QString)), this, SLOT(updateFileSize(QString)));
|
||||
// Resume unfinished torrents
|
||||
BTSession.resumeUnfinishedTorrents();
|
||||
// Load last columns width for download list
|
||||
if(!loadColWidthDLList()){
|
||||
downloadList->header()->resizeSection(0, 200);
|
||||
}
|
||||
// Add torrent given on command line
|
||||
processParams(torrentCmdLine);
|
||||
// Make download list header clickable for sorting
|
||||
|
@ -611,16 +612,29 @@ void GUI::sortDownloadListString(int index, Qt::SortOrder sortOrder){
|
|||
DLListModel->removeRows(0, nbRows_old);
|
||||
}
|
||||
|
||||
void GUI::sortDownloadList(int index){
|
||||
static Qt::SortOrder sortOrder = Qt::AscendingOrder;
|
||||
if(downloadList->header()->sortIndicatorSection() == index){
|
||||
void GUI::sortDownloadList(int index, Qt::SortOrder startSortOrder, bool fromLoadColWidth){
|
||||
static Qt::SortOrder sortOrder = startSortOrder;
|
||||
if(!fromLoadColWidth && downloadList->header()->sortIndicatorSection() == index){
|
||||
if(sortOrder == Qt::AscendingOrder){
|
||||
sortOrder = Qt::DescendingOrder;
|
||||
}else{
|
||||
sortOrder = Qt::AscendingOrder;
|
||||
}
|
||||
}
|
||||
QString sortOrderLetter;
|
||||
if(sortOrder == Qt::AscendingOrder)
|
||||
sortOrderLetter = "a";
|
||||
else
|
||||
sortOrderLetter = "d";
|
||||
if(fromLoadColWidth) {
|
||||
// XXX: Why is this needed?
|
||||
if(sortOrder == Qt::DescendingOrder)
|
||||
downloadList->header()->setSortIndicator(index, Qt::AscendingOrder);
|
||||
else
|
||||
downloadList->header()->setSortIndicator(index, Qt::DescendingOrder);
|
||||
} else {
|
||||
downloadList->header()->setSortIndicator(index, sortOrder);
|
||||
}
|
||||
switch(index){
|
||||
case SIZE:
|
||||
case ETA:
|
||||
|
@ -632,6 +646,8 @@ void GUI::sortDownloadList(int index){
|
|||
default:
|
||||
sortDownloadListString(index, sortOrder);
|
||||
}
|
||||
QSettings settings("qBittorrent", "qBittorrent");
|
||||
settings.setValue("DownloadListSortedCol", QString(misc::toString(index).c_str())+sortOrderLetter);
|
||||
}
|
||||
|
||||
void GUI::sortSearchList(int index){
|
||||
|
@ -771,6 +787,18 @@ bool GUI::loadColWidthDLList(){
|
|||
for(int i=0; i<width_list.size(); ++i){
|
||||
downloadList->header()->resizeSection(i, width_list.at(i).toInt());
|
||||
}
|
||||
// Loading last sorted column
|
||||
QString sortedCol = settings.value("DownloadListSortedCol", QString()).toString();
|
||||
if(!sortedCol.isEmpty()){
|
||||
Qt::SortOrder sortOrder;
|
||||
if(sortedCol.endsWith("d"))
|
||||
sortOrder = Qt::DescendingOrder;
|
||||
else
|
||||
sortOrder = Qt::AscendingOrder;
|
||||
sortedCol = sortedCol.left(sortedCol.size()-1);
|
||||
int index = sortedCol.toInt();
|
||||
sortDownloadList(index, sortOrder, true);
|
||||
}
|
||||
qDebug("Download list columns width loaded");
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||
void loadCheckedSearchEngines();
|
||||
bool loadColWidthDLList();
|
||||
bool loadColWidthSearchList();
|
||||
void sortDownloadList(int index);
|
||||
void sortDownloadList(int index, Qt::SortOrder startSortOrder=Qt::AscendingOrder, bool fromLoadColWidth=false);
|
||||
void sortDownloadListFloat(int index, Qt::SortOrder sortOrder);
|
||||
void sortDownloadListString(int index, Qt::SortOrder sortOrder);
|
||||
void sortSearchList(int index);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue