hermi | 4 Jan 11:52
Picon
Picon

[qt-dev] Sources of QtCreator?

Hi all,

I wonder where I can find the sources of QtCreator with (perhaps) OS/2 related
changes?
Or can I use the sources from git://gitorious.org/qt-creator/qt-creator.git?

Thanks,
Hermi

Lars Erdmann | 30 Dec 20:28
Picon
Favicon

[qt-dev] QT3 and QT4 - drag and drop

Found the below in "gui/kernel/qmime_pm.cpp".
Did you test this with a target that asks for source rendering ?
My understanding is that the source as well as the target call
DrgFreeDragtransfer (that's why it needs to be called twice).
If you call DrgFreeDragtransfer twice in the source this might
lead to an access problem in the target.

/*! \internal
   According to my tests, DrgFreeDragtransfer() appears to be bogus: when the
   drag source attempts to free the DRAGTRANSFER structure passed to it in
   DM_RENDERPREPARE/DM_RENDER by another process, the shared memory object is not
   actually released until DrgFreeDragtransfer() is called for the second time.
   This method tries to fix this problem.

   \note The problem (and the solution) was not tested on platforms other than
   eCS!
*/
void qt_DrgFreeDragtransfer(DRAGTRANSFER *xfer)
{
     Q_ASSERT(xfer);
     if (xfer) {
         BOOL ok = DrgFreeDragtransfer(xfer);
         Q_ASSERT(ok);
         if (ok) {
             ULONG size = ~0, flags = 0;
             APIRET rc = DosQueryMem(xfer, &size, &flags);
             Q_ASSERT(rc == 0);
             if (rc == 0 && !(flags & PAG_FREE)) {
                 PID pid;
                 TID tid;
(Continue reading)

Silvan Scherrer | 23 Nov 11:32
Picon

[qt-dev] ported Qt apps

I see a lot Qt ports floating around. Most of them are also listed on svn.netlabs.org/qtapps but not all.

Please always add a ported app also to the qtapps wiki. If you don't have rights to do so, please tell me and i give you the rights.
We should have one single location to search for a ported app and not a lot of them.

Thanks for your help in building this single location.

regards
Silvan


--
Silvan Scherrer
AROA Informatik AG
Tel. +41 71 243 55 77
Fax +41 71 243 55 70
www.aroa.ch
Cornelis Bockemühl | 22 Nov 08:31
Picon

[qt-dev] Warp Style?

For the Qt3 version I once developed a "Warp style" class, and Dmitry Kuminov 
integrated it after some debugging. He did not port it to Qt4, which I 
understand very well: Having e.g. the Designer and Assistant now available 
weighs hundred times more than having a "native style"! ;-)

However, I may be able to spend a little time again on Qt related development 
(no promise yet!), and one option would be to do some adaptations to the 
existing Warp style to make it work with version 4.0. No idea how much work 
this would really be, but guess that it would be certainly less than redoing 
from scratch.

But before doing anything in that direction, I would like to get a little 
feedback about the question how much this is really something people want to 
see!?

But then before anybody says "yes, go ahead - it certainly doesn't hurt!" I 
need to also add some good reasons that can be brought up against it:

1. The current Warp style is not aware of any tricks that may have been played 
by eStyler, but it realizes a "plain old Warp style" which does not react to 
any styling efforts coming from the OS side! I am not really sure whether it 
would be possible at all to change this, and if yes, I don't know how much work 
this would be. But "styling" with the eStyler is certainly something that is 
typically done on all current eCS systems, I guess!(?)

2. In many way, making a "Warp style" happen in Qt is a big hack. Ok, it also 
is for other OS'es, but this doesn't make it better: Adding some "cheater 
class" here in the background, in order to pass a pointer to some other 
function that needs it but doesn't get it through the "official" ways, etc... 
Maybe this is now a bit better with Qt4, but I don't really know. The point is: 
Whatever I would do, it may not be code that is easy to maintain (possibly one 
good reason why Dmitry did not do it himself!??)

3. Currently, on all OS'es there is a trend to "styling" the GUI. The result is 
that applications are much less looking like "typical Gnome", "typical 
Windows", "typical XYZ" any more! So why should we really have a "classic Warp" 
style at all that does not even look "cool", but only old fasioned? Ok, 
some "old fashioned people" like me may like it - but even I am now switching 
to more "modern" GUIs if I am having the option to do so...

4. Within Qt, the "styles" are actually the oldest way to adapt the GUI to user 
preferences. Even if it is still supported, the trend goes clearly to the more 
modern methods (as far as I have learned at the "Qt Developer Days" 2009 in 
Munich): first the "style sheets" (which already work in the current port, as 
far as I see), and even "better" some template based GUI design that does not 
even work with OS based "windows" any more, but lets the user interface items 
be "drawn" in a completely free way, including completely free forms, animation 
effects, transparency and the like.

Still I see a few arguments in favor of a Warp style:

- I like the colored "tabs"

- I like the typical OS/2 way of menu behaviour: open sub-menus only if you 
click on them (but I don't even remember whether this was part of the Qt 
3 "Warp style" that I created...(??)

Besides that, not much more I could really think of...

What do you think?

Cornelis Bockemühl | 22 Nov 08:09
Picon

[qt-dev] OS/2 Icons for Qt Apps

Just a "cosmetic problem": So far, I see that most Qt apps that are ported to 
OS/2 do not come with an icon, i.e. they all appear with the standard "program" 
icon from OS/2 or eCS. However, most of these apps originally have an icon.

It is no big magic to add an icon to the sources, but it needs two little extra 
steps besides doing the plain re-compilation with gcc/Qt4:

- convert the icon to OS/2 format
- add an OS/2 style RC file and an extra entry to the Qt *.pro file

that's all!

Even doing only the first step and let the user add the icon to the program 
object on the WPS is possible, and even less extra work: only the conversion 
remains.

The problem with this is: I am not aware of any conversion program that takes 
e.g. a png as an input and outputs to OS/2 icon properly! With properly I mean 
that it does not ignore the transparency that only makes an icon really look 
like an icon.

On OS/2, my normal "bitmap handling program" is PMView, but that ignores all 
transparency effects. An alternative is to first convert, then use the "Icon 
Editor" and add transparency manually - not really a comfortable way to proceed!

And non-OS/2 bitmap editors tend to ignore the OS/2 icon format...

Any tipps or ideas?

Dmitry A. Kuminov | 19 Nov 17:11

[qt-dev] Qt 4.6.3 released on 19.11.2010

Hello everyone,

A new version of Qt4 for OS/2 is released today. Here is the change log:

4.6.3 (19-11-2010)

   Improvements:

   - general: Updated Qt codebase to version 4.6.3 (see the changes-4.6.3 file
     for details). This version should be binary compatible with the previous
     version of Qt for OS/2.

   - general: qmake uses .NOTPARALLEL for some targets to support parallel
     building of complex applications with the -jN GNU make option.

   - corelib: Significantly improve the performance of directory iterators
     walking through directories with thousands of files on slow file systems
     with inefficient cache policies [based on patch by rudi].

   - corelib: Don't report non-existent floppy drives in QDir::drives(). This
     makes letter A: and B: disappear from standard file dialogs in case if the
     computer doesn't have the floppy controller at all or it is disabled in BIOS
     [patch by rudi].

   - corelib: Implemented QSysInfo::os2Version(). Fixes the UserAgent string
     in QWebKit-based browsers.

   - corelib: Fixed: Hang when attempting to stop the file watcher thread after
     reusing it for more than one directory (e.g. like in the standard file
     dialog).

   - network: Added OpenSSL support. This enables visiting web sites using the
     secure HTTPS protocol in Qt based web-browser applications.

   - network: Improved network disk cache performance by reducing the number of
     stat() calls twice when expiring the cache items [based on patch by rudi].

   - network: More verbose error messages from QLocalServer/QLocalSocket instead
     of just "Unknown error".

   - network: QNetworkInterface::hardwareAddress() returns a real MAC and
     netmask() returns a correct value.

   - plugins: Enabled the MySQL and PostgresSQL Qt plugins. Note that these
     plugins require MySQL and PostgresSQL DLLs to be installed.

   - gui: DIVE: Detection code of the Panorama video driver now detects the
     driver presence in memory rather than what will be loaded on next reboot.
     This also solves redraw problems in cases where Panorama is installed
     together with some other video extension -- the old method could not
     detect Panorama and would enable DIVE leading to screen corruption.

   - gui: Send PDF data to a CUPS printer on by default if CUPS is version 1.4.4
     or above (where printing PDF data was fixed).

   - gui: QCommonStyle::standardIconImplementation(): Generate the stanrad small
     and/or large icon size if it is missing from the stock icon to avoid icon
     size differences in e.g. file dialogs.

   - webkit: Try to allocate memory blocks in high memory on OS/2 first and fall
     back to low memory on failure.

   Fixes:

   - general: Fixed: configure.cmd would not work in Object REXX bmode.

   - corelib: Fixed a deadlock during alien thread termination (copy-paste bug)
     [found by komh].

   - corelib: Fixed: QProcess::startDetached() would fail with a certain set of
     arguments [patch by rudi].

   - network: Fixed: QLocalServer/QLocalSocket: Make sure the socket path name
     always starts with "\socket\". This fixes applications that use local
     sockets for single application instance detection [based on patch by rudi].

   - network: Fixed: Filter out garbage entries returned by ioctl(SIOCGIFCONF) on
     OS/2 so they don't appear in the QNetworkInteface::allInterfaces() list.

   - network: Fixed: QLocalServer could hang forever in the destructor trying to
     close the listen socket being watched by a socket notifier. This fixes the
     Assistant application hang at startup.

   - gui: Fixed: Doing Drag-n-Drop over a Qt target in DIVE mode would corrupt
     the window contents.

   - gui: Fixed: Children with real HWNDs (a.k.a native widgets) were painted
     over by the parent widget causing annoying flicker (smplayer).

   - gui: Fixed: In Dive mode, the screen would get corrupted if the application
     created a child window with a real HWND (as e.g. smplayer does).

   - gui: Fixed: Qt Assistant would corrupt screen at startup in DIVE FB mode
     [based on patch by rudi].

   - gui: Fixed: DIVE mode was unreasonably disabled in 24-bit color depth
     display modes.

   - gui: Fixed: Path separator was missing in the output file name when printing
     to a PDF or PS file in the print dialog.

   - gui: Fixed QFileDialog: Item height in the side bar was increased by
     increasing icon size which caused ugly icon scaling. Now the item size hint
     is used instead (based on the normal item height) [vendor bug].

   - gui: Fixed: Possible crash and an endless PM event loop recursion when
     re-parenting widgets in DIVE mode. This could be seen when dragging a
     toolbar out of the dock widget, dragging it back then closing the
     application (crash) or attempting to drag the toolbar out again (endless
     recursion).

   - gui: Fixed: Assertion shown when dragging the "Computer" item in the side
     bar of the file dialog.

   - gui: Fixed: QCups would try to unlink() a NULL path which crashed some
     libc implementations [vendor bug].

   - gui: Workaround: Set O_BINARY for temporary file descriptors we get from
     CUPS when printing using the PDF engine to avoid file contents corruption.

   - gui: Fixed: Starting the drag operation would take the Qt focus away and
     close all popups which is unexpected.

   - gui: Fixed: Repainting the widget during Drag-n-Drop outside the
     drag*Event() callbacks would cause screen corruption under the mouse pointer
     in DIVE mode.

   - gui: Fixed: Pressing Shift[+Ctrl]]+<numpad_digit> generated digits in
     NumLock ON mode instead of cursor movement events (which is necessary to
     make it possible to select text using numpad keys with Shift pressed.

   - gui: Fixed: Hiding the main application window programmatically with
     QWidget::hide() and then showing it again with QWidget::show() would not
     activate it from the Qt point of view which prevented the child widgets from
     getting the keyboard focus (and input).

   - gui: Fixed a crash that could happen at program termination in DIVE mode if
     a top-level window had a native HWND window embedded in it.

   - gui: Fixed SIGSEGV on SSE2 processors due to misaligned m128i variables
     on stack (an OS/2-specific GCC 4.x compiler bug).

   - webkit: Fixed: Symbols typed with AltGr as a shift modifier could not be
     entered in line entry fields in WebKit-based applications.

   - webkit: Fixed: posix_memalign() broken in kLIBC 0.6.3/4 whould crash in
     QWebKit under heavy memory consumption conditions.

--

-- 
Keep cool,
dmik

Cornelis Bockemühl | 18 Nov 09:32
Picon

[qt-dev] Assistant not working after 4.6.2 installation

First the question:

How can I tell the Qt system "manually" where it can find its database plugins? 
With "manually" I mean a way to simply add a line into some *.conf file, or 
edit some INI file entry, etc.

Then the background:

Yesterday I installed the Qt 4.6.2 version, and before that already the 
corresponding gcc444 stuff that comes nicely wrapped from the Netlabs FTP 
server. All looked fine so far:

- With the gcc444 only, I was able to write a little "hello world" and 
compile/link it with "gcc test.c" correctly.

- With the Qt 4.6.2 additionally (all packages), I was able to generate a 
little Qt "nonsense" program, which runs, and CHK4DLLS also shows it is loading 
the right DLLs (i.e., from gcc444 and from Qt)

Even a "real application" that I downloaded from the internet I could very 
easily just recompile and run successfully - which is really an amazing 
experience! ;-)

Bottom line so far: My installations and setup are looking so far ok!

BUT: Starting the Assistant does NOT really work: It always only tells 
me "Cannot load sqlite database driver".

I did a search for that via google, and it sent me to the Qt bug tracker on 
netlabs, ticket #156. This describes exactly what happens. (Btw., also the 
explanatory texts for the examples are not showing, which is said to be "the 
same problem" in another ticket).

The ticket is "closed", and so I hoped to solve my problem by following the 
exact steps that were described as a "solution".

Yes, I also had a Qt 4.5.1 installation before that, and I removed it with 
WarpIN (version that comes with eCS 2.0 GA, whatever number that is).

No, there was no qt.conf left over from that installation on any of my drives! 
Still I did what was being asked: Uninstall all the Qt4 stuff, then check for 
any qt*.conf files (no, I did not find any: The qtsys.conf in %ETC% had gone 
with the deinstallation properly).

Then I re-installed - and the problem was back! Again I was able to 
successfully build projects with qmake/make etc.

QUESTION thus: How can I tell the Assistant "manually" where to look for its 
database plugins? Because I see that re-installation really does not help in my 
case! (As I mentioned already: eCS 2.0 GA)

Alex Taylor | 18 Oct 02:17

[qt-dev] Shift + keypad bug

Attempting to mark text in any QT text control using Shift + the keypad
navigation keys results in numbers being printed instead.  (In other
words, Shift has the effect of simulating NumLock instead of marking.)

This rather unfortunately makes it difficult to effectively use QT
text controls...

Using 4.6.2.
--

-- 
Alex Taylor
Fukushima, Japan
http://www.socis.ca/~ataylo00

Please take off hat when replying.

Joop Nijenhuis | 14 Jul 16:56
Picon

[qt-dev] qt assistant startup trash

When I start assistant.exe it will setup with parts all over the screen 
en the bottom half will have a not working layout. A few mouse clicks 
will set it strait, but it is strange because halfway you have also bars 
which do not function. I'm not sure if this is only in eCS version of 
QT. I have version 4.6.2.

Regards,
Joop

Joop Nijenhuis | 8 Jul 02:53
Picon

[qt-dev] setting up environment 4.6.2

> First of all, make sure that your GCC environment is set up and meets the
> specified requirements. To perform a quick check, you may run the following
> command:
>
>   gcc --version && make --version && wl /version

Did that and that works

> The next step is to set up the Qt environment. If you installed the Qt
> development libraries from the WPI archive (refer to section "USING OFFICIAL
> BINARY QT ARCHIVES" below for more details about existing WPI archives), you
> will only need to run the supplied "QtEnv.cmd" script which will do all the
> setup job for you. The script is located in the directory where you installed
> the developmnent libraries (or in the WPS folder created by the WPI installer).
> If you use this script, you may skip the rest of this section and proceed to the
> next one.

Did that too, don't know how to test it. Assume it will work.

> COMPILING QT
>
> You should skip this section if you installed the Qt development libraries using
> the WPI archive (that already contains compiled release versions of the
> libraries) and proceed directly to the next section.

Okay

And now what? Next section is about installing WPI. QMake Config options?
If I go to a source directory and type qmake I get errors from OS/2 that 
it can't find the file. I get the feeling that if you going to use the 
official wpi packages that something is missing in the readme or some 
file is missing. I read it that it should work now, but it doesn't.

I want to recompile some qt apps for OS/2. So I have some source 
directories, but what next?

Regards,
Joop

Dmitry A. Kuminov | 14 May 14:05

[qt-dev] Qt 4.6.2 released on 14.05.2010

Hello everyone,

A new version of Qt4 for OS/2 is released today. Here is the change log:

4.6.2 (14-05-2010)

   Improvements:

   - general: Updated Qt codebase to version 4.6.2 (see the changes-4.6.2 file
     for details). Note that this version is binary incompatible with the
     previous version (see README.OS2 for more information).

   - general: Implemented support for the OS/2 platform in the webkit module. The
     webkit module is used in many complex web-based applications such as web
     browsers to implement the JavaScript support. Note that the script module
     uses the JavaScript implementation from the WebKit project too and it was
     also ported to OS/2. The webkit module is always present in the official Qt
     build but is disabled by defautl in the custom builds due to big compilation
     times.

   - general: Use declspec(dllexport) on OS/2 to significantly reduce the number
     of exports in generated DLLs. This mode is on by default which reduces the
     number of exported symbols by 90-100% in Qt DLLs and makes it not necessary
     to split the QtGui DLL in 3 parts in debug mode. The old method which causes
     all public symbols to be exported is still available using the "export_all"
     CONFIG option (see README.OS2 for details).

   - general: Provide the "doc" WPI archive that contains the Qt reference
     documentation.

   - corelib: Implemented native (XWP-based) file system watcher for OS/2 that
     does not eat CPU (which is best noticed in file dialogs showing directories
     containing hundreds of files. Requires XWorkplace to be installed.

   - corelib: Implemented deriving the defaut locale from the process country
     code if LANG is not set and integration with the system locale object
     (System Setup -> Country Palette). See the QT_PM_NO_SYSTEM_LOCALE
     description in README.OS2 for details.

   - gui: Implemented printing support through CUPS. Refer to section "PRINTING
     SUPPORT" in README.OS2 for details.

   - gui: Implemented painting in widgets using DIVE (direct interface video
     extensions). Using DIVE gives a significant graphical performance boost, up
     to 100% in BLIT mode and 130% in FBSWM mode, depending on the combination of
     the graphics hardware, video driver and the current screen mode. See the
     QT_PM_DIVE and QT_PM_NO_DIVE description in README.OS2 for more details.

   - gui: Improved the painting speed when not using DIVE. The performance boost
     varies from 30% to 200% (e.g. 3 times faster), depending on the combination
     of the graphics hardware, video driver and the current screen mode.

   - gui: Enabled MMX/SSE support (on by default) to speed up graphical
     operations by a couple of percents.

   - gui: Enabled accessibility support on OS/2. Note that in order to use the
     accessibility functions, a QAccessibleBridge plugin for the corresponding
     accessibility device is necessary but none of them exist at the present
     time.

   - gui: Use native file icons in standard Qt file dialogs.

   - assistant: Enabled the help module and made the Qt Assistant tool build on
     OS/2. Also enabled help and assistant examples and demos.

   - demos: Enabled the browser demo application that makes use of the webkit
     module.

   - demos: Enabled the qtdemo example that demonstrates all Qt features and
     acts as a launcher for other example and demo applications.

   - gnumake/os2-g++: Switch the compiler to using the i486 instruciton set for
     code generation. This gives around 3% of the performance boost when
     painting. As a drawback, the code will no longer run on i386 PCs but it is
     assumed that it does not make sense to use Qt4 on these computers.

   Fixes:

   - general: Fixed: Building Qt applications with the "dev" WPI archive would
     fail due to extra spaces in the output object file names.

   - corelib: Fixed: Regular files were treated as sequential streams which made
     the seek functionality unavailable. This in particular affected Qt Designer
     that didn't expect sequential streams when reading .ui files and refused to
     load files bigger than 8192 bytes as a result.

   - corelib: Make sure the hardware error popup dialogs do not appear when
     opening the standard Qt file dialog and selecting a removable drive with no
     media inserted even with AUTOFAIL=YES in CONFIG.SYS

   - corelib: QProcess: Fixed: Data could not be successfully read or written to
     the standard streams of the started process in 'highmem' link mode (which is
     on by default since 4.5.1 GA), as well as in normal link mode in some
     situations.

   - corelib: Fixed QProcess::startDetached() which would not work in 'highmem'
     mode.

   - corelib: QProcess: Fixed: Having stderr of a started child process
     redirected to a pipe (which is the default) would indirectly cause an
     impossibility to write anything to its stdin.

   - corelib: QProcess: Get rid of the unexpected "DosQueryNPipeSemState returned
     87" warning.

   - corelib: QFileSystemWatcher: In the fall-back polling watcher, increased the
     sleep time between checks of all watched files from 1 second to 3 seconds to
     decrease the CPU load on big sets of watched files. Also, replaced the sleep
     between checking individual items with the yield call as it doesn't give
     significant improvement but just causes more CPU cycles to be spent between
     each check.

   - corelib: Always return true from QFileInfo::isRoot()/isDir() for paths
     referring to root directories of drives with no media and always return
     false from QFileInfo::exists() for them. Also, don't lstat() on such paths
     since they are definitely not symlinks. This improves the file dialog
     appearance and behavior for removable drives.

   - corelib: Protect against the frozen system when QSocketNotifier is given an
     unsupported socket (for example, an OS/2 file handle). There is still 100%
     CPU load in this case, but the application can be at least closed using
     normal means.

   - corelib: Sockets: Fixed: "has data to read" socket notifications would be
     sometimes delivered with a delay depending on the frequency of timers which
     could significantly slow down network data transfer.

   - corelib: QTemporaryFile: Fixed: Files were opened in O_TEXT mode which
     caused unexpected LF <-> CRLF translation. In particular, this broke
     QNetworkDiskCache functionality (seen in e.g. demos/browser as missing
     images and CSS sheets when read from cache).

   - corelib: Fixed: Clear FPU CW in qdtoa() to avoid the floating point
     exception in various scenarios [patch by rudi].

   - gui: Fixed assertion in QVector::at() at startup.

   - gui: Fixed assertion at #1125 in qwidget.cpp (due to an attempt to
     re-instantiate QDesktopWidget during application termination).

   - gui: Select the correct icon for the drive letter in standard file dialogs
     depending on the drive type (floppy, hard disk etc) [patch by rudi].

   - gui: Fixed crash in PMMERGE during resize & move of the top level window
     with the complex layout (caused by reading outside the bitmap data).

   - gui: Fixed: Never add tooltip windows to the top-level window list and only
     do so for splash windows if they have the Qt::WindowTitleHint flag set.

   - 3rdparty: Added OS/2 support to clucene used by the help module for fulltext
     search in help files [based on the patch by rudi].

   - configure.cmd: Fixed: QT_BUILD_KEY (and QLibraryInfo::buildKey()) would
     always contain "release", even in debug builds, which caused debug builds to
     load the release plugins and refuse the debug ones.

   - qmake/os2-g++: Use -Wl, to pass the object list response file to the
     linker as is instead of the expanded list of objects (this overcomes the
     64KB limitation of the total process command line length in OS/2).

Please visit http://svn.netlabs.org/qt4/wiki#LatestVersion for download links.

--

-- 
Keep cool,
dmik

* JID: dmik at jabber ru


Gmane