mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-16 02:03:07 -07:00
- Added a popu menu in finished list
This commit is contained in:
parent
cd70dcc3ba
commit
a615038498
3 changed files with 82 additions and 1 deletions
|
@ -23,6 +23,7 @@
|
||||||
#include "GUI.h"
|
#include "GUI.h"
|
||||||
#include "properties_imp.h"
|
#include "properties_imp.h"
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
|
#include <QSettings>
|
||||||
|
|
||||||
FinishedTorrents::FinishedTorrents(QObject *parent, bittorrent *BTSession){
|
FinishedTorrents::FinishedTorrents(QObject *parent, bittorrent *BTSession){
|
||||||
setupUi(this);
|
setupUi(this);
|
||||||
|
@ -44,6 +45,19 @@ FinishedTorrents::FinishedTorrents(QObject *parent, bittorrent *BTSession){
|
||||||
finishedList->hideColumn(HASH);
|
finishedList->hideColumn(HASH);
|
||||||
finishedListDelegate = new DLListDelegate();
|
finishedListDelegate = new DLListDelegate();
|
||||||
finishedList->setItemDelegate(finishedListDelegate);
|
finishedList->setItemDelegate(finishedListDelegate);
|
||||||
|
connect(finishedList, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayFinishedListMenu(const QPoint&)));
|
||||||
|
actionStart->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/play.png")));
|
||||||
|
actionPause->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/pause.png")));
|
||||||
|
actionDelete->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete.png")));
|
||||||
|
actionPreview_file->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/preview.png")));
|
||||||
|
actionDelete_Permanently->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete_perm.png")));
|
||||||
|
actionTorrent_Properties->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/properties.png")));
|
||||||
|
connect(actionStart, SIGNAL(triggered()), (GUI*)parent, SLOT(startSelection()));
|
||||||
|
connect(actionPause, SIGNAL(triggered()), (GUI*)parent, SLOT(pauseSelection()));
|
||||||
|
connect(actionDelete, SIGNAL(triggered()), (GUI*)parent, SLOT(deleteSelection()));
|
||||||
|
connect(actionPreview_file, SIGNAL(triggered()), (GUI*)parent, SLOT(startSelection()));
|
||||||
|
connect(actionDelete_Permanently, SIGNAL(triggered()), (GUI*)parent, SLOT(deletePermanently()));
|
||||||
|
connect(actionTorrent_Properties, SIGNAL(triggered()), this, SLOT(propertiesSelection));
|
||||||
}
|
}
|
||||||
|
|
||||||
FinishedTorrents::~FinishedTorrents(){
|
FinishedTorrents::~FinishedTorrents(){
|
||||||
|
@ -170,3 +184,35 @@ void FinishedTorrents::propertiesSelection(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FinishedTorrents::displayFinishedListMenu(const QPoint& pos){
|
||||||
|
QMenu myFinishedListMenu(this);
|
||||||
|
QModelIndex index;
|
||||||
|
// Enable/disable pause/start action given the DL state
|
||||||
|
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||||
|
QSettings settings("qBittorrent", "qBittorrent");
|
||||||
|
QString previewProgram = settings.value("Options/Misc/PreviewProgram", QString()).toString();
|
||||||
|
foreach(index, selectedIndexes){
|
||||||
|
if(index.column() == NAME){
|
||||||
|
// Get the file name
|
||||||
|
QString fileHash = finishedListModel->data(finishedListModel->index(index.row(), HASH)).toString();
|
||||||
|
// Get handle and pause the torrent
|
||||||
|
torrent_handle h = BTSession->getTorrentHandle(fileHash);
|
||||||
|
if(h.is_paused()){
|
||||||
|
myFinishedListMenu.addAction(actionStart);
|
||||||
|
}else{
|
||||||
|
myFinishedListMenu.addAction(actionPause);
|
||||||
|
}
|
||||||
|
myFinishedListMenu.addAction(actionDelete);
|
||||||
|
myFinishedListMenu.addAction(actionDelete_Permanently);
|
||||||
|
myFinishedListMenu.addAction(actionTorrent_Properties);
|
||||||
|
if(!previewProgram.isEmpty() && BTSession->isFilePreviewPossible(fileHash) && selectedIndexes.size()<=finishedListModel->columnCount()){
|
||||||
|
myFinishedListMenu.addAction(actionPreview_file);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Call menu
|
||||||
|
// XXX: why mapToGlobal() is not enough?
|
||||||
|
myFinishedListMenu.exec(mapToGlobal(pos)+QPoint(10,55));
|
||||||
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ class FinishedTorrents : public QWidget, public Ui::seeding{
|
||||||
void deleteFromFinishedList(QString hash);
|
void deleteFromFinishedList(QString hash);
|
||||||
void showProperties(const QModelIndex &index);
|
void showProperties(const QModelIndex &index);
|
||||||
void propertiesSelection();
|
void propertiesSelection();
|
||||||
|
void displayFinishedListMenu(const QPoint&);
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
void setRowColor(int row, const QString& color);
|
void setRowColor(int row, const QString& color);
|
||||||
|
|
|
@ -27,7 +27,11 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QTreeView" name="finishedList" />
|
<widget class="QTreeView" name="finishedList" >
|
||||||
|
<property name="contextMenuPolicy" >
|
||||||
|
<enum>Qt::CustomContextMenu</enum>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QLabel" name="lbl_note" >
|
<widget class="QLabel" name="lbl_note" >
|
||||||
|
@ -42,6 +46,36 @@
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
|
<action name="actionStart" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Start</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionPause" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Pause</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionDelete" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Delete</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionDelete_Permanently" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Delete Permanently</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionTorrent_Properties" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Torrent Properties</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
|
<action name="actionPreview_file" >
|
||||||
|
<property name="text" >
|
||||||
|
<string>Preview file</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<resources/>
|
<resources/>
|
||||||
<connections/>
|
<connections/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue