CuteLogger
Fast and simple logging solution for Qt based applications
util.h
1 /*
2  * Copyright (c) 2014-2020 Meltytech, LLC
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program. If not, see <http://www.gnu.org/licenses/>.
16  */
17 
18 #ifndef UTIL_H
19 #define UTIL_H
20 
21 #include <QString>
22 #include <QPalette>
23 #include <QUrl>
24 #include <MltProperties.h>
25 
26 class QWidget;
27 class QDoubleSpinBox;
28 class QTemporaryFile;
29 
30 namespace Mlt {
31  class Producer;
32 }
33 
34 class Util
35 {
36 private:
37  Util() {}
38 public:
39  static QString baseName(const QString &filePath);
40  static void setColorsToHighlight(QWidget* widget, QPalette::ColorRole role = QPalette::Window);
41  static void showInFolder(const QString &path);
42  static bool warnIfNotWritable(const QString& filePath, QWidget* parent, const QString& caption);
43  static QString producerTitle(const Mlt::Producer& producer);
44  static QString removeFileScheme(QUrl &url);
45  static QStringList sortedFileList(const QList<QUrl>& urls);
46  static int coerceMultiple(int value, int multiple = 2);
47  static QList<QUrl> expandDirectories(const QList<QUrl>& urls);
48  static bool isDecimalPoint(QChar ch);
49  static bool isNumeric(QString& str);
50  static bool convertNumericString(QString& str, QChar decimalPoint);
51  static bool convertDecimalPoints(QString& str, QChar decimalPoint);
52  static void showFrameRateDialog(const QString& caption, int numerator, QDoubleSpinBox* spinner, QWidget* parent = Q_NULLPTR);
53  static QTemporaryFile* writableTemporaryFile(const QString& filePath = QString(), const QString& templateName = QString());
54  static void applyCustomProperties(Mlt::Producer& destination, Mlt::Producer& source, int in, int out);
55  static QString getFileHash(const QString& path);
56  static QString getHash(Mlt::Properties& properties);
57  static bool hasDriveLetter(const QString& path);
58 };
59 
60 #endif // UTIL_H