Index: /trunk/qt/README.txt
===================================================================
--- /trunk/qt/README.txt (revision 14149)
+++ /trunk/qt/README.txt (revision 14150)
@@ -37,7 +37,7 @@
BUILDING ON UNIX
- 1. Prerequisites: Qt >= 4.6 and its development packages
+ 1. Prerequisites: Qt >= 5 and its development packages
2. Build Transmission as normal
- 3. In the qt/ directory, type "qmake qtr.pro" or "qmake-qt4 qtr.pro"
+ 3. In the qt/ directory, type "qmake qtr.pro" or "qmake-qt5 qtr.pro"
4. In the qt/ directory, type "make"
5. In the qt/ directory, as root, type "INSTALL_ROOT=/usr make install"
Index: /trunk/qt/about.cc
===================================================================
--- /trunk/qt/about.cc (revision 14149)
+++ /trunk/qt/about.cc (revision 14150)
@@ -38,5 +38,5 @@
l = new QLabel;
- l->setPixmap (QPixmap (QString::fromAscii (":/icons/transmission-48.png")));
+ l->setPixmap (QPixmap (QString::fromUtf8 (":/icons/transmission-48.png")));
l->setAlignment (Qt::AlignCenter);
v->addWidget (l);
@@ -45,5 +45,5 @@
f.setWeight (QFont::Bold);
f.setPointSize (int (f.pointSize () * 1.2));
- l = new QLabel (tr ("Transmission %1").arg (QString::fromAscii (LONG_VERSION_STRING)));
+ l = new QLabel (tr ("Transmission %1").arg (QString::fromUtf8 (LONG_VERSION_STRING)));
l->setAlignment (Qt::AlignCenter);
l->setFont (f);
@@ -52,5 +52,5 @@
l = new QLabel (tr ("A fast and easy BitTorrent client"));
- l->setStyleSheet (QString::fromAscii ("text-align: center"));
+ l->setStyleSheet (QString::fromUtf8 ("text-align: center"));
l->setAlignment (Qt::AlignCenter);
v->addWidget (l);
@@ -60,5 +60,5 @@
v->addWidget (l);
- l = new QLabel (QString::fromAscii ("http://www.transmissionbt.com/"));
+ l = new QLabel (QString::fromUtf8 ("http://www.transmissionbt.com/"));
l->setOpenExternalLinks (true);
l->setAlignment (Qt::AlignCenter);
@@ -90,5 +90,5 @@
this,
tr ("Credits"),
- QString::fromAscii ("Jordan Lee (Backend; Daemon; GTK+; Qt)\n"
+ QString::fromUtf8 ("Jordan Lee (Backend; Daemon; GTK+; Qt)\n"
"Michell Livingston (OS X)\n"));
}
Index: /trunk/qt/add-data.cc
===================================================================
--- /trunk/qt/add-data.cc (revision 14149)
+++ /trunk/qt/add-data.cc (revision 14150)
@@ -44,5 +44,5 @@
else if( Utils::isHexHashcode( key ) )
{
- magnet = QString::fromAscii("magnet:?xt=urn:btih:") + key;
+ magnet = QString::fromUtf8("magnet:?xt=urn:btih:") + key;
type = MAGNET;
}
Index: /trunk/qt/app.cc
===================================================================
--- /trunk/qt/app.cc (revision 14149)
+++ /trunk/qt/app.cc (revision 14150)
@@ -46,7 +46,7 @@
namespace
{
- const QString DBUS_SERVICE = QString::fromAscii ("com.transmissionbt.Transmission" );
- const QString DBUS_OBJECT_PATH = QString::fromAscii ("/com/transmissionbt/Transmission");
- const QString DBUS_INTERFACE = QString::fromAscii ("com.transmissionbt.Transmission" );
+ const QString DBUS_SERVICE = QString::fromUtf8 ("com.transmissionbt.Transmission" );
+ const QString DBUS_OBJECT_PATH = QString::fromUtf8 ("/com/transmissionbt/Transmission");
+ const QString DBUS_INTERFACE = QString::fromUtf8 ("com.transmissionbt.Transmission" );
const char * MY_READABLE_NAME ("transmission-qt");
@@ -90,5 +90,5 @@
myLastFullUpdateTime (0)
{
- const QString MY_CONFIG_NAME = QString::fromAscii ("transmission");
+ const QString MY_CONFIG_NAME = QString::fromUtf8 ("transmission");
setApplicationName (MY_CONFIG_NAME);
@@ -109,5 +109,5 @@
sizes << 16 << 22 << 24 << 32 << 48 << 64 << 72 << 96 << 128 << 192 << 256;
foreach (int size, sizes)
- icon.addPixmap (QPixmap (QString::fromAscii (":/icons/transmission-%1.png").arg (size)));
+ icon.addPixmap (QPixmap (QString::fromUtf8 (":/icons/transmission-%1.png").arg (size)));
setWindowIcon (icon);
@@ -465,13 +465,13 @@
MyApp :: notify (const QString& title, const QString& body) const
{
- const QString dbusServiceName = QString::fromAscii ("org.freedesktop.Notifications");
- const QString dbusInterfaceName = QString::fromAscii ("org.freedesktop.Notifications");
- const QString dbusPath = QString::fromAscii ("/org/freedesktop/Notifications");
-
- QDBusMessage m = QDBusMessage::createMethodCall (dbusServiceName, dbusPath, dbusInterfaceName, QString::fromAscii ("Notify"));
+ const QString dbusServiceName = QString::fromUtf8 ("org.freedesktop.Notifications");
+ const QString dbusInterfaceName = QString::fromUtf8 ("org.freedesktop.Notifications");
+ const QString dbusPath = QString::fromUtf8 ("/org/freedesktop/Notifications");
+
+ QDBusMessage m = QDBusMessage::createMethodCall (dbusServiceName, dbusPath, dbusInterfaceName, QString::fromUtf8 ("Notify"));
QList args;
- args.append (QString::fromAscii ("Transmission")); // app_name
+ args.append (QString::fromUtf8 ("Transmission")); // app_name
args.append (0U); // replaces_id
- args.append (QString::fromAscii ("transmission")); // icon
+ args.append (QString::fromUtf8 ("transmission")); // icon
args.append (title); // summary
args.append (body); // body
@@ -511,5 +511,5 @@
DBUS_OBJECT_PATH,
DBUS_INTERFACE,
- QString::fromAscii ("AddMetainfo"));
+ QString::fromUtf8 ("AddMetainfo"));
QList arguments;
AddData a (addme[i]);
Index: /trunk/qt/details.cc
===================================================================
--- /trunk/qt/details.cc (revision 14149)
+++ /trunk/qt/details.cc (revision 14150)
@@ -868,5 +868,5 @@
{
QString txt;
- switch (ch.toAscii ())
+ switch (ch.unicode ())
{
case 'O': txt = tr ("Optimistic unchoke"); break;
Index: /trunk/qt/favicon.cc
===================================================================
--- /trunk/qt/favicon.cc (revision 14149)
+++ /trunk/qt/favicon.cc (revision 14150)
@@ -11,9 +11,9 @@
*/
-#include
#include
#include
#include
#include
+#include
#include "favicon.h"
@@ -41,5 +41,5 @@
Favicons :: getCacheDir( )
{
- const QString base = QDesktopServices::storageLocation( QDesktopServices::CacheLocation );
+ const QString base = QStandardPaths::writableLocation (QStandardPaths::CacheLocation);
return QDir( base ).absoluteFilePath( "favicons" );
}
Index: /trunk/qt/file-tree.cc
===================================================================
--- /trunk/qt/file-tree.cc (revision 14149)
+++ /trunk/qt/file-tree.cc (revision 14150)
@@ -437,5 +437,4 @@
{
QString oldpath;
- QModelIndex walk = index;
FileTreeItem * item = itemFromIndex (index);
@@ -576,7 +575,7 @@
FileTreeModel :: clear ()
{
+ beginResetModel ();
clearSubtree (QModelIndex());
-
- reset ();
+ endResetModel ();
}
@@ -614,5 +613,5 @@
bool added = false;
FileTreeItem * item;
- QStringList tokens = filename.split (QChar::fromAscii('/'));
+ QStringList tokens = filename.split (QChar::fromLatin1('/'));
item = findItemForFileIndex (fileIndex);
@@ -887,5 +886,5 @@
{
setColumnHidden (i, (isetResizeMode(i, QHeaderView::Interactive);
+ header()->setSectionResizeMode(i, QHeaderView::Interactive);
}
Index: /trunk/qt/filterbar.cc
===================================================================
--- /trunk/qt/filterbar.cc (revision 14149)
+++ /trunk/qt/filterbar.cc (revision 14150)
@@ -11,4 +11,10 @@
*/
+#include
+#include
+#include
+#include
+#include
+#include
#include
#include
Index: /trunk/qt/freespace-label.cc
===================================================================
--- /trunk/qt/freespace-label.cc (revision 14149)
+++ /trunk/qt/freespace-label.cc (revision 14150)
@@ -74,4 +74,6 @@
FreespaceLabel :: onSessionExecuted (int64_t tag, const QString& result, struct tr_variant * arguments)
{
+ Q_UNUSED (result);
+
if (tag != myTag)
return;
Index: /trunk/qt/freespace-label.h
===================================================================
--- /trunk/qt/freespace-label.h (revision 14149)
+++ /trunk/qt/freespace-label.h (revision 14150)
@@ -17,5 +17,5 @@
#include
-#include
+#include
class Session;
Index: /trunk/qt/mainwin.cc
===================================================================
--- /trunk/qt/mainwin.cc (revision 14149)
+++ /trunk/qt/mainwin.cc (revision 14150)
@@ -15,4 +15,8 @@
#include
+#include
+#include
+#include
+#include
#include
Index: /trunk/qt/make-dialog.cc
===================================================================
--- /trunk/qt/make-dialog.cc (revision 14149)
+++ /trunk/qt/make-dialog.cc (revision 14150)
@@ -22,4 +22,5 @@
#include
#include
+#include
#include
#include
@@ -343,5 +344,5 @@
QPushButton * b = new QPushButton;
b->setIcon( folderPixmap );
- b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ b->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
myDestination = QDir::homePath();
b->setText( myDestination );
@@ -357,5 +358,5 @@
myFolderButton->setIcon( folderPixmap );
myFolderButton->setText( tr( "(None)" ) );
- myFolderButton->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ myFolderButton->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( myFolderButton, SIGNAL(clicked(bool)),
this, SLOT(onFolderClicked(void)) );
@@ -372,5 +373,5 @@
myFileButton->setText( tr( "(None)" ) );
myFileButton->setIcon( filePixmap );
- myFileButton->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ myFileButton->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( myFileButton, SIGNAL(clicked(bool)),
this, SLOT(onFileClicked(void)) );
@@ -385,5 +386,5 @@
hig->addWideControl( myTrackerEdit = new ShortPlainTextEdit );
- const int height = fontMetrics().size( 0, QString::fromAscii("\n\n\n\n") ).height( );
+ const int height = fontMetrics().size( 0, QString::fromUtf8("\n\n\n\n") ).height( );
myTrackerEdit->setMinimumHeight( height );
hig->addTallRow( tr( "&Trackers:" ), myTrackerEdit );
Index: /trunk/qt/options.cc
===================================================================
--- /trunk/qt/options.cc (revision 14149)
+++ /trunk/qt/options.cc (revision 14150)
@@ -125,5 +125,5 @@
p = mySourceButton = new QPushButton;
p->setIcon (filePixmap);
- p->setStyleSheet (QString::fromAscii ("text-align: left; padding-left: 5; padding-right: 5"));
+ p->setStyleSheet (QString::fromUtf8 ("text-align: left; padding-left: 5; padding-right: 5"));
p->installEventFilter (this);
w = p;
@@ -140,5 +140,5 @@
}
- const int width = fontMetrics.size (0, QString::fromAscii ("This is a pretty long torrent filename indeed.torrent")).width ();
+ const int width = fontMetrics.size (0, QString::fromUtf8 ("This is a pretty long torrent filename indeed.torrent")).width ();
w->setMinimumWidth (width);
layout->addWidget (w, row, 1);
Index: /trunk/qt/prefs-dialog.cc
===================================================================
--- /trunk/qt/prefs-dialog.cc (revision 14149)
+++ /trunk/qt/prefs-dialog.cc (revision 14150)
@@ -22,5 +22,4 @@
#include
#include
-#include
#include
#include
@@ -136,5 +135,5 @@
const int minutes( myPrefs.getInt( key ) );
QTimeEdit * e = new QTimeEdit( );
- e->setDisplayFormat( QString::fromAscii( "hh:mm" ) );
+ e->setDisplayFormat( QString::fromUtf8( "hh:mm" ) );
e->setProperty( PREF_KEY, key );
e->setTime( QTime().addSecs( minutes * 60 ) );
@@ -234,9 +233,9 @@
h->setSpacing( HIG :: PAD );
QLabel * label = new QLabel;
- label->setPixmap( QPixmap( QString::fromAscii( ":/icons/alt-limit-off.png" ) ) );
+ label->setPixmap( QPixmap( QString::fromUtf8( ":/icons/alt-limit-off.png" ) ) );
label->setAlignment( Qt::AlignLeft|Qt::AlignVCenter );
h->addWidget( label );
label = new QLabel( tr( "Alternative Speed Limits" ) );
- label->setStyleSheet( QString::fromAscii( "font: bold" ) );
+ label->setStyleSheet( QString::fromUtf8( "font: bold" ) );
label->setAlignment( Qt::AlignLeft|Qt::AlignVCenter );
h->addWidget( label );
@@ -573,5 +572,5 @@
b = myWatchButton = new QPushButton;
b->setIcon( folderPixmap );
- b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ b->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( b, SIGNAL(clicked(bool)), this, SLOT(onWatchClicked(void)) );
hig->addRow( l, b );
@@ -586,5 +585,5 @@
b = myDestinationButton = new QPushButton;
b->setIcon( folderPixmap );
- b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ b->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( b, SIGNAL(clicked(bool)), this, SLOT(onDestinationClicked(void)) );
hig->addRow( tr( "Save to &Location:" ), b );
@@ -611,5 +610,5 @@
b = myIncompleteButton = new QPushButton;
b->setIcon( folderPixmap );
- b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ b->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( b, SIGNAL(clicked(bool)), this, SLOT(onIncompleteClicked(void)) );
hig->addRow( myIncompleteCheckbox, b );
@@ -619,5 +618,5 @@
b = myTorrentDoneScriptButton = new QPushButton;
b->setIcon( filePixmap );
- b->setStyleSheet( QString::fromAscii( "text-align: left; padding-left: 5; padding-right: 5" ) );
+ b->setStyleSheet( QString::fromUtf8( "text-align: left; padding-left: 5; padding-right: 5" ) );
connect( b, SIGNAL(clicked(bool)), this, SLOT(onScriptClicked(void)) );
hig->addRow( myTorrentDoneScriptCheckbox, b );
Index: /trunk/qt/qtr.pro
===================================================================
--- /trunk/qt/qtr.pro (revision 14149)
+++ /trunk/qt/qtr.pro (revision 14150)
@@ -2,5 +2,5 @@
NAME = "Transmission"
DESCRIPTION = "Transmission: a fast, easy, and free BitTorrent client"
-VERSION = 2.00
+VERSION = 2.81
LICENSE = "GPL"
@@ -12,6 +12,6 @@
man.files = transmission-qt.1
-CONFIG += qt qdbus thread debug link_pkgconfig
-QT += network
+CONFIG += qt thread debug link_pkgconfig
+QT += network dbus widgets
PKGCONFIG = fontconfig libcurl openssl libevent
Index: /trunk/qt/session.cc
===================================================================
--- /trunk/qt/session.cc (revision 14149)
+++ /trunk/qt/session.cc (revision 14150)
@@ -691,9 +691,9 @@
QNetworkRequest request;
request.setUrl (myUrl);
- request.setRawHeader ("User-Agent", QString (QCoreApplication::instance ()->applicationName () + "/" + LONG_VERSION_STRING).toAscii ());
+ request.setRawHeader ("User-Agent", QString (QCoreApplication::instance ()->applicationName () + "/" + LONG_VERSION_STRING).toUtf8 ());
request.setRawHeader ("Content-Type", "application/json; charset=UTF-8");
if (!mySessionId.isEmpty ())
- request.setRawHeader (TR_RPC_SESSION_ID_HEADER, mySessionId.toAscii ());
+ request.setRawHeader (TR_RPC_SESSION_ID_HEADER, mySessionId.toUtf8 ());
const QByteArray requestData (json);
Index: /trunk/qt/squeezelabel.h
===================================================================
--- /trunk/qt/squeezelabel.h (revision 14149)
+++ /trunk/qt/squeezelabel.h (revision 14150)
@@ -43,5 +43,5 @@
#define SQUEEZELABEL_H
-#include
+#include
class SqueezeLabel : public QLabel
Index: /trunk/qt/torrent-model.cc
===================================================================
--- /trunk/qt/torrent-model.cc (revision 14149)
+++ /trunk/qt/torrent-model.cc (revision 14150)
@@ -23,9 +23,12 @@
TorrentModel :: clear( )
{
+ beginResetModel ();
+
myIdToRow.clear( );
myIdToTorrent.clear( );
foreach( Torrent * tor, myTorrents ) delete tor;
myTorrents.clear( );
- reset( );
+
+ endResetModel ();
}
Index: /trunk/qt/utils.h
===================================================================
--- /trunk/qt/utils.h (revision 14149)
+++ /trunk/qt/utils.h (revision 14150)
@@ -43,10 +43,10 @@
///
- static bool isMagnetLink( const QString& s ) { return s.startsWith( QString::fromAscii( "magnet:?" ) ); }
+ static bool isMagnetLink( const QString& s ) { return s.startsWith( QString::fromUtf8( "magnet:?" ) ); }
static bool isHexHashcode( const QString& s )
{
if( s.length() != 40 ) return false;
- foreach( QChar ch, s ) if( !isxdigit( ch.toAscii() ) ) return false;
+ foreach( QChar ch, s ) if( !isxdigit( ch.unicode() ) ) return false;
return true;
}
@@ -54,7 +54,7 @@
static bool isUriWithSupportedScheme( const QString& s )
{
- static const QString ftp = QString::fromAscii( "ftp://" );
- static const QString http = QString::fromAscii( "http://" );
- static const QString https = QString::fromAscii( "https://" );
+ static const QString ftp = QString::fromUtf8( "ftp://" );
+ static const QString http = QString::fromUtf8( "http://" );
+ static const QString https = QString::fromUtf8( "https://" );
return s.startsWith(http) || s.startsWith(https) || s.startsWith(ftp);
}
Index: /trunk/qt/watchdir.cc
===================================================================
--- /trunk/qt/watchdir.cc (revision 14149)
+++ /trunk/qt/watchdir.cc (revision 14150)
@@ -53,5 +53,5 @@
if( err )
ret = ERROR;
- else if( myModel.hasTorrent( QString::fromAscii( inf.hashString ) ) )
+ else if( myModel.hasTorrent( QString::fromUtf8( inf.hashString ) ) )
ret = DUPLICATE;
else
@@ -107,5 +107,5 @@
// try to add any new files which end in .torrent
const QSet newFiles( files - myWatchDirFiles );
- const QString torrentSuffix = QString::fromAscii( ".torrent" );
+ const QString torrentSuffix = QString::fromUtf8( ".torrent" );
foreach( QString name, newFiles ) {
if( name.endsWith( torrentSuffix, Qt::CaseInsensitive ) ) {