]> granicus.if.org Git - transmission/commitdiff
support qt5 in transmission-qt
authorJordan Lee <jordan@transmissionbt.com>
Sat, 27 Jul 2013 21:58:14 +0000 (21:58 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Sat, 27 Jul 2013 21:58:14 +0000 (21:58 +0000)
20 files changed:
qt/README.txt
qt/about.cc
qt/add-data.cc
qt/app.cc
qt/details.cc
qt/favicon.cc
qt/file-tree.cc
qt/filterbar.cc
qt/freespace-label.cc
qt/freespace-label.h
qt/mainwin.cc
qt/make-dialog.cc
qt/options.cc
qt/prefs-dialog.cc
qt/qtr.pro
qt/session.cc
qt/squeezelabel.h
qt/torrent-model.cc
qt/utils.h
qt/watchdir.cc

index 0053274a91adf8bf81b43f2f3171485b536f4c3a..b0efa35c8829091eac65384672e9186b86dcc24f 100644 (file)
@@ -36,9 +36,9 @@ BUILDING ON OS X
 
 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"
       (Feel free to replace /usr with /usr/local or /opt or whatever)
index bf9a79ede06151abb98c302d44d50167f45df549..43326bc09d48012fd9da4171745ef8ab9cb3b025 100644 (file)
@@ -37,21 +37,21 @@ AboutDialog :: AboutDialog (QWidget * parent):
   QVBoxLayout * v = new QVBoxLayout (this);
 
   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);
 
   QFont f (font ());
   f.setWeight (QFont::Bold);
   f.setPointSize (int (f.pointSize () * 1.2));
-  l = new QLabel (tr ("<big>Transmission %1</big>").arg (QString::fromAscii (LONG_VERSION_STRING)));
+  l = new QLabel (tr ("<big>Transmission %1</big>").arg (QString::fromUtf8 (LONG_VERSION_STRING)));
   l->setAlignment (Qt::AlignCenter);
   l->setFont (f);
   l->setMargin (8);
   v->addWidget (l);
 
   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);
 
@@ -59,7 +59,7 @@ AboutDialog :: AboutDialog (QWidget * parent):
   l->setAlignment (Qt::AlignCenter);
   v->addWidget (l);
 
-  l = new QLabel (QString::fromAscii ("<a href=\"http://www.transmissionbt.com/\">http://www.transmissionbt.com/</a>"));
+  l = new QLabel (QString::fromUtf8 ("<a href=\"http://www.transmissionbt.com/\">http://www.transmissionbt.com/</a>"));
   l->setOpenExternalLinks (true);
   l->setAlignment (Qt::AlignCenter);
   v->addWidget (l);
@@ -89,7 +89,7 @@ AboutDialog :: showCredits ()
   QMessageBox::about (
     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 68af961ade0690134a268196cf679176d73139e2..f52cbf795bfbcceebfcdf71cc7598e4f7842cb15 100644 (file)
@@ -43,7 +43,7 @@ AddData :: set( const QString& key )
     }
     else if( Utils::isHexHashcode( key ) )
     {
-        magnet = QString::fromAscii("magnet:?xt=urn:btih:") + key;
+        magnet = QString::fromUtf8("magnet:?xt=urn:btih:") + key;
         type = MAGNET;
     }
     else
index f6381febb6c1ee2b3dedde7c8d76f9f1dd073c9d..139a647778e2b8447d4811cdc74926a21f9362e3 100644 (file)
--- a/qt/app.cc
+++ b/qt/app.cc
@@ -45,9 +45,9 @@
 
 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");
 
@@ -89,7 +89,7 @@ MyApp :: MyApp (int& argc, char ** argv):
   QApplication (argc, argv),
   myLastFullUpdateTime (0)
 {
-  const QString MY_CONFIG_NAME = QString::fromAscii ("transmission");
+  const QString MY_CONFIG_NAME = QString::fromUtf8 ("transmission");
 
   setApplicationName (MY_CONFIG_NAME);
 
@@ -108,7 +108,7 @@ MyApp :: MyApp (int& argc, char ** argv):
   QList<int> sizes;
   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);
 
   // parse the command-line arguments
@@ -464,15 +464,15 @@ MyApp :: raise ()
 bool
 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");
+  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::fromAscii ("Notify"));
+  QDBusMessage m = QDBusMessage::createMethodCall (dbusServiceName, dbusPath, dbusInterfaceName, QString::fromUtf8 ("Notify"));
   QList<QVariant> 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
   args.append (QStringList ());                       // actions - unused for plain passive popups
@@ -510,7 +510,7 @@ main (int argc, char * argv[])
       QDBusMessage request = QDBusMessage::createMethodCall (DBUS_SERVICE,
                                                              DBUS_OBJECT_PATH,
                                                              DBUS_INTERFACE,
-                                                             QString::fromAscii ("AddMetainfo"));
+                                                             QString::fromUtf8 ("AddMetainfo"));
       QList<QVariant> arguments;
       AddData a (addme[i]);
       switch (a.type)
index 19f01a5b8737e9e3ffc7d7958ce0fb6892497d1e..3d384c7a8486cb90d96d79ff4d5dba9380957626 100644 (file)
@@ -867,7 +867,7 @@ Details :: refresh ()
           foreach (QChar ch, code)
             {
               QString txt;
-              switch (ch.toAscii ())
+              switch (ch.unicode ())
                 {
                   case 'O': txt = tr ("Optimistic unchoke"); break;
                   case 'D': txt = tr ("Downloading from this peer"); break;
index 41b6f3f10010c52c3f17412c5433b1dc9798f131..6390bea1fd636d73529282497524d02407eac8d4 100644 (file)
  * $Id$
  */
 
-#include <QDesktopServices>
 #include <QDir>
 #include <QNetworkAccessManager>
 #include <QNetworkReply>
 #include <QNetworkRequest>
+#include <QStandardPaths>
 
 #include "favicon.h"
 
@@ -40,7 +40,7 @@ Favicons :: ~Favicons( )
 QString
 Favicons :: getCacheDir( )
 {
-    const QString base = QDesktopServices::storageLocation( QDesktopServices::CacheLocation );
+    const QString base = QStandardPaths::writableLocation (QStandardPaths::CacheLocation);
     return QDir( base ).absoluteFilePath( "favicons" );
 }
 
index d46f8396392cc18f0c1a9c614030e54a8cda7ea8..62cf870eab45c1b32d260de330103e24b52fc344 100644 (file)
@@ -436,7 +436,6 @@ FileTreeModel :: setData (const QModelIndex& index, const QVariant& newname, int
   if (role == Qt::EditRole)
     {
       QString oldpath;
-      QModelIndex walk = index;
       FileTreeItem * item = itemFromIndex (index);
 
       while (item && !item->name().isEmpty())
@@ -575,9 +574,9 @@ FileTreeModel :: clearSubtree (const QModelIndex& top)
 void
 FileTreeModel :: clear ()
 {
+  beginResetModel ();
   clearSubtree (QModelIndex());
-
-  reset ();
+  endResetModel ();
 }
 
 FileTreeItem *
@@ -613,7 +612,7 @@ FileTreeModel :: addFile (int                   fileIndex,
 {
   bool added = false;
   FileTreeItem * item;
-  QStringList tokens = filename.split (QChar::fromAscii('/'));
+  QStringList tokens = filename.split (QChar::fromLatin1('/'));
 
   item = findItemForFileIndex (fileIndex);
 
@@ -886,7 +885,7 @@ FileTreeView :: FileTreeView (QWidget * parent, bool isEditable):
   for (int i=0; i<NUM_COLUMNS; ++i)
     {
       setColumnHidden (i, (i<FIRST_VISIBLE_COLUMN) || (LAST_VISIBLE_COLUMN<i));
-      header()->setResizeMode(i, QHeaderView::Interactive);
+      header()->setSectionResizeMode(i, QHeaderView::Interactive);
     }
 
   connect (this, SIGNAL(clicked(const QModelIndex&)),
index 397cd59fdb98ae771cd52d370ef060d68ad57716..483427c2d0d43a2474d37784c1ff6162c43cf2be 100644 (file)
  * $Id$
  */
 
+#include <QAbstractItemView>
+#include <QPushButton>
+#include <QLabel>
+#include <QHBoxLayout>
+#include <QLineEdit>
+#include <QStylePainter>
 #include <QString>
 #include <QtGui>
 
index ec98576c380dc28c141f19fa0564e1737cc3ec68..3a612d3c2c11f10999d1d2a39971b2cf81c6a47e 100644 (file)
@@ -73,6 +73,8 @@ FreespaceLabel :: onTimer ()
 void
 FreespaceLabel :: onSessionExecuted (int64_t tag, const QString& result, struct tr_variant * arguments)
 {
+  Q_UNUSED (result);
+
   if (tag != myTag)
     return;
 
index d280ed2e8f9975132b6c141f01f50d2dead3591a..e79cc9c46184f4cf0f6591a73ae399cd4fd131da 100644 (file)
@@ -16,7 +16,7 @@
 #include <QString>
 #include <QTimer>
 
-#include <QtGui/QLabel>
+#include <QLabel>
 
 class Session;
 
index aa31133e736331e6612bac9aef9584be8043bf92..cb93aeef25ba0e81e6d1c86b8d303211d68cecc3 100644 (file)
 #include <iostream>
 
 #include <QtGui>
+#include <QProxyStyle>
+#include <QLabel>
+#include <QFileDialog>
+#include <QMessageBox>
 
 #include <libtransmission/transmission.h>
 #include <libtransmission/utils.h>
index 6e61566fb99de50d574afdf5fb78731a19ee0e18..1432a41e7d1ad83a1ebac2069cc32183ad88953d 100644 (file)
@@ -21,6 +21,7 @@
 #include <QLabel>
 #include <QLineEdit>
 #include <QList>
+#include <QMimeData>
 #include <QPlainTextEdit>
 #include <QProgressBar>
 #include <QPushButton>
@@ -342,7 +343,7 @@ MakeDialog :: MakeDialog( Session & session, QWidget * parent ):
         const QPixmap folderPixmap = folderIcon.pixmap( iconSize );
         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 );
         connect( b, SIGNAL(clicked(bool)),
@@ -356,7 +357,7 @@ MakeDialog :: MakeDialog( Session & session, QWidget * parent ):
         myFolderButton = new QPushButton;
         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)) );
         hig->addRow( myFolderRadio, myFolderButton );
@@ -371,7 +372,7 @@ MakeDialog :: MakeDialog( Session & session, QWidget * parent ):
         myFileButton = new QPushButton;
         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)) );
         hig->addRow( myFileRadio, myFileButton );
@@ -384,7 +385,7 @@ MakeDialog :: MakeDialog( Session & session, QWidget * parent ):
     hig->addSectionTitle( tr( "Properties" ) );
 
         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 );
         QLabel * l = new QLabel( tr( "To add a backup URL, add it on the line after the primary URL.\nTo add another primary URL, add it after a blank line." ) );
index 9e79826e8a48a762f17ca06caf889568a9199a5f..6984ff488570aeb44b5e90388334e7860ae74504 100644 (file)
@@ -124,7 +124,7 @@ Options :: Options (Session& session, const Prefs& prefs, const AddData& addme,
     {
       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;
       connect (p, SIGNAL (clicked (bool)), this, SLOT (onFilenameClicked ()));
@@ -139,7 +139,7 @@ Options :: Options (Session& session, const Prefs& prefs, const AddData& addme,
       connect (e, SIGNAL(editingFinished()), this, SLOT(onSourceEditingFinished()));
     }
 
-  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);
   l->setBuddy (w);
index f41fad414b8ff3a9dbb12eceba50704d873ec928..4474a97bc48ac7f1ee4941c3c43128388d458503 100644 (file)
@@ -21,7 +21,6 @@
 #include <QFileIconProvider>
 #include <QFileInfo>
 #include <QHBoxLayout>
-#include <QHttp>
 #include <QIcon>
 #include <QLabel>
 #include <QLineEdit>
@@ -135,7 +134,7 @@ PrefsDialog :: timeEditNew( int key )
 {
     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 ) );
     myWidgets.insert( key, e );
@@ -233,11 +232,11 @@ PrefsDialog :: createSpeedTab( )
     QHBoxLayout * h = new QHBoxLayout;
     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 );
     hig->addSectionTitle( h );
@@ -572,7 +571,7 @@ PrefsDialog :: createDownloadingTab( )
         l = checkBoxNew( tr( "Automatically add .torrent files &from:" ), Prefs::DIR_WATCH_ENABLED );
         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 );
         enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), b );
@@ -585,7 +584,7 @@ PrefsDialog :: createDownloadingTab( )
 
         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 );
 
@@ -610,7 +609,7 @@ PrefsDialog :: createDownloadingTab( )
         l = myIncompleteCheckbox = checkBoxNew( tr( "Keep &incomplete files in:" ), Prefs::INCOMPLETE_DIR_ENABLED );
         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 );
         enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), b );
@@ -618,7 +617,7 @@ PrefsDialog :: createDownloadingTab( )
         l = myTorrentDoneScriptCheckbox = checkBoxNew( tr( "Call scrip&t when torrent is completed:" ), Prefs::SCRIPT_TORRENT_DONE_ENABLED );
         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 );
         enableBuddyWhenChecked( qobject_cast<QCheckBox*>(l), b );
index aaae24441ffb47d84cbb97f2a7ecba0aaa4989cd..27dc22b9d6e9ef0ad90ec51a02fdd0057f9aaaff 100644 (file)
@@ -1,7 +1,7 @@
 TARGET = transmission-qt
 NAME = "Transmission"
 DESCRIPTION = "Transmission: a fast, easy, and free BitTorrent client"
-VERSION = 2.00
+VERSION = 2.81
 LICENSE = "GPL"
 
 target.path = /bin
@@ -11,8 +11,8 @@ unix: INSTALLS += man
 man.path = /share/man/man1/
 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
 
 TRANSMISSION_TOP = ..
index 092c579049dec866f43ed43545016a918f906446..374ec9c99bae0a2280470896f243de3a705ffc35 100644 (file)
@@ -690,11 +690,11 @@ Session :: exec (const char * json)
     {
       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);
       QNetworkReply * reply = networkAccessManager ()->post (request, requestData);
index 3c254702dba9d09cbe8453b7568e7e6ce1b21f5c..b5c0b7b283d5ecd1fbb33c38214bf936061087da 100644 (file)
@@ -42,7 +42,7 @@
 #ifndef SQUEEZELABEL_H
 #define SQUEEZELABEL_H
 
-#include <QtGui/QLabel>
+#include <QLabel>
 
 class SqueezeLabel : public QLabel
 {
index c99ea833b4f7d388f295677cdc4bcdb3fc7b1ed1..fe347ce8e63833e59df7b2db23bb16b4311dbcf2 100644 (file)
 void
 TorrentModel :: clear( )
 {
+    beginResetModel ();
+
     myIdToRow.clear( );
     myIdToTorrent.clear( );
     foreach( Torrent * tor, myTorrents ) delete tor;
     myTorrents.clear( );
-    reset( );
+
+    endResetModel ();
 }
 
 int
index 9af8100f07e242f176101677491ac8c764e91995..6bf739aa2800bcb89d3756d35ceee94833830f12 100644 (file)
@@ -42,20 +42,20 @@ class Utils: public QObject
         /// URLs
         ///
 
-        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;
         }
 
         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 a7b5aa45f0ea20ef7542ded7943f3d15e3f76c98..5f73e69b4396024011b8602f1c2d904e848aa393 100644 (file)
@@ -52,7 +52,7 @@ WatchDir :: metainfoTest( const QString& filename ) const
     const int err = tr_torrentParse( ctor, &inf );
     if( err )
         ret = ERROR;
-    else if( myModel.hasTorrent( QString::fromAscii( inf.hashString ) ) )
+    else if( myModel.hasTorrent( QString::fromUtf8( inf.hashString ) ) )
         ret = DUPLICATE;
     else
         ret = OK;
@@ -106,7 +106,7 @@ WatchDir :: watcherActivated( const QString& path )
 
     // try to add any new files which end in .torrent
     const QSet<QString> 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 ) ) {
             const QString filename = dir.absoluteFilePath( name );