Monday, December 10, 2012


I've added hunspell wrappers in Concept Framework (

Also, I've added into standard.lib.str Soundes, Metaphone and DoubleMetaphone functions.

I've added a few new gadgets in GyroGears applications.

1. Autocorrect in search fields (works for almost every language - defaults comes with English (US+GB) and Romanian.

2. Spell checker in text views.
3. Shortcuts for adding in relation members (see the above screenshots).

4. Beautify solution for GyroGears. This beautifies your app (aligns labels, chose which columns to be visible by default in views and so on).

Sunday, December 2, 2012

GyroGears and usability

I've had some crazy requests in the last few months. The users (end-users) complained about the usability of Gyro applications, and in some aspects they were right.

1. Latest complaint: interfaces are ugly, so I'm working at new ones. 

This is the new main applications screen:

If you think it looks like something, rest assured it is not.

2.  The calendar is useless.

I redesigned the calendar. Now it looks like a classic calendar widget, with drag and drop (you can now reschedule an event by moving it to another day/hour).

3. Database search - redesigned

Pattern search now applies to spaces. So, if somebody looks for "Mikey Mouse", "Mickey The Mouse" will be also returned.

Three new options for entities in GyroGears:
- search by parent
- show parent as a chain
- child search level

Let's consider a client who has contracts. In the contracts master view, I can now type the client's name, and it will return all of its contracts. Same logic for child search level. For example, in the client list, I can enter a contract number and see the client with that contract number.

A few version ago I added "Show parent" options. This way, in a master view, on the first column the parent entity representative member will be shown. But, if parent level was 2 or more, only the final parent shall be shown. When the "show parent as chain", all the parents will be shown. For example, a client, has contracts and on every contract has a service. This way, on the service view, in the parent column, both the contract number and client name will be shown.

4. Horrible Glade for UI design (developers).

Until now I used glade-window as a method for embedding Glade into CIDE (Concept IDE). This meant that on every new Glade version I had to modify the sources.

So, I've wrote my own "glade-window.

Also GTK3 is now used on Windows too.

5. Editable ComboBoxes for many to one relations

For many to one relations you could set in GyroGears "use a combo". Now, you can also set "editable combo box". This way the user can perform a quick look-up for the given member.

6. Too many "Save" buttons for modifying a child object

When you check "enable send to" for a relation, now you get this cool context menu.

This enables the used to add a child object, without editing the parent (and so, avoiding a lock).

7. Localization and international support.

A company in Jordan has Arab employees and Romanian management. So, for the same application, two different languages were needed. This was already fine with Gyro. Now is perfect.

Also, date and time can now be formatted. (Eg: %d/%m/%Y %H:%M).

8. Telephony integration

I've added a SIPPhone class in the Concept Framework. This allows you to initiate a call, answer one and talk using a high level interface.

This is somehow cool if we talk about a CRM, and the client calls in. Then, the application automatically detects the client and opens his or her records.

9. Button press feedback for image buttons on mobile client

A friend of mine tried Concept Client Mobile. He complained about the lack of feedback when he pressed an image button. So, I've added a gray tint when the button was pressed.

10. Flash in WKB (Concept Webkit Browser) on Windows (thanks to Midori)

WebKitGtk finally works as it should on Windows. Also, the left key doesn't hang up the WYSIWYG editors.

This week I will modify the data input interface and add keyboard shortcuts for various operations.