diff --git a/Changelog b/Changelog index d86ccdb87..ff4480139 100644 --- a/Changelog +++ b/Changelog @@ -1,10 +1,12 @@ -* Unknown - Christophe Dumez - v1.5.3 +* Wed Sep 30 2009 - Christophe Dumez - v1.5.3 - BUGFIX: Fix a possible crash when pausing then deleting a torrent quickly - BUGFIX: Fix a race condition in folder scanning and torrent downloader - BUGFIX: Hide download url column in search results - BUGFIX: Fix a crash when scanned directory does not exist - BUGFIX: Fix compilation on Mac OS - BUGFIX: Added a command line parameter to disable splash screen + - BUGFIX: Ignore permanent deletion button when no torrent is selected + - BUGFIX: When a selected torrent is deleted, select next suitable torrent * Sun Sep 20 2009 - Christophe Dumez - v1.5.2 - BUGFIX: Some torrents were pausing for no reason diff --git a/src/FinishedTorrents.cpp b/src/FinishedTorrents.cpp index 552aea382..50e801860 100644 --- a/src/FinishedTorrents.cpp +++ b/src/FinishedTorrents.cpp @@ -383,6 +383,20 @@ void FinishedTorrents::deleteTorrent(QString hash){ qDebug("Torrent is not in finished list, nothing to delete"); return; } + // Select item just under (or above nothing under) the one that was deleted + QModelIndex current_prox_index = proxyModel->mapFromSource(finishedListModel->index(row, 0, finishedList->rootIndex())); + bool was_selected = finishedList->selectionModel()->isSelected(current_prox_index); + if(finishedListModel->rowCount() > 1 && was_selected) { + QModelIndex under_prox_index; + if(current_prox_index.row() == finishedListModel->rowCount()-1) + under_prox_index = proxyModel->index(current_prox_index.row()-1, 0); + else + under_prox_index = proxyModel->index(current_prox_index.row()+1, 0); + //downloadList->selectionModel()->select(under_prox_index, QItemSelectionModel::Current|QItemSelectionModel::Columns|QItemSelectionModel::Select); + finishedList->setCurrentIndex(under_prox_index); + finishedList->update(); + } + // Actually delete the row finishedListModel->removeRow(row); --nbFinished; emit finishedTorrentsNumberChanged(nbFinished); diff --git a/src/GUI.cpp b/src/GUI.cpp index da541499d..7bc68ac43 100644 --- a/src/GUI.cpp +++ b/src/GUI.cpp @@ -868,6 +868,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis default: return; } + if(hashes.empty()) return; int ret; if(inDownloadList) { ret = QMessageBox::question( @@ -919,7 +920,7 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis default: return; } - if(!hashes.size()) return; + if(hashes.empty()) return; int ret; if(inDownloadList) { ret = QMessageBox::question( diff --git a/src/Icons/qBittorrent.desktop b/src/Icons/qBittorrent.desktop index b8be4dfc5..ea57552f5 100644 --- a/src/Icons/qBittorrent.desktop +++ b/src/Icons/qBittorrent.desktop @@ -1,6 +1,6 @@ [Desktop Entry] Categories=Qt;Network;P2P; -Comment=V1.5.2 +Comment=V1.5.3 Exec=qbittorrent %f GenericName=Bittorrent client GenericName[bg]=Торент клиент diff --git a/src/Icons/skin/splash.png b/src/Icons/skin/splash.png index ca3407466..51dc999e5 100644 Binary files a/src/Icons/skin/splash.png and b/src/Icons/skin/splash.png differ diff --git a/src/downloadingTorrents.cpp b/src/downloadingTorrents.cpp index 63690ac60..d4e4638ba 100644 --- a/src/downloadingTorrents.cpp +++ b/src/downloadingTorrents.cpp @@ -198,6 +198,20 @@ void DownloadingTorrents::deleteTorrent(QString hash) { qDebug("torrent is not in download list, nothing to delete"); return; } + // Select item just under (or above nothing under) the one that was deleted + QModelIndex current_prox_index = proxyModel->mapFromSource(DLListModel->index(row, 0, downloadList->rootIndex())); + bool was_selected = downloadList->selectionModel()->isSelected(current_prox_index); + if(DLListModel->rowCount() > 1 && was_selected) { + QModelIndex under_prox_index; + if(current_prox_index.row() == DLListModel->rowCount()-1) + under_prox_index = proxyModel->index(current_prox_index.row()-1, 0); + else + under_prox_index = proxyModel->index(current_prox_index.row()+1, 0); + //downloadList->selectionModel()->select(under_prox_index, QItemSelectionModel::Current|QItemSelectionModel::Columns|QItemSelectionModel::Select); + downloadList->setCurrentIndex(under_prox_index); + downloadList->update(); + } + // Actually delete the row DLListModel->removeRow(row); --nbTorrents; emit unfinishedTorrentsNumberChanged(nbTorrents); diff --git a/src/src.pro b/src/src.pro index 7aa2a0b5c..11ee94bc2 100644 --- a/src/src.pro +++ b/src/src.pro @@ -14,10 +14,10 @@ CONFIG += qt \ network # Update this VERSION for each release -DEFINES += VERSION=\\\"v1.5.2\\\" +DEFINES += VERSION=\\\"v1.5.3\\\" DEFINES += VERSION_MAJOR=1 DEFINES += VERSION_MINOR=5 -DEFINES += VERSION_BUGFIX=2 +DEFINES += VERSION_BUGFIX=3 !mac:QMAKE_LFLAGS += -Wl,--as-needed contains(DEBUG_MODE, 1) { CONFIG += debug