File indexing completed on 2024-05-12 04:58:28
0001 /* ============================================================ 0002 * Falkon - Qt web browser 0003 * Copyright (C) 2010-2016 David Rosca <nowrep@gmail.com> 0004 * 0005 * This program is free software: you can redistribute it and/or modify 0006 * it under the terms of the GNU General Public License as published by 0007 * the Free Software Foundation, either version 3 of the License, or 0008 * (at your option) any later version. 0009 * 0010 * This program is distributed in the hope that it will be useful, 0011 * but WITHOUT ANY WARRANTY; without even the implied warranty of 0012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 0013 * GNU General Public License for more details. 0014 * 0015 * You should have received a copy of the GNU General Public License 0016 * along with this program. If not, see <http://www.gnu.org/licenses/>. 0017 * ============================================================ */ 0018 #ifndef QZTOOLS_H 0019 #define QZTOOLS_H 0020 0021 #include <QFileDialog> 0022 #include <QStylePainter> 0023 0024 #include "qzcommon.h" 0025 0026 class QSslCertificate; 0027 class QFontMetrics; 0028 class QPixmap; 0029 class QIcon; 0030 class QWidget; 0031 class QUrl; 0032 0033 class FALKON_EXPORT QzTools 0034 { 0035 public: 0036 static QByteArray pixmapToByteArray(const QPixmap &pix); 0037 static QPixmap pixmapFromByteArray(const QByteArray &data); 0038 static QUrl pixmapToDataUrl(const QPixmap &pix); 0039 static QPixmap dpiAwarePixmap(const QString &path); 0040 0041 static QString readAllFileContents(const QString &filename); 0042 static QByteArray readAllFileByteContents(const QString &filename); 0043 0044 static void centerWidgetOnScreen(QWidget* w); 0045 static void centerWidgetToParent(QWidget* w, QWidget* parent); 0046 0047 static bool removeRecursively(const QString &filePath); 0048 static bool copyRecursively(const QString &sourcePath, const QString &targetPath); 0049 0050 static QString samePartOfStrings(const QString &one, const QString &other); 0051 static QString urlEncodeQueryString(const QUrl &url); 0052 static QString fromPunycode(const QString &str); 0053 static QString escapeSqlGlobString(QString urlString); 0054 0055 static QString ensureUniqueFilename(const QString &name, const QString &appendFormat = QSL("(%1)")); 0056 static QString getFileNameFromUrl(const QUrl &url); 0057 static QString filterCharsFromFilename(const QString &name); 0058 0059 static QString lastPathForFileDialog(const QString &dialogName, const QString &fallbackPath); 0060 static void saveLastPathForFileDialog(const QString &dialogName, const QString &path); 0061 0062 static QString alignTextToWidth(const QString &string, const QString &text, const QFontMetrics &metrics, int width); 0063 static QString fileSizeToString(qint64 size); 0064 0065 static QPixmap createPixmapForSite(const QIcon &icon, const QString &title, const QString &url); 0066 static QString applyDirectionToPage(QString &pageContents); 0067 static QString truncatedText(const QString &text, int size); 0068 0069 static QString resolveFromPath(const QString &name); 0070 static QStringList splitCommandArguments(const QString &command); 0071 static bool startExternalProcess(const QString &executable, const QString &args); 0072 0073 static QRegion roundedRect(const QRect &rect, int radius); 0074 static QIcon iconFromFileName(const QString &fileName); 0075 static bool isUtf8(const char* string); 0076 0077 static bool containsSpace(const QString &str); 0078 0079 // QFileDialog static functions that remembers last used directory 0080 static QString getExistingDirectory(const QString &name, QWidget* parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = QFileDialog::ShowDirsOnly); 0081 static QString getOpenFileName(const QString &name, QWidget* parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString* selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()); 0082 static QStringList getOpenFileNames(const QString &name, QWidget* parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString* selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()); 0083 static QString getSaveFileName(const QString &name, QWidget* parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString* selectedFilter = nullptr, QFileDialog::Options options = QFileDialog::Options()); 0084 0085 static bool matchDomain(const QString &pattern, const QString &domain); 0086 static QKeySequence actionShortcut(const QKeySequence &shortcut, const QKeySequence &fallBack, const QKeySequence &shortcutRtl = QKeySequence(), const QKeySequence &fallbackRtl = QKeySequence()); 0087 0088 static QString operatingSystem(); 0089 static QString cpuArchitecture(); 0090 static QString operatingSystemLong(); 0091 0092 static void setWmClass(const QString &name, const QWidget* widget); 0093 0094 template <typename T> 0095 static bool containsIndex(const T &container, int index) 0096 { 0097 return (index >= 0 && container.count() > index); 0098 } 0099 0100 static void paintDropIndicator(QWidget *widget, const QRect &r); 0101 }; 0102 0103 #endif // QZTOOLS_H