Krita Source Code Documentation
Loading...
Searching...
No Matches
KisPortingUtils.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2024 Halla Rempt <halla@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KISPORTINGUTILS_H
7#define KISPORTINGUTILS_H
8
9#include <QIODevice>
10#include <QTextStream>
11#include <QWidget>
12#include <QScreen>
13#include <QGuiApplication>
14
16{
17
18inline void setUtf8OnStream(QTextStream &stream)
19{
20#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
21 stream.setCodec("UTF-8");
22#else
23 stream.setEncoding(QStringConverter::Utf8);
24#endif
25}
26
27inline int getScreenNumberForWidget(const QWidget *w)
28{
29 QList<QScreen *> screens = QGuiApplication::screens();
30 if (w) {
31 if (screens.contains(w->screen())) {
32 return screens.indexOf(w->screen());
33 }
34 }
35
36 return screens.indexOf(QGuiApplication::primaryScreen());
37}
38
39inline QString stringRemoveLast(QString str)
40{
41#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
42 return !str.isEmpty() ? str.remove(str.size() - 1, 1) : str;
43#else
44 return str.removeLast();
45#endif
46}
47
48inline QString stringRemoveFirst(QString str)
49{
50#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
51 return !str.isEmpty() ? str.remove(0, 1) : str;
52#else
53 return str.removeFirst();
54#endif
55}
56
57}
58
59#if (QT_VERSION < QT_VERSION_CHECK(6, 0, 0))
60#define Q_UNREACHABLE_RETURN(...) Q_UNREACHABLE(); return __VA_ARGS__
61
62namespace Qt {
63inline namespace Literals {
64inline namespace StringLiterals {
65
66constexpr inline QLatin1Char operator""_L1(char ch) noexcept
67{
68 return QLatin1Char(ch);
69}
70
71constexpr inline QLatin1String operator""_L1(const char *str, size_t size) noexcept
72{
73 return QLatin1String(str, size);
74}
75
76} // StringLiterals
77} // Literals
78} // Qt
79
80#endif
81
82
83#endif // KISPORTINGUTILS_H
QString stringRemoveFirst(QString str)
int getScreenNumberForWidget(const QWidget *w)
QString stringRemoveLast(QString str)
void setUtf8OnStream(QTextStream &stream)