mirror of
https://github.com/transmission/transmission
synced 2025-03-12 07:03:44 +00:00
(trunk qt) #3465 "add drag-and-drop support for adding torrents/magnets" -- added.
This commit is contained in:
parent
222261cb64
commit
ef8ffe3512
2 changed files with 34 additions and 13 deletions
|
@ -13,25 +13,14 @@
|
|||
#include <cassert>
|
||||
#include <iostream>
|
||||
|
||||
#include <QCheckBox>
|
||||
#include <QCloseEvent>
|
||||
#include <QDesktopServices>
|
||||
#include <QFileDialog>
|
||||
#include <QHBoxLayout>
|
||||
#include <QInputDialog>
|
||||
#include <QLabel>
|
||||
#include <QMessageBox>
|
||||
#include <QSignalMapper>
|
||||
#include <QSize>
|
||||
#include <QStyle>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QUrl>
|
||||
#include <QtGui>
|
||||
|
||||
#include <libtransmission/transmission.h>
|
||||
#include <libtransmission/utils.h>
|
||||
#include <libtransmission/version.h>
|
||||
|
||||
#include "about.h"
|
||||
#include "app.h"
|
||||
#include "details.h"
|
||||
#include "filterbar.h"
|
||||
#include "filters.h"
|
||||
|
@ -103,6 +92,8 @@ TrMainWindow :: TrMainWindow( Session& session, Prefs& prefs, TorrentModel& mode
|
|||
myLastReadTime( 0 ),
|
||||
myNetworkTimer( this )
|
||||
{
|
||||
setAcceptDrops( true );
|
||||
|
||||
QAction * sep = new QAction( this );
|
||||
sep->setSeparator( true );
|
||||
|
||||
|
@ -1229,3 +1220,29 @@ TrMainWindow :: wrongAuthentication( )
|
|||
mySession.stop( );
|
||||
mySessionDialog->show( );
|
||||
}
|
||||
|
||||
/***
|
||||
****
|
||||
***/
|
||||
|
||||
void
|
||||
TrMainWindow :: dragEnterEvent( QDragEnterEvent * event )
|
||||
{
|
||||
const QMimeData * mime = event->mimeData( );
|
||||
|
||||
if( mime->hasFormat("application/x-bittorrent")
|
||||
|| mime->text().trimmed().endsWith(".torrent", Qt::CaseInsensitive) )
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
|
||||
void
|
||||
TrMainWindow :: dropEvent( QDropEvent * event )
|
||||
{
|
||||
QString key = event->mimeData()->text().trimmed();
|
||||
|
||||
const QUrl url( key );
|
||||
if( url.scheme() == "file" )
|
||||
key = QUrl::fromPercentEncoding( url.path().toUtf8( ) );
|
||||
|
||||
dynamic_cast<MyApp*>(QApplication::instance())->addTorrent( key );
|
||||
}
|
||||
|
|
|
@ -181,6 +181,10 @@ class TrMainWindow: public QMainWindow
|
|||
public:
|
||||
TrMainWindow( Session&, Prefs&, TorrentModel&, bool minized );
|
||||
virtual ~TrMainWindow( );
|
||||
|
||||
protected:
|
||||
virtual void dragEnterEvent( QDragEnterEvent * );
|
||||
virtual void dropEvent( QDropEvent * );
|
||||
};
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Add table
Reference in a new issue