prep for release

This commit is contained in:
Adam D. Ruppe 2021-06-08 22:22:10 -04:00
parent 4b0f2b31a8
commit 2ec2a64536
3 changed files with 17 additions and 3 deletions

View File

@ -22,6 +22,8 @@ Released: May 2020
minigui 2.0 came out with deprecations on some event properties, moved style properties, and various other changes. See http://arsd-official.dpldocs.info/arsd.minigui.html#history for details. minigui 2.0 came out with deprecations on some event properties, moved style properties, and various other changes. See http://arsd-official.dpldocs.info/arsd.minigui.html#history for details.
database.d now considers null strings as NULL when inserting/updating. before it would consider it '' to the database. Empty strings are still ''.
## 9.0 ## 9.0
Released: December 2020 Released: December 2020

4
cgi.d
View File

@ -595,6 +595,10 @@ static:
} }
auto byChunk(size_t sz) { return ByChunk(sz); } auto byChunk(size_t sz) { return ByChunk(sz); }
void close() {
std.stdio.stdin.close;
}
} }
} }

View File

@ -566,7 +566,7 @@ class Widget : ReflectableProperties {
auto old = dynamicState_; auto old = dynamicState_;
dynamicState_ = newValue; dynamicState_ = newValue;
useStyleProperties((s) { useStyleProperties((scope Widget.Style s) {
if(s.variesWithState(old ^ newValue)) if(s.variesWithState(old ^ newValue))
redraw(); redraw();
}); });
@ -1487,8 +1487,12 @@ class Widget : ReflectableProperties {
History: History:
Added May 5, 2021 Added May 5, 2021
Bugs:
It does not do the static checks on gdc right now.
+/ +/
final protected bool emit(EventType, this This, Args...)(Args args) { final protected bool emit(EventType, this This, Args...)(Args args) {
version(GNU) {} else
static assert(classStaticallyEmits!(This, EventType), "The " ~ This.stringof ~ " class is not declared to emit " ~ EventType.stringof); static assert(classStaticallyEmits!(This, EventType), "The " ~ This.stringof ~ " class is not declared to emit " ~ EventType.stringof);
auto e = new EventType(this, args); auto e = new EventType(this, args);
e.dispatch(); e.dispatch();
@ -3110,7 +3114,7 @@ struct StyleInformation {
// through the [VisualTheme] // through the [VisualTheme]
public @property opDispatch(string name)() { public @property opDispatch(string name)() {
typeof(__traits(getMember, Widget.Style.init, name)()) prop; typeof(__traits(getMember, Widget.Style.init, name)()) prop;
w.useStyleProperties((props) { w.useStyleProperties((scope Widget.Style props) {
//visualTheme.useStyleProperties(w, (props) { //visualTheme.useStyleProperties(w, (props) {
prop = __traits(getMember, props, name); prop = __traits(getMember, props, name);
}); });
@ -6280,7 +6284,7 @@ class Window : Widget {
event.relatedTarget = mouseLastOver; event.relatedTarget = mouseLastOver;
event.sendDirectly(); event.sendDirectly();
ele.useStyleProperties((s) { ele.useStyleProperties((scope Widget.Style s) {
ele.parentWindow.win.cursor = s.cursor; ele.parentWindow.win.cursor = s.cursor;
}); });
} }
@ -6550,9 +6554,13 @@ private void delegate() makeAutomaticHandler(alias fn, T)(T t) {
} else { } else {
static if(is(typeof(fn) Params == __parameters)) static if(is(typeof(fn) Params == __parameters))
struct S { struct S {
static if(!__(traits(compiles, mixin(`{ static foreach(i; 1..4) {} }`)))) {
pragma(msg, "warning: automatic handler of params not yet implemented on your compiler");
} else mixin(q{
static foreach(idx, ignore; Params) { static foreach(idx, ignore; Params) {
mixin("Params[idx] " ~ __traits(identifier, Params[idx .. idx + 1]) ~ ";"); mixin("Params[idx] " ~ __traits(identifier, Params[idx .. idx + 1]) ~ ";");
} }
});
} }
return () { return () {
dialog((S s) { dialog((S s) {