2009-04-09 18:55:47 +00:00
|
|
|
/*
|
2014-01-19 01:09:44 +00:00
|
|
|
* This file Copyright (C) 2009-2014 Mnemosyne LLC
|
2009-04-09 18:55:47 +00:00
|
|
|
*
|
2014-01-21 03:10:30 +00:00
|
|
|
* It may be used under the GNU GPL versions 2 or 3
|
2014-01-19 01:09:44 +00:00
|
|
|
* or any future license endorsed by Mnemosyne LLC.
|
2009-04-09 18:55:47 +00:00
|
|
|
*
|
2009-05-31 19:33:48 +00:00
|
|
|
* $Id$
|
2009-04-09 18:55:47 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef QTR_UTILS
|
|
|
|
#define QTR_UTILS
|
|
|
|
|
|
|
|
#include <QIcon>
|
2015-01-17 16:59:42 +00:00
|
|
|
#include <QObject>
|
|
|
|
#include <QRect>
|
|
|
|
#include <QString>
|
2009-04-09 18:55:47 +00:00
|
|
|
|
2011-01-02 23:42:46 +00:00
|
|
|
#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 () {}
|
2010-07-03 00:25:22 +00:00
|
|
|
|
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-08 19:59:47 +00:00
|
|
|
|
2015-01-17 16:59:42 +00:00
|
|
|
static void narrowRect (QRect& rect, int dx1, int dx2, Qt::LayoutDirection direction)
|
|
|
|
{
|
|
|
|
if (direction == Qt::RightToLeft)
|
|
|
|
qSwap (dx1, dx2);
|
|
|
|
rect.adjust (dx1, 0, -dx2, 0);
|
|
|
|
}
|
|
|
|
|
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
|
|
|
|
///
|
2010-05-13 23:54:32 +00:00
|
|
|
|
2013-09-14 22:45:04 +00:00
|
|
|
static bool isMagnetLink (const QString& s)
|
|
|
|
{
|
|
|
|
return s.startsWith (QString::fromUtf8 ("magnet:?"));
|
|
|
|
}
|
2010-05-13 23:54:32 +00:00
|
|
|
|
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;
|
|
|
|
}
|
2010-05-13 23:54:32 +00:00
|
|
|
|
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
|