Mercurial > projects > qtd
comparison generator/typesystem_core-java.java @ 365:958e8b9a89bd
Changeset a084e2df3776 is broken. Backing out.
author | Max Samukha <maxter@spambox.com> |
---|---|
date | Fri, 11 Jun 2010 20:09:25 +0300 |
parents | a084e2df3776 |
children | 185df9220ea7 |
comparison
equal
deleted
inserted
replaced
364:a084e2df3776 | 365:958e8b9a89bd |
---|---|
43 | 43 |
44 import qt.*; | 44 import qt.*; |
45 import qt.core.*; | 45 import qt.core.*; |
46 | 46 |
47 class QObject___ extends QObject { | 47 class QObject___ extends QObject { |
48 | 48 |
49 alias QMetaObject Meta; | |
50 | |
51 /* TODO: test whether the linked list is really a better solution | 49 /* TODO: test whether the linked list is really a better solution |
52 public bool __stackAllocated = false; | 50 public bool __stackAllocated = false; |
53 | 51 |
54 new(size_t size, void* p = null) | 52 new(size_t size, void* p = null) |
55 { | 53 { |
56 if (!p) | 54 if (!p) |
57 { | 55 { |
58 p = malloc(size); | 56 p = malloc(size); |
72 GC.removeRange(p); | 70 GC.removeRange(p); |
73 } | 71 } |
74 } | 72 } |
75 } | 73 } |
76 */ | 74 */ |
77 | 75 |
78 private | 76 private |
79 { | 77 { |
80 static QObject __root; | 78 static QObject __root; |
81 QObject __next; | 79 QObject __next; |
82 QObject __prev; | 80 QObject __prev; |
83 } | 81 } |
84 /* | 82 /* |
85 override void onSignalHandlerCreated(ref SignalHandler sh) | 83 override void onSignalHandlerCreated(ref SignalHandler sh) |
86 { | 84 { |
87 sh.signalEvent = &onSignalEvent; | 85 sh.signalEvent = &onSignalEvent; |
88 } | 86 } |
89 | 87 |
90 private void onSignalEvent(int signalId, SignalEventId event) | 88 private void onSignalEvent(int signalId, SignalEventId event) |
91 { | 89 { |
92 stringz signature; | 90 stringz signature; |
93 signalSignature(signalId, signature); | 91 signalSignature(signalId, signature); |
94 if (signature) | 92 if (signature) |
95 { | 93 { |
96 switch (event) | 94 switch (event) |
97 { | 95 { |
98 case SignalEventId.firstSlotConnected: | 96 case SignalEventId.firstSlotConnected: |
111 { | 109 { |
112 if (__prev) | 110 if (__prev) |
113 __prev.__next = __next; | 111 __prev.__next = __next; |
114 else | 112 else |
115 __root = __next; | 113 __root = __next; |
116 | 114 |
117 if (__next) | 115 if (__next) |
118 __next.__prev = __prev; | 116 __next.__prev = __prev; |
119 } | 117 } |
120 | 118 |
121 /** | 119 /** |
122 */ | 120 */ |
123 T findChild(T : QObject = QObject)(string name = null) | 121 T findChild(T : QObject = QObject)(string name = null) |
124 { | 122 { |
125 foreach (obj; children) | 123 foreach (obj; children) |
126 { | 124 { |
127 auto tmp = cast(T)obj; | 125 auto tmp = cast(T)obj; |
128 if (tmp && (!name.length || tmp.objectName == name)) | 126 if (tmp && (!name.length || tmp.objectName == name)) |
129 return tmp; | 127 return tmp; |
130 | 128 |
131 tmp = obj.findChild!(T)(name); | 129 tmp = obj.findChild!(T)(name); |
132 if (tmp) | 130 if (tmp) |
133 return tmp; | 131 return tmp; |
134 } | 132 } |
135 | 133 |
136 return null; | 134 return null; |
137 } | 135 } |
138 | 136 |
139 /** | 137 /** |
140 */ | 138 */ |
141 T[] findChildren(T : QObject = QObject)(string name = null) | 139 T[] findChildren(T : QObject = QObject)(string name = null) |
142 { | 140 { |
143 T[] result; | 141 T[] result; |
144 | 142 |
145 void find(QObject[] objects) | 143 void find(QObject[] objects) |
146 { | 144 { |
147 foreach (obj; objects) | 145 foreach (obj; objects) |
148 { | 146 { |
149 auto tmp = cast(T)obj; | 147 auto tmp = cast(T)obj; |
150 if (tmp && (!name.length || tmp.objectName == name)) | 148 if (tmp && (!name.length || tmp.objectName == name)) |
151 result ~= tmp; | 149 result ~= tmp; |
152 find(obj.children); | 150 find(obj.children); |
153 } | 151 } |
154 } | 152 } |
155 | 153 |
156 find(children); | 154 find(children); |
157 return result; | 155 return result; |
158 } | 156 } |
159 | 157 |
160 static void connect(QObject sender, string signal, QObject receiver, string method, int type = 0) | 158 static void connect(QObject sender, string signal, QObject receiver, string method, int type = 0) |
161 { | 159 { |
162 QMetaObject.connectImpl(sender, signal, receiver, method, type); | 160 QMetaObject.connectImpl(sender, signal, receiver, method, type); |
163 } | 161 } |
164 }// class | 162 }// class |