The thing itself

The workings are pretty obvious. The work area is the sign grid, which you can hide when you've made the sign. To do so, click on any box in the wedge set on the right. That wedge appears in the toolbox on the left under the grid, and stays there until you choose another wedge. If you click on any square in the grid the wedge currently in the toolbox appears in that square. If there is a wedge already there, control click on the box and the current toolbox wedge appears in the same square. Click on any wedge on the grid and you erase it. Easy. Oh, and you can start the sign at any point in the grid--it's hard to estimate in advance where to start to get everything neatly parked in the top left hand corner. The computer does that for you.
When you've made the sign, click on 'update database'. The computer creates the text strings in the codebox. This would normally be hidden. If necessary, it rewrites the sign so that it occupies the optimum top left position. The code is very simple: the contents of any box in the grid can be expressed by one of the letters from a through l, with x for an empty box.
The buttons 'hide grid', 'new card', and 'clear all wedges' do the obvious things.
If you click on the button called 'matches' then the program simply searches the database for each line of the code in the codebox. It lists the id numbers of any signs satisfying the search in the matchbox. You can click on any of those numbers to to to the card containing the found sign, and go back by clicking on 'go back'. For each line the number of matches found is listed in the linematches field at the left of the sign grid.
And that, it seems to me, does the job. You could obviously devise much more subtle search strategies, and would have to, as the database got more populated, but that, like the need for a subtler grid and a more comprehensive wedge set, is a matter of details.
It works, that's the main thing.
Here are two more screen shots