ruby-qt6-rice 1.0.0 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.rubocop.yml +1 -5
- data/include/bando/common.hpp +16 -19
- data/include/bando/qobject/qdbusabstractadaptor.hpp +15 -13
- data/include/bando/qobject/qdbusabstractinterface.hpp +12 -10
- data/include/bando/qobject/qitemdelegate.hpp +37 -35
- data/include/bando/qobject/qlayout.hpp +40 -38
- data/include/bando/qobject/qwebenginepage.hpp +170 -0
- data/include/bando/qobject.hpp +61 -12
- data/include/bando/qwidget/qspinbox.hpp +22 -20
- data/include/bando/qwidget.hpp +82 -20
- data/include/rice/core/api.hpp +261 -0
- data/include/rice/{rice.hpp → core/rice.hpp} +2693 -1921
- data/include/rice/{stl.hpp → core/stl.hpp} +607 -668
- data/include/rice/qt6/qdbusreply.hpp +2 -5
- data/include/rice/qt6/qenum.hpp +26 -10
- data/include/rice/qt6/qflags.hpp +18 -22
- data/include/rice/qt6/qlist.hpp +19 -41
- data/include/rice/qt6/qmap.hpp +158 -0
- data/include/rice/qt6.hpp +39 -0
- data/lib/mkmf-rice.rb +2 -2
- data/lib/mkmf-rubyqt6.rb +43 -10
- data/lib/qt6/rice/version.rb +1 -1
- metadata +12 -11
- data/lib/qt6/rspec/bando_file_parser.rb +0 -102
- data/lib/qt6/rspec/qlass_file_parser.rb +0 -255
- data/lib/qt6/rspec.rb +0 -275
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 2eecacef7953c399d97928b84a9297cbca7e254e1546001334eb34aaed603cf7
|
|
4
|
+
data.tar.gz: b7332ffa98f413078de378951b053b2b24cbb72d10831772ecd51c1464a07b84
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ce474286a898c50d37a2432a971e8001f4a4e0c763c6951fba66c33e97743be545b56de81add4d3610e9c438b4b6085c106a75e0d78120110de5180e4202f61b
|
|
7
|
+
data.tar.gz: 43e8f652d16607041567dc2348198f1a7ee0fd0d6fcaaadda9ab95a8acbd75f66b65768c606c1afa705e9cc079351f4eebe61246894284596de3d9bc16f88515
|
data/.rubocop.yml
CHANGED
data/include/bando/common.hpp
CHANGED
|
@@ -22,14 +22,13 @@
|
|
|
22
22
|
#ifndef BANDO_COMMON_HPP
|
|
23
23
|
#define BANDO_COMMON_HPP
|
|
24
24
|
|
|
25
|
-
#include <rice/rice.hpp>
|
|
26
|
-
#include <rice/stl.hpp>
|
|
27
|
-
|
|
28
25
|
#include <QEvent>
|
|
29
26
|
#include <QMetaMethod>
|
|
30
27
|
#include <QMetaObject>
|
|
31
28
|
#include <QObject>
|
|
32
29
|
|
|
30
|
+
RICE4RUBYQT6_USE_NAMESPACE
|
|
31
|
+
|
|
33
32
|
enum bando_FunctionName
|
|
34
33
|
{
|
|
35
34
|
actionEvent,
|
|
@@ -128,19 +127,19 @@ constexpr std::string_view bando_FunctionName_underscore(bando_FunctionName name
|
|
|
128
127
|
}
|
|
129
128
|
}
|
|
130
129
|
|
|
131
|
-
template <typename BandoClass_T> void bando_initializeValue(BandoClass_T *self,
|
|
130
|
+
template <typename BandoClass_T> void bando_initializeValue(BandoClass_T *self, Object value, QMetaObject *mo)
|
|
132
131
|
{
|
|
133
132
|
self->value_ = value;
|
|
134
133
|
self->mo_ = mo;
|
|
135
134
|
|
|
136
135
|
self->value_address_ = const_cast<VALUE*>(&self->value_.value());
|
|
137
|
-
|
|
136
|
+
detail::protect(rb_gc_register_address, self->value_address_);
|
|
138
137
|
}
|
|
139
138
|
|
|
140
139
|
template <typename BandoClass_T> void bando_finalizer(BandoClass_T *self)
|
|
141
140
|
{
|
|
142
141
|
if (self->value_address_ != nullptr)
|
|
143
|
-
|
|
142
|
+
detail::protect(rb_gc_unregister_address, self->value_address_);
|
|
144
143
|
}
|
|
145
144
|
|
|
146
145
|
template <typename BandoClass_T, typename Class_T> const QMetaObject *bando_metaObject(const BandoClass_T *self)
|
|
@@ -170,10 +169,8 @@ template <typename BandoClass_T> int bando_qt_metacall(BandoClass_T *self, QMeta
|
|
|
170
169
|
}
|
|
171
170
|
if (method.methodType() == QMetaMethod::Slot)
|
|
172
171
|
{
|
|
173
|
-
auto name = method.name().toStdString();
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
auto arguments = Rice::Array();
|
|
172
|
+
auto name = "_rubyqt6_slot_" + method.name().toStdString();
|
|
173
|
+
auto arguments = Array();
|
|
177
174
|
for (int i = 0; i < method.parameterCount(); ++i)
|
|
178
175
|
{
|
|
179
176
|
QVariant argument(method.parameterMetaType(i), args[i + 1]);
|
|
@@ -185,7 +182,7 @@ template <typename BandoClass_T> int bando_qt_metacall(BandoClass_T *self, QMeta
|
|
|
185
182
|
|
|
186
183
|
if (method.returnType() != QMetaType::Void) {
|
|
187
184
|
if (!rb_return.is_nil()) {
|
|
188
|
-
const QVariant result =
|
|
185
|
+
const QVariant result = detail::From_Ruby<QVariant>().convert(rb_return);
|
|
189
186
|
method.returnMetaType().construct(args[0], result.constData());
|
|
190
187
|
}
|
|
191
188
|
}
|
|
@@ -199,34 +196,34 @@ template <typename BandoClass_T> int bando_qt_metacall(BandoClass_T *self, QMeta
|
|
|
199
196
|
|
|
200
197
|
template <typename BandoClass_T> bool bando_handleQObjectEvent(BandoClass_T *self, QEvent *event)
|
|
201
198
|
{
|
|
202
|
-
auto rb_name =
|
|
199
|
+
auto rb_name = Identifier("event");
|
|
203
200
|
if (!self->value_.respond_to(rb_name))
|
|
204
201
|
return self->Class_T_handleQObjectEvent(event);
|
|
205
202
|
|
|
206
203
|
Q_ASSERT(self->value_.rb_type() != RUBY_T_NONE);
|
|
207
|
-
auto rb_return = self->value_.call(rb_name,
|
|
208
|
-
return
|
|
204
|
+
auto rb_return = self->value_.call(rb_name, Object(detail::to_ruby(event)));
|
|
205
|
+
return detail::From_Ruby<bool>().convert(rb_return);
|
|
209
206
|
}
|
|
210
207
|
|
|
211
208
|
template <typename BandoClass_T> bool bando_handleQObjectEventFilter(BandoClass_T *self, QObject *watched, QEvent *event)
|
|
212
209
|
{
|
|
213
|
-
auto rb_name =
|
|
210
|
+
auto rb_name = Identifier("event_filter");
|
|
214
211
|
if (!self->value_.respond_to(rb_name))
|
|
215
212
|
return self->Class_T_handleQObjectEventFilter(watched, event);
|
|
216
213
|
|
|
217
214
|
Q_ASSERT(self->value_.rb_type() != RUBY_T_NONE);
|
|
218
|
-
auto rb_return = self->value_.call(rb_name,
|
|
219
|
-
return
|
|
215
|
+
auto rb_return = self->value_.call(rb_name, Object(detail::to_ruby(watched)), Object(detail::to_ruby(event)));
|
|
216
|
+
return detail::From_Ruby<bool>().convert(rb_return);
|
|
220
217
|
}
|
|
221
218
|
|
|
222
219
|
template <typename BandoClass_T> void bando_handleEvent(BandoClass_T *self, QEvent *event, bando_FunctionName name)
|
|
223
220
|
{
|
|
224
|
-
auto rb_name =
|
|
221
|
+
auto rb_name = Identifier(bando_FunctionName_underscore(name));
|
|
225
222
|
if (!self->value_.respond_to(rb_name))
|
|
226
223
|
return self->Class_T_handleEvent(name, event);
|
|
227
224
|
|
|
228
225
|
Q_ASSERT(self->value_.rb_type() != RUBY_T_NONE);
|
|
229
|
-
self->value_.call(rb_name,
|
|
226
|
+
self->value_.call(rb_name, Object(detail::to_ruby(event)));
|
|
230
227
|
}
|
|
231
228
|
|
|
232
229
|
#endif
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
#include <QEvent>
|
|
28
28
|
#include <QTimerEvent>
|
|
29
29
|
|
|
30
|
+
RICE4RUBYQT6_USE_NAMESPACE
|
|
31
|
+
|
|
30
32
|
template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractAdaptor : public Class_T
|
|
31
33
|
{
|
|
32
34
|
public:
|
|
@@ -37,8 +39,8 @@ template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractAdaptor
|
|
|
37
39
|
BandoQDBusAbstractAdaptor &operator=(BandoQDBusAbstractAdaptor &&) = delete;
|
|
38
40
|
~BandoQDBusAbstractAdaptor() override { bando_finalizer<BandoQDBusAbstractAdaptor>(this); };
|
|
39
41
|
|
|
40
|
-
void initializeValue(
|
|
41
|
-
|
|
42
|
+
void initializeValue(Object value, QMetaObject *mo) { bando_initializeValue<BandoQDBusAbstractAdaptor>(this, value, mo); };
|
|
43
|
+
Object value() { return this->value_; };
|
|
42
44
|
|
|
43
45
|
const QMetaObject *metaObject() const override { return bando_metaObject<BandoQDBusAbstractAdaptor, Class_T>(this); };
|
|
44
46
|
int qt_metacall(QMetaObject::Call call, int id, void **args) override { return bando_qt_metacall<BandoQDBusAbstractAdaptor>(this, call, id, args); };
|
|
@@ -52,11 +54,11 @@ template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractAdaptor
|
|
|
52
54
|
|
|
53
55
|
bool autoRelaySignals() const {
|
|
54
56
|
return this->Class_T::autoRelaySignals();
|
|
55
|
-
}
|
|
57
|
+
};
|
|
56
58
|
|
|
57
59
|
void setAutoRelaySignals(bool enable) {
|
|
58
60
|
this->Class_T::setAutoRelaySignals(enable);
|
|
59
|
-
}
|
|
61
|
+
};
|
|
60
62
|
|
|
61
63
|
public:
|
|
62
64
|
bool Class_T_handleQObjectEvent(QEvent *event) { return this->Class_T::event(event); };
|
|
@@ -74,27 +76,27 @@ template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractAdaptor
|
|
|
74
76
|
public:
|
|
75
77
|
template <typename BC_T, typename C_T> friend const QMetaObject *bando_metaObject(const BC_T *self);
|
|
76
78
|
|
|
77
|
-
|
|
79
|
+
Object value_;
|
|
78
80
|
VALUE *value_address_;
|
|
79
81
|
|
|
80
82
|
QMetaObject *mo_;
|
|
81
83
|
};
|
|
82
84
|
|
|
83
85
|
template <typename BC_T, typename C_T>
|
|
84
|
-
|
|
86
|
+
Data_Type<BC_T> define_bando_qdbusabstractadaptor_under(Module module, char const *name)
|
|
85
87
|
{
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
.define_method("_initialize_ruby_value", &BC_T::initializeValue,
|
|
88
|
+
Data_Type<BC_T> bando_qlass =
|
|
89
|
+
define_class_under<BC_T, C_T>(module, name)
|
|
90
|
+
.define_method("_initialize_ruby_value", &BC_T::initializeValue, Arg("value"), Arg("mo"))
|
|
89
91
|
.define_method("_ruby_value", &BC_T::value)
|
|
90
|
-
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent,
|
|
91
|
-
.define_method("_event", &BC_T::Class_T_handleQObjectEvent,
|
|
92
|
-
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter,
|
|
92
|
+
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent, Arg("name"), Arg("event"))
|
|
93
|
+
.define_method("_event", &BC_T::Class_T_handleQObjectEvent, Arg("event"))
|
|
94
|
+
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter, Arg("watched"), Arg("event"))
|
|
93
95
|
.define_method("sender", &BC_T::sender);
|
|
94
96
|
|
|
95
97
|
bando_qlass
|
|
96
98
|
.define_method("auto_relay_signals", &BC_T::autoRelaySignals)
|
|
97
|
-
.define_method("set_auto_relay_signals", &BC_T::setAutoRelaySignals,
|
|
99
|
+
.define_method("set_auto_relay_signals", &BC_T::setAutoRelaySignals, Arg("enable"));
|
|
98
100
|
|
|
99
101
|
return bando_qlass;
|
|
100
102
|
}
|
|
@@ -27,6 +27,8 @@
|
|
|
27
27
|
#include <QEvent>
|
|
28
28
|
#include <QTimerEvent>
|
|
29
29
|
|
|
30
|
+
RICE4RUBYQT6_USE_NAMESPACE
|
|
31
|
+
|
|
30
32
|
template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractInterface : public Class_T
|
|
31
33
|
{
|
|
32
34
|
public:
|
|
@@ -37,8 +39,8 @@ template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractInterfac
|
|
|
37
39
|
BandoQDBusAbstractInterface &operator=(BandoQDBusAbstractInterface &&) = delete;
|
|
38
40
|
~BandoQDBusAbstractInterface() override { bando_finalizer<BandoQDBusAbstractInterface>(this); };
|
|
39
41
|
|
|
40
|
-
void initializeValue(
|
|
41
|
-
|
|
42
|
+
void initializeValue(Object value, QMetaObject *mo) { bando_initializeValue<BandoQDBusAbstractInterface>(this, value, mo); };
|
|
43
|
+
Object value() { return this->value_; };
|
|
42
44
|
|
|
43
45
|
const QMetaObject *metaObject() const override { return bando_metaObject<BandoQDBusAbstractInterface, Class_T>(this); };
|
|
44
46
|
int qt_metacall(QMetaObject::Call call, int id, void **args) override { return bando_qt_metacall<BandoQDBusAbstractInterface>(this, call, id, args); };
|
|
@@ -66,22 +68,22 @@ template <typename Class_T, typename... Arg_Ts> class BandoQDBusAbstractInterfac
|
|
|
66
68
|
public:
|
|
67
69
|
template <typename BC_T, typename C_T> friend const QMetaObject *bando_metaObject(const BC_T *self);
|
|
68
70
|
|
|
69
|
-
|
|
71
|
+
Object value_;
|
|
70
72
|
VALUE *value_address_;
|
|
71
73
|
|
|
72
74
|
QMetaObject *mo_;
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
template <typename BC_T, typename C_T>
|
|
76
|
-
|
|
78
|
+
Data_Type<BC_T> define_bando_qdbusabstractinterface_under(Module module, char const *name)
|
|
77
79
|
{
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
.define_method("_initialize_ruby_value", &BC_T::initializeValue,
|
|
80
|
+
Data_Type<BC_T> bando_qlass =
|
|
81
|
+
define_class_under<BC_T, C_T>(module, name)
|
|
82
|
+
.define_method("_initialize_ruby_value", &BC_T::initializeValue, Arg("value"), Arg("mo"))
|
|
81
83
|
.define_method("_ruby_value", &BC_T::value)
|
|
82
|
-
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent,
|
|
83
|
-
.define_method("_event", &BC_T::Class_T_handleQObjectEvent,
|
|
84
|
-
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter,
|
|
84
|
+
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent, Arg("name"), Arg("event"))
|
|
85
|
+
.define_method("_event", &BC_T::Class_T_handleQObjectEvent, Arg("event"))
|
|
86
|
+
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter, Arg("watched"), Arg("event"))
|
|
85
87
|
.define_method("sender", &BC_T::sender);
|
|
86
88
|
return bando_qlass;
|
|
87
89
|
}
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
#include <QStyleOptionViewItem>
|
|
30
30
|
#include <QTimerEvent>
|
|
31
31
|
|
|
32
|
+
RICE4RUBYQT6_USE_NAMESPACE
|
|
33
|
+
|
|
32
34
|
template <typename Class_T, typename... Arg_Ts> class BandoQItemDelegate : public Class_T
|
|
33
35
|
{
|
|
34
36
|
public:
|
|
@@ -39,8 +41,8 @@ template <typename Class_T, typename... Arg_Ts> class BandoQItemDelegate : publi
|
|
|
39
41
|
BandoQItemDelegate &operator=(BandoQItemDelegate &&) = delete;
|
|
40
42
|
~BandoQItemDelegate() override { bando_finalizer<BandoQItemDelegate>(this); };
|
|
41
43
|
|
|
42
|
-
void initializeValue(
|
|
43
|
-
|
|
44
|
+
void initializeValue(Object value, QMetaObject *mo) { bando_initializeValue<BandoQItemDelegate>(this, value, mo); };
|
|
45
|
+
Object value() { return this->value_; };
|
|
44
46
|
|
|
45
47
|
const QMetaObject *metaObject() const override { return bando_metaObject<BandoQItemDelegate, Class_T>(this); };
|
|
46
48
|
int qt_metacall(QMetaObject::Call call, int id, void **args) override { return bando_qt_metacall<BandoQItemDelegate>(this, call, id, args); };
|
|
@@ -54,41 +56,41 @@ template <typename Class_T, typename... Arg_Ts> class BandoQItemDelegate : publi
|
|
|
54
56
|
|
|
55
57
|
QWidget *createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
|
|
56
58
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
57
|
-
auto rb_name =
|
|
58
|
-
auto rb_return = this->value_.call(rb_name,
|
|
59
|
-
return
|
|
59
|
+
auto rb_name = Identifier("create_editor");
|
|
60
|
+
auto rb_return = this->value_.call(rb_name, Object(detail::to_ruby(parent)), Object(detail::to_ruby(option)), Object(detail::to_ruby(index)));
|
|
61
|
+
return detail::From_Ruby<QWidget *>().convert(rb_return);
|
|
60
62
|
};
|
|
61
63
|
|
|
62
64
|
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
|
|
63
65
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
64
|
-
auto rb_name =
|
|
65
|
-
this->value_.call(rb_name,
|
|
66
|
-
}
|
|
66
|
+
auto rb_name = Identifier("paint");
|
|
67
|
+
this->value_.call(rb_name, Object(detail::to_ruby(painter)), Object(detail::to_ruby(option)), Object(detail::to_ruby(index)));
|
|
68
|
+
};
|
|
67
69
|
|
|
68
70
|
void setEditorData(QWidget *editor, const QModelIndex &index) const override {
|
|
69
71
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
70
|
-
auto rb_name =
|
|
71
|
-
this->value_.call(rb_name,
|
|
72
|
-
}
|
|
72
|
+
auto rb_name = Identifier("set_editor_data");
|
|
73
|
+
this->value_.call(rb_name, Object(detail::to_ruby(editor)), Object(detail::to_ruby(index)));
|
|
74
|
+
};
|
|
73
75
|
|
|
74
76
|
void setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const override {
|
|
75
77
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
76
|
-
auto rb_name =
|
|
77
|
-
this->value_.call(rb_name,
|
|
78
|
-
}
|
|
78
|
+
auto rb_name = Identifier("set_model_data");
|
|
79
|
+
this->value_.call(rb_name, Object(detail::to_ruby(editor)), Object(detail::to_ruby(model)), Object(detail::to_ruby(index)));
|
|
80
|
+
};
|
|
79
81
|
|
|
80
82
|
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const override {
|
|
81
83
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
82
|
-
auto rb_name =
|
|
83
|
-
auto rb_return = this->value_.call(rb_name,
|
|
84
|
-
return
|
|
85
|
-
}
|
|
84
|
+
auto rb_name = Identifier("size_hint");
|
|
85
|
+
auto rb_return = this->value_.call(rb_name, Object(detail::to_ruby(option)), Object(detail::to_ruby(index)));
|
|
86
|
+
return detail::From_Ruby<QSize>().convert(rb_return);
|
|
87
|
+
};
|
|
86
88
|
|
|
87
89
|
void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) const override {
|
|
88
90
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
89
|
-
auto rb_name =
|
|
90
|
-
this->value_.call(rb_name,
|
|
91
|
-
}
|
|
91
|
+
auto rb_name = Identifier("update_editor_geometry");
|
|
92
|
+
this->value_.call(rb_name, Object(detail::to_ruby(editor)), Object(detail::to_ruby(option)), Object(detail::to_ruby(index)));
|
|
93
|
+
};
|
|
92
94
|
|
|
93
95
|
public:
|
|
94
96
|
bool Class_T_handleQObjectEvent(QEvent *event) { return this->Class_T::event(event); };
|
|
@@ -106,31 +108,31 @@ template <typename Class_T, typename... Arg_Ts> class BandoQItemDelegate : publi
|
|
|
106
108
|
public:
|
|
107
109
|
template <typename BC_T, typename C_T> friend const QMetaObject *bando_metaObject(const BC_T *self);
|
|
108
110
|
|
|
109
|
-
|
|
111
|
+
Object value_;
|
|
110
112
|
VALUE *value_address_;
|
|
111
113
|
|
|
112
114
|
QMetaObject *mo_;
|
|
113
115
|
};
|
|
114
116
|
|
|
115
117
|
template <typename BC_T, typename C_T>
|
|
116
|
-
|
|
118
|
+
Data_Type<BC_T> define_bando_qitemdelegate_under(Module module, char const *name)
|
|
117
119
|
{
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
.define_method("_initialize_ruby_value", &BC_T::initializeValue,
|
|
120
|
+
Data_Type<BC_T> bando_qlass =
|
|
121
|
+
define_class_under<BC_T, C_T>(module, name)
|
|
122
|
+
.define_method("_initialize_ruby_value", &BC_T::initializeValue, Arg("value"), Arg("mo"))
|
|
121
123
|
.define_method("_ruby_value", &BC_T::value)
|
|
122
|
-
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent,
|
|
123
|
-
.define_method("_event", &BC_T::Class_T_handleQObjectEvent,
|
|
124
|
-
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter,
|
|
124
|
+
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent, Arg("name"), Arg("event"))
|
|
125
|
+
.define_method("_event", &BC_T::Class_T_handleQObjectEvent, Arg("event"))
|
|
126
|
+
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter, Arg("watched"), Arg("event"))
|
|
125
127
|
.define_method("sender", &BC_T::sender);
|
|
126
128
|
|
|
127
129
|
bando_qlass
|
|
128
|
-
.define_method("create_editor", [](BC_T *self, QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) -> QWidget * { return self->C_T::createEditor(parent, option, index); })
|
|
129
|
-
.define_method("paint", [](BC_T *self, QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) -> void { return self->C_T::paint(painter, option, index); })
|
|
130
|
-
.define_method("set_editor_data", [](BC_T *self, QWidget *editor, const QModelIndex &index) -> void { return self->C_T::setEditorData(editor, index); })
|
|
131
|
-
.define_method("set_model_data", [](BC_T *self, QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) -> void { return self->C_T::setModelData(editor, model, index); })
|
|
132
|
-
.define_method("size_hint", [](BC_T *self, const QStyleOptionViewItem &option, const QModelIndex &index) -> QSize { return self->C_T::sizeHint(option, index); })
|
|
133
|
-
.define_method("update_editor_geometry", [](BC_T *self, QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) -> void { return self->C_T::updateEditorGeometry(editor, option, index); });
|
|
130
|
+
.define_method("create_editor", [](BC_T *self, QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) -> QWidget * { return self->C_T::createEditor(parent, option, index); }, Arg("parent"), Arg("option"), Arg("index"))
|
|
131
|
+
.define_method("paint", [](BC_T *self, QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) -> void { return self->C_T::paint(painter, option, index); }, Arg("painter"), Arg("option"), Arg("index"))
|
|
132
|
+
.define_method("set_editor_data", [](BC_T *self, QWidget *editor, const QModelIndex &index) -> void { return self->C_T::setEditorData(editor, index); }, Arg("editor"), Arg("index"))
|
|
133
|
+
.define_method("set_model_data", [](BC_T *self, QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) -> void { return self->C_T::setModelData(editor, model, index); }, Arg("editor"), Arg("model"), Arg("index"))
|
|
134
|
+
.define_method("size_hint", [](BC_T *self, const QStyleOptionViewItem &option, const QModelIndex &index) -> QSize { return self->C_T::sizeHint(option, index); }, Arg("option"), Arg("index"))
|
|
135
|
+
.define_method("update_editor_geometry", [](BC_T *self, QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex &index) -> void { return self->C_T::updateEditorGeometry(editor, option, index); }, Arg("editor"), Arg("option"), Arg("index"));
|
|
134
136
|
|
|
135
137
|
return bando_qlass;
|
|
136
138
|
}
|
|
@@ -29,6 +29,8 @@
|
|
|
29
29
|
#include <QTimerEvent>
|
|
30
30
|
#include <QWidget>
|
|
31
31
|
|
|
32
|
+
RICE4RUBYQT6_USE_NAMESPACE
|
|
33
|
+
|
|
32
34
|
template <typename Class_T, typename... Arg_Ts> class BandoQLayout : public Class_T
|
|
33
35
|
{
|
|
34
36
|
public:
|
|
@@ -39,8 +41,8 @@ template <typename Class_T, typename... Arg_Ts> class BandoQLayout : public Clas
|
|
|
39
41
|
BandoQLayout &operator=(BandoQLayout &&) = delete;
|
|
40
42
|
~BandoQLayout() override { bando_finalizer<BandoQLayout>(this); };
|
|
41
43
|
|
|
42
|
-
void initializeValue(
|
|
43
|
-
|
|
44
|
+
void initializeValue(Object value, QMetaObject *mo) { bando_initializeValue<BandoQLayout>(this, value, mo); };
|
|
45
|
+
Object value() { return this->value_; };
|
|
44
46
|
|
|
45
47
|
const QMetaObject *metaObject() const override { return bando_metaObject<BandoQLayout, Class_T>(this); };
|
|
46
48
|
int qt_metacall(QMetaObject::Call call, int id, void **args) override { return bando_qt_metacall<BandoQLayout>(this, call, id, args); };
|
|
@@ -54,78 +56,78 @@ template <typename Class_T, typename... Arg_Ts> class BandoQLayout : public Clas
|
|
|
54
56
|
|
|
55
57
|
void addItem(QLayoutItem *item) override {
|
|
56
58
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
57
|
-
auto rb_name =
|
|
58
|
-
this->value_.call(rb_name,
|
|
59
|
+
auto rb_name = Identifier("add_item");
|
|
60
|
+
this->value_.call(rb_name, Object(detail::to_ruby(item)));
|
|
59
61
|
};
|
|
60
62
|
|
|
61
63
|
int count() const override {
|
|
62
64
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
63
|
-
auto rb_name =
|
|
65
|
+
auto rb_name = Identifier("count");
|
|
64
66
|
auto rb_return = this->value_.call(rb_name);
|
|
65
|
-
return
|
|
67
|
+
return detail::From_Ruby<int>().convert(rb_return);
|
|
66
68
|
};
|
|
67
69
|
|
|
68
70
|
QLayoutItem *itemAt(int index) const override {
|
|
69
71
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
70
|
-
auto rb_name =
|
|
71
|
-
auto rb_return = this->value_.call(rb_name,
|
|
72
|
-
return
|
|
72
|
+
auto rb_name = Identifier("item_at");
|
|
73
|
+
auto rb_return = this->value_.call(rb_name, Object(detail::to_ruby(index)));
|
|
74
|
+
return detail::From_Ruby<QLayoutItem *>().convert(rb_return);
|
|
73
75
|
};
|
|
74
76
|
|
|
75
77
|
QLayoutItem *takeAt(int index) override {
|
|
76
78
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
77
|
-
auto rb_name =
|
|
78
|
-
auto rb_return = this->value_.call(rb_name,
|
|
79
|
-
return
|
|
79
|
+
auto rb_name = Identifier("take_at");
|
|
80
|
+
auto rb_return = this->value_.call(rb_name, Object(detail::to_ruby(index)));
|
|
81
|
+
return detail::From_Ruby<QLayoutItem *>().convert(rb_return);
|
|
80
82
|
};
|
|
81
83
|
|
|
82
84
|
QSize sizeHint() const override {
|
|
83
85
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
84
|
-
auto rb_name =
|
|
86
|
+
auto rb_name = Identifier("size_hint");
|
|
85
87
|
auto rb_return = this->value_.call(rb_name);
|
|
86
|
-
return
|
|
88
|
+
return detail::From_Ruby<QSize>().convert(rb_return);
|
|
87
89
|
};
|
|
88
90
|
|
|
89
91
|
Qt::Orientations expandingDirections() const override {
|
|
90
92
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
91
|
-
auto rb_name =
|
|
93
|
+
auto rb_name = Identifier("expanding_directions");
|
|
92
94
|
auto rb_return = this->value_.call(rb_name);
|
|
93
|
-
return
|
|
95
|
+
return detail::From_Ruby<Qt::Orientations>().convert(rb_return);
|
|
94
96
|
};
|
|
95
97
|
|
|
96
98
|
bool hasHeightForWidth() const override {
|
|
97
99
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
98
|
-
auto rb_name =
|
|
100
|
+
auto rb_name = Identifier("has_height_for_width");
|
|
99
101
|
auto rb_return = this->value_.call(rb_name);
|
|
100
|
-
return
|
|
102
|
+
return detail::From_Ruby<bool>().convert(rb_return);
|
|
101
103
|
};
|
|
102
104
|
|
|
103
105
|
int heightForWidth(int width) const override {
|
|
104
106
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
105
|
-
auto rb_name =
|
|
106
|
-
auto rb_return = this->value_.call(rb_name,
|
|
107
|
-
return
|
|
107
|
+
auto rb_name = Identifier("height_for_width");
|
|
108
|
+
auto rb_return = this->value_.call(rb_name, Object(detail::to_ruby(width)));
|
|
109
|
+
return detail::From_Ruby<int>().convert(rb_return);
|
|
108
110
|
};
|
|
109
111
|
|
|
110
112
|
QSize maximumSize() const override {
|
|
111
113
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
112
|
-
auto rb_name =
|
|
114
|
+
auto rb_name = Identifier("maximum_size");
|
|
113
115
|
auto rb_return = this->value_.call(rb_name);
|
|
114
|
-
return
|
|
116
|
+
return detail::From_Ruby<QSize>().convert(rb_return);
|
|
115
117
|
};
|
|
116
118
|
|
|
117
119
|
QSize minimumSize() const override {
|
|
118
120
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
119
|
-
auto rb_name =
|
|
121
|
+
auto rb_name = Identifier("minimum_size");
|
|
120
122
|
auto rb_return = this->value_.call(rb_name);
|
|
121
|
-
return
|
|
123
|
+
return detail::From_Ruby<QSize>().convert(rb_return);
|
|
122
124
|
};
|
|
123
125
|
|
|
124
126
|
void setGeometry(const QRect &r) override {
|
|
125
127
|
Q_ASSERT(this->value_.rb_type() != RUBY_T_NONE);
|
|
126
|
-
auto rb_name =
|
|
127
|
-
this->value_.call(rb_name,
|
|
128
|
-
}
|
|
128
|
+
auto rb_name = Identifier("set_geometry");
|
|
129
|
+
this->value_.call(rb_name, Object(detail::to_ruby(r)));
|
|
130
|
+
};
|
|
129
131
|
|
|
130
132
|
public:
|
|
131
133
|
bool Class_T_handleQObjectEvent(QEvent *event) { return this->Class_T::event(event); };
|
|
@@ -143,31 +145,31 @@ template <typename Class_T, typename... Arg_Ts> class BandoQLayout : public Clas
|
|
|
143
145
|
public:
|
|
144
146
|
template <typename BC_T, typename C_T> friend const QMetaObject *bando_metaObject(const BC_T *self);
|
|
145
147
|
|
|
146
|
-
|
|
148
|
+
Object value_;
|
|
147
149
|
VALUE *value_address_;
|
|
148
150
|
|
|
149
151
|
QMetaObject *mo_;
|
|
150
152
|
};
|
|
151
153
|
|
|
152
154
|
template <typename BC_T, typename C_T>
|
|
153
|
-
|
|
155
|
+
Data_Type<BC_T> define_bando_qlayout_under(Module module, char const *name)
|
|
154
156
|
{
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
.define_method("_initialize_ruby_value", &BC_T::initializeValue,
|
|
157
|
+
Data_Type<BC_T> bando_qlass =
|
|
158
|
+
define_class_under<BC_T, C_T>(module, name)
|
|
159
|
+
.define_method("_initialize_ruby_value", &BC_T::initializeValue, Arg("value"), Arg("mo"))
|
|
158
160
|
.define_method("_ruby_value", &BC_T::value)
|
|
159
|
-
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent,
|
|
160
|
-
.define_method("_event", &BC_T::Class_T_handleQObjectEvent,
|
|
161
|
-
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter,
|
|
161
|
+
.define_method("_ruby_value_handle_event", &BC_T::Class_T_handleEvent, Arg("name"), Arg("event"))
|
|
162
|
+
.define_method("_event", &BC_T::Class_T_handleQObjectEvent, Arg("event"))
|
|
163
|
+
.define_method("_event_filter", &BC_T::Class_T_handleQObjectEventFilter, Arg("watched"), Arg("event"))
|
|
162
164
|
.define_method("sender", &BC_T::sender);
|
|
163
165
|
|
|
164
166
|
bando_qlass
|
|
165
167
|
.define_method("expanding_directions", [](BC_T *self) -> Qt::Orientations { return self->C_T::expandingDirections(); })
|
|
166
168
|
.define_method("has_height_for_width", [](BC_T *self) -> bool { return self->C_T::hasHeightForWidth(); })
|
|
167
|
-
.define_method("height_for_width", [](BC_T *self, int width) -> int { return self->C_T::heightForWidth(width); })
|
|
169
|
+
.define_method("height_for_width", [](BC_T *self, int width) -> int { return self->C_T::heightForWidth(width); }, Arg("width"))
|
|
168
170
|
.define_method("maximum_size", [](BC_T *self) -> QSize { return self->C_T::maximumSize(); })
|
|
169
171
|
.define_method("minimum_size", [](BC_T *self) -> QSize { return self->C_T::minimumSize(); })
|
|
170
|
-
.define_method("set_geometry", [](BC_T *self, const QRect &r) -> void { return self->C_T::setGeometry(r); });
|
|
172
|
+
.define_method("set_geometry", [](BC_T *self, const QRect &r) -> void { return self->C_T::setGeometry(r); }, Arg("r"));
|
|
171
173
|
|
|
172
174
|
return bando_qlass;
|
|
173
175
|
}
|