Skip to content

Commit 64d4ee6

Browse files
authored
Replace static method wrappers with aliases (#1243)
* cxx-qt-lib: replace static method wrappers with aliases * cxx-qt-lib: run clang-format on qpoint.h * cxx-qt-lib: revert changes to QUuid * cxx-qt-lib: use function refs instead of pointers * cxx-qt-lib: inline function pointers
1 parent 626371a commit 64d4ee6

22 files changed

+79
-345
lines changed

crates/cxx-qt-lib/build.rs

-4
Original file line numberDiff line numberDiff line change
@@ -342,10 +342,6 @@ fn main() {
342342
cpp_files.extend(["qml/qqmlapplicationengine", "qml/qqmlengine"]);
343343
}
344344

345-
if qt_quickcontrols_enabled() {
346-
cpp_files.extend(["quickcontrols/qquickstyle"]);
347-
}
348-
349345
if !emscripten_targeted {
350346
cpp_files.extend(["core/qdatetime", "core/qtimezone"]);
351347
}

crates/cxx-qt-lib/include/core/qdate.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,17 @@
1515
namespace rust {
1616
namespace cxxqtlib1 {
1717

18-
QDate
19-
qdateCurrentDate();
18+
inline QDate (*qdateCurrentDate)() = QDate::currentDate;
19+
20+
inline bool (*qdateIsLeapYear)(int) = QDate::isLeapYear;
21+
2022
QDate
2123
qdateFromString(const QString& string, const QString& format);
2224
QDate
2325
qdateFromString(const QString& string, Qt::DateFormat format);
2426
// In Qt 5 d is const-ref, in Qt 6 it is value
2527
qint64
2628
qdateDaysTo(const QDate& date, QDate d);
27-
bool
28-
qdateIsLeapYear(::std::int32_t year);
2929
QString
3030
qdateToFormat(const QDate& date, const QString& format);
3131

crates/cxx-qt-lib/include/core/qdatetime.h

+13-12
Original file line numberDiff line numberDiff line change
@@ -28,18 +28,19 @@ struct IsRelocatable<QDateTime> : ::std::true_type
2828
namespace rust {
2929
namespace cxxqtlib1 {
3030

31-
QDateTime
32-
qdatetimeCurrentDateTime();
33-
QDateTime
34-
qdatetimeCurrentDateTimeUtc();
35-
qint64
36-
qdatetimeCurrentMSecsSinceEpoch();
37-
qint64
38-
qdatetimeCurrentSecsSinceEpoch();
39-
QDateTime
40-
qdatetimeFromMSecsSinceEpoch(qint64 msecs, const QTimeZone& timeZone);
41-
QDateTime
42-
qdatetimeFromSecsSinceEpoch(qint64 secs, const QTimeZone& timeZone);
31+
inline QDateTime (*qdatetimeCurrentDateTime)() = QDateTime::currentDateTime;
32+
inline QDateTime (*qdatetimeCurrentDateTimeUtc)() =
33+
QDateTime::currentDateTimeUtc;
34+
inline qint64 (*qdatetimeCurrentMSecsSinceEpoch)() =
35+
QDateTime::currentMSecsSinceEpoch;
36+
inline qint64 (*qdatetimeCurrentSecsSinceEpoch)() =
37+
QDateTime::currentSecsSinceEpoch;
38+
39+
inline QDateTime (*qdatetimeFromMSecsSinceEpoch)(qint64, const QTimeZone&) =
40+
QDateTime::fromMSecsSinceEpoch;
41+
inline QDateTime (*qdatetimeFromSecsSinceEpoch)(qint64, const QTimeZone&) =
42+
QDateTime::fromSecsSinceEpoch;
43+
4344
void
4445
qdatetimeSetDate(QDateTime& datetime, QDate date);
4546
void

crates/cxx-qt-lib/include/core/qpoint.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
namespace rust {
1515
namespace cxxqtlib1 {
1616

17-
::std::int32_t
18-
qpointDotProduct(const QPoint& p1, const QPoint& p2);
17+
inline ::std::int32_t (*qpointDotProduct)(const QPoint&,
18+
const QPoint&) = QPoint::dotProduct;
1919

2020
}
2121
}

crates/cxx-qt-lib/include/core/qpointf.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
namespace rust {
1313
namespace cxxqtlib1 {
1414

15-
double
16-
qpointfDotProduct(const QPointF& p1, const QPointF& p2);
15+
inline double (*qpointfDotProduct)(const QPointF&,
16+
const QPointF&) = QPointF::dotProduct;
1717

1818
}
1919
}

crates/cxx-qt-lib/include/core/qtime.h

+6-6
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,12 @@
1515
namespace rust {
1616
namespace cxxqtlib1 {
1717

18-
QTime
19-
qtimeCurrentTime();
20-
QTime
21-
qtimeFromMSecsSinceStartOfDay(::std::int32_t msecs);
18+
inline QTime (*qtimeCurrentTime)() = QTime::currentTime;
19+
inline QTime (*qtimeFromMSecsSinceStartOfDay)(::std::int32_t) =
20+
QTime::fromMSecsSinceStartOfDay;
21+
22+
inline bool (*qtimeIsValid)(int, int, int, int) = QTime::isValid;
23+
2224
// In Qt 5 t is const-ref, in Qt 6 it is value
2325
::std::int32_t
2426
qtimeMSecsTo(const QTime& time, QTime t);
@@ -30,7 +32,5 @@ qtimeFromString(const QString& string, Qt::DateFormat format);
3032
::std::int32_t
3133
qtimeSecsTo(const QTime& time, QTime t);
3234

33-
bool
34-
qtimeIsValid(int h, int m, int s, int ms);
3535
}
3636
}

crates/cxx-qt-lib/include/core/qtimezone.h

+4-4
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ using QTimeZoneTimeType = QTimeZone::TimeType;
1919
namespace rust {
2020
namespace cxxqtlib1 {
2121

22-
QList<QByteArray>
23-
qtimezoneAvailableTimeZoneIds();
22+
inline QList<QByteArray> (*qtimezoneAvailableTimeZoneIds)() =
23+
QTimeZone::availableTimeZoneIds;
24+
2425
::std::unique_ptr<QTimeZone>
2526
qtimezoneClone(const QTimeZone& timezone);
2627
::std::unique_ptr<QTimeZone>
@@ -35,8 +36,7 @@ ::std::unique_ptr<QTimeZone>
3536
qtimezoneFromIana(const QByteArray& ianaId);
3637
::std::unique_ptr<QTimeZone>
3738
qtimezoneSystemTimeZone();
38-
QByteArray
39-
qtimezoneSystemTimeZoneId();
39+
inline QByteArray (*qtimezoneSystemTimeZoneId)() = QTimeZone::systemTimeZoneId;
4040
::std::unique_ptr<QTimeZone>
4141
qtimezoneUtc();
4242

crates/cxx-qt-lib/include/core/qurl.h

+10-13
Original file line numberDiff line numberDiff line change
@@ -37,16 +37,14 @@ QString
3737
qurlFragment(const QUrl& url);
3838
QUrl
3939
qurlFromEncoded(const QByteArray& input);
40+
inline QUrl (*qurlFromLocalFile)(const QString&) = QUrl::fromLocalFile;
41+
inline QString (*qurlFromPercentEncoding)(const QByteArray&) =
42+
QUrl::fromPercentEncoding;
4043
QUrl
41-
qurlFromLocalFile(const QString& localFile);
42-
QString
43-
qurlFromPercentEncoding(const QByteArray& input);
44-
QUrl
45-
qurlFromUserInput(const QString& userInput, const QString& workingDirectory);
44+
qurlFromUserInput(const QString& userInput, const QString& workingDictionary);
4645
QString
4746
qurlHost(const QUrl& url);
48-
QStringList
49-
qurlIdnWhitelist();
47+
inline QStringList (*qurlIdnWhitelist)() = QUrl::idnWhitelist;
5048
QString
5149
qurlPath(const QUrl& url);
5250
QString
@@ -59,8 +57,7 @@ void
5957
qurlSetFragment(QUrl& url, const QString& fragment);
6058
void
6159
qurlSetHost(QUrl& url, const QString& host);
62-
void
63-
qurlSetIdnWhitelist(const QStringList& list);
60+
inline void (*qurlSetIdnWhitelist)(const QStringList&) = QUrl::setIdnWhitelist;
6461
void
6562
qurlSetPassword(QUrl& url, const QString& password);
6663
void
@@ -81,10 +78,10 @@ QByteArray
8178
qurlToEncoded(const QUrl& url);
8279
QString
8380
qurlToQString(const QUrl& url);
84-
QByteArray
85-
qurlToPercentEncoding(const QString& input,
86-
const QByteArray& exclude,
87-
const QByteArray& include);
81+
inline QByteArray (*qurlToPercentEncoding)(const QString&,
82+
const QByteArray&,
83+
const QByteArray&) =
84+
QUrl::toPercentEncoding;
8885
QString
8986
qurlUserInfo(const QUrl& url);
9087
QString

crates/cxx-qt-lib/include/gui/qcolor.h

+18-23
Original file line numberDiff line numberDiff line change
@@ -34,35 +34,30 @@ namespace cxxqtlib1 {
3434
using QColorNameFormat = QColor::NameFormat;
3535
using QColorSpec = QColor::Spec;
3636

37-
QStringList
38-
qcolorColorNames();
39-
QColor
40-
qcolorInitFromCmyk(::std::int32_t c,
41-
::std::int32_t m,
42-
::std::int32_t y,
43-
::std::int32_t k,
44-
::std::int32_t a);
37+
inline QStringList (*qcolorColorNames)() = QColor::colorNames;
38+
inline QColor (*qcolorInitFromCmyk)(::std::int32_t,
39+
::std::int32_t,
40+
::std::int32_t,
41+
::std::int32_t,
42+
::std::int32_t) = QColor::fromCmyk;
4543
QColor
4644
qcolorInitFromCmykF(float c, float m, float y, float k, float a);
47-
QColor
48-
qcolorInitFromHsl(::std::int32_t h,
49-
::std::int32_t s,
50-
::std::int32_t l,
51-
::std::int32_t a);
45+
inline QColor (*qcolorInitFromHsl)(::std::int32_t,
46+
::std::int32_t,
47+
::std::int32_t,
48+
::std::int32_t) = QColor::fromHsl;
5249
QColor
5350
qcolorInitFromHslF(float h, float s, float l, float a);
54-
QColor
55-
qcolorInitFromHsv(::std::int32_t h,
56-
::std::int32_t s,
57-
::std::int32_t v,
58-
::std::int32_t a);
51+
inline QColor (*qcolorInitFromHsv)(::std::int32_t,
52+
::std::int32_t,
53+
::std::int32_t,
54+
::std::int32_t) = QColor::fromHsv;
5955
QColor
6056
qcolorInitFromHsvF(float h, float s, float v, float a);
61-
QColor
62-
qcolorInitFromRgb(::std::int32_t red,
63-
::std::int32_t green,
64-
::std::int32_t blue,
65-
::std::int32_t alpha);
57+
inline QColor (*qcolorInitFromRgb)(::std::int32_t,
58+
::std::int32_t,
59+
::std::int32_t,
60+
::std::int32_t) = QColor::fromRgb;
6661
QColor
6762
qcolorInitFromRgbF(float red, float green, float blue, float alpha);
6863

crates/cxx-qt-lib/include/gui/qguiapplication.h

+12-14
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,24 @@ namespace cxxqtlib1 {
1919
::std::unique_ptr<QGuiApplication>
2020
qguiapplicationNew(const QVector<QByteArray>& args);
2121

22-
void
23-
qguiapplicationSetFont(QGuiApplication& app, const QFont& font);
22+
inline void (*qguiapplicationSetFont)(const QFont&) = QGuiApplication::setFont;
2423

25-
QFont
26-
qguiapplicationFont(const QGuiApplication& app);
24+
inline QFont (*qguiapplicationFont)() = QGuiApplication::font;
2725

28-
void
29-
qguiapplicationSetDesktopFileName(const QString& name);
26+
inline void (*qguiapplicationSetDesktopFileName)(const QString&) =
27+
QGuiApplication::setDesktopFileName;
3028

31-
QString
32-
qguiapplicationDesktopFileName();
29+
inline QString (*qguiapplicationDesktopFileName)() =
30+
QGuiApplication::desktopFileName;
3331

34-
Qt::KeyboardModifiers
35-
qguiapplicationKeyboardModifiers();
32+
inline Qt::KeyboardModifiers (*qguiapplicationKeyboardModifiers)() =
33+
QGuiApplication::keyboardModifiers;
3634

37-
Qt::MouseButtons
38-
qguiapplicationMouseButtons();
35+
inline Qt::MouseButtons (*qguiapplicationMouseButtons)() =
36+
QGuiApplication::mouseButtons;
3937

40-
Qt::KeyboardModifiers
41-
qguiapplicationQueryKeyboardModifiers();
38+
inline Qt::KeyboardModifiers (*qguiapplicationQueryKeyboardModifiers)() =
39+
QGuiApplication::queryKeyboardModifiers;
4240

4341
}
4442
}

crates/cxx-qt-lib/include/quickcontrols/qquickstyle.h

+4-6
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,12 @@
1818
namespace rust {
1919
namespace cxxqtlib1 {
2020

21-
QString
22-
qquickstyleName();
21+
inline QString (*qquickstyleName)() = QQuickStyle::name;
2322

24-
void
25-
qquickstyleSetFallbackStyle(const QString& style);
23+
inline void (*qquickstyleSetFallbackStyle)(const QString&) =
24+
QQuickStyle::setFallbackStyle;
2625

27-
void
28-
qquickstyleSetStyle(const QString& style);
26+
inline void (*qquickstyleSetStyle)(const QString&) = QQuickStyle::setStyle;
2927

3028
}
3129
}

crates/cxx-qt-lib/src/core/qdate.cpp

-12
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,6 @@ static_assert(::std::is_trivially_copyable<QDate>::value,
2121
namespace rust {
2222
namespace cxxqtlib1 {
2323

24-
QDate
25-
qdateCurrentDate()
26-
{
27-
return QDate::currentDate();
28-
}
29-
3024
qint64
3125
qdateDaysTo(const QDate& date, QDate d)
3226
{
@@ -46,12 +40,6 @@ qdateFromString(const QString& string, Qt::DateFormat format)
4640
return QDate::fromString(string, format);
4741
}
4842

49-
bool
50-
qdateIsLeapYear(::std::int32_t year)
51-
{
52-
return QDate::isLeapYear(static_cast<int>(year));
53-
}
54-
5543
QString
5644
qdateToFormat(const QDate& date, const QString& format)
5745
{

crates/cxx-qt-lib/src/core/qdatetime.cpp

-36
Original file line numberDiff line numberDiff line change
@@ -27,42 +27,6 @@ static_assert(QTypeInfo<QDateTime>::isRelocatable);
2727
namespace rust {
2828
namespace cxxqtlib1 {
2929

30-
QDateTime
31-
qdatetimeCurrentDateTime()
32-
{
33-
return QDateTime::currentDateTime();
34-
}
35-
36-
QDateTime
37-
qdatetimeCurrentDateTimeUtc()
38-
{
39-
return QDateTime::currentDateTimeUtc();
40-
}
41-
42-
qint64
43-
qdatetimeCurrentMSecsSinceEpoch()
44-
{
45-
return QDateTime::currentMSecsSinceEpoch();
46-
}
47-
48-
qint64
49-
qdatetimeCurrentSecsSinceEpoch()
50-
{
51-
return QDateTime::currentSecsSinceEpoch();
52-
}
53-
54-
QDateTime
55-
qdatetimeFromMSecsSinceEpoch(qint64 msecs, const QTimeZone& timeZone)
56-
{
57-
return QDateTime::fromMSecsSinceEpoch(msecs, timeZone);
58-
}
59-
60-
QDateTime
61-
qdatetimeFromSecsSinceEpoch(qint64 secs, const QTimeZone& timeZone)
62-
{
63-
return QDateTime::fromSecsSinceEpoch(secs, timeZone);
64-
}
65-
6630
void
6731
qdatetimeSetDate(QDateTime& datetime, QDate date)
6832
{

crates/cxx-qt-lib/src/core/qpoint.cpp

-12
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,3 @@ assert_alignment_and_size(QPoint, {
2020
});
2121

2222
static_assert(::std::is_trivially_copyable<QPoint>::value);
23-
24-
namespace rust {
25-
namespace cxxqtlib1 {
26-
27-
::std::int32_t
28-
qpointDotProduct(const QPoint& p1, const QPoint& p2)
29-
{
30-
return QPoint::dotProduct(p1, p2);
31-
}
32-
33-
}
34-
}

crates/cxx-qt-lib/src/core/qpointf.cpp

-12
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,3 @@ assert_alignment_and_size(QPointF, {
2020

2121
static_assert(::std::is_trivially_copyable<QPointF>::value,
2222
"QPointF should be trivially copyable");
23-
24-
namespace rust {
25-
namespace cxxqtlib1 {
26-
27-
double
28-
qpointfDotProduct(const QPointF& p1, const QPointF& p2)
29-
{
30-
return QPointF::dotProduct(p1, p2);
31-
}
32-
33-
}
34-
}

0 commit comments

Comments
 (0)