This section describes differences you may encounter when
upgrading to GDC 2.20.
GDC is now compiled with Microsoft™ Windows™ Visual C++ 2008
As with
any VC++ application, GDC needs VC Runtime files - basically DLLs Microsoft provides, the equivalent
of the glibc on Linux™. The
difference with GDC 2.1x is that Microsoft changed
the way the runtime must be deployed. With VC 2003, it was possible
to provide the DLLs with the application, but this was the cause of
the DLL Hell. Now The runtime system must be installed
on the system directly, using a VC Redist. Our installer will
always embed the corresponding VCRedist and install it if needed.
But, if you were used to simply copying the GDC directory, you have
to be sure that the correct redist is installed - if not, GDC will
not be able to start.
Qt4: GUI changes
GDC is based
on Qt, a multi platform C++ library. While 2.1x versions (and earlier)
are based on Qt3, GDC 2.20 is the first Qt4 based version. Qt4 was
a complete rewriting, and in lots of area Qt4 applications are different
from Qt3. We've spent a lot of time to minimize the differences, but
GDC 2.20 will not be 100% identical to GDC 2.11:
- Some changes are considered to be going in the right direction.
For instance, the default
font on Windows has
changed, but this is to match Windows requirements.
- In some cases, it was technically not possible (or had too high
a cost) to work around a change
The behavior of your applications should be unaffected. What
may change is the look and feel, and the rendering.
Default font has changed
In
Qt3, there was a bug which made Qt3 based applications not use the Microsoft recommended font
; this bug has been fixed in Qt4, and now GDC uses the font recommended
by Microsoft. More details:
You can still set the default font in the GDC configuration panel,
if you don't want GDC to use the correct system font.
Better adaptation to system style
The first version of
Qt3 was released in 2001, before Windows XP. The theme
mechanism was not designed to make use of all the new features introduced by Vista, OS X 10.4 or
KDE4 (and even some items like Folder pages are very poorly supported on XP). Qt4 introduced a much
better styling support, relying much more on the system theme - for instance on OSX (and some linux
themes) the spacing between items is not fixed and varies depending on the item types. We've adapted
these changes to Genero, but for some of them we let Qt apply the system defaults. Windows: Items where the styling mechanism change has an impact:
- Top Menu (and StartMenu as menu) - GDC 2.11 had a Windows 2000 like style for menus. GDC 2.2x is using XP/Vista/Seven style, which is more
modern but takes more space.
- Edit based fields now have a 3D effect, a rounded border, and the current fields shows a blue
border.
- Comboboxes now have a grey gradient that becomes blue when the mouse moves over it. The side
effect is that, in a Display Array, comboboxes on the current rows are not highlighted. (The system
theme does not allow changing the gradient color).
Image attributes are handled
differently
GDC 2.20 slightly modifies the handling of images
attributes, as there were some inconsistencies in 2.11. Hre are the
major rules :
- It is important to differentiate the image and the image container
(widget): when drawing your form, you're defining an image container.
The image(s) that will be put in this container can be smaller or
larger.
- SIZEPOLICY and WIDTH-HEIGHT attributes define the size of the
container, not the size of the image.
- SIZEPOLICY is the priority attribute. It gives a directive for
the size of the image container:
- FIXED: exact size defined in the Form Specification File.
- INITIAL: size is computed according to the content of the first
display. Once done, the size is frozen. If the content is empty (no
image), the container shrinks to its minimum size.
- DYNAMIC: the width of the container grows and shrinks according
to its content.
- WIDTH and HEIGHT attributes define the size of the container,
but they are dependant on the SIZEPOLICY. It means the image container
may grow or shrink even if WIDTH and HEIGHT are specified. If you
really want to have a container with a fixed size, you have to use
WIDTH and HEIGHT in combination with SIZEPOLICY=FIXED.
- AUTOSCALE allows the image to be scaled to the space of the image
container. It's only useful if size of the image differs from the
size of the container. It means there is no interest to use it with
SIZEPOLICY=DYNAMIC, as the container always fits to the image size.
- STRETCH allows to make the container grow or shrink (and the image
as well) when the parent container (for instance the window) is resized.
This attribute doesn't conflict with the others.
Examples
-- image size: 80*80 pixels
WIDTH=150 PIXELS, HEIGHT=150 PIXELS, SIZEPOLICY=INITIAL, AUTOSCALE;
When
it is first displayed, the container shrinks to 80*80 pixels in order
to fit the image size. Its size is then frozen. AUTOSCALE is useful
here only if another image of a different size is displayed afterwards
in the same container.
-- image size: 80*80 pixels
WIDTH=150 PIXELS, HEIGHT=150 PIXELS, SIZEPOLICY=FIXED, AUTOSCALE;
The
container has a fixed size of 150*150. The image is smaller, and AUTOSCALE
allows scaling of the image to the whole space. When not using AUTOSCALE,
you may also use the image style attribute alignment to define
where the picture should be located when the container is bigger.
Report to printer differences
Introducing
Qt4 and
Scribe,
the text layouting system of Qt has been entirely rewritten. This
has an impact on how GDC prints Report to printer: margins, spacings,
font size have changed. You may have then to change your report fond
to get similar result as before. Genero Report Writer is now the recommended
way of producing reports.
W3C colors
While Qt3
is using X11 color definition, Qt4 is using W3C definition. Some colors
have the same name in both definition, but not the same RGB value.
This explains why using the term green for a color changed since 2.20.
Table 1. RGB values: X11 and W3C comparison
name |
X11 RGB value |
W3C RGB value |
green |
#00ff00 |
#008000 |
grey |
#bebebe |
#808080 |
maroon |
#b03060 |
#800000 |
purple |
#00ff00 |
#a020f0 |
Hitting German ß in an UPSHIFT
field results in SS
If you hit the German ß in an UPSHIFT field,
it will be immediately replaced by SS. It is something expected: SS
is the official capitalization of ß. ß is nearly unique among the
letters of the Latin alphabet in that it has no traditional upper
case form. This is because it never occurs initially in German text,
and traditional German printing never used all-caps.