transmission/qt/utils.h

67 lines
1.5 KiB
C
Raw Normal View History

2009-04-09 18:55:47 +00:00
/*
* This file Copyright (C) 2009-2014 Mnemosyne LLC
2009-04-09 18:55:47 +00:00
*
* It may be used under the GNU Public License v2 or v3 licenses,
* or any future license endorsed by Mnemosyne LLC.
2009-04-09 18:55:47 +00:00
*
* $Id$
2009-04-09 18:55:47 +00:00
*/
#ifndef QTR_UTILS
#define QTR_UTILS
#include <QString>
#include <QObject>
#include <QIcon>
#include <cctype> // isxdigit()
2009-04-09 18:55:47 +00:00
#include "speed.h"
class Utils: public QObject
{
2013-09-14 22:45:04 +00:00
Q_OBJECT
2009-04-09 18:55:47 +00:00
2013-09-14 22:45:04 +00:00
public:
Utils () {}
virtual ~Utils () {}
2013-09-14 22:45:04 +00:00
public:
static QString remoteFileChooser (QWidget * parent, const QString& title, const QString& myPath, bool dir, bool local);
static QIcon guessMimeIcon (const QString& filename);
// Test if string is UTF-8 or not
static bool isValidUtf8 (const char *s);
2009-04-09 18:55:47 +00:00
2013-09-14 22:45:04 +00:00
static QString removeTrailingDirSeparator (const QString& path);
2013-09-14 22:45:04 +00:00
// meh
static void toStderr (const QString& qstr);
2009-04-09 18:55:47 +00:00
2013-09-14 22:45:04 +00:00
///
/// URLs
///
2013-09-14 22:45:04 +00:00
static bool isMagnetLink (const QString& s)
{
return s.startsWith (QString::fromUtf8 ("magnet:?"));
}
2013-09-14 22:45:04 +00:00
static bool isHexHashcode (const QString& s)
{
if (s.length() != 40)
return false;
foreach (QChar ch, s) if (!isxdigit (ch.unicode())) return false;
return true;
}
2013-09-14 22:45:04 +00:00
static bool isUriWithSupportedScheme (const QString& s)
{
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);
}
2009-04-09 18:55:47 +00:00
};
#endif