1
0
Fork 0
mirror of https://github.com/transmission/transmission synced 2024-12-23 16:24:02 +00:00
transmission/qt/Utils.h
Mike Gelfand 58312e6c16 Torrent properties dialog improvements
Simplify DND checkboxes drawing, this also fixes incorrect drawing on
Mac when file tree widget is inactive.
Do better job calculating column widths for file tree to avoid ellipsis.
Fix file tree sorting order for size and priority columns.
Change key to toggle priorities to Shift+Space instead of Enter/Return
to avoid conflicts with name editing and default button handling.
Fix selected tracker item background drawing in certain cases.
2015-06-15 21:07:46 +00:00

70 lines
1.7 KiB
C++

/*
* This file Copyright (C) 2009-2015 Mnemosyne LLC
*
* It may be used under the GNU GPL versions 2 or 3
* or any future license endorsed by Mnemosyne LLC.
*
* $Id$
*/
#ifndef QTR_UTILS_H
#define QTR_UTILS_H
#include <cctype> // isxdigit()
#include <QRect>
#include <QString>
class QAbstractItemView;
class QColor;
class QHeaderView;
class QIcon;
class Utils
{
public:
static QIcon guessMimeIcon (const QString& filename);
// Test if string is UTF-8 or not
static bool isValidUtf8 (const char * s);
static QString removeTrailingDirSeparator (const QString& path);
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);
}
static int measureViewItem (QAbstractItemView * view, const QString& text);
static int measureHeaderItem (QHeaderView * view, const QString& text);
static QColor getFadedColor (const QColor& color);
///
/// URLs
///
static bool isMagnetLink (const QString& s)
{
return s.startsWith (QString::fromUtf8 ("magnet:?"));
}
static bool isHexHashcode (const QString& s)
{
if (s.length() != 40)
return false;
for (const QChar ch: s) if (!isxdigit (ch.unicode())) return false;
return true;
}
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);
}
};
#endif // QTR_UTILS_H