June 2016 development updates

Week 23

Tiled Sunday

Like I wrote in the previous development update, I had prepared a list of urgent issues to work on. This was really helpful and I managed to get around to all issues (the color picker issue was newly added since then).

Tileset Background Color

An often requested feature is to be able to change the tileset background color, and for good reason. The current white color (usually the standard background on most systems) was a bad choice to begin with. So this is the first thing I started working on (I streamed development again as well). I finished it, but unfortunately this feature is for now only available on the wip/tilesetdocument branch because I realized that adding it to master would cause conflicts with that development branch.

Fast Rectangle Eraser

After lunch, I’ve added a right-click-drag mode to the Eraser that can be used to quickly erase rectangular areas (see the first 20 minutes of the second stream if you’re interested). It is a little bit faster than using the selection tool + delete key, and hopefully people selecting the eraser and getting frustrated by its small size will find this functionality.

Creating Rectangle and Ellipse Objects in Any Direction

A small but persistent annoyance when creating rectangle and ellipse objects was that you could only do so when dragging from top-left to bottom-right. I was reminded about this while cleaning up my inbox and running into a mail from 2009 talking about this issue, and I was somewhat embarrassed that it was still there. Hence it made it onto the Urgent list, and it took less than an hour to implement the solution.

Preparing for a Tiled 0.16.2

Some small issues were fixed for Tiled 0.16, and two more severe issues have been fixed in the Qt 5.6.0 and 5.6.1 releases (#1244 and #1153 respectively). Hence I’d like to make a Tiled 0.16.2 release. For this I backported several fixes in the build system from the master to the 0.16 branch, and updated the NEWS file. I expect to spend a bit of time finalizing this release next Sunday.

Looking Ahead

It looks like I will have some time for moving on with the external tileset editing branch upcoming Sunday!

I’ve had to adjust my second Patreon goal upwards again (to $1300), since two sponsors have dropped. While this takes me further away from reaching that goal, I’ll anyway start working two days/week on Tiled as soon as possible. I can do this because over the past months I’ve been already earning more than my first goal, and I’m confident that we can fill the gap with a bit more time. As always, thanks a lot for all your support!


Week 24

Tiled Sunday

I wanted to get Tiled 0.16.2 out, so I checked for issues that would still be good to fix for this release. A pull request had been opened with a fix for the --export-map [format] command line, which due to a regression could no longer recognize any explicitly specified format. While the pull request added a successful workaround, I decided to fix it a little differently.

Next, I looked into an automapping issue that was recently reported. It took me quite a while to track down what was happening, since the symptom was rather misleading. In the end it was a rendering related issue caused by a regression that was probably introduced in Tiled 0.15. I fixed the issue by adding a missing drawMarginsChanged signal. Apart from that the automapping may perform a tiny bit faster now.

One of the main reasons I wanted to get 0.16.2 out fast was because Qt 5.6.1 was released, fixing a crash on Windows that quite some people are running into. Unfortunately, I discovered that AppVeyor had still not updated their Qt packages, so I decided to put off the release for now.

Instead, I spent the rest of the day making a bit of progress on the wip/tilesetdocument branch, making the zooming work again in the tileset editor (which I seem to have forgotten to push), and fixing a minor but long standing session management issue.

Week 25

I visited my mother in law with my family on the weekend, so the Tiled Sunday moved to Monday (week 26).

Week 26

Tiled Monday

As much as this should have been the day of the Tiled 0.16.2 release, I started the day by being annoyed that the GTK style was no longer working when I compiled Tiled against Qt 5.7. At first I thought this must be some strange oversight in the Qt distribution, but as it turns out, QGtkStyle was intentionally moved out of the Qt repository due to compatibility and maintenance issues. As far as I can tell, the GTK platform integration plugin has been updated to use GTK3 (so Tiled now uses GTK3 file dialogs, for example) but the GTK style was still using GTK2, and trying to use GTK2 and GTK3 together in the same application causes it to crash. Hopefully in the future there will be a GTK3 style for Qt, but for now Tiled on Linux would be using the generic “Fusion” style.

I think they mostly did a good job with Fusion, but I think it has one big usability issue which is the lack of contrast on the scrollbar. Especially when the scrollable content is dark, it is virtually impossible to see where the scrollbar handle is located. So I wanted to fix this, but after managing to increase the contrast (which required copying quite a bit of code from Qt unfortunately), I continued to change the scroll bar to be more to my liking. Then I continued to work on adding a dark theme to Tiled, a long requested feature.

I didn’t want to add just one dark theme. I’d rather make the color and brightness configurable. The Fusion style already helps a lot with that, but with configurable brightness it is still tricky to make sure that there is always a good amount of contrast. I hooked up the layer opacity slider to the darkness so I could try things out fast. Here’s how Tiled currently looks on the wip/dark-theme branch:

And for those who like it even darker:

And for comparison, here’s the default Fusion style, where you can probably see the problem with the scroll bars:

Of course, I’ll work on adding the modified Fusion style as an option, alongside the system style. Depending on how it turns out, it could become the new default look for TIled. Please let me know what you think about it so far! I’ll try to make the initial version available in the daily builds soon.

Looking Ahead

First of all some good news: I got permission to work less at my job, starting already next month! Of course, switching from 4 to 3 days/week comes with a rather decent income cut, but a large part of this is already being compensated by my patrons on Patreon and sales on itch.io. I appreciate all your support tremendously! Since I’ll be spending each Sunday and Monday on Tiled from now on, things will move twice as fast!

These are my current priorities:

  • Release Tiled 0.16.2
  • Get the dark theme into the daily builds (mainly requires some work on the Preferences)
  • Work on issues tagged Urgent
  • Continue the wip/tilesetdocument development branch

See you next week!

1 Like

Hi Thorbjørn- Are you going to be able to add depth reordering any time soon?

It is already there, but you need to set the drawing order of the object layer to Manual. Or are you talking about something else?

Glad to see you being able to work more on Tiled! Hope that it goes well.
Really looking forward to that tileset fix too, getting crowded here :smiley:

I’m sure it will, but this month was a really bad start, since I got sick (along with my children) for over a week and suffered from back pains afterwards as well. This affected my ability to work for 4 Tiled days. I’m trying to get around to writing a proper development update as soon as possible.

Here you are referring to the needed follow-up fix for keeping terrain definitions in check, right? I’ll make sure to fix it on the next Tiled day (either Friday or Saturday).

Reffered to the bug were if you change the size of a tileset and have transparrent tiles Tiled doesn’t really know what happened and tiles on wrong locations.

That one I fixed in Tiled 0.16.2. I’ve written a reply at your thread now!

What changes when you set the drawing order of a layer to Manual?

We want to be able to Send Forward, Send to Front, Send to Back, Send Backward, and move objects up and down in the Objects list.

That you can manually order the objects, rather than them being automatically ordered by their “y” coordinate.

When the object layer has the drawing order set to “manual”, these actions will be available in the context menu for selected objects, and they have shortcuts as well.

While the actions you mentioned are available, it is not currently possible to move objects up and down in the object list. This is something I’d still like to implement. See the following issue on GitHub: