mirror of
https://github.com/transmission/transmission
synced 2025-03-12 15:14:12 +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 <cassert>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
||||||
#include <QCheckBox>
|
#include <QtGui>
|
||||||
#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 <libtransmission/transmission.h>
|
#include <libtransmission/transmission.h>
|
||||||
#include <libtransmission/utils.h>
|
#include <libtransmission/utils.h>
|
||||||
#include <libtransmission/version.h>
|
#include <libtransmission/version.h>
|
||||||
|
|
||||||
#include "about.h"
|
#include "about.h"
|
||||||
|
#include "app.h"
|
||||||
#include "details.h"
|
#include "details.h"
|
||||||
#include "filterbar.h"
|
#include "filterbar.h"
|
||||||
#include "filters.h"
|
#include "filters.h"
|
||||||
|
@ -103,6 +92,8 @@ TrMainWindow :: TrMainWindow( Session& session, Prefs& prefs, TorrentModel& mode
|
||||||
myLastReadTime( 0 ),
|
myLastReadTime( 0 ),
|
||||||
myNetworkTimer( this )
|
myNetworkTimer( this )
|
||||||
{
|
{
|
||||||
|
setAcceptDrops( true );
|
||||||
|
|
||||||
QAction * sep = new QAction( this );
|
QAction * sep = new QAction( this );
|
||||||
sep->setSeparator( true );
|
sep->setSeparator( true );
|
||||||
|
|
||||||
|
@ -1229,3 +1220,29 @@ TrMainWindow :: wrongAuthentication( )
|
||||||
mySession.stop( );
|
mySession.stop( );
|
||||||
mySessionDialog->show( );
|
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:
|
public:
|
||||||
TrMainWindow( Session&, Prefs&, TorrentModel&, bool minized );
|
TrMainWindow( Session&, Prefs&, TorrentModel&, bool minized );
|
||||||
virtual ~TrMainWindow( );
|
virtual ~TrMainWindow( );
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual void dragEnterEvent( QDragEnterEvent * );
|
||||||
|
virtual void dropEvent( QDropEvent * );
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Add table
Reference in a new issue